diff --git a/dist/electron/UnPackaged/css/app.540ba716.css b/dist/electron/UnPackaged/css/app.3b1ea4f3.css similarity index 99% rename from dist/electron/UnPackaged/css/app.540ba716.css rename to dist/electron/UnPackaged/css/app.3b1ea4f3.css index 6e7d5df3..13e3fdcd 100644 --- a/dist/electron/UnPackaged/css/app.540ba716.css +++ b/dist/electron/UnPackaged/css/app.3b1ea4f3.css @@ -1 +1 @@ -@charset "UTF-8";html{--ion-safe-area-top:env(safe-area-inset-top);--ion-safe-area-bottom:env(safe-area-inset-bottom);--ion-safe-area-left:env(safe-area-inset-left);--ion-safe-area-right:env(safe-area-inset-right);background-color:var(--q-color-page)}body{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left);padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}body::-webkit-scrollbar,body ::-webkit-scrollbar{width:8px;height:8px}body::-webkit-scrollbar-corner,body ::-webkit-scrollbar-corner,body::-webkit-scrollbar-track,body ::-webkit-scrollbar-track{background-color:initial}body.electron{--appbar-height:30px}.body--light::-webkit-scrollbar-thumb,.body--light ::-webkit-scrollbar-thumb{background-color:#e0e0e0}.body--light::-webkit-scrollbar-thumb:hover,.body--light ::-webkit-scrollbar-thumb:hover{background-color:#d0d0d0}.body--dark::-webkit-scrollbar-thumb,.body--dark ::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.3137254901960784)}.body--dark::-webkit-scrollbar-thumb:hover,.body--dark ::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.4392156862745098)}#q-app,body,html{height:100%}textarea{cursor:auto}.grecaptcha-badge,.grecaptcha-badge+iframe{display:none}.q-icon.fab{font-size:1.4em}.q-textarea>.q-field__inner>.q-field__control{padding-right:2px;padding-left:2px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container .q-field__label{margin-left:10px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container textarea{padding:1px 10px 10px}@media print{@page{size:A4;margin:1in}body{width:768pt;aspect-ratio:9/16}body *{display:none}body .printable{display:block;font-size:16pt}}.q-select__dialog>.q-field>.q-field__inner>.q-field__control{align-items:center;background-color:var(--q-color-page)!important;min-height:56px}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:before{background-color:initial;border-bottom:1px solid #7f7f7f}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:after{background-color:var(--q-color-primary);height:1px}body.screen--xs.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{top:0!important;padding:0!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;top:0!important;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}@media screen and (max-height:600px) and (orientation:landscape){body.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body .q-dialog.fullscreen-dialog>.q-dialog__inner,body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}}.q-drawer-container{position:absolute;top:0;width:100%;height:100vh}.q-drawer{position:relative!important;height:100%}.body--light{--q-color-page:#fcfcfc;--q-color-on-page:#4a4a4a}.body--dark{--q-color-page:#1f1f1f;--q-color-on-page:#c5c5c5}.bg-page,.q-card,.q-drawer,.q-footer,.q-menu,.q-tab-panels,.q-table,.q-table--grid,.q-table__card{background-color:var(--q-color-page)!important}.q-card,.q-drawer,.q-footer,.q-menu,.q-notification.bg-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-table,.q-table--grid,.q-table__card,.text-page{color:var(--q-color-page)!important}.bg-page.q-card,.bg-page .q-card,.bg-page.q-drawer,.bg-page .q-drawer,.bg-page.q-footer,.bg-page .q-footer,.bg-page.q-menu,.bg-page .q-menu,.bg-page.q-notification,.bg-page.q-tab-panels,.bg-page .q-tab-panels,.bg-page.q-table,.bg-page .q-table,.bg-page.q-table--grid,.bg-page .q-table--grid,.bg-page.q-table__card,.bg-page .q-table__card,.bg-page.text-page,.bg-page .text-page,.q-card,.q-card .q-card,.q-card .q-drawer,.q-card .q-footer,.q-card .q-menu,.q-card .q-tab-panels,.q-card .q-table,.q-card .q-table--grid,.q-card .q-table__card,.q-card .text-page,.q-drawer,.q-drawer .q-card,.q-drawer .q-drawer,.q-drawer .q-footer,.q-drawer .q-menu,.q-drawer .q-tab-panels,.q-drawer .q-table,.q-drawer .q-table--grid,.q-drawer .q-table__card,.q-drawer .text-page,.q-footer,.q-footer .q-card,.q-footer .q-drawer,.q-footer .q-footer,.q-footer .q-menu,.q-footer .q-tab-panels,.q-footer .q-table,.q-footer .q-table--grid,.q-footer .q-table__card,.q-footer .text-page,.q-menu,.q-menu .q-card,.q-menu .q-drawer,.q-menu .q-footer,.q-menu .q-menu,.q-menu .q-tab-panels,.q-menu .q-table,.q-menu .q-table--grid,.q-menu .q-table__card,.q-menu .text-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-tab-panels .q-card,.q-tab-panels .q-drawer,.q-tab-panels .q-footer,.q-tab-panels .q-menu,.q-tab-panels .q-tab-panels,.q-tab-panels .q-table,.q-tab-panels .q-table--grid,.q-tab-panels .q-table__card,.q-tab-panels .text-page,.q-table,.q-table--grid,.q-table--grid .q-card,.q-table--grid .q-drawer,.q-table--grid .q-footer,.q-table--grid .q-menu,.q-table--grid .q-tab-panels,.q-table--grid .q-table,.q-table--grid .q-table--grid,.q-table--grid .q-table__card,.q-table--grid .text-page,.q-table .q-card,.q-table .q-drawer,.q-table .q-footer,.q-table .q-menu,.q-table .q-tab-panels,.q-table .q-table,.q-table .q-table--grid,.q-table .q-table__card,.q-table .text-page,.q-table__card,.q-table__card .q-card,.q-table__card .q-drawer,.q-table__card .q-footer,.q-table__card .q-menu,.q-table__card .q-tab-panels,.q-table__card .q-table,.q-table__card .q-table--grid,.q-table__card .q-table__card,.q-table__card .text-page{color:var(--q-color-on-page)!important}.body--light{--q-color-general:#eee;--q-color-on-general:#3c3c3c}.body--dark{--q-color-general:#424242;--q-color-on-general:#e6e6e6}.bg-general{background-color:var(--q-color-general)!important}.bg-general.q-notification,.bg-general.text-general,.bg-general .text-general,.q-notification.bg-general,.text-general{color:var(--q-color-on-general)!important}.body--light{--q-color-positive:#388c5f;--q-color-on-positive:#fff}.body--dark{--q-color-positive:#066b46;--q-color-on-positive:#f6faf8}.bg-positive{background-color:var(--q-color-positive)!important}.q-notification.bg-positive,.text-positive{color:var(--q-color-positive)!important}.bg-positive.q-notification,.bg-positive.text-positive,.bg-positive .text-positive{color:var(--q-color-on-positive)!important}.body--light{--q-color-negative:#b03535;--q-color-on-negative:#fff}.body--dark{--q-color-negative:#b30f0f;--q-color-on-negative:#fff;background-color:var(--q-color-page)!important}.bg-negative{background-color:var(--q-color-negative)!important}.q-notification.bg-negative,.text-negative{color:var(--q-color-negative)!important}.bg-negative.q-notification,.bg-negative.text-negative,.bg-negative .text-negative{color:var(--q-color-on-negative)!important}.q-item--active,.q-item.q-router-link--active{color:var(--q-color-txt-primary)!important}.body--light .q-bar{background-color:initial;backdrop-filter:brightness(0.7);-webkit-backdrop-filter:brightness(0.7)}.body--dark .q-bar{background-color:initial;backdrop-filter:brightness(0.8);-webkit-backdrop-filter:brightness(0.8)}.body--dark{--q-color-dark:var(--q-color-page)}.q-menu{z-index:7000!important}.feedback-main{width:480px;min-height:400px}.details-input textarea{resize:none!important}.diagnotic-main[data-v-8fee9c62]{width:80vw;max-width:600px;-webkit-user-select:none;user-select:none}.text-normal[data-v-8fee9c62]{color:#2872f6}.result-name[data-v-8fee9c62]{display:inline-block;width:160px}.markdown-dialog.fullscreen-dialog>.q-dialog__inner{padding:0!important;top:0!important}.markdown-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;border-radius:0!important;width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important}.markdown-content *{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:1rem;line-height:1.5}.markdown-content h1{font-size:2rem;line-height:2rem}.markdown-content h2{font-size:1.8rem;line-height:1.8rem}.markdown-content h3{font-size:1.6rem;line-height:1.6rem}.markdown-content h4{font-size:1.4rem;line-height:1.4rem}.markdown-content h5{font-size:1.2rem;line-height:1.2rem}.markdown-content h6{font-size:1rem;line-height:1rem}.body--dark .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(2.2) brightness(0.6)}.body--light .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(1.6) brightness(0.9)}.about-content[data-v-e4afc3b8]{margin:0 auto;font-size:14px;line-height:1.8;font-family:Amazon Ember,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,"sans-serif"}.about-content a[data-v-e4afc3b8]{color:var(--q-color-txt-primary);text-decoration:none}.about-content a[data-v-e4afc3b8]:active,.about-content a[data-v-e4afc3b8]:hover{text-decoration:underline;cursor:pointer}body.electron .application-bar{display:flex}body.electron .fullscreen>.q-table__top{padding-top:40px}.app-draggable{-webkit-app-region:drag}.app-no-draggable{-webkit-app-region:no-drag}.application-bar-icon{filter:brightness(1.2) saturate(1.2)}.application-bar{display:none;position:fixed;z-index:7000;width:100%;height:30px;color:#fff;flex-direction:row;align-items:center}.window-control-button{width:48px;height:30px;border-radius:0;transition:none}.window-close-button{background-color:initial}.window-close-button:hover{background-color:#c62828}.items-center[data-v-1f47903d]{text-align:center}.login-container[data-v-6a9c1d57]{width:480px;max-width:100%;margin-left:auto;margin-right:auto}.library-recommend[data-v-0d732dc4]{overflow:auto;height:calc(100vh - 100px - env(safe-area-inset-bottom) - env(safe-area-inset-top));padding-bottom:24px}.recommend-title.full div[data-v-0d732dc4]{color:var(--q-color-on-primary);font-weight:700;text-shadow:2px 0 2px var(--q-color-primary),0 2px 2px var(--q-color-primary),-2px 0 2px var(--q-color-primary),0 -2px 2px var(--q-color-primary),1px 1px 2px var(--q-color-primary),-1px 1px 2px var(--q-color-primary),1px -1px 2px var(--q-color-primary),-1px -1px 2px var(--q-color-primary)}.recommends[data-v-0d732dc4]{padding-bottom:160px}.recommends>i[data-v-0d732dc4]{width:290px;height:0;margin:0 8px}.channel-description[data-v-0d732dc4]{max-width:256px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:4;-webkit-box-orient:vertical;word-break:break-all;text-overflow:ellipsis}.img-container[data-v-0d732dc4]{aspect-ratio:2/3;background-color:var(--q-color-general)}.img-container img[data-v-0d732dc4]{width:100%;height:100%;display:block;object-fit:cover}.follow-selected[data-v-0d732dc4]{right:12px;bottom:48px}.recommend-actions[data-v-0d732dc4]{width:100%;max-width:100%;padding-top:24px;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;bottom:calc(env(safe-area-inset-bottom) + 16px)}.action-btn[data-v-0d732dc4]{font-size:13px}@keyframes focus-data-v-0d732dc4{0%,31%,to{transform:scale(2);opacity:0}15%,40%{opacity:0.7}30%,70%{transform:scale(1);opacity:0}}.action-btn.selected[data-v-0d732dc4]:before{content:"";position:absolute;z-index:-1;top:0;left:0;bottom:0;right:0;border:1px solid var(--q-color-primary);border-radius:20px;transform-origin:center;opacity:0;animation:focus-data-v-0d732dc4 1.8s infinite}.peer-dialog-card[data-v-54be07de]{width:80vw;max-width:960px!important;max-height:calc(100vh - 100px)}.list-title[data-v-54be07de]{font-size:18px;margin-left:12px;margin-bottom:4px}.scroll-area[data-v-54be07de]{max-height:calc(100vh - 200px);overflow:auto}.library-container[data-v-203f2a72]{display:flex;flex-direction:column;height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top));width:100%;max-width:100%}.library-container.larger[data-v-203f2a72]{height:calc(100vh - 50px - env(safe-area-inset-bottom, -30px) - env(safe-area-inset-top))}.library-header[data-v-203f2a72]{border-bottom:1px solid #dcdcdc}.body--dark .library-header[data-v-203f2a72]{border-bottom:1px solid #444}.library-view[data-v-203f2a72]{flex:1 1 auto;overflow:hidden}.fade-enter-active[data-v-203f2a72],.fade-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.fade-enter[data-v-203f2a72],.fade-leave-to[data-v-203f2a72]{opacity:0}.slide-enter-active[data-v-203f2a72],.slide-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.slide-leave-to[data-v-203f2a72]{pointer-events:none;opacity:0;transform:translateX(-20%)}.slide-enter[data-v-203f2a72]{opacity:0;transform:translateX(20%)}@media (max-width:599px){.connection-status[data-v-203f2a72],.from-network-hint[data-v-203f2a72]{display:inline-block}}.header-crumbs .q-breadcrumbs .flex{flex-wrap:nowrap}.header-crumbs .q-breadcrumbs__el{flex-wrap:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-view{position:relative}.body--dark .follow-btn[data-v-711b4078]{-webkit-backdrop-filter:brightness(1.1);backdrop-filter:brightness(1.1);filter:brightness(1.6)}.follow-btn[data-v-711b4078]{transition:all 100ms ease-in-out;font-weight:400;text-align:center;text-transform:uppercase;min-width:100px;font-size:0.8rem;padding:6px 8px;background:transparent;color:var(--q-color-txt-primary);border:1px solid var(--q-color-txt-primary);border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.follow-btn.hovered[data-v-711b4078]{color:var(--q-color-negative);border:1px solid var(--q-color-negative)}.follow-btn.followable[data-v-711b4078]{background:var(--q-color-primary);border:var(--q-color-primary);color:var(--q-color-on-primary);filter:brightness(1);transition:box-shadow 400ms ease-in-out,filter 100ms ease-in-out;box-shadow:0 0 4px var(--q-color-primary)}.follow-btn.followable.hovered[data-v-711b4078]{filter:brightness(1.15);box-shadow:0 0 16px var(--q-color-primary)}.follow-btn.pending[data-v-711b4078]{filter:saturate(0);cursor:not-allowed}.follow-btn.disableFollow[data-v-711b4078]{cursor:not-allowed}#video-splash[data-v-bcdd35fc]{width:100%;height:100%;background-color:#000;color:#fff;opacity:0.85;display:flex;position:absolute;left:0;top:0;z-index:10;justify-content:center;align-items:center}#video-splash>[data-v-bcdd35fc]{flex-direction:column;flex-basis:auto}.loading[data-v-bcdd35fc]{display:flex;width:100%;justify-content:center;align-items:center}.audio-info-container[data-v-d5366250]{position:absolute;left:0;top:0;display:flex;flex-direction:column-reverse;align-items:center;width:100%;height:50%;-webkit-user-select:none;user-select:none;z-index:3}.audio-info-container p[data-v-d5366250]{color:#fff}.vjs-button:focus{border:none;outline:none}.video-js .vjs-big-play-button{height:calc(2rem + 32px);border:none}.video-js .vjs-big-play-button .vjs-icon-placeholder{display:none}.vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-paused .vjs-big-play-button .vjs-big-play-button,.vjs-paused.vjs-has-started .vjs-big-play-button{display:block;background-color:hsla(0,0%,39.2%,0.3)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:hover,.vjs-paused.vjs-has-started .vjs-big-play-button:hover{background-color:hsla(0,0%,39.2%,0.5)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:before,.vjs-paused.vjs-has-started .vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-16-9{padding-top:0!important}:focus-visible{outline:none!important}.vjs-progress-control .vjs-slider{text-shadow:none!important;box-shadow:none!important;border-style:none!important;border-color:transparent!important}#video-container{height:calc(100% - env(safe-area-inset-bottom));position:absolute;width:100%}#video-container video{background-color:#000}#video-container .vjs-big-play-button{background-color:hsla(0,0%,58.8%,0.3)}#video-container .vjs-big-play-button:hover{background-color:hsla(0,0%,58.8%,0.5)}.body--dark #video-container video{background-color:#1d1d1d}.body--dark #video-container .vjs-big-play-button{background-color:#424242}.body--dark #video-container .vjs-big-play-button:hover{background-color:#616161}.vjs-subs-caps-button li{text-transform:unset;-webkit-user-select:none;user-select:none}.vjs-subs-caps-button .vjs-menu-content{overflow-x:hidden;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:200px;right:0}.vjs-subs-caps-button .vjs-menu-content .vjs-menu-item-text{display:block;word-wrap:break-word}.vjs-control-bar{z-index:1}.vjs-control-bar .vjs-remaining-time{width:55px;-webkit-user-select:none;user-select:none}#download-progress{height:100%;width:100%;background:transparent;z-index:2}.open:before{content:""}.open:before,.subs:before{font-family:FontAwesome;cursor:pointer;font-size:15px}.subs:before{content:""}.advanced:before{font-family:FontAwesome;content:"";cursor:pointer;font-size:15px}.add-sub-btn:after{content:"";border-bottom:1px solid grey;display:block;margin:2px 8px -2px 8px}.q-dialog .dialog-actions[data-v-580a0550]{display:block}.dialog-actions[data-v-580a0550]{display:none}.post-channel-info-container[data-v-580a0550]{transition:transform 400ms ease-in-out!important;position:absolute;top:0;width:100%}.post-channel-info-container.hide[data-v-580a0550]{transform:translateY(-100%)}.rate-tip[data-v-580a0550]{max-width:300px;font-size:12px;margin:4px 0}body.screen--xs .q-virtual-scroll__content>.post-card[data-v-580a0550]{margin:8px!important;width:calc(100vw - 20px)}body.screen--xs .q-dialog__inner>.post-card[data-v-580a0550]{margin:0}.post-card[data-v-580a0550]{width:80vw;max-width:640px;margin:16px auto;transition:padding-top 400ms ease-in-out}.post-desc[data-v-580a0550]{justify-content:space-between;flex-direction:column}.favorite-icon[data-v-580a0550]{vertical-align:text-bottom}.desc-main .desc-title[data-v-580a0550]{font-size:1.125rem}.post-desc .post-buttons[data-v-580a0550]{white-space:nowrap;overflow:hidden}.image-container[data-v-580a0550]{height:360px;aspect-ratio:2/3;-webkit-backdrop-filter:saturate(1.5) brightness(0.8);backdrop-filter:saturate(1.5) brightness(0.8);border-radius:4px}.image-container img[data-v-580a0550]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.action-button[data-v-580a0550]{max-width:calc(50% - 8px)}.action-button-content[data-v-580a0550]{max-width:100%;overflow:hidden;text-overflow:ellipsis}.action-button-content i[data-v-580a0550]{margin-right:4px}.back-to-top[data-v-ec8a50cc]{margin:16px;margin-bottom:calc(16px + env(safe-area-inset-bottom));margin-right:calc(16px + env(safe-area-inset-right))}.animate-enter-active[data-v-ec8a50cc],.animate-leave-active[data-v-ec8a50cc]{transition:0.1s}.animate-enter[data-v-ec8a50cc],.animate-leave-to[data-v-ec8a50cc]{transform:translateY(16px);opacity:0}.back-btn[data-v-ec8a50cc]{position:relative;transition:all 0.2s ease-in-out}.back-btn.hide[data-v-ec8a50cc]{opacity:0;transition-duration:0s;transition-delay:0s}.back-btn:hover .fab-inner-text[data-v-ec8a50cc]{width:88px}.fab-inner-text[data-v-ec8a50cc]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.channel-desc[data-v-37cd58ed]{max-height:80px;word-break:break-all;overflow:auto;text-overflow:ellipsis}.channel-card[data-v-37cd58ed]{width:290px;margin:8px;transition:transform 200ms ease-in-out,box-shadow 200ms ease-in-out!important;box-shadow:0 1px 2px rgba(0,0,0,0.24)!important}.channel-card[data-v-37cd58ed]:hover{transform:translateY(-4px);box-shadow:0 4px 16px 2px rgba(0,0,0,0.12)!important}.image-container[data-v-37cd58ed]{overflow:hidden;-webkit-backdrop-filter:saturate(1.5) brightness(0.3);backdrop-filter:saturate(1.5) brightness(0.3);position:relative;word-break:break-all}.channel-image[data-v-37cd58ed]{width:290px}.show-search-channel[data-v-1c919252]{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));transition:all 0.2s ease}.channel-search-btn[data-v-1c919252]{transition:all 0.2s ease}.channel-search-btn.hide[data-v-1c919252]{opacity:0;transition-duration:0s}.channel-search-btn:hover .fab-inner-text[data-v-1c919252]{width:72px}.fab-inner-text[data-v-1c919252]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.higher[data-v-1c919252]{bottom:calc(88px + env(safe-area-inset-bottom));transition-delay:0s}.search-dialog[data-v-1c919252]{width:80vw;max-width:660px;max-height:calc(100vh - 120px)}.search-results>i[data-v-1c919252]{width:290px;height:0;margin:0 8px}.library-inner-container[data-v-872ead0c]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll[data-v-872ead0c]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll.web[data-v-872ead0c]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.preview-image[data-v-872ead0c]{max-height:80vh;max-width:100%;display:block}.no-data[data-v-872ead0c]{width:75%;max-width:640px;height:400px;background-color:#eee;margin:16px auto;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-872ead0c]{background-color:#333}.no-data-btn[data-v-872ead0c]{margin-left:auto;margin-right:auto;margin-top:160px}.scroll-to-top[data-v-872ead0c]{bottom:48px;right:12px}.transparent[data-v-872ead0c]{opacity:0}.library-following[data-v-0a6f4e44]{--appbar-height:30px;--header-height:109px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.library-following.web[data-v-0a6f4e44]{max-height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.library-following>i[data-v-0a6f4e44]{width:290px;height:0;margin:0 8px}.no-data[data-v-0a6f4e44]{width:290px;height:451px;background-color:#eee;display:inline-block;margin:8px;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-0a6f4e44]{background-color:#333}.no-data-btn[data-v-0a6f4e44]{margin-left:auto;margin-right:auto;margin-top:180px}.file-selector-input[data-v-a5acd74c]{display:none}.local-favorite[data-v-c0faef30]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.local-favorite.web[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.web .favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.save-or-load[data-v-c0faef30]{right:16px;bottom:16px;transition:0.2s ease;transition-delay:0.2s}.save-or-load.higher[data-v-c0faef30]{bottom:88px;transition-delay:0s}.preview-image[data-v-c0faef30]{max-height:80vh;max-width:100%;display:block}.backup-btn[data-v-c0faef30]{transition:opacity 0.2s ease}.backup-btn.hide[data-v-c0faef30]{opacity:0;transition-duration:0s}.backup-btn:hover .fab-inner-text[data-v-c0faef30]{width:72px}.fab-inner-text[data-v-c0faef30]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.image-container[data-v-70ea5328]{width:56px;height:100%;border:1px solid #dcdcdc;border-radius:4px;vertical-align:middle}.preview-image[data-v-70ea5328]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.preview-image.error[data-v-70ea5328],.preview-image.loading[data-v-70ea5328]{display:none}.task-select[data-v-48adc3b5]{max-height:100%;overflow:hidden}.set-title[data-v-48adc3b5]{color:#566b94}.from-magnet[data-v-48adc3b5]{color:var(--q-color-primary);cursor:pointer}.library-excel[data-v-27719a2e]{width:100%;max-width:100%;height:100%;max-height:80vh}.excel-card[data-v-27719a2e]{height:100%}.excel-main[data-v-27719a2e]{height:calc(100% - 40px);overflow:auto}.post-table .text-left[data-v-27719a2e]{white-space:pre-wrap;word-break:break-all}.post-table .text-left.post-title[data-v-27719a2e],.post-table .text-left.post-url[data-v-27719a2e]{white-space:nowrap;word-break:keep-all;width:200px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.post-table .post-img[data-v-27719a2e]{width:120px}.post-list-card[data-v-1e291392]{height:80vh}.post-list-title[data-v-1e291392]{position:-webkit-sticky;position:sticky;z-index:1;top:0;background:var(--q-color-page)}.post-table td[data-v-1e291392]{vertical-align:top}.excel-dialog .q-dialog__inner[data-v-1e291392]{width:90vw;margin-left:auto;margin-right:auto}.import-entry[data-v-1e291392]{max-width:720px;width:80vw}.post-title[data-v-1e291392]{max-width:240px;overflow:hidden;text-overflow:ellipsis}.post-desc[data-v-1e291392]{white-space:pre-wrap;word-break:break-all}.card-container[data-v-7e12c2f2]{max-height:calc(100vh - 80px);display:flex;flex-flow:column;overflow:auto;flex:1}.card-footer[data-v-7e12c2f2],.card-header[data-v-7e12c2f2]{flex:1 0 auto}.card-content[data-v-7e12c2f2]{flex:0 1 100%;overflow-y:auto;flex-flow:column}.from-file-or-task[data-v-7e12c2f2]{min-height:96px}.from-upload-task[data-v-7e12c2f2]{width:240px;white-space:nowrap}.edit-main[data-v-755ddde0]{--appbar-height:30px;--header-height:109px;padding:16px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.edit-main>[data-v-755ddde0]{width:290px}.edit-main>i[data-v-755ddde0]{width:290px;height:0;margin:0 8px}.add-channel[data-v-755ddde0]{--fab-radius:36px;width:290px;height:425px;min-height:425px;transition:all 200ms ease-in-out}.add-channel[data-v-755ddde0]:hover{transform:scale(0.95)}.add-channel:hover>.add-channel-panel[data-v-755ddde0]{width:calc(var(--fab-radius)*4 + 8px)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]{box-shadow:0 0 8px var(--q-color-primary)}.add-channel:hover>.add-channel-panel:hover>.q-btn[data-v-755ddde0]{transform:scale(0.9)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]:hover{box-shadow:0 0 16px var(--q-color-primary);transform:scale(1.2);filter:brightness(1.1) saturate(1.3)}.add-channel>.add-channel-panel[data-v-755ddde0]{border-radius:var(--fab-radius)}.add-channel>.add-channel-panel>.q-btn[data-v-755ddde0],.add-channel>.add-channel-panel[data-v-755ddde0]{transition:all 0.2s ease-in-out;width:calc(var(--fab-radius)*2);height:calc(var(--fab-radius)*2)}.creator-title:hover>span[data-v-1d2daf92],.header-channel-info[data-v-1d2daf92]:hover{text-decoration:underline}.channel-header[data-v-1d2daf92]{max-width:640px;min-height:160px}body.screen--xs .channel-header[data-v-1d2daf92]{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important}.channel-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.header-icon[data-v-1d2daf92]{width:120px;height:120px;border:4px solid #fff;border-radius:50%;overflow:hidden;position:absolute;left:12px;top:12px}.body--dark .header-icon[data-v-1d2daf92]{border-color:#1f1f1f}.header-icon img[data-v-1d2daf92]{aspect-ratio:1/1;width:100%;height:100%;background:#282828}.header-badges[data-v-1d2daf92]{max-height:56px}.header-description[data-v-1d2daf92]{max-height:320px;word-break:break-all;overflow:auto}.header-actions[data-v-1d2daf92]{display:flex;justify-content:center}.header-actions .btn[data-v-1d2daf92]{margin:8px 8px 12px 8px;text-align:center;text-transform:uppercase;width:100px;font-size:14px}.header-actions .share-btn[data-v-1d2daf92]{background:transparent;color:var(--q-color-primary);border:2px solid var(--q-color-primary);padding:2px 4px;border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.header-actions .share-btn[data-v-1d2daf92]:hover{color:rgba(209,153,75,0.8666666666666667);border-color:rgba(209,153,75,0.8666666666666667)}.body--dark .header-actions .btn[data-v-1d2daf92]{background:#282828;color:rgba(209,153,75,0.6666666666666666)}.follower-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}#channel-preview-hint[data-v-fb451ef2]{background:grey!important;color:#fff!important;max-width:640px;margin-left:auto;margin-right:auto;margin-top:24px;margin-bottom:24px}.channel-info[data-v-fb451ef2]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto;margin-top:16px}.channel-info-header-space[data-v-fb451ef2]{height:48px;background-color:rgba(0,0,0,0.03137254901960784);margin:-8px -16px -30px;border-radius:4px 4px 0 0}.body--dark .channel-info-header-space[data-v-fb451ef2]{background-color:hsla(0,0%,100%,0.03137254901960784)}.channel-main-info[data-v-fb451ef2]{display:block;margin-left:60px}.channel-icon[data-v-fb451ef2]{margin-top:-3px;display:inline-block}.channel-main-info .channel-title .title-text[data-v-fb451ef2]{font-size:18px;vertical-align:sub;flex-grow:1}.block-hint[data-v-fb451ef2],.hidden-hint[data-v-fb451ef2]{flex-shrink:0}.channel-main-info .channel-title .follower[data-v-fb451ef2]{margin-top:-4px}div.channel-title[data-v-fb451ef2]{display:flex;height:24px}span.channel-title[data-v-fb451ef2]{display:inline-block;max-width:calc(100% - 130px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;line-height:20px}span.channel-title-btns[data-v-fb451ef2]{flex-shrink:0;margin-top:-4px}.channel-main-info .creator[data-v-fb451ef2]{margin-top:12px;height:24px;display:inline-block}.channel-main-info .creator span[data-v-fb451ef2]{vertical-align:bottom}.preview-image[data-v-fb451ef2]{max-height:80vh;max-width:100%;display:block}.follow-btn[data-v-fb451ef2],.share-btn[data-v-fb451ef2]{margin-top:-2px}.creator-flex-layout>i[data-v-5975beaa]{width:290px;height:0;margin:0 8px}.library-creator[data-v-5975beaa]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.creator-section[data-v-5975beaa]{position:relative}.creator-avatar[data-v-5975beaa]{transform:translateY(-50%);outline:4px solid var(--q-color-page)}.creator-info[data-v-5975beaa]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto}.creator-title[data-v-5975beaa]{font-size:22px;background:rgba(0,0,0,0.03137254901960784);padding:12px 12px 12px 108px}.body--dark .creator-title[data-v-5975beaa]{background:#282828}.creator-avatar-container[data-v-5975beaa]{position:absolute;left:12px;top:12px}.body--dark .creator-info-header-space[data-v-5975beaa]{background-color:hsla(0,0%,100%,0.03137254901960784)}.creator-description[data-v-5975beaa]{word-break:break-all;white-space:pre-wrap;max-height:320px}.avatar[data-v-5975beaa]{object-fit:contain}.creator-avatar[data-v-5975beaa]{max-width:100%;border-radius:50%;border:1px solid #dcdcdc;aspect-ratio:1/1;background:#282828}.take-down[data-v-888fffa4]{padding:12px;max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.voted-count.self-voted[data-v-888fffa4]{color:var(--q-color-primary)}.takedown-row[data-v-888fffa4]{vertical-align:top}.takedown-row.add[data-v-888fffa4]{vertical-align:middle}.takedown-id[data-v-888fffa4]{width:240px;max-width:240px;overflow:hidden;text-overflow:ellipsis}.takedown-reason[data-v-888fffa4]{width:180px}.takedown-admins div[data-v-888fffa4]{max-height:72px;width:180px;overflow:auto}.takedown-admins div div[data-v-888fffa4]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.electron .library-index-scroll,.electron .library-inner-container{--appbar-height:30px}.library-index-scroll,.library-inner-container{--appbar-height:0px;--header-height:109px;padding:0!important;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}.library-table .q-table__grid-content{height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-y:scroll;align-items:center;justify-content:center}.library-table .q-table__grid-content>div{flex-shrink:1}.library-table .q-table__middle{display:none}.library-table .q-table__bottom{padding:0!important}.library-table .library-table__loading,.library-table .q-table__bottom.q-table__bottom--nodata{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.library-table .items-center{text-align:center}.library-grid.virtual-scroll-grid-wrapper{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}body.screen--xs .library-table .q-table__grid-content{justify-content:stretch}body.screen--xs .library-table .q-table__grid-content>div{width:100%}.preview-image{max-height:80vh;max-width:100%;display:block}@keyframes highlight-bg-data-v-3671d32d{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.highlight[data-v-3671d32d]{animation:highlight-bg-data-v-3671d32d 833ms linear;animation-iteration-count:3}.torrent-name[data-v-3671d32d]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-3671d32d]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-3671d32d]{margin-right:56px}.space[data-v-3671d32d]{margin-right:10px}.torrent-info .text[data-v-3671d32d]{position:relative;top:16px}.torrent-info .status-text[data-v-3671d32d]{color:var(--q-color-secondary)}.torrent-loading[data-v-3671d32d]{margin:-6px 8px 0 0;vertical-align:middle}.operations[data-v-3671d32d]{display:flex;flex-flow:row;flex-wrap:wrap;gap:12px}.progress-text[data-v-3671d32d]{font-size:14px;color:#000}.body--dark .progress-text[data-v-3671d32d]{color:#fff}.playable-items[data-v-3671d32d]{word-break:break-all}.progress-background[data-v-3671d32d]{height:100%;position:absolute;left:0;top:0;z-index:-1;opacity:.7}.q-btn-toggle[data-v-3671d32d]{border-radius:4px;overflow:hidden}.ab-peer-hint[data-v-3671d32d]{margin-top:12px}.bottom-status[data-v-3671d32d]{display:flex;flex-wrap:wrap}.bottom-status>span[data-v-3671d32d]{display:block;word-break:keep-all;white-space:nowrap;margin-right:10px}.save-to-local-btn[data-v-3671d32d]{margin-right:-12px}.list-before[data-v-0dd405a4]{margin:72px 0}.torrent-list-large .list-before[data-v-0dd405a4]{margin:110px 0}.list-item{width:100%}@keyframes highlight-bg{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.list-item-tr.highlight{animation:highlight-bg 833ms linear;animation-iteration-count:3}.list-item-tr{cursor:normal;-webkit-user-select:none;user-select:none}.w80{width:80px}.w120{width:120px}.w150{width:150px}.badge{font-size:14px}.task-name{overflow:hidden;text-overflow:ellipsis}.name-icon{font-size:24px;position:absolute;top:10px}.name-info{padding-left:32px;overflow:hidden;text-overflow:ellipsis}.no-select{-webkit-user-select:none;user-select:none}.option-btns .q-btn{box-shadow:none}.download-speed{overflow:hidden;text-overflow:ellipsis}.download-speed button{position:absolute;right:0}.list{border-radius:0;max-width:100vw;overflow:hidden}.list,.torrent-list-large .list{max-height:calc(100vh - 150px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.torrent-list-large .list.electron,.torrent-list-large .list.xs{max-height:calc(100vh - 180px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.list thead tr th{position:-webkit-sticky;position:sticky;top:0;z-index:1}.thead-draggable{float:right;cursor:col-resize;font-size:20px;font-weight:300;color:#dcdcdc;line-height:18px}.body--dark .thead-draggable{color:#444}.list .q-table__bottom--nodata{border-top-width:0!important}.list th.thead{--table-head-height:28px;--table-thume-padding:8px;--table-thumb-size:calc(var(--table-thume-padding)*2 + 1px);padding:0 0;background-color:var(--q-color-page)}.list th.thead>span{height:var(--table-head-height);line-height:var(--table-head-height);vertical-align:middle}.list th.thead>.text-ellipsis{overflow:hidden;text-overflow:ellipsis;display:inline-block;width:calc(100% - var(--table-thumb-size))}.list th.thead>.thead-draggable{display:flex;align-items:stretch;padding:0 var(--table-thume-padding)}.list th.thead>.thead-draggable:before{content:"";border-right:1px solid currentColor}.address[data-v-4676c095],.client[data-v-4676c095]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.country-flag[data-v-4676c095]{font-family:Noto Color Emoji;font-size:20px;line-height:0;vertical-align:middle}td.status[data-v-4676c095]{padding:0}.q-card[data-v-560c4343]{height:560px!important;width:700px!important;min-width:50vw;max-width:80vw;overflow-y:scroll}.detail-dialog.capacitor[data-v-560c4343]{height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;min-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.no-select[data-v-560c4343]{-webkit-user-select:none;user-select:none}.magnet[data-v-560c4343]{overflow:scroll}.q-item.text[data-v-560c4343]{line-height:32px}.file-tree[data-v-560c4343]{word-break:keep-all}.file-tree .text[data-v-560c4343]{text-overflow:ellipsis}.file-progress[data-v-560c4343]{width:60px;flex-shrink:0}.file-name[data-v-560c4343]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.peer-table[data-v-560c4343],.tracker-table[data-v-560c4343]{background:transparent}.peers .ip[data-v-560c4343]{width:180px;max-width:180px}.subtitleList-table .url[data-v-560c4343]{max-width:300px}.peers .client[data-v-560c4343]{width:168px;max-width:168px}.tracker-table .url[data-v-560c4343]{max-width:280px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracker-table .status[data-v-560c4343]{max-width:160px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th.text-right[data-v-560c4343]{padding-left:0}.no-path[data-v-560c4343]{color:grey;pointer-events:none}.container[data-v-540e1290]{max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-x:hidden}.sticky-bar[data-v-540e1290]{z-index:1}.sticky-bar .sticky-bar-toolbar[data-v-540e1290]{flex-wrap:wrap;flex-direction:row}.sticky-bar .sticky-bar-toolbar>[data-v-540e1290]{margin:4px}.right-buttons[data-v-540e1290]{display:flex;flex-grow:1}.torrent-list[data-v-540e1290]{width:100%;flex-basis:100%}.body--dark .sticky-bar[data-v-540e1290]{border-bottom-color:hsla(0,0%,88.2%,0.28)}.body--light .sticky-bar[data-v-540e1290]{border-bottom-color:rgba(0,0,0,0.12)}.sticky-bar-large[data-v-540e1290]{height:104px}.body--dark .sticky-bar[data-v-540e1290]{background:rgba(18,18,18,0.5019607843137255)}.configuration-variable[data-v-540e1290]{display:flex;justify-content:center}.download-speed[data-v-540e1290]{flex-shrink:0;width:90px;display:inline-block;text-align:right;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}.action-container[data-v-540e1290]{position:absolute}.magnet-input textarea{white-space:nowrap}.torrent-name[data-v-71beeddd]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-71beeddd]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-71beeddd]{margin-right:56px}.task-container[data-v-71beeddd]{padding:32px 48px}.no-task[data-v-71beeddd]{text-align:center;max-width:480px;border:1px solid #dcdcdc;border-radius:8px;margin:16px auto;padding:8px}.add-hints[data-v-71beeddd]{font-size:18px}.url-input[data-v-71beeddd]{width:60vw;min-width:320px;max-width:480px}@media (max-width:600px){.task-container[data-v-71beeddd]{padding:32px 24px}}.file-selectors[data-v-a418da6e]{display:flex;flex:auto;justify-content:flex-end;padding-top:8px}.global-recommend-page[data-v-67462de2]{position:fixed;left:0;top:0;width:100vw;height:100vh;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:48px;z-index:999}:root{--sat:env(safe-area-inset-top);--sar:env(safe-area-inset-right);--sab:env(safe-area-inset-bottom);--sal:env(safe-area-inset-left)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom);margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top);margin-left:constant(safe-area-inset-left);margin-left:env(safe-area-inset-left);margin-right:constant(safe-area-inset-right);margin-right:env(safe-area-inset-right)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important}.main-area{height:100vh}.q-dialog-plugin hr{display:none}.q-dialog-plugin .q-card__section{padding-bottom:4px}.q-dialog-plugin .q-card__section.q-dialog-plugin__form{padding-top:0;padding-bottom:0}.doc-link{color:#00b4ff;font-weight:500;text-decoration:none;outline:0;border-bottom:1px dotted currentColor;transition:opacity 0.2s;white-space:nowrap}.q-btn--fab .q-btn__content span{margin-left:8px;margin-bottom:-0.2em}.alphabiz-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.alphabiz-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.alphabiz-select-filter-search-bar{box-sizing:border-box;padding:8px}.option-flags{font-family:Noto Color Emoji;font-size:1.22rem;color:#000}.virtual-scroll-grid-wrapper{--virtual-scroll-grid-gutter:16px;--virtual-scroll-grid-item-width:0px;--virtual-scroll-grid-item-height:0px;--virtual-scroll-grid-padding:calc(var(--virtual-scroll-grid-gutter)/2);overflow-x:hidden!important;overflow-y:scroll!important;box-sizing:border-box!important}.virtual-scroll-grid__after,.virtual-scroll-grid__before{padding-left:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2);padding-right:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2 - 1px);overflow:visible!important}.virtual-scroll-grid{--virtual-scroll-offset-top:0px;--virtual-scroll-offset-bottom:0px;padding-top:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-top))!important;padding-bottom:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-bottom))!important;padding-left:var(--virtual-scroll-grid-padding)!important;padding-right:calc(var(--virtual-scroll-grid-padding) - 1px)!important;display:flex;flex-wrap:wrap;box-sizing:border-box!important}.virtual-scroll-grid>*{margin:calc(var(--virtual-scroll-grid-gutter)/2)!important;overflow:hidden;width:var(--virtual-scroll-grid-item-width)!important}.virtual-scroll-grid__dev{z-index:10000;overflow:hidden;padding:16px;background-color:#fff;box-shadow:0 0 8px rgba(0,0,0,0.5);border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-option-group>div>.q-radio{display:flex!important}.dialog-option-group>div>.q-radio>.q-radio__label{flex-grow:1;overflow:hidden}.dialog-prompt-tel>.q-field__inner>.q-field__control-container{width:0!important}.dialog-prompt-tel>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0!important}@font-face{font-family:Noto Color Emoji;src:url(/css/NotoColorEmoji.ttf)}.video-js-player__controller-menu .controller-popup,.video-js-player__controller-menu .controller\:panel,.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top,.video-js-player__controller .controller\:panel{-webkit-backdrop-filter:blur(28px) brightness(0.9);backdrop-filter:blur(28px) brightness(0.9);background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important}.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top{padding:4px 4px}.video-js-player__controller .is-audio-hint{opacity:0.3}.video-js-player__controller .is-audio-hint img{max-width:256px}.video-js-player__controller .is-audio-hint p{color:#ddd}.video-js-player__controller-menu .controller-popup{box-shadow:0 0 0 0.5px hsla(0,0%,100%,0.2),0 0 16px rgba(0,0,0,0.8);border-radius:16px;padding:4px 4px}div:not(.q-item__section)>.video-js-player__subtitle{margin-top:0.625em;margin-bottom:0.625em}.video-js-player__subtitle{font-style:var(--subtitle-style,normal);font-weight:var(--subtitle-weight,normal);font-size:var(--subtitle-size,1.25rem);-webkit-backdrop-filter:blur(28px) brightness(0.9)!important;backdrop-filter:blur(28px) brightness(0.9)!important;background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important;padding:0.2em 0.625em;border-radius:0.625em}.video-js-player__subtitle.fullscreen-subtitle{font-size:max(18px,min(2.8vh,2vw))}.controller\:panel[data-v-18dfdf92]{box-shadow:inset -0.5px 0.5px 0.5px hsla(0,0%,100%,0.2)}.video-js-player__buffer-progress>div[data-v-4e25daec]{transition:left 300ms ease-in-out,width 300ms ease-in-out;background-color:hsla(0,0%,100%,0.4);-webkit-backdrop-filter:saturate(1.2) brightness(1)!important;backdrop-filter:saturate(1.2) brightness(1)!important}.video-js-player__progress-bar{--progress-size:4px;--slider-size:4px;--slider-offset:0px}.video-js-player__progress-bar .video-js-player__buffer-progress{height:4px}.video-js-player__progress-bar .video-js-player__progress-bar-buffered{pointer-events:none;z-index:1}.video-js-player__progress-bar .video-js-player__progress-bar-slider{z-index:2;top:-6px}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__track-container{cursor:pointer!important}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__thumb{z-index:4!important}.video-js-player__page{-webkit-backdrop-filter:blur(28px) brightness(0.6);backdrop-filter:blur(28px) brightness(0.6);background-color:rgba(50,50,50,0.8);color:hsla(0,0%,100%,0.8)!important;overflow:hidden;max-width:100%!important;max-height:100%!important;display:flex;flex-direction:column;align-items:stretch}.video-js-player__page>main{height:auto!important;min-height:0!important;flex-grow:1;overflow-x:hidden;overflow-y:auto}.video-js-player__page>main>div{margin:0 auto;max-width:1280px}.video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb,.video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.3)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.q-item__section>.video-js-player__subtitle{box-shadow:0 0 1px hsla(0,0%,100%,0.3)}.video-js-player__controller .q-btn-group.lorem-ipsum{padding:2px}.video-js-player__controller .q-btn-group.lorem-ipsum .q-btn>.q-btn__wrapper{padding:0 16px;height:1.5em;min-height:1.5em}.video-js-player__controller div.column>.q-btn-group{gap:4px;padding:4px}.video-js-player__controller div.column>.q-btn-group .q-btn{flex-grow:1;border-radius:9999px}.video-js-player__controller div.column>.q-btn-group .q-btn>.q-btn__wrapper{padding:0 16px;height:2em;min-height:2em}.video-js-player__setting-list{border-radius:12px}.video-js-player__setting-list>.q-item{min-height:64px;padding:16px 16px!important}.video-js-player__setting-list>.q-item:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0;border-bottom-right-radius:0}.video-js-player__setting-list>.q-item:last-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player__volume-slider{border-radius:8px!important;overflow:hidden;background-color:hsla(0,0%,100%,0.1);box-shadow:inset 0 0 0 0.5px hsla(0,0%,100%,0.1)!important}.video-js-player__volume-slider>.q-slider__track-container{padding:0}.video-js-player__volume-slider>.q-slider__track-container .q-slider__selection{border-radius:0!important;background-color:hsla(0,0%,100%,0.2)}.controller-popup__transition{transform-origin:50% 100%!important}.controller-popup__transition.q-transition--scale-enter-from,.controller-popup__transition.q-transition--scale-leave-to{transform:scale(0)!important}.controller-popup__transition.q-transition--scale-enter-to,.controller-popup__transition.q-transition--scale-leave-from{transform:scale(1)!important}.controller-popup__transition.q-transition--scale-enter-active,.controller-popup__transition.q-transition--scale-leave-active{transition-property:transform;transition-duration:300ms!important}.controller-popup__transition.q-transition--scale-leave-active{opacity:1!important;transition-timing-function:cubic-bezier(0.65,-0.25,0.37,0.84)}.controller-popup__transition.q-transition--scale-enter-active{opacity:1!important;transition-timing-function:cubic-bezier(0.52,0.51,0.12,1.2)}.video-js-player__controller-btn-toggle{background-color:hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn{border-top:0.25px solid hsla(0,0%,100%,0.1);border-bottom:0.25px solid hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn:first-child{border-top:none}.video-js-player__controller-btn-toggle>.q-btn:last-child{border-bottom:none}.video-js-player__controller-btn-toggle>.q-btn.bg-active{background-color:hsla(0,0%,100%,0.15)}.video-js-player__controller-btn-toggle>.q-btn:first-child{padding-top:4px;border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.video-js-player__controller-btn-toggle>.q-btn:last-child{padding-bottom:4px;border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.controller-popup>.video-js-player__controller-list{border-radius:12px!important;background-color:hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item{border-top:0.125px solid hsla(0,0%,100%,0.1);border-bottom:0.125px solid hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item:first-child{border-top:none}.controller-popup>.video-js-player__controller-list>.q-item:last-child{border-bottom:none}.controller-popup>.video-js-player__controller-list>.q-item{padding:4px 8px}.controller-popup>.video-js-player__controller-list>.q-item>.q-focus-helper{overflow:hidden}.controller-popup>.video-js-player__controller-list>.q-item:first-child,.controller-popup>.video-js-player__controller-list>.q-item:first-child>.q-focus-helper{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.controller-popup>.video-js-player__controller-list>.q-item:last-child,.controller-popup>.video-js-player__controller-list>.q-item:last-child>.q-focus-helper{border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player{min-width:120px;min-height:120px;background:#000}.video-js-player,.video-js-player>.video-js{display:flex;flex-direction:column;justify-content:center;align-items:center}.video-js-player>.video-js{outline:none!important;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:scale-down}.video-js-player>.video-js>video{width:100%;height:auto;max-width:100%;max-height:100%}.video-js-player>.video-js>button,.video-js-player>.video-js>div:not(.video-js-player__controller){display:none!important}.video-js-player>.video-js>.video-js-player__controller{display:flex}.primary[data-v-6fc70cc6]{background-color:#1976d2;color:#fff}.body--dark .grey[data-v-6fc70cc6]{background-color:#424242}.grey[data-v-6fc70cc6]{background-color:#eee}.amplify-card-actions,.amplify-card-description,.amplify-card-form{width:100%;overflow:hidden;word-break:break-word}.amplify-card-form{overflow-x:hidden;overflow-y:hidden}.background-blur .q-dialog__backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.background-mask .q-dialog__backdrop{background-color:hsla(0,0%,49.8%,0.8);-webkit-backdrop-filter:brightness(0.2) contrast(0.8) saturate(0);backdrop-filter:brightness(0.2) contrast(0.8) saturate(0)}.amplify-select{margin-bottom:20px}.amplify-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.amplify-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.amplify-select-filter-search-bar{box-sizing:border-box;padding:8px}.amplify-input-wrapper{display:flex;flex-direction:row}.amplify-input-wrapper>.amplify-input-select{margin-right:4px;flex-shrink:0}.amplify-input-wrapper>.amplify-input-select.focus{width:100%}.amplify-input-wrapper>.amplify-input{flex-shrink:1;flex-grow:1}.amplify-tel-input>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0}.amplify-input>.q-field__inner>.q-field__bottom{padding-top:0;height:24px;align-items:center}.amplify-input>.q-field__inner>.q-field__control>.q-field__control-container>input{margin-bottom:-2px}.amplify-input .amplify-input-phone-number-prefix{margin-left:6px;margin-bottom:-2px;padding:6px 0;font-size:14px;font-weight:400;letter-spacing:0.00937em;line-height:28px!important}.amplify-input .amplify-input-phone-number-prefix:first-child{margin-left:0}input[type=date]{margin:0!important;padding:0!important}input[type=date]::-webkit-datetime-edit{margin-top:2px;margin-left:0}input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-year-field{padding:0;margin:2px 10px 0 10px}input[type=date]::-webkit-inner-spin-button,input[type=number]::-webkit-inner-spin-button{display:none}.underscore[data-v-6e4f640d]:hover,.underscore[data-v-8707a8ce]:hover{text-decoration:underline}.select-none[data-v-8707a8ce]{-webkit-user-select:none;user-select:none}.underscore[data-v-654a46b2]:hover{text-decoration:underline}.panel[data-v-60f74c22]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center}.panel>[data-v-60f74c22]{margin:4px}.dev-info-action[data-v-39f109b1]{width:80px;max-width:80px}.logs .channels{padding:4px;border:1px solid #dcdcdc;word-break:break-all;max-height:400px;overflow:auto}.preload-task[data-v-6f92a449]{padding:4px;border-radius:4px;border:1px solid #dcdcdc;display:inline-block;width:calc(50% - 32px)}.task-name[data-v-6f92a449]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-logs[data-v-a7504d8e]{border:1px solid grey;border-radius:4px;margin-top:16px;padding:8px}.log[data-v-a7504d8e]{margin-top:8px;word-wrap:break-word;white-space:pre-wrap}.log-type[data-v-a7504d8e]{background:#dcdcdc;padding:4px;margin-right:8px;border-radius:4px}.development-container{height:calc(100vh - 50px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container.large{height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container>.q-card{display:flex;flex-direction:column;flex-wrap:nowrap;height:100%;overflow:hidden}.development-container .q-panel>div{height:auto}.electron .development-dialog{padding-top:30px}.development-dialog{margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top)}.signed-out-actions{position:fixed;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:7000}.body--light .ab-backdrop.blur{background-color:rgba(0,0,0,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--light .ab-backdrop.shadow{background-color:rgba(0,0,0,0.4)}.body--dark .ab-backdrop.blur{background-color:rgba(51,51,51,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--dark .ab-backdrop.shadow{background-color:rgba(51,51,51,0.4)}.ab-backdrop{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:6000}.dialog-backdrop-disabled.body--light .q-dialog .q-dialog__backdrop{background-color:rgba(0,0,0,0.1)}.dialog-backdrop-disabled.body--dark .q-dialog .q-dialog__backdrop{background-color:rgba(77,77,77,0.5)}.ab-modal-page .fade-enter-active,.ab-modal-page .fade-leave-active{transition:opacity var(--transition-duration) ease-in-out}.ab-modal-page .fade-enter,.ab-modal-page .fade-leave-to{opacity:0}.ab-modal-page .slide-right-enter-active,.ab-modal-page .slide-right-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .slide-right-enter,.ab-modal-page .slide-right-leave-to{opacity:0.2;transform:translateX(100%)}.ab-modal-page .scale-enter-active,.ab-modal-page .scale-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .scale-enter,.ab-modal-page .scale-leave-to{opacity:0;transform:scale(0)}.ab-modal-page{--transition-duration:300ms;--ab-sign-in-page-offset:0}.electron .ab-modal-page{--ab-modal-page-offset:30px}.ab-modal-page{position:absolute;top:0;left:0}.ab-modal-page .container{pointer-events:none;position:fixed;top:var(--ab-modal-page-offset);left:0;width:100vw;height:calc(100vh - var(--ab-modal-page-offset))}.ab-modal-page .container>*{pointer-events:visible}body.screen--xs .ab-modal-page .container{overflow:auto;width:100vw!important;height:100vh!important}body.screen--xs .ab-modal-page .container .q-card.mobile-fullscreen{min-width:100vw!important;min-height:100vh!important;position:absolute;top:0;left:0;border-radius:0!important}.ab-task-page{max-width:100vw!important;max-height:100vh!important}.ab-task-page,.ab-task-page .q-layout.q-layout--containerized,.ab-task-page .q-layout.q-layout--containerized>.q-page-container{width:100vw!important;height:100vh!important}.electron .ab-task-page .q-header,body.electron .development-dialog{padding-top:30px}.development-dialog{position:fixed;top:0;left:0;background-color:var(--q-color-page)!important;width:100vw;height:100vh!important;min-width:unset!important;max-width:unset!important;min-height:unset!important;max-height:100vh!important;z-index:7000;overflow:hidden;display:flex;flex-direction:column} \ No newline at end of file +@charset "UTF-8";html{--ion-safe-area-top:env(safe-area-inset-top);--ion-safe-area-bottom:env(safe-area-inset-bottom);--ion-safe-area-left:env(safe-area-inset-left);--ion-safe-area-right:env(safe-area-inset-right);background-color:var(--q-color-page)}body{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left);padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}body::-webkit-scrollbar,body ::-webkit-scrollbar{width:8px;height:8px}body::-webkit-scrollbar-corner,body ::-webkit-scrollbar-corner,body::-webkit-scrollbar-track,body ::-webkit-scrollbar-track{background-color:initial}body.electron{--appbar-height:30px}.body--light::-webkit-scrollbar-thumb,.body--light ::-webkit-scrollbar-thumb{background-color:#e0e0e0}.body--light::-webkit-scrollbar-thumb:hover,.body--light ::-webkit-scrollbar-thumb:hover{background-color:#d0d0d0}.body--dark::-webkit-scrollbar-thumb,.body--dark ::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.3137254901960784)}.body--dark::-webkit-scrollbar-thumb:hover,.body--dark ::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.4392156862745098)}#q-app,body,html{height:100%}textarea{cursor:auto}.grecaptcha-badge,.grecaptcha-badge+iframe{display:none}.q-icon.fab{font-size:1.4em}.q-textarea>.q-field__inner>.q-field__control{padding-right:2px;padding-left:2px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container .q-field__label{margin-left:10px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container textarea{padding:1px 10px 10px}@media print{@page{size:A4;margin:1in}body{width:768pt;aspect-ratio:9/16}body *{display:none}body .printable{display:block;font-size:16pt}}.q-select__dialog>.q-field>.q-field__inner>.q-field__control{align-items:center;background-color:var(--q-color-page)!important;min-height:56px}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:before{background-color:initial;border-bottom:1px solid #7f7f7f}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:after{background-color:var(--q-color-primary);height:1px}body.screen--xs.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{top:0!important;padding:0!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;top:0!important;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}@media screen and (max-height:600px) and (orientation:landscape){body.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body .q-dialog.fullscreen-dialog>.q-dialog__inner,body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}}.q-drawer-container{position:absolute;top:0;width:100%;height:100vh}.q-drawer{position:relative!important;height:100%}.body--light{--q-color-page:#fcfcfc;--q-color-on-page:#4a4a4a}.body--dark{--q-color-page:#1f1f1f;--q-color-on-page:#c5c5c5}.bg-page,.q-card,.q-drawer,.q-footer,.q-menu,.q-tab-panels,.q-table,.q-table--grid,.q-table__card{background-color:var(--q-color-page)!important}.q-card,.q-drawer,.q-footer,.q-menu,.q-notification.bg-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-table,.q-table--grid,.q-table__card,.text-page{color:var(--q-color-page)!important}.bg-page.q-card,.bg-page .q-card,.bg-page.q-drawer,.bg-page .q-drawer,.bg-page.q-footer,.bg-page .q-footer,.bg-page.q-menu,.bg-page .q-menu,.bg-page.q-notification,.bg-page.q-tab-panels,.bg-page .q-tab-panels,.bg-page.q-table,.bg-page .q-table,.bg-page.q-table--grid,.bg-page .q-table--grid,.bg-page.q-table__card,.bg-page .q-table__card,.bg-page.text-page,.bg-page .text-page,.q-card,.q-card .q-card,.q-card .q-drawer,.q-card .q-footer,.q-card .q-menu,.q-card .q-tab-panels,.q-card .q-table,.q-card .q-table--grid,.q-card .q-table__card,.q-card .text-page,.q-drawer,.q-drawer .q-card,.q-drawer .q-drawer,.q-drawer .q-footer,.q-drawer .q-menu,.q-drawer .q-tab-panels,.q-drawer .q-table,.q-drawer .q-table--grid,.q-drawer .q-table__card,.q-drawer .text-page,.q-footer,.q-footer .q-card,.q-footer .q-drawer,.q-footer .q-footer,.q-footer .q-menu,.q-footer .q-tab-panels,.q-footer .q-table,.q-footer .q-table--grid,.q-footer .q-table__card,.q-footer .text-page,.q-menu,.q-menu .q-card,.q-menu .q-drawer,.q-menu .q-footer,.q-menu .q-menu,.q-menu .q-tab-panels,.q-menu .q-table,.q-menu .q-table--grid,.q-menu .q-table__card,.q-menu .text-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-tab-panels .q-card,.q-tab-panels .q-drawer,.q-tab-panels .q-footer,.q-tab-panels .q-menu,.q-tab-panels .q-tab-panels,.q-tab-panels .q-table,.q-tab-panels .q-table--grid,.q-tab-panels .q-table__card,.q-tab-panels .text-page,.q-table,.q-table--grid,.q-table--grid .q-card,.q-table--grid .q-drawer,.q-table--grid .q-footer,.q-table--grid .q-menu,.q-table--grid .q-tab-panels,.q-table--grid .q-table,.q-table--grid .q-table--grid,.q-table--grid .q-table__card,.q-table--grid .text-page,.q-table .q-card,.q-table .q-drawer,.q-table .q-footer,.q-table .q-menu,.q-table .q-tab-panels,.q-table .q-table,.q-table .q-table--grid,.q-table .q-table__card,.q-table .text-page,.q-table__card,.q-table__card .q-card,.q-table__card .q-drawer,.q-table__card .q-footer,.q-table__card .q-menu,.q-table__card .q-tab-panels,.q-table__card .q-table,.q-table__card .q-table--grid,.q-table__card .q-table__card,.q-table__card .text-page{color:var(--q-color-on-page)!important}.body--light{--q-color-general:#eee;--q-color-on-general:#3c3c3c}.body--dark{--q-color-general:#424242;--q-color-on-general:#e6e6e6}.bg-general{background-color:var(--q-color-general)!important}.bg-general.q-notification,.bg-general.text-general,.bg-general .text-general,.q-notification.bg-general,.text-general{color:var(--q-color-on-general)!important}.body--light{--q-color-positive:#388c5f;--q-color-on-positive:#fff}.body--dark{--q-color-positive:#066b46;--q-color-on-positive:#f6faf8}.bg-positive{background-color:var(--q-color-positive)!important}.q-notification.bg-positive,.text-positive{color:var(--q-color-positive)!important}.bg-positive.q-notification,.bg-positive.text-positive,.bg-positive .text-positive{color:var(--q-color-on-positive)!important}.body--light{--q-color-negative:#b03535;--q-color-on-negative:#fff}.body--dark{--q-color-negative:#b30f0f;--q-color-on-negative:#fff;background-color:var(--q-color-page)!important}.bg-negative{background-color:var(--q-color-negative)!important}.q-notification.bg-negative,.text-negative{color:var(--q-color-negative)!important}.bg-negative.q-notification,.bg-negative.text-negative,.bg-negative .text-negative{color:var(--q-color-on-negative)!important}.q-item--active,.q-item.q-router-link--active{color:var(--q-color-txt-primary)!important}.body--light .q-bar{background-color:initial;backdrop-filter:brightness(0.7);-webkit-backdrop-filter:brightness(0.7)}.body--dark .q-bar{background-color:initial;backdrop-filter:brightness(0.8);-webkit-backdrop-filter:brightness(0.8)}.body--dark{--q-color-dark:var(--q-color-page)}.q-menu{z-index:7000!important}.feedback-main{width:480px;min-height:400px}.details-input textarea{resize:none!important}.diagnotic-main[data-v-8fee9c62]{width:80vw;max-width:600px;-webkit-user-select:none;user-select:none}.text-normal[data-v-8fee9c62]{color:#2872f6}.result-name[data-v-8fee9c62]{display:inline-block;width:160px}.markdown-dialog.fullscreen-dialog>.q-dialog__inner{padding:0!important;top:0!important}.markdown-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;border-radius:0!important;width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important}.markdown-content *{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:1rem;line-height:1.5}.markdown-content h1{font-size:2rem;line-height:2rem}.markdown-content h2{font-size:1.8rem;line-height:1.8rem}.markdown-content h3{font-size:1.6rem;line-height:1.6rem}.markdown-content h4{font-size:1.4rem;line-height:1.4rem}.markdown-content h5{font-size:1.2rem;line-height:1.2rem}.markdown-content h6{font-size:1rem;line-height:1rem}.body--dark .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(2.2) brightness(0.6)}.body--light .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(1.6) brightness(0.9)}.about-content[data-v-e4afc3b8]{margin:0 auto;font-size:14px;line-height:1.8;font-family:Amazon Ember,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,"sans-serif"}.about-content a[data-v-e4afc3b8]{color:var(--q-color-txt-primary);text-decoration:none}.about-content a[data-v-e4afc3b8]:active,.about-content a[data-v-e4afc3b8]:hover{text-decoration:underline;cursor:pointer}body.electron .application-bar{display:flex}body.electron .fullscreen>.q-table__top{padding-top:40px}.app-draggable{-webkit-app-region:drag}.app-no-draggable{-webkit-app-region:no-drag}.application-bar-icon{filter:brightness(1.2) saturate(1.2)}.application-bar{display:none;position:fixed;z-index:7000;width:100%;height:30px;color:#fff;flex-direction:row;align-items:center}.window-control-button{width:48px;height:30px;border-radius:0;transition:none}.window-close-button{background-color:initial}.window-close-button:hover{background-color:#c62828}.items-center[data-v-1f47903d]{text-align:center}.login-container[data-v-6a9c1d57]{width:480px;max-width:100%;margin-left:auto;margin-right:auto}.library-recommend[data-v-0d732dc4]{overflow:auto;height:calc(100vh - 100px - env(safe-area-inset-bottom) - env(safe-area-inset-top));padding-bottom:24px}.recommend-title.full div[data-v-0d732dc4]{color:var(--q-color-on-primary);font-weight:700;text-shadow:2px 0 2px var(--q-color-primary),0 2px 2px var(--q-color-primary),-2px 0 2px var(--q-color-primary),0 -2px 2px var(--q-color-primary),1px 1px 2px var(--q-color-primary),-1px 1px 2px var(--q-color-primary),1px -1px 2px var(--q-color-primary),-1px -1px 2px var(--q-color-primary)}.recommends[data-v-0d732dc4]{padding-bottom:160px}.recommends>i[data-v-0d732dc4]{width:290px;height:0;margin:0 8px}.channel-description[data-v-0d732dc4]{max-width:256px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:4;-webkit-box-orient:vertical;word-break:break-all;text-overflow:ellipsis}.img-container[data-v-0d732dc4]{aspect-ratio:2/3;background-color:var(--q-color-general)}.img-container img[data-v-0d732dc4]{width:100%;height:100%;display:block;object-fit:cover}.follow-selected[data-v-0d732dc4]{right:12px;bottom:48px}.recommend-actions[data-v-0d732dc4]{width:100%;max-width:100%;padding-top:24px;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;bottom:calc(env(safe-area-inset-bottom) + 16px)}.action-btn[data-v-0d732dc4]{font-size:13px}@keyframes focus-data-v-0d732dc4{0%,31%,to{transform:scale(2);opacity:0}15%,40%{opacity:0.7}30%,70%{transform:scale(1);opacity:0}}.action-btn.selected[data-v-0d732dc4]:before{content:"";position:absolute;z-index:-1;top:0;left:0;bottom:0;right:0;border:1px solid var(--q-color-primary);border-radius:20px;transform-origin:center;opacity:0;animation:focus-data-v-0d732dc4 1.8s infinite}.peer-dialog-card[data-v-54be07de]{width:80vw;max-width:960px!important;max-height:calc(100vh - 100px)}.list-title[data-v-54be07de]{font-size:18px;margin-left:12px;margin-bottom:4px}.scroll-area[data-v-54be07de]{max-height:calc(100vh - 200px);overflow:auto}.library-container[data-v-203f2a72]{display:flex;flex-direction:column;height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top));width:100%;max-width:100%}.library-container.larger[data-v-203f2a72]{height:calc(100vh - 50px - env(safe-area-inset-bottom, -30px) - env(safe-area-inset-top))}.library-header[data-v-203f2a72]{border-bottom:1px solid #dcdcdc}.body--dark .library-header[data-v-203f2a72]{border-bottom:1px solid #444}.library-view[data-v-203f2a72]{flex:1 1 auto;overflow:hidden}.fade-enter-active[data-v-203f2a72],.fade-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.fade-enter[data-v-203f2a72],.fade-leave-to[data-v-203f2a72]{opacity:0}.slide-enter-active[data-v-203f2a72],.slide-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.slide-leave-to[data-v-203f2a72]{pointer-events:none;opacity:0;transform:translateX(-20%)}.slide-enter[data-v-203f2a72]{opacity:0;transform:translateX(20%)}@media (max-width:599px){.connection-status[data-v-203f2a72],.from-network-hint[data-v-203f2a72]{display:inline-block}}.header-crumbs .q-breadcrumbs .flex{flex-wrap:nowrap}.header-crumbs .q-breadcrumbs__el{flex-wrap:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-view{position:relative}.body--dark .follow-btn[data-v-711b4078]{-webkit-backdrop-filter:brightness(1.1);backdrop-filter:brightness(1.1);filter:brightness(1.6)}.follow-btn[data-v-711b4078]{transition:all 100ms ease-in-out;font-weight:400;text-align:center;text-transform:uppercase;min-width:100px;font-size:0.8rem;padding:6px 8px;background:transparent;color:var(--q-color-txt-primary);border:1px solid var(--q-color-txt-primary);border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.follow-btn.hovered[data-v-711b4078]{color:var(--q-color-negative);border:1px solid var(--q-color-negative)}.follow-btn.followable[data-v-711b4078]{background:var(--q-color-primary);border:var(--q-color-primary);color:var(--q-color-on-primary);filter:brightness(1);transition:box-shadow 400ms ease-in-out,filter 100ms ease-in-out;box-shadow:0 0 4px var(--q-color-primary)}.follow-btn.followable.hovered[data-v-711b4078]{filter:brightness(1.15);box-shadow:0 0 16px var(--q-color-primary)}.follow-btn.pending[data-v-711b4078]{filter:saturate(0);cursor:not-allowed}.follow-btn.disableFollow[data-v-711b4078]{cursor:not-allowed}#video-splash[data-v-bcdd35fc]{width:100%;height:100%;background-color:#000;color:#fff;opacity:0.85;display:flex;position:absolute;left:0;top:0;z-index:10;justify-content:center;align-items:center}#video-splash>[data-v-bcdd35fc]{flex-direction:column;flex-basis:auto}.loading[data-v-bcdd35fc]{display:flex;width:100%;justify-content:center;align-items:center}.audio-info-container[data-v-d5366250]{position:absolute;left:0;top:0;display:flex;flex-direction:column-reverse;align-items:center;width:100%;height:50%;-webkit-user-select:none;user-select:none;z-index:3}.audio-info-container p[data-v-d5366250]{color:#fff}.vjs-button:focus{border:none;outline:none}.video-js .vjs-big-play-button{height:calc(2rem + 32px);border:none}.video-js .vjs-big-play-button .vjs-icon-placeholder{display:none}.vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-paused .vjs-big-play-button .vjs-big-play-button,.vjs-paused.vjs-has-started .vjs-big-play-button{display:block;background-color:hsla(0,0%,39.2%,0.3)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:hover,.vjs-paused.vjs-has-started .vjs-big-play-button:hover{background-color:hsla(0,0%,39.2%,0.5)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:before,.vjs-paused.vjs-has-started .vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-16-9{padding-top:0!important}:focus-visible{outline:none!important}.vjs-progress-control .vjs-slider{text-shadow:none!important;box-shadow:none!important;border-style:none!important;border-color:transparent!important}#video-container{height:calc(100% - env(safe-area-inset-bottom));position:absolute;width:100%}#video-container video{background-color:#000}#video-container .vjs-big-play-button{background-color:hsla(0,0%,58.8%,0.3)}#video-container .vjs-big-play-button:hover{background-color:hsla(0,0%,58.8%,0.5)}.body--dark #video-container video{background-color:#1d1d1d}.body--dark #video-container .vjs-big-play-button{background-color:#424242}.body--dark #video-container .vjs-big-play-button:hover{background-color:#616161}.vjs-subs-caps-button li{text-transform:unset;-webkit-user-select:none;user-select:none}.vjs-subs-caps-button .vjs-menu-content{overflow-x:hidden;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:200px;right:0}.vjs-subs-caps-button .vjs-menu-content .vjs-menu-item-text{display:block;word-wrap:break-word}.vjs-control-bar{z-index:1}.vjs-control-bar .vjs-remaining-time{width:55px;-webkit-user-select:none;user-select:none}#download-progress{height:100%;width:100%;background:transparent;z-index:2}.open:before{content:""}.open:before,.subs:before{font-family:FontAwesome;cursor:pointer;font-size:15px}.subs:before{content:""}.advanced:before{font-family:FontAwesome;content:"";cursor:pointer;font-size:15px}.add-sub-btn:after{content:"";border-bottom:1px solid grey;display:block;margin:2px 8px -2px 8px}.q-dialog .dialog-actions[data-v-580a0550]{display:block}.dialog-actions[data-v-580a0550]{display:none}.post-channel-info-container[data-v-580a0550]{transition:transform 400ms ease-in-out!important;position:absolute;top:0;width:100%}.post-channel-info-container.hide[data-v-580a0550]{transform:translateY(-100%)}.rate-tip[data-v-580a0550]{max-width:300px;font-size:12px;margin:4px 0}body.screen--xs .q-virtual-scroll__content>.post-card[data-v-580a0550]{margin:8px!important;width:calc(100vw - 20px)}body.screen--xs .q-dialog__inner>.post-card[data-v-580a0550]{margin:0}.post-card[data-v-580a0550]{width:80vw;max-width:640px;margin:16px auto;transition:padding-top 400ms ease-in-out}.post-desc[data-v-580a0550]{justify-content:space-between;flex-direction:column}.favorite-icon[data-v-580a0550]{vertical-align:text-bottom}.desc-main .desc-title[data-v-580a0550]{font-size:1.125rem}.post-desc .post-buttons[data-v-580a0550]{white-space:nowrap;overflow:hidden}.image-container[data-v-580a0550]{height:360px;aspect-ratio:2/3;-webkit-backdrop-filter:saturate(1.5) brightness(0.8);backdrop-filter:saturate(1.5) brightness(0.8);border-radius:4px}.image-container img[data-v-580a0550]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.action-button[data-v-580a0550]{max-width:calc(50% - 8px)}.action-button-content[data-v-580a0550]{max-width:100%;overflow:hidden;text-overflow:ellipsis}.action-button-content i[data-v-580a0550]{margin-right:4px}.back-to-top[data-v-ec8a50cc]{margin:16px;margin-bottom:calc(16px + env(safe-area-inset-bottom));margin-right:calc(16px + env(safe-area-inset-right))}.animate-enter-active[data-v-ec8a50cc],.animate-leave-active[data-v-ec8a50cc]{transition:0.1s}.animate-enter[data-v-ec8a50cc],.animate-leave-to[data-v-ec8a50cc]{transform:translateY(16px);opacity:0}.back-btn[data-v-ec8a50cc]{position:relative;transition:all 0.2s ease-in-out}.back-btn.hide[data-v-ec8a50cc]{opacity:0;transition-duration:0s;transition-delay:0s}.back-btn:hover .fab-inner-text[data-v-ec8a50cc]{width:88px}.fab-inner-text[data-v-ec8a50cc]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.channel-desc[data-v-37cd58ed]{max-height:80px;word-break:break-all;overflow:auto;text-overflow:ellipsis}.channel-card[data-v-37cd58ed]{width:290px;margin:8px;transition:transform 200ms ease-in-out,box-shadow 200ms ease-in-out!important;box-shadow:0 1px 2px rgba(0,0,0,0.24)!important}.channel-card[data-v-37cd58ed]:hover{transform:translateY(-4px);box-shadow:0 4px 16px 2px rgba(0,0,0,0.12)!important}.image-container[data-v-37cd58ed]{overflow:hidden;-webkit-backdrop-filter:saturate(1.5) brightness(0.3);backdrop-filter:saturate(1.5) brightness(0.3);position:relative;word-break:break-all}.channel-image[data-v-37cd58ed]{width:290px}.show-search-channel[data-v-1c919252]{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));transition:all 0.2s ease}.channel-search-btn[data-v-1c919252]{transition:all 0.2s ease}.channel-search-btn.hide[data-v-1c919252]{opacity:0;transition-duration:0s}.channel-search-btn:hover .fab-inner-text[data-v-1c919252]{width:72px}.fab-inner-text[data-v-1c919252]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.higher[data-v-1c919252]{bottom:calc(88px + env(safe-area-inset-bottom));transition-delay:0s}.search-dialog[data-v-1c919252]{width:80vw;max-width:660px;max-height:calc(100vh - 120px)}.search-results>i[data-v-1c919252]{width:290px;height:0;margin:0 8px}.library-inner-container[data-v-872ead0c]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll[data-v-872ead0c]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll.web[data-v-872ead0c]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.preview-image[data-v-872ead0c]{max-height:80vh;max-width:100%;display:block}.no-data[data-v-872ead0c]{width:75%;max-width:640px;height:400px;background-color:#eee;margin:16px auto;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-872ead0c]{background-color:#333}.no-data-btn[data-v-872ead0c]{margin-left:auto;margin-right:auto;margin-top:160px}.scroll-to-top[data-v-872ead0c]{bottom:48px;right:12px}.transparent[data-v-872ead0c]{opacity:0}.library-following[data-v-0a6f4e44]{--appbar-height:30px;--header-height:109px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.library-following.web[data-v-0a6f4e44]{max-height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.library-following>i[data-v-0a6f4e44]{width:290px;height:0;margin:0 8px}.no-data[data-v-0a6f4e44]{width:290px;height:451px;background-color:#eee;display:inline-block;margin:8px;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-0a6f4e44]{background-color:#333}.no-data-btn[data-v-0a6f4e44]{margin-left:auto;margin-right:auto;margin-top:180px}.file-selector-input[data-v-a5acd74c]{display:none}.local-favorite[data-v-c0faef30]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.local-favorite.web[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.web .favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.save-or-load[data-v-c0faef30]{right:16px;bottom:16px;transition:0.2s ease;transition-delay:0.2s}.save-or-load.higher[data-v-c0faef30]{bottom:88px;transition-delay:0s}.preview-image[data-v-c0faef30]{max-height:80vh;max-width:100%;display:block}.backup-btn[data-v-c0faef30]{transition:opacity 0.2s ease}.backup-btn.hide[data-v-c0faef30]{opacity:0;transition-duration:0s}.backup-btn:hover .fab-inner-text[data-v-c0faef30]{width:72px}.fab-inner-text[data-v-c0faef30]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.image-container[data-v-70ea5328]{width:56px;height:100%;border:1px solid #dcdcdc;border-radius:4px;vertical-align:middle}.preview-image[data-v-70ea5328]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.preview-image.error[data-v-70ea5328],.preview-image.loading[data-v-70ea5328]{display:none}.task-select[data-v-48adc3b5]{max-height:100%;overflow:hidden}.set-title[data-v-48adc3b5]{color:#566b94}.from-magnet[data-v-48adc3b5]{color:var(--q-color-primary);cursor:pointer}.library-excel[data-v-27719a2e]{width:100%;max-width:100%;height:100%;max-height:80vh}.excel-card[data-v-27719a2e]{height:100%}.excel-main[data-v-27719a2e]{height:calc(100% - 40px);overflow:auto}.post-table .text-left[data-v-27719a2e]{white-space:pre-wrap;word-break:break-all}.post-table .text-left.post-title[data-v-27719a2e],.post-table .text-left.post-url[data-v-27719a2e]{white-space:nowrap;word-break:keep-all;width:200px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.post-table .post-img[data-v-27719a2e]{width:120px}.post-list-card[data-v-1e291392]{height:80vh}.post-list-title[data-v-1e291392]{position:-webkit-sticky;position:sticky;z-index:1;top:0;background:var(--q-color-page)}.post-table td[data-v-1e291392]{vertical-align:top}.excel-dialog .q-dialog__inner[data-v-1e291392]{width:90vw;margin-left:auto;margin-right:auto}.import-entry[data-v-1e291392]{max-width:720px;width:80vw}.post-title[data-v-1e291392]{max-width:240px;overflow:hidden;text-overflow:ellipsis}.post-desc[data-v-1e291392]{white-space:pre-wrap;word-break:break-all}.card-container[data-v-7e12c2f2]{max-height:calc(100vh - 80px);display:flex;flex-flow:column;overflow:auto;flex:1}.card-footer[data-v-7e12c2f2],.card-header[data-v-7e12c2f2]{flex:1 0 auto}.card-content[data-v-7e12c2f2]{flex:0 1 100%;overflow-y:auto;flex-flow:column}.from-file-or-task[data-v-7e12c2f2]{min-height:96px}.from-upload-task[data-v-7e12c2f2]{width:240px;white-space:nowrap}.edit-main[data-v-755ddde0]{--appbar-height:30px;--header-height:109px;padding:16px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.edit-main>[data-v-755ddde0]{width:290px}.edit-main>i[data-v-755ddde0]{width:290px;height:0;margin:0 8px}.add-channel[data-v-755ddde0]{--fab-radius:36px;width:290px;height:425px;min-height:425px;transition:all 200ms ease-in-out}.add-channel[data-v-755ddde0]:hover{transform:scale(0.95)}.add-channel:hover>.add-channel-panel[data-v-755ddde0]{width:calc(var(--fab-radius)*4 + 8px)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]{box-shadow:0 0 8px var(--q-color-primary)}.add-channel:hover>.add-channel-panel:hover>.q-btn[data-v-755ddde0]{transform:scale(0.9)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]:hover{box-shadow:0 0 16px var(--q-color-primary);transform:scale(1.2);filter:brightness(1.1) saturate(1.3)}.add-channel>.add-channel-panel[data-v-755ddde0]{border-radius:var(--fab-radius)}.add-channel>.add-channel-panel>.q-btn[data-v-755ddde0],.add-channel>.add-channel-panel[data-v-755ddde0]{transition:all 0.2s ease-in-out;width:calc(var(--fab-radius)*2);height:calc(var(--fab-radius)*2)}.creator-title:hover>span[data-v-1d2daf92],.header-channel-info[data-v-1d2daf92]:hover{text-decoration:underline}.channel-header[data-v-1d2daf92]{max-width:640px;min-height:160px}body.screen--xs .channel-header[data-v-1d2daf92]{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important}.channel-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.header-icon[data-v-1d2daf92]{width:120px;height:120px;border:4px solid #fff;border-radius:50%;overflow:hidden;position:absolute;left:12px;top:12px}.body--dark .header-icon[data-v-1d2daf92]{border-color:#1f1f1f}.header-icon img[data-v-1d2daf92]{aspect-ratio:1/1;width:100%;height:100%;background:#282828}.header-badges[data-v-1d2daf92]{max-height:56px}.header-description[data-v-1d2daf92]{max-height:320px;word-break:break-all;overflow:auto}.header-actions[data-v-1d2daf92]{display:flex;justify-content:center}.header-actions .btn[data-v-1d2daf92]{margin:8px 8px 12px 8px;text-align:center;text-transform:uppercase;width:100px;font-size:14px}.header-actions .share-btn[data-v-1d2daf92]{background:transparent;color:var(--q-color-primary);border:2px solid var(--q-color-primary);padding:2px 4px;border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.header-actions .share-btn[data-v-1d2daf92]:hover{color:rgba(209,153,75,0.8666666666666667);border-color:rgba(209,153,75,0.8666666666666667)}.body--dark .header-actions .btn[data-v-1d2daf92]{background:#282828;color:rgba(209,153,75,0.6666666666666666)}.follower-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}#channel-preview-hint[data-v-fb451ef2]{background:grey!important;color:#fff!important;max-width:640px;margin-left:auto;margin-right:auto;margin-top:24px;margin-bottom:24px}.channel-info[data-v-fb451ef2]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto;margin-top:16px}.channel-info-header-space[data-v-fb451ef2]{height:48px;background-color:rgba(0,0,0,0.03137254901960784);margin:-8px -16px -30px;border-radius:4px 4px 0 0}.body--dark .channel-info-header-space[data-v-fb451ef2]{background-color:hsla(0,0%,100%,0.03137254901960784)}.channel-main-info[data-v-fb451ef2]{display:block;margin-left:60px}.channel-icon[data-v-fb451ef2]{margin-top:-3px;display:inline-block}.channel-main-info .channel-title .title-text[data-v-fb451ef2]{font-size:18px;vertical-align:sub;flex-grow:1}.block-hint[data-v-fb451ef2],.hidden-hint[data-v-fb451ef2]{flex-shrink:0}.channel-main-info .channel-title .follower[data-v-fb451ef2]{margin-top:-4px}div.channel-title[data-v-fb451ef2]{display:flex;height:24px}span.channel-title[data-v-fb451ef2]{display:inline-block;max-width:calc(100% - 130px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;line-height:20px}span.channel-title-btns[data-v-fb451ef2]{flex-shrink:0;margin-top:-4px}.channel-main-info .creator[data-v-fb451ef2]{margin-top:12px;height:24px;display:inline-block}.channel-main-info .creator span[data-v-fb451ef2]{vertical-align:bottom}.preview-image[data-v-fb451ef2]{max-height:80vh;max-width:100%;display:block}.follow-btn[data-v-fb451ef2],.share-btn[data-v-fb451ef2]{margin-top:-2px}.creator-flex-layout>i[data-v-5975beaa]{width:290px;height:0;margin:0 8px}.library-creator[data-v-5975beaa]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.creator-section[data-v-5975beaa]{position:relative}.creator-avatar[data-v-5975beaa]{transform:translateY(-50%);outline:4px solid var(--q-color-page)}.creator-info[data-v-5975beaa]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto}.creator-title[data-v-5975beaa]{font-size:22px;background:rgba(0,0,0,0.03137254901960784);padding:12px 12px 12px 108px}.body--dark .creator-title[data-v-5975beaa]{background:#282828}.creator-avatar-container[data-v-5975beaa]{position:absolute;left:12px;top:12px}.body--dark .creator-info-header-space[data-v-5975beaa]{background-color:hsla(0,0%,100%,0.03137254901960784)}.creator-description[data-v-5975beaa]{word-break:break-all;white-space:pre-wrap;max-height:320px}.avatar[data-v-5975beaa]{object-fit:contain}.creator-avatar[data-v-5975beaa]{max-width:100%;border-radius:50%;border:1px solid #dcdcdc;aspect-ratio:1/1;background:#282828}.take-down[data-v-888fffa4]{padding:12px;max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.voted-count.self-voted[data-v-888fffa4]{color:var(--q-color-primary)}.takedown-row[data-v-888fffa4]{vertical-align:top}.takedown-row.add[data-v-888fffa4]{vertical-align:middle}.takedown-id[data-v-888fffa4]{width:240px;max-width:240px;overflow:hidden;text-overflow:ellipsis}.takedown-reason[data-v-888fffa4]{width:180px}.takedown-admins div[data-v-888fffa4]{max-height:72px;width:180px;overflow:auto}.takedown-admins div div[data-v-888fffa4]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.electron .library-index-scroll,.electron .library-inner-container{--appbar-height:30px}.library-index-scroll,.library-inner-container{--appbar-height:0px;--header-height:109px;padding:0!important;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}.library-table .q-table__grid-content{height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-y:scroll;align-items:center;justify-content:center}.library-table .q-table__grid-content>div{flex-shrink:1}.library-table .q-table__middle{display:none}.library-table .q-table__bottom{padding:0!important}.library-table .library-table__loading,.library-table .q-table__bottom.q-table__bottom--nodata{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.library-table .items-center{text-align:center}.library-grid.virtual-scroll-grid-wrapper{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}body.screen--xs .library-table .q-table__grid-content{justify-content:stretch}body.screen--xs .library-table .q-table__grid-content>div{width:100%}.preview-image{max-height:80vh;max-width:100%;display:block}@keyframes highlight-bg-data-v-3671d32d{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.highlight[data-v-3671d32d]{animation:highlight-bg-data-v-3671d32d 833ms linear;animation-iteration-count:3}.torrent-name[data-v-3671d32d]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-3671d32d]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-3671d32d]{margin-right:56px}.space[data-v-3671d32d]{margin-right:10px}.torrent-info .text[data-v-3671d32d]{position:relative;top:16px}.torrent-info .status-text[data-v-3671d32d]{color:var(--q-color-secondary)}.torrent-loading[data-v-3671d32d]{margin:-6px 8px 0 0;vertical-align:middle}.operations[data-v-3671d32d]{display:flex;flex-flow:row;flex-wrap:wrap;gap:12px}.progress-text[data-v-3671d32d]{font-size:14px;color:#000}.body--dark .progress-text[data-v-3671d32d]{color:#fff}.playable-items[data-v-3671d32d]{word-break:break-all}.progress-background[data-v-3671d32d]{height:100%;position:absolute;left:0;top:0;z-index:-1;opacity:.7}.q-btn-toggle[data-v-3671d32d]{border-radius:4px;overflow:hidden}.ab-peer-hint[data-v-3671d32d]{margin-top:12px}.bottom-status[data-v-3671d32d]{display:flex;flex-wrap:wrap}.bottom-status>span[data-v-3671d32d]{display:block;word-break:keep-all;white-space:nowrap;margin-right:10px}.save-to-local-btn[data-v-3671d32d]{margin-right:-12px}.list-before[data-v-0dd405a4]{margin:72px 0}.torrent-list-large .list-before[data-v-0dd405a4]{margin:110px 0}.list-item{width:100%}@keyframes highlight-bg{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.list-item-tr.highlight{animation:highlight-bg 833ms linear;animation-iteration-count:3}.list-item-tr{cursor:normal;-webkit-user-select:none;user-select:none}.w80{width:80px}.w120{width:120px}.w150{width:150px}.badge{font-size:14px}.task-name{overflow:hidden;text-overflow:ellipsis}.name-icon{font-size:24px;position:absolute;top:10px}.name-info{padding-left:32px;overflow:hidden;text-overflow:ellipsis}.no-select{-webkit-user-select:none;user-select:none}.option-btns .q-btn{box-shadow:none}.download-speed{overflow:hidden;text-overflow:ellipsis}.download-speed button{position:absolute;right:0}.list{border-radius:0;max-width:100vw;overflow:hidden}.list,.torrent-list-large .list{max-height:calc(100vh - 150px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.torrent-list-large .list.electron,.torrent-list-large .list.xs{max-height:calc(100vh - 180px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.list thead tr th{position:-webkit-sticky;position:sticky;top:0;z-index:1}.thead-draggable{float:right;cursor:col-resize;font-size:20px;font-weight:300;color:#dcdcdc;line-height:18px}.body--dark .thead-draggable{color:#444}.list .q-table__bottom--nodata{border-top-width:0!important}.list th.thead{--table-head-height:28px;--table-thume-padding:8px;--table-thumb-size:calc(var(--table-thume-padding)*2 + 1px);padding:0 0;background-color:var(--q-color-page)}.list th.thead>span{height:var(--table-head-height);line-height:var(--table-head-height);vertical-align:middle}.list th.thead>.text-ellipsis{overflow:hidden;text-overflow:ellipsis;display:inline-block;width:calc(100% - var(--table-thumb-size))}.list th.thead>.thead-draggable{display:flex;align-items:stretch;padding:0 var(--table-thume-padding)}.list th.thead>.thead-draggable:before{content:"";border-right:1px solid currentColor}.address[data-v-4676c095],.client[data-v-4676c095]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.country-flag[data-v-4676c095]{font-family:Noto Color Emoji;font-size:20px;line-height:0;vertical-align:middle}td.status[data-v-4676c095]{padding:0}.q-card[data-v-560c4343]{height:560px!important;width:700px!important;min-width:50vw;max-width:80vw;overflow-y:scroll}.detail-dialog.capacitor[data-v-560c4343]{height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;min-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.no-select[data-v-560c4343]{-webkit-user-select:none;user-select:none}.magnet[data-v-560c4343]{overflow:scroll}.q-item.text[data-v-560c4343]{line-height:32px}.file-tree[data-v-560c4343]{word-break:keep-all}.file-tree .text[data-v-560c4343]{text-overflow:ellipsis}.file-progress[data-v-560c4343]{width:60px;flex-shrink:0}.file-name[data-v-560c4343]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.peer-table[data-v-560c4343],.tracker-table[data-v-560c4343]{background:transparent}.peers .ip[data-v-560c4343]{width:180px;max-width:180px}.subtitleList-table .url[data-v-560c4343]{max-width:300px}.peers .client[data-v-560c4343]{width:168px;max-width:168px}.tracker-table .url[data-v-560c4343]{max-width:280px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracker-table .status[data-v-560c4343]{max-width:160px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th.text-right[data-v-560c4343]{padding-left:0}.no-path[data-v-560c4343]{color:grey;pointer-events:none}.container[data-v-540e1290]{max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-x:hidden}.sticky-bar[data-v-540e1290]{z-index:1}.sticky-bar .sticky-bar-toolbar[data-v-540e1290]{flex-wrap:wrap;flex-direction:row}.sticky-bar .sticky-bar-toolbar>[data-v-540e1290]{margin:4px}.right-buttons[data-v-540e1290]{display:flex;flex-grow:1}.torrent-list[data-v-540e1290]{width:100%;flex-basis:100%}.body--dark .sticky-bar[data-v-540e1290]{border-bottom-color:hsla(0,0%,88.2%,0.28)}.body--light .sticky-bar[data-v-540e1290]{border-bottom-color:rgba(0,0,0,0.12)}.sticky-bar-large[data-v-540e1290]{height:104px}.body--dark .sticky-bar[data-v-540e1290]{background:rgba(18,18,18,0.5019607843137255)}.configuration-variable[data-v-540e1290]{display:flex;justify-content:center}.download-speed[data-v-540e1290]{flex-shrink:0;width:90px;display:inline-block;text-align:right;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}.action-container[data-v-540e1290]{position:absolute}.magnet-input textarea{white-space:nowrap}.torrent-name[data-v-71beeddd]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-71beeddd]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-71beeddd]{margin-right:56px}.task-container[data-v-71beeddd]{padding:32px 48px}.no-task[data-v-71beeddd]{text-align:center;max-width:480px;border:1px solid #dcdcdc;border-radius:8px;margin:16px auto;padding:8px}.add-hints[data-v-71beeddd]{font-size:18px}.url-input[data-v-71beeddd]{width:60vw;min-width:320px;max-width:480px}@media (max-width:600px){.task-container[data-v-71beeddd]{padding:32px 24px}}.file-selectors[data-v-a418da6e]{display:flex;flex:auto;justify-content:flex-end;padding-top:8px}.global-recommend-page[data-v-67462de2]{position:fixed;left:0;top:0;width:100vw;height:100vh;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:48px;z-index:999}:root{--sat:env(safe-area-inset-top);--sar:env(safe-area-inset-right);--sab:env(safe-area-inset-bottom);--sal:env(safe-area-inset-left)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom);margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top);margin-left:constant(safe-area-inset-left);margin-left:env(safe-area-inset-left);margin-right:constant(safe-area-inset-right);margin-right:env(safe-area-inset-right)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important}.main-area{height:100vh}.q-dialog-plugin hr{display:none}.q-dialog-plugin .q-card__section{padding-bottom:4px}.q-dialog-plugin .q-card__section.q-dialog-plugin__form{padding-top:0;padding-bottom:0}.doc-link{color:#00b4ff;font-weight:500;text-decoration:none;outline:0;border-bottom:1px dotted currentColor;transition:opacity 0.2s;white-space:nowrap}.q-btn--fab .q-btn__content span{margin-left:8px;margin-bottom:-0.2em}.alphabiz-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.alphabiz-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.alphabiz-select-filter-search-bar{box-sizing:border-box;padding:8px}.option-flags{font-family:Noto Color Emoji;font-size:1.22rem;color:#000}.virtual-scroll-grid-wrapper{--virtual-scroll-grid-gutter:16px;--virtual-scroll-grid-item-width:0px;--virtual-scroll-grid-item-height:0px;--virtual-scroll-grid-padding:calc(var(--virtual-scroll-grid-gutter)/2);overflow-x:hidden!important;overflow-y:scroll!important;box-sizing:border-box!important}.virtual-scroll-grid__after,.virtual-scroll-grid__before{padding-left:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2);padding-right:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2 - 1px);overflow:visible!important}.virtual-scroll-grid{--virtual-scroll-offset-top:0px;--virtual-scroll-offset-bottom:0px;padding-top:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-top))!important;padding-bottom:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-bottom))!important;padding-left:var(--virtual-scroll-grid-padding)!important;padding-right:calc(var(--virtual-scroll-grid-padding) - 1px)!important;display:flex;flex-wrap:wrap;box-sizing:border-box!important}.virtual-scroll-grid>*{margin:calc(var(--virtual-scroll-grid-gutter)/2)!important;overflow:hidden;width:var(--virtual-scroll-grid-item-width)!important}.virtual-scroll-grid__dev{z-index:10000;overflow:hidden;padding:16px;background-color:#fff;box-shadow:0 0 8px rgba(0,0,0,0.5);border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-option-group>div>.q-radio{display:flex!important}.dialog-option-group>div>.q-radio>.q-radio__label{flex-grow:1;overflow:hidden}.dialog-prompt-tel>.q-field__inner>.q-field__control-container{width:0!important}.dialog-prompt-tel>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0!important}@font-face{font-family:Noto Color Emoji;src:url(/css/NotoColorEmoji.ttf)}.video-js-player__controller-menu .controller-popup,.video-js-player__controller-menu .controller\:panel,.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top,.video-js-player__controller .controller\:panel{-webkit-backdrop-filter:blur(28px) brightness(0.9);backdrop-filter:blur(28px) brightness(0.9);background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important}.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top{padding:4px 4px}.video-js-player__controller .is-audio-hint{opacity:0.3}.video-js-player__controller .is-audio-hint img{max-width:256px}.video-js-player__controller .is-audio-hint p{color:#ddd}.video-js-player__controller-menu .controller-popup{box-shadow:0 0 0 0.5px hsla(0,0%,100%,0.2),0 0 16px rgba(0,0,0,0.8);border-radius:16px;padding:4px 4px}div:not(.q-item__section)>.video-js-player__subtitle{margin-top:0.625em;margin-bottom:0.625em}.video-js-player__subtitle{font-style:var(--subtitle-style,normal);font-weight:var(--subtitle-weight,normal);font-size:var(--subtitle-size,1.25rem);-webkit-backdrop-filter:blur(28px) brightness(0.9)!important;backdrop-filter:blur(28px) brightness(0.9)!important;background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important;padding:0.2em 0.625em;border-radius:0.625em}.video-js-player__subtitle.fullscreen-subtitle{font-size:max(18px,min(2.8vh,2vw))}.controller\:panel[data-v-18dfdf92]{box-shadow:inset -0.5px 0.5px 0.5px hsla(0,0%,100%,0.2)}.video-js-player__buffer-progress>div[data-v-4e25daec]{transition:left 300ms ease-in-out,width 300ms ease-in-out;background-color:hsla(0,0%,100%,0.4);-webkit-backdrop-filter:saturate(1.2) brightness(1)!important;backdrop-filter:saturate(1.2) brightness(1)!important}.video-js-player__progress-bar{--progress-size:4px;--slider-size:4px;--slider-offset:0px}.video-js-player__progress-bar .video-js-player__buffer-progress{height:4px}.video-js-player__progress-bar .video-js-player__progress-bar-buffered{pointer-events:none;z-index:1}.video-js-player__progress-bar .video-js-player__progress-bar-slider{z-index:2;top:-6px}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__track-container{cursor:pointer!important}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__thumb{z-index:4!important}.video-js-player__page{-webkit-backdrop-filter:blur(28px) brightness(0.6);backdrop-filter:blur(28px) brightness(0.6);background-color:rgba(50,50,50,0.8);color:hsla(0,0%,100%,0.8)!important;overflow:hidden;max-width:100%!important;max-height:100%!important;display:flex;flex-direction:column;align-items:stretch}.video-js-player__page>main{height:auto!important;min-height:0!important;flex-grow:1;overflow-x:hidden;overflow-y:auto}.video-js-player__page>main>div{margin:0 auto;max-width:1280px}.video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb,.video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.3)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.q-item__section>.video-js-player__subtitle{box-shadow:0 0 1px hsla(0,0%,100%,0.3)}.video-js-player__controller .q-btn-group.lorem-ipsum{padding:2px}.video-js-player__controller .q-btn-group.lorem-ipsum .q-btn>.q-btn__wrapper{padding:0 16px;height:1.5em;min-height:1.5em}.video-js-player__controller div.column>.q-btn-group{gap:4px;padding:4px}.video-js-player__controller div.column>.q-btn-group .q-btn{flex-grow:1;border-radius:9999px}.video-js-player__controller div.column>.q-btn-group .q-btn>.q-btn__wrapper{padding:0 16px;height:2em;min-height:2em}.video-js-player__setting-list{border-radius:12px}.video-js-player__setting-list>.q-item{min-height:64px;padding:16px 16px!important}.video-js-player__setting-list>.q-item:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0;border-bottom-right-radius:0}.video-js-player__setting-list>.q-item:last-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player__volume-slider{border-radius:8px!important;overflow:hidden;background-color:hsla(0,0%,100%,0.1);box-shadow:inset 0 0 0 0.5px hsla(0,0%,100%,0.1)!important}.video-js-player__volume-slider>.q-slider__track-container{padding:0}.video-js-player__volume-slider>.q-slider__track-container .q-slider__selection{border-radius:0!important;background-color:hsla(0,0%,100%,0.2)}.controller-popup__transition{transform-origin:50% 100%!important}.controller-popup__transition.q-transition--scale-enter-from,.controller-popup__transition.q-transition--scale-leave-to{transform:scale(0)!important}.controller-popup__transition.q-transition--scale-enter-to,.controller-popup__transition.q-transition--scale-leave-from{transform:scale(1)!important}.controller-popup__transition.q-transition--scale-enter-active,.controller-popup__transition.q-transition--scale-leave-active{transition-property:transform;transition-duration:300ms!important}.controller-popup__transition.q-transition--scale-leave-active{opacity:1!important;transition-timing-function:cubic-bezier(0.65,-0.25,0.37,0.84)}.controller-popup__transition.q-transition--scale-enter-active{opacity:1!important;transition-timing-function:cubic-bezier(0.52,0.51,0.12,1.2)}.video-js-player__controller-btn-toggle{background-color:hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn{border-top:0.25px solid hsla(0,0%,100%,0.1);border-bottom:0.25px solid hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn:first-child{border-top:none}.video-js-player__controller-btn-toggle>.q-btn:last-child{border-bottom:none}.video-js-player__controller-btn-toggle>.q-btn.bg-active{background-color:hsla(0,0%,100%,0.15)}.video-js-player__controller-btn-toggle>.q-btn:first-child{padding-top:4px;border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.video-js-player__controller-btn-toggle>.q-btn:last-child{padding-bottom:4px;border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.controller-popup>.video-js-player__controller-list{border-radius:12px!important;background-color:hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item{border-top:0.125px solid hsla(0,0%,100%,0.1);border-bottom:0.125px solid hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item:first-child{border-top:none}.controller-popup>.video-js-player__controller-list>.q-item:last-child{border-bottom:none}.controller-popup>.video-js-player__controller-list>.q-item{padding:4px 8px}.controller-popup>.video-js-player__controller-list>.q-item>.q-focus-helper{overflow:hidden}.controller-popup>.video-js-player__controller-list>.q-item:first-child,.controller-popup>.video-js-player__controller-list>.q-item:first-child>.q-focus-helper{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.controller-popup>.video-js-player__controller-list>.q-item:last-child,.controller-popup>.video-js-player__controller-list>.q-item:last-child>.q-focus-helper{border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player{min-width:120px;min-height:120px;background:#000}.video-js-player,.video-js-player>.video-js{display:flex;flex-direction:column;justify-content:center;align-items:center}.video-js-player>.video-js{outline:none!important;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:scale-down}.video-js-player>.video-js>video{width:100%;height:auto;max-width:100%;max-height:100%}.video-js-player>.video-js>button,.video-js-player>.video-js>div:not(.video-js-player__controller){display:none!important}.video-js-player>.video-js>.video-js-player__controller{display:flex}.primary[data-v-6fc70cc6]{background-color:#1976d2;color:#fff}.body--dark .grey[data-v-6fc70cc6]{background-color:#424242}.grey[data-v-6fc70cc6]{background-color:#eee}.amplify-card-actions,.amplify-card-description,.amplify-card-form{width:100%;overflow:hidden;word-break:break-word}.amplify-card-form{overflow-x:hidden;overflow-y:hidden}.background-blur .q-dialog__backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.background-mask .q-dialog__backdrop{background-color:hsla(0,0%,49.8%,0.8);-webkit-backdrop-filter:brightness(0.2) contrast(0.8) saturate(0);backdrop-filter:brightness(0.2) contrast(0.8) saturate(0)}.amplify-select{margin-bottom:20px}.amplify-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.amplify-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.amplify-select-filter-search-bar{box-sizing:border-box;padding:8px}.amplify-input-wrapper{display:flex;flex-direction:row}.amplify-input-wrapper>.amplify-input-select{margin-right:4px;flex-shrink:0}.amplify-input-wrapper>.amplify-input-select.focus{width:100%}.amplify-input-wrapper>.amplify-input{flex-shrink:1;flex-grow:1}.amplify-tel-input>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0}.amplify-input>.q-field__inner>.q-field__bottom{padding-top:0;height:24px;align-items:center}.amplify-input>.q-field__inner>.q-field__control>.q-field__control-container>input{margin-bottom:-2px}.amplify-input .amplify-input-phone-number-prefix{margin-left:6px;margin-bottom:-2px;padding:6px 0;font-size:14px;font-weight:400;letter-spacing:0.00937em;line-height:28px!important}.amplify-input .amplify-input-phone-number-prefix:first-child{margin-left:0}input[type=date]{margin:0!important;padding:0!important}input[type=date]::-webkit-datetime-edit{margin-top:2px;margin-left:0}input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-year-field{padding:0;margin:2px 10px 0 10px}input[type=date]::-webkit-inner-spin-button,input[type=number]::-webkit-inner-spin-button{display:none}.underscore[data-v-6e4f640d]:hover,.underscore[data-v-79ec585c]:hover{text-decoration:underline}.select-none[data-v-79ec585c]{-webkit-user-select:none;user-select:none}.underscore[data-v-654a46b2]:hover{text-decoration:underline}.panel[data-v-60f74c22]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center}.panel>[data-v-60f74c22]{margin:4px}.dev-info-action[data-v-39f109b1]{width:80px;max-width:80px}.logs .channels{padding:4px;border:1px solid #dcdcdc;word-break:break-all;max-height:400px;overflow:auto}.preload-task[data-v-6f92a449]{padding:4px;border-radius:4px;border:1px solid #dcdcdc;display:inline-block;width:calc(50% - 32px)}.task-name[data-v-6f92a449]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-logs[data-v-a7504d8e]{border:1px solid grey;border-radius:4px;margin-top:16px;padding:8px}.log[data-v-a7504d8e]{margin-top:8px;word-wrap:break-word;white-space:pre-wrap}.log-type[data-v-a7504d8e]{background:#dcdcdc;padding:4px;margin-right:8px;border-radius:4px}.development-container{height:calc(100vh - 50px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container.large{height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container>.q-card{display:flex;flex-direction:column;flex-wrap:nowrap;height:100%;overflow:hidden}.development-container .q-panel>div{height:auto}.electron .development-dialog{padding-top:30px}.development-dialog{margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top)}.signed-out-actions{position:fixed;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:7000}.body--light .ab-backdrop.blur{background-color:rgba(0,0,0,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--light .ab-backdrop.shadow{background-color:rgba(0,0,0,0.4)}.body--dark .ab-backdrop.blur{background-color:rgba(51,51,51,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--dark .ab-backdrop.shadow{background-color:rgba(51,51,51,0.4)}.ab-backdrop{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:6000}.dialog-backdrop-disabled.body--light .q-dialog .q-dialog__backdrop{background-color:rgba(0,0,0,0.1)}.dialog-backdrop-disabled.body--dark .q-dialog .q-dialog__backdrop{background-color:rgba(77,77,77,0.5)}.ab-modal-page .fade-enter-active,.ab-modal-page .fade-leave-active{transition:opacity var(--transition-duration) ease-in-out}.ab-modal-page .fade-enter,.ab-modal-page .fade-leave-to{opacity:0}.ab-modal-page .slide-right-enter-active,.ab-modal-page .slide-right-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .slide-right-enter,.ab-modal-page .slide-right-leave-to{opacity:0.2;transform:translateX(100%)}.ab-modal-page .scale-enter-active,.ab-modal-page .scale-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .scale-enter,.ab-modal-page .scale-leave-to{opacity:0;transform:scale(0)}.ab-modal-page{--transition-duration:300ms;--ab-sign-in-page-offset:0}.electron .ab-modal-page{--ab-modal-page-offset:30px}.ab-modal-page{position:absolute;top:0;left:0}.ab-modal-page .container{pointer-events:none;position:fixed;top:var(--ab-modal-page-offset);left:0;width:100vw;height:calc(100vh - var(--ab-modal-page-offset))}.ab-modal-page .container>*{pointer-events:visible}body.screen--xs .ab-modal-page .container{overflow:auto;width:100vw!important;height:100vh!important}body.screen--xs .ab-modal-page .container .q-card.mobile-fullscreen{min-width:100vw!important;min-height:100vh!important;position:absolute;top:0;left:0;border-radius:0!important}.ab-task-page{max-width:100vw!important;max-height:100vh!important}.ab-task-page,.ab-task-page .q-layout.q-layout--containerized,.ab-task-page .q-layout.q-layout--containerized>.q-page-container{width:100vw!important;height:100vh!important}.electron .ab-task-page .q-header,body.electron .development-dialog{padding-top:30px}.development-dialog{position:fixed;top:0;left:0;background-color:var(--q-color-page)!important;width:100vw;height:100vh!important;min-width:unset!important;max-width:unset!important;min-height:unset!important;max-height:100vh!important;z-index:7000;overflow:hidden;display:flex;flex-direction:column} \ No newline at end of file diff --git a/dist/electron/UnPackaged/index.html b/dist/electron/UnPackaged/index.html index 86bb302e..e003034b 100644 --- a/dist/electron/UnPackaged/index.html +++ b/dist/electron/UnPackaged/index.html @@ -8,4 +8,4 @@ window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} window.gtag = gtag - }
\ No newline at end of file + }
\ No newline at end of file diff --git a/dist/electron/UnPackaged/js/app.js b/dist/electron/UnPackaged/js/app.js index e690316e..f470516d 100644 --- a/dist/electron/UnPackaged/js/app.js +++ b/dist/electron/UnPackaged/js/app.js @@ -1 +1 @@ -(function(e){function t(t){for(var n,o,s=t[0],l=t[1],c=t[2],d=0,u=[];d"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof process&&"object"===typeof process.versions&&process.versions.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron"))());function o(){return n}},"05c7":function(e,t){e.exports=require("util")},"0699":function(e){e.exports=JSON.parse('{"lib_index":"Dom","lib_edit":"Publikować","lib_publish":"Publikować","lib_explore":"Badać","lib_following":"Następny","lib_favorite":"Lokalne ulubione","lib_local_favorites":"Lokalne ulubione","lib_channel":"Kanał","lib_submit":"Składać","lib_from_network":"Korzystanie ze zdecentralizowanej bazy danych z sieci","welcome_to_lib":"Witamy w bibliotece multimediów ${displayName}","register_or_login":"Zarejestruj się/Zaloguj się","lib_recommend":"Polecić","lib_recommend_desc":"Witamy w bibliotece ${displayName}! Ta biblioteka korzysta ze zdecentralizowanej bazy danych z sieci. Aby zacząć z niego korzystać, musisz śledzić niektóre kanały.","follow_any_channel_to_continue":"Śledź dowolny kanał, aby kontynuować","follow_channels_and_continue":"Śledź kanały {0} i kontynuuj","show_more_for_me":"Pokaż mi więcej","no_more_recommend":"Nigdy więcej polecam","key":"Klucz","create_key":"Utwórz klucz","save_key":"Zapisz klucz","save_key_file":"Czy chcesz zapisać swój klucz jako plik?","import_key":"Importuj klucz","import":"Import","invalid_key":"Niewłaściwy klucz","back_to_top":"Powrót do góry","search_for_channel":"Wyszukaj identyfikator kanału","search_channel_no_result":"Nie można znaleźć kanału o identyfikatorze {0}","please_input_channel_id":"Wprowadź identyfikator kanału","welcome_help_text":"Jest to zdecentralizowana biblioteka multimediów. Potrzebujesz\\n aby utworzyć konto dla tej bazy danych. Będziemy\\n automatycznie wygenerować klucz osobisty.\\n Jeśli masz już klucz, możesz również zaimportować\\n to tutaj.","welcome_key_text":"Po zalogowaniu kliknij przycisk [ZAPISZ KLUCZ].\\n w prawym dolnym rogu, aby zapisać swój klucz prywatny.\\n Jeśli zgubisz klucz, możesz nie być w stanie zalogować się ponownie.","redirect_to_recommend":"Wygląda na to, że nie śledziłeś żadnego kanału. Przekierowanie do strony [Eksploruj].","channel":"Kanał","follow":"Podążać","unfollow":"Przestań obserwować","following":"Następny","share":"Udział","unfollow_confirm":"Czy na pewno chcesz przestać obserwować ten kanał? Wszystkie posty z tego kanału na Twojej osi czasu zostaną usunięte.","follow_failed_hint":"Operacja nadal oczekuje w tle. Jeśli operacja nie jest wykonywana przez dłuższy czas, uruchom ponownie aplikację i spróbuj ponownie.","block":"Blok","unblock":"Odblokować","blocked":"Zablokowany","block_channel":"Zablokuj ten kanał","block_channel_confirm":"Zablokuj kanał, aby usunąć go z Twojej osi czasu. Listą zablokowanych możesz zarządzać w ustawieniach konta.","block_creator":"Zablokuj twórcę tego kanału","unblock_creator":"Odblokuj twórcę tego kanału","block_creator_confirm":"Zablokuj twórcę usunie z Twojej osi czasu wszystkie kanały utworzone przez tego twórcę. Listą zablokowanych możesz zarządzać w ustawieniach konta.","share_url_copied":"Udostępniony adres URL jest kopiowany do schowka","follow_time":"Podążaj za czasem","update_time":"Czas aktualizacji","search":"Szukaj","type":"Typ","added":"Dodany","click_to_task":"Kliknij, aby przejść do zadania","lib_already_added":"Ten film wideo został już przez Ciebie dodany","description":"Opis","poster":"Plakat","channel_poster":"Plakat kanału","preview":"Zapowiedź","creator":"Twórca","creator_detail":"Szczegóły twórcy","loading_creator":"Ładuję informacje o twórcy","wait_for_creator_loaded":"Poczekaj na załadowanie informacji o twórcy.","follower":"Zwolennik","followers":"Obserwujący","follower_list":"Lista obserwujących","user":"Użytkownik","channel_title":"Tytuł kanału","channel_id":"ID kanału","post_title":"Tytuł posta","post_id":"Identyfikator wpisu","import_data_from_excel":"Importuj dane z Excela","set_excel_keys":"Ustaw klucze Excela","excel_import_succeded":"Importowanie programu Excel powiodło się","excel_import_success_msg":"Wiersze {0} są gotowe do dodania, {1} nieprawidłowe, a {2} zduplikowane elementy są ignorowane","cannot_find_channel":"Nie można znaleźć kanału","cannot_find_posts":"Nie można znaleźć postów","add_channel":"Dodaj kanał","add_post":"Dodaj wpis","edit_channel":"Edytuj kanał","channel_setting":"Ustawienie kanału","edit_post":"Edytuj post","edit_posts":"Edytuj posty","channel_detail":"Szczegóły kanału","remove":"Usunąć","remove_channel":"Usuń kanał","remove_channel_confirm":"Czy na pewno chcesz usunąć ten post? Nie można tego odzyskać.","remove_post":"Usuń wpis","remove_post_confirm":"Czy na pewno chcesz usunąć ten kanał? Nie można tego odzyskać.","preview_mode":"Tryb podglądu","preview_mode_desc":"To jest podgląd Twojego kanału. Wszystkie stawki filmów są pokazane tutaj.","edit_user_profile":"Edytuj profil użytkownika","name":"Przezwisko","avatar":"Awatara","no_following":"Brak następujących kanałów. Kliknij, aby przejść","no_recommend":"Brak polecanych kanałów. Kliknij, aby przejść","first_recomment_msg":"Może to trochę potrwać, jeśli aplikacja jest uruchamiana po raz pierwszy.","invalid_image":"Nieprawidłowy obraz","image_not_reachable":"Ten adres URL obrazu jest nieosiągalny.","channel_not_found":"Nie znaleziono kanału","cannot_get_channel_info":"Nie można uzyskać informacji o kanale. Ten kanał może zostać usunięty przez jego twórcę i nie będzie już dostępny.","validate_error":"Sprawdź błąd","validate_user_name_no_space":"Nazwa użytkownika nie powinna zawierać spacji","validate_url_no_space":"Adres URL nie powinien zawierać spacji","validate_user_name_length":"Nazwa użytkownika powinna mieć długość od {0} do {1}","validate_user_desc_length":"Opis użytkownika nie powinien zawierać więcej niż {0} znaków","validate_user_avatar_url":"Awatar użytkownika powinien być adresem URL o długości mniejszej niż 2048 znaków","validate_channel_title_length":"Tytuł kanału powinien mieć długość od 1 do 100","validate_channel_desc_length":"Opis kanału powinien mieć długość od 10 do 300","validate_channel_image_url":"Podgląd kanału powinien mieć adres URL zawierający mniej niż 2048 znaków","validate_post_title_length":"Tytuł posta powinien mieć długość od 1 do 100","validate_post_desc_length":"Opis posta powinien mieć długość od 10 do 300","validate_post_image_url":"Plakat powinien być adresem URL zawierającym mniej niż 2048 znaków","validate_post_url":"Nieprawidłowy adres URL ${displayName}","validate_post_url_length":"Adres URL ${displayName} nie powinien mieć więcej niż 2048 znaków","film_rate":"Stawka filmowa","set_film_rate":"Ustaw szybkość filmu","select_a_rate_before_enter":"Musisz wybrać szybkość filmu przed wejściem do biblioteki multimediów.","library_available_rate":"Dostępna cena filmu w bibliotece","rate_g":"G – Publiczność ogólna","rate_g_desc":"Wszystkie grupy wiekowe. Nic, co mogłoby urazić rodziców do oglądania przez dzieci.","rate_pg":"PG – Sugerowane wskazówki rodzicielskie","rate_pg_desc":"Niektóre materiały mogą nie być odpowiednie dla dzieci. Rodzice wezwali do udzielania „kierownictwa rodzicielskiego”. Może zawierać materiały, których rodzice mogą nie lubić dla swoich małych dzieci.","rate_pg_13":"PG-13 – Rodzice zdecydowanie przestrozeni","rate_pg_13_desc":"Niektóre materiały mogą być nieodpowiednie dla dzieci poniżej 13 roku życia. Apelujemy do rodziców o ostrożność. Niektóre materiały mogą być nieodpowiednie dla dzieci w wieku przedszkolnym.","rate_r":"R – Ograniczony","rate_r_desc":"Osoby poniżej 17 roku życia wymagają obecności rodzica lub dorosłego opiekuna. Zawiera materiały dla dorosłych. Zachęcamy rodziców do zapoznania się z filmem, zanim zabiorą ze sobą swoje małe dzieci.","rate_nc_17":"NC-17 – Tylko dla dorosłych","rate_nc_17_desc":"Nikt nie ma 17 lat i mniej. Wyraźnie dorosły. Dzieci nie są przyjmowane.","set_as_private":"Ustaw jako prywatne","hide_in_explore":"Ukryj ten kanał na stronie eksploracji","hidden":"Ukryty","select_a_rate":"Wybierz cenę filmu","select_from_tasks":"Wybierz spośród zadań","import_from_magnet":"Importuj z magnesu:?...","input_magnet_url":"Magnes wejściowy:? adres URL","task_title":"Tytuł zadania","set_title":"Ustaw tytuł","add_to_local_favorites":"Dodaj do lokalnych ulubionych","remove_from_local_favorites":"Usuń z lokalnych ulubionych","removed_favorite":"Usunięto ulubione","import_or_export_favorites":"Importuj/eksportuj ulubione","export_local_favorites":"Eksportuj lokalne ulubione jako kopię zapasową","import_favorites_file":"Importuj plik ulubionych","not_a_favorite_file":"Ten plik nie jest ulubionym plikiem kopii zapasowej","connection_status":"Status połączenia","gun_server_list":"Węzły pamięci podręcznej","custom_nodes":"Niestandardowe węzły pamięci podręcznej","custom_nodes_hint":"Niestandardowe węzły pamięci podręcznej zostaną zastosowane po ponownym uruchomieniu aplikacji","wait_for_reboot":"Oczekiwanie na ponowne uruchomienie...({seconds}s)","reboot_now":"Zrestartuj teraz","reboot_later":"Uruchomić komputer ponownie","peer_list":"Węzły bezpośrednie","server":"Adres URL węzła","peer":"Rówieśnik","peer_id":"Identyfikator węzła","connection":"Połączenie","data_source":"Źródło danych","sync":"Synchronizacja","syncing":"Synchronizacja","sync_completed":"Synchronizacja zakończona","got_all_post":"Masz już wszystkie posty","placeholder_channel_title":"Twoja nazwa kanału","placeholder_channel_desc":"Opis tego kanału","placeholder_post_title":"Nazwa filmu (rok)","placeholder_post_desc":"Opis tego filmu","private_channel":"Prywatny kanał","creator_blocked":"Twórca zablokowany","go_to_library":"Idź do biblioteki?","go_to_library_channel_msg":"Czy chcesz przejść do kanału bibliotecznego {0}?","magnet_does_not_have_name":"Ten magnes: ? url nie ma nazwy, musisz najpierw dodać tytuł posta.","no_available_post":"Brak dostępnego wpisu","following_channel_no_post":"Wszystkie Twoje następujące kanały nie mają dostępnych postów. Może to być spowodowane błędem sieci. Jeśli śledziłeś już niektóre kanały, posty mogą zostać załadowane później.","share_to_library":"Udostępnij w bibliotece","quick_start":"Szybki start","quick_start_desc":"Rozpocznij tworzenie wpisu z zadaniem lub plikiem","select_file":"Wybierz plik...","select_folder":"Wybierz katalog...","post_options":"Opcje publikowania","channel_options":"Opcje kanałów","create_new_channel":"Utwórz nowy kanał","use_existed_channel":"Użyj istniejącego kanału","select_existed_channel":"Wybierz istniejący kanał","uploaded_by":"{title} przesłane przez {name}","created_by":"{title} stworzony przez {name}","creating_new_channel":"Tworzę nowy kanał...","created_new_channel":"Utworzono nowy kanał","creating_new_post":"Tworzenie nowego wpisu...","created_new_post":"Utworzono nowy post","create_new_post":"Utwórz nowy wpis","quick_start_timeout":"{0} limit czasu. Może to być spowodowane błędem sieci. Spróbuj ponownie później.","file_too_large":"Plik zbyt duży","file_too_large_msg":"Ten plik jest większy niż 4 GB ({size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz kontynuować?","resolving_folder_files":"Rozwiązywanie plików folderów...","folder_too_large":"Za duży folder","folder_too_large_msg":"Pliki w tym folderze są większe niż 4 GB (łącznie {size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz przesłać?","creating_new_task":"Tworzenie nowego zadania...","cannot_create_task":"Nie można utworzyć zadania","cannot_create_task_msg":"Może to spowodować jakiś błąd. Jeśli zadanie zostało utworzone poprawnie, możesz później sprawdzić listę zadań.","cannot_get_task_name":"Nie można pobrać nazwy zadania. Najpierw musisz wprowadzić jeden.","remove_old_task":"Usuń stare zadanie","remove_old_task_desc":"W trybie internetowym można utworzyć tylko jedno zadanie naraz. Czy chcesz usunąć stare zadanie?","subtitle_list":"Lista napisów","optional":"opcjonalny","with_subtitle":"Z {language} napisami","maximumSubtitleNum_limit":"Liczba napisów osiągnęła maksimum","add_subtitle_url":"Dodaj link do pobrania napisów","cannot_add_subtitle":"Nie udało się dodać napisów","cannot_add_subtitle_msg":"Nie wybrano języka napisów lub nieprawidłowy link do pobrania.","support_subtitle_type":"Obsługiwane są tylko napisy w formacie srt i vtt.","recommend_opensubtitles":"Zaleca się skorzystanie z łącza lub identyfikatora pobierania napisów na stronie www.opensubtitles.org.","take_down":"Zdjąć","serious_violation":"Poważne naruszenie","copyright_disputes":"Spory dotyczące praw autorskich","adults_only":"Tylko dla dorosłych","takedown_reason":"Powód usunięcia","takedown_mode":"Tryb usuwania","admins":"Administratorzy","takedown_user":"Usuń tego twórcę","takedown_channel":"Usuń ten kanał","takedown_post":"Usuń ten post","select_takedown_reason":"Wybierz powód usunięcia","takedown_invalid_reason":"Nieprawidłowy powód usunięcia","takedown_invalid_user_id":"Nieprawidłowy identyfikator użytkownika. Identyfikator powinien zawierać 87 znaków","takedown_invalid_channel_id":"Nieprawidłowy identyfikator kanału. Identyfikator powinien zawierać 20 znaków","takedown_invalid_post_id":"Nieprawidłowy identyfikator posta. Identyfikator powinien zawierać 20 znaków","takedown_management":"Zlikwiduj zarządzanie","users":"Użytkownicy","channels":"Kanały","posts":"Posty","you":"Ty","preset":"Ustawienie wstępne","admin":"Admin","committee":"Komisja","about_takedown_mode":"Informacje o trybie usuwania:\\nUstawienie wstępne: skonfigurowane w repozytorium github. Wszystkie zostaną usunięte z biblioteki.\\nAdministrator: każdy z administratorów, na którego głosował, zostanie usunięty.\\nKomitet: Co najmniej połowa administratorów głosujących na zostanie usunięta.","cannot_edit_preset":"Nie możesz edytować tego wiersza, ponieważ jest to wiersz ustawiony wstępnie","cannot_edit_not_vote":"Nie możesz edytować tego wiersza, ponieważ nie głosowałeś za nim","remove_vote":"Usuń swój głos","post_preload_failed":"Wstępne załadowanie tego posta nie powiodło się. Link do pobrania może być nieaktualny, więc nie można od razu odtworzyć tego wpisu.","about_cache_node":"Informacje o węźle pamięci podręcznej","edit_cache_node":"Edytuj węzeł pamięci podręcznej","create_cache_node":"Utwórz węzeł pamięci podręcznej","about_cache_node_desc":"${displayName} używa serwera Gun jako węzła pamięci podręcznej. Możesz edytować niestandardowe węzły z wyprzedzeniem","learn_how_to_deploy_gun":"Dowiedz się, jak wdrożyć własny serwer broni","repeat_add":"Zadanie zostało dodane, nie dodawaj go ponownie","upload":"Wgrywać","download":"Pobierać","delete":"Usuwać","delete_task":"Usuń zadanie","delete_confirm_message":"Usunąć to zadanie? To jest nieodwołalne","also_delete_files":"Usuń też pliki","default_delete_files":"Domyślnie usuń pobrane pliki po usunięciu zadania","not_now":"Nie teraz","delete_autoupload_confirm":"To zadanie zawiera plik, który umieściłeś w katalogu automatycznego przesyłania. Usuń to zadanie spowoduje również usunięcie pliku.","delete_anyway":"Usuń mimo to","upload_too_many_files":"Prześlij zbyt wiele plików","ask_if_unlimit_upload_amount":"Katalog automatycznego przesyłania zawiera zbyt wiele plików. Czy chcesz wyłączyć ograniczenie kwoty przesyłania? *Może to powodować problemy z wydajnością","disable_limitation":"Wyłącz ograniczenie","not_length":"Operacja na wielu plikach nie jest obecnie obsługiwana, prosimy o współpracę","download_torrent":"Pobieranie pliku","upload_torrent":"Przesyłanie pliku","files":"Akta","file":"Plik","folder":"Teczka","start_all":"Zacznij wszystko","pause_all":"Wstrzymaj wszystko","remove_all":"Usuń wszystko","upload_all":"Prześlij wszystko","clear_history":"Czysta historia","pause_all_finish_payments":"Spowoduje to zakończenie wszystkich płatności.","accelerating":"Przyspieszenie","link_task":"Połącz zadanie","torrent_task":"Zadanie pliku","ok":"OK","cancel":"Anulować","download_directory_position":"Pobierz pozycję katalogu","torrent_file":"plik zadania","magnetic_link_incorrect":"Format linku jest nieprawidłowy","delete_fail":"Usuwanie nie powiodło się","pause":"Pauza","paused":"Wstrzymane","stop_torrent":"Zatrzymywać się","seed":"Nasionko","resume":"Wznawiać","downloading":"Ściąganie","downloaded":"Pobrane","uploading":"Przesyłanie","auto_uploading":"Automatyczne przesyłanie","uploaded":"Załadowany","pending":"Czekam na inne zadania","verifying":"Weryfikacja","waiting_for_verify":"Czekam na weryfikację","seeding":"Wysiew","completed":"Zakończony","status":"Status","task_name":"Nazwa zadania","size":"Rozmiar","progress":"Postęp","sort":"Sortować","ascending":"Rosnąco","descending":"malejąco","file_loading":"Ładowanie pliku...","loading":"Ładowanie","unknown_status":"Nieznany","play_while_downloading":"Grać...","upload_or_play":"Prześlij / Odtwórz","play":"Grać","ask_if_upload_file":"Przesyłanie pliku?","ask_if_upload_or_play":"Przesłać lub odtworzyć plik?","torrent_error":"Błąd podczas dodawania zadania:","no_peers":"Ponów próbę więcej niż {0} i żaden element równorzędny nie jest dostępny","torrent_exists":"Zadanie już istnieje.","show_origin_torrent":"Uzyskaj oryginalny plik zadania lub adres URL","show_directory":"Otwórz katalog tego torrenta","task_num":"Zadania","total_upload_speed":"Prędkość wysyłania","total_download_speed":"Prędkość pobierania","path_missing":"Błąd: nie można znaleźć ścieżki torrenta","origin_not_found":"Nie można znaleźć informacji o zadaniu pochodzenia.","text_copied":"Adres URL Magnum jest kopiowany do schowka","copy_magnet_uri":"Kopiuj magnes:? URI","copy_download_uri":"Skopiuj identyfikator URI pobierania","copy_share_uri":"Skopiuj identyfikator URI udziału","uri_copied":"Identyfikator URI został pomyślnie skopiowany do schowka","uri_copy_failed":"Nie udało się skopiować uri","more":"Więcej...","toggle_list_mode":"Przełącz tryb listy","comment":"komentarz","operations":"Operacje","open_directory":"Otwarty katalog","no_downloading_task":"Brak zadania pobierania","remove_all_downloading_tasks":"Usunąć wszystkie zadania pobierania?","remove_all_upload_tasks":"Usunąć wszystkie zadania przesyłania?","remove_autoupload_files":"Usuń automatycznie przesyłane pliki","remove_all_history":"Usunąć całą historię?","remaining":"Pozostały","created_time":"Stworzony czas","used_time":"Zużyty czas","completed_time":"Ukończony czas","yesterday":"Wczoraj","before_yesterday":"{empty}","earlier":"Wcześniej","miss_file":"Brak niektórych plików","delete_miss_file_task":"Brakuje plików fome w {0}.","common_peer":"Zwykły rówieśnik","ab_peer":"${displayName} rówieśnik","ab_peer_verified":"Zweryfikowany równorzędny ${displayName}","ab_peer_available":"${displayName} równorzędne dostępne","alphabiz_accelerating":"${displayName} przyspiesza","income":"Dochód","income_info":"Dochód (dziś/ogółem)","total_income_info":"Dochód: {0}(dziś) / {1}(łącznie)","login_to_see_income":"Zaloguj się, aby zobaczyć statystyki dochodów","credit_cost":"Koszty kredytu","downloaded_by_payment":"Pobrane przez Payments","file_not_found":"Nie można znaleźć tego pliku w lokalnym","no_task":"Nie pytaj","no_matched_task":"Brak pasującego zadania","space_not_enough":"Niewystarczająca ilość miejsca na dysku","need_more_space":"Potrzebujesz {0} więcej miejsca, ale obecny dysk ma {1} wolnego miejsca ({2} zarezerwowane). Zadania są wstrzymane. Wstępne ładowanie biblioteki jest wyłączone. Możesz ją ponownie włączyć w [Ustawienia - Zaawansowane].","seeders":"Siewniki","last_update":"Ostatnia aktualizacja","connecting":"Złączony","connected":"Połączony","request_timed_out":"Upłynął limit czasu żądania","connection_failed":"Połączenie nieudane","invalid_download_url":"Nieprawidłowy adres URL pobierania","download_link":"link do pobrania","empty_files":"Brak plików w katalogu","duplicate_task":"Zduplikowane zadanie","duplicate_tracker":"Zduplikowany tracker","this_task_not_ready":"To zadanie nie jest gotowe. Wstrzymanie tego zadania spowoduje jego bezpośrednie usunięcie.","some_task_not_ready":"Niektóre zadania nie są gotowe. Wstrzymanie tych zadań spowoduje ich bezpośrednie usunięcie.","failed_to_delete_files":"Nie udało się usunąć plików","failed_to_delete_files_desc":"Nie udało się usunąć niektórych plików zadania. Może być konieczne ich ręczne usunięcie","unknown_error":"Nieznany błąd: {0}","more_files_are_not_shown":"({0} więcej plików nie jest wyświetlanych ze względu na wydajność)","no_available_file":"Brak dostępnego pliku. Poczekaj, aż zadanie będzie gotowe.","service_worker_error":"Nie można załadować ServiceWorkera do gry. Twoja przeglądarka może nie obsługiwać tej funkcji lub ServiceWorker nie jest aktywowany. Może być konieczne ponowne załadowanie tej strony i ponowna próba.","add_task_first":"Najpierw musisz dodać zadanie.","player_task_time":"Zawodnik poświęca zbyt wiele sekund na przygotowanie się do gry. Może być coś nie tak z zadaniem.","web_mode_hint":"Tryb sieciowy ${displayName} obsługuje tylko peery WebRTC. Aby uzyskać najlepsze wrażenia, pobierz aplikację komputerową ${displayName}.","web_mode_task_hint":"Kliknij przyciski poniżej, aby dodać zadanie. Jednorazowo możesz dodać tylko jedno zadanie.","save_to_local":"Zapisz w lokalnym","save_as_zip":"Zapisz jako ZIP","creating_save_file":"Tworzenie pliku zapisu...","upload_as_one_directory":"Prześlij jako jeden katalog","upload_as_single_files":"Prześlij jako pojedyncze pliki","web_mode_upload_single":"W trybie internetowym można przesłać tylko jeden plik","download_success":"Pobierz pomyślnie","download_fail":"Pobieranie nie udane","wait_for_downloaded_to_share":"Przed udostępnieniem poczekaj na pobranie zadania.","download_with_cellular":"Pobieraj zadania za pomocą sieci komórkowej","download_with_cellular_desc":"Korzystasz z sieci komórkowej. Pobieranie zadań za pomocą sieci komórkowej może wiązać się z dodatkowymi opłatami pobieranymi przez operatora.","download_with_cellular_confirm":"Nadal pobieraj przez sieć komórkową","language":"Język","appearance":"Wygląd","darkModeSystem":"System","darkModeLight":"Światło","darkModeDark":"Ciemny","basic_setting":"Podstawowy","hideMenu":"Ukryj menu aplikacji (tylko Windows i Linux)","autoHide":"Automatyczne ukrywanie okna","autoStart":"Otwórz podczas logowania","restore":"Zachowaj rozmiar i położenie okna przy wyjściu","autoStartUnfinished":"Automatycznie wznawiaj wszystkie niedokończone zadania","default_download_path":"Domyślna ścieżka","download_directory":"Pobierz katalog","upload_directory":"Prześlij katalog","enable_auto_upload":"Włącz automatyczne przesyłanie","unlimit_upload_amount":"Nieograniczona kwota przesyłania","unlimit_upload_warning":"Zezwalaj na przesyłanie dużej liczby plików. Może to powodować problemy z wydajnością","start":"Uruchomienie","transport_setting":"Przenoszenie","upload_limit":"Limit przesyłania","download_limit":"Limit pobierania","payed_user_share_rate":"Współczynnik udziału płatnych użytkowników","unlimited":"Nieograniczony","limit_input_error":"Liczba graniczna powinna być dodatnia","BT_setting":"Ustawienia zadań","saveLinkSeed":"Zapisz łącze jako plik zadania","autoDownload":"Automatycznie pobieraj link i treść","continuousSeeding":"Kontynuuj siew aż do ręcznego zatrzymania","seedSharingRate":"Stosunek nasion","seedTime":"Czas wysiewu (minuty)","task_manage":"Zarządzanie zadaniami","maximumDownloadNum":"Maksymalna liczba aktywnych zadań","maximumConnectionsNum":"Maksymalne połączenie na serwer","range_error":"Zakres powinien mieścić się w przedziale od {0} do {1}","random":"losowy","breakpointContinuation":"Kontynuować","automaticSkip":"Automatycznie pokazuj pobieranie po dodaniu zadania","afterNotification":"Powiadomienie po zakończeniu pobierania","deleteConfirm":"Przed usunięciem zadania nie jest wymagane żadne potwierdzenie","submit":"Zapisz i zastosuj","discard":"Wyrzucać","reset":"Resetowanie","reset_all_settings":"Zresetuj wszystkie ustawienia?","preferences_resetted":"Preferencje zresetowane","traditional_chinese":"tradycyjne chińskie","japanese":"język japoński","english":"język angielski","chinese":"Chiński uproszczony","advancedSettings":"Zaawansowany","autoUpdate":"Automatyczna aktualizacja","autoCheckUpdate":"Automatycznie sprawdzaj dostępność aktualizacji","proxy":"Pełnomocnik","useProxyService":"Włącz serwer proxy","trackerService":"Serwery śledzące","recommendUse":"Zalecana","autoUpdateTrackerServiceList":"Codziennie automatycznie aktualizuj listę trackerów","manualUpdateTracker":"Aktualizacja ręczna","manualUpdateSuccess":"Pomyślnie zaktualizuj serwery śledzenia","manualUpdateFail":"Nie udało się zaktualizować z:","listenPort":"Porty nasłuchowe","BTlistenPort":"Port transmisji danych","DHTlistenPort":"Rozproszony port mieszania","protocols":"Kompatybilne protokoły","setDefaultClientForFollowingProtocols":"Ustaw jako domyślnego klienta dla następujących protokołów","magnetUrl":"Magnes","video_file":"Plik wideo","audio_file":"Plik audio","security":"Bezpieczeństwo","impersonateUserAgent":"Makieta agenta użytkownika","RPCauthorizationkey":"Tajemnica RPC","viewDocument":"Wyświetl tajny podręcznik RPC","developer":"Deweloper","applicationLogPath":"Ścieżka dziennika aplikacji","downloadSessionPath":"Pobierz ścieżkę sesji","resetDownloadSessionRecord":"Zresetuj sesję pobierania","restoreInitialSettings":"Przywrócenie ustawień fabrycznych","preferences_set_successfully":"Zapisz preferencje pomyślnie!","preferences_set_fail":"Zapisywanie preferencji nie powiodło się!","change_not_save":"Zmiany nie zapisują się","discard_all_changes":"Odrzucić wszystkie zmiany i wyjść?","stay_in_page":"Pozostań na stronie","disk_usage":"Użycie dysku","pause_if_less_space":"Wstrzymaj i powiadom, jeśli miejsca jest mniej niż (MB)","default_video_player":"Domyślny odtwarzacz wideo","video_cache_time":"Pamięć podręczna odtwarzania strumieniowego","minutes":"minuty","system_default":"Domyślne ustawienie systemowe","media_player":"Odtwarzacz multimedialny","library_film_rate":"Dostępna cena filmu","library_show_explore":"Pokaż stronę [Eksploruj].","library_setting":"Ustawienie biblioteki","library_sync_setting":"Ustawienie synchronizacji biblioteki","keychain_sync_status":"Stan synchronizacji pęku kluczy","sync_with_aws":"Synchronizuj pęku kluczy z Amazon Web Services","backup_to_local":"Kopia zapasowa do pliku lokalnego","enable_sync_with_aws":"Włącz synchronizację z AWS","disable_sync_with_aws":"Wyłącz synchronizację z AWS","disable_sync_with_aws_desc":"Spowoduje to usunięcie zapisanego klucza na serwerze. Upewnij się, że wyeksportowałeś już swój klucz.","input_independent_password":"Wprowadź niezależne hasło","change_independent_password":"Zmień niezależne hasło","password_error":"Błędne hasło","password_invalid":"Hasło jest nieprawidłowe","key_existed":"Klucz istniał","key_not_found":"Klucz nie odnaleziony","library_recommend":"Polecam bibliotekę","show_all_channels":"Pokaż wszystkie kanały na stronie polecania biblioteki","not_logged_in":"Nie zalogowany","login_to_continue":"Zaloguj się, aby kontynuować","mnemonic_code":"Kod mnemoniczny","wordlist":"Lista słów","restore_code":"Przywróć z kodu","generate_code":"Wygeneruj kod","export_mnemonic_code":"Eksportuj kod mnemoniczny","import_mnemonic_code":"Importuj kod mnemoniczny","print":"Wydrukować","save_as_txt":"Zapisz jako txt","save_as_pdf":"Zapisz jako pdf","from_file":"Z pliku","not_valid_mnemonic_code":"To nie jest prawidłowy kod mnemoniczny","cannot_parse_code_as_key":"Nie można przeanalizować tego kodu mnemotechnicznego jako klucza biblioteki","import_key_hint":"Czy na pewno chcesz zaimportować ten klucz? Spowoduje to odzyskanie starego klucza w bibliotece.","import_key_confirm":"Tak, importuj.","library_preload":"Wstępnie ładuj zadania z biblioteki","show_preload":"Pokaż zadania wstępnego ładowania","set_download":"Ustaw katalog pobierania","set_download_desc":"W przypadku wersji macOS App Store domyślny katalog pobierania znajduje się w piaskownicy aplikacji i zostanie usunięty po odinstalowaniu aplikacji. Jeśli chcesz zachować pobrane pliki, musisz ręcznie wybrać inny katalog pobierania.","home":"Dom","home_caption":"Pobieranie/przesyłanie i pliki multimedialne","library":"Biblioteka","library_caption":"Przeglądaj zasoby multimedialne","player":"Gracz","player_caption":"Odtwarzacz multimedialny","credits":"Kredyty","credits_caption":"Sprawdź saldo konta","account":"Konto","account_caption":"Zaloguj się/Zarejestruj się/Zarządzanie","settings":"Ustawienia","settings_caption":"Ustawienia aplikacji, odtwarzacza, konta","development":"Rozwój","development_caption":"Tryb programisty do użytku wewnętrznego","basic":"Podstawowy","basic_caption":"Podstawowe ustawienia","advanced":"Zaawansowany","advanced_caption":"Zaawansowane ustawienia","blockchain":"Portfel","blockchain_caption":"${displayName} Zdecentralizowany portfel","internal_notice":"Wewnętrzne powiadomienie o wydaniu","release_notes":"Informacje o wydaniu","terms_and_conditions":"Regulamin","license_and_listen_notices":"Licencjonuj i słuchaj powiadomień o otwartym kodzie źródłowym","close":"Zamknąć","success":"Powodzenie","fail":"Ponieść porażkę","account_email_invalid_address":"Niepoprawny adres email","account_email_invalid_domain":"Nieprawidłowa domena e-mail","account_email_unknown_status":"Nieznany stan dostarczania wiadomości e-mail","account_email_unavailable_address":"Niedostępny adres e-mail","account_email_suppressed_address":"Ukryty adres e-mail","account_loading":"Ładowanie...","account_is_required":"jest wymagane","account_sign_in_your_account":"Zalogować się","account_username":"Nazwa użytkownika","account_username_email_phone":"Numer telefonu lub e-mail","account_password":"Hasło","account_new_password":"Nowe hasło","account_re_enter_password":"Wprowadź ponownie hasło","account_password_not_equal":"Dwa hasła nie są równe","account_new_password_same":"Hasło jest takie samo jak oryginalne hasło","account_forgot_your_password":"Zapomniałeś hasła?","account_reset_password":"Zresetuj hasło","account_sign_in":"Zalogować się","account_signed_in":"Wpisany","account_sign_up":"Zapisać się","account_find_your_account":"Znajdź swoje konto","account_enter_your_username":"Wpisz swój numer telefonu lub adres e-mail","account_search":"Szukaj","account_email_sent_tip":"E-mail z kodem weryfikacyjnym został wysłany na Twój adres e-mail:","account_phone_sent_tip":"Na Twój telefon została wysłana wiadomość SMS z kodem weryfikacyjnym:","account_email_phone_sent_tip":"E-mail i SMS z kodem weryfikacyjnym zostały wysłane odpowiednio na Twój adres e-mail i telefon:","account_software_token_tip":"Usługa MFA jest włączona na Twoim koncie. Aby zakończyć logowanie, włącz lub wyświetl swoje urządzenie i wpisz TOTP","account_reset_your_password":"Zresetuj swoje hasło","account_verification_code":"Kod weryfikacyjny","account_resend_code":"Wyślij ponownie kod","account_code_has_been_resent":"Kod weryfikacyjny został wysłany ponownie","account_password_has_been_reset":"Hasło zostało zresetowane","account_submit":"Składać","account_sign_up_your_account":"Zarejestruj swoje konto","account_fill_required_fields":"Wypełnij wymagane pola poniżej.","account_fill_optional_fields":"Wypełnij opcjonalne pola poniżej.","account_email":"E-mail","account_invitation":"Zaproszenie","account_invitation_code":"Kod zaproszenia","account_i_accept":"Akceptuję","account_license_terms":"licencja i warunki","account_next":"Następny","account_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki.","account_verify_fill_optional_fields":"Sprawdź i wypełnij opcjonalne pola.","account_nickname":"Przezwisko","account_gender":"Płeć","account_male":"Mężczyzna","account_female":"Kobieta","account_not_say":"Nie mów","account_birthday":"Urodziny","account_phone_number":"Numer telefonu","account_locale":"Lokalny","account_tip_verified":"Zweryfikowano, loguję się...","account_verified":"zweryfikowane","account_unverified":"niesprawdzony","account_signed_up":"Zapisany","account_verify_your_identity":"Zweryfikować Twoją tożsamość","account_finish":"Skończyć","account_signed_out":"Wylogowany","account_change_password":"Zmień hasło","account_change_email":"Zmień adres e-mail","account_change_phone_number":"Zmień numer telefonu","account_sign_out":"Wyloguj się","account_current_password":"Aktualne hasło","account_re_enter_new_password":"Wprowadź ponownie nowe hasło","account_personal_information":"Informacja","account_edit":"edytować","account_reset":"Resetowanie","account_greeting":"Cześć,","account_cancel":"Anulować","account_change":"zmiana","account_not_set":"nie ustawiony","account_setting":"ustawienie","account_copy_code":"skopiuj kod","account_account_setting":"Konto","account_task_page":"Zadanie kredytowe","account_setting_caption":"Zmień hasło / Edytuj informacje","account_security":"Bezpieczeństwo","account_want_to_join":"Chcesz się dołączyć?","account_sign_in_now":"Zalogować się","account_changed":"Zmieniono","account_clipboard_with_invitation_code":"Skopiowano kod zaproszenia","account_clipboard_with_code":"Kod skopiowany","account_invitation_code_dialog_tip":"Wyślesz znajomemu e-mail lub SMS z kodem zaproszenia:","account_available":"dostępny","account_invited":"zaproszony","account_used":"używany","account_invitation_code_sent":"Kod zaproszenia został wysłany","account_invitation_channel_required":"Wypełnij co najmniej jeden kanał zaproszeń","account_no_verification_code":"Nie możesz otrzymać kodu weryfikacyjnego?","account_no_phone_number":"Brak numeru telefonu?","account_sign_up_by_email":"Zarejestruj się przez e-mail","account_no_email":"Brak e-maila?","account_sign_up_by_phone_number":"Zarejestruj się pod numerem telefonu","account_no_totp":"Brak TOTP?","account_tip_no_totp":"Jeśli nie ma TOTP, skonfiguruj najpierw TOTP","account_setup_totp":"Skonfiguruj TOTP","account_contact_information":"Informacje kontaktowe","account_delete_account":"Usuń konto","account_deleted":"Usunięto","account_can_not_mfa":"Kłopoty MSZ?","account_set_mfa_type":"Skonfiguruj usługę MFA","account_disable_mfa":"Wyłącz uwierzytelnianie wieloskładnikowe","account_disabled_mfa":"Wyłączone MSZ","account_sms_mfa":"SMS MSZ","account_totp_mfa":"TOTP MSZ","account_totp":"TOTP","account_not_recommend":"Nie polecane","account_oauth_sign_in_with":"Zaloguj się za pomocą {provider}","account_sign_in_failed":"Nie udało się zalogować","account_tip_oath_sign_up":"E-mail odpowiadający bieżącemu kontu {provider}: {email} nie utworzył jeszcze konta","account_tip_confirm_delete_account":"Wprowadź bieżące hasło do konta, aby potwierdzić, że chcesz usunąć bieżące konto. (Usuniętych kont nie można przywrócić)","account_tip_config_mfa":"Możesz użyć SMS-a lub hasła jednorazowego opartego na czasie (TOTP) jako dodatkowego uwierzytelnienia","account_error_can_not_enable_mfa":"Aby włączyć MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_sms_mfa":"Aby włączyć SMS MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_totp_mfa":"Musisz powiązać swój adres e-mail i numer telefonu komórkowego, aby włączyć TOTP MFA","account_tip_setup_totp":"Użyj aplikacji, takich jak Authenticator, aby zeskanować poniższy kod QR lub skopiuj kod ręcznie, aby dodać token bezpieczeństwa","account_tip_verify_totp":"Sprawdź swój TOTP","account_link_your_social_account":"Powiąż swoje konto społecznościowe","account_unlink_your_social_account":"Odłącz konto społecznościowe","account_tip_confirm_link":"Czy na pewno chcesz powiązać bieżące konto z kontem {provider}?","account_tip_confirm_unlink":"Czy na pewno chcesz anulować powiązane konto {provider}?","account_tip_linking":"wiążący...","account_tip_unlinking":"Rozwiązywanie...","account_linked":"Zobowiązany","account_unlinked":"Nieoprawny","account_error_can_not_link_to_the_linked_account":"Bieżące konto społecznościowe jest powiązane z innym kontem","account_error_can_not_link_to_the_mismatched_email":"Bieżące konto i adres e-mail konta społecznościowego są niespójne","account_error_can_not_link_before_email_verified":"Nie można połączyć konta społecznościowego, ponieważ bieżące konto nie jest powiązane ze zweryfikowanym adresem e-mail","account_tip_confirm_verify_email_phone":"Czy wysłać kod weryfikacyjny na adres e-mail i numer telefonu bieżącego konta, aby zweryfikować swoją tożsamość?","account_tip_confirm_verify_phone":"Czy wysłać kod weryfikacyjny na aktualny numer telefonu, aby zweryfikować swoją tożsamość?","account_error_1_message_60_seconds":"Tylko jeden SMS lub e-mail może zostać wysłany co 60 sekund, poczekaj kolejne {delta} sekund","account_error_10_messages_per_day":"Każdy telefon komórkowy lub e-mail może wysłać tylko 10 wiadomości w ciągu 24 godzin","account_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","Network Error":"Wystąpił problem z siecią, spróbuj ponownie później","account_error_user_not_exist":"użytkownik nie istnieje","account_error_incorrect_username_or_password":"Niepoprawna nazwa użytkownika lub hasło","account_error_incorrect_original_password":"Nieprawidłowe oryginalne hasło","account_error_incorrect_password":"niepoprawne hasło","account_error_username_not_found":"Nazwa użytkownika nie znaleziona","account_error_can_not_reset_for_no_verified":"Nie można zresetować hasła do niezweryfikowanego konta","account_error_invalid_verification_code":"Nieprawidłowy kod weryfikacyjny, spróbuj ponownie","account_error_expired_verification_code":"Kod weryfikacyjny wygasł, spróbuj ponownie","account_error_password_not_long_enough":"Hasło nie jest wystarczająco długie","account_error_attempt_limit_exceeded":"Przekroczono limit prób, spróbuj za jakiś czas.","account_error_password_attempts_exceeded":"Przekroczono liczbę prób podania hasła.","account_error_invalid_phone_number_format":"Nieprawidłowy format numeru telefonu","account_error_no_cell_phone_prefix":"Wybierz prefiks numeru telefonu","account_error_username_already_exists":"Nazwa użytkownika już istnieje","account_error_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki","account_error_inactive_code":"Kod zaproszenia nie jest kodem aktywowanym","account_error_non_existent_code":"Kod zaproszenia nie istnieje","account_error_unexpected":"Niespodziewany błąd","account_error_can_not_change_email_before_phone_bound":"Adres e-mail nie może zostać zmieniony przed powiązaniem numeru telefonu","account_error_can_not_change_email_before_unbound_social_account":"Adresu e-mail nie można zmienić przed usunięciem konta społecznościowego","account_error_can_not_change_phone_before_email_bound":"Numeru telefonu nie można zmienić przed związaniem wiadomości e-mail","account_error_can_not_change_email_phone_with_mfa_enabled":"Nie można zmienić adresu e-mail ani numeru telefonu komórkowego przed wyłączeniem usługi MFA","account_error_not_supported_yet":"Obecnie nie obsługiwane","account_error_same_email":"Nowy adres e-mail nie może być taki sam jak pierwotny adres e-mail","account_error_same_phone":"Nowy numer telefonu nie może być taki sam jak oryginalny numer telefonu","account_error_email_not_exists":"adres E-mail nie istnieje","account_error_email_already_exists":"Konto o podanym adresie e-mail już istnieje.","account_error_phone_already_exists":"Konto o podanym numerze telefonu już istnieje.","account_error_mfa_token_mismatch":"Niezgodność kodu tokena oprogramowania","account_error_recaptcha_not_loaded":"Wystąpił problem z siecią. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_recaptcha_validation_failed":"Weryfikacja ReCAPTCHA nie powiodła się. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_sign_in_in_progress":"Oczekująca próba logowania już trwa","account_field_range":"Ogranicz wprowadzanie znaków {0}-{1}","account_field_only_alphanumeric":"Obsługuje tylko znaki alfanumeryczne","account_field_only_alphanumeric_and_symbol":"Obsługuje tylko znaki alfanumeryczne i symbole","account_field_only_chinese_alphanumeric_space_underline":"Obsługuje tylko znaki alfanumeryczne, spacje i podkreślenia","account_field_prefix_without_number_space":"Pierwszy znak nie może być cyfrą ani spacją","account_field_suffix_without_space":"Nie może kończyć się spacją","account_field_without_repeat_space":"Nie można użyć wielu spacji z rzędu","account_field_can_not_only_alphanumeric":"Nie możesz używać tylko liter lub cyfr","account_field_must_have_number_characters":"Musi zawierać cyfry","account_field_verification_code":"Kod weryfikacyjny musi składać się z sześciu cyfr","account_field_invitation_code":"Kod zaproszenia musi być alfanumeryczny","account_field_phone_number":"Nieprawidłowy format numeru telefonu","account_invalid_email_format":"niewłaściwy format wiadomości email","account_sign_out_confirm":"Czy na pewno chcesz się wylogować? Spowoduje to zatrzymanie wszystkich zadań.","account_sign_out_anyway":"Wyloguj się mimo wszystko","account_signing_out":"Wylogowanie...","account_request_save_settings":"Ustawienia nie są zapisywane. Musisz zapisać zmiany przed wylogowaniem.","pay":"Płacić","pay_with_credit":"Zapłać za przyspieszenie pobierania. Potrzebuje około {0} kredytu","pay_with_credit_payed":"Przyspieszenie. Nadal potrzebuje około {0} kredytu","create_payment":"Utwórz płatność","pay_target":"Cel","pay_for_torrent":"Zapłać za {0}","your_subid":"Twój identyfikator podrzędny","your_credits":"Twoje kredyty","pay_point_for_data":"Zapłać {0} punktu za {1} danych","auto_renew":"Włącz automatyczne odnawianie","transaction_details":"szczegóły transakcji","transaction_id":"ID","transaction_payer":"Płatnik","transaction_payee":"Odbiorca płatności","transaction_category":"Kategoria","transaction_changed_amount":"Zmieniona kwota","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Czas utworzenia","receipt_code":"Kod odbioru","transfer_amount":"Kwota przelewu","code_the_receipt_code":"Skopiuj poniższy kod paragonu do płatnika","fill_the_receipt_code":"Przelew poprzez wpisanie kodu płatności podanego przez odbiorcę","expense":"Koszt","copied":"Skopiowane","transfer":"Przenosić","receive":"Odbierać","copy":"Kopiuj","withdraw_fund":"Wycofaj fundusz","category_paydata_payer":"Koszt danych","category_paydata_payee":"Dochód z danych","category_transfer":"Przenosić","category_bonus":"Premia","category_recharge":"Naładuj","status_pending":"aż do","status_completed":"zakończony","status_finish":"skończyć","status_failed":"przegrany","tip_invalid_receiver":"Nieprawidłowy kod odbiornika","tip_invalid_amount":"Kwota kredytu powinna być liczbą zmiennoprzecinkową z zakresu 0-1000 (minimalna dokładność to 0,001)","credit_get_more":"Zdobądź więcej kredytów","credit_no_data":"Brak dostępnych danych","credit_loading":"Ładowanie...","credit_not_enough_amount":"Za mało kredytów","credit_amount_not_enough":"Za mało kredytów","credit_payee_not_exist":"Odbiorca płatności nie istnieje","credit_invalid_amount":"Nieprawidłowa kwota kredytu","credit_can_not_transfer_to_yourself":"Nie można przenieść na siebie","credit_latest":"Najnowszy","credit_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","add_subtitles":"Dodaj napisy","open_file":"Otwórz plik...","advanced_options":"Zaawansowane opcje","title":"Tytuł","location":"Lokalizacja","subtitle_file":"plik z napisami","unsupported_subtitle_type":"Typ pliku {0} nie jest obsługiwanym typem napisów","not_default_player":"Domyślny odtwarzacz wideo nie jest ustawiony","this_is_an_audio_file":"To jest plik dźwiękowy","the_added_subtitle_already_exists":"Dodane napisy już istnieją","stop_stream_player":"Media strumieniowe zostały przerwane, ponieważ zadanie zostało wstrzymane lub usunięte","stop_player":"Odtwarzacz został zamknięty, ponieważ plik został usunięty","playing_timeout_hint":"Koniec czasu oczekiwania. Proszę sprawdzić zadanie","autoplay_hint":"Autoodtwarzanie może być zablokowane przez Twoją przeglądarkę. Jeśli odtwarzacz nie gra, spróbuj kliknąć ekran, aby kontynuować","remove_playing_confirm":"{0} jest nadal odtwarzane, usunięcie go zatrzyma gracza. Czy na pewno chcesz to usunąć?","unsupported_in_browser":"Nieobsługiwane jeszcze w trybie przeglądarki","client":"Klient","warning":"Ostrzeżenie","enable":"Włączać","disable":"Wyłączyć","auto":"Automatyczny","encrypt_connection":"Szyfruj połączenie","encrypted_connection":"Szyfrowane połączenie","non_encrypted_connection":"Nieszyfrowane połączenie","connected_wires_not_disconnect":"Podłączone przewody nie zostaną odłączone","audio":"audio","video":"wideo","image":"obraz","subtitle":"podtytuł","zip":"zamek błyskawiczny","text":"tekst","unknown":"nieznany","add":"Dodać","undo":"Cofnij","backup":"Kopia zapasowa","not_default_app":"${displayName} nie jest Twoją domyślną aplikacją do obsługi torrentów i multimediów, czy chcesz ją ustawić jako domyślną?","dont_show_again":"Nie pokazuj więcej","go_to_settings":"Przejdź do ustawień","about_alphabiz":"Około ${displayName}","last_check_at":"Ostatnia kontrola o godz","update_channel":"Zaktualizuj kanał","check_for_update":"Sprawdź aktualizacje","checking_for_update":"Sprawdzanie aktualizacji...","no_update_available":"Brak dostępnych aktualizacji","update_available":"Dostępna aktualizacja","update_now":"Aktualizuj teraz","update_later":"Zaktualizuj później","click_to_update":"Kliknij przycisk AKTUALIZUJ TERAZ, aby pobrać i zaktualizować","update_failed":"Aktualizacja nie powiodła się","update_failed_message":"Wystąpił błąd podczas aktualizacji:","check_shasum_failed":"Nie udało się sprawdzić integralności instalatora","downloading_update":"Pobieranie aktualizacji...","ready_to_update":"Gotowy do aktualizacji","restart_to_update":"Aktualizacja jest pobierana. ${displayName} wyjdzie na chwilę w celu aktualizacji.","already_latest":"Obecna wersja ({0}) jest już najnowsza","update_timeout":"Limit czasu aktualizacji","no_available_release":"Brak dostępnej wersji","no_available_installer":"Brak dostępnego instalatora","feedback":"Informacja zwrotna","select_a_type":"Wybierz typ","category":"Kategoria","select_a_category":"Wybierz kategorię","require_title":"Tytuł jest wymagany","describe_your_problem":"Opisz swój problem","report_a_bug":"Zgłoś błąd","request_a_new_feature":"Poproś o nową funkcję","download_or_upload":"Pobierz Prześlij","others":"Inni","submit_with_system_info":"Prześlij z informacjami o systemie","submit_feedback":"Prześlij opinię","tweet_us":"Tweetnij z nami","tweet_too_long":"Tweet jest za długi","delete_characters":"Usuń co najmniej znak(i) {0}","rest_characters":"Możesz wprowadzić {0} więcej znaków","update_alphabiz":"Zaktualizuj ${displayName}","current_version":"Obecna wersja","cancel_update":"Anuluj aktualizację","slow_download_speed":"Pobieranie jest zbyt wolne","slow_download_speed_caption":"Pobieranie instalatora jest teraz zbyt wolne. Sprawdź stan sieci","update_canceled":"Aktualizacja anulowana","current_version_release_time":"Czas wydania aktualnej wersji","expired_app":"${displayName} Wygasł","version_out_of_date":"Wersja nieaktualna","have_to_update":"Wersja ${displayName} jest nieaktualna. Niektóre protokoły lub interfejsy API są przestarzałe. Musisz zaktualizować ${displayName} przed kontynuowaniem.","exit_alphabiz":"Wyjdź ${displayName}","exit_and_update":"Wyjdź i zastosuj aktualizację","new_version_hint":"Dostępna jest nowa wersja","no_new_version":"Brak nowej wersji","current_is_latest":"Obecna wersja jest już najnowsza","click_to_check_update":"Kliknij przycisk [SPRAWDŹ AKTUALIZACJĘ], aby sprawdzić dostępność aktualizacji","download_latest_version_from_website":"Odwiedź oficjalną stronę internetową, aby pobrać najnowszą wersję","to_the_website":"Do strony internetowej","network_diagnotic":"Diagnostyka sieci","diagnotic":"Diagnostyczny","click_to_check":"Kliknij, aby sprawdzić","click_to_check_again":"Kliknij, aby sprawdzić ponownie","checking":"Kontrola","online":"online","offline":"offline","dns_look_up":"Wyszukiwanie DNS","error":"Błąd","aws_service":"Usługa AWS","network_pings":"Ping sieciowy","not_found":"Nie znaleziono","packet_loss":"Utrata pakietów","official_site":"Oficjalna strona","download_test":"Pobierz test","test_task":"Zadanie testowe {0}","download_failed":"Pobieranie nie udane","second_spend":"{0} s wydatków","open_default_player_failed":"Nie udało się otworzyć domyślnego odtwarzacza","copied_to_clipboard":"Skopiowane do schowka","go_to":"Iść do","region_not_available":"Region niedostępny","region_not_available_message":"Przepraszam! Twój region nie umożliwia korzystania z tej aplikacji. Ta aplikacja zostanie zamknięta po {0} sekundach","confirm":"Potwierdzać","no_available_result":"Brak dostępnych wyników","invalid_password_format":"nieprawidłowy format hasła","invalid_password_format_same":"Hasło jest takie samo jak oryginalne hasło","error_password":"Błędne hasło","keychain_setting":"Brelok do kluczy","setting_description":"Przechowywanie w chmurze: zapisuj kluczowe dane w chmurze.\\nZmień hasło: zmiana hasła do klucza biblioteki multimediów.\\nMnemonik: alternatywna metoda generowania i przywracania kluczy.\\nImportuj klucz lokalny: Importuj lokalnie zapisany klucz do biblioteki multimediów.\\nKlucz eksportu: zapisuje bieżące dane biblioteki multimediów w pliku lokalnym lub w chmurze.\\nKopia zapasowa klucza do chmury: zaktualizuj bieżące dane biblioteki multimediów do chmury w celu wykonania kopii zapasowej.","refresh_status":"Stan aktualizacji","confirm_import_key":"Potwierdź klucz importu","confirm_update_cloud_key":"Masz już klucz w chmurze. Aktualizacja klucza spowoduje zastąpienie oryginalnego klucza. Czy na pewno chcesz zaktualizować klucz przechowywany w chmurze","export_key_with_cloud":"Wprowadź niezależne hasło, które ustawiłeś, aby wyeksportować klucz biblioteki przechowywany w chmurze i zablokuj plik klucza hasłem odblokowania","store_cloud_key_prompt_password":"Wprowadź niezależne hasło, aby przechowywać klucz biblioteczny w chmurze","update_cloud_key_prompt_password":"Ustaw niezależne hasło, aby zaszyfrować klucz biblioteki, a następnie zaktualizuj go do chmury","enable_cloud_storage_prompt_password":"Ustaw hasło do klucza przechowywanego w chmurze, za pomocą którego możesz pobrać klucz z chmury","input_unlock_password":"Ustaw hasło odblokowujące","export_local_prompt_password":"Ustaw hasło odblokowujące, aby zaszyfrować plik klucza. Nie zapiszemy dla Ciebie tego hasła, więc jeśli je zgubisz, nie będziesz mógł odblokować swojego klucza bibliotecznego","require_unlock_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","require_independent_password":"Wprowadź niezależne hasło, aby uzyskać klucz przechowywany w chmurze","import_local_prompt_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","select_encrypt_mode":"Wybierz tryb szyfrowania","update_cloud_key":"Zaktualizuj klucz przechowywany w chmurze","backup_to_cloud":"Utwórz kopię zapasową klucza biblioteki w chmurze","save_local":"Zapisz klucz biblioteki jako lokalny zaszyfrowany plik","create_new_key":"Utwórz nowy klucz biblioteki","creating_lib_key":"Tworzę klucz biblioteki...","loading_lib_key":"Ładowanie klucza biblioteki...","failed_to_create_lib_key":"Nie udało się utworzyć klucza biblioteki","failed_to_load_lib_key":"Nie udało się załadować klucza biblioteki","import_local_key":"Importuj klucz lokalnie","import_lib_key_from_local":"Zaimportuj klucz biblioteki lokalnie","import_from_cloud":"Zaimportuj klucz biblioteki z chmury","create_or_import_key":"Utwórz lub zaimportuj klucz biblioteki","create_or_import_key_desc":"Klucz biblioteczny to niezależny klucz używany do pobierania i publikowania treści w zdecentralizowanej bazie danych.","store_your_lib_key":"Przechowuj swój klucz do biblioteki","export_cloud_key":"Eksportuj klucz z chmury","export_current_key":"Eksportuj bieżący klucz","change_password":"Zmień hasło","enable_cloud_storage":"Włącz przechowywanie w chmurze","disable_cloud_storage":"Wyłącz przechowywanie w chmurze","disable_cloud_storage_desc":"Wyłączenie przechowywania w chmurze spowoduje usunięcie klucza zapisanego w chmurze, upewnij się, że klucz jest zapisany lokalnie","sync_at":"Synchronizuj o: {time}","cloud_storage_enabled":"Synchronizuj pęku kluczy z {storage}","cloud_storage_disabled":"Przechowywanie w chmurze wyłączone","saved_locally":"Zapisane lokalnie","export_key":"Eksportuj plik klucza","cloud_independent_password":"Hasło niezależne od chmury","key_file_unlock_password":"Hasło odblokowania pliku klucza","re_enter_unlock_password":"Wprowadź ponownie hasło odblokowujące","independent_password_not_enabled":"Obecne hasło to hasło do konta Alphabiz (nie jest ustawione żadne niezależne hasło)","use_cognito_hash":"Użyj hasła do konta Alphabiz","use_independent_password":"Użyj niezależnego hasła","keychain_lib":"klucz do biblioteki","loading_keychain_state":"Ładowanie pęku kluczy...","backing_up":"Tworzenie kopii zapasowej...","backup_current_key":"Utwórz kopię zapasową bieżącego klucza w chmurze","cloud_lib_key_not_existed":"klucz biblioteki nie istnieje w chmurze","open_keychain_file":"Otwórz plik pęku kluczy","confirm_open_abk":"Czy chcesz otworzyć plik ABK","use_the_key":"Użyj klucza","backup_the_key":"Utwórz kopię zapasową klucza w chmurze","keychain_data_does_not_exist":"Dane pęku kluczy nie istnieją","timeout of 0ms exceeded":"Wystąpił problem z siecią, spróbuj ponownie później","XhrError":"Wystąpił problem z siecią, spróbuj ponownie później","payer credit amount is not enough":"Za mało kredytów","payee does not exist":"Odbiorca płatności nie istnieje","block_list_manage":"Zarządzaj listą zablokowanych","blocked_users":"Zablokowani użytkownicy","blocked_channels":"Zablokowane kanały","unblock_user":"Odblokuj użytkownika","unblock_channel":"Odblokuj kanał","no_blocked_user":"Brak zablokowanego użytkownika","no_blocked_channel":"Brak zablokowanego kanału","field_required":"{0} jest wymagane","setting":"Ustawienie","unknown_media":"Nieznane media","settings_button_visible":"Przycisk widoczny","settings_setting":"Ustawienie","settings_playback_rate":"Szybkość odtwarzania","settings_subtitle":"Podtytuł","settings_pip":"Pypeć","settings_fullscreen":"Pełny ekran","settings_subtitle_options":"Opcje napisów","settings_normal":"Normalna","settings_italic":"italski","settings_lighter":"Zapalniczka","settings_bolder":"Odważniejszy","settings_small":"Mały","settings_large":"Duży","about":"O","services":"Usługi","hide":"Ukrywać","hide_others":"Ukryj inne","show_all":"Pokaż wszystko","quit":"Zrezygnować","edit":"Edytować","redo":"Przerobić","cut":"Cięcie","paste":"Pasta","select_all":"Zaznacz wszystko","view":"Pogląd","reload":"Przeładować","toggle_full_screen":"Przełącz tryb pełnoekranowy","toggle_developer_tools":"Przełącz Narzędzia dla programistów","window":"Okno","minimize":"Zminimalizować","bring_all_to_front":"Przenieś wszystko na wierzch","help":"Pomoc","github_repo":"Repozytorium Github","issues":"Kwestie","learn_more":"Ucz się więcej","learn_spelling":"Naucz się pisowni","lookup_selection":"Wyszukaj „{selection}”","search_with_google":"Szukaj za pomocą Google","save_as":"Zapisz jako","save_image":"Zapisać obraz","save_image_as":"Zapisz obraz jako ...","copy_link":"Skopiuj link","save_link_as":"Zapisz link jako ...","copy_image":"Skopiuj obraz","copy_image_as":"Kopiuj obraz jako...","copy_image_address":"Kopiuj adres obrazu","download_complete":"Pobieranie zakończone","download_complete_message":"{0} jest pobierany","is_running":"{0} działa","open":"Otwórz {0}","launch_problem":"Problem z uruchomieniem","ask_clear_data":"Wygląda na to, że próbujesz uruchomić {0}, ale kilka razy nie powiodło się.\\nCzy chcesz wyczyścić wszystkie dane aplikacji i spróbować uruchomić ją później?","launch_directly":"Uruchom bezpośrednio","clear_all_data":"Wyczyść wszystkie dane","ask_clear_confirm":"Spowoduje to usunięcie wszystkich konfiguracji, dzienników i danych użytkownika!\\nPo tym może być konieczne ponowne uruchomienie {0}.\\nCzy na pewno usunąć dane?","confirm_launch":"Nie, uruchom bezpośrednio","confirm_clear":"Tak, wyczyść wszystkie dane"}')},"06cd":function(e,t,a){"use strict";a("326b")},"06e8":function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return c}));a("d4b5"),a("de6c"),a("7996");var n=a("e75b");const o=new n["a"].Rest("ABDevRest"),i=e=>{let t,a,n,i;const r=()=>!1!==i,s=e=>{t=e.query_type,a=e.query_params||{},n=[],i=void 0},l=()=>o.post("/credit/transaction/query",{query_type:t,query_params:JSON.stringify(a),next_token:i}).then((e=>{var t;n.push(...e.items),i=null!==(t=e.nextToken)&&void 0!==t&&t}));return e&&s(e),{reset:s,getData:()=>n,hasNext:r,fetch:l}},r=n["a"].GQL,s={enable:async e=>await r.enableUserListener(e),disable:async()=>{r.removeUserListener("credits"),r.disableUserListener()},addHandler:(e,t)=>{r.addUserListener("credits",(a=>{void 0!==a[e]&&t(a[e])}))},addHandlers:(e,t)=>{r.addUserListener("credits",(t=>{Object.entries(t).forEach((([t,a])=>{e[t]&&e[t](a)}))}),t)}},l={state:"disabled",resolver:null,async enable({rootState:e,rootGetters:t,dispatch:a}){const n=()=>e.account.sub,o=()=>t.transactions.expenses,i=e=>a("CREDIT_PAY_DATA_CANCEL",{transactionId:e.id}),r=e=>t=>{const a=2592e5;if("PAYDATA"!==t.category)return!1;if(t.payerId!==n())return!1;if("PENDING"!==t.status)return!1;const o=e.getTime()-new Date(t.createdAt).getTime();return!(o<=a)},s=async()=>{const e=o(),t=e.filter(r(new Date));for(const a of t)console.log("TxnCancellation:",a.id),await i(a)};c.state="idle";const l=3e5;while(!["stopping","disabled"].includes(c.state)){let e=l;if("idle"===c.state){c.state="processing";const t=(new Date).getTime();if(await s(),["stopping","disabled"].includes(c.state))break;const a=(new Date).getTime();e-=Math.max(0,Math.min(l,a-t))}if(e&&(c.state="waiting",await new Promise((t=>setTimeout(t,e))),["stopping","disabled"].includes(c.state)))break;c.state="idle"}console.error("TxnCancellation resolver"),c.resolver?c.resolver():console.error("resolver not found")},async disable(){if(["stopping","disabled"].includes(c.state))return;if(["waiting"].includes(c.state))return void(c.state="disabled");const e=new Promise((e=>{c.resolver=()=>{e(),c.resolver=null}}));c.state="stopping",await e,c.state="disabled"}},c=new Proxy(l,{get(e,t,a){return Reflect.get(e,t,a)},set(e,t,a,n){return"state"===t&&console.log("TxnCancellation:",a),Reflect.set(e,t,a,n)}})},"071f":function(e,t,a){"use strict";a("25b9")},"072b":function(e,t,a){"use strict";a.d(t,"c",(function(){return d})),a.d(t,"d",(function(){return u})),a.d(t,"a",(function(){return _})),a.d(t,"e",(function(){return p})),a.d(t,"h",(function(){return m})),a.d(t,"b",(function(){return h})),a.d(t,"g",(function(){return g})),a.d(t,"f",(function(){return f}));a("de6c");const n="`~!@#$%^&*()\\-_=+[\\]\\\\;',./{}|:\"<>?",o=(e,t)=>{const a=new RegExp(`^[${t.join("")}]*$`);return a.test(e)},i=(e,t=1,a=1/0)=>void 0!==e&&("string"===typeof e&&0===e.length||e.length>=t&&e.length<=a),r=e=>!/\s\s/.test(e),s=e=>/[0-9]/g.test(e),l=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`^[^${t.join("")}]`).test(e)),c=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`[^${t.join("")}]$`).test(e)),d=function(e){const t=["0-9","A-Z","a-z","一-龥","\\s","_"];if(!o(e,t))return this.$t("account_field_only_chinese_alphanumeric_space_underline");const[a,n]=[2,15];return i(e,a,n)?l(e,["0-9","\\s"])?c(e,["\\s"])?!!r(e)||this.$t("account_field_without_repeat_space"):this.$t("account_field_suffix_without_space"):this.$t("account_field_prefix_without_number_space"):this.$t("account_field_range",[a,n])},u=function(e){const t=["0-9","A-Z","a-z",n];if(!o(e,t))return this.$t("account_field_only_alphanumeric_and_symbol");const[a,r]=[8,20];return i(e,a,r)?s(e)?void 0:this.$t("account_field_must_have_number_characters"):this.$t("account_field_range",[a,r])},_=function(e){if(!/^([a-zA-Z]|[0-9])(\w|-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(e))return this.$t("account_invalid_email_format")},p=function(e){if(!o(e,["0-9"]))return this.$t("account_field_phone_number");const[t,a]=[3,11];return i(e,t,a)?void 0:this.$t("account_field_range",[t,a])},m=function(e){return o(e,["0-9"])&&i(e,6,6)?void 0:this.$t("account_field_verification_code")},h=function(e){const t=["0-9","A-Z","a-z"];if(!o(e,t))return this.$t("account_field_invitation_code")},g=function(e){const t=["0-9","a-f","-"];return o(e,t)&&"8-4-4-4-12"===e.split("-").map((e=>e.length)).join("-")||this.$t("tip_invalid_receiver")},f=function(e){return/^((\d{1,3}(\.\d{1,3})?)|(1000(\.0{1,3})?))$/.test(e)?[""+parseFloat(e)===e,parseFloat(e)<=1e3,parseFloat(e)>=.001,parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)].some((e=>!e))?this.$t("tip_invalid_amount"):void 0:this.$t("tip_invalid_amount")}},"0742":function(e,t,a){},"0885":function(e,t,a){"use strict";a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));a("7a76"),a("de6c");var n=a("3387"),o=a("f680"),i=a("5584"),r=a("d310"),s=a("1926"),l=a("d7df"),c=a("84f6"),d=a("d558");const u={started:[],toVerify:{},toSubmit:{},toFinish:{},toPause:{}},_={},p=1e7,m="\n background-color: rgb(90,90,90);\n color: white;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(161,161,161);\n",h=()=>{const e={set:e=>global.notified_credit_not_enough_amount=e,get:()=>!!global.notified_credit_not_enough_amount};e.get()||(e.set(!0),o["a"].create({group:"credit_not_enough_amount",message:s["b"].t("credit_not_enough_amount"),type:"negative",position:"bottom-right",timeout:6e3,actions:[{icon:"close",color:"negative",handler:()=>e.set(!1)}]}))};function g(e,t){_[e]=t}function f(e,t=!1){t?(console.log("restart transaction",e),l["a"].emit("restart_payment",e)):l["a"].emit("credit_payment_created",e),u.started.push(e.id)}async function b(e,t=!1,a){console.log("Create payment",e,t);const{infoHash:n,remoteSubId:i,payed:r}=e,l=Date.now().toString();try{const c=await a.dp$request(i,r,{infoHash:n,timestamp:l});f({...e,id:c}),t||o["a"].create(s["b"].t("success"))}catch(c){if(console.log("dp$request failed",c.message),"credit_not_enough_amount"===c.message)return void h();t||o["a"].create(c.message||c)}}function y(e){e.$watch("dp$incomeStatusMapper",((e,t)=>{Object(n["isEqual"])(e,t)||e.PENDING&&e.PENDING.forEach((e=>{u.toVerify[e]&&u.toVerify[e](),u.toSubmit[e]&&u.toSubmit[e]()}))})),e.$watch("dp$expenseStatusMapper",((t,a)=>{Object(n["isEqual"])(t,a)||(t.PENDING&&t.PENDING.forEach((t=>{if(u.started.includes(t))return;const a=e.dp$expenseTxnDict[t],n=JSON.parse(a.meta);console.log("dp$restart from StatusMapper"),f({infoHash:n.infoHash,remoteSubId:a.payeeId,payed:a.amount,autoRenew:!!_[n.infoHash],id:a.id},!0)})),t.COMPLETED&&t.COMPLETED.forEach((e=>{u.toFinish[e]&&u.toFinish[e]()})))})),l["a"].on("verify_payment",(t=>{if(console.log("onVerify",t),void 0===u.toVerify[t.id]){const a=async()=>{u.toVerify[t.id]=!1;const a=e.dp$incomeTxnDict[t.id],n=e=>{throw new Error(`DataPayment(${t.id}) Verify failed: ${e}`)};a.amount!==t.payed&&n("mismatched amount"),l["a"].emit("payment_verified",t)};u.toVerify[t.id]=a}const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.id)&&(u.toVerify[t.id]&&u.toVerify[t.id](),delete u.toVerify[t.id])})),l["a"].on("torrent_metadata",(t=>{var a;l["a"].emit("save_torrent_file",t),g(t,!0);const n=e.dp$expenseHashMapper[t];if(!n)return;const o=null===(a=e.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>n.includes(e)));o&&o.length&&o.forEach((a=>{const n=e.dp$expenseTxnDict[a];console.log("dp$restart from resumeAccelerate"),f({infoHash:t,remoteSubId:n.payeeId,payed:n.amount,autoRenew:_[t],id:n.id},!0)}))})),l["a"].on("request_renew",(t=>{var n;const{subId:o,infoHash:i,peerId:s}=t,l=Object(r["isElectron"])()||Object(d["a"])()?c["a"].allTasks.find((e=>e.infoHash===i)):a("c620").getTaskInstance();if(!l||l.paused||l.done||!l.connections)return;const u=null===(n=l.connections)||void 0===n?void 0:n.find((e=>e.subId===o));if(!u)return;if(!u.hasResource)return void console.log("Remote peer does not have resource. Skip renew.",o,i,s);const _=e.dp$expenseHashMapper[i]||[],m=e.dp$expenseStatusMapper.PENDING||[],h=(null===m||void 0===m?void 0:m.filter((e=>_.includes(e))))||[];if(h.length>10)return console.log("too many pending payments",h);const f=h.filter((t=>{if(!e.dp$expenseTxnDict)return!1;if(e.dp$expenseTxnDict[t]){const a=e.dp$expenseTxnDict[t];return"PENDING"===a.status&&a.payeeId===o}return!1}));if(f.length>3)return console.log(`Too many pending payments for remote subId ${t.subId}`,h);const y=l.length-l.recieved;let v=t.payCount||10;y{console.log("payment completed",t),void 0===u.toSubmit[t.transactionId]&&(u.toSubmit[t.transactionId]=async()=>{u.toSubmit[t.transactionId]=!1,await e.dp$submit(t.transactionId),l["a"].emit("finish_payment",t)});const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.transactionId)&&u.toSubmit[t.transactionId]&&u.toSubmit[t.transactionId]()})),l["a"].on("payment_finished",(t=>{console.log("Finished",t.id),void 0===u.toFinish[t.id]&&(u.toFinish[t.id]=async()=>{u.toFinish[t.id]=!1;try{await e.dp$confirm(t.id);const a=e.dp$expenseTxnDict[t.id];l["a"].emit("payment_closed",{id:a.id,infoHash:JSON.parse(a.meta).infoHash,remoteSub:a.payeeId})}catch(a){console.error("dp$toFinish failed:",a.message)}});const a=e.dp$expenseStatusMapper.COMPLETED;a&&a.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]();const n=e.dp$expenseStatusMapper.PENDING;n&&n.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]()})),l["a"].on("request-provident-payment",(async e=>{console.log("%cRequest provident payment",m,e);try{await i["a"].dispatch("CREDIT_PF_DEPOSIT",{amount:e.count,meta:{infoHash:e.infoHash,timestamp:Date.now().toString()}})}catch(t){"credit_not_enough_amount"===t.message&&h()}}))}t["b"]=y},"0928":function(e,t,a){"use strict";a("7405")},"09e8":function(e,t,a){"use strict";a("d4b5");var n=a("5584");class o{constructor(e){Object.defineProperty(this,"_data",{get(){return e}});const t=()=>{const t=["id","status","payerId","payeeId","amount","meta"],a={};return t.forEach((e=>a[e]=this[e])),Object.defineProperty(a,"_data",{get(){return e}}),a};return t()}get id(){return null}get status(){return null}get payerId(){return null}get payeeId(){return null}get amount(){return null}get meta(){return null}}class i{constructor(e){this.name=e}dp$address(){}dp$credit(){}dp$incomeTxnList(){}dp$expenseTxnList(){}dp$incomeTxnListToday(){}async dp$request(e,t,a){}async dp$cancel(e){}async dp$submit(e,t){}async dp$confirm(e,t){}}a("de6c");const r=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"gainsboro",color:"black"},{bgc:"grey",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)};class s{constructor({parallelCount:e}={}){this.queue=[],this.started=!1,this.parallelCount=e||1}append(...e){return this.queue.push(...e),this}async start(){if(!this.started){this.started=!0;while(this.started)if(this.queue.length>0){const e=this.queue.splice(0,this.parallelCount),t=e=>new Promise((t=>{const a=e();a&&a.then&&a.catch?a.then(t):t()}));await Promise.all(e.map(t))}else await this.wait(3e3)}}stop(){this.started=!1}async wait(e){await new Promise((t=>setTimeout(t,e)))}async promise(e){let t;if(await new Promise((a=>{this.append((()=>e().then(a,(e=>t=e))))})),t)throw t}}const l=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,!["Invalid transaction: status should be PENDING","Invalid transaction: status should be PENDING or COMPLETED","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ConditionalCheckFailed]","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ValidationError]"].includes(e.message)){if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if(["Transaction cancelled, please refer cancellation reasons for specific reasons [None, TransactionConflict]"].includes(e.message))return r("warn",["dp$retry",n,"TransactionConflict",e.code],e.message),!0;if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};class c extends i{constructor(){super("amplify"),this.asyncQueue=new s({parallelCount:1}),this.asyncQueue.start().then((()=>{console.log("dp$asyncQueue: stop")}))}dp$address(){return n["a"].state.account.sub}dp$credit(){return n["a"].state.credits.credit}dp$incomeTxnList(){const e=n["a"].getters.transactions.income.filter((e=>"PAYDATA"===e.category));return e}dp$expenseTxnList(){const e=n["a"].getters.transactions.expenses.filter((e=>"PAYDATA"===e.category));return e}dp$incomeTxnListToday(){const e=n["a"].getters.incomeTodayTransactions.filter((e=>"PAYDATA"===e.category));return e}async dp$request(e,t,a){let o;const i=async()=>{o=await n["a"].dispatch("CREDIT_PAY_DATA_REQUEST",{receiverSub:e,amount:t,meta:a})};return await l(i,5),o.id}async dp$cancel(e){const t=async()=>{await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(t,5)}async dp$submit(e,t){const a=async()=>{t?console.warn("dp$warn: abandoned is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_COMPLETED",{transactionId:e})};await l(a,5)}async dp$confirm(e,t){const a=async()=>{t?console.warn("dp$warn: failed is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(a,5)}}var d=a("7ca3"),u=a.n(d);a("7a76");class _ extends o{__parseStatus(e){const t={0:"PENDING",1:"FINISH",3:"FINISH",4:"COMPLETED",5:"FINISH",6:"FAILED"},a=t[e];if(!a)throw new Error("Unexpected state",e);return a}get id(){return[this._data.publisher,this._data.performer,this._data.index].join("::")}get status(){return this.__parseStatus(this._data.state)}get payerId(){return this._data.publisher}get payeeId(){return this._data.performer}get amount(){return parseInt(this._data.amount)}get meta(){return this._data.meta_data}}const p=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,r("warn",["retryHandler"],e.message),"Out of gas"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("invalid transaction: INSUFFICIENT_BALANCE_FOR_TRANSACTION_FEE"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if("invalid transaction: SEQUENCE_NUMBER_TOO_OLD"===e.message)return r("warn",["dp$retry",n,a,e.code],e.message),!0;if("transaction is rejected: InvalidUpdate - Transaction already in mempool"===e.message)return r("warn",["dp$retry",n,a],e.message),!0;if(e.is_move_error){if("1031"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status was deactivated");if("1281"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status has been changed");throw r("warn",["dp$retry",n,"failed",e.code],e.message),e}if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};let m;class h extends i{constructor(){super("blockchain"),m=window.$blockchain}dp$address(){return m.$store.account.address}dp$credit(){return m.$store.wallet.balance.TestCoin}dp$incomeTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}dp$expenseTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.expensesFilter);return e.map((e=>new _(e)))}dp$incomeTxnListToday(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}async dp$request(e,t,a){const n=async()=>{const n=await m.$store.DataProviding.publishDataProvidingTxn({address:e,amount:t,meta:JSON.stringify(a)}),o=n.getTaskId(),i=[o.publisher,o.performer,o.index].join("::");return i};return await p(n,5)}async dp$cancel(e){const t=async()=>{const t=await m.$store.DataProviding.cancelDataProvidingTxn({txnKey:e});console.log("postTxnCancel >>",t)};await p(t,5)}async dp$submit(e,t){const a=async()=>{const a=await m.$store.DataProviding.submitDataProvidingTxn({txnKey:e,abandoned:t});console.log("postTxnComplete >>",a)};await p(a,5)}async dp$confirm(e,t){const a=async()=>{const a=await m.$store.DataProviding.confirmDataProvidingTxn({txnKey:e,failed:t});console.log("postTxnFinish >>",a)};await p(a,5)}}function g(){const e={},t={},a=b.call(this,{dp$incomeTxnList:"dp$incomeTxnDict",dp$expenseTxnList:"dp$expenseTxnDict"}),n=y.call(this,{dp$incomeStatusMapper:e=>e.status,dp$incomeHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}}),o=y.call(this,{dp$expenseStatusMapper:e=>e.status,dp$expenseHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}});e.updateIncomeData=()=>{a.dp$incomeTxnList(),n("dp$incomeTxnList")},e.updateExpenseData=()=>{a.dp$expenseTxnList(),o("dp$expenseTxnList")};const i=f.call(this,"dp$incomeTxnDict"),r=f.call(this,"dp$expenseTxnDict");e.logIncomeStatus=(e,t)=>i(e,t),e.logExpenseStatus=(e,t)=>r(e,t),this.dp$utils=e}function f(e){const t=(t,a)=>this[e][t]&&r(["dp$status",a||"[payment]","=>",this[e][t].status],t);return(a,n)=>{if(a&&this[e]){if(n)for(const e of Object.keys(n))if(n[e]&&a[e])for(const o of n[e])a[e].includes(o)||t(o,e);if(a.PENDING)for(const e of a.PENDING)n&&n.PENDING&&n.PENDING.includes(e)||t(e)}}}function b(e){const t=(e,t)=>this[e]=t,a=(e,a)=>{const n={};for(const t of this[e])n[t.id]=t;t(a,n)};return Object.entries(e).reduce(((e,[t,n])=>({...e,[t]:()=>a(t,n)})),{})}function y(e){return t=>{const a={};for(const[o,i]of Object.entries(e)){const e={};for(const a of this[t]){const t=i(a);e[t]||(e[t]=[]),e[t].push(a.id)}a[o]=e}const n=(e,t)=>this[e]=t;Object.entries(a).forEach((e=>n(...e)))}}u()(h,"incomeFilter",(e=>m.$store.account.account.address().toShortString()===e.performer)),u()(h,"expensesFilter",(e=>m.$store.account.account.address().toShortString()===e.publisher));const v=[c,h];t["a"]={data(){var e;const t=null!==(e=localStorage.getItem("dataPaymentMixin.mode"))&&void 0!==e?e:"amplify";localStorage.setItem("dataPaymentMixin.mode",t);const a=v.reduce(((e,t)=>{const a=new t;return e[a.name]=a,e}),{});return g.apply(this),{dp$mode:t,dp$interfaces:a,dp$incomeTxnDict:{},dp$incomeStatusMapper:{},dp$incomeHashMapper:{},dp$expenseTxnDict:{},dp$expenseStatusMapper:{},dp$expenseHashMapper:{},dp$source:this}},watch:{dp$mode(e){r(["dp$mode",e]),localStorage.setItem("dataPaymentMixin.mode",e)},dp$incomeTxnList(){this.dp$utils.updateIncomeData()},dp$expenseTxnList(){this.dp$utils.updateExpenseData()}},computed:{dp$credit(){return this.dp$interfaces[this.dp$mode].dp$credit()},dp$address(){return this.dp$interfaces[this.dp$mode].dp$address()},dp$incomeTxnList(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnList()},dp$expenseTxnList(){return this.dp$interfaces[this.dp$mode].dp$expenseTxnList()},dp$incomeTxnListToday(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnListToday()}},methods:{async dp$request(e,t,a){r(["dp$post","request","waiting..."]);const n=await this.dp$interfaces[this.dp$mode].dp$request(e,t,a);return r(["dp$post","request","done"],n),n},async dp$cancel(e){r(["dp$post","cancel","waiting..."],e);const t=await this.dp$interfaces[this.dp$mode].dp$cancel(e);return r(["dp$post","cancel","done"],e),t},async dp$submit(e,t=!1){const a=t?"abandoned":"provided";r(["dp$post","submit",a,"waiting..."],e);const n=await this.dp$interfaces[this.dp$mode].dp$submit(e,t);return r(["dp$post","submit",a,"done"],e),n},async dp$confirm(e,t=!1){const a=t?"failed":"succeeded";r(["dp$post","confirm",a,"waiting..."],e);try{const n=await this.dp$interfaces[this.dp$mode].dp$confirm(e,t);return r(["dp$post","confirm",a,"done"],e),n}catch(o){var n;if(console.warn("Error when confirming transaction",e,o),null!==(n=o.message)&&void 0!==n&&n.includes("payee does not exist")){const t=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]");t.push(e),localStorage.setItem("_transactions_missing_payee_",JSON.stringify(t))}}},__dp$notify__(){const e="amplify"===this.dp$mode?"blockchain":"amplify";this.$q.notify({group:"dp$mode_warning",message:`Current Data Payment Mode: "${this.dp$mode}"`,type:"warning",position:"bottom",timeout:0,actions:[{noCaps:!0,color:"black",label:`Switch to ${e}`,handler:()=>{this.dp$mode=e,location.reload(),a("d310").isElectron()&&a("1b85").ipcRenderer.send("reload-webtorrent-window")}},{noCaps:!0,color:"black",label:"Close"}]})}},created(){this.dp$utils.updateIncomeData(),this.dp$utils.updateExpenseData()}}},"0c2f":function(e,t,a){},"0c70":function(e,t,a){},"0c7a":function(e,t,a){},"0cdb":function(e,t,a){"use strict";a.r(t),a.d(t,"notifyGeneralUpdate",(function(){return n})),a.d(t,"notifyMessage",(function(){return o})),a.d(t,"transfer",(function(){return i})),a.d(t,"notifyCreditChange",(function(){return r})),a.d(t,"generalCommand",(function(){return s})),a.d(t,"createUser",(function(){return l})),a.d(t,"updateUser",(function(){return c})),a.d(t,"deleteUser",(function(){return d})),a.d(t,"createInvitation",(function(){return u})),a.d(t,"updateInvitation",(function(){return _})),a.d(t,"deleteInvitation",(function(){return p})),a.d(t,"createMessageTimer",(function(){return m})),a.d(t,"updateMessageTimer",(function(){return h})),a.d(t,"deleteMessageTimer",(function(){return g})),a.d(t,"createTransaction",(function(){return f})),a.d(t,"updateTransaction",(function(){return b})),a.d(t,"deleteTransaction",(function(){return y})),a.d(t,"createTask",(function(){return v})),a.d(t,"updateTask",(function(){return w})),a.d(t,"deleteTask",(function(){return k})),a.d(t,"createProvidentFund",(function(){return S})),a.d(t,"updateProvidentFund",(function(){return C})),a.d(t,"deleteProvidentFund",(function(){return x}));const n="\n mutation NotifyGeneralUpdate(\n $id: String!\n $channel: String!\n $data: String!\n ) {\n notifyGeneralUpdate(id: $id, channel: $channel, data: $data) {\n id\n channel\n data\n }\n }\n",o="\n mutation NotifyMessage($channel: String!, $data: String!) {\n notifyMessage(channel: $channel, data: $data) {\n channel\n data\n }\n }\n",i="\n mutation Transfer(\n $receiver: String!\n $amount: Int!\n $category: Category!\n $meta: String\n ) {\n transfer(\n receiver: $receiver\n amount: $amount\n category: $category\n meta: $meta\n )\n }\n",r="\n mutation NotifyCreditChange($ownerId: String!, $amount: Int!) {\n notifyCreditChange(ownerId: $ownerId, amount: $amount) {\n ownerId\n amount\n }\n }\n",s="\n mutation GeneralCommand($input: String) {\n generalCommand(input: $input)\n }\n",l="\n mutation CreateUser(\n $input: CreateUserInput!\n $condition: ModelUserConditionInput\n ) {\n createUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",c="\n mutation UpdateUser(\n $input: UpdateUserInput!\n $condition: ModelUserConditionInput\n ) {\n updateUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n mutation DeleteUser(\n $input: DeleteUserInput!\n $condition: ModelUserConditionInput\n ) {\n deleteUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n mutation CreateInvitation(\n $input: CreateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n createInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",_="\n mutation UpdateInvitation(\n $input: UpdateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n updateInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n mutation DeleteInvitation(\n $input: DeleteInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n deleteInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n mutation CreateMessageTimer(\n $input: CreateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n createMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",h="\n mutation UpdateMessageTimer(\n $input: UpdateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n updateMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n mutation DeleteMessageTimer(\n $input: DeleteMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n deleteMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n mutation CreateTransaction(\n $input: CreateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n createTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",b="\n mutation UpdateTransaction(\n $input: UpdateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n updateTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n mutation DeleteTransaction(\n $input: DeleteTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n deleteTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n mutation CreateTask(\n $input: CreateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n createTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n mutation UpdateTask(\n $input: UpdateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n updateTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n mutation DeleteTask(\n $input: DeleteTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n deleteTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n mutation CreateProvidentFund(\n $input: CreateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n createProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",C="\n mutation UpdateProvidentFund(\n $input: UpdateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n updateProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n mutation DeleteProvidentFund(\n $input: DeleteProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n deleteProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},"0d10":function(e,t,a){},"0f0c":function(e,t,a){"use strict";const n=a("bc7b"),o=a("d6fe"),i=e=>{{const t="alphabiz"===process.env.REPO?o.resolve(process.cwd(),"public"):process.resourcesPath,a="version.json",i=n.readFileSync(o.resolve(t,a)),r=JSON.parse(i);return r[e]}};t["a"]=i},"0f74":function(e,t,a){},1:function(e,t){},10:function(e,t){},1081:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"10e1":function(e,t,a){},11:function(e,t){},"111a":function(e){e.exports=JSON.parse('{"lib_index":"Ev","lib_edit":"Yayınla","lib_publish":"Yayınla","lib_explore":"Keşfetmek","lib_following":"Takip etme","lib_favorite":"Yerel Favoriler","lib_local_favorites":"Yerel Favoriler","lib_channel":"Kanal","lib_submit":"Göndermek","lib_from_network":"Ağdan merkezi olmayan veritabanı kullanma","welcome_to_lib":"${displayName} Medya Kitaplığına Hoş Geldiniz","register_or_login":"Kayıt Giriş","lib_recommend":"Tavsiye etmek","lib_recommend_desc":"${displayName} Kitaplığına hoş geldiniz! Bu kitaplık, ağdan merkezi olmayan bir veritabanı kullanır. Kullanmaya başlamak için bazı kanalları takip etmeniz gerekiyor.","follow_any_channel_to_continue":"Devam etmek için herhangi bir kanalı takip edin","follow_channels_and_continue":"{0} kanallarını takip edin ve devam edin","show_more_for_me":"Benim için daha fazlasını göster","no_more_recommend":"Daha fazla tavsiye yok","key":"Anahtar","create_key":"Anahtar oluştur","save_key":"Anahtarı kaydet","save_key_file":"Anahtarınızı dosya olarak kaydetmek istiyor musunuz?","import_key":"Anahtarı içe aktar","import":"İçe aktarmak","invalid_key":"geçersiz anahtar","back_to_top":"Başa dönüş","search_for_channel":"kanal kimliği ara","search_channel_no_result":"{0} kimliğine sahip kanal bulunamıyor","please_input_channel_id":"Lütfen kanal kimliğini girin","welcome_help_text":"Bu merkezi olmayan bir medya kitaplığıdır. ihtiyacın var\\n Bu veritabanı için bir hesap oluşturmak için. Yapacağız\\n sizin için otomatik olarak kişisel bir anahtar oluşturun.\\n Zaten bir anahtarınız varsa, içe aktarabilirsiniz.\\n burada","welcome_key_text":"Oturum açtıktan sonra, lütfen [ANAHTARI KAYDET] düğmesine tıklayın\\n Özel anahtarınızı kaydetmek için sağ alt köşedeki\\n Anahtarınızı kaybederseniz, tekrar giriş yapamayabilirsiniz.","redirect_to_recommend":"Görünüşe göre herhangi bir kanalı takip etmemişsiniz. [Keşfet] sayfasına yönlendiriliyor.","channel":"Kanal","follow":"Takip etmek","unfollow":"takibi bırak","following":"Takip etme","share":"Paylaşmak","unfollow_confirm":"Bu kanalı takip etmeyi bıraktığınızdan emin misiniz? Bu kanalın zaman tünelinizdeki tüm gönderileri kaldırılacak.","follow_failed_hint":"İşlem hala arka planda beklemede. İşlem uzun süre uygulanmadıysa lütfen uygulamayı yeniden başlatıp tekrar deneyin.","block":"Engellemek","unblock":"engeli kaldırmak","blocked":"Engellendi","block_channel":"Bu kanalı engelle","block_channel_confirm":"Engellenen kanal, onu zaman çizelgenizden kaldıracaktır. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","block_creator":"Bu kanalın yaratıcısını engelle","unblock_creator":"Bu kanalı oluşturan kişinin engellemesini kaldırın","block_creator_confirm":"Blok oluşturucu, bu oluşturucu tarafından oluşturulan tüm kanalları zaman çizelgenizden kaldıracak. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","share_url_copied":"Paylaşım URL\'si panonuza kopyalandı","follow_time":"Zamanı takip et","update_time":"Güncelleme zamanı","search":"Aramak","type":"Tip","added":"Katma","click_to_task":"Göreve gitmek için tıklayın","lib_already_added":"Bu videoyu zaten eklediniz","description":"Tanım","poster":"Afiş","channel_poster":"kanal afişi","preview":"Ön izleme","creator":"Yaratıcı","creator_detail":"Yaratıcı ayrıntısı","loading_creator":"Yaratıcı bilgisi yükleniyor","wait_for_creator_loaded":"Lütfen içerik oluşturucu bilgilerinin yüklenmesini bekleyin.","follower":"takipçi","followers":"Takipçiler","follower_list":"takipçi listesi","user":"kullanıcı","channel_title":"Kanal başlığı","channel_id":"Kanal Kimliği","post_title":"Yazı başlığı","post_id":"Posta kimliği","import_data_from_excel":"Excel\'den veri içe aktarma","set_excel_keys":"excel anahtarlarını ayarla","excel_import_succeded":"Excel içe aktarma başarılı oldu","excel_import_success_msg":"{0} satırları eklenmeye hazır, {1} geçersiz ve yinelenen {2} öğeler yoksayılıyor","cannot_find_channel":"kanal bulunamıyor","cannot_find_posts":"gönderiler bulunamıyor","add_channel":"kanal ekle","add_post":"Gönderi ekle","edit_channel":"Kanalı düzenle","channel_setting":"kanal ayarı","edit_post":"Gönderiyi düzenle","edit_posts":"Gönderileri düzenle","channel_detail":"kanal detayı","remove":"Kaldırmak","remove_channel":"Kanalı kaldır","remove_channel_confirm":"Bu yayını kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","remove_post":"Gönderiyi kaldır","remove_post_confirm":"Bu kanalı kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","preview_mode":"Önizleme modu","preview_mode_desc":"Bu, kanalınızın bir önizlemesidir. Tüm film oranları burada gösterilmektedir.","edit_user_profile":"kullanıcı profilini düzenle","name":"Takma ad","avatar":"avatarı","no_following":"Takip edilen kanal yok. Gitmek için tıklayın","no_recommend":"Önerilen kanal yok. Gitmek için tıklayın","first_recomment_msg":"Uygulama ilk kez başlatılıyorsa biraz zaman alabilir.","invalid_image":"geçersiz resim","image_not_reachable":"Bu resim url\'sine ulaşılamıyor.","channel_not_found":"kanal bulunamadı","cannot_get_channel_info":"Kanal bilgisi alınamıyor. Bu kanal, yaratıcısı tarafından kaldırılabilir ve artık kullanılamayabilir.","validate_error":"Doğrulama hatası","validate_user_name_no_space":"Kullanıcı adı boşluk içermemelidir","validate_url_no_space":"URL boşluk içermemelidir","validate_user_name_length":"Kullanıcı adının uzunluğu {0} ile {1} arasında olmalıdır","validate_user_desc_length":"Kullanıcı açıklaması {0} karakterden fazla olmamalıdır","validate_user_avatar_url":"Kullanıcı avatarı, 2048 karakterden az bir url olmalıdır","validate_channel_title_length":"Kanal başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_channel_desc_length":"Kanal açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_channel_image_url":"Kanal önizlemesi, 2048 karakterden az bir URL olmalıdır","validate_post_title_length":"Gönderi başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_post_desc_length":"Gönderi açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_post_image_url":"Poster, 2048 karakterden az bir url olmalıdır","validate_post_url":"Geçersiz ${displayName} URL","validate_post_url_length":"${displayName} URL, 2048 karakterden uzun olmamalıdır","film_rate":"film hızı","set_film_rate":"Film hızını ayarla","select_a_rate_before_enter":"Ortam kitaplığına girmeden önce bir film hızı seçmeniz gerekir.","library_available_rate":"Kitaplık kullanılabilir film oranı","rate_g":"G – Genel İzleyiciler","rate_g_desc":"Her yaştan kabul edildi. Çocuklar tarafından görüntülendiği için ebeveynleri rahatsız edecek hiçbir şey yok.","rate_pg":"PG – Ebeveyn Rehberliği Önerilir","rate_pg_desc":"Bazı materyaller çocuklar için uygun olmayabilir. Ebeveynler \\"ebeveyn rehberliği\\" vermeye çağırdı. Ebeveynlerin küçük çocukları için sevmeyebilecekleri bazı materyaller içerebilir.","rate_pg_13":"PG-13 – Ebeveynler Kesinlikle Dikkatli","rate_pg_13_desc":"Bazı materyaller 13 yaşından küçük çocuklar için uygun olmayabilir. Ebeveynlerin dikkatli olmaları önerilir. Bazı materyaller ergenlik öncesi çocuklar için uygun olmayabilir.","rate_r":"R – Kısıtlı","rate_r_desc":"17 yaş altı, eşlik eden ebeveyn veya yetişkin vasi gerektirir. Bazı yetişkin materyalleri içerir. Ebeveynlerin, küçük çocuklarını yanlarına almadan önce film hakkında daha fazla bilgi edinmeleri isteniyor.","rate_nc_17":"NC-17 – Yalnızca Yetişkinler","rate_nc_17_desc":"17 Yaş ve Altı Kimse Kabul Edilmez. Açıkça yetişkin. Çocuklar kabul edilmemektedir.","set_as_private":"Özel olarak ayarla","hide_in_explore":"Keşfet sayfasında bu kanalı gizle","hidden":"Gizlenmiş","select_a_rate":"Lütfen bir film oranı seçin","select_from_tasks":"Görevler arasından seçim yapın","import_from_magnet":"Mıknatıstan içe aktar:?...","input_magnet_url":"Giriş mıknatısı:? url","task_title":"Görev başlığı","set_title":"Başlığı ayarla","add_to_local_favorites":"Yerel favorilere ekle","remove_from_local_favorites":"Yerel favorilerden kaldır","removed_favorite":"favori kaldırıldı","import_or_export_favorites":"Sık Kullanılanları İçe/Dışa Aktar","export_local_favorites":"Yerel sık kullanılanları yedek olarak dışa aktarın","import_favorites_file":"Sık kullanılanlar dosyasını içe aktar","not_a_favorite_file":"Bu dosya favori bir yedekleme dosyası değil","connection_status":"Bağlantı durumu","gun_server_list":"Önbellek Düğümleri","custom_nodes":"Özel önbellek düğümleri","custom_nodes_hint":"Uygulama yeniden başlatıldıktan sonra özel önbellek düğümleri uygulanacak","wait_for_reboot":"Yeniden başlatma bekleniyor...({seconds}s)","reboot_now":"Şimdi yeniden başlat","reboot_later":"Daha sonra yeniden başlat","peer_list":"Doğrudan Düğümler","server":"Düğüm URL\'si","peer":"Akran","peer_id":"düğüm kimliği","connection":"Bağlantı","data_source":"Veri kaynağı","sync":"senkronize et","syncing":"senkronizasyon","sync_completed":"Senkronizasyon tamamlandı","got_all_post":"Zaten tüm gönderilere sahipsin","placeholder_channel_title":"Kanal Adınız","placeholder_channel_desc":"Bu kanal hakkında açıklama","placeholder_post_title":"Film Adı (Yıl)","placeholder_post_desc":"Bu film hakkında açıklama","private_channel":"Özel kanal","creator_blocked":"Oluşturan engellendi","go_to_library":"Kütüphaneye git?","go_to_library_channel_msg":"{0} kütüphane kanalına gitmek ister misiniz?","magnet_does_not_have_name":"Bu mıknatıs:? url\'nin bir adı yok, önce bir gönderi başlığı eklemeniz gerekiyor.","no_available_post":"Yayın yok","following_channel_no_post":"Takip ettiğiniz kanalların hiçbirinde yayın yok. Bu, ağ hatasından kaynaklanabilir. Halihazırda bazı kanalları takip ettiyseniz, gönderiler daha sonra yüklenebilir.","share_to_library":"Kitaplıkta paylaş","quick_start":"Hızlı başlangıç","quick_start_desc":"Bir görev veya dosya ile gönderi oluşturmaya başlayın","select_file":"Dosya Seç...","select_folder":"Dosya Seç...","post_options":"Gönderi seçenekleri","channel_options":"kanal seçenekleri","create_new_channel":"Yeni kanal oluştur","use_existed_channel":"Mevcut kanalı kullan","select_existed_channel":"Mevcut kanalı seçin","uploaded_by":"{title}, {name} tarafından yüklendi","created_by":"{title}, {name} tarafından oluşturuldu","creating_new_channel":"Yeni kanal oluşturuluyor...","created_new_channel":"Yeni kanal oluşturuldu","creating_new_post":"Yeni gönderi oluşturuluyor...","created_new_post":"Yeni gönderi oluşturuldu","create_new_post":"Yeni gönderi oluştur","quick_start_timeout":"{0} zaman aşımı. Bunun nedeni ağ hatası olabilir. Lütfen daha sonra tekrar deneyiniz.","file_too_large":"Dosya çok büyük","file_too_large_msg":"Bu dosya 4GB\'tan ({size}) daha büyük ve hazırlanması uzun zaman alabilir. Devam edeceğinizden emin misiniz?","resolving_folder_files":"Klasör dosyaları çözümleniyor...","folder_too_large":"Klasör çok büyük","folder_too_large_msg":"Bu klasördeki dosyalar 4GB\'tan büyüktür (toplam {size}) ve hazırlanma görevi uzun sürebilir. Yükleyeceğinizden emin misiniz?","creating_new_task":"Yeni görev oluşturuluyor...","cannot_create_task":"Görev oluşturulamıyor","cannot_create_task_msg":"Bu bazı hatalardan kaynaklanabilir. Görev doğru oluşturulduysa görev listesini daha sonra kontrol edebilirsiniz.","cannot_get_task_name":"Görev adı alınamıyor. Önce bir tane girmeniz gerekiyor.","remove_old_task":"Eski görevi kaldır","remove_old_task_desc":"Web modu aynı anda yalnızca bir görev oluşturabilir. Eski görevi kaldırmak istiyor musunuz?","subtitle_list":"Altyazı listesi","optional":"isteğe bağlı","with_subtitle":"{language} altyazılı","maximumSubtitleNum_limit":"Altyazı sayısı maksimuma ulaştı","add_subtitle_url":"Alt yazı indirme linki ekle","cannot_add_subtitle":"Altyazı eklenemedi","cannot_add_subtitle_msg":"Altyazı dili seçilmemiş veya geçersiz indirme bağlantısı.","support_subtitle_type":"Yalnızca srt ve vtt biçimindeki altyazılar desteklenir.","recommend_opensubtitles":"www.opensubtitles.org adresindeki altyazı indirme bağlantısını veya kimliğini kullanmanız önerilir.","take_down":"Devirmek","serious_violation":"Ciddi İhlal","copyright_disputes":"Telif Hakkı Anlaşmazlıkları","adults_only":"Sadece yetişkinler","takedown_reason":"Yayından kaldırma nedeni","takedown_mode":"Yayından kaldırma modu","admins":"Yöneticiler","takedown_user":"Bu yaratıcıyı yayından kaldır","takedown_channel":"Bu kanalı yayından kaldır","takedown_post":"Bu gönderiyi yayından kaldır","select_takedown_reason":"Yayından kaldırma nedenini seçin","takedown_invalid_reason":"Geçersiz yayından kaldırma nedeni","takedown_invalid_user_id":"Geçersiz kullanıcı kimliği. Kimlik 87 karakter içermelidir","takedown_invalid_channel_id":"Geçersiz kanal kimliği. Kimlik 20 karakter içermelidir","takedown_invalid_post_id":"Geçersiz gönderi kimliği. Kimlik 20 karakter içermelidir","takedown_management":"Yönetimi devirmek","users":"Kullanıcılar","channels":"Kanallar","posts":"Gönderiler","you":"Sen","preset":"ön ayar","admin":"yönetici","committee":"Kurul","about_takedown_mode":"Yayından kaldırma modu hakkında:\\nÖn Ayar: Github deposunda yapılandırılmıştır. Hepsi kütüphaneden kaldırılacak.\\nYönetici: Yöneticilerin oy verdiği herhangi biri kaldırılacaktır.\\nKomite: Adminlerin en az yarısının oyları kaldırılacaktır.","cannot_edit_preset":"Önceden ayarlanmış bir satır olduğu için bu satırı düzenleyemezsiniz.","cannot_edit_not_vote":"Oy vermediğiniz için bu satırı düzenleyemezsiniz.","remove_vote":"Oyunuzu kaldırın","post_preload_failed":"Bu gönderi önceden yüklenemedi. İndirme bağlantısı güncel olmayabilir, bu nedenle bu gönderi hemen oynatılamaz.","about_cache_node":"Önbellek düğümü hakkında","edit_cache_node":"Önbellek düğümünü düzenle","create_cache_node":"Önbellek düğümü oluştur","about_cache_node_desc":"${displayName}, silah sunucusunu önbellek düğümü olarak kullanır. Özel düğümleri önceden düzenleyebilirsiniz","learn_how_to_deploy_gun":"Kendi silah sunucunuzu nasıl konuşlandıracağınızı öğrenin","repeat_add":"Görev eklendi, lütfen tekrar eklemeyin.","upload":"Yüklemek","download":"İndirmek","delete":"Silmek","delete_task":"Görevi sil","delete_confirm_message":"Bu görev silinsin mi? bu geri alınamaz","also_delete_files":"Dosyaları da sil","default_delete_files":"Görevi kaldırdıktan sonra indirilen dosyaları varsayılan olarak sil","not_now":"Şimdi değil","delete_autoupload_confirm":"Bu görev, otomatik yükleme dizinine koyduğunuz dosyayı içerir. Bu görevi sil, dosyayı da siler.","delete_anyway":"Yine de sil","upload_too_many_files":"Çok fazla dosya yükle","ask_if_unlimit_upload_amount":"Otomatik yükleme dizini çok fazla dosya içeriyor. Yükleme miktarı sınırlamasını devre dışı bırakmak istiyor musunuz? *Bu, performans sorununa neden olabilir","disable_limitation":"Sınırlamayı devre dışı bırak","not_length":"Çoklu dosya işlemi şu anda desteklenmiyor, lütfen işbirliği yapın","download_torrent":"Dosyayı indir","upload_torrent":"Dosya yükleme","files":"Dosyalar","file":"Dosya","folder":"Dosya","start_all":"Hepsini başlat","pause_all":"Hepsini durdur","remove_all":"Hepsini kaldır","upload_all":"hepsini yükle","clear_history":"Geçmişi temizle","pause_all_finish_payments":"Bu, tüm ödemeleri tamamlayacaktır.","accelerating":"hızlanma","link_task":"Bağlantı görevi","torrent_task":"Dosya görevi","ok":"TAMAM","cancel":"İptal etmek","download_directory_position":"Dizin konumunu indir","torrent_file":"görev dosyası","magnetic_link_incorrect":"Bağlantı formatı yanlış","delete_fail":"Sil başarısız","pause":"Duraklat","paused":"duraklatıldı","stop_torrent":"Durmak","seed":"Tohum","resume":"Sürdürmek","downloading":"indiriliyor","downloaded":"İndirildi","uploading":"yükleniyor","auto_uploading":"otomatik yükleme","uploaded":"yüklendi","pending":"Diğer görevler için bekleniyor","verifying":"Doğrulanıyor","waiting_for_verify":"doğrulama bekleniyor","seeding":"tohumlama","completed":"Tamamlanmış","status":"Durum","task_name":"Görev adı","size":"Boyut","progress":"İlerlemek","sort":"Düzenlemek","ascending":"artan","descending":"Azalan","file_loading":"Dosya yükleniyor...","loading":"Yükleniyor","unknown_status":"Bilinmeyen","play_while_downloading":"Oynamak...","upload_or_play":"Yükle / Oynat","play":"Oynamak","ask_if_upload_file":"Dosya yükleme?","ask_if_upload_or_play":"Dosya yükle veya oynat?","torrent_error":"Görev eklerken hata oluştu:","no_peers":"{0} defadan fazla yeniden deneyin ve uygun eş yok","torrent_exists":"Görev zaten bulunuyor.","show_origin_torrent":"Orijinal görev dosyasını veya url\'yi alın","show_directory":"Bu torrentin açık dizini","task_num":"Görevler","total_upload_speed":"Yükleme hızı","total_download_speed":"İndirme hızı","path_missing":"Hata: torrent yolu bulunamıyor","origin_not_found":"Kaynak görev bilgisi bulunamıyor.","text_copied":"Magnum url panonuza kopyalandı","copy_magnet_uri":"Kopya mıknatıs:? URI","copy_download_uri":"İndirme URI\'sini kopyala","copy_share_uri":"Paylaşım URI\'sini kopyala","uri_copied":"URI başarıyla panonuza kopyalandı","uri_copy_failed":"uri kopyalanamadı","more":"Daha fazla...","toggle_list_mode":"Liste modunu değiştir","comment":"Yorum","operations":"Operasyonlar","open_directory":"Açık sözlük","no_downloading_task":"İndirme görevi yok","remove_all_downloading_tasks":"Tüm indirme görevleri kaldırılsın mı?","remove_all_upload_tasks":"Tüm yükleme görevleri kaldırılsın mı?","remove_autoupload_files":"Otomatik yükleme dosyalarını kaldır","remove_all_history":"Tüm geçmiş kaldırılsın mı?","remaining":"Geriye kalan","created_time":"Oluşturma zamanı","used_time":"Kullanılan zaman","completed_time":"Tamamlanan süre","yesterday":"Dün","before_yesterday":"{empty}","earlier":"Daha erken","miss_file":"Bazı dosyalar eksik","delete_miss_file_task":"{0} içinde eksik fom dosyaları var.","common_peer":"ortak akran","ab_peer":"${displayName} emsal","ab_peer_verified":"Doğrulanmış ${displayName} emsal","ab_peer_available":"${displayName} emsal(ler) mevcut","alphabiz_accelerating":"${displayName} hızlanıyor","income":"Gelir","income_info":"Gelir(bugün/toplam)","total_income_info":"Gelir: {0}(bugün) / {1}(toplam)","login_to_see_income":"Gelir istatistiklerini görmek için giriş yapın","credit_cost":"Kredi maliyetleri","downloaded_by_payment":"Payments tarafından indirildi","file_not_found":"Bu dosya yerelde bulunamıyor","no_task":"Sorma","no_matched_task":"Eşleşen görev yok","space_not_enough":"Disk alanı yeterli değil","need_more_space":"{0} daha fazla alana ihtiyaç var ancak mevcut diskte {1} boş yer var ({2} ayrılmış). Görevler duraklatıldı. Kitaplık önyüklemesi devre dışı bırakıldı. [Ayarlar - Gelişmiş]\'te yeniden etkinleştirebilirsiniz.","seeders":"mibzerler","last_update":"Son Güncelleme","connecting":"Bağlanıyor","connected":"bağlı","request_timed_out":"İstek zaman aşımına uğradı","connection_failed":"Bağlantı başarısız oldu","invalid_download_url":"Geçersiz indirme URL\'si","download_link":"İndirme: {link","empty_files":"Dizinde dosya yok","duplicate_task":"Yinelenen görev","duplicate_tracker":"Yinelenen izleyici","this_task_not_ready":"Bu görev hazır değil. Bu görevi duraklatmak onu doğrudan kaldıracaktır.","some_task_not_ready":"Bazı görevler hazır değil. Bu görevleri duraklatmak onları doğrudan kaldıracaktır.","failed_to_delete_files":"dosyalar silinemedi","failed_to_delete_files_desc":"Görevin bazı dosyaları silinemedi. Bunları manuel olarak silmeniz gerekebilir","unknown_error":"Bilinmeyen hata: {0}","more_files_are_not_shown":"({0} daha fazla dosya performans nedeniyle gösterilmez)","no_available_file":"Kullanılabilir dosya yok. Lütfen görevin hazır olmasını bekleyin.","service_worker_error":"Oynamak için ServiceWorker yüklenemiyor. Tarayıcınız bu özelliği desteklemiyor olabilir veya ServiceWorker etkinleştirilmemiş olabilir. Bu sayfayı yeniden yükleyip tekrar denemeniz gerekebilir.","add_task_first":"Önce görev eklemeniz gerekir.","player_task_time":"Oyuncunun oyuna hazırlanması çok fazla saniye alıyor. Görevle ilgili bir sorun olabilir.","web_mode_hint":"${displayName} web modu yalnızca WebRTC eşlerini destekler. En iyi deneyim için lütfen ${displayName} Masaüstü Uygulamasını indirin.","web_mode_task_hint":"Bir görev eklemek için aşağıdaki düğmeleri tıklayın. Aynı anda yalnızca bir görev ekleyebilirsiniz.","save_to_local":"Yerele kaydet","save_as_zip":"ZIP olarak kaydet","creating_save_file":"Kayıt dosyası oluşturuluyor...","upload_as_one_directory":"Tek bir dizin olarak yükle","upload_as_single_files":"Tek dosya olarak yükle","web_mode_upload_single":"Web modunda yalnızca tek bir dosya yükleyebilirsiniz.","download_success":"Başarıyla indir","download_fail":"Yükleme başarısız","wait_for_downloaded_to_share":"Lütfen paylaşmadan önce görevin indirilmesini bekleyin.","download_with_cellular":"Görevleri hücresel kullanarak indir","download_with_cellular_desc":"Hücresel ağ kullanıyorsunuz. Hücresel olarak indirme görevleri, operatörünüz tarafından ek ücretler alabilir.","download_with_cellular_confirm":"Hâlâ hücresel olarak indiriliyor","language":"Dil","appearance":"Dış görünüş","darkModeSystem":"sistem","darkModeLight":"Işık","darkModeDark":"Karanlık","basic_setting":"Temel","hideMenu":"Uygulama Menüsünü Gizle (Yalnızca Windows ve Linux)","autoHide":"Pencereyi Otomatik Gizle","autoStart":"Girişte aç","restore":"Çıkışta pencerenin boyutunu ve konumunu koruyun","autoStartUnfinished":"Tüm tamamlanmamış görevleri otomatik olarak devam ettir","default_download_path":"Varsayılan yol","download_directory":"Dizini İndir","upload_directory":"Dizini Yükle","enable_auto_upload":"Otomatik yüklemeyi etkinleştir","unlimit_upload_amount":"Sınırsız yükleme miktarı","unlimit_upload_warning":"Büyük miktarda dosya yüklemeye izin ver. Bu performans sorununa neden olabilir","start":"Başlatmak","transport_setting":"Bulaşma","upload_limit":"yükleme sınırı","download_limit":"İndirme sınırı","payed_user_share_rate":"Ücretli kullanıcı paylaşım oranı","unlimited":"Sınırsız","limit_input_error":"Limit numarası pozitif olmalıdır","BT_setting":"Görev Ayarları","saveLinkSeed":"Bağlantıyı görev dosyası olarak kaydet","autoDownload":"Bağlantıyı ve içeriği otomatik olarak indir","continuousSeeding":"Manuel olarak durdurana kadar tohumlamaya devam edin","seedSharingRate":"Tohum Oranı","seedTime":"Tohum Süresi (dakika)","task_manage":"Görev yönetimi","maximumDownloadNum":"Maksimum aktif görevler","maximumConnectionsNum":"Sunucu başına maksimum bağlantı","range_error":"Aralık, {0} ile {1} arasında olmalıdır","random":"rastgele","breakpointContinuation":"Devam etmek","automaticSkip":"Görev ekledikten sonra indirmeyi otomatik olarak göster","afterNotification":"İndirme tamamlandıktan sonra bildirim","deleteConfirm":"Görevi silmeden önce onay gerekmez","submit":"Kaydet ve Uygula","discard":"At","reset":"Sıfırla","reset_all_settings":"Bütün ayarları sıfırla?","preferences_resetted":"Tercihler sıfırlandı","traditional_chinese":"Geleneksel çince","japanese":"Japonca","english":"İngilizce","chinese":"Basitleştirilmiş Çince","advancedSettings":"Gelişmiş","autoUpdate":"Otomatik güncelleme","autoCheckUpdate":"Güncellemeyi otomatik olarak kontrol et","proxy":"vekil","useProxyService":"Proxy\'yi Etkinleştir","trackerService":"Takip Sunucuları","recommendUse":"Tavsiye edilen","autoUpdateTrackerServiceList":"İzleyici listesini her gün otomatik olarak güncelleyin","manualUpdateTracker":"Elle güncelleme","manualUpdateSuccess":"İzleyici sunucularını başarıyla güncelleyin","manualUpdateFail":"Şu kaynaktan güncelleme başarısız oldu:","listenPort":"Bağlantı Noktalarını Dinle","BTlistenPort":"Veri İletim Portu","DHTlistenPort":"Dağıtılmış Karma Bağlantı Noktası","protocols":"Uyumlu Protokoller","setDefaultClientForFollowingProtocols":"Aşağıdaki protokoller için varsayılan istemci olarak ayarla","magnetUrl":"Mıknatıs","video_file":"Video dosyası","audio_file":"Ses dosyası","security":"Güvenlik","impersonateUserAgent":"Sahte Kullanıcı Aracısı","RPCauthorizationkey":"RPC Sırrı","viewDocument":"RPC Gizli Kılavuzunu Görüntüle","developer":"Geliştirici","applicationLogPath":"Uygulama günlüğü yolu","downloadSessionPath":"Oturum yolunu indir","resetDownloadSessionRecord":"İndirme oturumunu sıfırla","restoreInitialSettings":"Fabrika ayarları","preferences_set_successfully":"Tercihleri ​​başarıyla kaydedin!","preferences_set_fail":"Kaydetme tercihleri ​​başarısız!","change_not_save":"Değişiklikler kaydedilmedi","discard_all_changes":"Tüm değişiklikler silinsin ve çıkılsın mı?","stay_in_page":"sayfada kal","disk_usage":"Disk kullanımı","pause_if_less_space":"Alan (MB)\'den azsa duraklatın ve bildirin","default_video_player":"varsayılan video oynatıcı","video_cache_time":"Akış oynatma önbelleği","minutes":"dakika","system_default":"Sistem varsayılanı","media_player":"Medya oynatıcı","library_film_rate":"Kullanılabilir film hızı","library_show_explore":"[Keşfet] sayfasını göster","library_setting":"Kitaplık ayarı","library_sync_setting":"Kitaplık senkronizasyon ayarı","keychain_sync_status":"Anahtarlık senkronizasyon durumu","sync_with_aws":"Anahtar Zincirini Amazon Web Services ile Senkronize Etme","backup_to_local":"Yerel dosyaya yedekle","enable_sync_with_aws":"AWS ile senkronizasyonu etkinleştirin","disable_sync_with_aws":"AWS ile senkronizasyonu devre dışı bırakın","disable_sync_with_aws_desc":"Bu, sunucuda kayıtlı anahtarı kaldıracaktır. Lütfen anahtarınızı zaten dışa aktardığınızdan emin olun.","input_independent_password":"Bağımsız parola girin","change_independent_password":"Bağımsız şifreyi değiştir","password_error":"Şifre hatası","password_invalid":"Şifre geçersiz","key_existed":"Anahtar mevcuttu","key_not_found":"Anahtar bulunamadı","library_recommend":"Kitaplık tavsiyesi","show_all_channels":"Kitaplık tavsiye sayfasındaki tüm kanalları göster","not_logged_in":"Giriş yapmadınız","login_to_continue":"Devam etmek için giriş yapın","mnemonic_code":"Anımsatıcı kod","wordlist":"Kelime listesi","restore_code":"Koddan geri yükle","generate_code":"Kodunu oluşturun","export_mnemonic_code":"Anımsatıcı kodu dışa aktar","import_mnemonic_code":"Anımsatıcı kodu içe aktar","print":"Yazdır","save_as_txt":"txt olarak kaydet","save_as_pdf":"pdf olarak kaydet","from_file":"Dosyadan","not_valid_mnemonic_code":"Bu geçerli bir anımsatıcı kod değil","cannot_parse_code_as_key":"Bu anımsatıcı kod kitaplık anahtarı olarak ayrıştırılamıyor","import_key_hint":"Bu anahtarı alacağınızdan emin misiniz? Bu, kütüphanedeki eski anahtarınızı kurtaracaktır.","import_key_confirm":"Evet, içe aktarın.","library_preload":"Görevleri kitaplıktan önceden yükle","show_preload":"Ön yükleme görevlerini göster","set_download":"İndirme dizinini ayarla","set_download_desc":"macOS App Store sürümü için, varsayılan indirme dizini Uygulamanın korumalı alanındadır ve uygulama kaldırıldıktan sonra silinecektir. İndirme dosyalarınızı saklamak istiyorsanız, manuel olarak farklı bir indirme dizini seçmeniz gerekir.","home":"Ev","home_caption":"İndirme/Yükleme ve Medya Dosyaları","library":"Kütüphane","library_caption":"Medya kaynaklarını keşfedin","player":"oyuncu","player_caption":"Medya oynatıcı","credits":"Kredi","credits_caption":"Hesap Bakiyesini Kontrol Edin","account":"Hesap","account_caption":"Giriş Yap/Kaydol/Yönetim","settings":"Ayarlar","settings_caption":"Uygulama, Oyuncu, Hesap Ayarları","development":"Gelişim","development_caption":"Dahili Kullanım için Geliştirici Modu","basic":"Temel","basic_caption":"Temel Ayarlar","advanced":"Gelişmiş","advanced_caption":"Gelişmiş Ayarlar","blockchain":"Cüzdan","blockchain_caption":"${displayName} Merkezi Olmayan Cüzdan","internal_notice":"Dahili Yayın Bildirimi","release_notes":"Sürüm notları","terms_and_conditions":"Şartlar ve koşullar","license_and_listen_notices":"Açık Kaynak Lisanslama ve Dinleme Bildirimleri","close":"Kapalı","success":"Başarı","fail":"Hata","account_email_invalid_address":"Geçersiz e-posta adresi","account_email_invalid_domain":"Geçersiz e-posta alanı","account_email_unknown_status":"Bilinmeyen e-posta teslim durumu","account_email_unavailable_address":"Kullanılamayan e-posta adresi","account_email_suppressed_address":"Gizli e-posta adresi","account_loading":"Yükleniyor...","account_is_required":"gereklidir","account_sign_in_your_account":"Kayıt olmak","account_username":"Kullanıcı adı","account_username_email_phone":"Telefon numarası veya e-posta","account_password":"Şifre","account_new_password":"Yeni Şifre","account_re_enter_password":"Şifrenizi tekrar girin","account_password_not_equal":"İki şifre eşit değil","account_new_password_same":"Parola, orijinal parola ile aynıdır","account_forgot_your_password":"Parolanızı mı unuttunuz?","account_reset_password":"Şifreyi yenile","account_sign_in":"Kayıt olmak","account_signed_in":"Giriş yapıldı","account_sign_up":"Üye olmak","account_find_your_account":"Hesabını bul","account_enter_your_username":"Telefon numaranızı veya e-postanızı girin","account_search":"Aramak","account_email_sent_tip":"E-postanıza doğrulama kodu içeren bir e-posta gönderildi:","account_phone_sent_tip":"Telefonunuza doğrulama kodu içeren bir SMS gönderildi:","account_email_phone_sent_tip":"Doğrulama kodunu içeren e-posta ve SMS sırasıyla e-postanıza ve telefonunuza gönderildi:","account_software_token_tip":"Hesabınız için MFA etkinleştirildi. Oturum açmayı tamamlamak için lütfen cihazınızı açın veya görüntüleyin ve TOTP\'yi yazın.","account_reset_your_password":"şifrenizi sıfırlayın","account_verification_code":"Doğrulama kodu","account_resend_code":"Yeniden gönderme kodu","account_code_has_been_resent":"Doğrulama kodu yeniden gönderildi","account_password_has_been_reset":"Şifre sıfırlandı","account_submit":"Göndermek","account_sign_up_your_account":"hesabınızı kaydedin","account_fill_required_fields":"Aşağıda gerekli alanları doldurunuz.","account_fill_optional_fields":"Aşağıdaki isteğe bağlı alanları doldurun.","account_email":"E-posta","account_invitation":"Davet","account_invitation_code":"Davet Kodu","account_i_accept":"Kabul ediyorum","account_license_terms":"lisans ve şartlar","account_next":"Sonraki","account_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir.","account_verify_fill_optional_fields":"İsteğe bağlı alanları doğrulayın ve doldurun.","account_nickname":"Takma ad","account_gender":"Cinsiyet","account_male":"Erkek","account_female":"Dişi","account_not_say":"Söylememek","account_birthday":"Doğum günü","account_phone_number":"Telefon numarası","account_locale":"Yerel","account_tip_verified":"Doğrulandı, Oturum açılıyor...","account_verified":"doğrulandı","account_unverified":"doğrulanmamış","account_signed_up":"kayıt oldu","account_verify_your_identity":"Kimliginizi dogrulayin","account_finish":"Sona ermek","account_signed_out":"Oturum kapatıldı","account_change_password":"Şifre değiştir","account_change_email":"Değişim e-posta","account_change_phone_number":"Telefon numarasını değiştir","account_sign_out":"oturumu Kapat","account_current_password":"Mevcut Şifre","account_re_enter_new_password":"yeni şifreyi tekrar giriniz","account_personal_information":"Bilgi","account_edit":"düzenlemek","account_reset":"Sıfırla","account_greeting":"Merhaba,","account_cancel":"İptal etmek","account_change":"değiştirmek","account_not_set":"ayarlanmadı","account_setting":"ayar","account_copy_code":"kodu kopyala","account_account_setting":"Hesap","account_task_page":"Kredi görevi","account_setting_caption":"Şifreyi Değiştir / Bilgileri Düzenle","account_security":"Güvenlik","account_want_to_join":"Katılmak istiyorum?","account_sign_in_now":"Kayıt olmak","account_changed":"değişti","account_clipboard_with_invitation_code":"Davet kodu kopyalandı","account_clipboard_with_code":"Kod kopyalandı","account_invitation_code_dialog_tip":"Arkadaşınıza bir davet kodu içeren bir e-posta veya kısa mesaj göndereceksiniz:","account_available":"mevcut","account_invited":"davet edildi","account_used":"kullanılmış","account_invitation_code_sent":"Davet kodu gönderildi","account_invitation_channel_required":"En az bir davet kanalını doldurun","account_no_verification_code":"Doğrulama kodu alamıyor musunuz?","account_no_phone_number":"Telefon numarası yok mu?","account_sign_up_by_email":"e-posta ile kaydol","account_no_email":"Email yok?","account_sign_up_by_phone_number":"Telefon numarası ile kaydolun","account_no_totp":"TOTP yok mu?","account_tip_no_totp":"TOTP yoksa, lütfen önce TOTP\'yi kurun","account_setup_totp":"TOTP\'yi kur","account_contact_information":"İletişim bilgileri","account_delete_account":"Hesabı sil","account_deleted":"silindi","account_can_not_mfa":"MFA\'nın başı dertte mi?","account_set_mfa_type":"MFA\'yı yapılandır","account_disable_mfa":"MFA\'yı devre dışı bırak","account_disabled_mfa":"Engelli MFA","account_sms_mfa":"SMS MFA\'sı","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"tavsiye edilmez","account_oauth_sign_in_with":"{provider} ile oturum açın","account_sign_in_failed":"oturum açılamadı","account_tip_oath_sign_up":"Geçerli {provider} hesabına karşılık gelen e-posta: {email} henüz bir hesap oluşturmadı","account_tip_confirm_delete_account":"Cari hesabı silmek istediğinizi onaylamak için cari hesap şifresini girin.(Silinen hesaplar geri yüklenemez)","account_tip_config_mfa":"İkincil kimlik doğrulama olarak SMS veya zamana dayalı tek seferlik parola (TOTP) kullanmayı seçebilirsiniz.","account_error_can_not_enable_mfa":"MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir","account_tip_can_not_enable_sms_mfa":"SMS MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_can_not_enable_totp_mfa":"TOTP MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_setup_totp":"Aşağıdaki QR kodunu taramak için Kimlik Doğrulayıcı gibi uygulamaları kullanın veya bir güvenlik belirteci eklemek için kodu manuel olarak kopyalayın","account_tip_verify_totp":"TOTP\'nizi doğrulayın","account_link_your_social_account":"Sosyal hesabınızı bağlayın","account_unlink_your_social_account":"Sosyal hesabın bağlantısını kaldır","account_tip_confirm_link":"Cari hesabı {provider} hesabınıza bağlamak istediğinizden emin misiniz?","account_tip_confirm_unlink":"Bağlı {provider} hesabınızı iptal etmek istediğinizden emin misiniz?","account_tip_linking":"bağlayıcı...","account_tip_unlinking":"Çözülüyor...","account_linked":"Ciltli","account_unlinked":"bağlanmamış","account_error_can_not_link_to_the_linked_account":"Mevcut sosyal hesap başka bir hesaba bağlı","account_error_can_not_link_to_the_mismatched_email":"Cari hesap ve sosyal hesap e-posta adresi tutarsız","account_error_can_not_link_before_email_verified":"Mevcut hesap doğrulanmış bir e-postaya bağlı olmadığından sosyal hesap bağlanamıyor","account_tip_confirm_verify_email_phone":"Kimliğinizi doğrulamak için cari hesabın e-postasına ve telefon numarasına bir doğrulama kodu göndermek ister misiniz?","account_tip_confirm_verify_phone":"Kimliğinizi doğrulamak için geçerli telefon numarasına bir doğrulama kodu gönderilip gönderilmeyeceği?","account_error_1_message_60_seconds":"Her 60 saniyede yalnızca bir SMS veya e-posta gönderilebilir, bir {delta} saniye daha bekleyin","account_error_10_messages_per_day":"Her cep telefonu veya e-posta 24 saat içinde yalnızca 10 mesaj gönderebilir","account_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","Network Error":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","account_error_user_not_exist":"Kullanıcı yok","account_error_incorrect_username_or_password":"Yanlış kullanıcı adı ya da parola","account_error_incorrect_original_password":"Yanlış orijinal şifre","account_error_incorrect_password":"yanlış parola","account_error_username_not_found":"Kullanıcı adı bulunamadı","account_error_can_not_reset_for_no_verified":"Doğrulanmamış hesabın şifresi sıfırlanamaz","account_error_invalid_verification_code":"Yanlış doğrulama kodu, lütfen tekrar deneyin","account_error_expired_verification_code":"Doğrulama kodunun süresi doldu, lütfen tekrar deneyin","account_error_password_not_long_enough":"Şifre yeterince uzun değil","account_error_attempt_limit_exceeded":"Deneme sınırı aşıldı, lütfen bir süre sonra deneyin.","account_error_password_attempts_exceeded":"Parola girişimleri aşıldı.","account_error_invalid_phone_number_format":"Geçersiz telefon numarası biçimi","account_error_no_cell_phone_prefix":"Lütfen telefon numarası için önek seçin","account_error_username_already_exists":"Bu kullanıcı adı zaten var","account_error_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir","account_error_inactive_code":"Davet kodu etkinleştirilen bir kod değil","account_error_non_existent_code":"Davet kodu mevcut değil","account_error_unexpected":"Beklenmeyen hata","account_error_can_not_change_email_before_phone_bound":"Telefon numarası bağlanmadan e-posta değiştirilemez","account_error_can_not_change_email_before_unbound_social_account":"Sosyal hesabın bağlayıcılığı kaldırılmadan e-posta değiştirilemez","account_error_can_not_change_phone_before_email_bound":"E-posta bağlanmadan telefon numarası değiştirilemez","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA devre dışı bırakılmadan önce e-posta veya cep telefonu numarası değiştirilemez","account_error_not_supported_yet":"Şu anda desteklenmiyor","account_error_same_email":"Yeni e-posta adresi, orijinal e-posta adresiyle aynı olamaz","account_error_same_phone":"Yeni telefon numarası orijinal telefon numarası ile aynı olamaz","account_error_email_not_exists":"e-posta adresi mevcut değil","account_error_email_already_exists":"Belirtilen e-postaya sahip bir hesap zaten var.","account_error_phone_already_exists":"Belirtilen telefon numarasına sahip bir hesap zaten var.","account_error_mfa_token_mismatch":"Yazılım Token Kodu uyuşmazlığı","account_error_recaptcha_not_loaded":"Ağda bir sorun var. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_recaptcha_validation_failed":"ReCAPTCHA doğrulaması başarısız oldu. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_sign_in_in_progress":"Bekleyen oturum açma girişimi zaten devam ediyor","account_field_range":"{0}-{1} karakter girişini sınırlayın","account_field_only_alphanumeric":"Yalnızca alfanümeriği destekler","account_field_only_alphanumeric_and_symbol":"Yalnızca alfasayısal ve sembolleri destekler","account_field_only_chinese_alphanumeric_space_underline":"Yalnızca alfasayısal, boşluk ve alt çizgiyi destekler","account_field_prefix_without_number_space":"İlk karakter sayı veya boşluk olamaz","account_field_suffix_without_space":"boşlukla bitemez","account_field_without_repeat_space":"Art arda birden çok boşluk kullanılamaz","account_field_can_not_only_alphanumeric":"Sadece harf veya rakam kullanamazsınız","account_field_must_have_number_characters":"Sayı karakterleri olmalıdır","account_field_verification_code":"Doğrulama kodu altı haneli olmalıdır","account_field_invitation_code":"Davet kodu alfasayısal olmalıdır","account_field_phone_number":"Geçersiz telefon numarası biçimi","account_invalid_email_format":"Geçersiz e-posta formatı","account_sign_out_confirm":"Oturumu kapatacağınızdan emin misiniz? Bu, tüm görevleri durduracaktır.","account_sign_out_anyway":"Yine de oturumu kapat","account_signing_out":"Oturum kapatılıyor...","account_request_save_settings":"Ayarlar kaydedilmedi. Oturumu kapatmadan önce değişiklikleri kaydetmeniz gerekir.","pay":"Ödemek","pay_with_credit":"Hızlanan indirme için ödeme yapın. Yaklaşık {0} krediye ihtiyacı var","pay_with_credit_payed":"hızlanıyor. Hala yaklaşık {0} krediye ihtiyacı var","create_payment":"Ödeme Oluştur","pay_target":"Hedef","pay_for_torrent":"{0} için ödeme yapın","your_subid":"alt kimliğiniz","your_credits":"Kredileriniz","pay_point_for_data":"{1} verileri için {0} puan ödeyin","auto_renew":"Otomatik yenilemeyi etkinleştir","transaction_details":"ödeme detayları","transaction_id":"İD","transaction_payer":"ödeyen","transaction_payee":"Alacaklı","transaction_category":"Kategori","transaction_changed_amount":"Değiştirilen Tutar","transaction_meta":"Meta","transaction_status":"Durum","transaction_creation_time":"Oluşturma Zamanı","receipt_code":"Fiş Kodu","transfer_amount":"Transfer miktarı","code_the_receipt_code":"Aşağıdaki makbuz kodunu ödeyene kopyalayın","fill_the_receipt_code":"Alacaklı tarafından sağlanan ödeme kodunu doldurarak transfer edin","expense":"gider","copied":"kopyalandı","transfer":"Aktar","receive":"Almak","copy":"Kopyala","withdraw_fund":"Para Çekme","category_paydata_payer":"veri maliyeti","category_paydata_payee":"veri geliri","category_transfer":"Aktar","category_bonus":"Bonus","category_recharge":"şarj et","status_pending":"askıda olması","status_completed":"tamamlanmış","status_finish":"sona ermek","status_failed":"arızalı","tip_invalid_receiver":"Geçersiz alıcı kodu","tip_invalid_amount":"Kredi tutarı 0-1000 aralığında değişken olmalıdır (Minimum kesinlik 0,001\'dir)","credit_get_more":"Daha fazla kredi alın","credit_no_data":"Veri yok","credit_loading":"Yükleniyor...","credit_not_enough_amount":"Yeterli kredi yok","credit_amount_not_enough":"Yeterli kredi yok","credit_payee_not_exist":"Alacaklı mevcut değil","credit_invalid_amount":"Geçersiz kredi tutarı","credit_can_not_transfer_to_yourself":"Kendinize aktaramazsınız","credit_latest":"En sonuncu","credit_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","add_subtitles":"Altyazı Ekle","open_file":"Açık dosya...","advanced_options":"Gelişmiş seçenekler","title":"Başlık","location":"konum","subtitle_file":"altyazı dosyası","unsupported_subtitle_type":"{0} dosya türü desteklenen bir altyazı türü değil","not_default_player":"Varsayılan video oynatıcı ayarlanmamış","this_is_an_audio_file":"Bu bir ses dosyasıdır","the_added_subtitle_already_exists":"Eklenen altyazı zaten var","stop_stream_player":"Akış ortamı, görev duraklatıldığı veya silindiği için sonlandırıldı","stop_player":"Dosya silindiği için oynatıcı sonlandırıldı","playing_timeout_hint":"Bekle zaman aşımına uğradı. Lütfen görevi kontrol edin","autoplay_hint":"Otomatik oynatma, tarayıcınız tarafından engellenebilir. Oyuncu oynamıyorsa devam etmek için ekrana tıklamayı deneyin","remove_playing_confirm":"{0} hala oynuyor, onu kaldırırsanız oyuncu durur. Kaldıracağınızdan emin misiniz?","unsupported_in_browser":"Tarayıcı modunda henüz desteklenmiyor","client":"Müşteri","warning":"Uyarı","enable":"Olanak vermek","disable":"Devre dışı bırakmak","auto":"Oto","encrypt_connection":"Bağlantıyı şifrele","encrypted_connection":"Şifreli bağlantı","non_encrypted_connection":"Şifrelenmemiş bağlantı","connected_wires_not_disconnect":"Bağlı kabloların bağlantısı kesilmeyecek","audio":"ses","video":"video","image":"resim","subtitle":"alt yazı","zip":"zip","text":"metin","unknown":"Bilinmeyen","add":"Eklemek","undo":"Geri alma","backup":"Destek olmak","not_default_app":"${displayName}, torrent ve medya için varsayılan uygulamanız değil, varsayılan olarak ayarlamak istiyor musunuz?","dont_show_again":"tekrar gösterme","go_to_settings":"Ayarlara git","about_alphabiz":"Yaklaşık ${displayName}","last_check_at":"son kontrol","update_channel":"Kanalı güncelle","check_for_update":"Güncellemeleri kontrol ediniz","checking_for_update":"Güncellemeler kontrol ediliyor...","no_update_available":"Güncelleme mevcut değil","update_available":"Güncelleme uygun","update_now":"Şimdi güncelle","update_later":"Sonra güncelle","click_to_update":"İndirmek ve güncellemek için ŞİMDİ GÜNCELLE düğmesine tıklayın","update_failed":"Güncelleme başarısız oldu","update_failed_message":"Güncelleme sırasında bir hata oluştu:","check_shasum_failed":"Yükleyici için bütünlük kontrol edilemedi","downloading_update":"Güncelleme indiriliyor...","ready_to_update":"Güncellemeye hazır","restart_to_update":"Güncelleme indirildi. ${displayName}, birkaç dakikalığına güncelleme için çıkış yapacak.","already_latest":"Geçerli sürüm({0}) zaten en son sürüm","update_timeout":"Güncelleme zaman aşımı","no_available_release":"Kullanılabilir yayın yok","no_available_installer":"Kullanılabilir yükleyici yok","feedback":"Geri bildirim","select_a_type":"bir tür seçin","category":"Kategori","select_a_category":"bir kategori seç","require_title":"Başlık gerekli","describe_your_problem":"problemini açıkla","report_a_bug":"Hata bildir","request_a_new_feature":"Yeni bir özellik talep edin","download_or_upload":"İndirme yükleme","others":"Diğerleri","submit_with_system_info":"Sistem bilgisi ile gönder","submit_feedback":"Geri bildirim gönder","tweet_us":"bize tweet at","tweet_too_long":"Tweet çok uzun","delete_characters":"Lütfen en az {0} karakter(ler)i silin","rest_characters":"{0} daha fazla karakter girebilirsiniz","update_alphabiz":"${displayName} güncelle","current_version":"Şimdiki versiyonu","cancel_update":"Güncellemeyi iptal et","slow_download_speed":"Çok yavaş indir","slow_download_speed_caption":"Yükleyici indirme işlemi artık çok yavaş. Lütfen ağ durumunu kontrol edin","update_canceled":"Güncelleme iptal edildi","current_version_release_time":"Mevcut sürümün çıkış zamanı","expired_app":"${displayName} Süresi Doldu","version_out_of_date":"Versiyon güncel değil","have_to_update":"${displayName} sürümü güncel değil. Bazı protokoller veya API\'ler kullanımdan kaldırılmıştır. Devam etmeden önce ${displayName} güncellemeniz gerekiyor.","exit_alphabiz":"Çıkış ${displayName}","exit_and_update":"Çık ve güncellemeyi uygula","new_version_hint":"Yeni sürüm mevcut","no_new_version":"Yeni sürüm mevcut değil","current_is_latest":"Geçerli sürüm zaten en son sürüm","click_to_check_update":"Güncellemeyi kontrol etmek için [GÜNCELLEMEYİ KONTROL ET] düğmesine tıklayın","download_latest_version_from_website":"En son sürümü indirmek için lütfen resmi web sitesini ziyaret edin","to_the_website":"Web sitesine","network_diagnotic":"Ağ Teşhisi","diagnotic":"Tanı","click_to_check":"Kontrol etmek için tıklayın","click_to_check_again":"Tekrar kontrol etmek için tıklayın","checking":"Kontrol etme","online":"Çevrimiçi","offline":"çevrimdışı","dns_look_up":"DNS araması","error":"Hata","aws_service":"AWS Hizmeti","network_pings":"Ağ Pingi","not_found":"Bulunamadı","packet_loss":"Paket(ler) kaybı","official_site":"Resmi site","download_test":"Testi İndir","test_task":"Test Görevi {0}","download_failed":"Yükleme başarısız","second_spend":"{0} sn harcama","open_default_player_failed":"Varsayılan oynatıcı açılamadı","copied_to_clipboard":"Panoya kopyalandı","go_to":"git","region_not_available":"Bölge mevcut değil","region_not_available_message":"Üzgünüm! Bölgeniz bu uygulamayı kullanmak için uygun değil. Bu uygulama {0} saniye sonra kapanacak","confirm":"Onaylamak","no_available_result":"Kullanılabilir sonuç yok","invalid_password_format":"Geçersiz şifre biçimi","invalid_password_format_same":"Parola, orijinal parola ile aynıdır","error_password":"Şifre hatası","keychain_setting":"anahtarlık","setting_description":"Bulut depolama: Önemli verileri buluta kaydedin.\\nParolayı değiştir: Ortam kitaplığı anahtarının parolasını değiştirin.\\nAnımsatıcı: anahtarları oluşturmak ve geri yüklemek için alternatif bir yöntem.\\nYerel Anahtarı İçe Aktar: Yerel olarak kaydedilen anahtarı medya kitaplığına aktarın.\\nDışa Aktarma Anahtarı: Geçerli ortam kitaplığı verilerini yerele veya buluta kaydeder.\\nAnahtarı buluta yedekle: Mevcut medya kitaplığı verilerini yedekleme için buluta güncelleyin.","refresh_status":"Güncelleme durumu","confirm_import_key":"İçe aktarma anahtarını onaylayın","confirm_update_cloud_key":"Bulutta zaten bir anahtarınız var. Anahtarın güncellenmesi orijinal anahtarın üzerine yazacaktır. Bulutta saklanan anahtarı güncellemek istediğinizden emin misiniz?","export_key_with_cloud":"Bulutta depolanan kitaplık anahtarını dışa aktarmak için belirlediğiniz bağımsız parolayı girin ve kilit açma parolasıyla anahtar dosyasını kilitleyin","store_cloud_key_prompt_password":"Kitaplık anahtarını bulutta depolamak için bağımsız bir parola girin","update_cloud_key_prompt_password":"Kitaplık anahtarını şifrelemek için bağımsız bir parola ayarlayın ve ardından bunu buluta güncelleyin","enable_cloud_storage_prompt_password":"Bulutta depolanan anahtar için, anahtarı buluttan alabileceğiniz bir parola belirleyin","input_unlock_password":"Kilit açma şifresini ayarla","export_local_prompt_password":"Lütfen anahtar dosyanızı şifrelemek için bir kilit açma şifresi ayarlayın. Bu şifreyi sizin için kaydetmeyeceğiz, dolayısıyla şifrenizi kaybederseniz kütüphane anahtarınızın kilidini açamayacaksınız.","require_unlock_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","require_independent_password":"Bulutta depolanan anahtarı almak için bağımsız parolayı girin","import_local_prompt_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","select_encrypt_mode":"Şifreleme modunu seçin","update_cloud_key":"Bulutta depolanan anahtarı güncelleyin","backup_to_cloud":"Kitaplık anahtarını buluta yedekleyin","save_local":"Kitaplık anahtarını yerel şifreli dosya olarak kaydedin","create_new_key":"Yeni bir kitaplık anahtarı oluştur","creating_lib_key":"Kitaplık anahtarı oluşturuluyor...","loading_lib_key":"Kitaplık anahtarı yükleniyor...","failed_to_create_lib_key":"Kitaplık anahtarı oluşturulamadı","failed_to_load_lib_key":"Kitaplık anahtarı yüklenemedi","import_local_key":"Anahtarı yerel olarak içe aktar","import_lib_key_from_local":"Bir kitaplık anahtarını Yerel Olarak İçe Aktar","import_from_cloud":"Kitaplık anahtarını buluttan içe aktarın","create_or_import_key":"Kitaplık anahtarı oluştur veya içe aktar","create_or_import_key_desc":"Kitaplık anahtarı, merkezi olmayan veritabanıyla içerikleri getirmek ve yayınlamak için kullanılan bağımsız bir anahtardır.","store_your_lib_key":"Kitaplık anahtarınızı saklayın","export_cloud_key":"Anahtarı Buluttan Dışa Aktar","export_current_key":"Geçerli Anahtarı Dışa Aktar","change_password":"Şifre değiştir","enable_cloud_storage":"Bulut depolamayı etkinleştir","disable_cloud_storage":"Bulut depolamayı devre dışı bırak","disable_cloud_storage_desc":"Bulut depolamayı devre dışı bırakmak, bulutta kayıtlı anahtarı kaldırır, lütfen anahtarın yerel olarak kaydedildiğinden emin olun","sync_at":"Senkronizasyon: {time}","cloud_storage_enabled":"Anahtar Zincirini {storage} ile senkronize edin","cloud_storage_disabled":"Bulut depolama devre dışı","saved_locally":"Yerel olarak kaydedildi","export_key":"Anahtar dosyasını dışa aktar","cloud_independent_password":"Buluttan bağımsız parola","key_file_unlock_password":"Anahtar dosya kilidini açma şifresi","re_enter_unlock_password":"Kilit açma şifresini tekrar girin","independent_password_not_enabled":"Mevcut şifre Alphabiz hesap şifresidir (bağımsız bir şifre belirlenmemiştir)","use_cognito_hash":"Alphabiz hesabı şifresini kullan","use_independent_password":"Bağımsız şifre kullan","keychain_lib":"kütüphane anahtarı","loading_keychain_state":"Anahtarlık yükleniyor...","backing_up":"Yedekleme...","backup_current_key":"Geçerli anahtarı Bulut\'a yedekle","cloud_lib_key_not_existed":"kitaplık anahtarı Bulut\'ta mevcut değil","open_keychain_file":"Anahtarlık Dosyasını Aç","confirm_open_abk":"ABK dosyasını açmak istiyor musunuz?","use_the_key":"anahtarı kullan","backup_the_key":"Anahtarı buluta yedekleyin","keychain_data_does_not_exist":"Anahtar zinciri verileri mevcut değil","timeout of 0ms exceeded":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","XhrError":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","payer credit amount is not enough":"Yeterli kredi yok","payee does not exist":"Alacaklı mevcut değil","block_list_manage":"Blok listesi yönetimi","blocked_users":"Engellenmiş kullanıcılar","blocked_channels":"Engellenen kanallar","unblock_user":"Kullanıcının engelini kaldır","unblock_channel":"Kanalın engellemesini kaldır","no_blocked_user":"Engellenen kullanıcı yok","no_blocked_channel":"Engellenen kanal yok","field_required":"{0} gereklidir","setting":"Ayar","unknown_media":"Bilinmeyen Medya","settings_button_visible":"Düğme Görünür","settings_setting":"Ayar","settings_playback_rate":"Çalma oranı","settings_subtitle":"Alt yazı","settings_pip":"PiP","settings_fullscreen":"Tam ekran","settings_subtitle_options":"Altyazı Seçenekleri","settings_normal":"Normal","settings_italic":"İtalik","settings_lighter":"Çakmak","settings_bolder":"Daha cesur","settings_small":"Küçük","settings_large":"Büyük","about":"Hakkında","services":"Hizmetler","hide":"Saklamak","hide_others":"Diğerlerini sakla","show_all":"Hepsini Göster ↓","quit":"Çıkış yapmak","edit":"Düzenlemek","redo":"Yeniden yap","cut":"Kesmek","paste":"Yapıştırmak","select_all":"Hepsini seç","view":"Görüş","reload":"Tekrar yükle","toggle_full_screen":"Tam ekrana geç","toggle_developer_tools":"Geliştirici Araçlarını Değiştir","window":"pencere","minimize":"küçültmek","bring_all_to_front":"Hepsini Öne Getir","help":"Yardım","github_repo":"Github Deposu","issues":"Sorunlar","learn_more":"Daha fazla bilgi edin","learn_spelling":"Yazımı Öğrenin","lookup_selection":"Ara \\"{selection}\\"","search_with_google":"Google ile ara","save_as":"Farklı kaydet","save_image":"Resmi Kaydet","save_image_as":"Resmi Farklı Kaydet...","copy_link":"Bağlantıyı kopyala","save_link_as":"Linki farklı kaydet ...","copy_image":"Resmi kopyala","copy_image_as":"Resmi Farklı Kopyala...","copy_image_address":"Resim Adresini Kopyala","download_complete":"İndirme tamamlandı","download_complete_message":"{0} indirildi","is_running":"{0} çalışıyor","open":"{0} aç","launch_problem":"Başlatma sorunu","ask_clear_data":"Görünüşe göre {0} başlatmaya çalışıyorsunuz, ancak birkaç kez başarısız oldunuz.\\nTüm uygulama verilerini temizleyip daha sonra başlatmayı denemek istiyor musunuz?","launch_directly":"Doğrudan başlat","clear_all_data":"Tüm verileri temizle","ask_clear_confirm":"Bu, tüm yapılandırmaları, günlükleri ve kullanıcı verilerini kaldıracaktır!\\nBundan sonra {0}\'ı yeniden başlatmanız gerekebilir.\\nVerileri temizleyeceğinizden emin misiniz?","confirm_launch":"Hayır, doğrudan başlat","confirm_clear":"Evet, tüm verileri temizle"}')},12:function(e,t){},1254:function(e){e.exports=JSON.parse('{"lib_index":"Maison","lib_edit":"Publier","lib_publish":"Publier","lib_explore":"Explorer","lib_following":"Suivant","lib_favorite":"Favoris locaux","lib_local_favorites":"Favoris locaux","lib_channel":"Canaliser","lib_submit":"Soumettre","lib_from_network":"Utilisation d\'une base de données décentralisée à partir du réseau","welcome_to_lib":"Bienvenue à ${displayName} Médiathèque","register_or_login":"Inscription/Connexion","lib_recommend":"Recommander","lib_recommend_desc":"Bienvenue à la bibliothèque ${displayName} ! Cette bibliothèque utilise une base de données décentralisée du réseau. Pour commencer à l\'utiliser, vous devez suivre certains canaux.","follow_any_channel_to_continue":"Suivez n\'importe quelle chaîne pour continuer","follow_channels_and_continue":"Suivez les chaînes {0} et continuez","show_more_for_me":"Afficher plus pour moi","no_more_recommend":"Ne plus recommander","key":"Clé","create_key":"Créer une clé","save_key":"Enregistrer la clé","save_key_file":"Voulez-vous enregistrer votre clé en tant que fichier ?","import_key":"Clé d\'importation","import":"Importer","invalid_key":"Clé non valide","back_to_top":"Retour au sommet","search_for_channel":"Rechercher l\'ID de la chaîne","search_channel_no_result":"Impossible de trouver la chaîne avec l\'identifiant {0}","please_input_channel_id":"Veuillez saisir l\'ID de la chaîne","welcome_help_text":"Il s\'agit d\'une médiathèque décentralisée. Vous avez besoin\\n pour créer un compte pour cette base de données. Nous allons\\n générer automatiquement une clé personnelle pour vous.\\n Si vous avez déjà eu une clé, vous pouvez également importer\\n c\'est ici.","welcome_key_text":"Une fois connecté, veuillez cliquer sur le bouton [ENREGISTRER LA CLÉ]\\n dans le coin inférieur droit pour enregistrer votre clé privée.\\n Si vous perdez votre clé, vous ne pourrez peut-être pas vous reconnecter.","redirect_to_recommend":"Il semble que vous n\'ayez suivi aucune chaîne. Redirection vers la page [Explorer].","channel":"Canaliser","follow":"Suivre","unfollow":"Ne plus suivre","following":"Suivant","share":"Partager","unfollow_confirm":"Êtes-vous sûr de ne plus suivre cette chaîne ? Tous les messages de cette chaîne dans votre journal seront supprimés.","follow_failed_hint":"L\'opération est toujours en attente en arrière-plan. Si l\'opération n\'est pas appliquée pendant une longue période, veuillez redémarrer l\'application et réessayer.","block":"Bloc","unblock":"Débloquer","blocked":"Bloqué","block_channel":"Bloquer cette chaîne","block_channel_confirm":"Bloquer la chaîne la supprimera de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","block_creator":"Bloquer le créateur de cette chaîne","unblock_creator":"Débloquer le créateur de cette chaîne","block_creator_confirm":"Bloquer le créateur supprimera toutes les chaînes créées par ce créateur de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","share_url_copied":"L\'URL de partage est copiée dans votre presse-papiers","follow_time":"Suivre le temps","update_time":"Temps de mise à jour","search":"Recherche","type":"Taper","added":"Ajoutée","click_to_task":"Cliquez pour accéder à la tâche","lib_already_added":"Vous avez déjà ajouté cette vidéo","description":"Description","poster":"Affiche","channel_poster":"Affiche de la chaîne","preview":"Aperçu","creator":"Créateur","creator_detail":"Détail du créateur","loading_creator":"Chargement des informations sur le créateur","wait_for_creator_loaded":"Veuillez attendre que les informations sur le créateur soient chargées.","follower":"Disciple","followers":"Suiveurs","follower_list":"Liste d\'abonnés","user":"Utilisateur","channel_title":"Titre de la chaîne","channel_id":"Identifiant de la chaine","post_title":"Titre de l\'article","post_id":"ID de publication","import_data_from_excel":"Importer des données depuis Excel","set_excel_keys":"Définir les clés Excel","excel_import_succeded":"L\'importation Excel a réussi","excel_import_success_msg":"{0} les lignes sont prêtes à être ajoutées, {1} les éléments invalides et {2} les éléments en double sont ignorés","cannot_find_channel":"Impossible de trouver la chaîne","cannot_find_posts":"Impossible de trouver des messages","add_channel":"Ajouter une chaîne","add_post":"Ajouter un message","edit_channel":"Modifier la chaîne","channel_setting":"Réglage du canal","edit_post":"Modifier le message","edit_posts":"Modifier les messages","channel_detail":"Détail de la chaîne","remove":"Retirer","remove_channel":"Supprimer la chaîne","remove_channel_confirm":"Êtes-vous sûr de supprimer ce message ? Cela ne peut pas être récupéré.","remove_post":"Supprimer le message","remove_post_confirm":"Voulez-vous vraiment supprimer cette chaîne ? Cela ne peut pas être récupéré.","preview_mode":"Mode Aperçu","preview_mode_desc":"Il s\'agit d\'un aperçu de votre chaîne. Tous les tarifs des films sont affichés ici.","edit_user_profile":"Modifier le profil utilisateur","name":"Surnom","avatar":"Avatar","no_following":"Aucune chaîne suivante. Cliquez pour aller","no_recommend":"Aucune chaîne recommandée. Cliquez pour aller","first_recomment_msg":"Cela peut prendre un certain temps si c\'est la première fois que l\'application est lancée.","invalid_image":"Image invalide","image_not_reachable":"Cette URL d\'image n\'est pas accessible.","channel_not_found":"Chaîne introuvable","cannot_get_channel_info":"Impossible d\'obtenir les informations sur la chaîne. Cette chaîne peut être supprimée par son créateur et ne plus être disponible.","validate_error":"Valider l\'erreur","validate_user_name_no_space":"Le nom d\'utilisateur ne doit pas contenir d\'espaces","validate_url_no_space":"L\'URL ne doit pas contenir d\'espaces","validate_user_name_length":"Le nom d\'utilisateur doit avoir une longueur comprise entre {0} et {1}","validate_user_desc_length":"La description de l\'utilisateur ne doit pas dépasser {0} caractères","validate_user_avatar_url":"L\'avatar de l\'utilisateur doit être une URL contenant moins de 2 048 caractères","validate_channel_title_length":"Le titre de la chaîne doit avoir une longueur comprise entre 1 et 100","validate_channel_desc_length":"La description de la chaîne doit avoir une longueur comprise entre 10 et 300","validate_channel_image_url":"L\'aperçu de la chaîne doit être une URL comportant moins de 2 048 caractères","validate_post_title_length":"Le titre du message doit avoir une longueur comprise entre 1 et 100","validate_post_desc_length":"La description du message doit avoir une longueur comprise entre 10 et 300","validate_post_image_url":"L\'affiche doit être une URL contenant moins de 2 048 caractères","validate_post_url":"URL ${displayName} invalide","validate_post_url_length":"${displayName} L\'URL ne doit pas dépasser 2 048 caractères","film_rate":"Tarif des films","set_film_rate":"Définir le taux de film","select_a_rate_before_enter":"Vous devez sélectionner un tarif de film avant d\'entrer dans la médiathèque.","library_available_rate":"Tarif des films disponibles à la bibliothèque","rate_g":"G – Audiences Générales","rate_g_desc":"Tous âges admis. Rien qui offenserait les parents pour le visionnement par les enfants.","rate_pg":"PG - Surveillance parentale suggérée","rate_pg_desc":"Certains matériaux peuvent ne pas convenir aux enfants. Les parents sont invités à donner une \\"orientation parentale\\". Peut contenir du matériel que les parents pourraient ne pas aimer pour leurs jeunes enfants.","rate_pg_13":"PG-13 – Parents fortement mis en garde","rate_pg_13_desc":"Certains contenus peuvent être inappropriés pour les enfants de moins de 13 ans. Les parents sont priés d\'être prudents. Certains contenus peuvent être inappropriés pour les pré-adolescents.","rate_r":"R – Restreint","rate_r_desc":"Les moins de 17 ans doivent être accompagnés d\'un parent ou d\'un tuteur adulte. Contient du matériel pour adultes. Les parents sont invités à en savoir plus sur le film avant d\'emmener leurs jeunes enfants avec eux.","rate_nc_17":"NC-17 – Adultes seulement","rate_nc_17_desc":"Interdit aux 17 ans et moins. Clairement adulte. Les enfants ne sont pas admis.","set_as_private":"Définir comme privé","hide_in_explore":"Masquer cette chaîne dans la page d\'exploration","hidden":"Caché","select_a_rate":"Veuillez sélectionner un tarif de film","select_from_tasks":"Sélectionnez parmi les tâches","import_from_magnet":"Importer depuis l\'aimant : ?...","input_magnet_url":"Aimant d\'entrée : ? URL","task_title":"Titre de la tâche","set_title":"Définir le titre","add_to_local_favorites":"Ajouter aux favoris locaux","remove_from_local_favorites":"Supprimer des favoris locaux","removed_favorite":"Favori supprimé","import_or_export_favorites":"Importer/exporter des favoris","export_local_favorites":"Exporter les favoris locaux en tant que sauvegarde","import_favorites_file":"Importer le fichier de favoris","not_a_favorite_file":"Ce fichier n\'est pas un fichier de sauvegarde favori","connection_status":"Statut de connexion","gun_server_list":"Cache Nodes","custom_nodes":"Nœuds de cache personnalisés","custom_nodes_hint":"Les nœuds de cache personnalisés seront appliqués après le redémarrage de l\'application","wait_for_reboot":"En attente de redémarrage...({seconds}s)","reboot_now":"Redémarrer maintenant","reboot_later":"Redémarrer plus tard","peer_list":"Nœuds directs","server":"URL du nœud","peer":"Pair","peer_id":"ID de nœud","connection":"Connexion","data_source":"La source de données","sync":"Synchroniser","syncing":"Synchronisation","sync_completed":"Synchronisation terminée","got_all_post":"Vous avez déjà tous les messages","placeholder_channel_title":"Nom de votre chaîne","placeholder_channel_desc":"Description de cette chaîne","placeholder_post_title":"Nom du film (année)","placeholder_post_desc":"Description de ce film","private_channel":"Chaîne privée","creator_blocked":"Créateur bloqué","go_to_library":"Aller à la librairie?","go_to_library_channel_msg":"Voulez-vous accéder au canal de la bibliothèque {0} ?","magnet_does_not_have_name":"Cet aimant : ? URL n\'a pas de nom, vous devez d\'abord ajouter un titre de message.","no_available_post":"Aucun poste disponible","following_channel_no_post":"Toutes vos chaînes suivantes n\'ont pas de publication disponible. Cela peut être dû à une erreur de réseau. Si vous avez déjà suivi certaines chaînes, les messages peuvent être chargés plus tard.","share_to_library":"Partager dans la bibliothèque","quick_start":"Démarrage rapide","quick_start_desc":"Commencer à créer une publication avec une tâche ou un fichier","select_file":"Choisir le dossier...","select_folder":"Sélectionner le dossier...","post_options":"Options de publication","channel_options":"Options de chaîne","create_new_channel":"Créer une nouvelle chaîne","use_existed_channel":"Utiliser le canal existant","select_existed_channel":"Sélectionnez une chaîne existante","uploaded_by":"{title} mis en ligne par {name}","created_by":"{title} créé par {name}","creating_new_channel":"Création d\'une nouvelle chaîne...","created_new_channel":"Nouvelle chaîne créée","creating_new_post":"Création d\'un nouveau message...","created_new_post":"Nouveau message créé","create_new_post":"Créer un nouveau message","quick_start_timeout":"{0} délai d\'attente. Cela peut être dû à une erreur de réseau. Veuillez réessayer plus tard.","file_too_large":"Fichier trop large","file_too_large_msg":"Ce fichier fait plus de 4 Go ({size}) et peut prendre beaucoup de temps à préparer. Êtes-vous sûr de continuer ?","resolving_folder_files":"Résolution des fichiers de dossier...","folder_too_large":"Dossier trop volumineux","folder_too_large_msg":"Les fichiers de ce dossier font plus de 4 Go (total {size}) et peuvent prendre beaucoup de temps pour préparer la tâche. Êtes-vous sûr de télécharger ?","creating_new_task":"Création d\'une nouvelle tâche...","cannot_create_task":"Impossible de créer la tâche","cannot_create_task_msg":"Cela peut être dû à une erreur. Si la tâche est créée correctement, vous pouvez vérifier la liste des tâches ultérieurement.","cannot_get_task_name":"Impossible d\'obtenir le nom de la tâche. Vous devez d\'abord en saisir un.","remove_old_task":"Supprimer l\'ancienne tâche","remove_old_task_desc":"Le mode Web ne peut créer qu\'une seule tâche à la fois. Voulez-vous supprimer l\'ancienne tâche ?","subtitle_list":"Liste des sous-titres","optional":"facultatif","with_subtitle":"Avec {language} sous-titres","maximumSubtitleNum_limit":"Le nombre de sous-titres a atteint son maximum","add_subtitle_url":"Ajouter le lien de téléchargement des sous-titres","cannot_add_subtitle":"Impossible d\'ajouter des sous-titres","cannot_add_subtitle_msg":"Langue des sous-titres non sélectionnée ou lien de téléchargement invalide.","support_subtitle_type":"Seuls les sous-titres au format srt et vtt sont pris en charge.","recommend_opensubtitles":"Il est recommandé d\'utiliser le lien ou l\'identifiant de téléchargement des sous-titres sur www.opensubtitles.org.","take_down":"Descendre","serious_violation":"Infraction grave","copyright_disputes":"Litiges de droit d\'auteur","adults_only":"Seulment les adultes","takedown_reason":"Raison du retrait","takedown_mode":"Mode retrait","admins":"Administrateurs","takedown_user":"Retirer ce créateur","takedown_channel":"Retirer cette chaîne","takedown_post":"Retirer ce message","select_takedown_reason":"Sélectionnez la raison du retrait","takedown_invalid_reason":"Motif de retrait non valide","takedown_invalid_user_id":"Identifiant invalide. L\'identifiant doit comprendre 87 caractères","takedown_invalid_channel_id":"ID de chaîne non valide. L\'ID doit inclure 20 caractères","takedown_invalid_post_id":"Identifiant de publication non valide. L\'ID doit inclure 20 caractères","takedown_management":"Gestion des démontages","users":"Utilisateurs","channels":"Chaînes","posts":"Des postes","you":"Toi","preset":"Préréglé","admin":"Administrateur","committee":"Comité","about_takedown_mode":"À propos du mode de retrait :\\nPréréglage : configuré dans le référentiel github. Tous seront supprimés de la bibliothèque.\\nAdmin : tout administrateur qui vote pour sera supprimé.\\nComité : au moins la moitié des administrateurs qui votent pour seront supprimés.","cannot_edit_preset":"Vous ne pouvez pas modifier cette ligne car il s\'agit d\'une ligne prédéfinie","cannot_edit_not_vote":"Vous ne pouvez pas modifier cette ligne puisque vous n\'avez pas voté pour elle","remove_vote":"Supprimer votre vote","post_preload_failed":"Échec du préchargement de ce message. Le lien de téléchargement peut être obsolète, ce message ne peut donc pas être lu immédiatement.","about_cache_node":"À propos du nœud de cache","edit_cache_node":"Edit cache node","create_cache_node":"Créer un nœud de cache","about_cache_node_desc":"${displayName} utilise le serveur gun comme nœud de cache. Vous pouvez modifier les nœuds personnalisés à l\'avance","learn_how_to_deploy_gun":"Apprenez à déployer votre propre serveur d\'armes","repeat_add":"La tâche a été ajoutée, veuillez ne pas l\'ajouter à nouveau","upload":"Télécharger","download":"Télécharger","delete":"Supprimer","delete_task":"Supprimer la tâche","delete_confirm_message":"Supprimer cette tâche ? C\'est irrévocable","also_delete_files":"Supprimer également les fichiers","default_delete_files":"Supprimer par défaut les fichiers téléchargés après la suppression de la tâche","not_now":"Pas maintenant","delete_autoupload_confirm":"Cette tâche contient le fichier que vous avez placé dans le répertoire de téléchargement automatique. Supprimer cette tâche supprimera également le fichier.","delete_anyway":"Supprimer quand même","upload_too_many_files":"Télécharger trop de fichiers","ask_if_unlimit_upload_amount":"Le répertoire de téléchargement automatique contient trop de fichiers. Voulez-vous désactiver la limitation du montant de téléchargement ? *Cela peut entraîner des problèmes de performances","disable_limitation":"Désactiver la limitation","not_length":"L\'opération multi-fichiers n\'est pas prise en charge pour le moment, veuillez coopérer","download_torrent":"Télécharger un fichier","upload_torrent":"Téléverser un fichier","files":"Des dossiers","file":"Déposer","folder":"Dossier","start_all":"Tout commencer","pause_all":"Tout mettre en pause","remove_all":"Enlever tout","upload_all":"Télécharger tout","clear_history":"Histoire claire","pause_all_finish_payments":"Cela terminera tous les paiements.","accelerating":"Accélérer","link_task":"Tâche de liaison","torrent_task":"Tâche de fichier","ok":"D\'ACCORD","cancel":"Annuler","download_directory_position":"Télécharger la position du répertoire","torrent_file":"fichier de tâche","magnetic_link_incorrect":"Le format du lien est incorrect","delete_fail":"Échec de la suppression","pause":"Pause","paused":"En pause","stop_torrent":"Arrêt","seed":"Graine","resume":"CV","downloading":"Téléchargement","downloaded":"Téléchargé","uploading":"Téléchargement","auto_uploading":"Téléchargement automatique","uploaded":"Téléchargé","pending":"En attente d\'autres tâches","verifying":"Vérification","waiting_for_verify":"En attente de vérification","seeding":"Semis","completed":"Complété","status":"Statut","task_name":"Nom de la tâche","size":"Taille","progress":"Progrès","sort":"Trier","ascending":"Ascendant","descending":"Descendant","file_loading":"Chargement du fichier...","loading":"Chargement","unknown_status":"Inconnu","play_while_downloading":"Jouer...","upload_or_play":"Télécharger / Jouer","play":"Jouer","ask_if_upload_file":"Téléverser un fichier?","ask_if_upload_or_play":"Télécharger ou lire un fichier ?","torrent_error":"Erreur lors de l\'ajout de la tâche :","no_peers":"Réessayez plus de {0} fois et aucun pair n\'est disponible","torrent_exists":"La tâche existe déjà.","show_origin_torrent":"Obtenir le fichier ou l\'URL de la tâche d\'origine","show_directory":"Ouvrir le répertoire de ce torrent","task_num":"Tâches","total_upload_speed":"Vitesse de téléchargement","total_download_speed":"Vitesse de téléchargement","path_missing":"Erreur : impossible de trouver le chemin du torrent","origin_not_found":"Impossible de trouver les informations sur la tâche d\'origine.","text_copied":"L\'URL Magnum est copiée dans votre presse-papiers","copy_magnet_uri":"Aimant de copie : ? URI","copy_download_uri":"Copier l\'URI de téléchargement","copy_share_uri":"Copier l\'URI de partage","uri_copied":"L\'URI a été copié avec succès dans votre presse-papiers","uri_copy_failed":"Échec de la copie de l\'URI","more":"Plus...","toggle_list_mode":"Basculer le mode liste","comment":"comment","operations":"Opérations","open_directory":"Ouvrir le répertoire","no_downloading_task":"Aucune tâche de téléchargement","remove_all_downloading_tasks":"Supprimer toutes les tâches de téléchargement ?","remove_all_upload_tasks":"Supprimer toutes les tâches d\'importation ?","remove_autoupload_files":"Supprimer les fichiers de téléchargement automatique","remove_all_history":"Supprimer tout l\'historique ?","remaining":"Restant","created_time":"Temps créé","used_time":"Temps utilisé","completed_time":"Temps terminé","yesterday":"Hier","before_yesterday":"{empty}","earlier":"Plus tôt","miss_file":"Certains fichiers sont manquants","delete_miss_file_task":"Il manque des fichiers dans {0}.","common_peer":"Pair commun","ab_peer":"${displayName} pair","ab_peer_verified":"Pair vérifié ${displayName}","ab_peer_available":"${displayName} homologue(s) disponible(s)","alphabiz_accelerating":"${displayName} accélération","income":"Revenu","income_info":"Revenu(aujourd\'hui/total)","total_income_info":"Revenu : {0}(aujourd\'hui) / {1}(total)","login_to_see_income":"Connectez-vous pour voir les statistiques de revenus","credit_cost":"Frais de crédit","downloaded_by_payment":"Téléchargé par Paiements","file_not_found":"Impossible de trouver ce fichier en local","no_task":"Ne pas demander","no_matched_task":"Aucune tâche correspondante","space_not_enough":"Espace disque insuffisant","need_more_space":"Besoin de {0} plus d\'espace mais le disque actuel a {1} libre ({2} réservé). Les tâches sont mises en pause. Le préchargement de la bibliothèque est désactivé. Vous pouvez le réactiver dans [Paramètres - Avancé].","seeders":"Semoirs","last_update":"Dernière mise à jour","connecting":"De liaison","connected":"Connecté","request_timed_out":"La demande a expiré","connection_failed":"La connexion a échoué","invalid_download_url":"URL de téléchargement invalide","download_link":"lien de téléchargement","empty_files":"Aucun fichier dans le répertoire","duplicate_task":"Tâche en double","duplicate_tracker":"Outil de suivi en double","this_task_not_ready":"Cette tâche n\'est pas prête. Suspendre cette tâche la supprimera directement.","some_task_not_ready":"Certaines tâches ne sont pas prêtes. Suspendre ces tâches les supprimera directement.","failed_to_delete_files":"Échec de la suppression des fichiers","failed_to_delete_files_desc":"Échec de la suppression de certains fichiers de la tâche. Vous devrez peut-être les supprimer manuellement","unknown_error":"Erreur inconnue : {0}","more_files_are_not_shown":"({0} plus de fichiers ne sont pas affichés pour des raisons de performances)","no_available_file":"Aucun fichier disponible. Veuillez attendre que la tâche soit prête.","service_worker_error":"Impossible de charger ServiceWorker pour jouer. Votre navigateur peut ne pas prendre en charge cette fonctionnalité ou le ServiceWorker n\'est pas activé. Vous devrez peut-être recharger cette page et réessayer.","add_task_first":"Vous devez d\'abord ajouter une tâche.","player_task_time":"Le joueur prend trop de secondes pour se préparer à jouer. Il y a peut-être quelque chose qui ne va pas avec la tâche.","web_mode_hint":"Le mode Web de ${displayName} ne prend en charge que les pairs WebRTC. Pour une meilleure expérience, veuillez télécharger l\'application de bureau ${displayName}.","web_mode_task_hint":"Cliquez sur les boutons ci-dessous pour ajouter une tâche. Vous ne pouvez ajouter qu\'une seule tâche à la fois.","save_to_local":"Enregistrer en local","save_as_zip":"Enregistrer au format ZIP","creating_save_file":"Création du fichier de sauvegarde...","upload_as_one_directory":"Télécharger comme un seul répertoire","upload_as_single_files":"Télécharger en tant que fichiers uniques","web_mode_upload_single":"Vous ne pouvez télécharger qu\'un seul fichier en mode Web","download_success":"Télécharger avec succès","download_fail":"Échec du téléchargement","wait_for_downloaded_to_share":"Veuillez attendre que la tâche soit téléchargée avant de partager.","download_with_cellular":"Télécharger des tâches à l\'aide du cellulaire","download_with_cellular_desc":"Vous utilisez le réseau cellulaire. Les tâches de téléchargement avec cellulaire peuvent entraîner des frais supplémentaires par votre opérateur.","download_with_cellular_confirm":"Toujours télécharger avec le cellulaire","language":"Langue","appearance":"Apparence","darkModeSystem":"Système","darkModeLight":"Lumière","darkModeDark":"Sombre","basic_setting":"Basique","hideMenu":"Masquer le menu de l\'application (Windows et Linux uniquement)","autoHide":"Masquer automatiquement la fenêtre","autoStart":"Ouvrir à la connexion","restore":"Conserver la taille et la position de la fenêtre lors de la sortie","autoStartUnfinished":"Reprendre automatiquement toutes les tâches inachevées","default_download_path":"Chemin par défaut","download_directory":"Répertoire de téléchargement","upload_directory":"Répertoire de téléchargement","enable_auto_upload":"Activer le téléchargement automatique","unlimit_upload_amount":"Montant de téléchargement illimité","unlimit_upload_warning":"Autoriser le téléchargement d\'une grande quantité de fichiers. Cela peut causer des problèmes de performances","start":"Démarrer","transport_setting":"Transmission","upload_limit":"Limite de téléchargement","download_limit":"Limite de téléchargement","payed_user_share_rate":"Taux de partage des utilisateurs payants","unlimited":"Illimité","limit_input_error":"Le nombre limite doit être positif","BT_setting":"Paramètres de tâche","saveLinkSeed":"Enregistrer le lien en tant que fichier de tâche","autoDownload":"Télécharger automatiquement le lien et le contenu","continuousSeeding":"Continuez à semer jusqu\'à ce que vous l\'arrêtiez manuellement","seedSharingRate":"Rapport de semences","seedTime":"Temps d\'amorçage (minutes)","task_manage":"Gestion des tâches","maximumDownloadNum":"Tâches actives maximales","maximumConnectionsNum":"Connexion maximale par serveur","range_error":"La plage doit être comprise entre {0} et {1}","random":"aléatoire","breakpointContinuation":"Continuer","automaticSkip":"Afficher automatiquement le téléchargement après l\'ajout d\'une tâche","afterNotification":"Notification une fois le téléchargement terminé","deleteConfirm":"Aucune confirmation n\'est requise avant de supprimer la tâche","submit":"Enregistrer et appliquer","discard":"Jeter","reset":"Réinitialiser","reset_all_settings":"Réinitialiser tous les réglages?","preferences_resetted":"Préférences réinitialisées","traditional_chinese":"chinois traditionnel","japanese":"Japonais","english":"Anglais","chinese":"Chinois simplifié","advancedSettings":"Avancé","autoUpdate":"Mise à jour automatique","autoCheckUpdate":"Vérifier automatiquement la mise à jour","proxy":"Procuration","useProxyService":"Activer le proxy","trackerService":"Serveurs de suivi","recommendUse":"Recommandé","autoUpdateTrackerServiceList":"Mettre à jour automatiquement la liste des trackers tous les jours","manualUpdateTracker":"Mise à jour manuelle","manualUpdateSuccess":"Mise à jour réussie des serveurs de suivi","manualUpdateFail":"Échec de la mise à jour depuis :","listenPort":"Ports d\'écoute","BTlistenPort":"Port de transmission de données","DHTlistenPort":"Port de hachage distribué","protocols":"Protocoles compatibles","setDefaultClientForFollowingProtocols":"Définir comme client par défaut pour les protocoles suivants","magnetUrl":"Aimant","video_file":"Fichier vidéo","audio_file":"Fichier audio","security":"Sécurité","impersonateUserAgent":"Agent utilisateur fictif","RPCauthorizationkey":"Secret RPC","viewDocument":"Afficher le manuel des secrets RPC","developer":"Développeur","applicationLogPath":"Chemin du journal de l\'application","downloadSessionPath":"Télécharger le chemin de la session","resetDownloadSessionRecord":"Réinitialiser la session de téléchargement","restoreInitialSettings":"Retour aux paramètres d\'usine","preferences_set_successfully":"Enregistrez les préférences avec succès !","preferences_set_fail":"Échec de l\'enregistrement des préférences !","change_not_save":"Les modifications ne sont pas enregistrées","discard_all_changes":"Supprimer toutes les modifications et quitter ?","stay_in_page":"Rester à la page","disk_usage":"Utilisation du disque","pause_if_less_space":"Mettre en pause et notifier si l\'espace est inférieur à (Mo)","default_video_player":"Lecteur vidéo par défaut","video_cache_time":"Cache de lecture de flux","minutes":"minutes","system_default":"Défaillance du système","media_player":"Lecteur multimédia","library_film_rate":"Tarif film disponible","library_show_explore":"Afficher la page [Explorer]","library_setting":"Réglage de la bibliothèque","library_sync_setting":"Paramètre de synchronisation de la bibliothèque","keychain_sync_status":"État de synchronisation du trousseau","sync_with_aws":"Synchroniser le trousseau avec Amazon Web Services","backup_to_local":"Sauvegarde dans un fichier local","enable_sync_with_aws":"Activer la synchronisation avec AWS","disable_sync_with_aws":"Désactiver la synchronisation avec AWS","disable_sync_with_aws_desc":"Cela supprimera la clé enregistrée sur le serveur. Veuillez vous assurer que vous avez déjà exporté votre clé.","input_independent_password":"Saisir un mot de passe indépendant","change_independent_password":"Changer le mot de passe indépendant","password_error":"Erreur de mot de passe","password_invalid":"mot de passe invalide","key_existed":"La clé existait","key_not_found":"Clé introuvable","library_recommend":"La bibliothèque recommande","show_all_channels":"Afficher toutes les chaînes dans la page de recommandation de la bibliothèque","not_logged_in":"Pas connecté","login_to_continue":"Connectez-vous pour continuer","mnemonic_code":"Code mnémonique","wordlist":"Liste de mots","restore_code":"Restaurer à partir du code","generate_code":"Générer du code","export_mnemonic_code":"Exporter le code mnémonique","import_mnemonic_code":"Importer le code mnémonique","print":"Imprimer","save_as_txt":"Enregistrer au format txt","save_as_pdf":"Enregistrer au format pdf","from_file":"À partir du fichier","not_valid_mnemonic_code":"Ceci n\'est pas un code mnémonique valide","cannot_parse_code_as_key":"Impossible d\'analyser ce code mnémonique en tant que clé de bibliothèque","import_key_hint":"Êtes-vous sûr d\'importer cette clé ? Cela récupérera votre ancienne clé dans la bibliothèque.","import_key_confirm":"Oui, importez-le.","library_preload":"Précharger les tâches de la bibliothèque","show_preload":"Afficher les tâches de préchargement","set_download":"Définir le répertoire de téléchargement","set_download_desc":"Pour la version macOS App Store, le répertoire de téléchargement par défaut se trouve dans le bac à sable de l\'application et sera supprimé après la désinstallation de l\'application. Si vous souhaitez conserver vos fichiers de téléchargement, vous devez sélectionner manuellement un autre répertoire de téléchargement.","home":"Maison","home_caption":"Téléchargement/téléchargement et fichiers multimédias","library":"Bibliothèque","library_caption":"Explorer les ressources médias","player":"Joueur","player_caption":"Lecteur multimédia","credits":"Crédits","credits_caption":"Vérifier le solde du compte","account":"Compte","account_caption":"Connexion/Inscription/Gestion","settings":"Paramètres","settings_caption":"Paramètres pour l\'application, le lecteur, le compte","development":"Développement","development_caption":"Mode développeur pour usage interne","basic":"Basique","basic_caption":"Paramètres de base","advanced":"Avancé","advanced_caption":"Réglages avancés","blockchain":"Portefeuille","blockchain_caption":"${displayName} Portefeuille décentralisé","internal_notice":"Avis de version interne","release_notes":"Notes de version","terms_and_conditions":"Termes et conditions","license_and_listen_notices":"Avis de licence et d\'écoute Open Source","close":"Fermer","success":"Succès","fail":"Échouer","account_email_invalid_address":"Adresse e-mail invalide","account_email_invalid_domain":"Domaine de messagerie invalide","account_email_unknown_status":"État de livraison des e-mails inconnu","account_email_unavailable_address":"Adresse e-mail indisponible","account_email_suppressed_address":"Adresse e-mail supprimée","account_loading":"Chargement...","account_is_required":"est requis","account_sign_in_your_account":"S\'identifier","account_username":"Nom d\'utilisateur","account_username_email_phone":"Numéro de téléphone ou email","account_password":"Mot de passe","account_new_password":"Nouveau mot de passe","account_re_enter_password":"Entrez à nouveau le mot de passe","account_password_not_equal":"Deux mots de passe ne sont pas égaux","account_new_password_same":"Le mot de passe est le même que le mot de passe d\'origine","account_forgot_your_password":"Mot de passe oublié?","account_reset_password":"Réinitialiser le mot de passe","account_sign_in":"Se connecter","account_signed_in":"Connecté","account_sign_up":"S\'inscrire","account_find_your_account":"Trouvez votre compte","account_enter_your_username":"Entrez votre numéro de téléphone ou email","account_search":"Recherche","account_email_sent_tip":"Un e-mail avec un code de vérification a été envoyé à votre adresse e-mail :","account_phone_sent_tip":"Un SMS avec un code de vérification a été envoyé sur votre téléphone :","account_email_phone_sent_tip":"Un e-mail et un SMS avec le code de vérification ont été envoyés respectivement à votre e-mail et à votre téléphone :","account_software_token_tip":"MFA est activé pour votre compte. Pour terminer la connexion, veuillez allumer ou afficher votre appareil et saisir le TOTP","account_reset_your_password":"réinitialisez votre mot de passe","account_verification_code":"Le code de vérification","account_resend_code":"Renvoyer le code","account_code_has_been_resent":"Le code de vérification a été renvoyé","account_password_has_been_reset":"Le mot de passe a été réinitialisé","account_submit":"Soumettre","account_sign_up_your_account":"Enregistrez votre compte","account_fill_required_fields":"Remplissez les champs obligatoires ci-dessous.","account_fill_optional_fields":"Remplissez les champs optionnels ci-dessous.","account_email":"E-mail","account_invitation":"Invitation","account_invitation_code":"Code d\'invitation","account_i_accept":"J\'accepte","account_license_terms":"la licence et les conditions","account_next":"Suivant","account_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions.","account_verify_fill_optional_fields":"Vérifiez et remplissez les champs optionnels.","account_nickname":"Surnom","account_gender":"Genre","account_male":"Mâle","account_female":"Femelle","account_not_say":"Ne pas dire","account_birthday":"Anniversaire","account_phone_number":"Numéro de téléphone","account_locale":"Locale","account_tip_verified":"Vérifié, Connexion...","account_verified":"vérifié","account_unverified":"non vérifié","account_signed_up":"Signé","account_verify_your_identity":"Vérifiez Votre Identité","account_finish":"Finir","account_signed_out":"Se déconnecter","account_change_password":"Changer le mot de passe","account_change_email":"Changer l\'e-mail","account_change_phone_number":"Changer de numéro de téléphone","account_sign_out":"se déconnecter","account_current_password":"Mot de passe actuel","account_re_enter_new_password":"ré-entrez le nouveau mot de passe","account_personal_information":"Information","account_edit":"modifier","account_reset":"réinitialiser","account_greeting":"Bonjour,","account_cancel":"Annuler","account_change":"changement","account_not_set":"pas encore défini","account_setting":"paramètre","account_copy_code":"copier le code","account_account_setting":"Compte","account_task_page":"Tâche de crédit","account_setting_caption":"Changer le mot de passe / Modifier les informations","account_security":"Sécurité","account_want_to_join":"Vouloirjoindre?","account_sign_in_now":"Se connecter","account_changed":"Modifié","account_clipboard_with_invitation_code":"Code d\'invitation copié","account_clipboard_with_code":"Le code copié","account_invitation_code_dialog_tip":"Vous enverrez à votre ami un e-mail ou un SMS avec un code d\'invitation :","account_available":"disponible","account_invited":"invité","account_used":"utilisé","account_invitation_code_sent":"Le code d\'invitation a été envoyé","account_invitation_channel_required":"Remplissez au moins un canal d\'invitation","account_no_verification_code":"Vous ne pouvez pas recevoir le code de vérification ?","account_no_phone_number":"Pas de numéro de téléphone ?","account_sign_up_by_email":"Inscrivez-vous par email","account_no_email":"Pas d\'e-mail ?","account_sign_up_by_phone_number":"Inscrivez-vous par numéro de téléphone","account_no_totp":"Pas de TOTP ?","account_tip_no_totp":"S\'il n\'y a pas de TOTP, veuillez d\'abord configurer TOTP","account_setup_totp":"Configurer le TOTP","account_contact_information":"Coordonnées","account_delete_account":"Supprimer le compte","account_deleted":"Supprimé","account_can_not_mfa":"MFA en difficulté ?","account_set_mfa_type":"Configurer MFA","account_disable_mfa":"Désactiver MFA","account_disabled_mfa":"MFA désactivé","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Non recommandé","account_oauth_sign_in_with":"Connectez-vous avec {provider}","account_sign_in_failed":"Échec de la connexion","account_tip_oath_sign_up":"L\'email correspondant au compte {provider} actuel : {email} n\'a pas encore créé de compte","account_tip_confirm_delete_account":"Entrez le mot de passe du compte actuel pour confirmer que vous souhaitez supprimer le compte actuel. (Les comptes supprimés ne peuvent pas être restaurés)","account_tip_config_mfa":"Vous pouvez choisir d\'utiliser un SMS ou un mot de passe à usage unique basé sur le temps (TOTP) comme authentification secondaire","account_error_can_not_enable_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer MFA","account_tip_can_not_enable_sms_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer SMS MFA","account_tip_can_not_enable_totp_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer TOTP MFA","account_tip_setup_totp":"Utilisez des applications telles que Authenticator pour scanner le code QR ci-dessous ou copiez le code manuellement pour ajouter un jeton de sécurité","account_tip_verify_totp":"Vérifiez votre TOTP","account_link_your_social_account":"Liez votre compte social","account_unlink_your_social_account":"Dissocier le compte social","account_tip_confirm_link":"Êtes-vous sûr de vouloir lier le compte actuel à votre compte {provider} ?","account_tip_confirm_unlink":"Êtes-vous sûr d\'annuler votre compte lié {provider} ?","account_tip_linking":"obligatoire...","account_tip_unlinking":"Sans engagement...","account_linked":"Bondir","account_unlinked":"Non lié","account_error_can_not_link_to_the_linked_account":"Le compte social actuel est lié à un autre compte","account_error_can_not_link_to_the_mismatched_email":"Le compte actuel et l\'adresse e-mail du compte social sont incohérents","account_error_can_not_link_before_email_verified":"Le compte social ne peut pas être lié car le compte actuel n\'est pas lié à un e-mail vérifié","account_tip_confirm_verify_email_phone":"Voulez-vous envoyer un code de vérification à l\'adresse e-mail et au numéro de téléphone du compte actuel pour vérifier votre identité ?","account_tip_confirm_verify_phone":"Voulez-vous envoyer un code de vérification au numéro de téléphone actuel pour vérifier votre identité ?","account_error_1_message_60_seconds":"Un seul SMS ou e-mail peut être envoyé toutes les 60 secondes, attendez encore {delta} secondes","account_error_10_messages_per_day":"Chaque téléphone mobile ou e-mail ne peut envoyer que 10 messages en 24 heures","account_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","Network Error":"Il y a un problème avec le réseau, veuillez réessayer plus tard","account_error_user_not_exist":"L\'utilisateur n\'existe pas","account_error_incorrect_username_or_password":"identifiant ou mot de passe incorrect","account_error_incorrect_original_password":"Mot de passe d\'origine incorrect","account_error_incorrect_password":"Mot de passe incorrect","account_error_username_not_found":"Nom d\'utilisateur introuvable","account_error_can_not_reset_for_no_verified":"Impossible de réinitialiser le mot de passe pour le compte non vérifié","account_error_invalid_verification_code":"Code de vérification incorrect, veuillez réessayer","account_error_expired_verification_code":"Le code de vérification a expiré, veuillez réessayer","account_error_password_not_long_enough":"Le mot de passe n\'est pas assez long","account_error_attempt_limit_exceeded":"Limite de tentatives dépassée, veuillez réessayer après un certain temps.","account_error_password_attempts_exceeded":"Tentatives de mot de passe dépassées.","account_error_invalid_phone_number_format":"Format de numéro de téléphone invalide","account_error_no_cell_phone_prefix":"Veuillez sélectionner le préfixe du numéro de téléphone","account_error_username_already_exists":"Cet identifiant existe déjà","account_error_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions","account_error_inactive_code":"Le code d\'invitation n\'est pas un code activé","account_error_non_existent_code":"Le code d\'invitation est inexistant","account_error_unexpected":"Erreur inattendue","account_error_can_not_change_email_before_phone_bound":"L\'e-mail ne peut pas être modifié avant que le numéro de téléphone ne soit lié","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail ne peut pas être modifié avant de dissocier le compte social","account_error_can_not_change_phone_before_email_bound":"Le numéro de téléphone ne peut pas être modifié avant que l\'e-mail ne soit lié","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossible de modifier l\'adresse e-mail ou le numéro de téléphone mobile avant de désactiver MFA","account_error_not_supported_yet":"Pas de soutien pour le moment","account_error_same_email":"La nouvelle adresse e-mail ne peut pas être la même que l\'adresse e-mail d\'origine","account_error_same_phone":"Le nouveau numéro de téléphone ne peut pas être le même que le numéro de téléphone d\'origine","account_error_email_not_exists":"L\'adresse e-mail n\'existe pas","account_error_email_already_exists":"Un compte avec l\'adresse e-mail indiquée existe déjà.","account_error_phone_already_exists":"Un compte avec le numéro de téléphone indiqué existe déjà.","account_error_mfa_token_mismatch":"Incompatibilité de code de jeton logiciel","account_error_recaptcha_not_loaded":"Il y a un problème avec le réseau. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_recaptcha_validation_failed":"La validation ReCAPTCHA a échoué. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_sign_in_in_progress":"Tentative de connexion en attente déjà en cours","account_field_range":"Limiter la saisie de {0}-{1} caractères","account_field_only_alphanumeric":"Ne prend en charge que les caractères alphanumériques","account_field_only_alphanumeric_and_symbol":"Ne prend en charge que les caractères alphanumériques et les symboles","account_field_only_chinese_alphanumeric_space_underline":"Ne prend en charge que les caractères alphanumériques, les espaces et les traits de soulignement","account_field_prefix_without_number_space":"Le premier caractère ne peut pas être un chiffre ou un espace","account_field_suffix_without_space":"Ne peut pas se terminer par un espace","account_field_without_repeat_space":"Impossible d\'utiliser plusieurs espaces à la suite","account_field_can_not_only_alphanumeric":"Vous ne pouvez pas simplement utiliser des lettres ou des chiffres","account_field_must_have_number_characters":"Doit contenir des chiffres","account_field_verification_code":"Le code de vérification doit comporter six chiffres","account_field_invitation_code":"Le code d\'invitation doit être alphanumérique","account_field_phone_number":"Format de numéro de téléphone invalide","account_invalid_email_format":"Format d\'email invalide","account_sign_out_confirm":"Êtes-vous sûr de vous déconnecter ? Cela arrêtera toutes les tâches.","account_sign_out_anyway":"Déconnectez-vous quand même","account_signing_out":"Déconnecter...","account_request_save_settings":"Les paramètres ne sont pas enregistrés. Vous devez enregistrer les modifications avant de vous déconnecter.","pay":"Payer","pay_with_credit":"Payez pour l\'accélération du téléchargement. Besoin d\'environ {0} de crédit","pay_with_credit_payed":"Accélération. Encore besoin d\'environ {0} de crédit","create_payment":"Créer un paiement","pay_target":"Cible","pay_for_torrent":"Payer pour {0}","your_subid":"Votre sous-identifiant","your_credits":"Vos crédits","pay_point_for_data":"Payez {0} point pour {1} de données","auto_renew":"Activer le renouvellement automatique","transaction_details":"détails de la transaction","transaction_id":"Identifiant","transaction_payer":"Payer","transaction_payee":"Bénéficiaire","transaction_category":"Catégorie","transaction_changed_amount":"Montant modifié","transaction_meta":"Méta","transaction_status":"Statut","transaction_creation_time":"Temps de creation","receipt_code":"Code de reçu","transfer_amount":"Montant du transfert","code_the_receipt_code":"Copiez le code de reçu ci-dessous au payeur","fill_the_receipt_code":"Virement en renseignant le code de paiement fourni par le bénéficiaire","expense":"Frais","copied":"Copié","transfer":"Transfert","receive":"Recevoir","copy":"Copie","withdraw_fund":"Retirer des fonds","category_paydata_payer":"Coût des données","category_paydata_payee":"Revenu de données","category_transfer":"Transfert","category_bonus":"Prime","category_recharge":"Recharger","status_pending":"en attente","status_completed":"complété","status_finish":"finir","status_failed":"échoué","tip_invalid_receiver":"Code récepteur invalide","tip_invalid_amount":"Le montant du crédit doit être un flottant compris entre 0 et 1 000 (la précision minimale est de 0,001)","credit_get_more":"Obtenez plus de crédits","credit_no_data":"Pas de données disponibles","credit_loading":"Chargement...","credit_not_enough_amount":"Pas assez de crédits","credit_amount_not_enough":"Pas assez de crédits","credit_payee_not_exist":"Le bénéficiaire n\'existe pas","credit_invalid_amount":"Montant du crédit invalide","credit_can_not_transfer_to_yourself":"Impossible de transférer à vous-même","credit_latest":"Dernier","credit_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","add_subtitles":"Ajouter des sous-titres","open_file":"Fichier ouvert...","advanced_options":"Options avancées","title":"Titre","location":"emplacement","subtitle_file":"fichier de sous-titres","unsupported_subtitle_type":"Le type de fichier de {0} n\'est pas un type de sous-titre pris en charge","not_default_player":"Le lecteur vidéo par défaut n\'est pas défini","this_is_an_audio_file":"Ceci est un fichier audio","the_added_subtitle_already_exists":"Le sous-titre ajouté existe déjà","stop_stream_player":"La diffusion multimédia a été interrompue car la tâche a été interrompue ou supprimée","stop_player":"Le lecteur a été fermé car le fichier a été supprimé","playing_timeout_hint":"Délai d\'attente expiré. Veuillez vérifier la tâche","autoplay_hint":"La lecture automatique peut être bloquée par votre navigateur. Si le lecteur ne joue pas, essayez de cliquer sur l\'écran pour continuer","remove_playing_confirm":"{0} est toujours en cours de lecture, supprimez-le pour arrêter le lecteur. Êtes-vous sûr de le supprimer ?","unsupported_in_browser":"Pas encore pris en charge en mode navigateur","client":"Client","warning":"Avertissement","enable":"Activer","disable":"Désactiver","auto":"Auto","encrypt_connection":"Chiffrer la connexion","encrypted_connection":"Connexion cryptée","non_encrypted_connection":"Connexion non cryptée","connected_wires_not_disconnect":"Les fils connectés ne seront pas déconnectés","audio":"l\'audio","video":"vidéo","image":"image","subtitle":"Sous-titre","zip":"zipper","text":"texte","unknown":"inconnu","add":"Ajouter","undo":"annuler","backup":"Sauvegarde","not_default_app":"${displayName} n\'est pas votre application par défaut pour les torrents et les médias, voulez-vous la définir par défaut ?","dont_show_again":"Ne plus afficher","go_to_settings":"Aller aux paramètres","about_alphabiz":"Environ ${displayName}","last_check_at":"Dernière vérification à","update_channel":"Mettre à jour la chaîne","check_for_update":"Vérifier la mise à jour","checking_for_update":"Vérification de la mise à jour...","no_update_available":"Pas de mise a jour disponible","update_available":"Mise à jour disponible","update_now":"Mettez à jour maintenant","update_later":"Mise à jour plus tard","click_to_update":"Cliquez sur le bouton METTRE À JOUR MAINTENANT pour télécharger et mettre à jour","update_failed":"Mise à jour a échoué","update_failed_message":"Une erreur s\'est produite lors de la mise à jour :","check_shasum_failed":"Échec de la vérification de l\'intégrité pour le programme d\'installation","downloading_update":"Téléchargement de la mise à jour...","ready_to_update":"Prêt à mettre à jour","restart_to_update":"La mise à jour est téléchargée. ${displayName} sortira pour mettre à jour pendant quelques instants.","already_latest":"La version actuelle ({0}) est déjà la dernière","update_timeout":"Délai de mise à jour","no_available_release":"Aucune version disponible","no_available_installer":"Aucun programme d\'installation disponible","feedback":"Retour","select_a_type":"Sélectionnez un type","category":"Catégorie","select_a_category":"Choisir une catégorie","require_title":"Le titre est requis","describe_your_problem":"Décrivez votre problème","report_a_bug":"Signaler un bug","request_a_new_feature":"Demander une nouvelle fonctionnalité","download_or_upload":"Téléchargement","others":"Autres","submit_with_system_info":"Soumettre avec les informations système","submit_feedback":"Soumettre des commentaires","tweet_us":"Tweetez-nous","tweet_too_long":"Le tweet est trop long","delete_characters":"Veuillez supprimer au moins {0} caractère(s)","rest_characters":"Vous pouvez saisir {0} plus de caractère(s)","update_alphabiz":"Mettre à jour ${displayName}","current_version":"Version actuelle","cancel_update":"Annuler la mise à jour","slow_download_speed":"Téléchargement trop lent","slow_download_speed_caption":"Le téléchargement du programme d\'installation est trop lent maintenant. Veuillez vérifier l\'état du réseau","update_canceled":"Mise à jour annulée","current_version_release_time":"Date de sortie de la version actuelle","expired_app":"${displayName} Expiré","version_out_of_date":"Version obsolète","have_to_update":"La version de ${displayName} est obsolète. Certains protocoles ou API sont obsolètes. Vous devez mettre à jour ${displayName} avant de continuer.","exit_alphabiz":"Sortie ${displayName}","exit_and_update":"Quitter et appliquer la mise à jour","new_version_hint":"Une nouvelle version est disponible","no_new_version":"Aucune nouvelle version disponible","current_is_latest":"La version actuelle est déjà la plus récente","click_to_check_update":"Cliquez sur le bouton [CHECK FOR UPDATE] pour vérifier la mise à jour","download_latest_version_from_website":"Veuillez visiter le site officiel pour télécharger la dernière version","to_the_website":"Vers le site","network_diagnotic":"Diagnostique réseau","diagnotic":"Diagnostique","click_to_check":"Cliquez pour vérifier","click_to_check_again":"Cliquez pour vérifier à nouveau","checking":"Vérification","online":"En ligne","offline":"Hors ligne","dns_look_up":"Recherche DNS","error":"Erreur","aws_service":"ServicesAWS","network_pings":"Ping réseau","not_found":"Pas trouvé","packet_loss":"Perte de paquet(s)","official_site":"Site officiel","download_test":"Télécharger l\'essai","test_task":"Tâche d\'essai {0}","download_failed":"Échec du téléchargement","second_spend":"{0} dépenses","open_default_player_failed":"Impossible d\'ouvrir le lecteur par défaut","copied_to_clipboard":"Copié dans le presse-papier","go_to":"Aller à","region_not_available":"Région non disponible","region_not_available_message":"Désolé! Votre région n\'est pas disponible pour utiliser cette application. Cette application se fermera après {0} secondes","confirm":"Confirmer","no_available_result":"Aucun résultat disponible","invalid_password_format":"format de mot de passe invalide","invalid_password_format_same":"Le mot de passe est le même que le mot de passe d\'origine","error_password":"Erreur de mot de passe","keychain_setting":"Porte-clés","setting_description":"Stockage dans le cloud : enregistrez les données clés dans le cloud.\\nModifier le mot de passe : modifier le mot de passe de la clé de la bibliothèque multimédia.\\nMnémonique : une méthode alternative pour générer et restaurer des clés.\\nImporter la clé locale : importez la clé enregistrée localement dans la médiathèque.\\nClé d\'exportation : enregistre les données actuelles de la bibliothèque multimédia en local ou dans le cloud.\\nClé de sauvegarde vers le cloud : mettez à jour les données actuelles de la bibliothèque multimédia vers le cloud pour la sauvegarde.","refresh_status":"État de mise à jour","confirm_import_key":"Confirmer la clé d\'importation","confirm_update_cloud_key":"Vous avez déjà une clé dans le cloud. La mise à jour de la clé écrasera la clé d\'origine. Êtes-vous sûr de vouloir mettre à jour la clé stockée dans le cloud","export_key_with_cloud":"Entrez le mot de passe indépendant que vous avez défini pour exporter la clé de bibliothèque stockée dans le cloud et verrouillez le fichier de clé avec le mot de passe de déverrouillage","store_cloud_key_prompt_password":"Entrez un mot de passe indépendant pour stocker la clé de la bibliothèque dans le cloud","update_cloud_key_prompt_password":"Définissez un mot de passe indépendant pour chiffrer la clé de la bibliothèque, puis mettez-la à jour dans le cloud","enable_cloud_storage_prompt_password":"Définissez un mot de passe pour la clé stockée dans le cloud, grâce auquel vous pouvez récupérer la clé depuis le cloud","input_unlock_password":"Définir le mot de passe de déverrouillage","export_local_prompt_password":"Veuillez définir un mot de passe de déverrouillage pour chiffrer votre fichier clé. Nous n\'enregistrerons pas ce mot de passe pour vous, donc si vous perdez votre mot de passe, vous ne pourrez pas déverrouiller votre clé de bibliothèque","require_unlock_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","require_independent_password":"Entrez le mot de passe indépendant pour obtenir la clé stockée dans le cloud","import_local_prompt_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","select_encrypt_mode":"Sélectionnez le mode de cryptage","update_cloud_key":"Mettre à jour la clé stockée dans le cloud","backup_to_cloud":"Sauvegardez la clé de la bibliothèque dans le cloud","save_local":"Enregistrez la clé de la bibliothèque en tant que fichier crypté local","create_new_key":"Créer une nouvelle clé de bibliothèque","creating_lib_key":"Création de la clé de bibliothèque...","loading_lib_key":"Chargement de la clé de bibliothèque...","failed_to_create_lib_key":"Échec de la création de la clé de bibliothèque","failed_to_load_lib_key":"Impossible de charger la clé de la bibliothèque","import_local_key":"Importer la clé localement","import_lib_key_from_local":"Importer une clé de bibliothèque localement","import_from_cloud":"Importer la clé de la bibliothèque depuis le cloud","create_or_import_key":"Créer ou importer une clé de bibliothèque","create_or_import_key_desc":"La clé de bibliothèque est une clé indépendante utilisée pour récupérer et publier du contenu avec une base de données décentralisée.","store_your_lib_key":"Stockez votre clé de bibliothèque","export_cloud_key":"Exporter la clé depuis le cloud","export_current_key":"Exporter la clé actuelle","change_password":"Changer le mot de passe","enable_cloud_storage":"Activer le stockage en nuage","disable_cloud_storage":"Désactiver le stockage cloud","disable_cloud_storage_desc":"Désactiver le stockage dans le cloud supprimera la clé enregistrée dans le cloud, veuillez vous assurer que la clé est enregistrée localement","sync_at":"Synchroniser à : {time}","cloud_storage_enabled":"Synchroniser le trousseau avec {storage}","cloud_storage_disabled":"Stockage cloud désactivé","saved_locally":"Enregistré localement","export_key":"Exporter le fichier clé","cloud_independent_password":"Mot de passe indépendant du cloud","key_file_unlock_password":"Mot de passe de déverrouillage du fichier clé","re_enter_unlock_password":"Entrez à nouveau le mot de passe de déverrouillage","independent_password_not_enabled":"Le mot de passe actuel est le mot de passe du compte Alphabiz (aucun mot de passe indépendant n\'est défini)","use_cognito_hash":"Utiliser le mot de passe du compte Alphabiz","use_independent_password":"Utiliser un mot de passe indépendant","keychain_lib":"clé de la bibliothèque","loading_keychain_state":"Chargement du trousseau...","backing_up":"Sauvegarde...","backup_current_key":"Sauvegarder la clé actuelle sur le Cloud","cloud_lib_key_not_existed":"la clé de bibliothèque n\'existe pas dans le Cloud","open_keychain_file":"Ouvrir le fichier du trousseau","confirm_open_abk":"Voulez-vous ouvrir le fichier ABK","use_the_key":"Utilisez la clé","backup_the_key":"Sauvegardez la clé dans le cloud","keychain_data_does_not_exist":"Les données du trousseau n\'existent pas","timeout of 0ms exceeded":"Il y a un problème avec le réseau, veuillez réessayer plus tard","XhrError":"Il y a un problème avec le réseau, veuillez réessayer plus tard","payer credit amount is not enough":"Pas assez de crédits","payee does not exist":"Le bénéficiaire n\'existe pas","block_list_manage":"Gérer la liste de blocage","blocked_users":"Utilisateurs bloqués","blocked_channels":"Chaînes bloquées","unblock_user":"Débloquer l\'utilisateur","unblock_channel":"Débloquer la chaîne","no_blocked_user":"Aucun utilisateur bloqué","no_blocked_channel":"Aucune chaîne bloquée","field_required":"{0} est requis","setting":"Paramètre","unknown_media":"Média inconnu","settings_button_visible":"Bouton visible","settings_setting":"Paramètre","settings_playback_rate":"Taux de lecture","settings_subtitle":"Sous-titre","settings_pip":"Pépin","settings_fullscreen":"Plein écran","settings_subtitle_options":"Options de sous-titres","settings_normal":"Normale","settings_italic":"Italique","settings_lighter":"Plus léger","settings_bolder":"Plus audacieux","settings_small":"Petit","settings_large":"Grand","about":"À propos","services":"Prestations de service","hide":"Cacher","hide_others":"Masquer les autres","show_all":"Afficher tout","quit":"Arrêter","edit":"Modifier","redo":"Refaire","cut":"Couper","paste":"Pâte","select_all":"Tout sélectionner","view":"Voir","reload":"Recharger","toggle_full_screen":"Basculer en plein écran","toggle_developer_tools":"Basculer les outils de développement","window":"Fenêtre","minimize":"Minimiser","bring_all_to_front":"Amenez tout au premier plan","help":"Aider","github_repo":"Dépôt Github","issues":"Problèmes","learn_more":"Apprendre encore plus","learn_spelling":"Apprendre l\'orthographe","lookup_selection":"Rechercher \\"{selection}\\"","search_with_google":"Rechercher avec Google","save_as":"Enregistrer sous","save_image":"Enregistrer l\'image","save_image_as":"Enregistrer l\'image sous ...","copy_link":"Copier le lien","save_link_as":"Enregistrer le lien sous ...","copy_image":"Copier l\'image","copy_image_as":"Copier l\'image sous...","copy_image_address":"Copier l\'adresse de l\'image","download_complete":"Téléchargement complet","download_complete_message":"{0} est téléchargé","is_running":"{0} est en cours d\'exécution","open":"Ouvert {0}","launch_problem":"Problème de lancement","ask_clear_data":"Il semble que vous essayez de lancer {0} mais que vous avez échoué plusieurs fois.\\nVoulez-vous effacer toutes les données de l\'application et essayer de lancer plus tard ?","launch_directly":"Lancer directement","clear_all_data":"Effacer toutes les données","ask_clear_confirm":"Cela supprimera toutes les configurations, les journaux et les données utilisateur !\\nAprès cela, vous devrez peut-être relancer {0}.\\nVoulez-vous vraiment effacer les données ?","confirm_launch":"Non, lancer directement","confirm_clear":"Oui, effacer toutes les données"}')},1278:function(e,t,a){},13:function(e,t){},1357:function(e,t,a){"use strict";a("5960")},14:function(e,t){},15:function(e,t){},16:function(e,t){},1690:function(e,t){e.exports=require("events")},17:function(e,t){},1738:function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));a("0c26"),a("a1c1"),a("f200");var n=a("35f4"),o=a("d710"),i=a.n(o),r=a("0f0c"),s=(a("d4b5"),a("5584"));const l=({measurementId:e,apiSecret:t,clientId:a,name:n,params:o})=>{var i;const r=null===(i=s["a"].state.account)||void 0===i?void 0:i.sub;console.log("Measure",a,r,n,o);const l={client_id:a,events:[{name:n,params:o}]};return r&&(l.user_id=r),fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${e}&api_secret=${t}`,{method:"POST",body:JSON.stringify(l)})};var c=l;const d=Object(n["a"])("0123456789abcdef"),u=d(20),_={session_token:u,appName:i.a.displayName,version:Object(r["a"])("version"),channel:Object(r["a"])("channel"),packageFormat:Object(r["a"])("packageFormat")||"unknown"};class p{constructor(e,t){this.customParams={},this.trackingID=e,this.apiSecret=t,this.uaId=e.replace("G-","UA-").replace(/.$/,(e=>"-"+e)),console.log("Set UniversalAnalytics ID to",this.uaId),this.disabled=!1}config(){this.disabled||(gtag("js",new Date),gtag("config",this.trackingID))}set(e,t){this.disabled||(null!==t?this.customParams[e]=t:delete this.customParams[e])}async get(e){}async getClientId(){return new Promise((e=>gtag("get",this.uaId,"client_id",(t=>{console.log("CLIENT_ID",t),e(t)}))))}async send(e,t={}){if(this.disabled)return;const a=Object.assign({},t,_);return new Promise((async t=>{if(console.log("[GA] send",e,a),location.protocol.startsWith("https"))gtag("event",e,Object.assign(a,{event_callback:()=>{t()}}));else{console.log("Use measurement protocol");const n=await this.getClientId();console.log("Start measure with",n),c({measurementId:this.trackingID,apiSecret:this.apiSecret,clientId:n,name:e,params:a}).then((t=>{console.log("Finish measure",e),204!==t.status&&console.warn(`Warning: expect response code 204 but got ${t.status}: ${t.statusText||"(empty)"}`)})).catch((e=>{console.log("Error sending measure",e)})).finally(t)}}))}disable(){this.disabled=!0}enable(){this.disabled=!1}}var m=p,h=a("47fc");const g={MEASUREMENT_ID:"G-9NE14P89WD",STREAM_ID:"4617180072",API_SECRET:"r7q0lwYuQeSimEJ5JnVFuQ"},f=new m(g.MEASUREMENT_ID,g.API_SECRET);t["b"]=(e,{app:t,router:a})=>{(process&&process.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))&&(console.log("DISABLE GOOGLE ANALYTICS"),f.disable()),f.config(),setTimeout((async()=>{const e=b();console.log("[GA] App Data",e),await f.send("analytics_test_app_data",e)}),1e4);let n=Date.now();f.send("app_launch",{timestamp:n}),a.afterEach(((e,t)=>{if("/"===t.path||e.path===t.path)return;const a=Date.now(),o=a-n;n=a,f.send("app_route",{to:e.path,from:t.path,stayTime:o})})),e.prototype.$ga=f,console.log("Init Google Analytics")};function b(){var e;const t=Object(h["a"])(),{packageFormat:n,version:o}=s(),r=o.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:i.a.name,app_type:"electron",app_env:"production",app_format:null!==n&&void 0!==n?n:"unknown",app_version:r.version,app_channel:null!==(e=r.channel)&&void 0!==e?e:"stable",app_screen:t.screen,app_os:t.os,app_os_version:t.osVersion,app_arch:t.arch};function s(){{const e=a("bc7b"),t=a("d6fe"),n="alphabiz"===process.env.REPO?t.resolve(process.cwd(),"public"):process.resourcesPath,o="version.json",i=e.readFileSync(t.resolve(n,o));return JSON.parse(i)}}}},1761:function(e,t,a){"use strict";a("5d03")},"186c":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},1926:function(e,t,a){"use strict";a.d(t,"b",(function(){return Ae}));a("a1c1"),a("de6c"),a("d4b5"),a("dc89"),a("2425"),a("7a76");var n=a("ff9b"),o=a("4d79"),i=a("d710"),r=a.n(i);const s=r.a.displayName;var l={repeat_add:"任务已添加,请勿重复添加",upload:"上传",download:"下载",delete:"删除",delete_task:"删除任务",delete_confirm_message:"是否删除该任务? 此操作不可恢复",also_delete_files:"同时删除文件",default_delete_files:"删除任务时默认删除已下载的文件",not_now:"暂不处理",delete_autoupload_confirm:"此任务文件位于自动上传文件夹, 删除任务将同时删除对应文件",delete_anyway:"仍要删除",upload_too_many_files:"上传文件过多",ask_if_unlimit_upload_amount:"自动上传文件夹包含过多文件. 是否取消上传数量限制? *此操作可能造成性能问题",disable_limitation:"取消限制",not_length:"暂不支持,多文件操作,请配合",download_torrent:"下载该任务",upload_torrent:"上传该任务",files:"文件",file:"文件",folder:"文件夹",start_all:"全部开始",pause_all:"全部暂停",remove_all:"全部移除",upload_all:"全部上传",clear_history:"清除历史",pause_all_finish_payments:"此操作将完成所有已支付的订单.",accelerating:"加速中",link_task:"链接任务",torrent_task:"文件任务",ok:"好的",cancel:"取消",download_directory_position:"下载目录位置",torrent_file:"任务文件",magnetic_link_incorrect:"链接格式不正确",delete_fail:"删除失败",pause:"暂停",paused:"已暂停",stop_torrent:"结束任务",seed:"上传",resume:"继续",downloading:"下载中",downloaded:"下载完成",uploading:"上传中",auto_uploading:"自动上传中",uploaded:"上传完成",pending:"等待其他任务完成",no_downloading_task:"没有下载中任务",remove_all_downloading_tasks:"是否移除所有下载中任务?",remove_all_upload_tasks:"是否移除所有上传任务?",remove_autoupload_files:"移除所有自动上传任务",remove_all_history:"是否移除历史下载记录?",verifying:"验证文件",waiting_for_verify:"等待验证文件",seeding:"上传中",completed:"已完成",status:"状态",task_name:"任务名",size:"大小",progress:"进度",sort:"排序",ascending:"升序",descending:"降序",file_loading:"文件加载中",loading:"加载中",unknown_status:"未知",play_while_downloading:"边下边播",upload_or_play:"上传 / 播放",play:"播放",ask_if_upload_file:"是否上传文件?",ask_if_upload_or_play:"是否上传/播放文件?",torrent_error:"添加任务时遇到错误:",no_peers:"多次尝试后仍未能与Peers建立连接",torrent_exists:"任务已存在",show_origin_torrent:"显示原始任务文件或链接",show_directory:"打开文件所在位置",task_num:"任务数",total_upload_speed:"上传速度",total_download_speed:"下载速度",path_missing:"Error: 找不到文件位置",origin_not_found:"获取任务信息失败",text_copied:"链接已复制到剪贴板",copy_magnet_uri:"复制链接地址",copy_download_uri:"复制下载链接",copy_share_uri:"复制社交分享链接",uri_copied:"链接已复制至剪贴板",uri_copy_failed:"复制链接失败",more:"更多",toggle_list_mode:"切换显示模式",comment:"评论",operations:"操作",open_directory:"打开所在文件夹",remaining:"剩余时间",created_time:"创建时间",used_time:"用时",completed_time:"完成时间",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分文件缺失.",common_peer:"普通用户",ab_peer:`${s} 用户`,ab_peer_verified:`${s} 注册用户`,ab_peer_available:`${s} peer 可用`,alphabiz_accelerating:`${s} 加速中`,income:"收入",income_info:"收入(今天/总计)",total_income_info:"收入: {0}(今天) / {1}(总计)",login_to_see_income:"登陆以查看收入统计",credit_cost:"积分支出",downloaded_by_payment:"付费下载量",file_not_found:"无法找到本地文件",no_task:"无任务",no_matched_task:"无法找到匹配的任务",space_not_enough:"磁盘空间不足",need_more_space:"需要 {0} 磁盘空间, 磁盘剩余空间为 {1} ({2} 为保留空间). 任务已暂停. 媒体库预加载已禁用. 您可以在[设置 - 进阶设置]中重新启用.",seeders:"做种",last_update:"最后更新",connecting:"连接中",connected:"已连接",request_timed_out:"请求超时",connection_failed:"连接失败",invalid_download_url:"下载链接错误",download_link:"下载链接",empty_files:"文件夹中没有文件",duplicate_task:"重复任务",duplicate_tracker:"重复 tracker",this_task_not_ready:"此任务尚未就绪,暂停该任务将直接移除它",some_task_not_ready:"部分任务尚未就绪,暂停这些任务将直接移除它们",failed_to_delete_files:"删除文件失败",failed_to_delete_files_desc:"无法删除部分任务文件,可能需要手动删除",unknown_error:"未知错误: {0}",more_files_are_not_shown:"(出于性能考虑,{0} 个文件未显示)",no_available_file:"没有可用的文件,请等待任务就绪",service_worker_error:"无法加载 ServiceWorker。您的浏览器可能不支持此特性,或者 ServiceWorker 尚未就绪。请刷新页面后重试。",add_task_first:"请先添加任务",player_task_time:"播放器准备时间过长,请检查任务是否就绪",web_mode_hint:`${s} Web 仅支持 WebRTC 种子。下载 ${s} 桌面版以获得最佳体验。`,web_mode_task_hint:"点击下方链接创建任务。Web 模式同时仅可创建一个任务。",save_to_local:"保存到本地",save_as_zip:"保存为 ZIP",creating_save_file:"正在创建文件...",upload_as_one_directory:"作为一个文件夹上传",upload_as_single_files:"作为单独的文件上传",web_mode_upload_single:"Web 模式下只能上传单个文件",download_success:"下载成功",download_fail:"下载失败",wait_for_downloaded_to_share:"请等待下载完成后进行分享。",download_with_cellular:"使用数据流量下载",download_with_cellular_desc:"您正在使用数据流量,下载时运营商可能会收取额外的费用。",download_with_cellular_confirm:"仍然使用数据流量"},c={language:"语言",appearance:"外观",darkModeSystem:"跟随系统",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基础设置",hideMenu:"隐藏菜单栏(仅支持Windows和Linux)",autoHide:"自动隐藏窗口",start:"启动",autoStart:"开机自动启动",restore:"恢复上次退出时窗口的大小和位置",autoStartUnfinished:"自动开始未完成的任务",default_download_path:"默认下载路径",download_directory:"下载目录",upload_directory:"上传目录",enable_auto_upload:"允许自动上传",unlimit_upload_amount:"不限制上传数量",unlimit_upload_warning:"允许同时上传大量文件. 此选项可能导致性能问题",transport_setting:"传输设置",upload_limit:"上传限速",download_limit:"下载限速",payed_user_share_rate:"付费用户上传比例",unlimited:"不限速",limit_input_error:"限速需为正数",BT_setting:"下载任务设置",saveLinkSeed:"保存链接元数据为任务文件",autoDownload:"自动开始下载链接任务、任务文件",continuousSeeding:"持续上传,直到手动停止",seedSharingRate:"分享率",seedTime:"上传时间(分钟)",task_manage:"任务管理",maximumDownloadNum:"同时下载的最大任务数",maximumConnectionsNum:"每个服务器最大的连接数",range_error:"范围需在{0}-{1}之间",random:"随机",breakpointContinuation:"断点续传",automaticSkip:"新建任务后自动跳转到下载页面",afterNotification:"下载完成后通知",deleteConfirm:"删除任务前无需确认",submit:"保存并应用",discard:"放弃",reset:"重置",reset_all_settings:"重置所有设置?",preferences_resetted:"偏好设置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"进阶设置",autoUpdate:"自动更新",autoCheckUpdate:"自动检查更新",proxy:"代理",useProxyService:"使用代理服务器",trackerService:"Tracker服务器",recommendUse:"推荐使用",autoUpdateTrackerServiceList:"每天自动更新Tracker服务器列表",manualUpdateTracker:"手动更新",manualUpdateSuccess:" Tracker服务器更新成功",manualUpdateFail:"更新以下Tracker服务器失败:",listenPort:"监听端口",BTlistenPort:"数据传输端口",DHTlistenPort:"分布式哈希通讯端口",protocols:"兼容以下协议",setDefaultClientForFollowingProtocols:"设置本软件为以下兼容协议的默认客户端",magnetUrl:"磁力链接",video_file:"视频文件",audio_file:"音频文件",security:"安全性",impersonateUserAgent:"模拟用户代理(UA)",RPCauthorizationkey:"RPC授权密钥",viewDocument:"查看说明文档",developer:"开发者",applicationLogPath:"应用日志路径",downloadSessionPath:"下载会话路径",resetDownloadSessionRecord:"重置下载会话记录",restoreInitialSettings:"恢复初始设置",preferences_set_successfully:"偏好设置成功!",preferences_set_fail:"偏好设置失败!",change_not_save:"修改未保存",discard_all_changes:"是否放弃所有更改?",stay_in_page:"留在此页",disk_usage:"保留磁盘空间",pause_if_less_space:"剩余空间小于此值时暂停并提醒(MB)",default_video_player:"默认视频播放器",video_cache_time:"边下边播缓存时间",minutes:"分钟",system_default:"系统默认",media_player:"媒体播放器",library_film_rate:"可见影片分级",library_show_explore:"显示[探索]页面",library_setting:"媒体库设置",library_sync_setting:"媒体库同步设置",keychain_sync_status:"密钥同步状态",sync_with_aws:"使用 Amazon Web Services 同步密钥",backup_to_local:"保存为本地文件",enable_sync_with_aws:"启用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作将移除保存在云端的密钥,请确保已将密钥保存至本地。",input_independent_password:"输入独立密码",change_independent_password:"修改独立密码",password_error:"密码错误",password_invalid:"密码格式错误",key_existed:"密钥已存在",key_not_found:"密钥不存在",library_recommend:"媒体库推荐",show_all_channels:"在媒体库推荐页显示所有频道",not_logged_in:"尚未登录",login_to_continue:"登陆以继续",mnemonic_code:"助记词",wordlist:"单词表",restore_code:"从助记词恢复",generate_code:"生成助记词",export_mnemonic_code:"导出助记词",import_mnemonic_code:"导入助记词",print:"打印",save_as_txt:"保存为 txt",save_as_pdf:"保存为 pdf",from_file:"从文件导入",not_valid_mnemonic_code:"助记词格式错误",cannot_parse_code_as_key:"无法将此助记词解析为密钥",import_key_hint:"是否确认导入此密钥?此操作将覆盖旧的密钥。",import_key_confirm:"确认导入",library_preload:"媒体库任务预加载",show_preload:"显示预加载任务",set_download:"设置下载文件夹",set_download_desc:"macOS App Store 版本默认保存位置为应用内部沙盒,在应用卸载时会一并删除。为了保留下载文件,您需要手动选择下载位置。"},d={home:"主页",home_caption:"下载/上传媒体文件",library:"媒体库",library_caption:"探索媒体资源",player:"播放器",player_caption:"视频播放",credits:"信用積分",credits_caption:"检查账户积分余额",account:"用户",account_caption:"个人用户配置",settings:"设置",settings_caption:"所有设置项",development:"开发者",development_caption:"应用开发者模式",basic:"主要设置",basic_caption:"主要的设置项",advanced:"进阶设置",advanced_caption:"进阶的设置项",blockchain:"钱包",blockchain_caption:"去中心化钱包",internal_notice:"内部版本声明",release_notes:"发行说明",terms_and_conditions:"条款和章程",license_and_listen_notices:"许可和监听开源说明",close:"关闭",success:"成功",fail:"失败"},u={credits:"信用积分",pay:"支付积分",pay_with_credit:"支付积分加速下载, 预计需要{0}积分",pay_with_credit_payed:"正在加速下载, 预计还需要{0}积分",create_payment:"创建积分订单",pay_target:"支付对象",pay_for_torrent:"为 {0} 支付",your_subid:"用户 subId",your_credits:"当前余额",pay_point_for_data:"支付{0}积分以加速{1}数据",auto_renew:"允许自动续费",transaction_details:"订单明细",transaction_id:"订单编号",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"类型",transaction_changed_amount:"变动金额",transaction_meta:"其他数据",transaction_status:"订单状态",transaction_creation_time:"订单创建时间",receipt_code:"收款码",transfer_amount:"转账金额",code_the_receipt_code:"复制下方收款码给付款人",fill_the_receipt_code:"通过填入收款人提供的收款码进行转账",income:"收入",expense:"支出",copied:"已复制",transfer:"转账",receive:"收款",copy:"复制",withdraw_fund:"提取基金",category_paydata_payer:"数据支付",category_paydata_payee:"数据收入",category_transfer:"个人转账",category_bonus:"系统奖励",category_recharge:"充值",status_pending:"等待中",status_completed:"已传完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"无效的收款码",tip_invalid_amount:"金额应为 0-1000 范围内的数(最小精度为0.001)",credit_get_more:"获得更多积分",credit_no_data:"无可用数据",credit_loading:"加载中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"网络出现异常,请稍后重试","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},_={account_email_invalid_address:"无效的电子邮件地址",account_email_invalid_domain:"无效的电子邮件域",account_email_unknown_status:"未知的邮件发送状态",account_email_unavailable_address:"邮件地址不可用",account_email_suppressed_address:"邮件地址被禁用",account_loading:"加载中...",account_is_required:"不能为空",account_sign_in_your_account:"登录账户",account_username:"用户名",account_username_email_phone:"手机号码或电子邮箱",account_password:"密码",account_new_password:"新密码",account_re_enter_password:"再次输入密码",account_password_not_equal:"输入的两个密码不同。",account_new_password_same:"新密码与原密码相同",account_forgot_your_password:"忘记密码了?",account_reset_password:"重置密码",account_sign_in:"登录",account_signed_in:"登录成功",account_sign_up:"注册",account_find_your_account:"找寻你的账户",account_enter_your_username:"输入你的手机号码或电子邮箱",account_search:"查找",account_email_sent_tip:"一封附带验证码的电子邮件已发送到您的邮箱:",account_phone_sent_tip:"一封附带验证码的短信已发送到您的手机:",account_email_phone_sent_tip:"附带验证码的电子邮件和手机短信已分别发送到您的邮箱和手机:",account_software_token_tip:"您的账户已启用安全令牌。要完成登录,请打开或查看您的设备并输入验证码",account_reset_your_password:"重置账户密码",account_verification_code:"验证码",account_resend_code:"重发验证码",account_code_has_been_resent:"验证码已发送",account_password_has_been_reset:"密码已重置",account_submit:"提交",account_sign_up_your_account:"注册账户",account_fill_required_fields:"填写下方的必填项。",account_fill_optional_fields:"填写下方的选填项。",account_email:"邮箱",account_invitation:"邀请",account_invitation_code:"邀请码",account_i_accept:"我接受",account_license_terms:"服务许可条款",account_next:"下一步",account_you_need_to_accept_license_terms:"请先勾选我接受服务许可条款",account_verify_fill_optional_fields:"验证身份与可选项",account_nickname:"昵称",account_gender:"性别",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手机号码",account_locale:"地区",account_tip_verified:"验证通过,正在登陆...",account_verified:"已验证",account_unverified:"未验证",account_signed_up:"注册成功",account_verify_your_identity:"验证您的身份",account_finish:"完成",account_signed_out:"注销成功",account_change_password:"修改密码",account_change_email:"修改电子邮箱",account_change_phone_number:"修改手机号码",account_sign_out:"注销",account_current_password:"当前密码",account_re_enter_new_password:"再次输入新密码",account_personal_information:"个人信息",account_edit:"编辑",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_not_set:"未设置",account_change:"修改",account_setting:"设置",account_copy_code:"复制代码",account_account_setting:"账户设置",account_task_page:"积分任务",account_setting_caption:"管理你的账户信息",account_security:"安全",account_want_to_join:"登录更精彩",account_sign_in_now:"点击登录",account_changed:"已更改",account_clipboard_with_invitation_code:"已复制邀请码",account_clipboard_with_code:"已复制代码",account_invitation_code_dialog_tip:"你将通过短信或电子邮件的方式发送邀请码:",account_available:"可用",account_invited:"已邀请",account_used:"已使用",account_invitation_code_sent:"邀请码已发送",account_invitation_channel_required:"至少需要填写一项邀请途径",account_no_verification_code:"无法收到验证码?",account_no_phone_number:"没有手机号码?",account_sign_up_by_email:"通过邮箱注册",account_no_email:"没有邮箱?",account_sign_up_by_phone_number:"通过手机注册",account_no_totp:"没有安全令牌?",account_tip_no_totp:"若沒有安全令牌請先設定安全令牌",account_setup_totp:"设置安全令牌",account_contact_information:"联系方式",account_delete_account:"删除账户",account_deleted:"已删除",account_can_not_mfa:"无法进行二级验证?",account_set_mfa_type:"更改二级验证",account_disable_mfa:"关闭二级验证",account_disabled_mfa:"已关闭二级验证",account_sms_mfa:"手机短信验证",account_totp_mfa:"安全令牌验证",account_totp:"安全令牌",account_not_recommend:"不推荐",account_oauth_sign_in_with:"通过 {provider} 登录",account_sign_in_failed:"登录失败",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通过手机短信或安全令牌为账户设置二级验证",account_error_can_not_enable_mfa:"您必须同时绑定邮箱和手机号码,才可以启用二级验证",account_tip_can_not_enable_sms_mfa:"您必须同时绑定邮箱和手机号码,才可以启用短信验证",account_tip_can_not_enable_totp_mfa:"您必须同时绑定邮箱和手机号码,才可以启用安全令牌",account_tip_setup_totp:"使用Authenticator等应用,扫描下方的二维码或手动复制代码来添加安全令牌",account_tip_verify_totp:"验证您的安全令牌",account_link_your_social_account:"绑定您的社交账号",account_unlink_your_social_account:"解除社交账号绑定",account_tip_confirm_link:"确定将当前账号与您的 {provider} 账号进行绑定吗?",account_tip_confirm_unlink:"确定解除您已绑定的 {provider} 账号吗?",account_tip_linking:"正在绑定...",account_tip_unlinking:"解除绑定中...",account_linked:"已绑定",account_unlinked:"已解除绑定",account_error_can_not_link_to_the_linked_account:"当前社交帐号已与其他账号绑定",account_error_can_not_link_to_the_mismatched_email:"当前账号与社交帐号邮箱地址不一致",account_error_can_not_link_before_email_verified:"未绑定邮箱的账户无法绑定社交帐户",account_tip_confirm_verify_email_phone:"是否向当前账户的email和手机号码发送验证码以验证您的身份?",account_tip_confirm_verify_phone:"是否向当前手机号码发送验证码以验证您的身份?",account_error_1_message_60_seconds:"每60秒只能发送一条短信或邮件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手机或电子邮件24小时内只能发送10条信息",account_error_network:"网络出现异常,请稍后重试","Network Error":"网络出现异常,请稍后重试",account_error_user_not_exist:"用户不存在",account_error_incorrect_username_or_password:"用户名或密码错误",account_error_incorrect_original_password:"原密码错误",account_error_incorrect_password:"密码错误",account_error_username_not_found:"找不到该用户名的账户",account_error_can_not_reset_for_no_verified:"账户未进行邮箱验证,无法重置密码",account_error_invalid_verification_code:"验证码错误,请重试",account_error_expired_verification_code:"验证码过期,请重试",account_error_password_not_long_enough:"密码长度不能小于8位",account_error_attempt_limit_exceeded:"尝试次数过多,请稍后重试",account_error_password_attempts_exceeded:"超过密码尝试次数",account_error_invalid_phone_number_format:"手机号码格式不正确",account_error_no_cell_phone_prefix:"请选择手机号前缀",account_error_username_already_exists:"该用户名已存在",account_error_you_need_to_accept_license_terms:"请勾选我接受服务许可条款",account_error_inactive_code:"该邀请码已失效",account_error_non_existent_code:"该邀请码不存在",account_error_unexpected:"未知错误",account_error_can_not_change_email_before_phone_bound:"绑定手机号码前无法更改邮箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帐户绑定前无法更改邮箱",account_error_can_not_change_phone_before_email_bound:"绑定邮箱前无法更改手机号码",account_error_can_not_change_email_phone_with_mfa_enabled:"关闭二级验证前无法更改邮箱或手机号码",account_error_not_supported_yet:"暂不支持",account_error_same_email:"新的邮箱不能与原邮箱相同",account_error_same_phone:"新手机号码不能与原手机号码相同",account_error_email_not_exists:"该邮箱不存在",account_error_email_already_exists:"该邮箱已有账户绑定",account_error_phone_already_exists:"该手机号码已有账户绑定",account_error_mfa_token_mismatch:"安全令牌错误",account_error_recaptcha_not_loaded:"网络出现异常,请重连网络后重启应用重试",account_error_recaptcha_validation_failed:"未通过ReCaptcha验证,请重连网络后重启应用重试",account_error_sign_in_in_progress:"等待登录尝试已在进行中",account_field_range:"字符个数应在{0}-{1}的范围中",account_field_only_alphanumeric:"仅支持字母和数字",account_field_only_alphanumeric_and_symbol:"仅支持字母数字和符号",account_field_only_chinese_alphanumeric_space_underline:"仅支持中英文数字空格下划线",account_field_prefix_without_number_space:"首个字符不能为数字或空格",account_field_suffix_without_space:"不能以空格结尾",account_field_without_repeat_space:"不能连续使用多个空格",account_field_can_not_only_alphanumeric:"不可仅为字母或数字",account_field_must_have_number_characters:"必须包含数字",account_field_verification_code:"验证码必须是六位数数字",account_field_invitation_code:"邀请码必须是字母和数字",account_field_phone_number:"手机号码格式不正确",account_invalid_email_format:"邮箱格式不正确",account_sign_out_confirm:"是否确认注销? 注销后将停止所有任务",account_sign_out_anyway:"仍要注销",account_signing_out:"正在注销...",account_request_save_settings:"设置未保存。在注销前请先保存修改。",invalid_password_format:"密码格式错误",invalid_password_format_same:"新密码与原密码相同",error_password:"密码错误",keychain_setting:"密钥管理",setting_description:"云端储存:将密钥数据保存到云端。\n修改密码:修改媒体库密钥的密码。\n助记词:一种生成和恢复密钥的替代方法。\n导入本地密钥:将本地保存的密钥导入媒体库。\n导出密钥:将当前媒体库数据保存到本地或云端。\n备份密钥到云端:将当前媒体库数据更新到云端进行备份。",refresh_status:"更新状态",confirm_import_key:"确认导入密钥",confirm_update_cloud_key:"你在云端已有密钥,更新密钥将覆盖原有的密钥,确认更新存储在云端的密钥吗",export_key_with_cloud:"输入您所设置的独立密码导出存储在云端的媒体库密钥,并通过解锁密码锁定密钥文件",store_cloud_key_prompt_password:"输入独立密码以存储媒体库密钥到云端",update_cloud_key_prompt_password:"设置独立密码以加密媒体库密钥并更新到云端",enable_cloud_storage_prompt_password:"为存储在云端的密钥设置密码,通过该密码可以从云上取回密钥",input_unlock_password:"设置解锁密码",export_local_prompt_password:"请设置一个解锁密码,该密码用于加密您的密钥文件。我们不会保存此密码,因此若您丢失该密码,密钥文件将无法解锁",require_unlock_password:"该密钥文件已被锁定,请输入解锁密码",require_independent_password:"输入独立密码以获取存储在云端的密钥",import_local_prompt_password:"该密钥文件已被锁定,请输入解锁密码",select_encrypt_mode:"选择加密模式",input_independent_password:"输入独立密码",update_cloud_key:"更新存储在云端的密钥",backup_to_cloud:"将媒体库密钥备份到云端",save_local:"将媒体库密钥保存为本地加密文件",create_new_key:"创建新的媒体库密钥",creating_lib_key:"正在创建媒体库密钥...",loading_lib_key:"正在载入媒体库密钥...",failed_to_create_lib_key:"创建媒体库密钥失败",failed_to_load_lib_key:"载入媒体库密钥失败",import_local_key:"导入本地密钥",import_lib_key_from_local:"从本地导入媒体库密钥",import_from_cloud:"从云端导入媒体库密钥",create_or_import_key:"创建或导入媒体库密钥",create_or_import_key_desc:"媒体库密钥用于与去中心化数据库同步内容。",store_your_lib_key:"存储你的媒体库密钥",export_cloud_key:"导出云端密钥",export_current_key:"导出当前密钥",change_password:"修改密码",enable_cloud_storage:"启用云端存储",disable_cloud_storage:"关闭云端存储",disable_cloud_storage_desc:"关闭云端存储将移除保存在云端的密钥,请确保已将密钥保存在本地",sync_at:"同步于:{time}",keychain_sync_status:"密钥同步状态",cloud_storage_enabled:"使用 {storage} 同步密钥",cloud_storage_disabled:"未启用云端存储",saved_locally:"已保存于本地",export_key:"导出密钥文件",cloud_independent_password:"云端独立密码",key_file_unlock_password:"密钥文件解锁密码",re_enter_unlock_password:"再次输入解锁密码",independent_password_not_enabled:"当前密码为 Alphabiz 账户密码(未设置独立密码)",use_cognito_hash:"使用 Alphabiz 账户密码",use_independent_password:"使用独立密码",keychain_lib:"媒体库密钥",loading_keychain_state:"加载密钥中...",backing_up:"备份中...",backup_current_key:"备份当前密钥到云端",cloud_lib_key_not_existed:"云端媒体库密钥不存在",open_keychain_file:"打开密钥文件",confirm_open_abk:"是否打开ABK文件",use_the_key:"使用该密钥",backup_the_key:"备份该密钥到云端",keychain_data_does_not_exist:"密钥数据不存在","timeout of 0ms exceeded":"网络出现异常,请稍后重试",XhrError:"网络出现异常,请稍后重试"},p={add_subtitles:"添加字幕",open_file:"打开文件...",advanced_options:"高级选项",title:"标题",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默认视频播放器未设置",this_is_an_audio_file:"这是一个音频文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任务被暂停或删除,流媒体播放被终止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超时,请检查任务",autoplay_hint:"自动播放功能可能受浏览器限制,若未开始播放,请手动点击播放器以播放",remove_playing_confirm:"{0} 正在播放中,删除任务将停止播放。是否仍要删除?",subtitle:"字幕",setting:"设置",loading:"加载中",unknown_media:"未知媒体",settings_button_visible:"按钮显示",settings_setting:"设置",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"画中画",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常规",settings_italic:"斜体",settings_lighter:"纤细",settings_bolder:"粗体",settings_small:"较小",settings_large:"较大"},m=a("8097");const h=r.a.displayName;var g={lib_index:"主页",lib_edit:"编辑",lib_publish:"发布",lib_explore:"探索",lib_following:"关注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"频道",lib_submit:"提交",lib_from_network:"使用去中心化数据库,所有数据来源于网络",welcome_to_lib:`欢迎使用 ${h} 媒体库`,register_or_login:"注册/登陆",lib_recommend:"推荐",lib_recommend_desc:`欢迎使用 ${h} 媒体库!本媒体库使用去中心化的数据库,所有数据来源于网络。在开始前,请先关注一些推荐频道。`,follow_any_channel_to_continue:"关注任意频道以继续",follow_channels_and_continue:"关注 {0} 个频道并继续",show_more_for_me:"为我展示更多",no_more_recommend:"没有更多推荐",key:"密钥",create_key:"生成密钥",save_key:"保存密钥",save_key_file:"是否将密钥保存为文件?",import_key:"导入密钥",import:"导入",invalid_key:"密钥格式错误",back_to_top:"回到顶部",search_for_channel:"搜索频道 ID",search_channel_no_result:"找不到 ID 为 {0} 的频道",please_input_channel_id:"请输入频道 ID",welcome_help_text:"\n 这是一个去中心化的媒体库,您需要为此创建一个专用账户,\n 我们将自动为您生成一套密钥。如果您已经拥有密钥了,\n 也可以在此导入密钥".replace(/\s/g,""),welcome_key_text:"\n 当您成功创建账号后,请点击右下角的【保存密钥】按钮导出\n 您的密钥。一旦您丢失密钥,对应的账号将无法找回。".replace(/\s/g,""),redirect_to_recommend:"您似乎没有关注任何频道,即将前往探索页。",channel:"频道",follow:"关注",unfollow:"取消关注",following:"关注中",share:"分享",block:"屏蔽",unblock:"取消屏蔽",blocked:"已屏蔽",block_channel:"屏蔽此频道",block_channel_confirm:"屏蔽频道后,频道的所有内容将从时间线上移除。您可以在账户设置中管理屏蔽列表。",block_creator:"屏蔽此频道的创作者",unblock_creator:"取消屏蔽此频道的创作者",block_creator_confirm:"屏蔽创作者后,该创作者的所有频道将从时间线上移除。您可以在账户设置中管理屏蔽列表",share_url_copied:"分享链接已复制至剪贴板",unfollow_confirm:"是否取消关注?此频道的所有推文将从你的时间线上移除。",follow_failed_hint:"操作仍在后台进行中,请耐心等待。如长时间未完成修改请尝试重启应用。",follow_time:"关注时间",update_time:"更新时间",search:"搜索",type:"类型",added:"已添加",click_to_task:"点击前往对应任务",lib_already_added:"您已添加此视频",description:"描述",poster:"海报",channel_poster:"频道海报",preview:"预览",creator:"创作者",creator_detail:"创作者详情",loading_creator:"正在加载创作者信息",wait_for_creator_loaded:"请等待创作者信息加载完成。",follower:"关注者",followers:"关注者",follower_list:"关注者列表",user:"用户",channel_title:"频道标题",channel_id:"频道 ID",post_title:"推文标题",post_id:"推文 ID",import_data_from_excel:"从 Excel 导入数据",set_excel_keys:"设置excel键",excel_import_succeded:"Excel 导入成功",excel_import_success_msg:"可添加 {0} 条新项目, {1} 条信息不完整及 {2} 条重复项已忽略",cannot_find_channel:"找不到指定频道",cannot_find_posts:"找不到指定视频",add_channel:"添加频道",add_post:"添加推文",edit_channel:"编辑频道",channel_setting:"频道设置",edit_post:"编辑推文",edit_posts:"编辑推文",channel_detail:"频道详情",remove:"移除",remove_channel:"移除频道",remove_channel_confirm:"是否确认移除频道?此操作不可恢复。",remove_post:"移除推文",remove_post_confirm:"是否确认移除推文?此操作不可恢复",preview_mode:"预览模式",preview_mode_desc:"这是频道的预览模式,所有分级的影片均为可见状态。",edit_user_profile:"编辑用户资料",name:"昵称",avatar:"头像",no_following:"没有已关注的频道。点击前往",no_recommend:"没有可推荐的频道。点击前往",first_recomment_msg:"如果您是初次使用,加载时间可能较长",invalid_image:"图片异常",image_not_reachable:"此图片URL不可用",channel_not_found:"找不到频道",cannot_get_channel_info:"无法获取指定的频道信息。该频道可能已被创作者删除而不再可见。",validate_error:"验证错误",validate_user_name_no_space:"用户名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"用户名应为 {0}-{1} 字符",validate_user_desc_length:"用户描述不可多于 {0} 字符",validate_user_avatar_url:"用户头像应为链接且不多于2048字符",validate_channel_title_length:"频道标题应为1-100字符",validate_channel_desc_length:"频道描述应为10-300字符",validate_channel_image_url:"频道预览图应为链接且不多于2048字符",validate_post_title_length:"推文标题应为1-100字符",validate_post_desc_length:"推文描述应为10-300字符",validate_post_image_url:"海报应为链接且不多于2048字符",validate_post_url:`${h} 链接格式错误`,validate_post_url_length:`${h} 链接不可多于2048字符`,film_rate:"影片分级",set_film_rate:"设置影片分级",select_a_rate_before_enter:"您需要设置一个影片分级才可进入媒体库。",library_available_rate:"媒体库可用影片分级",rate_g:"G(大众级)",rate_g_desc:"所有年龄皆可观赏\n此类影片不含或仅含少量会让家长在让儿童观赏时感到被冒犯的内容,无需家长陪同。",rate_pg:"PG(建议家长指导)",rate_pg_desc:"一些内容可能不适合儿童观看\n此类影片包含部分家长可能认为不适合儿童的内容,因此建议家长可同时进行指导。",rate_pg_13:"PG-13(家长特别留意)",rate_pg_13_desc:"一些内容可能不适合13岁以下儿童观看\n此类影片有部分内容对13岁以下儿童不适宜,需要有父母陪同观看。此类影片动作暴力适当,含有少量血腥场面及不雅用语,但也包含可能令人情绪不安的情节。",rate_r:"R(限制级)",rate_r_desc:"未满十七岁人士必须由家长或成年监护人陪同\n此类影片中常有大量血腥暴力、惊悚恐怖、裸露性爱或吸毒场景,且有大量性暗示及不雅用语/ 冒犯性言论等,17岁以下人士必须由父母或者监护陪伴才能观看。",rate_nc_17:"NC-17(只准成人观看)",rate_nc_17_desc:"17岁或以下人士不得观赏\n此类影片其中常有清楚的性爱场面,大量的吸毒或暴力镜头以及脏话等,因此仅适合成人观赏。",set_as_private:"设为私有",hide_in_explore:"在浏览页隐藏此频道",hidden:"已隐藏",select_a_rate:"请选择一个影片分级",select_from_tasks:"从上传任务中选择",import_from_magnet:`从${Object(m["a"])()?"链接":"磁力链接(magnet:?...)"}导入`,input_magnet_url:"输入链接",task_title:"任务标题",set_title:"设为标题",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"从本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"导入/导出收藏",export_local_favorites:"导出收藏文件作为备份",import_favorites_file:"导入备份的收藏",not_a_favorite_file:"此文件并非收藏备份",connection_status:"连接状态",gun_server_list:"缓存节点",custom_nodes:"自定义缓存节点",custom_nodes_hint:"缓存节点将在重启软件后应用",wait_for_reboot:"即将重启软件...({seconds}s)",reboot_now:"立即重启",reboot_later:"稍后重启",peer_list:"节点列表",server:"节点 URL",peer:"节点",peer_id:"节点 ID",connection:"连接",data_source:"数据源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已获取全部推文",placeholder_channel_title:"频道名称",placeholder_channel_desc:"关于此频道的描述",placeholder_post_title:"电影名称 (年份)",placeholder_post_desc:"关于此电影的描述",private_channel:"私有频道",creator_blocked:"已屏蔽创作者",go_to_library:"前往媒体库?",go_to_library_channel_msg:"是否前往媒体库频道 {0}?",magnet_does_not_have_name:"此链接不包含任务名,请输入推文标题后重试。",no_available_post:"无可见推文",following_channel_no_post:"已关注的频道中不含可见的推文。此问题可能由网络错误引起。如果您已关注带有推文的频道,这些推文将在稍后加载完成。",share_to_library:"分享到媒体库",quick_start:"快速开始",quick_start_desc:"选择一个任务或文件快速创建推文",select_file:"选择文件...",select_folder:"选择文件夹...",post_options:"推文选项",channel_options:"频道选项",create_new_channel:"创建新频道",use_existed_channel:"使用已存在的频道",select_existed_channel:"选择一个频道",uploaded_by:"{title} (由 {name} 上传)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在创建新频道...",created_new_channel:"新频道已创建",creating_new_post:"正在创建新推文...",created_new_post:"新推文已创建",create_new_post:"创建推文",quick_start_timeout:"{0}超时。此问题可能由网络错误引起。请稍后再试。",file_too_large:"文件过大",file_too_large_msg:"此文件的大小超过了 4GB ({size}),上传此文件可能需要较长的准备时间,是否仍要上传?",resolving_folder_files:"正在解析文件夹内容...",folder_too_large:"文件夹过大",folder_too_large_msg:"文件夹中的文件大小超过 4GB ({size} 总大小),上传此文件夹可能需要较长的准备时间,是否仍要上传?",creating_new_task:"正在创建新任务...",cannot_create_task:"创建任务异常",cannot_create_task_msg:"创建任务时产生了未知错误。任务可能已被创建,请查看上传列表以确定上传状态。",cannot_get_task_name:"无法获取任务名,请输入推文标题后重试",remove_old_task:"删除旧任务",remove_old_task_desc:"Web 模式仅允许创建一个任务,是否删除旧任务?",subtitle_list:"字幕列表",optional:"可选",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下载链接",maximumSubtitleNum_limit:"字幕数量已达到最大",cannot_add_subtitle:"添加字幕失败",cannot_add_subtitle_msg:"没有选择字幕语言或下载链接无效。",support_subtitle_type:"仅支持srt,vtt格式的字幕。",recommend_opensubtitles:"建议使用www.opensubtitles.org的字幕下载链接或id。",take_down:"下架",serious_violation:"严重违规",copyright_disputes:"版权争议",adults_only:"成人内容",takedown_reason:"下架理由",takedown_mode:"下架模式",admins:"管理员",takedown_user:"下架此创作者",takedown_channel:"下架此频道",takedown_post:"下架此推文",select_takedown_reason:"选择下架理由",takedown_invalid_reason:"下架理由错误",takedown_invalid_user_id:"用户ID错误。ID应为87位字符",takedown_invalid_channel_id:"频道ID错误。ID应为20位字符",takedown_invalid_post_id:"推文ID错误。ID应为20位字符",takedown_management:"下架管理",users:"用户",channels:"频道",posts:"推文",you:"你",preset:"预设",admin:"管理员",committee:"委员会",about_takedown_mode:"模式说明:\n预设:在github添加,所有内容都会移除。\n管理员:任一管理员投票后即会移除。\n委员会:超过半数管理员投票后才会移除。",cannot_edit_preset:"无法编辑此行,因为它是预设内容",cannot_edit_not_vote:"无法编辑此行,因为你未为其投票",remove_vote:"移除你的下架投票",post_preload_failed:"无法预载此推文。下载链接可能已过期,因此无法立即播放。",about_cache_node:"关于缓存节点",edit_cache_node:"编辑缓存节点",create_cache_node:"创建缓存节点",about_cache_node_desc:`${h} 使用 gun 服务器作为缓存节点,您可以在进阶设置中编辑自定义节点。`,learn_how_to_deploy_gun:"查看如何建立自定义节点",library_setting:"媒体库设置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用户",blocked_channels:"已屏蔽的频道",unblock_user:"解除用户屏蔽",unblock_channel:"解除频道屏蔽",no_blocked_user:"没有已屏蔽的用户",no_blocked_channel:"没有已屏蔽的频道",field_required:"{0} 不能为空"};const f=r.a.displayName,b={unsupported_in_browser:"此功能暂不支持浏览器模式",client:"客户端",warning:"警告",enable:"启用",disable:"禁用",auto:"自动",encrypt_connection:"加密连接",encrypted_connection:"已加密的连接",non_encrypted_connection:"未加密的连接",connected_wires_not_disconnect:"已存在的连接不会被断开",audio:"音频",video:"视频",image:"图片",subtitle:"字幕",zip:"压缩文件",text:"文本",unknown:"未知",add:"添加",undo:"撤销",backup:"备份",not_default_app:`${f}不是你的默认应用. 是否设置默认应用?`,dont_show_again:"不再提示",go_to_settings:"前往设置",about_alphabiz:`关于 ${f}`,update_channel:"更新通道",last_check_at:"上次检查更新时间",check_for_update:"检查更新",checking_for_update:"检查更新中...",no_update_available:"没有可用更新",update_available:"更新可用",update_now:"现在更新",update_later:"以后更新",click_to_update:"点击[现在更新]按钮以开始下载更新",update_failed:"更新失败",update_failed_message:"在更新时遇到了一个错误: ",check_shasum_failed:"安装包完整性检查失败",downloading_update:"更新下载中...",ready_to_update:"准备更新",restart_to_update:`更新下载已完成. ${f} 将在数秒后退出以安装更新`,already_latest:"当前版本({0})已是最新",update_timeout:"更新超时",no_available_release:"没有可用的版本",no_available_installer:"没有可用的安装包",feedback:"反馈",select_a_type:"选择一个类型",category:"分类",select_a_category:"选择一个分类",title:"标题",require_title:"请提供标题",describe_your_problem:"描述您遇到的问题",report_a_bug:"报告一个错误(bug)",request_a_new_feature:"请求一个新功能",download_or_upload:"下载/上传",others:"其他",submit_with_system_info:"提交时附带系统信息",submit_feedback:"提交反馈",tweet_us:"发送Twitter",tweet_too_long:"Tweet过长",delete_characters:"请删除{0}个字符",rest_characters:"还能输入{0}个字符",update_alphabiz:`更新 ${f}`,current_version:"当前版本",cancel_update:"取消更新",slow_download_speed:"下载过于缓慢",slow_download_speed_caption:"当前更新包下载过于缓慢,请检查网络状态",update_canceled:"更新已取消",current_version_release_time:"当前版本发布时间",expired_app:`${f} 过期`,version_out_of_date:"版本过旧",have_to_update:`${f} 版本过旧,部分接口或协议已失效。您需要升级 ${f} 才可继续使用。`,exit_alphabiz:`退出 ${f}`,exit_and_update:"退出并应用更新",new_version_hint:"新版本可用",no_new_version:"没有可用的新版本",current_is_latest:"当前版本已是最新版",click_to_check_update:"点击 [检查更新] 按钮以检查更新",download_latest_version_from_website:"请前往官网下载最新版本",to_the_website:"前往官网",network_diagnotic:"网络诊断",diagnotic:"诊断",click_to_check:"点击开始检查",click_to_check_again:"点击再次检查",checking:"检查中",online:"在线",offline:"离线",dns_look_up:"域名解析",error:"错误",aws_service:"AWS 服务",network_pings:"网络 Ping",not_found:"未找到",packet_loss:"丢包率",official_site:"官方网站",download_test:"下载测试",connected:"已连接",test_task:"测试任务 ({0})",download_failed:"下载失败",second_spend:"用时 {0} 秒",open_default_player_failed:"打开默认播放器失败",copied_to_clipboard:"已复制到剪贴板",go_to:"前往",region_not_available:"地区不可用",region_not_available_message:"抱歉,此应用在您的地区不可用。本应用将在{0}秒后退出",confirm:"确认",no_available_result:"无可用结果"};var y={...g,...l,...c,...d,..._,...u,...p,...b};const v=r.a.displayName;var w={repeat_add:"The task has been added, Please do not add it again",upload:"Upload",download:"Download",delete:"Delete",delete_task:"Delete task",delete_confirm_message:"Delete this task? This is irrevocable",also_delete_files:"Also delete files",default_delete_files:"Default delete downloaded files after remove task",not_now:"Not now",delete_autoupload_confirm:"This task contains file you put in auto-upload directory. Delete this task will also delete the file.",delete_anyway:"Delete anyway",upload_too_many_files:"Upload too many files",ask_if_unlimit_upload_amount:"The auto-upload directory contains too many files. Do you want to disable the upload amount limitation? *This may cause performance problem",disable_limitation:"Disable limitation",not_length:"Multi file operation is not supported at present, Please cooperate",download_torrent:"Download file",upload_torrent:"Upload file",files:"Files",file:"File",folder:"Folder",start_all:"Start all",pause_all:"Pause all",remove_all:"Remove all",upload_all:"Upload all",clear_history:"Clear history",pause_all_finish_payments:"This will finish all payments.",accelerating:"Accelerating",link_task:"Link task",torrent_task:"File task",ok:"OK",cancel:"Cancel",download_directory_position:"Download directory position",torrent_file:"task file",magnetic_link_incorrect:"The link format is incorrect",delete_fail:"Delete fail",pause:"Pause",paused:"Paused",stop_torrent:"Stop",seed:"Seed",resume:"Resume",downloading:"Downloading",downloaded:"Downloaded",uploading:"Uploading",auto_uploading:"Auto uploading",uploaded:"Uploaded",pending:"Waiting for other tasks",verifying:"Verifying",waiting_for_verify:"Waiting for verify",seeding:"Seeding",completed:"Completed",status:"Status",task_name:"Task name",size:"Size",progress:"Progress",sort:"Sort",ascending:"Ascending",descending:"Descending",file_loading:"Loading file...",loading:"Loading",unknown_status:"Unknown",play_while_downloading:"Play...",upload_or_play:"Upload / Play",play:"Play",ask_if_upload_file:"Upload file?",ask_if_upload_or_play:"Upload or play file?",torrent_error:"Error when adding task:",no_peers:"Retry for more than {0} times and no peer is available",torrent_exists:"Task already exists.",show_origin_torrent:"Get original task file or url",show_directory:"Open directory of this torrent",task_num:"Tasks",total_upload_speed:"Upload speed",total_download_speed:"Download speed",path_missing:"Error: cannot find torrent path",origin_not_found:"Cannot find origin task info.",text_copied:"Magnum url is copied to your clipboard",copy_magnet_uri:`Copy ${Object(m["a"])()?"link":"magnet:?"} URI`,copy_download_uri:"Copy download URI",copy_share_uri:"Copy share URI",uri_copied:"URI is successfully copied to your clipboard",uri_copy_failed:"Failed to copy uri",more:"More...",toggle_list_mode:"Toggle list mode",comment:"comment",operations:"Operations",open_directory:"Open directory",no_downloading_task:"No downloading task",remove_all_downloading_tasks:"Remove all downloading tasks?",remove_all_upload_tasks:"Remove all upload tasks?",remove_autoupload_files:"Remove auto-upload files",remove_all_history:"Remove all history?",remaining:"Remaining",created_time:"Created time",used_time:"Used time",completed_time:"Completed time",yesterday:"Yesterday",before_yesterday:"{empty}",earlier:"Earlier",miss_file:"Some files are missing",delete_miss_file_task:"There are fome files missing in {0}.",common_peer:"Common peer",ab_peer:`${v} peer`,ab_peer_verified:`Verified ${v} peer`,ab_peer_available:`${v} peer(s) available`,alphabiz_accelerating:`${v} accelerating`,income:"Income",income_info:"Income(today/total)",total_income_info:"Income: {0}(today) / {1}(total)",login_to_see_income:"Login to see income statistics",credit_cost:"Credit costs",downloaded_by_payment:"Downloaded by Payments",file_not_found:"Cannot find this file in local",no_task:"No task",no_matched_task:"No matched task",space_not_enough:"Disk space not enough",need_more_space:"Need {0} more space but current disk has {1} free ({2} reserved). Tasks are paused. Library preload is disabled. You can re-enable it in [Settings - Advanced].",seeders:"Seeders",last_update:"Last update",connecting:"Connecting",connected:"Connected",request_timed_out:"Request timed out",connection_failed:"Connection failed",invalid_download_url:"Invalid download URL",download_link:"download link",empty_files:"No files in directory",duplicate_task:"Duplicate task",duplicate_tracker:"Duplicate tracker",this_task_not_ready:"This task is not ready. Pause this task will directly remove it.",some_task_not_ready:"Some tasks are not ready. Pause these tasks will directly remove them.",failed_to_delete_files:"Failed to delete files",failed_to_delete_files_desc:"Failed to delete some files of the task. You may need to delete them manually",unknown_error:"Unknown error: {0}",more_files_are_not_shown:"({0} more files are not shown for performance reason)",no_available_file:"No available file. Please wait for task ready.",service_worker_error:"Cannot load ServiceWorker for playing. Your browser may not support this feature, or the ServiceWorker is not activated. You may need to reload this page and try again.",add_task_first:"You need to add task first.",player_task_time:"Player takes too many seconds preparing for play. There may be something wrong with the task.",web_mode_hint:`The web mode of ${v} only supports WebRTC peers. For best experience, please download ${v} Desktop App.`,web_mode_task_hint:"Click buttons below to add a task. You can only add one task at one time.",save_to_local:"Save to local",save_as_zip:"Save as ZIP",creating_save_file:"Creating save file...",upload_as_one_directory:"Upload as one directory",upload_as_single_files:"Upload as single files",web_mode_upload_single:"You can only upload a single file in web mode",download_success:"Download successfully",download_fail:"Download failed",wait_for_downloaded_to_share:"Please wait for task downloaded before sharing.",download_with_cellular:"Download tasks using cellular",download_with_cellular_desc:"You are using cellular network. Download tasks with cellular may take additional fees by your carrier.",download_with_cellular_confirm:"Still download with cellular"},k={language:"Language",appearance:"Appearance",darkModeSystem:"System",darkModeLight:"Light",darkModeDark:"Dark",basic_setting:"Basic",hideMenu:"Hide App Menu (Windows & Linux Only)",autoHide:"Auto Hide Window",autoStart:"Open at login",restore:"Keep size and position of the window when exit",autoStartUnfinished:"Automatically resume all unfinished tasks",default_download_path:"Default Path",download_directory:"Download Directory",upload_directory:"Upload Directory",enable_auto_upload:"Enable auto upload",unlimit_upload_amount:"Unlimit upload amount",unlimit_upload_warning:"Allow upload large amount of files. This may cause performance problem",start:"Startup",transport_setting:"Transmission",upload_limit:"Upload limit",download_limit:"Download limit",payed_user_share_rate:"Payed user share rate",unlimited:"Unlimited",limit_input_error:"Limit number should be positive",BT_setting:"Task Settings",saveLinkSeed:"Save link as task file",autoDownload:"Automatically download link and content",continuousSeeding:"Keep seeding until stop it manually",seedSharingRate:"Seed Ratio",seedTime:"Seed Time (minutes)",task_manage:"Task Management",maximumDownloadNum:"Maximum active tasks",maximumConnectionsNum:"Maximum connection per server",range_error:"Range should between {0} and {1}",random:"Random",breakpointContinuation:"Continue",automaticSkip:"Automatically show downloading after adding task",afterNotification:"Notification after download is complete",deleteConfirm:"No confirmation is required before deleting task",submit:"Save & Apply",discard:"Discard",reset:"Reset",reset_all_settings:"Reset all settings?",preferences_resetted:"Preferences resetted",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"Advanced",autoUpdate:"Auto Update",autoCheckUpdate:"Automatically check for update",proxy:"Proxy",useProxyService:"Enable Proxy",trackerService:"Tracker Servers",recommendUse:"Recommended",autoUpdateTrackerServiceList:"Update tracker list every day automatically",manualUpdateTracker:"Manual update",manualUpdateSuccess:"Successfully update tracker servers",manualUpdateFail:"Failed to update from:",listenPort:"Listen Ports",BTlistenPort:"Data Transmission Port",DHTlistenPort:"Distributed Hash Port",protocols:"Compatible Protocols",setDefaultClientForFollowingProtocols:"Set as the default client for the following protocols",magnetUrl:"Magnet",video_file:"Video file",audio_file:"Audio file",security:"Security",impersonateUserAgent:"Mock User-Agent",RPCauthorizationkey:"RPC Secret",viewDocument:"View RPC Secret Manual",developer:"Developer",applicationLogPath:"App log path",downloadSessionPath:"Download session path",resetDownloadSessionRecord:"Reset download session",restoreInitialSettings:"Factory Reset",preferences_set_successfully:"Save preferences successfully!",preferences_set_fail:"Save preferences fail!",change_not_save:"Changes not save",discard_all_changes:"Discard all changes and leave?",stay_in_page:"Stay in page",disk_usage:"Disk usage",pause_if_less_space:"Pause and notify if space is less than (MB)",default_video_player:"Default video player",video_cache_time:"Stream play cache",minutes:"minutes",system_default:"System Default",media_player:"Media Player",library_film_rate:"Available film rate",library_show_explore:"Show [Explore] page",library_setting:"Library setting",library_sync_setting:"Library sync setting",keychain_sync_status:"Keychain sync status",sync_with_aws:"Sync Keychain with Amazon Web Services",backup_to_local:"Backup to local file",enable_sync_with_aws:"Enable sync with AWS",disable_sync_with_aws:"Disable sync with AWS",disable_sync_with_aws_desc:"This will remove saved key in server. Please ensure you have already export your key.",input_independent_password:"Input independent password",change_independent_password:"Change independent password",password_error:"Password error",password_invalid:"Password invalid",key_existed:"Key existed",key_not_found:"Key not found",library_recommend:"Library recommend",show_all_channels:"Show all channels in library recommend page",not_logged_in:"Not logged in",login_to_continue:"Login to continue",mnemonic_code:"Mnemonic code",wordlist:"Wordlist",restore_code:"Restore from code",generate_code:"Generate code",export_mnemonic_code:"Export mnemonic code",import_mnemonic_code:"Import mnemonic code",print:"Print",save_as_txt:"Save as txt",save_as_pdf:"Save as pdf",from_file:"From file",not_valid_mnemonic_code:"This is not a valid mnemonic code",cannot_parse_code_as_key:"Cannot parse this mnemonic code as library key",import_key_hint:"Are you sure to import this key? This will recover your old key in library.",import_key_confirm:"Yes, import it.",library_preload:"Preload tasks from library",show_preload:"Show preload tasks",set_download:"Set download directory",set_download_desc:"For macOS App Store version, the default download directory is in App's sandbox, and will be deleted after app uninstalled. If you want to keep your download files, you need to select a different download directory manually."};const S=r.a.displayName;var C={home:"Home",home_caption:"Download/Upload and Media Files",library:"Library",library_caption:"Explore media resources",player:"Player",player_caption:"Media Player",credits:"Credits",credits_caption:"Check Account Balance",account:"Account",account_caption:"Sign In/Sign Up/Management",settings:"Settings",settings_caption:"Settings for App, Player, Account",development:"Development",development_caption:"Developer Mode for Internal Use",basic:"Basic",basic_caption:"Basic Settings",advanced:"Advanced",advanced_caption:"Advanced Settings",blockchain:"Wallet",blockchain_caption:`${S} Decentralized Wallet`,internal_notice:"Internal Release Notice",release_notes:"Release notes",terms_and_conditions:"Terms and Conditions",license_and_listen_notices:"License and Listen Open Source Notices",close:"Close",success:"Success",fail:"Fail"},x={credits:"Credits",pay:"Pay",pay_with_credit:"Pay for download accelerating. Needs about {0} credit",pay_with_credit_payed:"Accelerating. Still needs about {0} credit",create_payment:"Create Payment",pay_target:"Target",pay_for_torrent:"Pay for {0}",your_subid:"Your subId",your_credits:"Your credits",pay_point_for_data:"Pay {0} point for {1} data",auto_renew:"Enable auto renew",transaction_details:"Transaction Details",transaction_id:"Id",transaction_payer:"Payer",transaction_payee:"Payee",transaction_category:"Category",transaction_changed_amount:"Changed Amount",transaction_meta:"Meta",transaction_status:"Status",transaction_creation_time:"Creation Time",receipt_code:"Receipt Code",transfer_amount:"Transfer Amount",code_the_receipt_code:"Copy the receipt code below to the payer",fill_the_receipt_code:"Transfer by filling in the payment code provided by the payee",income:"Income",expense:"Expense",copied:"Copied",transfer:"Transfer",receive:"Receive",copy:"Copy",withdraw_fund:"Withdraw Fund",category_paydata_payer:"Cost of data",category_paydata_payee:"Income of data",category_transfer:"Transfer",category_bonus:"Bonus",category_recharge:"Recharge",status_pending:"pending",status_completed:"completed",status_finish:"finish",status_failed:"failed",tip_invalid_receiver:"Invalid receiver code",tip_invalid_amount:"Credit amount should be an float in the range 0-1000 (Minimum precision is 0.001)",credit_get_more:"Get more credits",credit_no_data:"No data available",credit_loading:"Loading...",credit_not_enough_amount:"Not enough credits",credit_amount_not_enough:"Not enough credits",credit_payee_not_exist:"Payee does not exist",credit_invalid_amount:"Invalid credit amount",credit_can_not_transfer_to_yourself:"Can not transfer to yourself",credit_latest:"Latest",credit_error_network:"There is a problem with the network, please try again later","payer credit amount is not enough":"Not enough credits","payee does not exist":"Payee does not exist"},$={account_email_invalid_address:"Invalid email address",account_email_invalid_domain:"Invalid email domain",account_email_unknown_status:"Unknown email delivery status",account_email_unavailable_address:"Unavailable email address",account_email_suppressed_address:"Suppressed email address",account_loading:"Loading...",account_is_required:" is required",account_sign_in_your_account:"Sign in",account_username:"Username",account_username_email_phone:"Phone number or email",account_password:"Password",account_new_password:"New password",account_re_enter_password:"Re-enter password",account_password_not_equal:"Two passwords are not equal",account_new_password_same:"The password is the same as the original password",account_forgot_your_password:"Forgot your password? ",account_reset_password:"Reset password",account_sign_in:"Sign in",account_signed_in:"Signed in",account_sign_up:"Sign up",account_find_your_account:"Find your account",account_enter_your_username:"Enter your phone number or email",account_search:"Search",account_email_sent_tip:"An email with a verification code has been sent to your email: ",account_phone_sent_tip:"A SMS with a verification code has been sent to your phone: ",account_email_phone_sent_tip:"Email and SMS with verification code have been sent to your email and phone respectively:",account_software_token_tip:"MFA is enabled for your account. To finish signing in, please turn on or view your device and type the TOTP",account_reset_your_password:"Reset your password",account_verification_code:"Verification code",account_resend_code:"Resend code",account_code_has_been_resent:"Verification code has been resent",account_password_has_been_reset:"Password has been reset",account_submit:"Submit",account_sign_up_your_account:"Sign up your account",account_fill_required_fields:"Fill in the required fields below.",account_fill_optional_fields:"Fill in the optional fields below.",account_email:"Email",account_invitation:"Invitation",account_invitation_code:"Invitation code",account_i_accept:"I accept ",account_license_terms:"the license and terms",account_next:"Next",account_you_need_to_accept_license_terms:"You need to accept the license and terms first.",account_verify_fill_optional_fields:"Verify and fill in optional fields.",account_nickname:"Nickname",account_gender:"Gender",account_male:"Male",account_female:"Female",account_not_say:"Not say",account_birthday:"Birthday",account_phone_number:"Phone number",account_locale:"Locale",account_tip_verified:"Verified, Signing in...",account_verified:"verified",account_unverified:"unverified",account_signed_up:"Signed up",account_verify_your_identity:"Verify your identity",account_finish:"Finish",account_signed_out:"Signed out",account_change_password:"Change password",account_change_email:"Change email",account_change_phone_number:"Change phone number",account_sign_out:"Sign out",account_current_password:"Current password",account_re_enter_new_password:"Re-enter new password",account_personal_information:"Information",account_edit:"edit",account_reset:"reset",account_greeting:"Hello,",account_cancel:"Cancel",account_change:"change",account_not_set:"not set",account_setting:"setting",account_copy_code:"copy the code",account_account_setting:"Account",account_task_page:"Credit task",account_setting_caption:"Change Password / Edit Information",account_security:"Security",account_want_to_join:"Want to Join?",account_sign_in_now:"Sign in",account_changed:"Changed",account_clipboard_with_invitation_code:"Invitation code copied",account_clipboard_with_code:"The Code copied",account_invitation_code_dialog_tip:"You will send your friend an email or text message with an invitation code:",account_available:"available",account_invited:"invited",account_used:"used",account_invitation_code_sent:"Invitation code has been sent",account_invitation_channel_required:"Fill in at least one invitation channel",account_no_verification_code:"Can not receive verification code? ",account_no_phone_number:"No phone number? ",account_sign_up_by_email:"Sign up by email",account_no_email:"No email? ",account_sign_up_by_phone_number:"Sign up by phone number",account_no_totp:"No TOTP? ",account_tip_no_totp:"If there is no TOTP, please setup TOTP first",account_setup_totp:"Setup TOTP",account_contact_information:"Contact information",account_delete_account:"Delete account",account_deleted:"Deleted",account_can_not_mfa:"MFA in trouble? ",account_set_mfa_type:"Config MFA",account_disable_mfa:"Disable MFA",account_disabled_mfa:"Disabled MFA",account_sms_mfa:"SMS MFA",account_totp_mfa:"TOTP MFA",account_totp:"TOTP",account_not_recommend:"Not Recommend",account_oauth_sign_in_with:"Sign in with {provider}",account_sign_in_failed:"Failed to sign in",account_tip_oath_sign_up:"The email corresponding to the current {provider} account: {email} has not yet created an account",account_tip_confirm_delete_account:"Enter the current account password to confirm that you want to delete the current account.(Deleted accounts cannot be restored)",account_tip_config_mfa:"You can choose to use SMS or time-based one-time password (TOTP) as secondary authentication",account_error_can_not_enable_mfa:"You must bind your email address and mobile phone number to enable MFA",account_tip_can_not_enable_sms_mfa:"You must bind your email address and mobile phone number to enable SMS MFA",account_tip_can_not_enable_totp_mfa:"You must bind your email address and mobile phone number to enable TOTP MFA",account_tip_setup_totp:"Use apps such as Authenticator to scan the QR code below or copy the code manually to add a security token",account_tip_verify_totp:"Verify your TOTP",account_link_your_social_account:"Bind your social account",account_unlink_your_social_account:"Unbind social account",account_tip_confirm_link:"Are you sure you want to bind the current account to your {provider} account?",account_tip_confirm_unlink:"Are you sure to cancel your bound {provider} account?",account_tip_linking:"binding...",account_tip_unlinking:"Unbinding...",account_linked:"Bound",account_unlinked:"Unbound",account_error_can_not_link_to_the_linked_account:"The current social account is bound to another account",account_error_can_not_link_to_the_mismatched_email:"The current account and the social account email address are inconsistent",account_error_can_not_link_before_email_verified:"The social account cannot be linked because the current account is not bound to a verified email",account_tip_confirm_verify_email_phone:"Whether to send a verification code to the current account's email and phone number to verify your identity?",account_tip_confirm_verify_phone:"Whether to send a verification code to the current phone number to verify your identity?",account_error_1_message_60_seconds:"Only one SMS or email can be sent every 60 seconds, wait another {delta} seconds",account_error_10_messages_per_day:"Each mobile phone or email can only send 10 messages within 24 hours",account_error_network:"There is a problem with the network, please try again later","Network Error":"There is a problem with the network, please try again later",account_error_user_not_exist:"User does not exist",account_error_incorrect_username_or_password:"Incorrect username or password",account_error_incorrect_original_password:"Incorrect original password",account_error_incorrect_password:"Incorrect password",account_error_username_not_found:"Username not found",account_error_can_not_reset_for_no_verified:"Can not reset password for the unverified account",account_error_invalid_verification_code:"Incorrect verification code, please try again",account_error_expired_verification_code:"Verification code expired, please try again",account_error_password_not_long_enough:"Password is not long enough",account_error_attempt_limit_exceeded:"Attempt limit exceeded, please try after some time.",account_error_password_attempts_exceeded:"Password attempts exceeded.",account_error_invalid_phone_number_format:"Invalid phone number format",account_error_no_cell_phone_prefix:"Please select the prefix for the phone number",account_error_username_already_exists:"The username already exists",account_error_you_need_to_accept_license_terms:"You need to accept the license and terms first",account_error_inactive_code:"The invitation code is not an activated code",account_error_non_existent_code:"The invitation code is non-existent",account_error_unexpected:"Unexpected Error",account_error_can_not_change_email_before_phone_bound:"The email cannot be changed before the phone number is bound",account_error_can_not_change_email_before_unbound_social_account:"The email cannot be changed before unbinding the social account",account_error_can_not_change_phone_before_email_bound:"The phone number cannot be changed before the email is bound",account_error_not_supported_yet:"Not supported yet",account_error_can_not_change_email_phone_with_mfa_enabled:"Cannot change email or mobile phone number before disable MFA",account_error_same_email:"The new email address cannot be the same as the original email address",account_error_same_phone:"The new phone number cannot be the same as the original phone number",account_error_email_not_exists:"Email address does not exist",account_error_email_already_exists:"An account with the given email already exists.",account_error_phone_already_exists:"An account with the given phone number already exists.",account_error_mfa_token_mismatch:"Software Token Code mismatch",account_error_recaptcha_not_loaded:"There is a problem with the network. Please reconnect the network and restart the application to try again.",account_error_recaptcha_validation_failed:"ReCAPTCHA validation failed. Please reconnect the network and restart the application to try again.",account_error_sign_in_in_progress:"Pending sign-in attempt already in progress",account_field_range:"Limit input of {0}-{1} characters",account_field_only_alphanumeric:"Only supports alphanumeric",account_field_only_alphanumeric_and_symbol:"Only supports alphanumeric and symbols",account_field_only_chinese_alphanumeric_space_underline:"Only supports alphanumeric, space, underscore",account_field_prefix_without_number_space:"The first character cannot be a number or a space",account_field_suffix_without_space:"Cannot end with a space",account_field_without_repeat_space:"Cannot use multiple spaces in a row",account_field_can_not_only_alphanumeric:"You can't just use letters or numbers",account_field_must_have_number_characters:"Must have number characters",account_field_verification_code:"Verification code must be six digits",account_field_invitation_code:"Invitation code must be alphanumeric",account_field_phone_number:"Invalid phone number format",account_invalid_email_format:"Invalid email format",account_sign_out_confirm:"Are you sure to sign out? This will stop all tasks.",account_sign_out_anyway:"Sign out anyway",account_signing_out:"Signing out...",account_request_save_settings:"Settings are not saved. You need to save changes before sign out.",invalid_password_format:"Invalid password format",invalid_password_format_same:"The password is the same as the original password",error_password:"Password error",keychain_setting:"Keychain",setting_description:"Cloud storage: Save key data to the cloud.\nChange password: Change the password for the media library key.\nMnemonic: an alternative method for generating and restoring keys.\nImport Local Key: Import the locally saved key into the media library.\nExport Key: Saves the current media library data to the local or cloud.\nBackup key to cloud: Update the current media library data to the cloud for backup.",refresh_status:"Update Status",confirm_import_key:"Confirm import key",confirm_update_cloud_key:"You already have a key in the cloud. Updating the key will overwrite the original key. Are you sure you want to update the key stored in the cloud",export_key_with_cloud:"Enter the independent password you set to export the library key stored in the cloud, and lock the key file by the unlock password",store_cloud_key_prompt_password:"Enter an independent password to store the library key in the cloud",update_cloud_key_prompt_password:"Set an independent password to encrypt the library key then update it to the cloud",enable_cloud_storage_prompt_password:"Set a password for the key stored in the cloud, through which you can retrieve the key from the cloud",input_unlock_password:"Set unlock password",export_local_prompt_password:"Pleasse set an unlock password to encrypt your key file. We will not save this password for you, so if you loss your password, you will be not able to unlock your library key",require_unlock_password:"The key file is locked, please enter the unlock password",require_independent_password:"Enter the independent password to get the key stored in the cloud",import_local_prompt_password:"The key file is locked, please enter the unlock password",select_encrypt_mode:"Select encryption mode",input_independent_password:"Enter independent password",update_cloud_key:"Update the key stored in the cloud",backup_to_cloud:"Backup the library key to the cloud",save_local:"Save the library key as local encrypted file",create_new_key:"Create a new library key",creating_lib_key:"Creating library key...",loading_lib_key:"Loading library key...",failed_to_create_lib_key:"Failed to create library key",failed_to_load_lib_key:"Failed to load library key",import_local_key:"Import key locally",import_lib_key_from_local:"Import a library key Locally",import_from_cloud:"Import the library key from the cloud",create_or_import_key:"Create or import library key",create_or_import_key_desc:"Library key is an independent key used to fetch and publish contents with decentralized database.",store_your_lib_key:"Store your library key",export_cloud_key:"Export Key from Cloud",export_current_key:"Export Current Key",change_password:"Change Password",enable_cloud_storage:"Enable cloud storage",disable_cloud_storage:"Disable cloud storage",disable_cloud_storage_desc:"Disable cloud storage will remove the key saved in the cloud, please ensure the key is saved locally",sync_at:"Sync at: {time}",keychain_sync_status:"Keychain Sync Status",cloud_storage_enabled:"Sync Keychain with {storage}",cloud_storage_disabled:"Cloud storage disabled",saved_locally:"Saved locally",export_key:"Export key file",cloud_independent_password:"Cloud independent password",key_file_unlock_password:"Key file unlock password",re_enter_unlock_password:"Re-enter unlock password",independent_password_not_enabled:"The current password is the Alphabiz account password (no independent password is set)",use_cognito_hash:"Use Alphabiz account password",use_independent_password:"Use independent password",keychain_lib:"library key",loading_keychain_state:"Loading keychain...",backing_up:"Backing up...",backup_current_key:"Backup current key to Cloud",cloud_lib_key_not_existed:"library key does not exist in Cloud",open_keychain_file:"Open Keychain File",confirm_open_abk:"Do you want to open the ABK file",use_the_key:"Use the key",backup_the_key:"Backup the key to the cloud",keychain_data_does_not_exist:"Keychain data does not exist","timeout of 0ms exceeded":"There is a problem with the network, please try again later",XhrError:"There is a problem with the network, please try again later"},T={add_subtitles:"Add Subtitles",open_file:"Open File...",advanced_options:"Advanced options",title:"title",location:"location",subtitle_file:"subtitle file",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"The default video player is not set",this_is_an_audio_file:"This is an audio file",the_added_subtitle_already_exists:"The added subtitle already exists",stop_stream_player:"The streaming media was terminated because the task was paused or deleted",stop_player:"The player was terminated because the file was deleted",playing_timeout_hint:"Wait times out. Please check the task",autoplay_hint:"Autoplay may blocked by your browser. If the player is not playing, try click the screen to continue",remove_playing_confirm:"{0} is still playing, remove it will stop the player. Are you sure to remove it?",subtitle:"Subtitle",setting:"Setting",loading:"Loading",unknown_media:"Unknown Media",settings_button_visible:"Button Visible",settings_setting:"Setting",settings_playback_rate:"Playback Rate",settings_subtitle:"Subtitle",settings_pip:"PiP",settings_fullscreen:"Fullscreen",settings_subtitle_options:"Subtitle Options",settings_normal:"Normal",settings_italic:"Italic",settings_lighter:"Lighter",settings_bolder:"Bolder",settings_small:"Small",settings_large:"Large"};const z=r.a.displayName;var P={lib_index:"Home",lib_edit:"Publish",lib_publish:"Publish",lib_explore:"Explore",lib_following:"Following",lib_favorite:"Local Favorites",lib_local_favorites:"Local Favorites",lib_channel:"Channel",lib_submit:"Submit",lib_from_network:"Using decentralized database from network",welcome_to_lib:`Welcome to ${z} Media Library`,register_or_login:"Register/Login",lib_recommend:"Recommend",lib_recommend_desc:`Welcome to ${z} Library! This library uses decentralized database from network. To start using it, you need to follow some channels.`,follow_any_channel_to_continue:"Follow any channel to continue",follow_channels_and_continue:"Follow {0} channels and continue",show_more_for_me:"Show more for me",no_more_recommend:"No more recommend",key:"Key",create_key:"Create key",save_key:"Save key",save_key_file:"Do you want to save your key as file?",import_key:"Import key",import:"Import",invalid_key:"Invalid key",back_to_top:"Back to top",search_for_channel:"Search for channel ID",search_channel_no_result:"Cannot find channel with ID {0}",please_input_channel_id:"Please input channel ID",welcome_help_text:"\n This is a decentralized media library. You need\n to create an account for this database. We will\n generate a personal key for you automatically.\n If you have already had a key, you can also import\n it here.",welcome_key_text:"\n Once you logged in, please click [SAVE KEY] button\n in the right-bottom corner to save your private key.\n If you loss your key, you may not able to login again.",redirect_to_recommend:"It seems you had not followed any channel. Redirecting to [Explore] page.",channel:"Channel",follow:"Follow",unfollow:"Unfollow",following:"Following",share:"Share",unfollow_confirm:"Are you sure to unfollow this channel? All posts of this channel in your timeline will be removed.",follow_failed_hint:"Operation is still pending in background. If the operation is not applied for a long time, please restart app and try again.",block:"Block",unblock:"Unblock",blocked:"Blocked",block_channel:"Block this channel",block_channel_confirm:"Block channel will remove it from your timeline. You can manage your block list in account setting.",block_creator:"Block the creator of this channel",unblock_creator:"Unblock the creator of this channel",block_creator_confirm:"Block creator will remove all channels created by this creator from your timeline. You can manage your block list in account setting.",share_url_copied:"Share URL is copied to your clipboard",follow_time:"Follow time",update_time:"Update time",search:"Search",type:"Type",added:"Added",click_to_task:"Click to go to task",lib_already_added:"You have already added this video",description:"Description",poster:"Poster",channel_poster:"Channel poster",preview:"Preview",creator:"Creator",creator_detail:"Creator detail",loading_creator:"Loading creator info",wait_for_creator_loaded:"Please wait for creator info loaded.",follower:"Follower",followers:"Followers",follower_list:"Follower list",user:"User",channel_title:"Channel title",channel_id:"Channel ID",post_title:"Post title",post_id:"Post ID",import_data_from_excel:"Import data from excel",set_excel_keys:"Set excel keys",excel_import_succeded:"Excel import succeded",excel_import_success_msg:"{0} rows are ready to add, {1} invalid and {2} duplicated items are ignored",cannot_find_channel:"Cannot find channel",cannot_find_posts:"Cannot find posts",add_channel:"Add channel",add_post:"Add post",edit_channel:"Edit channel",channel_setting:"Channel setting",edit_post:"Edit post",edit_posts:"Edit posts",channel_detail:"Channel detail",remove:"Remove",remove_channel:"Remove channel",remove_channel_confirm:"Are you sure to remove this post? This cannot be recovered.",remove_post:"Remove post",remove_post_confirm:"Are you sure to remove this channel? This cannot be recovered.",preview_mode:"Preview Mode",preview_mode_desc:"This is a preview of your channel. All rates of films are shown here.",edit_user_profile:"Edit user profile",name:"Nickname",avatar:"Avatar",no_following:"No following channels. Click to goto",no_recommend:"No recommend channels. Click to goto",first_recomment_msg:"It may take a while if this is the first time app launched.",invalid_image:"Invalid image",image_not_reachable:"This image url is not reachable.",channel_not_found:"Channel not found",cannot_get_channel_info:"Cannot get channel info. This channel may be removed by its creator and no longer available.",validate_error:"Validate error",validate_user_name_no_space:"User name should not contain spaces",validate_url_no_space:"URL should not contain spaces",validate_user_name_length:"User name should have length between {0} and {1}",validate_user_desc_length:"User description should not be more than {0} characters",validate_user_avatar_url:"User avatar should be url with less than 2048 characters",validate_channel_title_length:"Channel title should have length between 1 and 100",validate_channel_desc_length:"Channel description should have length between 10 and 300",validate_channel_image_url:"Channel preview should be url with less than 2048 characters",validate_post_title_length:"Post title should have length between 1 and 100",validate_post_desc_length:"Post description should have length between 10 and 300",validate_post_image_url:"Poster should be url with less than 2048 characters",validate_post_url:`Invalid ${z} URL`,validate_post_url_length:`${z} URL should not be more than 2048 characters`,film_rate:"Film rate",set_film_rate:"Set film rate",select_a_rate_before_enter:"You need to select a film rate before enter media library.",library_available_rate:"Library available film rate",rate_g:"G – General Audiences",rate_g_desc:"All ages admitted. Nothing that would offend parents for viewing by children.",rate_pg:"PG – Parental Guidance Suggested",rate_pg_desc:'Some material may not be suitable for children. Parents urged to give "parental guidance". May contain some material parents might not like for their young children.',rate_pg_13:"PG-13 – Parents Strongly Cautioned",rate_pg_13_desc:"Some material may be inappropriate for children under 13. Parents are urged to be cautious. Some material may be inappropriate for pre-teenagers.",rate_r:"R – Restricted",rate_r_desc:"Under 17 requires accompanying parent or adult guardian. Contains some adult material. Parents are urged to learn more about the film before taking their young children with them.",rate_nc_17:"NC-17 – Adults Only",rate_nc_17_desc:"No One 17 and Under Admitted. Clearly adult. Children are not admitted.",set_as_private:"Set as private",hide_in_explore:"Hide this channel in explore page",hidden:"Hidden",select_a_rate:"Please select a film rate",select_from_tasks:"Select from tasks",import_from_magnet:`Import from ${Object(m["a"])()?"link":"magnet:?"}...`,input_magnet_url:`Input ${Object(m["a"])()?"link":"magnet:?"} url`,task_title:"Task title",set_title:"Set title",add_to_local_favorites:"Add to local favorites",remove_from_local_favorites:"Remove from local favorites",removed_favorite:"Removed favorite ",import_or_export_favorites:"Import/Export Favorites",export_local_favorites:"Export local favorites as backup",import_favorites_file:"Import favorites file",not_a_favorite_file:"This file is not a favorite backup file",connection_status:"Connection Status",gun_server_list:"Cache Nodes",custom_nodes:"Custom cache nodes",custom_nodes_hint:"Custom cache nodes will be applied after app relaunch",wait_for_reboot:"Waiting for reboot...({seconds}s)",reboot_now:"Reboot now",reboot_later:"Reboot later",peer_list:"Direct Nodes",server:"Node URL",peer:"Peer",peer_id:"Node ID",connection:"Connection",data_source:"Data Source",sync:"Sync",syncing:"Syncing",sync_completed:"Sync completed",got_all_post:"You have already got all posts",placeholder_channel_title:"Your Channel Name",placeholder_channel_desc:"Description about this channel",placeholder_post_title:"Movie Name (Year)",placeholder_post_desc:"Description about this movie",private_channel:"Private channel",creator_blocked:"Creator blocked",go_to_library:"Go to library?",go_to_library_channel_msg:"Do you want to go to the library channel {0}?",magnet_does_not_have_name:`This ${Object(m["a"])()?"link":"magnet:?"} url does not have a name, you need to add a post title first.`,no_available_post:"No available post",following_channel_no_post:"All your following channels do not have available post. This may caused by network error. If you have already followed some channels, the posts may be loaded later.",share_to_library:"Share to library",quick_start:"Quick start",quick_start_desc:"Start creating a post with a task or file",select_file:"Select file...",select_folder:"Select folder...",post_options:"Post options",channel_options:"Channel options",create_new_channel:"Create new channel",use_existed_channel:"Use existed channel",select_existed_channel:"Select existed channel",uploaded_by:"{title} uploaded by {name}",created_by:"{title} created by {name}",creating_new_channel:"Creating new channel...",created_new_channel:"New channel created",creating_new_post:"Creating new post...",created_new_post:"New post created",create_new_post:"Create new post",quick_start_timeout:"{0} timeout. This may be caused by network error. Please try again later.",file_too_large:"File too large",file_too_large_msg:"This file is larger than 4GB ({size}) and may take a long time preparing task. Are you sure to continue?",resolving_folder_files:"Resolving folder files...",folder_too_large:"Folder too large",folder_too_large_msg:"The files in this folder are larger than 4GB ({size} total) and may take a long time preparing task. Are you sure to upload?",creating_new_task:"Creating new task...",cannot_create_task:"Cannot create task",cannot_create_task_msg:"This may cause by some error. If the task is created correctly, you can check for task list later.",cannot_get_task_name:"Cannot get task name. You need to input one first.",remove_old_task:"Remove old task",remove_old_task_desc:"Web mode can only create one task at once. Do you want to remove old task?",subtitle_list:"Subtitle list",optional:"optional",with_subtitle:"With {language} subtitles",maximumSubtitleNum_limit:"The number of subtitles has reached its maximum",add_subtitle_url:"Add subtitle download link",cannot_add_subtitle:"Failed to add subtitles",cannot_add_subtitle_msg:"Subtitle language not selected or invalid download link.",support_subtitle_type:"Only subtitles in srt and vtt format are supported.",recommend_opensubtitles:"It is recommended to use the subtitle download link or id at www.opensubtitles.org.",take_down:"Take down",serious_violation:"Serious Violation",copyright_disputes:"Copyright Disputes",adults_only:"Adults Only",takedown_reason:"Takedown reason",takedown_mode:"Takedown mode",admins:"Admins",takedown_user:"Takedown this creator",takedown_channel:"Takedown this channel",takedown_post:"Takedown this post",select_takedown_reason:"Select takedown reason",takedown_invalid_reason:"Invalid takedown reason",takedown_invalid_user_id:"Invalid user id. Id should include 87 characters",takedown_invalid_channel_id:"Invalid channel id. ID should include 20 characters",takedown_invalid_post_id:"Invalid post id. ID should include 20 characters",takedown_management:"Take down management",users:"Users",channels:"Channels",posts:"Posts",you:"You",preset:"Preset",admin:"Admin",committee:"Committee",about_takedown_mode:"About takedown mode:\nPreset: Configured in github repository. All of them will be removed from library.\nAdmin: Any one of admins votes for will be removed.\nCommittee: At least half of admins vote for will be removed.",cannot_edit_preset:"You cannot edit this row since it is a preset row",cannot_edit_not_vote:"You cannot edit this row since you have not voted for it",remove_vote:"Remove your vote",post_preload_failed:"Failed to preload this post. The download link may be out-of-date, so this post cannot be played immediately.",about_cache_node:"About cache node",edit_cache_node:"Edit cache node",create_cache_node:"Create cache node",about_cache_node_desc:`${r.a.displayName} uses gun server as cache node. You can edit custom nodes in advance setting`,learn_how_to_deploy_gun:"Learn how to deploy your own gun server",library_setting:"Library setting",block_list_manage:"Block list manage",blocked_users:"Blocked users",blocked_channels:"Blocked channels",unblock_user:"Unblock user",unblock_channel:"Unblock channel",no_blocked_user:"No blocked user",no_blocked_channel:"No blocked channel",field_required:"{0} is required"};const A=r.a.displayName,I={unsupported_in_browser:"Not supported in browser mode yet",client:"Client",warning:"Warning",enable:"Enable",disable:"Disable",auto:"Auto",encrypt_connection:"Encrypt connection",encrypted_connection:"Encrypted connection",non_encrypted_connection:"Non-encrypted connection",connected_wires_not_disconnect:"Connected wires will not be disconnected",audio:"audio",video:"video",image:"image",subtitle:"subtitle",zip:"zip",text:"text",unknown:"unknown",add:"Add",undo:"Undo",backup:"Backup",not_default_app:`${A} is not your default app for torrent and media, do you want to set as default?`,dont_show_again:"Don't show again",go_to_settings:"Go to settings",about_alphabiz:`About ${A}`,last_check_at:"Last check at",update_channel:"Update channel",check_for_update:"Check for update",checking_for_update:"Checking for update...",no_update_available:"No update available",update_available:"Update available",update_now:"Update now",update_later:"Update later",click_to_update:"Click UPDATE NOW button to download and update",update_failed:"Update failed",update_failed_message:"An error occured while updating: ",check_shasum_failed:"Failed to check integrity for installer",downloading_update:"Downloading update...",ready_to_update:"Ready to update",restart_to_update:`Update is downloaded. ${A} will exit to update for a few moment.`,already_latest:"Current version({0}) is already latest",update_timeout:"Update timeout",no_available_release:"No available release",no_available_installer:"No available installer",feedback:"Feedback",select_a_type:"Select a type",category:"Category",select_a_category:"Select a category",title:"Title",require_title:"Title is required",describe_your_problem:"Describe your problem",report_a_bug:"Report a bug",request_a_new_feature:"Request a new feature",download_or_upload:"Download/Upload",others:"Others",submit_with_system_info:"Submit with system info",submit_feedback:"Submit feedback",tweet_us:"Tweet us",tweet_too_long:"Tweet is too long",delete_characters:"Please delete at least {0} character(s)",rest_characters:"You can input {0} more character(s)",update_alphabiz:`Update ${A}`,current_version:"Current version",cancel_update:"Cancel update",slow_download_speed:"Download too slow",slow_download_speed_caption:"The installer download is too slow now. Please check the network status",update_canceled:"Update canceled",current_version_release_time:"Release time of current version",expired_app:`${A} Expired`,version_out_of_date:"Version out of date",have_to_update:`The version of ${A} is out of date. Some protocols or APIs are deprecated. You have to update ${A} before continue.`,exit_alphabiz:`Exit ${A}`,exit_and_update:"Exit and apply update",new_version_hint:"New version is available",no_new_version:"No new version available",current_is_latest:"Current version is already latest",click_to_check_update:"Click [CHECK FOR UPDATE] button to check for update",download_latest_version_from_website:"Please visit the official website to download the latest version",to_the_website:"To the website",network_diagnotic:"Network Diagnotic",diagnotic:"Diagnotic",click_to_check:"Click to check",click_to_check_again:"Click to check again",checking:"Checking",online:"Online",offline:"Offline",dns_look_up:"DNS look up",error:"Error",aws_service:"AWS Service",network_pings:"Network Ping",not_found:"Not Found",packet_loss:"Packet(s) loss",official_site:"Official Site",download_test:"Download Test",connected:"Connected",test_task:"Test Task {0}",download_failed:"Download failed",second_spend:"{0} s spend",open_default_player_failed:"Failed to open the default player",copied_to_clipboard:"Copied to clipboard",go_to:"Go to",region_not_available:"Region not available",region_not_available_message:"Sorry! Your region is not available to use this app. This app will quit after {0} seconds",confirm:"Confirm",no_available_result:"No available result"};var q={...P,...w,...k,...C,...$,...x,...T,...I};const O=r.a.displayName;var E={repeat_add:"任務已添加,請勿重複添加",upload:"上傳",download:"下載",delete:"刪除",delete_task:"刪除任務",delete_confirm_message:"是否刪除該任務? 此操作不可恢復",also_delete_files:"同時刪除文檔",default_delete_files:"刪除任務時默認刪除已下載的文件",not_now:"暫不處理",delete_autoupload_confirm:"此任務檔位於自動上傳資料夾, 刪除任務將同時刪除對應檔",delete_anyway:"仍要刪除",upload_too_many_files:"上傳檔過多",ask_if_unlimit_upload_amount:"自動上傳資料夾包含過多檔. 是否取消上傳數量限制? *此操作可能造成性能問題",disable_limitation:"取消限制",not_length:"暫不支持,多檔操作,請配合",download_torrent:"下載該任務",upload_torrent:"上傳該任務",files:"文件",file:"文件",folder:"資料夾",start_all:"全部開始",pause_all:"全部暫停",remove_all:"全部移除",upload_all:"全部上傳",clear_history:"清除歷史",pause_all_finish_payments:"此操作將完成所有已支付的訂單.",accelerating:"加速中",link_task:"連結任務",torrent_task:"文件任務",ok:"好的",cancel:"取消",download_directory_position:"下載目錄位置",torrent_file:"任務檔",magnetic_link_incorrect:"連結格式不正確",delete_fail:"刪除失敗",pause:"暫停",paused:"已暫停",stop_torrent:"結束任務",seed:"上傳",resume:"繼續",downloading:"下載中",downloaded:"下載完成",uploading:"上傳中",auto_uploading:"自動上傳中",uploaded:"上傳完成",pending:"等待其他任務完成",no_downloading_task:"沒有下載中任務",remove_all_downloading_tasks:"是否移除所有下載中任務?",remove_all_upload_tasks:"是否移除所有上傳任務?",remove_autoupload_files:"移除所有自動上傳任務",remove_all_history:"是否移除歷史下載記錄?",verifying:"驗證文件",waiting_for_verify:"等待驗證文件",seeding:"上傳中",completed:"已完成",status:"狀態",task_name:"任務名",size:"大小",progress:"進度",sort:"排序",ascending:"昇冪",descending:"降冪",file_loading:"檔載入中",loading:"載入中",unknown_status:"未知",play_while_downloading:"邊下邊播",upload_or_play:"上傳 / 播放",play:"播放",ask_if_upload_file:"是否上傳檔?",ask_if_upload_or_play:"是否上傳/播放檔?",torrent_error:"添加任務時遇到錯誤:",no_peers:"多次嘗試後仍未能與Peers建立連接",torrent_exists:"任務已存在",show_origin_torrent:"顯示原始任務檔或連結",show_directory:"打開文件所在位置",task_num:"任務數",total_upload_speed:"上傳速度",total_download_speed:"下載速度",path_missing:"Error: 找不到檔位置",origin_not_found:"獲取任務資訊失敗",text_copied:"連結已複製到剪貼板",copy_magnet_uri:"複製連結位址",copy_download_uri:"複製下載連結",copy_share_uri:"複製社交分享連結",uri_copied:"連結已複製至剪貼板",uri_copy_failed:"複製連結失敗",more:"更多",toggle_list_mode:"切換顯示模式",comment:"評論",operations:"操作",open_directory:"打開所在資料夾",remaining:"剩餘時間",created_time:"創建時間",used_time:"用時",completed_time:"完成時間",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分檔缺失.",common_peer:"普通用戶",ab_peer:`${O} 用戶`,ab_peer_verified:`${O} 註冊用戶`,ab_peer_available:`${O} peer 可用`,alphabiz_accelerating:`${O} 加速中`,income:"收入",income_info:"收入(今天/總計)",total_income_info:"收入: {0}(今天) / {1}(總計)",login_to_see_income:"登陸以查看收入統計",credit_cost:"積分支出",downloaded_by_payment:"付費下載量",file_not_found:"無法找到本地檔",no_task:"無任務",no_matched_task:"無法找到匹配的任務",space_not_enough:"磁盤空間不足",need_more_space:"需要 {0} 磁盤空間, 磁盤空間僅剩 {1}, ({2} 為保留空間). 所有任務已暫停. 媒體庫預加載已禁用. 您可以在[設置 - 進階設置]中重新啟用.",seeders:"做種",last_update:"最後更新",connecting:"連接中",connected:"已連接",request_timed_out:"請求超時",connection_failed:"連接失敗",invalid_download_url:"下載鏈接錯誤",download_link:"下载鏈接",empty_files:"目錄中沒有文檔",duplicate_task:"重複任務",duplicate_tracker:"重複 tracker",this_task_not_ready:"此任務尚未就緒,暫停任務將直接刪除該任務",some_task_not_ready:"部分任務尚未就緒,暫停這些任務將直接刪除它們",failed_to_delete_files:"刪除文件失敗",failed_to_delete_files_desc:"無法刪除部分任務文件,可能需要手動刪除",unknown_error:"未知錯誤: {0}",more_files_are_not_shown:"(出於性能考慮,{0} 個文件未顯示",no_available_file:"没有可用的文件,请等待任務就绪",service_worker_error:"無法加載 ServiceWorker。您的瀏覽器可能不支援此特性,或 ServiceWorker 尚未就緒。請刷新頁面後再試",add_task_first:"請先添加任務",player_task_time:"播放器等待時間過長,請檢查任務是否就緒 ",web_mode_hint:`${O} Web 僅支援 WebRTC 種子。下載 ${O} 桌面版以獲得最佳體驗。`,web_mode_task_hint:"點擊下方按鈕創建任務。Web 模式下僅可同時創建一個任務。",save_to_local:"保存到本地",save_as_zip:"保存為 ZIP",creating_save_file:"正在創建文件...",upload_as_one_directory:"作為一個文件夾上傳",upload_as_single_files:"作為單獨的文件上傳",web_mode_upload_single:"Web 模式下只能上傳單個文件",download_success:"下載成功",download_fail:"下載失敗",wait_for_downloaded_to_share:"請等待下載完成後再分享。",download_with_cellular:"使用蜂窩數據下載",download_with_cellular_desc:"您正在使用蜂窩數據,下載時營運商可能會收取額外的費用。",download_with_cellular_confirm:"仍然使用蜂窩數據下載"},D={language:"語言",appearance:"外觀",darkModeSystem:"跟隨系統",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基礎設置",hideMenu:"隱藏功能表欄(僅支援Windows和Linux)",autoHide:"自動隱藏視窗",start:"啟動",autoStart:"開機自動啟動",restore:"恢復上次退出時視窗的大小和位置",autoStartUnfinished:"自動開始未完成的任務",default_download_path:"預設下載路徑",download_directory:"下載目錄",upload_directory:"上傳目錄",enable_auto_upload:"允許自動上傳",unlimit_upload_amount:"不限制上傳數量",unlimit_upload_warning:"允許同時上傳大量檔案,此選項可能導致性能問題",transport_setting:"傳輸設置",upload_limit:"上傳限速",download_limit:"下載限速",payed_user_share_rate:"付費用戶上傳比例",unlimited:"不限速",limit_input_error:"限速需為正數",BT_setting:"下載任務設置",saveLinkSeed:"保存鏈接元數據為任務檔",autoDownload:"自動開始下載鏈接任務、任務檔",continuousSeeding:"持續上傳,直到手動停止",seedSharingRate:"分享率",seedTime:"上傳時間(分鐘)",task_manage:"任務管理",maximumDownloadNum:"同時下載的最大任務數",maximumConnectionsNum:"每個伺服器最大的連接數",range_error:"範圍需在{0}-{1}之間",random:"隨機",breakpointContinuation:"斷點續傳",automaticSkip:"新建任務後自動跳轉到下載頁面",afterNotification:"下載完成後通知",deleteConfirm:"刪除任務前無需確認",submit:"保存並應用",discard:"放棄",reset:"重置",reset_all_settings:"重置所有設置?",preferences_resetted:"偏好設置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"簡體中文",advancedSettings:"進階設置",autoUpdate:"自動更新",autoCheckUpdate:"自動檢查更新",proxy:"代理",useProxyService:"使用代理伺服器",trackerService:"Tracker伺服器",recommendUse:"推薦使用",autoUpdateTrackerServiceList:"每天自動更新Tracker伺服器列表",manualUpdateTracker:"手動更新",manualUpdateSuccess:"Tracker伺服器更新成功",manualUpdateFail:"更新以下Tracker伺服器失敗:",listenPort:"監聽埠",BTlistenPort:"數據傳輸埠",DHTlistenPort:"分散式哈希通訊埠",protocols:"兼容以下協定",setDefaultClientForFollowingProtocols:"設置本軟體為以下相容協定的預設用戶端",magnetUrl:"磁力連結",video_file:"視頻檔",audio_file:"音訊檔",security:"安全性",impersonateUserAgent:"模擬使用者代理(UA)",RPCauthorizationkey:"RPC授權密鑰",viewDocument:"查看說明文檔",developer:"開發者",applicationLogPath:"應用日誌路徑",downloadSessionPath:"下載會話路徑",resetDownloadSessionRecord:"重置下載會話記錄",restoreInitialSettings:"恢復初始設置",preferences_set_successfully:"偏好設置成功!",preferences_set_fail:"偏好設置失敗!",change_not_save:"修改未保存",discard_all_changes:"是否放棄所有更改?",stay_in_page:"留在此頁",disk_usage:"保留磁盘空間",pause_if_less_space:"剩餘空間小於此值時暫停並提醒(MB)",default_video_player:"默認視頻播放機",video_cache_time:"邊下邊播緩存時間",minutes:"分鐘",system_default:"系統預設",media_player:"媒體播放機",library_film_rate:"可見影片分級",library_show_explore:"顯示[探索]頁面",library_setting:"媒體庫設置",library_sync_setting:"媒體庫同步設置",keychain_sync_status:"金鑰同步狀態",sync_with_aws:"使用 Amazon Web Services 同步密鑰",backup_to_local:"保存為本地檔",enable_sync_with_aws:"啟用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作將移除儲存在雲端的金鑰,請確保已將密鑰保存至本地。 ",input_independent_password:"輸入獨立密碼",change_independent_password:"修改獨立密碼",password_error:"密碼錯誤",password_invalid:"密碼格式錯誤",key_existed:"金鑰已存在",key_not_found:"金鑰不存在",library_recommend:"媒體庫推薦",show_all_channels:"在媒體庫推薦頁顯示所有頻道",not_logged_in:"尚未登錄",login_to_continue:"登陸以繼續",mnemonic_code:"助記詞",wordlist:"單詞表",restore_code:"從助記詞恢復",generate_code:"生成助記詞",export_mnemonic_code:"導出助記詞",import_mnemonic_code:"導入助記詞",print:"列印",save_as_txt:"保存為 txt",save_as_pdf:"保存為 pdf",from_file:"從文件導入",not_valid_mnemonic_code:"助記詞格式錯誤",cannot_parse_code_as_key:"無法將此助記詞解析為密鑰",import_key_hint:"是否確認導入此金鑰? 此操作將覆蓋舊的金鑰。 ",import_key_confirm:"確認導入",library_preload:"媒體庫任務預加載",show_preload:"顯示預加載任務",set_download:"設置下載文件夾",set_download_desc:"macOS App Store 版本默認保存位置為應用沙盒,在應用卸載時會一併刪除。為了保留下載文件,您需要手動選擇保存位置。"},j={home:"主頁",home_caption:"下載/上傳媒體文件",library:"媒體庫",library_caption:"探索媒體資源",player:"播放器",player_caption:"視頻播放",credits:"信用積分",credits_caption:"檢查賬戶積分餘額",account:"用戶",account_caption:"個人用戶配置",settings:"設置",settings_caption:"所有設置項",development:"開發者",development_caption:"應用開發者模式",basic:"主要設置",basic_caption:"主要設置項",advanced:"進階設置",advanced_caption:"進階的設置項",blockchain:"錢包",blockchain_caption:"去中心化錢包",internal_notice:"內部版本聲明",release_notes:"發行説明",terms_and_conditions:"條款和章程",license_and_listen_notices:"許可和監聽開源説明",close:"關閉",success:"成功",fail:"失敗"},N={credits:"信用積分",pay:"支付積分",pay_with_credit:"支付積分加速下載, 預計需要{0}積分",pay_with_credit_payed:"正在加速下載, 預計還需要{0}積分",create_payment:"創建積分訂單",pay_target:"支付對象",pay_for_torrent:"為 {0} 支付",your_subid:"用戶 subId",your_credits:"當前餘額",pay_point_for_data:"支付{0}積分以加速{1}數據",auto_renew:"允許自動續費",transaction_details:"訂單明細",transaction_id:"訂單編號",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"類型",transaction_changed_amount:"變動金額",transaction_meta:"其他數據",transaction_status:"訂單狀態",transaction_creation_time:"訂單創建時間",receipt_code:"收款碼",transfer_amount:"轉賬金額",code_the_receipt_code:"複製下方收款碼給付款人",fill_the_receipt_code:"通過填入收款人提供的收款碼進行轉賬",income:"收入",expense:"支出",copied:"已複製",transfer:"轉賬",receive:"收款",copy:"複製",withdraw_fund:"選取基金",category_paydata_payer:"數據支付",category_paydata_payee:"數據收入",category_transfer:"個人轉賬",category_bonus:"系統獎勵",category_recharge:"充值",status_pending:"等待中",status_completed:"已傳完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"無效的收款碼",tip_invalid_amount:"金額應為 0-1000 範圍內的數(最小精度為0.001)",credit_get_more:"獲得更多積分",credit_no_data:"無可用數據",credit_loading:"加載中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"網絡出現異常,請稍後重試","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},L={account_email_invalid_address:"無效的電子郵寄地址",account_email_invalid_domain:"無效的電子郵件域",account_email_unknown_status:"未知的郵件發送狀態",account_email_unavailable_address:"郵寄地址不可用",account_email_suppressed_address:"郵寄地址被禁用",account_loading:"加載中...",account_is_required:"不能為空",account_sign_in_your_account:"登錄賬戶",account_username:"用戶名",account_username_email_phone:"手機號碼或電子郵箱",account_password:"密碼",account_new_password:"新密碼",account_re_enter_password:"再次輸入密碼",account_password_not_equal:"輸入的兩個密碼不同。",account_new_password_same:"新密碼與原密碼相同",account_forgot_your_password:"忘記密碼了?",account_reset_password:"重置密碼",account_sign_in:"登錄",account_signed_in:"登錄成功",account_sign_up:"註冊",account_find_your_account:"找尋你的賬戶",account_enter_your_username:"輸入你的手機號碼或電子郵箱",account_search:"查找",account_email_sent_tip:"一封附帶驗證碼的電子郵件已發送到您的郵箱:",account_phone_sent_tip:"一封附帶驗證碼的短信已發送到您的手機:",account_email_phone_sent_tip:"附帶驗證碼的電子郵件和手機短信已分別發送到您的郵箱和手機:",account_software_token_tip:"您的賬戶已啟用安全令牌。要完成登錄,請打開或查看您的設備並輸入驗證碼",account_reset_your_password:"重置賬戶密碼",account_verification_code:"驗證碼",account_resend_code:"重發驗證碼",account_code_has_been_resent:"驗證碼已發送",account_password_has_been_reset:"密碼已重置",account_submit:"提交",account_sign_up_your_account:"註冊賬戶",account_fill_required_fields:"填寫下方的必填項。",account_fill_optional_fields:"填寫下方的選填項。",account_email:"郵箱",account_invitation:"邀請",account_invitation_code:"邀請碼",account_i_accept:"我接受",account_license_terms:"服務許可條款",account_next:"下一步",account_you_need_to_accept_license_terms:"請先勾選我接受服務許可條款",account_verify_fill_optional_fields:"驗證身份與可選項",account_nickname:"暱稱",account_gender:"性別",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手機號碼",account_locale:"地區",account_tip_verified:"驗證通過,正在登陸…",account_verified:"已驗證",account_unverified:"未驗證",account_signed_up:"註冊成功",account_verify_your_identity:"驗證您的身份",account_finish:"完成",account_signed_out:"註銷成功",account_change_password:"修改密碼",account_change_email:"修改電子郵箱",account_change_phone_number:"修改手機號碼",account_sign_out:"註銷",account_current_password:"當前密碼",account_re_enter_new_password:"再次輸入新密碼",account_personal_information:"個人資訊",account_edit:"編輯",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_change:"更改",account_not_set:"未設置",account_setting:"設置",account_copy_code:"複製程式碼",account_account_setting:"賬戶設置",account_task_page:"積分任務",account_setting_caption:"管理你的賬戶信息",account_security:"安全",account_want_to_join:"登錄更精彩",account_sign_in_now:"點擊登錄",account_changed:"已更改",account_clipboard_with_invitation_code:"已復制邀請碼",account_clipboard_with_code:"已復制程式碼",account_invitation_code_dialog_tip:"你將通過短信或電子郵件的方式發送邀請碼:",account_available:"可用",account_invited:"已邀請",account_used:"已使用",account_invitation_code_sent:"邀請碼已發送",account_invitation_channel_required:"至少需要填寫一項邀請途徑",account_no_verification_code:"無法收到驗證碼?",account_no_phone_number:"沒有手機號碼?",account_sign_up_by_email:"通過郵箱註冊",account_no_email:"沒有郵箱?",account_sign_up_by_phone_number:"通過手機註冊",account_no_totp:"沒有安全令牌?",account_tip_no_totp:"若沒有安全令牌请先設置安全令牌",account_setup_totp:"設置安全令牌",account_contact_information:"聯繫方式",account_delete_account:"删除帳戶",account_deleted:"已删除",account_can_not_mfa:"無法進行二級驗證?",account_set_mfa_type:"更改二級驗證",account_disable_mfa:"關閉二級驗證",account_disabled_mfa:"已關閉二級驗證",account_sms_mfa:"手機短信驗證",account_totp_mfa:"安全令牌驗證",account_totp:"安全令牌",account_not_recommend:"不推薦",account_oauth_sign_in_with:"通過 {provider} 登錄",account_sign_in_failed:"登錄失敗",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通過手機短信或安全令牌為賬戶設置二級驗證",account_error_can_not_enable_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用二級驗證",account_tip_can_not_enable_sms_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用短信驗證",account_tip_can_not_enable_totp_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用安全令牌",account_tip_setup_totp:"使用Authenticator等應用,掃描下方的二維碼或手動複製代碼來添加安全令牌",account_tip_verify_totp:"驗證您的安全令牌",account_link_your_social_account:"綁定您的社交賬號",account_unlink_your_social_account:"解除社交賬號綁定",account_tip_confirm_link:"確定將當前賬號與您的 {provider} 賬號進行綁定嗎?",account_tip_confirm_unlink:"確定解除您已綁定的 {provider} 賬號嗎?",account_tip_linking:"正在綁定...",account_tip_unlinking:"解除綁定中...",account_linked:"已綁定",account_unlinked:"已解除綁定",account_error_can_not_link_to_the_linked_account:"當前社交帳號已與其他賬號綁定",account_error_can_not_link_to_the_mismatched_email:"當前賬號與社交帳號郵箱地址不一致",account_error_can_not_link_before_email_verified:"未綁定郵箱的賬戶無法綁定社交帳戶",account_tip_confirm_verify_email_phone:"是否向當前賬戶的email和手機號碼發送驗證碼以驗證您的身份?",account_tip_confirm_verify_phone:"是否向當前手機號碼發送驗證碼以驗證您的身份?",account_error_1_message_60_seconds:"每60秒只能發送一條簡訊或郵件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手機或電子郵件24小時內只能發送10條資訊",account_error_network:"網絡出現異常,請稍後重試","Network Error":"網絡出現異常,請稍後重試",account_error_user_not_exist:"用戶不存在",account_error_incorrect_username_or_password:"用戶名或密碼錯誤",account_error_incorrect_original_password:"原密碼錯誤",account_error_incorrect_password:"密碼錯誤",account_error_username_not_found:"找不到該用戶名的賬戶",account_error_can_not_reset_for_no_verified:"賬戶未進行郵箱驗證,無法重置密碼",account_error_invalid_verification_code:"驗證碼錯誤,請重試",account_error_expired_verification_code:"驗證碼過期,請重試",account_error_password_not_long_enough:"密碼長度不能小於8位",account_error_attempt_limit_exceeded:"嘗試次數過多,請稍後重試",account_error_password_attempts_exceeded:"超過密碼嘗試次數",account_error_invalid_phone_number_format:"手機號碼格式不正確",account_error_no_cell_phone_prefix:"請選擇手機號前綴",account_error_username_already_exists:"該用戶名已存在",account_error_you_need_to_accept_license_terms:"請勾選我接受服務許可條款",account_error_inactive_code:"該邀請碼已失效",account_error_non_existent_code:"該邀請碼不存在",account_error_unexpected:"未知錯誤",account_error_can_not_change_email_before_phone_bound:"綁定手機號碼前無法更改郵箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帳戶綁定前無法更改郵箱",account_error_can_not_change_phone_before_email_bound:"綁定郵箱前無法更改手機號碼",account_error_can_not_change_email_phone_with_mfa_enabled:"關閉二級驗證前無法更改郵箱或手機號碼",account_error_not_supported_yet:"暫不支持",account_error_same_email:"新的郵箱不能與原郵箱相同",account_error_same_phone:"新手機號碼不能與原手機號碼相同",account_error_email_not_exists:"該郵箱不存在",account_error_email_already_exists:"該郵箱已有帳戶綁定",account_error_phone_already_exists:"該手機號碼已有帳戶綁定",account_error_mfa_token_mismatch:"安全令牌錯誤",account_error_recaptcha_not_loaded:"網絡出現異常,請重連網絡後重啓應用重試",account_error_recaptcha_validation_failed:"未通過ReCaptcha驗證,請重連網絡後重啓應用重試",account_error_sign_in_in_progress:"等待登錄嘗試已在進行中",account_field_range:"字符個數應在{0}-{1}的範圍中",account_field_only_alphanumeric:"僅支持字母和數字",account_field_only_alphanumeric_and_symbol:"僅支持字母數字和符號",account_field_only_chinese_alphanumeric_space_underline:"僅支持中英文數字空格下劃線",account_field_prefix_without_number_space:"首個字符不能為數字或空格",account_field_suffix_without_space:"不能以空格結尾",account_field_without_repeat_space:"不能連續使用多個空格",account_field_can_not_only_alphanumeric:"不可僅為字母或數字",account_field_must_have_number_characters:"必須包含數字",account_field_verification_code:"驗證碼必須是六位數數字",account_field_invitation_code:"邀請碼必須是字母和數字",account_field_phone_number:"手機號碼格式不正確",account_invalid_email_format:"郵箱格式不正確",account_sign_out_confirm:"是否確認註銷? 註銷後將停止所有任務.",account_sign_out_anyway:"仍要註銷",account_signing_out:"正在註銷...",account_request_save_settings:"設置未保存。在註銷前請先保存修改。",invalid_password_format:"密碼格式錯誤",invalid_password_format_same:"新密碼與原密碼相同",error_password:"密碼錯誤",keychain_setting:"密鑰管理",setting_description:"雲端儲存:將金鑰數據保存到雲端。\n修改密碼:修改媒體庫金鑰的密碼。\n助記詞:一種生成和恢復金鑰的替代方法。\n導入本地金鑰:將本地保存的金鑰導入媒體庫。\n匯出金鑰:將當前媒體庫數據保存到本地或雲端。\n備份金鑰到雲端:將當前媒體庫數據更新到雲端進行備份。",refresh_status:"更新狀態",confirm_import_key:"確認導入金鑰",confirm_update_cloud_key:"你在雲端已有金鑰,更新金鑰將覆蓋原有的金鑰,確認更新存儲在雲端的金鑰嗎",export_key_with_cloud:"輸入您所設定的獨立密碼匯出存儲在雲端的媒體庫金鑰,並通過解鎖密碼鎖定密鑰文件",store_cloud_key_prompt_password:"輸入獨立密碼以存儲媒體庫金鑰到雲端",update_cloud_key_prompt_password:"設定獨立密碼以加密媒體庫金鑰並更新到雲端",enable_cloud_storage_prompt_password:"為存儲在雲端的金鑰設置密碼,通過該密碼可以從雲上取回金鑰",input_unlock_password:"設定解鎖密碼",export_local_prompt_password:"請設定一個解鎖密碼,該密碼用於加密您的密鑰文件。我們不會保存此密碼,因此若您丟失該密碼,密鑰文件將無法解鎖。",require_unlock_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",require_independent_password:"輸入獨立密碼以獲取存儲在雲端的金鑰",import_local_prompt_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",select_encrypt_mode:"選擇加密模式",input_independent_password:"輸入獨立秘碼",update_cloud_key:"更新存儲在雲端的金鑰",backup_to_cloud:"將媒體庫金鑰備份到雲端",save_local:"將媒體庫金鑰保存為本地加密檔",create_new_key:"創建新的媒體庫金鑰",creating_lib_key:"正在創建媒體庫金鑰...",loading_lib_key:"正在載入媒體庫金鑰...",failed_to_create_lib_key:"創建媒體庫金鑰失敗",failed_to_load_lib_key:"載入媒體庫金鑰失敗",import_local_key:"導入本地金鑰",import_lib_key_from_local:"從本地導入媒體庫金鑰",import_from_cloud:"從雲端導入媒體庫金鑰",create_or_import_key:"創建或導入媒體庫金鑰",create_or_import_key_desc:"媒體庫金鑰用於与去中心化數據庫同步內容。",store_your_lib_key:"存儲你的媒體庫金鑰",export_cloud_key:"導出雲端密鑰",export_current_key:"導出當前密鑰",change_password:"修改密碼",enable_cloud_storage:"啟用雲端存儲",disable_cloud_storage:"關閉雲端存儲",disable_cloud_storage_desc:"關閉雲端存儲將移除保存在雲端的密鑰,請確保已將密鑰保存在本地",sync_at:"同步於:{time}",keychain_sync_status:"密鑰同步狀態",cloud_storage_enabled:"使用 {storage} 同步密鑰",cloud_storage_disabled:"未啟用雲端存儲",saved_locally:"已保存於本地",export_key:"導出密鑰文件",cloud_independent_password:"雲端獨立密碼",key_file_unlock_password:"密鑰文件解鎖密碼",re_enter_unlock_password:"再次輸入解鎖密碼",independent_password_not_enabled:"當前密碼為 Alphabiz 帳戶密碼(未設定獨立密碼)",use_cognito_hash:"使用 Alphabiz 賬戶密碼",use_independent_password:"使用獨立密碼",keychain_lib:"媒體庫金鑰",loading_keychain_state:"加載密鑰中...",backing_up:"備份中...",backup_current_key:"備份當前金鑰到雲端",cloud_lib_key_not_existed:"雲端媒體庫金鑰不存在",open_keychain_file:"打開金鑰檔案",confirm_open_abk:"是否打開ABK檔案",use_the_key:"使用該金鑰",backup_the_key:"備份該金鑰到雲端",keychain_data_does_not_exist:"金鑰數據不存在","timeout of 0ms exceeded":"網絡出現異常,請稍後重試",XhrError:"網絡出現異常,請稍後重試"},U={add_subtitles:"添加字幕",open_file:"打開文件...",advanced_options:"高級選項",title:"標題",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默認視頻播放器未設置",this_is_an_audio_file:"這是一個音頻文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任務被暫停或刪除,流媒體播放被終止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超時,請檢查任務",autoplay_hint:"自動播放功能可能受瀏覽器限制,若未開始播放,請手動點擊播放器以播放",remove_playing_confirm:"{0} 正在播放中,刪除任務將停止播放。是否仍要刪除?",subtitle:"字幕",setting:"設定",loading:"加載中",unknown_media:"未知媒體",settings_button_visible:"按鈕顯示",settings_setting:"設定",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"畫中畫",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常規",settings_italic:"斜體",settings_lighter:"纖細",settings_bolder:"粗體",settings_small:"較小",settings_large:"較大"};const R=r.a.displayName;var M={lib_index:"主頁",lib_edit:"編輯",lib_publish:"發佈",lib_explore:"探索",lib_following:"關注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"頻道",lib_submit:"提交",lib_from_network:"使用去中心化資料庫,所有數據來源於網路",welcome_to_lib:`歡迎使用 ${R} 媒體庫`,register_or_login:"註冊/登陸",lib_recommend:"推薦",lib_recommend_desc:`歡迎使用 ${R} 媒體庫! 本媒體庫使用去中心化的資料庫,所有數據來源於網路。 在開始前,請先關注一些推薦頻道。`,follow_any_channel_to_continue:"關注任意頻道以繼續",follow_channels_and_continue:"關注 {0} 個頻道並繼續",show_more_for_me:"為我展示更多",no_more_recommend:"沒有更多推薦",key:"金鑰",create_key:"生成金鑰",save_key:"保存金鑰",save_key_file:"是否將金鑰保存為檔案?",import_key:"匯入金鑰",import:"導入",invalid_key:"金鑰格式錯誤",back_to_top:"回到頂部",search_for_channel:"搜索頻道 ID",search_channel_no_result:"找不到 ID 為 {0} 的頻道",please_input_channel_id:"請輸入頻道 ID",welcome_help_text:"\n 這是一個去中心化的媒體庫,您需要為此創建一個專用帳戶,\n 我們將自動為您生成一套金鑰。 如果您已經擁有金鑰了,\n也可以在此導入金鑰".replace(/\s/g,""),welcome_key_text:"\n 當您成功創建帳號后,請點擊右下角的【保存金鑰】按鈕匯出\n您的金鑰。 一旦您丟失金鑰,對應的帳號將無法找回。 ".replace(/\s/g,""),redirect_to_recommend:"您似乎沒有關注任何頻道,即將前往探索頁。 ",channel:"頻道",follow:"關注",unfollow:"取消關注",following:"關注中",share:"分享",block:"遮罩",unblock:"取消遮罩",blocked:"已遮罩",block_channel:"遮罩此頻道",block_channel_confirm:"遮罩頻道後,頻道的所有內容將從時間線上移除。 您可以在帳戶設定中管理遮罩清單。 ",block_creator:"遮罩此頻道的創作者",unblock_creator:"取消遮罩此頻道的創作者",block_creator_confirm:"遮罩創作者後,該創作者的所有頻道將從時間線上移除。 您可以在賬戶設置中管理遮罩清單",share_url_copied:"分享鏈接已複製至剪貼板",unfollow_confirm:"是否取消關注? 此頻道的所有推文將從你的時間線上移除。 ",follow_failed_hint:"操作仍在後台進行中,請耐心等待。如長時間未完成修改請嘗試重啟應用。 ",follow_time:"關注時間",update_time:"更新時間",search:"搜索",type:"類型",added:"已添加",click_to_task:"點擊前往對應任務",lib_already_added:"您已添加此視頻",description:"描述",poster:"海報",channel_poster:"頻道海報",preview:"預覽",creator:"創作者",creator_detail:"創作者詳情",loading_creator:"正在載入創作者資訊",wait_for_creator_loaded:"請等待創作者資訊載入完成。 ",follower:"關注者",followers:"關注者",follower_list:"關注者清單",user:"使用者",channel_title:"頻道標題",channel_id:"頻道 ID",post_title:"推文標題",post_id:"推文 ID",import_data_from_excel:"從 Excel 導入資料",set_excel_keys:"設置excel鍵",excel_import_succeded:"Excel 導入成功",excel_import_success_msg:"可添加 {0} 條新專案, {1} 條資訊不完整及 {2} 條重複項已忽略",cannot_find_channel:"找不到指定頻道",cannot_find_posts:"找不到指定視頻",add_channel:"添加頻道",add_post:"添加推文",edit_channel:"編輯頻道",channel_setting:"頻道設置",edit_post:"編輯推文",edit_posts:"編輯推文",channel_detail:"頻道詳情",remove:"移除",remove_channel:"移除頻道",remove_channel_confirm:"是否確認移除頻道? 此操作不可恢復。 ",remove_post:"移除推文",remove_post_confirm:"是否確認移除推文? 此操作不可恢復",preview_mode:"預覽模式",preview_mode_desc:"這是頻道的預覽模式,所有分級的影片均為可見狀態。 ",edit_user_profile:"編輯使用者資料",name:"昵稱",avatar:"頭像",no_following:"沒有已關注的頻道。 點擊前往",no_recommend:"沒有可推薦的頻道。 點擊前往",first_recomment_msg:"如果您是初次使用,載入時間可能較長",invalid_image:"圖片異常",image_not_reachable:"此圖片URL不可用",channel_not_found:"找不到頻道",cannot_get_channel_info:"無法獲取指定的頻道資訊。 該頻道可能已被創作者刪除而不再可見。 ",validate_error:"驗證錯誤",validate_user_name_no_space:"使用者名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"使用者名應為 {0}-{1} 字元",validate_user_desc_length:"使用者描述不可多於 {0} 字元",validate_user_avatar_url:"使用者頭像應為連結且不多於2048字元",validate_channel_title_length:"頻道標題應為1-100字元",validate_channel_desc_length:"頻道描述應為10-300字元",validate_channel_image_url:"頻道預覽圖應為連結且不多於2048字元",validate_post_title_length:"推文標題應為1-100字元",validate_post_desc_length:"推文描述應為10-300字元",validate_post_image_url:"海報應為連結且不多於2048字元",validate_post_url:`${R} 連結格式錯誤`,validate_post_url_length:`${R} 連結不可多於2048字元`,film_rate:"影片分級",set_film_rate:"設置影片分級",select_a_rate_before_enter:"您需要設置一個影片分級才可進入媒體庫。 ",library_available_rate:"媒體庫可用影片分級",rate_g:"G(大眾級)",rate_g_desc:"所有年齡皆可觀賞\n此類影片不含或僅含少量會讓家長在讓兒童觀賞時感到被冒犯的內容,無需家長陪同。 ",rate_pg:"PG(建議家長指導)",rate_pg_desc:"一些內容可能不適合兒童觀看\n此類影片包含部分家長可能認為不適合兒童的內容,因此建議家長可同時進行指導。 ",rate_pg_13:"PG-13(家長特別留意)",rate_pg_13_desc:"一些內容可能不適合13歲以下兒童觀看\n此類影片有部分內容對 13歲以下兒童不適宜,需要有父母陪同觀看。 此類影片動作暴力適當,含有少量血腥場面及不雅用語,但也包含可能令人情緒不安的情節。 ",rate_r:"R(限制級)",rate_r_desc:"未滿十七歲人士必須由家長或成年監護人陪同\n此類影片中常有大量血腥暴力、驚悚恐怖、裸露性愛或吸毒場景, 且有大量性暗示及不雅用語/ 冒犯性言論等,17歲以下人士必須由父母或者監護陪伴才能觀看。 ",rate_nc_17:"NC-17(只准成人觀看)",rate_nc_17_desc:"17歲或以下人士不得觀賞\n此類影片其中常有清楚的性愛場面,大量的吸毒或暴力鏡頭以及髒話等,因此僅適合成人觀賞。 ",set_as_private:"設為私有",hide_in_explore:"在瀏覽頁隱藏此頻道",hidden:"已隱藏",select_a_rate:"請選擇一個影片分級",select_from_tasks:"從上傳任務中選擇",import_from_magnet:`從${Object(m["a"])()?"連結":"磁力連結(magnet:?...)"}導入`,input_magnet_url:"輸入連結",task_title:"任務標題",set_title:"設為標題",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"從本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"導入/匯出收藏",export_local_favorites:"匯出收藏文件作為備份",import_favorites_file:"導入備份的收藏",not_a_favorite_file:"此文件並非收藏備份",connection_status:"連接狀態",gun_server_list:"緩存節點",custom_nodes:"客製化緩存節點",custom_nodes_hint:"緩存節點將在重啟軟體後應用",wait_for_reboot:"即將重啟軟體...({seconds}s)",reboot_now:"立即重啟",reboot_later:"稍後重啟",peer_list:"節點清單",server:"節點 URL",peer:"節點",peer_id:"節點 ID",connection:"連接",data_source:"數據源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已獲取全部推文",placeholder_channel_title:"頻道名稱",placeholder_channel_desc:"關於此頻道的描述",placeholder_post_title:"電影名稱 (年份)",placeholder_post_desc:"關於此電影的描述",private_channel:"私有頻道",creator_blocked:"已遮罩創作者",go_to_library:"前往媒體庫?",go_to_library_channel_msg:"是否前往媒體庫頻道 {0}?",magnet_does_not_have_name:"此連結不包含任務名,請輸入推文標題后重試。 ",no_available_post:"無可見推文",following_channel_no_post:"已關注的頻道中不含可見的推文。 此問題可能由網路錯誤引起。 如果您已關注帶有推文的頻道,這些推文將在稍後載入完成。 ",share_to_library:"分享到媒體庫",quick_start:"快速開始",quick_start_desc:"選擇一個任務或檔快速創建推文",select_file:"選擇檔...",select_folder:"選擇資料夾...",post_options:"推文選項",channel_options:"頻道選項",create_new_channel:"創建新頻道",use_existed_channel:"使用已存在的頻道",select_existed_channel:"選擇一個頻道",uploaded_by:"{title} (由 {name} 上傳)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在創建新頻道...",created_new_channel:"新頻道已創建",creating_new_post:"正在創建新推文...",created_new_post:"新推文已創建",create_new_post:"創建推文",quick_start_timeout:"{0}超時。此問題可能由網路異常引起。請稍後再試。",file_too_large:"文件過大",file_too_large_msg:"此檔的大小超過了 4GB ({size}),上傳此檔可能需要較長的準備時間,是否仍要上傳? ",resolving_folder_files:"正在解析文件夾內容...",folder_too_large:"資料夾過大",folder_too_large_msg:"資料夾中的檔大小超過 4GB ({size} 總大小),上傳此資料夾可能需要較長的準備時間,是否仍要上傳? ",creating_new_task:"正在創建新任務...",cannot_create_task:"創建任務異常",cannot_create_task_msg:"創建任務時產生了未知錯誤。 任務可能已被創建,請查看上傳清單以確定上傳狀態。 ",cannot_get_task_name:"無法獲取任務名,請輸入推文標題后重試",remove_old_task:"刪除舊任務",remove_old_task_desc:"Web 模式僅允許創建一個任務,是否刪除舊任務? ",subtitle_list:"字幕清單",optional:"可選",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下載連結",maximumSubtitleNum_limit:"字幕數量已達到最大",cannot_add_subtitle:"添加字幕失敗",cannot_add_subtitle_msg:"沒有選擇字幕語言或下載鏈接無效。",support_subtitle_type:"僅支援srt,vtt格式的字幕。",recommend_opensubtitles:"建議使用www.opensubtitles.org的字幕下載鏈接或id。",take_down:"下架",serious_violation:"嚴重違規",copyright_disputes:"版權爭議",adults_only:"成人內容",takedown_reason:"下架原因",takedown_mode:"下架模式",admins:"管理員",takedown_user:"下架此創作者",takedown_channel:"下架此頻道",takedown_post:"下架此推文",select_takedown_reason:"選擇下架原因",takedown_invalid_reason:"下架原因錯誤",takedown_invalid_user_id:"用戶ID錯誤。ID應為87位字符",takedown_invalid_channel_id:"頻道ID錯誤。ID應為20位字符",takedown_invalid_post_id:"推文ID錯誤。ID應為20位字符",takedown_management:"下架管理",users:"用戶",channels:"頻道",posts:"推文",you:"你",preset:"預設",admin:"管理員",committee:"委員會",about_takedown_mode:"模式說明:\n預設:在github添加,所有內容都會從媒體庫移除。\n管理員:任一管理員投票後即會移除。\n委員會:超過半數管理員投票後才會移除。",cannot_edit_preset:"無法編輯此行,因為它是預設內容",cannot_edit_not_vote:"無法編輯此行,因為你未為其投票",remove_vote:"移除你的下架投票",post_preload_failed:"無法預載此推文。下載連結可能已過期,因此無法立即播放。",about_cache_node:"關於緩存節點",edit_cache_node:"編輯緩存節點",create_cache_node:"創建緩存節點",about_cache_node_desc:`${R} 使用 gun 伺服器作為緩存節點,您可以在進階設置中編輯自定義節點。`,learn_how_to_deploy_gun:"查看如何建立自定義節點",library_setting:"媒體庫設置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用戶",blocked_channels:"已屏蔽的頻道",unblock_user:"解除用戶屏蔽",unblock_channel:"解除頻道屏蔽",no_blocked_user:"沒有已屏蔽的用戶",no_blocked_channel:"沒有已屏蔽的頻道",field_required:"{0} 不能為空"};const F=r.a.displayName,B={unsupported_in_browser:"此功能暫不支援瀏覽器模式",client:"客戶端",warning:"警告",enable:"啟用",disable:"禁用",auto:"自動",encrypt_connection:"加密傳輸",encrypted_connection:"已加密的連結",non_encrypted_connection:"未加密的連結",connected_wires_not_disconnect:"已存在的連結不會被斷開",audio:"音頻",video:"視頻",image:"圖片",subtitle:"字幕",zip:"壓縮文件",text:"文本",unknown:"未知",add:"添加",undo:"撤銷",backup:"備份",not_default_app:`${F}不是你的默認應用, 是否設置默認應用?`,dont_show_again:"不再提示",go_to_settings:"前往設置",about_alphabiz:`關於 ${F}`,update_channel:"更新通道",last_check_at:"上次檢查更新時間",check_for_update:"檢查更新",checking_for_update:"檢查更新中...",no_update_available:"沒有可用更新",update_available:"更新可用",update_now:"現在更新",update_later:"以後更新",click_to_update:"點擊[現在更新]按鈕以開始下載更新",update_failed:"更新失敗",update_failed_message:"在更新時遇到了一個錯誤: ",check_shasum_failed:"安裝包完整性檢查失敗",downloading_update:"更新下載中...",ready_to_update:"準備更新",restart_to_update:`更新下載已完成. ${F} 將在數秒後退出以應用更新`,already_latest:"當前版本({0})已是最新",update_timeout:"更新超時",no_available_release:"沒有可能的版本",no_available_installer:"沒有可用的安裝包",feedback:"反饋",select_a_type:"選擇一個類型",category:"分類",select_a_category:"選擇一個分類",title:"標題",require_title:"請提供標題",describe_your_problem:"描述您遇到的問題",report_a_bug:"報告一個錯誤(bug)",request_a_new_feature:"請求一個新功能",download_or_upload:"下載/上傳",others:"其他",submit_with_system_info:"提交時附加系統信息",submit_feedback:"提交反饋",tweet_us:"發送Twitter",tweet_too_long:"Tweet過長",delete_characters:"請刪除{0}個字符",rest_characters:"還能輸入{0}個字符",update_alphabiz:`更新 ${F}`,current_version:"當前版本",cancel_update:"取消更新",slow_download_speed:"下載過於緩慢",slow_download_speed_caption:"當前更新包下載過於緩慢,請檢查網絡狀態",update_canceled:"更新已取消",current_version_release_time:"當前版本發佈時間",expired_app:`${F} 過期`,version_out_of_date:"版本過舊",have_to_update:`${F} 版本過舊,部分接口或協議已失效。您需要升級 ${F} 才可繼續使用。`,exit_alphabiz:`退出 ${F}`,exit_and_update:"退出並應用更新",new_version_hint:"新版本可用",no_new_version:"沒有可用的新版本",current_is_latest:"當前版本已是最新版",click_to_check_update:"點擊 [檢查更新] 按鈕以檢查更新",download_latest_version_from_website:"請前往官網下載最新版本",to_the_website:"前往官網",network_diagnotic:"網路診斷",diagnotic:"診斷",click_to_check:"點擊以開始檢查",click_to_check_again:"點擊以再次檢查",checking:"檢查中",online:"在線",offline:"離線",dns_look_up:"域名解析",error:"錯誤",aws_service:"AWS 服務",network_pings:"網路 Ping",not_found:"未找到",packet_loss:"丟包率",official_site:"官方網站",download_test:"下載測試",connected:"已連結",test_task:"測試任務 ({0})",download_failed:"下載失敗",second_spend:"用時 {0} 秒",open_default_player_failed:"打開默認播放器失敗",copied_to_clipboard:"已複製到剪貼板",go_to:"前往",region_not_available:"地區不可用",region_not_available_message:"抱歉,此應用在您的地區不可用。本應用將在{0}秒後退出。",confirm:"確認",no_available_result:"無可用結果"};var W={...M,...E,...D,...j,...L,...N,...U,...B},H=a("e4a9"),V=a("a282"),Q=a("1254"),G=a("88ba"),K=a("6432"),Y=a("44ce"),J=a("3d2b"),Z=a("68e2"),X=a("5e9a"),ee=a("0699"),te=a("b36c"),ae=a("5d61"),ne=a("4165"),oe=a("111a"),ie=a("45bf"),re=a("186c"),se=a("c65d"),le=a("f3f7"),ce=a("e24e"),de=a("f7b1"),ue=a("1081"),_e=a("2c08"),pe=a("9256"),me=a("be00"),he=a("76b4"),ge=a("e9ac"),fe=a("be0d"),be=a("c9b4"),ye=a("d310");const ve={"zh-CN":y,"en-US":q,"zh-TW":W,"de-DE":H,"es-ES":V,"fr-FR":Q,"hi-IN":G,"id-ID":K,"it-IT":Y,"ja-JP":J,"ko-KR":Z,"nl-NL":X,"pl-PL":ee,"pt-PT":te,"ru-RU":ae,"th-TH":ne,"tr-TR":oe};for(const je in ve){const e=ve[je];for(const t in e)e[t].match(/\${(.+?)}/)&&(e[t]=e[t].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)))}const we={"en-US":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric"},YMDHms:{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}},"zh-CN":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"zh-TW":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"de-DE":ie,"es-ES":re,"fr-FR":se,"hi-IN":le,"id-ID":ce,"it-IT":de,"ja-JP":ue,"ko-KR":_e,"nl-NL":pe,"pl-PL":me,"pt-PT":he,"ru-RU":ge,"th-TH":fe,"tr-TR":be};for(const je in ve)je in we||(we[je]=Object(ye["deepClone"])(we["en-US"]));var ke=a("fe2c"),Se=a("d884"),Ce=a("9ad5"),xe=a.n(Ce),$e=a("5584"),Te=a("d7df");const ze=Se["b"].map((({value:e})=>e));ke["b"].registerHooks(["beforeRouteLeave","beforeRouteEnter"]),n["a"].use(o["a"]);const Pe="undefined"===typeof navigator?"en-US":Se["b"].find((({value:e})=>e===navigator.language))?navigator.language:"en-US";console.log(`[i18n] Default locale: ${Pe}`);const Ae=new o["a"]({locale:Pe,fallbackLocale:"en-US",dateTimeFormats:we,messages:ve,silentTranslationWarn:!0}),Ie={externals:"_i18n_externals_",locale:"_i18n_locale_",trans:"_i18n_translations_",dtf:"_i18n_datetime_"},qe=(e,t,a)=>{if(!e||!e.value)return console.warn(`Failed to add locale ${e}: 'value' is required but not found.`);if("object"!==typeof t||null===t)return console.warn(`Cannot add locale ${e.value}: 'translations' must be object.`);const o=Se["b"].findIndex((t=>t.value===e.value));-1!==o?(console.warn(`Add duplicate language ${e.value} will replace it with new configs`),n["a"].set(Se["b"],o,e)):n["a"].set(Se["b"],Se["b"].length,e);const i=e.value;for(const n in t)t[n].match(/\${(.+?)}/)&&(t[n]=t[n].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)));n["a"].set(ve,i,t),"object"===typeof a&&n["a"].set(we,i,a),console.log("Successfully add new locale",e);const s=[...new Set(JSON.parse(localStorage.getItem(Ie.externals)||"[]"))];if(s.some((e=>e===i))||s.push(i),localStorage.setItem(Ie.externals,JSON.stringify(s)),localStorage.setItem(Ie.locale+i,JSON.stringify(e)),localStorage.setItem(Ie.trans+i,JSON.stringify(t)),a?localStorage.setItem(Ie.dtf+i,JSON.stringify(a)):localStorage.removeItem(Ie.dtf+i),Object(ye["isElectron"])()&&Te["a"].emit("external-locale",{locale:e.value,translations:t}),Ae&&"en-US"===Ae.locale){const e=navigator.languages.map((e=>{const t=e.split("-");if(t.length<=2)return e;const a=t[0],n=t.pop();return[a,n].join("-")}));if(!e.includes(i))return console.log(`User prefer languages ${e.join(",")} does not includes ${i}`);console.log(`Automatically set locale to ${i}`),Ae.locale=i,$e["a"].dispatch("set",{language:i})}},Oe=e=>{const t=Se["b"].find((t=>t.value===e));if(-1===t)return console.warn(`Failed to remove locale ${e}: not found`);Ae&&Ae.locale===e&&(Ae.locale="en-US"),Se["b"].splice(t,1),n["a"].delete(ve,e),n["a"].delete(we,e),console.log("Successfully remove locale",e);const a=JSON.parse(localStorage.getItem(Ie.externals)||"[]");a.includes(e)&&(a.splice(a.indexOf(e),1),localStorage.setItem(Ie.externals,JSON.stringify(a))),localStorage.removeItem(Ie.locale+e),localStorage.removeItem(Ie.trans+e),localStorage.removeItem(Ie.dtf+e)},Ee=async()=>{const e=console.log.bind(console,"[Remote External I18n]");if(!r.a.externalI18n)return e("No external i18n url availabel");try{const t=e=>{let t=r.a.externalI18n;return t.endsWith("/")||(t+="/"),new URL(e,t).href};e(t("locales"));const{data:a}=await xe.a.get(t("locales"));if("string"!==typeof a)throw new Error(`Locale ${a} is not string`);e(`Fetch locales: ${a}`);const n=a.split("\n").map((t=>{const[a,...n]=t.replace(/#.*$/,"").split(" ");let o=n&&n.join(" ");return o||(o=a),a?{value:a,label:o}:(e(`No available locale in ${t}`),null)})).filter((e=>e));if(!n.length)return e(`No available external i18n from ${r.a.externalI18n}`);const o=n.map((async a=>{try{const{data:e}=await xe.a.get(t(`${a.value}/translations.json`)),{data:n}=await xe.a.get(t(`${a.value}/dateTimeFormat.json`)).catch((()=>({})));qe(a,e,n)}catch(n){e(`Failed to get ${a.label} ${a.value} from ${r.a.externalI18n}`)}}));if(await Promise.all(o),!Ae)return;for(const i in Ae.messages)ze.includes(i)||n.find((e=>e.value===i))||(e("Remove locale since external locales file deleted it",i),Oe(i))}catch(t){e(`Failed to get locales from ${r.a.externalI18n} since ${t.message||t}`)}},De=()=>{const e=localStorage.getItem(Ie.externals);if(!e)return console.log("No external i18n available");const t=JSON.parse(e);for(const n of t){const e=localStorage.getItem(Ie.locale+n),t=localStorage.getItem(Ie.trans+n),o=localStorage.getItem(Ie.dtf+n);if(e&&t)try{qe(JSON.parse(e),JSON.parse(t),o?JSON.parse(o):null)}catch(a){console.warn(`Failed to add locale ${n}:`,a.message)}else console.warn(`Failed to get local files for ${n}`,e,t)}};t["a"]=e=>{const{app:t}=e;t.i18n=Ae,new(n["a"].extend({i18n:Ae}))({beforeCreate(){const e=this.$q.notify;this.$q.notify=t=>{const a=e=>{try{const t=Ae.messages[Ae.locale];return Object.keys(t).includes(e)}catch(t){return console.log("Faild @ boot -> i18n",e,Ae.locale,t),!1}};let n;return"string"===typeof t?n=e(a(t)?this.$t(t):t):(a(t.message)&&(t.message=this.$t(t.message,t.i18nData),delete t.i18nData),n=e(t)),n};for(const t in ve){const e={locale:t,translations:ve[t]};Te["a"].emit("external-locale",e)}},created(){De(),Ee(),this.$watch((()=>Ae.locale),(()=>{if(!Ae.messages[Ae.locale]){if(Ae.locale===Ae.fallbackLocale)return console.warn(`Failed to set locale to default[${Ae.fallbackLocale}]`);Ae.locale=Ae.fallbackLocale}}))}})}},"19f3":function(e,t,a){},"1af1":function(e,t){const a={};e.exports=a},"1b85":function(e,t){e.exports=require("electron")},"1b99":function(e,t,a){"use strict";a("244a")},"1cda":function(e,t,a){"use strict";a("058f")},"1da1":function(e,t,a){},2:function(e,t){},2087:function(e,t){e.exports=require("querystring")},2163:function(e,t,a){"use strict";a("e836")},2214:function(e,t,a){"use strict";a("0d10")},2377:function(e,t,a){"use strict";a("d7f6")},"244a":function(e,t,a){},"25b9":function(e,t,a){},"28c4":function(e,t,a){"use strict";a("df2b")},"2c08":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"2cab":function(e,t,a){"use strict";a("4d62")},"2cfd":function(e,t,a){},"2d55":function(e,t,a){},"2e22":function(e,t,a){"use strict";a.d(t,"c",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return g}));a("de6c"),a("f18a");var n=a("5584"),o=a("d310"),i=(a("c49d"),a("36a1")),r=a("1926");const s=e=>new Promise((t=>{const a=setInterval((()=>{const n=e();void 0!==n&&(clearInterval(a),t(n))}),1e3)})),l={data(){return{previewImage:null}},computed:{showPreview:{set(e){this.previewImage=e||null},get(){return!!this.previewImage}}}},c={methods:{async initFilmRate(){const e=e=>{const t=new Date(e);if(!t||!t.valueOf())return;const a=Date.now();return t.setFullYear(t.getFullYear()+7),t.valueOf(){const e={type:"radio",model:"G"};e.items=[{label:r["b"].t("rate_g"),value:"G",tooltip:r["b"].t("rate_g_desc")},{label:r["b"].t("rate_pg"),value:"PG",tooltip:r["b"].t("rate_pg_desc")},{label:r["b"].t("rate_pg_13"),value:"PG-13",tooltip:r["b"].t("rate_pg_13_desc")},{label:r["b"].t("rate_r"),value:"R",tooltip:r["b"].t("rate_r_desc")},{label:r["b"].t("rate_nc_17"),value:"NC-17",tooltip:r["b"].t("rate_nc_17_desc")}];const t=this.$alphabiz.dialog({title:r["b"].t("set_film_rate"),message:r["b"].t("select_a_rate_before_enter"),options:e,ok:r["b"].t("ok")}),a=await t.promise("ok");if(a)return a.option},i=e=>{if(n["a"].dispatch("updateSettings",{libraryRate:e}),Object(o["isElectron"])()){const{ipcRenderer:t}=a("1b85");t.send("set_settings",{libraryRate:e})}localStorage.setItem("set-film-rate",e)};if(localStorage.getItem("set-film-rate"))return;const l=await s((()=>{if(n["a"].getters.accountUserInfo&&n["a"].getters.accountUserInfo.sub)return n["a"].getters.accountUserInfo.birthday||null}));let c=e(l);c||(c=await t()),i(c)}},async activated(){await this.initFilmRate()}},d=(...e)=>console.tag.blue("Channel",...e),u=(...e)=>console.tag.blue("Post",...e),_={data(){return{loader$loadedChannels:{}}},created(){this.$watch("followingChannels",(e=>{let t=!1;Object.keys(this.loader$loadedChannels).forEach((a=>{e.some((e=>e.id===a))||(delete this.loader$loadedChannels[a],t=!0)})),t&&(this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels))}),{immediate:!0,deep:!0})},computed:{loader$toLoadChannels(){const e=this.followingChannels;return console.log(e),e.filter((e=>!(!e.title||!e.id)&&!this.loader$loadedChannels[e.id])).reduce(((e,t)=>(e[t.id]=t,e)),{})}},methods:{async loader$enableChannelsLoader({onLoaded:e},t){const a=async({onChannelLoaded:e,onChannelUpdated:t})=>{const a=Object.values(this.loader$toLoadChannels);await Promise.all(a.map((async a=>{await new Promise((e=>setTimeout(e,Math.round(2e3*Math.random()))));const n=await i["a"].getChannelPostIds(a.id,!0);if(!this.loaderEnabled)return;const o=this.loader$loadedChannels[a.id];o?o.ids=n:this.loader$loadedChannels[a.id]={channel:a,ids:n},this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels),await(o?t:e)(a.id)})))},n=()=>({toLoadCount:Object.keys(this.loader$toLoadChannels).length,loadedCount:Object.keys(this.loader$loadedChannels).length}),o=e=>new Promise((t=>setTimeout(t,e)));let r=!0;while(this.loaderEnabled){const i=n();if(!i.toLoadCount){if(r){e(!0),r=!1;continue}await o(t);continue}if(await a({onChannelLoaded:async e=>{if(!this.loaderEnabled)return;const{loadedCount:t,toLoadCount:a}=n(),o=`${t}/${t+a}`;d("onLoaded",o).log(e)},onChannelUpdated:async e=>{this.loaderEnabled&&d("onUpdated").log(e)}}),!this.loaderEnabled)break;const s=n();s.toLoadCount||(e(r),r=!1,await o(t))}}}},p={data(){return{loader$loadedPosts:{}}},computed:{loader$toLoadPosts(){return Object.values(this.loader$loadedChannels).map((({channel:e,ids:t})=>t.map((t=>({id:t,channelId:e.id}))))).flat(1).reduce(((e,t)=>(this.loader$loadedPosts[t.id]||(e[t.id]=t),e)),{})},loader$toLoadPostIdListSorted(){const e=(e,t)=>e&&t?e.localeCompare(t):0;return Object.values(this.loader$loadedChannels).map((({ids:e})=>e.filter((e=>!this.loader$loadedPosts[e])))).flat(1).sort(e)}},methods:{async loader$loadPosts({count:e},{onPostsLoaded:t}){const a=async e=>{const{id:t,channelId:a}=e,n=this.loader$loadedChannels[a].channel,o=await i["a"].getPostById(a,t,!0);return o?(o.channel=n,o):null},n=e=>this.loader$toLoadPostIdListSorted.length?this.loader$toLoadPostIdListSorted.slice(0,e).map((e=>this.loader$toLoadPosts[e])):null,o=n(e);if(!o)return;const r=await Promise.all(o.map((async e=>{const t=await a(e);return t?{success:!0,post:t}:{success:!1,target:e}}))),s=r.filter((e=>e.success)).map((e=>e.post));return s.length&&(s.forEach((e=>{this.loader$loadedPosts[e.id]=e})),this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts),await t(s)),r},async loader$loadPostsNext({count:e}={}){if(!Object.keys(this.loader$toLoadPosts).length)return;if("loaded"!==this.loaderState)return;this.loaderState="fetching",await new Promise((e=>setTimeout(e,1e3)));const t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};await this.loader$loadPosts({count:e},{onPostsLoaded:t}),this.loaderState="loaded"},async loader$initPostLoader({initialCount:e}={},{onPostsLoaded:t}={}){var a;null!==(a=e)&&void 0!==a||(e=24),t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};const n=e=>new Promise((t=>setTimeout(t,e))),o=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),i=()=>{const{toLoadCount:t,loadedCount:a}=o();return a&&(0===t||a>=e)};let r=!0;while(!i())await this.loader$loadPosts({count:10},{onPostsLoaded:t}),r?r=!1:await n(Math.round(3e3*Math.random()));u().log("loaded")}}},m={mixins:[_,p],data(){return{loaderState:"stopped"}},computed:{loaderEnabled(){return["loading","fetching","loaded","timeout"].includes(this.loaderState)}},created(){this.$watch("loaderState",((e,t)=>{const a={red:["timeout"]},n=Object.keys(a).find((t=>a[t].includes(e))),o=console.tag[n||"blue"]("State"),i={loading:"loading...",timeout:"timeout, maybe network error",fetching:"fetching next post slice",loaded:()=>{const e={loading:"loaded",timeout:"loaded but timeout"};return e[t]}};let r=i[e];"function"===typeof r&&(r=r()),r?o.log(r):o.log()}))},methods:{async enableLoader(){const e=e=>new Promise((t=>setTimeout(t,e))),t=async(t,a,n)=>{let o,i=!1;return await Promise.race([t.then((e=>{i=!0,o=e})),e(a).then((()=>{i||n&&(o=n())}))]),o};if(this.loaderEnabled)return;this.loaderState="loading";const a=6e4,n=async()=>{await new Promise((e=>this.loader$enableChannelsLoader({onLoaded:t=>{d().log(t?"loaded":"updated"),e(!0)}},1e4))),await this.loader$initPostLoader()},o=e=>{this.loaderEnabled&&(this.loaderState=e?"timeout":"loaded")};await t((async()=>{await n(),o(!1)})(),a,(()=>{o(!0)}))},async disableLoader(){this.loaderEnabled&&(this.loaderState="stopped")}}},h={methods:{loader$dialog(){const e=this.$alphabiz.dialog({title:r["b"].t("no_available_post"),message:r["b"].t("following_channel_no_post"),cancel:r["b"].t("cancel"),ok:r["b"].t("lib_explore")});return e.promise("ok").then((e=>{e&&(n["a"].getters.settings.libraryShowExplore||n["a"].dispatch("set",{libraryShowExplore:!0}),this.$root.$emit("navigate-to","/library/explore"),this.$router.push("/library/explore"))})),e}}},g={mixins:[m,h],computed:{loadedPosts(){return this.loader$loadedPosts}},created(){let e;this.$watch("loaderState",(t=>{if("timeout"===t);else{if(!e)return;try{e.hide()}catch(a){}finally{e=null}}}))},async activated(){const e=()=>{const e=Object.values(this.loader$loadedChannels).map((({ids:e})=>e)).flat(1),t=Object.keys(this.loader$loadedPosts).filter((t=>!e.includes(t)));t.forEach((e=>{delete this.loader$loadedPosts[e]})),t.length&&(this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts))};e(),await i["a"].whenReady,this.enableLoader()},deactivated(){this.disableLoader()}}},"2e34":function(e,t,a){"use strict";a("3e69")},"2e69":function(e,t,a){"use strict";a("30c9")},3:function(e,t){},3061:function(e,t,a){"use strict";a("aa59")},"30c9":function(e,t,a){},"326b":function(e,t,a){},3334:function(e,t,a){"use strict";a.r(t),a.d(t,"getCurrentUser",(function(){return n})),a.d(t,"getCurrentExpenses",(function(){return o})),a.d(t,"getCurrentIncome",(function(){return i})),a.d(t,"getTransactionById",(function(){return r})),a.d(t,"getUser",(function(){return s})),a.d(t,"listUsers",(function(){return l})),a.d(t,"getInvitation",(function(){return c})),a.d(t,"listInvitations",(function(){return d})),a.d(t,"queryInvitationsByInviterId",(function(){return u})),a.d(t,"getMessageTimer",(function(){return _})),a.d(t,"listMessageTimers",(function(){return p})),a.d(t,"getTransaction",(function(){return m})),a.d(t,"listTransactions",(function(){return h})),a.d(t,"queryTransactionsByPayerId",(function(){return g})),a.d(t,"queryTransactionsByPayeeId",(function(){return f})),a.d(t,"getTask",(function(){return b})),a.d(t,"listTasks",(function(){return y})),a.d(t,"queryTasksByMember",(function(){return v})),a.d(t,"queryTaskByCategory",(function(){return w})),a.d(t,"getProvidentFund",(function(){return k})),a.d(t,"listProvidentFunds",(function(){return S}));const n="\n query GetCurrentUser {\n getCurrentUser {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",o="\n query GetCurrentExpenses($nextToken: String, $params: String) {\n getCurrentExpenses(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",i="\n query GetCurrentIncome($nextToken: String, $params: String) {\n getCurrentIncome(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",r="\n query GetTransactionById($id: String) {\n getTransactionById(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",s="\n query GetUser($id: ID!) {\n getUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",l="\n query ListUsers(\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n credit\n username\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",c="\n query GetInvitation($id: ID!) {\n getInvitation(id: $id) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",d="\n query ListInvitations(\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listInvitations(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",u="\n query QueryInvitationsByInviterId(\n $inviterId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryInvitationsByInviterId(\n inviterId: $inviterId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",_="\n query GetMessageTimer($id: ID!) {\n getMessageTimer(id: $id) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",p="\n query ListMessageTimers(\n $filter: ModelMessageTimerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listMessageTimers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n times\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n",m="\n query GetTransaction($id: ID!) {\n getTransaction(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",h="\n query ListTransactions(\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTransactions(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",g="\n query QueryTransactionsByPayerId(\n $payerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayerId(\n payerId: $payerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",f="\n query QueryTransactionsByPayeeId(\n $payeeId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayeeId(\n payeeId: $payeeId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",b="\n query GetTask($id: ID!) {\n getTask(id: $id) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n query ListTasks(\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTasks(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",v="\n query QueryTasksByMember(\n $member: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTasksByMember(\n member: $member\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",w="\n query QueryTaskByCategory(\n $category: TaskCategory\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTaskByCategory(\n category: $category\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",k="\n query GetProvidentFund($id: ID!) {\n getProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",S="\n query ListProvidentFunds(\n $filter: ModelProvidentFundFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProvidentFunds(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n amount\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n"},3361:function(e,t,a){},3408:function(e,t,a){"use strict";a("8306")},3669:function(e,t,a){"use strict";a("c7ce")},"36a1":function(e,t,a){"use strict";a.d(t,"a",(function(){return Q}));var n=a("ff9b"),o=a("2d62"),i=a("d7df"),r=a("5515"),s=a("f680"),l=a("5584"),c=a("1926"),d=a("c49d"),u=a("3aea"),_=(a("d4b5"),a("de6c"),a("0598")),p=a("9ad5"),m=a.n(p),h=a("d6fe"),g=a("bc7b"),f=a("d710"),b=a.n(f);const{github:y}=f["update"],v=e=>f["takedown"].admins.includes(e),w="Serious Violation",k="Copyright Disputes",S="Adults Only",C=()=>{const e=Object(_["default"])()?require("developer/take-down.json"):a("9445");return e},x=C(),$=()=>{if(!Object(_["default"])())return null;const{app:e}=a("3be9"),t=e.getPath("userData");if(!t)return null;const n=Object(h["resolve"])(t,"config/take-down.json");return Object(g["existsSync"])(n)?JSON.parse(Object(g["readFileSync"])(n)):null},T=async()=>{const e=`https://raw.githubusercontent.com/${y.username}/${y.repo}/${y.branch}/developer/take-down.json`,{data:t}=await m.a.get(e).catch((()=>({data:null})));return t},z=async()=>{let e=await T();if(console.log("get from remote",e),Object(_["default"])()&&e){const{app:t}=a("3be9"),n=t.getPath("userData");if(!n)return;const o=Object(h["resolve"])(n,"config/take-down.json");Object(g["writeFileSync"])(o,JSON.stringify(e,null,2))}if(e||(e=$(),console.log("get from saved",e)),e&&"object"===typeof e)for(const t in x)x[t].splice(0,x[t].length,...e[t])},P=()=>x,A={users:[],channels:[],posts:[]};let I=!1;const q=()=>A,O=()=>{if(I)return;I=!0;const{admins:e,mode:t}=f["takedown"],a="admin"===t?0:Math.ceil(e.length/2+.5),n=[],i=()=>{console.log("update extra list",n);const e={users:[],channels:[],posts:[]};n.forEach((({id:n,admins:o,reason:i})=>{const[r,s]=n.split("|");if(!r||!s||!e[r])return;const l={id:s,reason:i,admins:o,mode:t,minCount:a};e[r].find((e=>e.id===s))||e[r].push(l)}));for(const t in e)A[t].splice(0,A[t].length,...e[t])},r=()=>{i()},s=(e="",t={})=>{for(const o in t){const i=t[o],r=n.find((e=>e.id===o));if(r)i&&[w,k,S].includes(i)?r.admins.includes(e)||r.admins.push(e):r.admins.includes(e)&&(r.admins.splice(r.admins.indexOf(e),1),0===r.admins.length&&n.splice(n.indexOf(r),1));else{if(!i)continue;if(![w,k,S].includes(i))continue;n.push({id:o,admins:[e],reason:i,minCount:a})}}r()};e.forEach((e=>{console.log("add admin",e),o["v"].user(e).get("takedowns").on((t=>{s(e,t)}))}))};a("7a76"),a("0c26");var E=a("0f0c"),D=a("8097"),j=async()=>{const e=N();console.tag.orange("recommends","urls").log(e);const{data:t,url:a}=await new Promise((async t=>{for(const a of e){const e=await L(a);if(e){t({data:e,url:a});break}}}));return console.tag.orange("recommends","got").log({url:a,data:t}),t};function N(){const e={version:Object(E["a"])("version"),buildTime:Object(E["a"])("buildTime")},t=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),a=[`${f["homepage"]}/recommends/v${e.version}.txt`,`${f["homepage"]}/recommends/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/recommends.txt`,"recommends.txt"];return t?a.splice(1,2):Object(D["a"])()&&a.unshift(`${f["homepage"]}/recommends/store/v${e.version}.txt`,`${f["homepage"]}/recommends/store/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/store/recommends.txt`),Array.from(new Set(a))}async function L(e){const t=async()=>{const t=await fetch(e);if(!t.ok||200!==t.status)return console.tag.orange("recommends","fetch").warn(t.statusText),null;try{const e=await t.text();return U(e)}catch{return null}},a=async n=>{try{return n.count&&console.tag.orange("recommends","fetch:retry",n.count).log(e),await t()}catch(o){if(o instanceof TypeError)return await new Promise((e=>setTimeout(e,1e3))),n.count+=1,await a(n);throw o}};return await a({count:0})}function U(e){if("string"!==typeof e)throw console.tag.orange("recommends","parse").error("Cannot parse data as string",e),new Error("Cannot parse data as string");const t=e.split("\n").map((e=>{var t;return null===(t=e.trim().split(" "))||void 0===t?void 0:t[0]})).filter((e=>e.match(/^[a-z0-9]{20}$/)));return t}var R=a("1738"),M=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};let F=Date.now();i["a"].on("library-db",(e=>M(void 0,void 0,void 0,(function*(){e&&(setTimeout((()=>Object(r["b"])(e)),3e3),setTimeout((()=>Object(r["b"])(e)),3e4),setTimeout((()=>Object(r["b"])(e)),6e4))})))),i["a"].emit("library-db");let B=!1;Object.defineProperty(globalThis,"verb",{get(){return B},set(e){B=e}}),Object.defineProperty(globalThis,"eventBus",{get(){return o["i"]}});const W=["G","PG","PG-13","R","NC-17"];let H=()=>{},V=null;const Q=new n["a"]({data(){return{user:null,ownedChannels:[],ownedChannelInstances:[],ownedChannelMap:new Map,followingChannels:[],showRecommend:!1,recommendPage:0,recommendIdList:[],allChannelList:[],online:!1,onlineStatus:"connecting",gunPeers:[],channelFollowerCount:{},libStatus:"init",whenReady:new Promise((e=>{let t=!1;H=()=>{t||(t=!0,R["a"].send("library_init",{cost:Date.now()-F}),e())}})),search:{text:"",option:{label:"",value:""},options:[]},currentCreator:{name:"",description:"",avatar:"",id:"",channels:[]},currentUserFromGun:null,userData:{},takedownList:{users:[],channels:[],posts:[]},takedownExtraList:{users:[],channels:[],posts:[]},isLibAdmin:!1,isFirstRegister:!1}},computed:{allowAdults(){return"NC-17"===l["a"].state.setting.libraryRate},username(){return this.userData&&"string"===typeof this.userData.name?this.userData.name:"("+c["b"].t("loading")+")"},bannedUsers(){const e=[];return[this.takedownList,this.takedownExtraList].forEach((t=>{t.users.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.channels.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.posts.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{if(t.id){if(e.includes(t.id))return!1;if(e.push(t.id),this.isBannedChannel(t))return!1}return t.title&&(t.creator||t.soul)}))},nonBlockFollowingChannels(){const{blockChannels:e,blockUsers:t}=this.userData;return e&&t?this.followingChannels.filter((a=>!(!a.id||!a.title)&&(!e.includes(a.id)&&!t.includes(a.creator)))):[]},isLoggedIn(){return!!this.user&&("ready"===this.libStatus&&!(!this.user.is||!this.user.is.pub))},sortedChannel(){return this.channelList},filteredChannels(){if(console.log("trigger filter channel"),"channel"!==this.search.option.label)return this.sortedChannel;const e=this.search.text;return this.sortedChannel.filter((t=>{var a;return!!t&&(t.title.toLowerCase().includes(e)||(null===(a=t.id)||void 0===a?void 0:a.includes(e)))}))},recommendChannels(){const e=5,t=this.filteredChannels.length,a=Math.ceil(t/e);while(this.recommendPage>a)this.recommendPage-=a;const n=[],o=this.recommendPage*e;for(let i=0;i<5;i++){const e=o+i;this.filteredChannels[e]&&!this.followingChannels.some((t=>t.id===this.filteredChannels[e].id))&&n.push(this.filteredChannels[e])}return n},addedPostMap(){const e=Object.create(null);for(const t in l["a"].getters.abKeys){const a=l["a"].getters.abKeys[t];a.forEach((a=>{e[a.key]={type:t,infoHash:a.infoHash,playFile:a.playFile}}))}return e}},methods:{register(e,t,a){return M(this,void 0,void 0,(function*(){this.isFirstRegister=!0,yield this.logout();const n=yield Object(o["z"])(e,t,a);return Object(r["c"])(),n}))},login(e){return M(this,void 0,void 0,(function*(){return this.isLibAdmin=!1,this.isLoggedIn?(console.log("should logged out",this.user),Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,console.log("relogin"),this.login(e)):(setTimeout((()=>{!this.followingChannels.length&&this.isLoggedIn&&this.updateFollow()}),1e4),Object(o["w"])(e))}))},logout(){return M(this,void 0,void 0,(function*(){this.isLibAdmin=!1,Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,this.userData={blockChannels:[],blockUsers:[]},this.followingChannels=[],this.ownedChannels=[]}))},prepareData(){var e;return M(this,void 0,void 0,(function*(){if(console.log("prepare data"),this.updateRecommends(),this.user=Object(o["u"])(),this.userData=Object(o["t"])().data,!this.user._||!this.user._.sea)throw new Error("User is not logged in");localStorage.setItem(`library-pair@${o["e"]}`,JSON.stringify(this.user._.sea)),this.isLibAdmin=v(null===(e=this.user.is)||void 0===e?void 0:e.pub),this.$emit("logged-in"),this.libStatus="fetch",yield this.getAllChannels(),this.updateOwn(),console.time("> lib: get private data"),yield this.updateFollow(),console.timeEnd("> lib: get private data"),this.libStatus="ready",H(),O(),this.takedownList=P(),this.takedownExtraList=q(),console.log("Takedown list:",this.takedownList)}))},isBannedChannel(e){return!!this.bannedUsers.includes(e.creator)||!!this.bannedChannels.includes(e.id)},isBannedPost(e){return!!this.bannedPosts.includes(e.id)},isValidRate(e){const t=l["a"].getters.settings.libraryRate,a=W.indexOf(e),n=W.indexOf(t);return a<=n},getAllChannels(){return M(this,void 0,void 0,(function*(){return V||(V=new Promise((e=>M(this,void 0,void 0,(function*(){const t=yield Object(o["k"])();if(t===this.allChannelList)return e();Object(d["a"])("get channel list",t,t.length),this.$set(this,"allChannelList",t),e()})))),V)}))},getRandomChannels(e,t){const a=this.followingChannels.map((e=>e.id)),n=(0===this.recommendIdList.length?this.channelList:this.recommendIdList.map((e=>this.channelList.find((t=>t.id===e))))).filter((e=>e&&!a.includes(e.id))),o=n.filter((e=>!e.hidden&&(!Array.isArray(t)||!t.includes(e.id))));if(0===o.length&&l["a"].getters.settings.libraryShowAllChannels){const e=this.channelList.filter((e=>!e.hidden&&(!!this.recommendIdList.includes(e.id)&&(!Array.isArray(t)||!t.includes(e.id)))));e.length&&o.push(...e)}if(o.length<=e)return o;for(let i=o.length-1;i>0;i--){const e=Math.floor(Math.random()*(i+1));[o[i],o[e]]=[o[e],o[i]]}if(b.a.library.recommends){const e=navigator.language,t=b.a.library.recommends[e]||b.a.library.recommends.default;if(t.length)for(let a=0;a(Object(d["a"])("Created new channel",e.id,e),Q.allChannelList.find((t=>!!t.id&&t.id===e.id))||e.id&&Q.allChannelList.push(e),setTimeout((()=>{Object(o["j"])(e.id).then((e=>{Object(r["c"])()}))}),1e3),e)))):null}))},editChannel(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["f"])(e,t);return Object(r["c"])(),a}))},removeChannel(e){return M(this,void 0,void 0,(function*(){const t=yield Object(o["A"])(e).then((t=>(Object(d["a"])("Removed",t,e),setTimeout((()=>Object(o["A"])(e)),1e3),t)));return Object(r["c"])(),t}))},createPost(e,t){return M(this,void 0,void 0,(function*(){if(!this.isLoggedIn)return null;const a=yield Object(o["b"])(t,e);return Object(r["c"])(),Q.getChannelPosts(t,!1).then((t=>{t.find((t=>!!t.id&&t.id===e.id))||e.id&&t.push(e)})),a}))},addPosts(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["c"])(t,e);return Object(r["c"])(),a}))},editPost(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["g"])(e,t,a);return Object(r["c"])(),n}))},removePost(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["B"])(t,e);return Object(r["c"])(),a}))},getChannelById(e){return Object(o["l"])(e)},getChannelPosts(e,t){return M(this,void 0,void 0,(function*(){return Object(o["o"])(e,t||!1)}))},getChannelPostIds(e,t){return M(this,void 0,void 0,(function*(){return Object(o["q"])(e,t||!1)}))},getPostById(e,t,a){return M(this,void 0,void 0,(function*(){return Object(o["p"])(e,t,a)}))},followChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: follow",e);const t=yield Promise.race([new Promise((t=>{setTimeout((()=>{this.followingChannels.some((t=>t.id===e))?t(null):Object(o["j"])(e).then(t)}),1500)})),Object(o["j"])(e)]);return this.isFirstRegister=!1,Object(r["c"])(),t}))},unfollowChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: unfollow",e);const t=yield Object(o["E"])(e);return Object(r["c"])(),t}))},blockChannel(e){return Object(o["d"])("channel",e)},blockUser(e){return Object(o["d"])("user",e)},unblockChannel(e){return Object(o["D"])("channel",e)},unblockUser(e){return Object(o["D"])("user",e)},takedown(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["C"])(e,t,a);return console.log("Takedown result",n),n}))},setSearchOption(e){this.search.options=e,this.search.text="",e.length&&(this.search.option=e[0])},todo(e){s["a"].create(`Incomplete. info: ${e}`)}},created(){setTimeout((()=>{this.getAllChannels(),this.updateRecommends()}),2e3),z();const e=new Set;console.log("[lib] created"),Object(d["b"])((t=>{e.has(t)||Object(r["a"])(t)}));const t=new Set;setInterval((()=>{var e,a;const n=Object.values(o["v"]._.opt.peers);let i=!1;if(n.length){for(const t of n)if((null===(e=null===t||void 0===t?void 0:t.wire)||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(this.online=!0,this.onlineStatus="connected",i=!0),t.wire instanceof WebSocket){const e={type:"ws",url:t.url,status:(null===(a=t.wire)||void 0===a?void 0:a.readyState)||0},n=this.gunPeers.findIndex((t=>t.url===e.url));-1!==n?this.$set(this.gunPeers,n,e):this.gunPeers.push(e)}this.gunPeers.forEach((e=>{"wrtc"!==e.type&&(n.find((t=>t.url===e.url||t.id===e.url))||this.$set(e,"status",WebSocket.CLOSED))}))}else this.online=!1,"connected"===this.onlineStatus&&(this.onlineStatus="reconnecting");Object.values(r["d"]).forEach((e=>{var t;const a={closed:WebSocket.CLOSED,connected:WebSocket.OPEN,connecting:WebSocket.CONNECTING,disconnected:WebSocket.CLOSED,failed:WebSocket.CLOSED,new:WebSocket.CONNECTING}[e.connectionState];a===WebSocket.OPEN&&(i=!0);const n={type:"wrtc",url:e.id,from:e._from,status:a,statusText:e.connectionState,label:Object(u["f"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||""),syncState:e.syncState,remoteSyncState:e.remoteSyncState,downloaded:e.downloaded,downloadSpeed:e.downloadSpeed,uploaded:e.uploaded,uploadSpeed:e.uploadSpeed},o=this.gunPeers.findIndex((e=>e.url===n.url));-1!==o?this.$set(this.gunPeers,o,n):this.gunPeers.push(n)}));for(let o=0;o0},attrs:{rounded:"",color:"primary",icon:e.selected.length?"star":void 0,label:e.selected.length?e.$t("follow_channels_and_continue",[e.selected.length]):e.$t("follow_any_channel_to_continue"),disable:!e.selected.length},on:{click:e.onFollow}}),a("q-btn",{staticClass:"action-btn q-px-sm q-mr-xl",attrs:{rounded:"",color:"primary",icon:"refresh",label:e.$t("show_more_for_me")},on:{click:e.loadMore}})],1)],2)])},o=[],i=(a("de6c"),a("fb31")),r=a.n(i),s=a("36a1"),l={name:"LibraryRecommend",props:{fullscreen:Boolean},data(){return{initTimer:null,badImage:[],recommends:[],selected:[],lib:s["a"]}},computed:{autoSelectIds(){const e=navigator.language,t=r.a.library.recommends;return t[e]?t[e]:t.default},followings(){return s["a"].followingChannels.map((e=>e.id))},filteredRecommends(){const e=s["a"].recommendIdList.length?this.recommends.filter((e=>s["a"].recommendIdList.includes(e.id))):this.recommends;if(!s["a"].userData)return e;const{blockChannels:t,blockUsers:a}=s["a"].userData;return t&&a?e.filter(((n,o)=>e.findIndex((e=>e.id===n.id))===o&&!t.includes(n.id)&&!a.includes(n.creator))):e}},watch:{filteredRecommends(e){if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}},methods:{async initRecommends(){this.getRecommends(),this.$root.$emit("navigate-to"),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}))},getRecommends(){const e=this.lib.getRandomChannels(5);this.recommends.splice(0,5,...e),0===e.length&&setTimeout((()=>{this.getRecommends()}),2e3)},loadMore(){const e=this.lib.getRandomChannels(6,this.recommends.map((e=>e.id)));if(!e.length)return this.$q.dialog({message:this.$t("no_more_recommend"),ok:this.$t("ok")});this.recommends.push(...e),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}))},select(e){this.selected.includes(e)?this.selected.splice(this.selected.indexOf(e),1):this.selected.push(e)},onFollow(){for(const e of this.selected)s["a"].followChannel(e);this.selected.splice(0),this.autoSelectIds.length&&setTimeout((()=>{for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}),5e3)},onImageError(e){this.badImage.push(e)},onImageLoaded(e){-1!==this.badImage.indexOf(e)&&this.badImage.splice(this.badImage.indexOf(e),1)}},mounted(){const e=()=>{var t;"signedIn"===(null===(t=this.$store.state.account)||void 0===t?void 0:t.authState)?this.initTimer=setTimeout((()=>{this.initRecommends()}),500):this.initTimer=setTimeout(e,1e3)};e()},beforeDestroy(){clearTimeout(this.initTimer)}},c=l,d=(a("7895"),a("2b5f")),u=a("e586"),_=a("d7c7"),p=a("f106"),m=a("1043"),h=a("4101"),g=a("09a4"),f=a.n(g),b=Object(d["a"])(c,n,o,!1,null,"0d732dc4",null);t["a"]=b.exports;f()(b,"components",{QCard:u["a"],QCardSection:_["a"],QIcon:p["a"],QBtn:m["a"],QColor:h["a"]})},"38d2":function(e,t,a){},"39df":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"development-container",class:{large:e.isElectron}},[a("q-card",{attrs:{flat:"",square:""}},[a("q-tabs",{attrs:{align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},e._l(e.tabs,(function(t){return a("q-tab",e._b({key:t.name},"q-tab",t,!1))})),1),a("q-separator"),a("q-tab-panels",{staticClass:"panels",attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[a("q-tab-panel",{attrs:{name:"BasicPanel"}},[a("BasicPanel")],1),a("q-tab-panel",{attrs:{name:"accountInfo"}},[a("account-tab-panel")],1),a("q-tab-panel",{attrs:{name:"amplify"}},[a("amplify-tab-panel")],1),a("q-tab-panel",{attrs:{name:"devInfo"}},[a("dev-info-tab-panel")],1),a("q-tab-panel",{attrs:{name:"capacitorTest"}},[a("CapacitorTest")],1),a("q-tab-panel",{attrs:{name:"urlConvert"}},[a("url-convert")],1),a("q-tab-panel",{attrs:{name:"libraryData"}},[a("library-data")],1),a("q-tab-panel",{attrs:{name:"libraryPreload"}},[a("LibraryPreload")],1),a("q-tab-panel",{attrs:{name:"payment_mode"}},[a("payment-mode")],1),a("q-tab-panel",{attrs:{name:"theme_panel"}},[a("ThemeTabPanel")],1)],1)],1)],1)},o=[],i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"panel"},e._l(e.handlersData,(function(t){var n=t[0],o=t[1];return a("q-btn",e._b({key:n.key,attrs:{"no-caps":"",unelevated:""},on:{click:o}},"q-btn",n,!1))})),1),a("q-separator"),a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v("Dynamic Config")]),a("div",{staticStyle:{"white-space":"pre-wrap"}},[e._v(e._s(JSON.stringify(e.d$cfg,null,2)))])]),a("q-separator"),a("q-card-section")],1)},r=[],s=(a("de6c"),a("a1c1"),a("91ab")),l=a("d310");const c=a("d310").isElectron();var d={name:"BasicPanel",data(){return{handlers:[[{color:"positive",icon:"bug_report"},this.openWebtorrentDevTools],[{color:"positive",icon:"refresh"},this.reloadWebTorrent],[{color:"negative",icon:"delete_forever"},this.delete_config],[{color:"negative",icon:"delete"},this.clearBlockchainConfig],this.getUsersLanguage,this.getVueLocale,this.getLocale]}},computed:{handlersData(){return this.handlers.map((e=>Array.isArray(e)?e:[{},e])).map((([e,t])=>{e=Object.assign({key:t.name.substring(6),label:Object(s["a"])(t.name.substring(6)).replace(/-/g," "),color:"general",textColor:e.color||"general"},e);const a=async()=>{const e=t();e&&e.then&&await e};return[e,a]}))}},methods:{delete_config(){this.$q.electron.ipcRenderer.invoke("deleteConfig").then((e=>{this.$q.notify(e)}))},getLocale(){this.$q.notify(this.$q.lang.getLocale())},getVueLocale(){this.$q.notify(this.$i18n.locale)},getUsersLanguage(){l["localConfigs"].getSettingsItem("language").then((e=>{this.$q.notify({message:e,position:"bottom-right",type:"positive",timeout:3e3})})).catch((()=>{this.$q.notify({message:"未获取到数据项",position:"bottom-right",type:"negative",timeout:3e3})}))},openWebtorrentDevTools(){if(c)return a("1b85").ipcRenderer.send("open-webtorrent-devtools")},reloadWebTorrent(){c&&(a("1b85").ipcRenderer.send("reload-webtorrent-window"),this.$q.notify("WebTorrent window is reloaded"))},async clearBlockchainConfig(){await new Promise((e=>setTimeout(e,2e3))),await window.$blockchain.$store.account.deleteCurrentAccount(),localStorage.removeItem("blockchain.network");const e=window.$blockchain.network.getNetworkConfig();window.$blockchain.network.updateNetworkConfig(e),location.reload()}}},u=d,_=(a("bc42"),a("2b5f")),p=a("1043"),m=a("fc38"),h=a("d7c7"),g=a("09a4"),f=a.n(g),b=Object(_["a"])(u,i,r,!1,null,"60f74c22",null),y=b.exports;f()(b,"components",{QBtn:p["a"],QSeparator:m["a"],QCardSection:h["a"]});var v=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticStyle:{margin:"-4px"}},e._l(e.$account.$test,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{unelevated:"",color:"general","text-color":"general","no-caps":"",label:n,disable:!!e.test$loadingState,loading:e.test$loadingState===n},on:{click:function(a){return e.test$withLoadingState(n,t)}}})})),1),a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-ma-sm"},[a("q-checkbox",{attrs:{label:"isTestEnv"},model:{value:e.isTest,callback:function(t){e.isTest=t},expression:"isTest"}})],1),a("h4",[e._v(e._s(e.$store.state.account.authState))]),"signedIn"===e.$store.state.account.authState?a("div",{staticClass:"row",staticStyle:{margin:"-4px"}},[e._l(e.$store.getters.accountUserInfo,(function(t,n){return[Array.isArray(t)?[a("div",{key:n,staticClass:"col-12 col-lg-6 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden",attrs:{flat:"",bordered:""}},[Array.isArray(t)?a("q-expansion-item",{attrs:{"content-inset-level":.4,label:n}},e._l(t,(function(t,n){return a("div",{key:n},[e._v(e._s(t)+"\n ")])})),0):e._e()],1)],1)]:[a("div",{key:n,staticClass:"col-6 col-sm-3 col-lg-2 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden q-px-md q-py-sm",staticStyle:{"min-height":"66px"},attrs:{flat:"",bordered:""}},[a("div",{staticClass:"text-capitalize",staticStyle:{"font-size":"0.8rem",opacity:"0.8"}},[e._v(e._s(n)+"\n ")]),a("div",{staticClass:"text-weight-bold text-no-wrap ellipsis"},[e._v(e._s(t))])])],1)]]}))],2):e._e(),"signedIn"===e.$store.state.account.authState?[a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-mb-sm"},[a("q-input",{staticStyle:{"max-width":"300px"},attrs:{label:"TestToken",dense:"",outlined:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.testToken,callback:function(t){e.testToken=t},expression:"testToken"}})],1),a("div",[a("alphabiz-button",{attrs:{label:"Add Credits 100","on-click":e.addCredits}})],1)]:e._e()],2)},w=[],k=a("e75b");const S=new k["a"].Rest("ABDevRest");var C={name:"AccountTabPanel",data(){return{test$loadingState:null,testToken:""}},computed:{isTest:{get(){return this.$root.isTestEnv},set(e){this.$root.isTestEnv=e}}},methods:{async test$withLoadingState(e,t){try{this.test$loadingState=e,await t()}finally{this.test$loadingState=null}},async addCredits(){try{const e=await S.post("/development/addCredits",{testToken:this.testToken});console.log(e)}catch(e){this.$q.notify({message:e.message,type:"negative",position:"bottom-right",timeout:5e3})}}}},x=C,$=a("7498"),T=a("e586"),z=a("5bbd"),P=a("0e45"),A=Object(_["a"])(x,v,w,!1,null,"2975ce9d",null),I=A.exports;f()(A,"components",{QBtn:p["a"],QSeparator:m["a"],QCheckbox:$["a"],QCard:T["a"],QExpansionItem:z["a"],QInput:P["a"]});var q=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{margin:"-12px"}},[a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event"},on:{click:e.dispatchPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"send public event"},on:{click:e.sendPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"subscribe public event"},on:{click:e.subscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"unsubscribe public event"},on:{click:e.unsubscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event [legacy]"},on:{click:e.dispatchPublicEventLegacy}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"rest_dev"},on:{click:e.restDev}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"regInfo"},on:{click:e.regInfo}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dialog"},on:{click:e.dialog}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:trigger_event"},on:{click:e.triggerAnalyticsEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:updateEndpoint"},on:{click:e.updateEndpoint}})],1)},O=[],E=(a("d4b5"),a("bc7b")),D=a.n(E),j=a("bbac"),N=a("229c");const L=new k["a"].Rest("ABDevRest"),U={mounted(){N["a"].$debug()},methods:{async updateEndpoint(){const e=await N["a"].updateEndpoint({attributes:{foo:"bar"},immediate:!0});console.log("updateEndpoint:",e)},async triggerAnalyticsEvent(){console.log("triggerAnalyticsEvent:","sending");const e=await N["a"].record({immediate:!0,name:"test_analytics",attributes:{source:"triggerAnalyticsEvent"},metrics:{foobar:Math.floor(1e3*Math.random())}});console.log("triggerAnalyticsEvent:","sent",e)}}};var R={name:"AmplifyTabPanel",mixins:[U],data(){return{currentLoadingState:!1}},methods:{async dispatchPublicEvent(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"9865c315-e778-4de3-8045-1af79eba7fb4",channel:"foo_channel",data:JSON.stringify({a:213123,b:"lorem-server"})});console.log(e)},async dispatchPublicEventLegacy(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"*",channel:"foo_channel-legacy",legacy:!0,data:JSON.stringify({a:213123,b:"lorem-server-legacy"})});console.log(e)},async sendPublicEvent(){},async subscribePublicEvent(){},async unsubscribePublicEvent(){},async dialog(){const e=this.$alphabiz.dialog({title:"Tel",prompts:{tel:{type:"tel",model:{countryCode:null,prefixCode:null,phoneNumber:""}}}}),t=await e.promise("ok");console.log(t)},async restDev(){const e=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},t=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e},a=t(),n=await e(a);if(!n)return;const o=this.$root.$children[0];console.log(n.path),o.lib$openABK(n.path)},async regInfo(){let e=null;const t=[],a=()=>L.post("/development/admin/query",{token:"asdasdasd",type:"reg_info",pagination_token:e});while(e||null===e)await a().then((({data:a})=>{e=a.PaginationToken,t.push(...a.Users),console.log(`queried ${t.length} (+${a.Users.length})`,a.PaginationToken)}));console.log("save users",t);const n=async e=>{const t=e=>{const t={};return t.username=e.Username,t.user_status=e.UserStatus,t.user_create_date=e.UserCreateDate,t.user_last_modified_date=e.UserLastModifiedDate,e.Attributes.forEach((({Name:e,Value:a})=>{t[`attr_${e}`]=a})),t},a=e.map(t),n=(()=>{let e=[];return a.forEach((t=>{const a=Object.keys(t);a.length>e.length&&(e=a)})),e=e.map((e=>({header:e,key:e}))),e})();console.log("columns",n);const o=a.map((e=>{const t=[];return n.forEach((a=>{var n;t.push(null!==(n=e[a.key])&&void 0!==n?n:"null")})),t})),i=await new Promise(((e,t)=>{Object(j["stringify"])(o,{header:!0,columns:n},((a,n)=>{a?t(a):e(n)}))}));return i};n(t).then((e=>{console.log("csv saving...",e),D.a.writeFileSync("./users.csv",e),console.log("done")}))}}},M=R,F=Object(_["a"])(M,q,O,!1,null,null,null),B=F.exports;f()(F,"components",{QSeparator:m["a"],QBtn:p["a"]});var W=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e.devInfo.torrentStore?a("div",{staticClass:"full-width"},[e._v("Torrent Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.torrentStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetTorrent}}),a("pre",[e._v(e._s(e.devInfo.torrentStore))])],1):e._e(),e.devInfo.settingStore?a("div",{staticClass:"full-width"},[e._v("Setting Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.settingStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetSetting}}),a("pre",[e._v(e._s(e.devInfo.settingStore))])],1):e._e(),e._v("\n We are using\n "),e.devInfo.electronVer?a("div",{staticClass:"full-width"},[e._v("Electron "+e._s(e.devInfo.electronVer)+"\n ")]):e._e(),e.devInfo.chromeVer?a("div",{staticClass:"full-width"},[e._v("Chrome "+e._s(e.devInfo.chromeVer)+"\n ")]):e._e(),e.devInfo.nodeVer?a("div",{staticClass:"full-width"},[e._v("Node "+e._s(e.devInfo.nodeVer)+"\n ")]):e._e(),a("div",[e._v("Quasar "+e._s(e.$q.version))]),a("div",[e._v("Vue "+e._s(e.vueVersion))]),a("div",[e._v(" "+e._s(e.$q.platform))]),e.devInfo.isCapacitor?a("div",{staticClass:"is-capacitor"},[e._v("[ Capacitor(Mobile) Mode ]")]):e._e(),e.devInfo.processArgv?a("div",{staticClass:"full-width"},[e._v("Process Argv "+e._s(e.devInfo.processArgv))]):e._e(),a("div",{staticClass:"full-width"},[e._v("Platform info: "+e._s(e.devInfo.platformInfo))]),a("div",{staticClass:"full-width"},[e._v("Location href: "+e._s(e.devInfo.locationHref))]),a("q-btn",{attrs:{color:"primary",icon:"aod",label:"capacitor test"},on:{click:e.testCapacitor}})],1)},H=[],V=a("ff9b"),Q=a("908d"),G=a("d7df"),K=a("d558");const Y=a("d310").isElectron(),J=Y?a("1b85").ipcRenderer:null;var Z={name:"DevInfoTabPanel",data(){return console.log("PLATFORM",Q["b"].is,location),{io:G["a"],devInfo:{torrentStore:"",settingStore:"",platformInfo:Q["b"].is,locationHref:location.href,isCapacitor:Object(K["a"])()}}},methods:{open(e){this.io.emit("show_torrent_file",e)},resetTorrent(){Y&&J.send("reset-torrent")},resetSetting(){this.$store.dispatch("resetSettings").then((e=>{this.$i18n.locale=e.language,this.$q.notify("Reset success")}))},testCapacitor(){fetch("http://localhost:25742",{mode:"cors"}).then((e=>e.json())).then((e=>{console.log("CAPACITOR test success",e),this.$q.dialog({html:!0,message:"
"+JSON.stringify(e,null,2)+"
",ok:!0})})).catch((e=>{console.log("CAPACITOR test failed",e),console.log(e.message),console.log(e.stack),this.$q.dialog({message:e.message||e,ok:!0})}))}},mounted(){Y&&(J.on("dev-info",((e,t)=>{t.torrentStore&&(this.devInfo.torrentStore=t.torrentStore),t.settingStore&&(this.devInfo.settingStore=t.settingStore),t.electronVer&&(this.devInfo.electronVer=t.electronVer),t.chromeVer&&(this.devInfo.chromeVer=t.chromeVer),t.nodeVer&&(this.devInfo.nodeVer=t.nodeVer),t.argv&&(this.devInfo.processArgv=t.argv)})),J.send("dev-info")),this.io.off("notify",this.notify),this.io.on("notify",this.notify)},computed:{vueVersion(){return V["a"].version}}},X=Z,ee=(a("3fc8"),Object(_["a"])(X,W,H,!1,null,"39f109b1",null)),te=ee.exports;f()(ee,"components",{QBtn:p["a"]});var ae=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e._v("\n Alphabiz URL Convert\n "),a("q-input",{staticClass:"q-my-md",attrs:{type:"text",label:"source url"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.url,callback:function(t){e.url=t},expression:"url"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Convert"},on:{click:e.convert}})],1)},ne=[],oe=a("c5a5"),ie={name:"DevInfoTabPanel",data(){return{url:""}},methods:{convert(){Object(oe["a"])(this.url).then((e=>{this.url=e})).catch((e=>{console.error(e)}))}}},re=ie,se=Object(_["a"])(re,ae,ne,!1,null,"19fc1694",null),le=se.exports;f()(se,"components",{QInput:P["a"],QBtn:p["a"]});var ce=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-data"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"text-h6 q-py-md"},[e._v("Media Library Database")]),a("div",{staticClass:"current-lib-status"},[e._v("There are "+e._s(e.entriesCount)+" entries in library")]),a("q-btn",{attrs:{color:"primary",icon:"save",label:"Export"},on:{click:e.saveDb}}),a("FileSelector",{on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",icon:"upload_file",label:"Import"}})],1),a("br"),a("q-btn",{staticClass:"q-mt-md",attrs:{color:"primary",icon:"bug_report",label:"Library Debug Log"},on:{click:function(t){e.showDebugLog=!0}}}),a("q-dialog",{model:{value:e.showDebugLog,callback:function(t){e.showDebugLog=t},expression:"showDebugLog"}},[a("q-card",{staticStyle:{"max-width":"80%"}},[a("q-card-section",[a("DebugLog")],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",color:"primary",icon:"close",label:"Close"}})],1)],1)],1)],1)},de=[],ue=a("2d62"),_e=a("3aea"),pe=a("5515"),me=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"debug-logs row col-12 q-pa-md"},[a("p",{staticClass:"col-12 q-mt-none",staticStyle:{"font-size":"24px"}},[e._v("Debug pannel")]),a("div",{staticClass:"peers col-6 q-pa-sm",staticStyle:{border:"1px solid gainsboro"}},e._l(e.peers,(function(t){return a("div",{key:t.url,staticClass:"peer"},[a("div",{staticClass:"status"},[a("q-badge",{attrs:{label:t.type}}),a("span",{directives:[{name:"show",rawName:"v-show",value:"wrtc"!==t.type,expression:"peer.type !== 'wrtc'"}],class:"connected"===t.status?"text-green":"text-grey"},[e._v("\n [ "+e._s(t.status)+" ]\n ")]),t.from?a("span",{staticClass:"text-green"},[e._v("[ "+e._s(t.from)+" ]")]):e._e(),a("span",[e._v(e._s(t.url))]),t.remoteSyncState?a("q-icon",{attrs:{color:"primary",name:t.stateIcon}},[a("q-tooltip",[a("span",[e._v("Local sync state: "+e._s(t.syncState))]),a("br"),a("span",[e._v("Remote sync state: "+e._s(t.remoteSyncState))])])],1):e._e()],1)])})),0),a("div",{staticClass:"logs col q-px-sm"},[e._v("\n --info--\n "),a("div",{staticClass:"user"},[e._v("User "+e._s(e.userInfo))]),a("div",{staticClass:"channels"},[e._v("Channels("+e._s(e.channels.length)+"): [\n "),e._l(e.channels,(function(t){return a("div",{key:t.id,staticClass:"channel q-ml-sm"},[e._v("\n "+e._s(t.title)+"\n "),a("span",{staticClass:"text-grey"},[e._v("UID: "+e._s(t.id))])])})),e._v("\n ]\n ")],2)])])},he=[],ge=a("36a1"),fe={data(){return{lib:ge["a"]}},computed:{peers(){const e=[];return this.lib.gunPeers.forEach((t=>{let a="";switch(t.status){case WebSocket.CONNECTING:a="connecting";break;case WebSocket.OPEN:a="connected";break;case WebSocket.CLOSED:a="closed";break;case WebSocket.CLOSING:a="closing";break}let n="arrow_downward";"completed"===t.remoteSyncState?n="completed"===t.syncState?"done_all":"arrow_upward":"completed"!==t.syncState&&(n="sync"),e.push({from:t.from,url:t.label||t.url,type:t.type,syncState:t.syncState,remoteSyncState:t.remoteSyncState,stateIcon:n,status:a})})),e},userInfo(){var e;const t=this.lib.user;return`UID: ${null===t||void 0===t||null===(e=t.is)||void 0===e?void 0:e.pub}`},channels(){return this.lib.channelList.map((e=>({title:e.title,id:e.id})))}}},be=fe,ye=(a("28c4"),a("90c4")),ve=a("f106"),we=a("cf25"),ke=Object(_["a"])(be,me,he,!1,null,null,null),Se=ke.exports;f()(ke,"components",{QBadge:ye["a"],QIcon:ve["a"],QTooltip:we["a"]});var Ce=a("d710"),xe=a.n(Ce),$e=a("9a50"),Te={components:{DebugLog:Se,FileSelector:$e["a"]},name:"LibraryData",data(){return{entriesCount:Object.keys(ue["v"]._.graph).length,showDebugLog:!1,countInterval:null}},methods:{parseLib(){},saveDb(){Object(_e["h"])(JSON.stringify({timestamp:Date.now(),graph:ue["v"]._.graph}),`${xe.a.name}-library-${Date.now()}.json`)},importDb(){this.$refs.fileSelector.click()},put(e){Object(pe["b"])(e),this.$q.notify(`Successfully import ${Object.keys(e).length} entries`)},onFileChange(e){e&&Object(_e["g"])(e).then((e=>{const t=JSON.parse(e);if(!t.graph)return this.$q.notify(`This JSON file is not an ${xe.a.name} library db`);Date.now()-t.timestamp>6048e5?this.$q.dialog({title:"DB file too old",message:"This database file is created long time ago and may not be latest. Latest version of data will overwrite this db. Still import it?",ok:"Import anyway",cancel:"No",persistent:!0}).onOk((()=>{this.put(t.graph)})):console.log("Loaded db")}))}},created(){clearInterval(this.countInterval),this.countInterval=setInterval((()=>{this.entriesCount=Object.keys(ue["v"]._.graph).length}),1e3)},beforeDestroy(){clearInterval(this.countInterval)}},ze=Te,Pe=a("b2aa"),Ae=a("59ba"),Ie=a("a431"),qe=Object(_["a"])(ze,ce,de,!1,null,"0442e706",null),Oe=qe.exports;f()(qe,"components",{QBtn:p["a"],QDialog:Pe["a"],QCard:T["a"],QCardSection:h["a"],QCardActions:Ae["a"]}),f()(qe,"directives",{ClosePopup:Ie["a"]});var Ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v("\n Payment Mode\n ")]),a("q-toggle",{model:{value:e.dp$toggle,callback:function(t){e.dp$toggle=t},expression:"dp$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":e.paymentColor,color:e.paymentColor}},[e._v("\n "+e._s(e.paymentLabel)+"\n ")])],1)],1),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Address",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$address))])]},proxy:!0}])}),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Credits",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$credit))])]},proxy:!0}])}),a("q-list",{staticClass:"q-my-md rounded-borders overflow-hidden non-selectable",staticStyle:{width:"640px",border:"1px solid rgba(127,127,127,0.35)"}},[a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:!this.dp$toggle,expression:"!this.dp$toggle"}],attrs:{tag:"label",disable:!this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showCreditPage,disable:!this.dp$toggle,val:"teal",color:"teal"},on:{input:function(t){return e.leftDrawer.showCreditPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Amplify Credits Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1),a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:this.dp$toggle,expression:"this.dp$toggle"}],attrs:{tag:"label",disable:this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showBlockchainPage,disable:this.dp$toggle,val:"orange",color:"orange"},on:{input:function(t){return e.leftDrawer.showBlockchainPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Blockchain Account Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1)],1),!e.dp$toggle&&e.$store.state.credits.providentFund?a("q-toggle",{model:{value:e.pf$toggle,callback:function(t){e.pf$toggle=t},expression:"pf$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":"general",color:"general"}},[e._v("\n ProvidentFund: "+e._s(e.$store.state.credits.providentFund.enable?"Enabled":"Disabled")+"\n ")])],1):e._e()],1)},De=[],je=a("09e8");const Ne={computed:{pf$toggle:{get(){const e=this.$store.state.credits.providentFund;if(!e){const e=localStorage.getItem("credit.providentFund");return!e||JSON.parse(e).enable}return e.enable},set(e){const t=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},e)})();t.enable=e,localStorage.setItem("credit.providentFund",JSON.stringify(t)),this.$store.commit("CREDIT_UPDATE",{"providentFund.enable":e})}}}};var Le={name:"PaymentMode",mixins:[je["a"],Ne],data(){return{changed:!1}},watch:{dp$toggle(e){e?(this.leftDrawer.showCreditPage=!1,this.leftDrawer.showBlockchainPage=!0):(this.leftDrawer.showCreditPage=!0,this.leftDrawer.showBlockchainPage=!1),this.changed=!this.changed,this.changed&&this.showRestartDialog()}},computed:{dp$toggle:{get(){return this.dp$mode?"blockchain"===this.dp$mode:"blockchain"===localStorage.getItem("dataPaymentMixin.mode")},set(e){this.dp$mode=e?"blockchain":"amplify"}},leftDrawer(){const e=this.$route.matched.find((e=>"MainLayout"===e.name)).instances.default;return e.$refs.leftDrawer},paymentLabel(){return this.dp$toggle?"Blockchain-based Service":"Managed Service (Amplify)"},paymentColor(){return this.dp$toggle?"accent":"positive"}},methods:{showRestartDialog(){this.$q.dialog({title:"Change Payment Mode",message:"you should restart application",ok:"Restart",cancel:"Undo"}).onOk((async()=>{a("d310").isElectron()&&a("1b85").ipcRenderer.send("reload-webtorrent-window"),await this.$router.push({name:"Index"}),location.reload()})).onCancel((()=>{this.dp$toggle=!this.dp$toggle}))}}},Ue=Le,Re=a("03bd"),Me=a("b121"),Fe=a("e7c2"),Be=a("b329"),We=a("25fb"),He=a("79e0"),Ve=a("719b"),Qe=Object(_["a"])(Ue,Ee,De,!1,null,"34cd40b6",null),Ge=Qe.exports;f()(Qe,"components",{QToggle:Re["a"],QBadge:ye["a"],QField:Me["a"],QList:Fe["a"],QItem:Be["a"],QItemSection:We["a"],QCheckbox:$["a"],QItemLabel:He["a"]}),f()(Qe,"directives",{Ripple:Ve["a"]});var Ke=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-preload"},[a("q-checkbox",{staticClass:"q-mr-lg",attrs:{value:e.libraryPreload,label:"Enable preload"},on:{input:e.changePreload}}),a("q-checkbox",{directives:[{name:"show",rawName:"v-show",value:e.libraryPreload,expression:"libraryPreload"}],attrs:{value:e.showPreload,label:"Show preload tasks"},on:{input:e.changeShowPreload}}),a("div",{staticClass:"preload-tasks"},e._l(e.preloadTasks,(function(t,n){return a("div",{key:t.abUrl,staticClass:"preload-task q-ma-xs"},[a("div",{staticClass:"task-name q-mr-xs"},[e._v(e._s(n+1)+". "+e._s(t.postTitle||t.torrent&&(t.torrent.postTitle||t.torrent.name)||t.abUrl))]),a("span",{staticClass:"status"},[e._v("Status:\n "),t.failed?a("span",{staticClass:"status-text text-red"},[e._v("Failed")]):t.torrentPath?a("span",{staticClass:"status-text",class:2===t.torrent.preloadStatus?"text-green":""},[e._v("\n "+e._s(2===t.torrent.preloadStatus?"Downloaded":"Downloading")+"\n ")]):a("span",{staticClass:"status-text text-grey"},[e._v("Loading")])]),t.torrent&&2===t.torrent.preloadStatus?a("span",{staticClass:"q-ml-sm"},[a("span",{staticClass:"downloaded"},[e._v("Preload size:")]),a("span",{staticClass:"downloaded-size q-mx-xs"},[e._v(e._s(e.byteToLarger(t.torrent.downloaded)))]),a("q-btn",{attrs:{color:"general","no-caps":"",flat:"",dense:"",size:"xs"},on:{click:function(a){return e.showLocal(t.torrent)}}},[a("q-icon",{attrs:{name:"open_in_new",size:"14px"}}),a("span",{staticClass:"label",staticStyle:{"font-size":"14px"}},[e._v("Local files")])],1)],1):e._e()])})),0)],1)},Ye=[],Je=a("5584"),Ze=a("6422"),Xe={name:"LibraryPreload",data(){return{libraryPreload:Je["a"].state.setting.libraryPreload,showPreload:Je["a"].state.setting.showPreload,preloadTasks:[]}},methods:{byteToLarger(e){return Object(Ze["a"])(e,{gb:!1,byte:!1})},async changePreload(){console.log("change preload"),await Je["a"].dispatch("set",{libraryPreload:!this.libraryPreload}),await Je["a"].dispatch("fetchSettings"),this.libraryPreload=Je["a"].state.setting.libraryPreload},async changeShowPreload(){console.log("change showPreload"),await Je["a"].dispatch("set",{showPreload:!this.showPreload}),await Je["a"].dispatch("fetchSettings"),this.showPreload=Je["a"].state.setting.showPreload},onPreloadTasks(e){this.preloadTasks=e},showLocal(e){G["a"].emit("show_torrent_file",e.path)}},mounted(){console.log("on mounted"),G["a"].on("preload-tasks",this.onPreloadTasks)},beforeDestroy(){console.log("on before destroy"),G["a"].off("preload-tasks",this.onPreloadTasks)}},et=Xe,tt=(a("f817"),Object(_["a"])(et,Ke,Ye,!1,null,"6f92a449",null)),at=tt.exports;f()(tt,"components",{QCheckbox:$["a"],QBtn:p["a"],QIcon:ve["a"]});var nt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"capacitor-test"},[a("q-input",{attrs:{value:e.forceLogin,type:"checkbox",label:"Force Login"},on:{change:e.changeForceLogin}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Network Check"},on:{click:e.checkNetwork}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Homedir Check"},on:{click:e.checkHomedir}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Write to clipboard"},on:{click:e.writeClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Copy from clipboard"},on:{click:e.readClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Crypto"},on:{click:e.checkCrypto}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Simulate wifi/cellular"},on:{click:e.changeNetworkType}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"ReadFile"},on:{click:e.checkReadFile}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"WriteFile"},on:{click:e.checkWriteFile}}),a("div",[a("q-input",{attrs:{type:"text",label:"Filepath"},model:{value:e.filepath,callback:function(t){e.filepath=t},expression:"filepath"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Get file uri"},on:{click:e.getFileUri}})],1),a("div",[a("FollowButton",{attrs:{id:"test",disableFollow:!1}}),a("FileSelector",{on:{select:e.onSelectFile}},[a("q-btn",{attrs:{color:"primary",icon:"folder",label:"File"}})],1)],1),a("div",{staticClass:"debug-logs"},e._l(e.logs,(function(t,n){return a("div",{key:n,staticClass:"log"},[a("span",{staticClass:"log-type"},[e._v(e._s(t.type))]),a("span",{staticClass:"log-value"},[e._v(e._s(t.value))])])})),0)],1)},ot=[],it=a("aa8a"),rt=a("c033"),st=a("a368"),lt=a("a749"),ct={name:"CapacitorCheck",data(){return{logs:[],filepath:"",forceLogin:Je["a"].state.setting.forceLogin,connectionType:"wifi"}},components:{FollowButton:rt["a"],FileSelector:$e["a"]},methods:{log(e,t,...a){this.logs||(this.logs=[]),this.logs.unshift({type:e,value:t}),a.length&&this.logs.unshift({type:e,value:a})},changeForceLogin(e){const t=!this.forceLogin;console.log("vla",e.target.value,this.forceLogin,t),this.forceLogin=t,Je["a"].dispatch("set",{forceLogin:t})},checkHomedir(){G["a"].once("homedir",(e=>this.log("Homedir",e))),G["a"].emit("get-homedir")},checkNetwork(){G["a"].emit("check-network")},onCheckProgress(e){console.log("network check progress",e),this.log(e.type,JSON.stringify(e.result))},onCheckEnd(e){console.log("network check end",e),this.log("isOnline",e.isOnline)},writeClipboard(){const e=Math.random().toString();this.log("Rand string",e),Object(it["b"])(e).then((()=>{this.log("Success",e)})).catch((e=>{this.log("Error",e)}))},async readClipboard(){const e=await Object(it["a"])();e?this.log("Read",e):this.log("Error",e)},onSelectFile(e){this.log("Select file",e,null===e||void 0===e?void 0:e.name,null===e||void 0===e?void 0:e.path,null===e||void 0===e?void 0:e.size)},checkCrypto(){const e=window.crypto;console.log(e),console.log(e.subtle),this.log("subtle",e.subtle),e.subtle&&this.log("digest",typeof e.subtle.digest)},async changeNetworkType(){const e="wifi"===this.connectionType?"cellular":"wifi";Object(lt["a"])({connected:!0,connectionType:e}),await new Promise(setTimeout);const t=await st["Network"].getStatus();this.connectionType=t.connectionType,this.log("Network status",t)},async checkReadFile(){const e=await st["Filesystem"].readFile({path:"some-file.txt",directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8});this.log("Read",e)},async checkWriteFile(){const e=Math.floor(5e4*Math.random())+12e3;await st["Filesystem"].writeFile({path:"some-file.txt",data:e.toString(),directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8}),this.log("Write",e)},async getFileUri(){this.log("Raw",this.filepath);const e=await st["Filesystem"].getUri({path:this.filepath});this.log("URI result",e)}},mounted(){G["a"].on("check-network-result",this.onCheckProgress),G["a"].on("check-network-end",this.onCheckEnd),Object(K["a"])()&&st["Network"].getStatus().then((e=>{this.connectionType=e.connectionType}))},beforeDestroy(){console.log("unmount check"),G["a"].off("check-network-result",this.onCheckProgress),G["a"].off("check-network-end",this.onCheckEnd)},watch:{forceLogin(e){console.log("change",e)}}},dt=ct,ut=(a("b1d8"),Object(_["a"])(dt,nt,ot,!1,null,"a7504d8e",null)),_t=ut.exports;f()(ut,"components",{QInput:P["a"],QBtn:p["a"]});var pt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:!e.floating,expression:"!floating"}]},[a("ThemeEditor",{attrs:{inner:!0},on:{show:e.handleShow}})],1)},mt=[],ht={name:"ThemeTabPanel",data(){return{floating:this.$theme.hasFloatingEditor()}},methods:{handleShow(){this.floating=!0,this.$theme.showFloatingEditor({onClose:()=>{this.floating=!1}})}}},gt=ht,ft=Object(_["a"])(gt,pt,mt,!1,null,null,null),bt=ft.exports,yt={name:"Development",components:{BasicPanel:y,ThemeTabPanel:bt,PaymentMode:Ge,AccountTabPanel:I,AmplifyTabPanel:B,DevInfoTabPanel:te,UrlConvert:le,LibraryData:Oe,LibraryPreload:at,CapacitorTest:_t},data(){const e=[{name:"BasicPanel",icon:"developer_mode",label:"BasicPanel"},{name:"accountInfo",icon:"account_circle",label:"Account Info"},{name:"amplify",icon:"developer_board",label:"Amplify"},{name:"capacitorTest",icon:"app_settings_alt",label:"Capacitor test"},{name:"devInfo",icon:"info",label:"Dev Info"},{name:"urlConvert",icon:"link",label:"Alphabiz URL Convert"},{name:"libraryData",icon:"video_library",label:"Library"},{name:"libraryPreload",icon:"cloud_download",label:"Library Preload"},{name:"payment_mode",icon:"account_balance_wallet",label:"Payment Mode"},{name:"theme_panel",icon:"palette",label:"Theme Panel"}];return{tabs:e,currentTab:e[0].name,isElectron:Object(l["isElectron"])()}}},vt=yt,wt=(a("5bb9"),a("74cb")),kt=a("ec78"),St=a("917f"),Ct=a("c72d"),xt=Object(_["a"])(vt,n,o,!1,null,null,null);t["default"]=xt.exports;f()(xt,"components",{QCard:T["a"],QTabs:wt["a"],QTab:kt["a"],QSeparator:m["a"],QTabPanels:St["a"],QTabPanel:Ct["a"]})},"3a211":function(e,t,a){"use strict";a("10e1")},"3aea":function(e,t,a){"use strict";a.d(t,"h",(function(){return c})),a.d(t,"g",(function(){return d})),a.d(t,"f",(function(){return u})),a.d(t,"e",(function(){return _})),a.d(t,"b",(function(){return h})),a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));var n=a("5584"),o=a("d710"),i=a.n(o),r=a("36a1"),s=a("d558"),l=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};function c(e,t){return l(this,void 0,void 0,(function*(){if(Object(s["a"])()){const{Filesystem:n,Directory:o,Encoding:i,Share:r}=yield Promise.resolve().then(a.bind(null,"a368")),s=yield n.writeFile({path:t,data:e,directory:o.Cache,encoding:i.UTF8});return s.uri?(console.log("Save file result",s),(yield r.canShare()).value&&r.share({files:[s.uri],dialogTitle:"Save"}),s):console.log("Failed to save",t)}const n=new Blob([e]),o=document.createElement("a"),i=URL.createObjectURL(n);o.href=i,o.download=t,document.body.appendChild(o),o.click(),setTimeout((function(){document.body.removeChild(o),window.URL.revokeObjectURL(i)}),0)}))}function d(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve("")}function u(e){var t;const a=(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||"",o=e.match(/m=application\s(\d+)\s(\S+)/),i=(null===o||void 0===o?void 0:o[1])||"0",r=(null===o||void 0===o?void 0:o[2])||"unknown type";return n["a"].getters.isDevMode?`${a}:${i} (${r})`:`${a.substring(0,4)+"*"} (${r})`}function _(e){var t;return(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||""}const p=["?","|","*","!",":",'"',":","<",">","/","/"],m=["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"];function h(e){let t=e.replace(/\s*\/\s*/g,"_").replace(/\s*\\\s*/g,"_").replace(/(\s|\.)+$/,"");for(const n of m)while(t.startsWith(n))t=t.replace(n,"");const a=t.split("");for(let n=0;nt.id===e));if(!t)return null;const a=["id","title","soul"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&");return`/library/channel?${a}`}function f(e){if(!e.startsWith(`${i.a.shortProtocol}`))return null;const[t,a,n]=e.replace(`${i.a.shortProtocol}-library://`,"").split("/");return t&&a&&n?{type:t,title:a,id:n}:null}function b(e){return e?e.replace(/ /g," ").trim():""}},"3b4b":function(e,t,a){"use strict";a("9c3b")},"3c15":function(e,t,a){"use strict";a("eec3")},"3c8a":function(e,t,a){"use strict";a("6755")},"3d18":function(e,t,a){"use strict";a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return g}));a("de6c"),a("a1c1");const n=a("c577"),o=a("bc7b"),{exec:i,spawn:r}=a("6bdd"),s="win32"===process.platform,l="darwin"===process.platform,c=new Map([["VLC Player",{win:"vlc.exe",winRegistry:["VLC.mp4","PlayWithVLC"],drawin:"VLC.app"}],["GOM Player",{win:"GOM.exe",drawin:"GOM Player.app"}],["PotPlayer",{win:"PotPlayerMini64.exe"}],["Kodi",{win:"kodi.exe",drawin:"Kodi.app"}],["KMPlayer",{win:"KMPlayer64.exe",drawin:"KMPlayer.app"}],["SMPlayer",{win:"smplayer.exe",drawin:"SMPlayer.app"}],["MediaMonkey",{win:"MediaMonkey.exe"}],["AllPlayer",{win:"ALLPlayer.exe"}],["5KPlayer",{win:"5KPlayer.exe",drawin:"5KPlayer.app"}],["MPC-HC",{win:"mpc-hc64.exe"}]]),d=async()=>new Promise((e=>{const t=[];if(s){const a={label:"Media Player",value:"Media Player"},i=u();i&&t.push(a);const r=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});r.values(((a,n)=>{if(a)return e(!1);for(let e=0;e{a.win&&new RegExp(a.win).test(n[e].name)&&(o.existsSync(n[e].name)?t.push({label:i,value:i}):console.log("player file does not exist"))}));e(t)}))}else l?o.readdir("/Applications/",((a,n)=>{if(a)return console.error(`error: ${a}`),e(!1);c.forEach(((e,a)=>{e.drawin&&new RegExp(e.drawin).test(n)&&t.push({label:a,value:a})})),e(t)})):e(!1)})),u=()=>{const e=process.arch;let t;return t="x64"===e?"C:\\Program Files\\Windows Media Player\\wmplayer.exe":"C:\\Program Files(x86)\\Windows Media Player\\wmplayer.exe",o.existsSync(t)?t:""},_=async e=>new Promise((t=>{if(s){if("Media Player"===e){const e=u();return t(e||!1)}const a=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});a.values(((a,n)=>{if(a)return t(!1);if(!c.get(e))return t(!1);const i=c.get(e).win;for(let e=0;e{let a;if(s){if(!c.get(e))return;const n=c.get(e).winRegistry;if(!n)return;if("VLC Player"===e){const e=t.slice(2+(t.lastIndexOf(".")-1>>>0));n[0]=`VLC.${e}`,a=[...n]}}return a},m=async e=>new Promise((t=>{if(!e)return t(!1);if(s){const a=new n({hive:n.HKLM,key:`\\SOFTWARE\\Classes\\${e[0]}\\shell\\${e[1]}\\command`});a.values(((e,a)=>{if(e)return t(!1);const n=a[0].value.match(/-(?:-\w+)+/gm);t(n)}))}})),h=async(e,t,a)=>new Promise((n=>{let o,i;s?(o=e,i=a?[...a,t.replace("/","\\")]:[t.replace("/","\\")]):(o="open",i=["-a",e,t]),console.log("openPlayer:",o,i);const l=r(o,[...i]);l.on("error",(e=>{n(!1),console.log(`子进程错误,错误码 ${e}`)})),l.unref(),n(!0)})),g=async(e,t)=>{if("System Default"===e){const{shell:e}=a("1b85");return e.openPath(t).catch((e=>{console.log("openPath err",e)}))}const n=await _(e);let o=!1;if(n){const a=p(e,t);let i;a&&(i=await m(a)),o=await h(n,t,i),console.log("openPlayer:"+o)}return o}},"3d2b":function(e){e.exports=JSON.parse('{"lib_index":"家","lib_edit":"公開","lib_publish":"公開","lib_explore":"探検する","lib_following":"続く","lib_favorite":"地元のお気に入り","lib_local_favorites":"地元のお気に入り","lib_channel":"チャネル","lib_submit":"送信","lib_from_network":"ネットワークから分散データベースを使用する","welcome_to_lib":"${displayName} メディア ライブラリへようこそ","register_or_login":"登録/ログイン","lib_recommend":"推薦する","lib_recommend_desc":"${displayName} ライブラリへようこそ!このライブラリはネットワークからの分散データベースを使用します。使用を開始するには、いくつかのチャネルをフォローする必要があります。","follow_any_channel_to_continue":"続行するには任意のチャンネルをフォローしてください","follow_channels_and_continue":"{0} チャンネルをフォローして続行","show_more_for_me":"もっと見せて","no_more_recommend":"もうお勧めしません","key":"鍵","create_key":"キーの作成","save_key":"キーを保存","save_key_file":"キーをファイルとして保存しますか?","import_key":"インポートキー","import":"輸入","invalid_key":"無効キー","back_to_top":"トップに戻る","search_for_channel":"チャンネルIDを検索","search_channel_no_result":"ID {0} のチャンネルが見つかりません","please_input_channel_id":"チャンネルIDを入力してください","welcome_help_text":"これは分散型メディア ライブラリです。必要です\\n このデータベースのアカウントを作成します。私達はします\\n 個人キーを自動的に生成します。\\n すでにキーを持っている場合は、インポートすることもできます\\n それはここです。","welcome_key_text":"ログインしたら[SAVE KEY]ボタンをクリックしてください。\\n 右下隅にあるをクリックして秘密キーを保存します。\\n キーを紛失した場合、再度ログインできなくなる場合があります。","redirect_to_recommend":"どのチャンネルもフォローしていないようです。 [探索]ページにリダイレクトします。","channel":"チャネル","follow":"従う","unfollow":"フォローを解除する","following":"続く","share":"共有","unfollow_confirm":"このチャンネルのフォローを解除してもよろしいですか?タイムライン内のこのチャンネルの投稿はすべて削除されます。","follow_failed_hint":"操作はバックグラウンドでまだ保留中です。長時間操作が適用されなかった場合は、アプリを再起動して再度お試しください。","block":"ブロック","unblock":"ブロックを解除する","blocked":"ブロックされました","block_channel":"このチャンネルをブロックする","block_channel_confirm":"チャンネルをブロックするとタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","block_creator":"このチャンネルの作成者をブロックする","unblock_creator":"このチャンネルの作成者のブロックを解除する","block_creator_confirm":"クリエイターをブロックすると、このクリエイターが作成したすべてのチャンネルがタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","share_url_copied":"共有 URL がクリップボードにコピーされます","follow_time":"フォロータイム","update_time":"更新時間","search":"検索","type":"タイプ","added":"追加した","click_to_task":"クリックしてタスクに移動します","lib_already_added":"このビデオはすでに追加されています","description":"説明","poster":"ポスター","channel_poster":"チャンネルポスター","preview":"プレビュー","creator":"クリエイター","creator_detail":"クリエイター詳細","loading_creator":"クリエイター情報を読み込み中","wait_for_creator_loaded":"クリエイター情報が読み込まれるまでお待ちください。","follower":"フォロワー","followers":"フォロワー","follower_list":"フォロワーリスト","user":"ユーザー","channel_title":"チャンネルタイトル","channel_id":"チャンネルID","post_title":"記事のタイトル","post_id":"投稿ID","import_data_from_excel":"Excelからデータをインポート","set_excel_keys":"Excelのキーを設定する","excel_import_succeded":"Excelのインポートに成功しました","excel_import_success_msg":"{0} 行は追加する準備ができています。{1} は無効で、{2} の重複項目は無視されます","cannot_find_channel":"チャンネルが見つかりません","cannot_find_posts":"投稿が見つかりません","add_channel":"チャンネルを追加","add_post":"投稿を追加","edit_channel":"チャンネルを編集する","channel_setting":"チャンネル設定","edit_post":"投稿を編集する","edit_posts":"投稿を編集する","channel_detail":"チャンネル詳細","remove":"取り除く","remove_channel":"チャンネルを削除する","remove_channel_confirm":"この投稿を削除してもよろしいですか?これは回復できません。","remove_post":"投稿を削除する","remove_post_confirm":"このチャンネルを削除してもよろしいですか?これは回復できません。","preview_mode":"プレビューモード","preview_mode_desc":"これはチャンネルのプレビューです。映画のすべての料金がここに表示されます。","edit_user_profile":"ユーザープロファイルを編集する","name":"ニックネーム","avatar":"アバター","no_following":"フォローしているチャンネルはありません。クリックして移動","no_recommend":"おすすめチャンネルはありません。クリックして移動","first_recomment_msg":"初めてアプリを起動する場合は、時間がかかる場合があります。","invalid_image":"無効な画像です","image_not_reachable":"この画像の URL にはアクセスできません。","channel_not_found":"チャンネルが見つかりません","cannot_get_channel_info":"チャンネル情報を取得できません。このチャンネルは作成者によって削除され、利用できなくなる可能性があります。","validate_error":"検証エラー","validate_user_name_no_space":"ユーザー名にはスペースを含めないでください","validate_url_no_space":"URL にスペースを含めないでください","validate_user_name_length":"ユーザー名の長さは {0} から {1} の間である必要があります","validate_user_desc_length":"ユーザーの説明は {0} 文字以下にしてください","validate_user_avatar_url":"ユーザーのアバターは 2048 文字未満の URL である必要があります","validate_channel_title_length":"チャンネルタイトルの長さは 1 ~ 100 にする必要があります","validate_channel_desc_length":"チャネルの説明の長さは 10 ~ 300 にする必要があります","validate_channel_image_url":"チャンネル プレビューの URL は 2048 文字未満である必要があります","validate_post_title_length":"投稿タイトルの長さは 1 ~ 100 にする必要があります","validate_post_desc_length":"投稿の説明の長さは 10 ~ 300 にする必要があります","validate_post_image_url":"ポスターの URL は 2048 文字未満である必要があります","validate_post_url":"無効な ${displayName} URL","validate_post_url_length":"${displayName} URL は 2048 文字以下にしてください","film_rate":"フィルムレート","set_film_rate":"フィルムレートを設定する","select_a_rate_before_enter":"メディア ライブラリに入る前に、フィルム レートを選択する必要があります。","library_available_rate":"図書館利用可能なフィルム料金","rate_g":"G – 一般視聴者","rate_g_desc":"すべての年齢層が受け入れられます。お子様が閲覧することで保護者を不快にさせるような内容は一切ありません。","rate_pg":"PG – 保護者による指導の推奨","rate_pg_desc":"一部の教材はお子様には適さない場合があります。保護者らは「保護者指導」を求めた。親が幼い子供にとって好まない内容が含まれる場合があります。","rate_pg_13":"PG-13 – 保護者は強く注意してください","rate_pg_13_desc":"一部のコンテンツは 13 歳未満の子供には不適切である可能性があります。保護者は注意することをお勧めします。内容によっては、10 代未満のお子様には不適切な場合があります。","rate_r":"R – 制限付き","rate_r_desc":"17 歳未満の場合は、親または成人の保護者の同伴が必要です。一部成人向けの内容が含まれております。保護者の方は、小さなお子様を連れて行く前に、この映画について詳しく学ぶことをお勧めします。","rate_nc_17":"NC-17 – 大人限定","rate_nc_17_desc":"17 歳以下は入場できません。明らかに大人っぽい。お子様のご入場はできません。","set_as_private":"プライベートとして設定","hide_in_explore":"探索ページでこのチャンネルを非表示にする","hidden":"隠れた","select_a_rate":"フィルム料金を選択してください","select_from_tasks":"タスクから選択","import_from_magnet":"マグネットからインポート:?...","input_magnet_url":"入力マグネット:? URL","task_title":"タスクのタイトル","set_title":"タイトルを設定する","add_to_local_favorites":"ローカルのお気に入りに追加","remove_from_local_favorites":"ローカルのお気に入りから削除","removed_favorite":"お気に入りを削除しました","import_or_export_favorites":"お気に入りのインポート/エクスポート","export_local_favorites":"ローカルのお気に入りをバックアップとしてエクスポート","import_favorites_file":"お気に入りファイルをインポートする","not_a_favorite_file":"このファイルはお気に入りのバックアップ ファイルではありません","connection_status":"接続ステータス","gun_server_list":"キャッシュノード","custom_nodes":"カスタムキャッシュノード","custom_nodes_hint":"カスタム キャッシュ ノードはアプリの再起動後に適用されます","wait_for_reboot":"再起動を待っています...({seconds}s)","reboot_now":"今すぐ再起動してください","reboot_later":"後で再起動します","peer_list":"ダイレクトノード","server":"ノードURL","peer":"ピア","peer_id":"ノードID","connection":"繋がり","data_source":"情報元","sync":"同期","syncing":"同期中","sync_completed":"同期が完了しました","got_all_post":"すでにすべての投稿を取得しています","placeholder_channel_title":"あなたのチャンネル名","placeholder_channel_desc":"このチャンネルについての説明","placeholder_post_title":"映画名(年)","placeholder_post_desc":"この映画についての説明","private_channel":"プライベートチャンネル","creator_blocked":"クリエイターがブロックされました","go_to_library":"図書館に行きますか?","go_to_library_channel_msg":"ライブラリ チャンネル {0} に行きますか?","magnet_does_not_have_name":"この磁石:? URL には名前がありません。最初に投稿のタイトルを追加する必要があります。","no_available_post":"利用可能なポストがありません","following_channel_no_post":"フォローしているすべてのチャンネルには利用可能な投稿がありません。ネットワークエラーが原因である可能性があります。すでにいくつかのチャンネルをフォローしている場合、投稿は後で読み込まれる可能性があります。","share_to_library":"ライブラリに共有する","quick_start":"クイックスタート","quick_start_desc":"タスクまたはファイルを使用して投稿の作成を開始します","select_file":"ファイルを選ぶ...","select_folder":"フォルダーを選択...","post_options":"投稿オプション","channel_options":"チャンネルオプション","create_new_channel":"新しいチャンネルを作成する","use_existed_channel":"既存のチャネルを使用する","select_existed_channel":"既存のチャンネルを選択","uploaded_by":"{title} が {name} によってアップロードされました","created_by":"{title} 作成者: {name}","creating_new_channel":"新しいチャンネルを作成しています...","created_new_channel":"新しいチャンネルが作成されました","creating_new_post":"新しい投稿を作成しています...","created_new_post":"新しい投稿が作成されました","create_new_post":"新しい投稿を作成する","quick_start_timeout":"{0} タイムアウト。ネットワークエラーが原因である可能性があります。後でもう一度試してください。","file_too_large":"あまりにも大きなファイル","file_too_large_msg":"このファイルは 4GB ({size}) より大きいため、タスクの準備に時間がかかる可能性があります。続けてもよろしいですか?","resolving_folder_files":"フォルダー ファイルを解決しています...","folder_too_large":"フォルダーが大きすぎます","folder_too_large_msg":"このフォルダー内のファイルは 4GB (合計 {size}) を超えており、タスクの準備に時間がかかる可能性があります。アップロードしてもよろしいですか?","creating_new_task":"新しいタスクを作成しています...","cannot_create_task":"タスクを作成できません","cannot_create_task_msg":"何らかの誤差が生じる可能性があります。タスクが正しく作成されていれば、後でタスク リストを確認できます。","cannot_get_task_name":"タスク名を取得できません。最初に 1 つを入力する必要があります。","remove_old_task":"古いタスクを削除する","remove_old_task_desc":"Web モードでは、一度に 1 つのタスクしか作成できません。古いタスクを削除しますか?","subtitle_list":"字幕リスト","optional":"オプション","with_subtitle":"{language} 字幕付き","maximumSubtitleNum_limit":"字幕の数が上限に達しました","add_subtitle_url":"字幕のダウンロードリンクを追加","cannot_add_subtitle":"字幕の追加に失敗しました","cannot_add_subtitle_msg":"字幕言語が選択されていないか、ダウンロード リンクが無効です。","support_subtitle_type":"srt および vtt 形式の字幕のみがサポートされています。","recommend_opensubtitles":"www.opensubtitles.org にある字幕のダウンロード リンクまたは ID を使用することをお勧めします。","take_down":"降ろす","serious_violation":"重大な違反","copyright_disputes":"著作権紛争","adults_only":"大人だけ","takedown_reason":"削除の理由","takedown_mode":"テイクダウンモード","admins":"管理者","takedown_user":"このクリエイターを削除する","takedown_channel":"このチャンネルを削除する","takedown_post":"この投稿を削除する","select_takedown_reason":"削除理由を選択してください","takedown_invalid_reason":"無効な削除理由","takedown_invalid_user_id":"無効なユーザーIDです。 ID には 87 文字を含める必要があります","takedown_invalid_channel_id":"無効なチャンネルIDです。 ID には 20 文字を含める必要があります","takedown_invalid_post_id":"投稿IDが無効です。 ID には 20 文字を含める必要があります","takedown_management":"管理を削除する","users":"ユーザー","channels":"チャンネル","posts":"投稿","you":"あなた","preset":"プリセット","admin":"管理者","committee":"委員会","about_takedown_mode":"テイクダウンモードについて:\\nプリセット: Github リポジトリで設定されます。それらはすべてライブラリから削除されます。\\n管理者: 管理者が投票したいずれかが削除されます。\\n委員会: 管理者投票の少なくとも半数が削除されます。","cannot_edit_preset":"この行はプリセット行であるため編集できません","cannot_edit_not_vote":"この行は投票していないため編集できません","remove_vote":"投票を削除します","post_preload_failed":"この投稿のプリロードに失敗しました。ダウンロード リンクが古い可能性があるため、この投稿はすぐに再生できません。","about_cache_node":"キャッシュノードについて","edit_cache_node":"キャッシュノードの編集","create_cache_node":"キャッシュノードの作成","about_cache_node_desc":"${displayName} はガン サーバーをキャッシュ ノードとして使用します。事前設定でカスタムノードを編集できます","learn_how_to_deploy_gun":"独自のガンサーバーを展開する方法を学ぶ","repeat_add":"タスクが追加されました。再度追加しないでください","upload":"アップロード","download":"ダウンロード","delete":"消去","delete_task":"タスクの削除","delete_confirm_message":"このタスクを削除しますか?これは取り消し不可能です","also_delete_files":"ファイルも削除","default_delete_files":"削除タスク後にダウンロードしたファイルをデフォルトで削除する","not_now":"今はやめろ","delete_autoupload_confirm":"このタスクには、自動アップロード ディレクトリに配置したファイルが含まれています。このタスクを削除すると、ファイルも削除されます。","delete_anyway":"とにかく削除する","upload_too_many_files":"アップロードするファイルが多すぎます","ask_if_unlimit_upload_amount":"自動アップロード ディレクトリに含まれるファイルが多すぎます。アップロード量制限を無効にしますか? ※パフォーマンス上の問題が発生する可能性があります","disable_limitation":"制限を無効にする","not_length":"マルチファイル操作は現在サポートされていません。ご協力ください。","download_torrent":"ダウンロードファイル","upload_torrent":"ファイルをアップロードする","files":"ファイル","file":"ファイル","folder":"フォルダ","start_all":"すべてを開始する","pause_all":"すべて一時停止する","remove_all":"すべて削除する","upload_all":"すべてアップロードする","clear_history":"履歴をクリア","pause_all_finish_payments":"これですべての支払いが完了します。","accelerating":"加速中","link_task":"リンクタスク","torrent_task":"ファイルタスク","ok":"OK","cancel":"キャンセル","download_directory_position":"ダウンロードディレクトリの位置","torrent_file":"タスクファイル","magnetic_link_incorrect":"リンクの形式が正しくありません","delete_fail":"削除失敗","pause":"一時停止","paused":"一時停止中","stop_torrent":"ストップ","seed":"シード","resume":"履歴書","downloading":"ダウンロード中","downloaded":"ダウンロード済み","uploading":"アップロード中","auto_uploading":"自動アップロード","uploaded":"アップロードされました","pending":"他のタスクを待っています","verifying":"検証中","waiting_for_verify":"検証待ち","seeding":"種まき","completed":"完了","status":"スターテス","task_name":"タスク名","size":"サイズ","progress":"進捗","sort":"選別","ascending":"上昇","descending":"降順","file_loading":"ファイルをロード中...","loading":"読み込み中","unknown_status":"未知","play_while_downloading":"遊ぶ...","upload_or_play":"アップロード/再生","play":"遊ぶ","ask_if_upload_file":"ファイルをアップロードする?","ask_if_upload_or_play":"ファイルをアップロードまたは再生しますか?","torrent_error":"タスク追加時のエラー:","no_peers":"{0} 回以上再試行しても使用可能なピアがありません","torrent_exists":"タスクはすでに存在します。","show_origin_torrent":"元のタスク ファイルまたは URL を取得する","show_directory":"この torrent のディレクトリを開く","task_num":"タスク","total_upload_speed":"アップロードの速さ","total_download_speed":"ダウンロード速度","path_missing":"エラー: torrent パスが見つかりません","origin_not_found":"元のタスク情報が見つかりません。","text_copied":"マグナムの URL がクリップボードにコピーされました","copy_magnet_uri":"コピーマグネット:? URI","copy_download_uri":"ダウンロード URI をコピーする","copy_share_uri":"共有URIをコピーする","uri_copied":"URI がクリップボードに正常にコピーされました","uri_copy_failed":"URIのコピーに失敗しました","more":"もっと...","toggle_list_mode":"リストモードの切り替え","comment":"コメント","operations":"オペレーション","open_directory":"ディレクトリを開く","no_downloading_task":"ダウンロードタスクはありません","remove_all_downloading_tasks":"ダウンロードタスクをすべて削除しますか?","remove_all_upload_tasks":"すべてのアップロード タスクを削除しますか?","remove_autoupload_files":"自動アップロードファイルを削除する","remove_all_history":"すべての履歴を削除しますか?","remaining":"残り","created_time":"作成時間","used_time":"使用時間","completed_time":"完了時間","yesterday":"昨日","before_yesterday":"$$$0$$$","earlier":"以前","miss_file":"一部のファイルがありません","delete_miss_file_task":"{0} に欠落しているファイルがあります。","common_peer":"共通ピア","ab_peer":"${displayName} ピア","ab_peer_verified":"確認済み ${displayName} ピア","ab_peer_available":"${displayName} ピアが利用可能","alphabiz_accelerating":"${displayName} 加速","income":"所得","income_info":"収入(今日/合計)","total_income_info":"収入: {0}(今日) / {1}(合計)","login_to_see_income":"ログインして収入統計を確認してください","credit_cost":"信用コスト","downloaded_by_payment":"ペイメントによってダウンロードされました","file_not_found":"このファイルがローカルに見つかりません","no_task":"聞かない","no_matched_task":"一致するタスクがありません","space_not_enough":"ディスク容量が不足しています","need_more_space":"さらに {0} のスペースが必要ですが、現在のディスクには {1} の空き領域があります ({2} は予約されています)。タスクは一時停止されています。ライブラリのプリロードは無効になっています。 [設定 - 詳細]で再度有効にすることができます。","seeders":"シーダー","last_update":"最後の更新","connecting":"接続中","connected":"接続済み","request_timed_out":"リクエストはタイムアウトしました","connection_failed":"接続に失敗しました","invalid_download_url":"無効なダウンロード URL","download_link":"ダウンロードリンク","empty_files":"ディレクトリにファイルがありません","duplicate_task":"タスクの重複","duplicate_tracker":"重複トラッカー","this_task_not_ready":"このタスクは準備ができていません。このタスクを一時停止すると、タスクが直接削除されます。","some_task_not_ready":"一部のタスクは準備ができていません。これらのタスクを一時停止すると、タスクが直接削除されます。","failed_to_delete_files":"ファイルの削除に失敗しました","failed_to_delete_files_desc":"タスクの一部のファイルの削除に失敗しました。手動で削除する必要がある場合があります","unknown_error":"不明なエラー: {0}","more_files_are_not_shown":"(パフォーマンス上の理由から、{0} 以上のファイルは表示されません)","no_available_file":"利用可能なファイルがありません。タスクの準備ができるまでお待ちください。","service_worker_error":"再生のために ServiceWorker をロードできません。お使いのブラウザがこの機能をサポートしていないか、ServiceWorker がアクティブ化されていない可能性があります。このページをリロードして再試行する必要がある場合があります。","add_task_first":"最初にタスクを追加する必要があります。","player_task_time":"プレーヤーはプレイの準備に時間がかかりすぎます。タスクに問題がある可能性があります。","web_mode_hint":"${displayName} の Web モードは WebRTC ピアのみをサポートします。最高のエクスペリエンスを得るには、${displayName} デスクトップ アプリをダウンロードしてください。","web_mode_task_hint":"タスクを追加するには、下のボタンをクリックします。一度に追加できるタスクは 1 つだけです。","save_to_local":"ローカルに保存","save_as_zip":"ZIP 形式で保存","creating_save_file":"保存ファイルを作成しています...","upload_as_one_directory":"1 つのディレクトリとしてアップロードする","upload_as_single_files":"単一ファイルとしてアップロードする","web_mode_upload_single":"Web モードでは 1 つのファイルのみアップロードできます","download_success":"ダウンロードが成功しました","download_fail":"ダウンロードに失敗しました","wait_for_downloaded_to_share":"共有する前に、タスクがダウンロードされるまで待ってください。","download_with_cellular":"携帯電話を使用してタスクをダウンロードする","download_with_cellular_desc":"携帯電話ネットワークを使用しています。携帯電話でタスクをダウンロードすると、携帯通信会社によって追加料金がかかる場合があります。","download_with_cellular_confirm":"携帯電話でもダウンロード可能","language":"言語","appearance":"外観","darkModeSystem":"システム","darkModeLight":"ライト","darkModeDark":"暗い","basic_setting":"基本","hideMenu":"アプリメニューを非表示にする (Windows および Linux のみ)","autoHide":"ウィンドウを自動的に非表示にする","autoStart":"ログイン時に開く","restore":"終了時にウィンドウのサイズと位置を維持する","autoStartUnfinished":"すべての未完了のタスクを自動的に再開します","default_download_path":"デフォルトのパス","download_directory":"ダウンロードディレクトリ","upload_directory":"アップロードディレクトリ","enable_auto_upload":"自動アップロードを有効にする","unlimit_upload_amount":"アップロード量を無制限にする","unlimit_upload_warning":"大量のファイルのアップロードを許可します。これによりパフォーマンスの問題が発生する可能性があります","start":"起動","transport_setting":"伝染 ; 感染","upload_limit":"アップロード制限","download_limit":"ダウンロード制限","payed_user_share_rate":"有料ユーザーシェア率","unlimited":"無制限","limit_input_error":"制限値は正の値である必要があります","BT_setting":"タスクの設定","saveLinkSeed":"リンクをタスクファイルとして保存","autoDownload":"リンクとコンテンツを自動的にダウンロードする","continuousSeeding":"手動で停止するまでシードを継続します","seedSharingRate":"シード率","seedTime":"シード時間 (分)","task_manage":"タスク管理","maximumDownloadNum":"アクティブなタスクの最大数","maximumConnectionsNum":"サーバーあたりの最大接続数","range_error":"範囲は {0} ~ {1} の間でなければなりません","random":"ランダム","breakpointContinuation":"続く","automaticSkip":"タスクを追加した後にダウンロード中を自動的に表示","afterNotification":"ダウンロード完了後の通知","deleteConfirm":"タスクを削除する前に確認は必要ありません","submit":"保存して適用","discard":"破棄","reset":"リセット","reset_all_settings":"すべての設定をリセットしますか?","preferences_resetted":"設定がリセットされました","traditional_chinese":"繁体字中国語","japanese":"日本語","english":"英語","chinese":"簡体字中国語","advancedSettings":"高度な","autoUpdate":"自動更新","autoCheckUpdate":"アップデートを自動的にチェックする","proxy":"プロキシ","useProxyService":"プロキシを有効にする","trackerService":"トラッカーサーバー","recommendUse":"おすすめされた","autoUpdateTrackerServiceList":"トラッカーリストを毎日自動的に更新します","manualUpdateTracker":"手動アップデート","manualUpdateSuccess":"トラッカーサーバーを正常に更新しました","manualUpdateFail":"次からの更新に失敗しました:","listenPort":"リッスンポート","BTlistenPort":"データ送信ポート","DHTlistenPort":"分散ハッシュポート","protocols":"互換性のあるプロトコル","setDefaultClientForFollowingProtocols":"次のプロトコルのデフォルトのクライアントとして設定します","magnetUrl":"磁石","video_file":"ビデオファイル","audio_file":"音声ファイル","security":"安全","impersonateUserAgent":"模擬ユーザーエージェント","RPCauthorizationkey":"RPC シークレット","viewDocument":"RPC シークレット マニュアルを表示する","developer":"デベロッパー","applicationLogPath":"アプリログのパス","downloadSessionPath":"ダウンロードセッションパス","resetDownloadSessionRecord":"ダウンロードセッションをリセットする","restoreInitialSettings":"工場出荷時設定にリセット","preferences_set_successfully":"設定が正常に保存されました。","preferences_set_fail":"設定の保存に失敗しました!","change_not_save":"変更が保存されない","discard_all_changes":"すべての変更を破棄して終了しますか?","stay_in_page":"ページ内に留まる","disk_usage":"ディスクの使用状況","pause_if_less_space":"空き容量が (MB) 未満の場合は一時停止して通知する","default_video_player":"デフォルトのビデオプレーヤー","video_cache_time":"ストリーム再生キャッシュ","minutes":"分","system_default":"システムのデフォルト","media_player":"メディアプレーヤー","library_film_rate":"利用可能なフィルムレート","library_show_explore":"[探索]ページを表示する","library_setting":"ライブラリ設定","library_sync_setting":"ライブラリ同期設定","keychain_sync_status":"キーチェーンの同期ステータス","sync_with_aws":"キーチェーンをアマゾン ウェブ サービスと同期する","backup_to_local":"ローカルファイルへのバックアップ","enable_sync_with_aws":"AWS との同期を有​​効にする","disable_sync_with_aws":"AWS との同期を無効にする","disable_sync_with_aws_desc":"これにより、サーバーに保存されているキーが削除されます。キーをすでにエクスポートしていることを確認してください。","input_independent_password":"独立したパスワードを入力してください","change_independent_password":"独立したパスワードを変更する","password_error":"パスワードエラー","password_invalid":"パスワードが無効です","key_existed":"キーが存在しました","key_not_found":"キーが見つかりません","library_recommend":"図書館のおすすめ","show_all_channels":"ライブラリのおすすめページにすべてのチャンネルを表示する","not_logged_in":"ログインしていない","login_to_continue":"続行するにはログインしてください","mnemonic_code":"ニーモニックコード","wordlist":"単語リスト","restore_code":"コードから復元する","generate_code":"コードを生成する","export_mnemonic_code":"ニーモニックコードのエクスポート","import_mnemonic_code":"ニーモニックコードをインポートする","print":"印刷する","save_as_txt":"txtとして保存","save_as_pdf":"PDFとして保存","from_file":"ファイルから","not_valid_mnemonic_code":"これは有効なニーモニック コードではありません","cannot_parse_code_as_key":"このニーモニック コードをライブラリ キーとして解析できません","import_key_hint":"このキーをインポートしてもよろしいですか?これにより、ライブラリ内の古いキーが回復されます。","import_key_confirm":"はい、インポートします。","library_preload":"ライブラリからタスクをプリロードする","show_preload":"プリロードタスクを表示","set_download":"ダウンロードディレクトリを設定する","set_download_desc":"macOS App Store バージョンの場合、デフォルトのダウンロード ディレクトリはアプリのサンドボックスにあり、アプリのアンインストール後に削除されます。ダウンロード ファイルを保持したい場合は、別のダウンロード ディレクトリを手動で選択する必要があります。","home":"家","home_caption":"ダウンロード/アップロードおよびメディア ファイル","library":"図書館","library_caption":"メディアリソースを調べる","player":"プレーヤー","player_caption":"メディアプレーヤー","credits":"クレジット","credits_caption":"アカウント残高を確認する","account":"アカウント","account_caption":"サインイン/サインアップ/管理","settings":"設定","settings_caption":"アプリ、プレーヤー、アカウントの設定","development":"発達","development_caption":"内部使用のための開発者モード","basic":"基本","basic_caption":"基本設定","advanced":"高度な","advanced_caption":"高度な設定","blockchain":"財布","blockchain_caption":"${displayName} 分散型ウォレット","internal_notice":"内部リリース通知","release_notes":"リリースノート","terms_and_conditions":"規約と条件","license_and_listen_notices":"オープンソースのライセンスとリッスンに関する通知","close":"近い","success":"成功","fail":"失敗","account_email_invalid_address":"無効なメールアドレス","account_email_invalid_domain":"無効なメールドメイン","account_email_unknown_status":"不明なメール配信ステータス","account_email_unavailable_address":"使用できないメールアドレス","account_email_suppressed_address":"抑止されたメールアドレス","account_loading":"読み込み中...","account_is_required":"必要とされている","account_sign_in_your_account":"ログイン","account_username":"ユーザー名","account_username_email_phone":"電話番号またはメールアドレス","account_password":"パスワード","account_new_password":"新しいパスワード","account_re_enter_password":"パスワード再入力","account_password_not_equal":"2 つのパスワードが等しくありません","account_new_password_same":"パスワードは元のパスワードと同じです","account_forgot_your_password":"パスワードをお忘れですか?","account_reset_password":"パスワードを再設定する","account_sign_in":"サインイン","account_signed_in":"サインインしました","account_sign_up":"サインアップ","account_find_your_account":"あなたのアカウントを見つけてください","account_enter_your_username":"電話番号またはメールアドレスを入力してください","account_search":"検索","account_email_sent_tip":"確認コードが記載されたメールがあなたのメールアドレスに送信されました。","account_phone_sent_tip":"確認コードを含む SMS が携帯電話に送信されました。","account_email_phone_sent_tip":"確認コードを含む電子メールと SMS がそれぞれあなたの電子メールと電話に送信されました:","account_software_token_tip":"お使いのアカウントでは MFA が有効になっています。サインインを完了するには、デバイスの電源を入れるか表示して TOTP を入力してください。","account_reset_your_password":"あなたのパスワードをリセット","account_verification_code":"検証コード","account_resend_code":"コードを再送信する","account_code_has_been_resent":"確認コードが再送信されました","account_password_has_been_reset":"パスワードがリセットされました","account_submit":"送信","account_sign_up_your_account":"アカウントにサインアップする","account_fill_required_fields":"以下の必須フィールドに入力します。","account_fill_optional_fields":"以下のオプションのフィールドに入力します。","account_email":"Eメール","account_invitation":"招待","account_invitation_code":"招待コード","account_i_accept":"承諾します","account_license_terms":"ライセンスと規約","account_next":"次","account_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります。","account_verify_fill_optional_fields":"オプションのフィールドを確認して入力します。","account_nickname":"ニックネーム","account_gender":"性別","account_male":"男","account_female":"女性","account_not_say":"言わない","account_birthday":"誕生日","account_phone_number":"電話番号","account_locale":"地元","account_tip_verified":"確認済み、サインイン中...","account_verified":"検証済み","account_unverified":"未確認","account_signed_up":"サインアップ","account_verify_your_identity":"身元を確認する","account_finish":"終了","account_signed_out":"サインアウトしました","account_change_password":"パスワードを変更する","account_change_email":"メールアドレスを変更","account_change_phone_number":"電話番号を変更する","account_sign_out":"サインアウト","account_current_password":"現在のパスワード","account_re_enter_new_password":"新しいパスワードを再入力してください","account_personal_information":"情報","account_edit":"編集","account_reset":"リセット","account_greeting":"こんにちは、","account_cancel":"キャンセル","account_change":"変化","account_not_set":"設定されていません","account_setting":"設定","account_copy_code":"コードをコピーする","account_account_setting":"アカウント","account_task_page":"クレジットタスク","account_setting_caption":"パスワード変更・情報編集","account_security":"安全","account_want_to_join":"参加したいですか?","account_sign_in_now":"ログイン","account_changed":"かわった","account_clipboard_with_invitation_code":"招待コードをコピーしました","account_clipboard_with_code":"コピーされたコード","account_invitation_code_dialog_tip":"招待コードを含む電子メールまたはテキスト メッセージを友達に送信します。","account_available":"利用可能","account_invited":"招待されました","account_used":"使用済み","account_invitation_code_sent":"招待コードが送信されました","account_invitation_channel_required":"少なくとも 1 つの招待チャネルを入力してください","account_no_verification_code":"認証コードが届かないのですが?","account_no_phone_number":"電話番号がありませんか?","account_sign_up_by_email":"メールで登録する","account_no_email":"電子メールがありませんか?","account_sign_up_by_phone_number":"電話番号で登録する","account_no_totp":"TOTPはありませんか?","account_tip_no_totp":"TOTP がない場合は、最初に TOTP を設定してください","account_setup_totp":"TOTPのセットアップ","account_contact_information":"連絡先","account_delete_account":"アカウントを削除する","account_deleted":"削除されました","account_can_not_mfa":"MFA でお困りですか?","account_set_mfa_type":"MFA の構成","account_disable_mfa":"MFA を無効にする","account_disabled_mfa":"無効なMFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"推奨しません","account_oauth_sign_in_with":"{provider} でサインイン","account_sign_in_failed":"サインインに失敗しました","account_tip_oath_sign_up":"現在の {provider} アカウントに対応する電子メール: {email} はまだアカウントを作成していません","account_tip_confirm_delete_account":"現在のアカウントのパスワードを入力して、現在のアカウントの削除を確認します。(削除されたアカウントは復元できません)","account_tip_config_mfa":"二次認証として SMS または時間ベースのワンタイム パスワード (TOTP) を使用することを選択できます。","account_error_can_not_enable_mfa":"MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_sms_mfa":"SMS MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_totp_mfa":"TOTP MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_setup_totp":"Authenticator などのアプリを使用して以下の QR コードをスキャンするか、コードを手動でコピーしてセキュリティ トークンを追加します","account_tip_verify_totp":"TOTP を確認する","account_link_your_social_account":"ソーシャルアカウントをバインドする","account_unlink_your_social_account":"ソーシャルアカウントのバインドを解除する","account_tip_confirm_link":"現在のアカウントを {provider} アカウントにバインドしてもよろしいですか?","account_tip_confirm_unlink":"バインドされた {provider} アカウントをキャンセルしてもよろしいですか?","account_tip_linking":"バインディング...","account_tip_unlinking":"バインドを解除...","account_linked":"バウンド","account_unlinked":"束縛されていない","account_error_can_not_link_to_the_linked_account":"現在のソーシャル アカウントは別のアカウントにバインドされています","account_error_can_not_link_to_the_mismatched_email":"現在のアカウントとソーシャルアカウントのメールアドレスが一致していません","account_error_can_not_link_before_email_verified":"現在のアカウントが確認済みの電子メールにバインドされていないため、ソーシャル アカウントをリンクできません","account_tip_confirm_verify_email_phone":"本人確認のため、現在のアカウントのメールアドレスと電話番号に確認コードを送信するかどうか。","account_tip_confirm_verify_phone":"本人確認のために現在の電話番号に確認コードを送信するかどうか?","account_error_1_message_60_seconds":"60 秒ごとに 1 つの SMS または電子メールのみを送信できます。さらに {delta} 秒待ちます","account_error_10_messages_per_day":"各携帯電話または電子メールで 24 時間以内に送信できるメッセージは 10 件までです","account_error_network":"ネットワークに問題があります。後でもう一度お試しください。","Network Error":"ネットワークに問題があります。後でもう一度お試しください。","account_error_user_not_exist":"ユーザーは存在しません","account_error_incorrect_username_or_password":"ユーザーネームまたはパスワードが違います","account_error_incorrect_original_password":"元のパスワードが間違っています","account_error_incorrect_password":"パスワードが間違っています","account_error_username_not_found":"ユーザー名が見つかりません","account_error_can_not_reset_for_no_verified":"未検証のアカウントのパスワードをリセットできません","account_error_invalid_verification_code":"確認コードが間違っています。もう一度お試しください。","account_error_expired_verification_code":"確認コードの有効期限が切れました。もう一度お試しください。","account_error_password_not_long_enough":"パスワードの長さが足りません","account_error_attempt_limit_exceeded":"試行制限を超えました。しばらくしてからお試しください。","account_error_password_attempts_exceeded":"パスワードの試行回数を超えました。","account_error_invalid_phone_number_format":"電話番号の形式が無効です","account_error_no_cell_phone_prefix":"電話番号のプレフィックスを選択してください","account_error_username_already_exists":"ユーザー名は既に存在します","account_error_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります","account_error_inactive_code":"招待コードは有効化されたコードではありません","account_error_non_existent_code":"招待コードが存在しません","account_error_unexpected":"予期しないエラー","account_error_can_not_change_email_before_phone_bound":"電話番号がバインドされる前に電子メールを変更することはできません","account_error_can_not_change_email_before_unbound_social_account":"ソーシャルアカウントのバインドを解除するまで電子メールを変更することはできません","account_error_can_not_change_phone_before_email_bound":"電子メールがバインドされる前に電話番号を変更することはできません","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA を無効にする前に電子メールまたは携帯電話番号を変更することはできません","account_error_not_supported_yet":"サポートを保留中","account_error_same_email":"新しいメール アドレスは元のメール アドレスと同じにすることはできません","account_error_same_phone":"新しい電話番号を元の電話番号と同じにすることはできません","account_error_email_not_exists":"メールアドレスが存在しません","account_error_email_already_exists":"指定されたメールアドレスを持つアカウントはすでに存在します。","account_error_phone_already_exists":"指定された電話番号を持つアカウントはすでに存在します。","account_error_mfa_token_mismatch":"ソフトウェアトークンコードの不一致","account_error_recaptcha_not_loaded":"ネットワークに問題があります。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_recaptcha_validation_failed":"ReCAPTCHA 検証に失敗しました。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_sign_in_in_progress":"保留中のサインイン試行がすでに進行中です","account_field_range":"{0}-{1} 文字の入力を制限する","account_field_only_alphanumeric":"英数字のみをサポートします","account_field_only_alphanumeric_and_symbol":"英数字と記号のみをサポートします","account_field_only_chinese_alphanumeric_space_underline":"英数字、スペース、アンダースコアのみをサポートします","account_field_prefix_without_number_space":"最初の文字を数字やスペースにすることはできません","account_field_suffix_without_space":"スペースで終わることはできません","account_field_without_repeat_space":"複数のスペースを連続して使用することはできません","account_field_can_not_only_alphanumeric":"文字や数字だけを使用することはできません","account_field_must_have_number_characters":"数字文字が必要です","account_field_verification_code":"認証コードは6桁である必要があります","account_field_invitation_code":"招待コードは英数字である必要があります","account_field_phone_number":"電話番号の形式が無効です","account_invalid_email_format":"無効な電子メール形式","account_sign_out_confirm":"サインアウトしてもよろしいですか?これにより、すべてのタスクが停止します。","account_sign_out_anyway":"とにかくサインアウトしてください","account_signing_out":"サインアウト中...","account_request_save_settings":"設定は保存されません。サインアウトする前に変更を保存する必要があります。","pay":"支払う","pay_with_credit":"ダウンロードの有料化が加速します。約 {0} クレジットが必要です","pay_with_credit_payed":"加速中。 {0} 程度のクレジットがまだ必要です","create_payment":"支払いの作成","pay_target":"目標","pay_for_torrent":"{0} の支払い","your_subid":"あなたのサブID","your_credits":"あなたのクレジット","pay_point_for_data":"{1} データに対して {0} ポイントを支払う","auto_renew":"自動更新を有効にする","transaction_details":"取引詳細","transaction_id":"ID","transaction_payer":"支払者","transaction_payee":"受取人","transaction_category":"カテゴリー","transaction_changed_amount":"変更金額","transaction_meta":"メタ","transaction_status":"スターテス","transaction_creation_time":"作成時間","receipt_code":"受信コード","transfer_amount":"払込金額","code_the_receipt_code":"以下のレシートコードを支払者にコピーしてください","fill_the_receipt_code":"受取人から提供された支払いコードを入力して送金します","expense":"費用","copied":"コピーされました","transfer":"移行","receive":"受け取る","copy":"コピー","withdraw_fund":"資金を引き出す","category_paydata_payer":"データのコスト","category_paydata_payee":"データ収入","category_transfer":"移行","category_bonus":"ボーナス","category_recharge":"リチャージ","status_pending":"保留中","status_completed":"完成した","status_finish":"終了","status_failed":"失敗した","tip_invalid_receiver":"無効な受信機コードです","tip_invalid_amount":"クレジット額は 0 ~ 1000 の範囲の浮動小数点数である必要があります (最小精度は 0.001)。","credit_get_more":"さらにクレジットを取得","credit_no_data":"データなし","credit_loading":"読み込み中...","credit_not_enough_amount":"クレジットが足りません","credit_amount_not_enough":"クレジットが足りません","credit_payee_not_exist":"受取人が存在しません","credit_invalid_amount":"無効なクレジット金額です","credit_can_not_transfer_to_yourself":"自分への転送はできません","credit_latest":"最新","credit_error_network":"ネットワークに問題があります。後でもう一度お試しください。","add_subtitles":"字幕を追加する","open_file":"ファイルを開く...","advanced_options":"高度なオプション","title":"タイトル","location":"位置","subtitle_file":"字幕ファイル","unsupported_subtitle_type":"{0} のファイル タイプはサポートされている字幕タイプではありません","not_default_player":"デフォルトのビデオプレーヤーが設定されていません","this_is_an_audio_file":"これは音声ファイルです","the_added_subtitle_already_exists":"追加されたサブタイトルはすでに存在します","stop_stream_player":"タスクが一時停止または削除されたため、ストリーミング メディアが終了しました","stop_player":"ファイルが削除されたため、プレーヤーは終了しました","playing_timeout_hint":"待ち時間がタイムアウトします。タスクを確認してください","autoplay_hint":"自動再生はブラウザによってブロックされている可能性があります。プレーヤーが再生されていない場合は、画面をクリックして続行してください。","remove_playing_confirm":"{0} はまだ再生中です。削除するとプレーヤーが停止します。本当に削除しますか?","unsupported_in_browser":"ブラウザモードではまだサポートされていません","client":"クライアント","warning":"警告","enable":"有効にする","disable":"無効にする","auto":"自動","encrypt_connection":"接続を暗号化する","encrypted_connection":"暗号化された接続","non_encrypted_connection":"非暗号化接続","connected_wires_not_disconnect":"接続されたワイヤーが切れることはありません","audio":"オーディオ","video":"ビデオ","image":"画像","subtitle":"字幕","zip":"ジップ","text":"文章","unknown":"未知","add":"追加","undo":"元に戻す","backup":"バックアップ","not_default_app":"${displayName} はトレントとメディアのデフォルトのアプリではありません。デフォルトとして設定しますか?","dont_show_again":"二度と表示しないでください","go_to_settings":"設定に移動","about_alphabiz":"${displayName} について","last_check_at":"最終チェック日時","update_channel":"チャンネルを更新する","check_for_update":"更新を確認","checking_for_update":"アップデートをチェックしています...","no_update_available":"利用可能なアップデートはありません","update_available":"利用可能なアップデート","update_now":"今すぐアップデート","update_later":"後で更新","click_to_update":"「今すぐ更新」ボタンをクリックしてダウンロードして更新します","update_failed":"アップデートに失敗しました","update_failed_message":"更新中にエラーが発生しました:","check_shasum_failed":"インストーラーの整合性チェックに失敗しました","downloading_update":"アップデートをダウンロード中...","ready_to_update":"更新の準備ができました","restart_to_update":"アップデートがダウンロードされます。 ${displayName} は更新のためしばらく終了します。","already_latest":"現在のバージョン({0})はすでに最新です","update_timeout":"更新タイムアウト","no_available_release":"利用可能なリリースはありません","no_available_installer":"利用可能なインストーラーがありません","feedback":"フィードバック","select_a_type":"タイプを選択してください","category":"カテゴリー","select_a_category":"カテゴリーを選ぶ","require_title":"タイトルは必須です","describe_your_problem":"問題を説明してください","report_a_bug":"バグを報告","request_a_new_feature":"新しい機能をリクエストする","download_or_upload":"ダウンロードアップロード","others":"その他","submit_with_system_info":"システム情報を含めて送信する","submit_feedback":"フィードバックを送信","tweet_us":"ツイートしてください","tweet_too_long":"ツイートが長すぎます","delete_characters":"少なくとも {0} 文字を削除してください","rest_characters":"さらに {0} 文字を入力できます","update_alphabiz":"${displayName} を更新します","current_version":"現行版","cancel_update":"更新をキャンセルする","slow_download_speed":"ダウンロードが遅すぎる","slow_download_speed_caption":"インストーラーのダウンロードが遅すぎます。ネットワークのステータスを確認してください","update_canceled":"アップデートがキャンセルされました","current_version_release_time":"現在のバージョンのリリース時期","expired_app":"${displayName} 期限切れ","version_out_of_date":"バージョンが古い","have_to_update":"${displayName} のバージョンは古くなっています。一部のプロトコルまたは API は廃止されました。続行する前に ${displayName} を更新する必要があります。","exit_alphabiz":"終了 ${displayName}","exit_and_update":"終了してアップデートを適用する","new_version_hint":"新しいバージョンが利用可能です","no_new_version":"新しいバージョンは利用できません","current_is_latest":"現在のバージョンはすでに最新です","click_to_check_update":"[CHECK FOR UPDATE]ボタンをクリックしてアップデートを確認してください","download_latest_version_from_website":"公式 Web サイトにアクセスして最新バージョンをダウンロードしてください","to_the_website":"ウェブサイトへ","network_diagnotic":"ネットワーク診断","diagnotic":"診断","click_to_check":"クリックして確認してください","click_to_check_again":"クリックして再度確認してください","checking":"チェック中","online":"オンライン","offline":"オフライン","dns_look_up":"DNSルックアップ","error":"エラー","aws_service":"AWSサービス","network_pings":"ネットワークping","not_found":"見つかりません","packet_loss":"パケット損失","official_site":"オフィシャルサイト","download_test":"ダウンロードテスト","test_task":"テスト タスク {0}","download_failed":"ダウンロードに失敗しました","second_spend":"{0} の支出","open_default_player_failed":"デフォルトのプレーヤーを開けませんでした","copied_to_clipboard":"クリップボードにコピーされました","go_to":"に行く","region_not_available":"地域が利用できません","region_not_available_message":"ごめん!お住まいの地域ではこのアプリを使用できません。このアプリは {0} 秒後に終了します","confirm":"確認","no_available_result":"利用可能な結果がありません","invalid_password_format":"無効なパスワード形式です","invalid_password_format_same":"パスワードは元のパスワードと同じです","error_password":"パスワードエラー","keychain_setting":"キーホルダー","setting_description":"クラウドストレージ: 重要なデータをクラウドに保存します。\\nパスワードの変更: メディア ライブラリ キーのパスワードを変更します。\\nニーモニック: キーを生成および復元するための代替方法。\\nローカル キーのインポート: ローカルに保存されたキーをメディア ライブラリにインポートします。\\nエクスポート キー: 現在のメディア ライブラリ データをローカルまたはクラウドに保存します。\\nキーをクラウドにバックアップ: 現在のメディア ライブラリ データをバックアップのためにクラウドに更新します。","refresh_status":"最新状況","confirm_import_key":"インポートキーの確認","confirm_update_cloud_key":"クラウドにはすでにキーがあります。キーを更新すると、元のキーが上書きされます。クラウドに保存されているキーを更新してもよろしいですか?","export_key_with_cloud":"設定した独自のパスワードを入力してクラウドに保存されているライブラリキーをエクスポートし、ロック解除パスワードでキーファイルをロックします","store_cloud_key_prompt_password":"ライブラリキーをクラウドに保存するための独立したパスワードを入力します","update_cloud_key_prompt_password":"独立したパスワードを設定してライブラリキーを暗号化し、クラウドに更新します","enable_cloud_storage_prompt_password":"クラウドに保存されているキーのパスワードを設定します。これにより、クラウドからキーを取得できます。","input_unlock_password":"ロック解除パスワードを設定する","export_local_prompt_password":"キーファイルを暗号化するには、ロック解除パスワードを設定してください。このパスワードは保存されないため、パスワードを紛失するとライブラリ キーのロックを解除できなくなります。","require_unlock_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","require_independent_password":"独立したパスワードを入力して、クラウドに保存されているキーを取得します","import_local_prompt_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","select_encrypt_mode":"暗号化モードの選択","update_cloud_key":"クラウドに保存されているキーを更新する","backup_to_cloud":"ライブラリキーをクラウドにバックアップする","save_local":"ライブラリキーをローカルの暗号化ファイルとして保存します","create_new_key":"新しいライブラリキーを作成する","creating_lib_key":"ライブラリキーを作成しています...","loading_lib_key":"ライブラリキーをロードしています...","failed_to_create_lib_key":"ライブラリキーの作成に失敗しました","failed_to_load_lib_key":"ライブラリキーのロードに失敗しました","import_local_key":"キーをローカルにインポートする","import_lib_key_from_local":"ライブラリキーをローカルにインポートする","import_from_cloud":"クラウドからライブラリキーをインポートする","create_or_import_key":"ライブラリキーを作成またはインポートする","create_or_import_key_desc":"ライブラリ キーは、分散データベースでコンテンツを取得および公開するために使用される独立したキーです。","store_your_lib_key":"ライブラリキーを保管する","export_cloud_key":"クラウドからキーをエクスポート","export_current_key":"現在のキーをエクスポート","change_password":"パスワードを変更する","enable_cloud_storage":"クラウドストレージを有効にする","disable_cloud_storage":"クラウドストレージを無効にする","disable_cloud_storage_desc":"クラウド ストレージを無効にすると、クラウドに保存されているキーが削除されます。キーがローカルに保存されていることを確認してください。","sync_at":"同期先: {time}","cloud_storage_enabled":"キーチェーンを {storage} と同期する","cloud_storage_disabled":"クラウドストレージが無効になっています","saved_locally":"ローカルに保存されました","export_key":"キーファイルのエクスポート","cloud_independent_password":"クラウドに依存しないパスワード","key_file_unlock_password":"キーファイルのロック解除パスワード","re_enter_unlock_password":"ロック解除パスワードを再入力してください","independent_password_not_enabled":"現在のパスワードはAlphabizアカウントのパスワードです(独自のパスワードは設定されていません)","use_cognito_hash":"Alphabiz アカウントのパスワードを使用する","use_independent_password":"独立したパスワードを使用する","keychain_lib":"ライブラリキー","loading_keychain_state":"キーチェーンを読み込んでいます...","backing_up":"バックアップ...","backup_current_key":"現在のキーをクラウドにバックアップする","cloud_lib_key_not_existed":"ライブラリキーがクラウドに存在しません","open_keychain_file":"キーチェーン ファイルを開く","confirm_open_abk":"ABKファイルを開きますか?","use_the_key":"キーを使用する","backup_the_key":"キーをクラウドにバックアップする","keychain_data_does_not_exist":"キーチェーンデータが存在しません","timeout of 0ms exceeded":"ネットワークに問題があります。後でもう一度お試しください。","XhrError":"ネットワークに問題があります。後でもう一度お試しください。","payer credit amount is not enough":"クレジットが足りません","payee does not exist":"受取人が存在しません","block_list_manage":"ブロックリスト管理","blocked_users":"ブロックされたユーザー","blocked_channels":"ブロックされたチャンネル","unblock_user":"ユーザーのブロックを解除する","unblock_channel":"チャンネルのブロックを解除する","no_blocked_user":"ブロックされたユーザーはいません","no_blocked_channel":"ブロックされたチャンネルはありません","field_required":"{0} は必須です","setting":"設定","unknown_media":"不明なメディア","settings_button_visible":"ボタンが表示されます","settings_setting":"設定","settings_playback_rate":"再生速度","settings_subtitle":"字幕","settings_pip":"PiP","settings_fullscreen":"全画面表示","settings_subtitle_options":"字幕オプション","settings_normal":"普通","settings_italic":"イタリック","settings_lighter":"ライター","settings_bolder":"より大胆に","settings_small":"小さい","settings_large":"大きい","about":"について","services":"サービス","hide":"隠れる","hide_others":"他の人を隠す","show_all":"すべて表示する","quit":"やめる","edit":"編集","redo":"やり直し","cut":"切る","paste":"ペースト","select_all":"すべて選択","view":"ビュー","reload":"リロード","toggle_full_screen":"フルスクリーン切り替え","toggle_developer_tools":"開発者ツールの切り替え","window":"窓","minimize":"最小化する","bring_all_to_front":"すべてを前面に出す","help":"ヘルプ","github_repo":"Github リポジトリ","issues":"問題","learn_more":"もっと詳しく知る","learn_spelling":"スペルを学ぶ","lookup_selection":"「{selection}」を調べる","search_with_google":"Googleで検索","save_as":"名前を付けて保存","save_image":"画像を保存","save_image_as":"画像を保存します ...","copy_link":"リンクをコピーする","save_link_as":"リンクを名前を付けて保存 ...","copy_image":"画像をコピー","copy_image_as":"画像をコピー...","copy_image_address":"画像アドレスをコピー","download_complete":"ダウンロード完了","download_complete_message":"{0} がダウンロードされました","is_running":"{0} が実行中です","open":"{0} を開く","launch_problem":"起動の問題","ask_clear_data":"{0} を起動しようとしましたが、数回失敗したようです。\\nすべてのアプリデータをクリアして、後で起動してみますか?","launch_directly":"直接起動","clear_all_data":"すべてのデータをクリア","ask_clear_confirm":"これにより、すべての設定、ログ、ユーザー データが削除されます。\\nこの後、{0} を再度起動する必要がある場合があります。\\nデータを消去してもよろしいですか?","confirm_launch":"いいえ、直接起動します","confirm_clear":"はい、すべてのデータを消去します"}')},"3d7e":function(e,t,a){"use strict";a("b36a")},"3e69":function(e,t,a){},"3fc8":function(e,t,a){"use strict";a("0c2f")},4:function(e,t){},"40fa":function(e,t){e.exports=require("net")},4165:function(e){e.exports=JSON.parse('{"lib_index":"บ้าน","lib_edit":"เผยแพร่","lib_publish":"เผยแพร่","lib_explore":"สำรวจ","lib_following":"กำลังติดตาม","lib_favorite":"รายการโปรดในท้องถิ่น","lib_local_favorites":"รายการโปรดในท้องถิ่น","lib_channel":"ช่อง","lib_submit":"ส่ง","lib_from_network":"การใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย","welcome_to_lib":"ยินดีต้อนรับสู่ห้องสมุดสื่อ ${displayName}","register_or_login":"ลงทะเบียน/เข้าสู่ระบบ","lib_recommend":"แนะนำ","lib_recommend_desc":"ยินดีต้อนรับสู่ ${displayName} ห้องสมุด! ห้องสมุดนี้ใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย ในการเริ่มใช้งาน คุณต้องติดตามบางช่อง","follow_any_channel_to_continue":"ติดตามช่องใดก็ได้เพื่อดำเนินการต่อ","follow_channels_and_continue":"ติดตามช่อง {0} และดำเนินการต่อ","show_more_for_me":"แสดงมากขึ้นสำหรับฉัน","no_more_recommend":"ไม่แนะนำเพิ่มเติม","key":"สำคัญ","create_key":"สร้างคีย์","save_key":"บันทึกคีย์","save_key_file":"คุณต้องการบันทึกรหัสของคุณเป็นไฟล์หรือไม่?","import_key":"นำเข้าคีย์","import":"นำเข้า","invalid_key":"กุญแจนี้ใช้ไม่ได้","back_to_top":"กลับไปด้านบน","search_for_channel":"ค้นหารหัสช่อง","search_channel_no_result":"ไม่พบช่องที่มี ID {0}","please_input_channel_id":"โปรดป้อนรหัสช่อง","welcome_help_text":"นี่คือไลบรารีสื่อที่กระจายอำนาจ คุณต้องการ\\n เพื่อสร้างบัญชีสำหรับฐานข้อมูลนี้ เราจะ\\n สร้างรหัสส่วนตัวให้คุณโดยอัตโนมัติ\\n หากคุณมีรหัสอยู่แล้ว คุณสามารถนำเข้าได้เช่นกัน\\n ที่นี่.","welcome_key_text":"เมื่อคุณเข้าสู่ระบบแล้ว โปรดคลิกปุ่ม [SAVE KEY]\\n ที่มุมล่างขวาเพื่อบันทึกคีย์ส่วนตัวของคุณ\\n หากคุณทำกุญแจหาย คุณอาจไม่สามารถเข้าสู่ระบบได้อีก","redirect_to_recommend":"ดูเหมือนว่าคุณไม่ได้ติดตามช่องใดเลย กำลังเปลี่ยนเส้นทางไปยังหน้า [สำรวจ]","channel":"ช่อง","follow":"ติดตาม","unfollow":"เลิกติดตาม","following":"กำลังติดตาม","share":"แบ่งปัน","unfollow_confirm":"คุณแน่ใจหรือไม่ที่จะเลิกติดตามช่องนี้ โพสต์ทั้งหมดของช่องนี้ในไทม์ไลน์ของคุณจะถูกลบออก","follow_failed_hint":"การดำเนินการยังคงค้างอยู่ในพื้นหลัง หากไม่ได้ใช้การดำเนินการเป็นเวลานาน โปรดรีสตาร์ทแอปแล้วลองอีกครั้ง","block":"ปิดกั้น","unblock":"เลิกบล็อก","blocked":"ถูกบล็อก","block_channel":"บล็อกช่องนี้","block_channel_confirm":"ช่องที่ถูกบล็อกจะลบออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","block_creator":"บล็อกผู้สร้างช่องนี้","unblock_creator":"เลิกบล็อกผู้สร้างช่องนี้","block_creator_confirm":"ผู้สร้างบล็อกจะลบช่องทั้งหมดที่สร้างโดยผู้สร้างรายนี้ออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","share_url_copied":"แบ่งปัน URL จะถูกคัดลอกไปยังคลิปบอร์ดของคุณ","follow_time":"ติดตามเวลา","update_time":"เวลาอัปเดต","search":"ค้นหา","type":"พิมพ์","added":"เพิ่ม","click_to_task":"คลิกเพื่อไปที่งาน","lib_already_added":"คุณได้เพิ่มวิดีโอนี้แล้ว","description":"คำอธิบาย","poster":"โปสเตอร์","channel_poster":"โปสเตอร์ช่อง","preview":"ดูตัวอย่าง","creator":"ผู้สร้าง","creator_detail":"รายละเอียดผู้สร้าง","loading_creator":"กำลังโหลดข้อมูลผู้สร้าง","wait_for_creator_loaded":"โปรดรอสักครู่เพื่อโหลดข้อมูลผู้สร้าง","follower":"ผู้ติดตาม","followers":"ผู้ติดตาม","follower_list":"รายชื่อผู้ติดตาม","user":"ผู้ใช้","channel_title":"ชื่อช่อง","channel_id":"รหัสช่อง","post_title":"ชื่อกระทู้","post_id":"รหัสโพสต์","import_data_from_excel":"นำเข้าข้อมูลจาก excel","set_excel_keys":"ตั้งค่าคีย์ excel","excel_import_succeded":"นำเข้า Excel สำเร็จ","excel_import_success_msg":"{0} แถวพร้อมที่จะเพิ่ม {1} ไม่ถูกต้องและ {2} รายการที่ซ้ำกันจะถูกละเว้น","cannot_find_channel":"ไม่พบช่อง","cannot_find_posts":"ไม่พบโพสต์","add_channel":"เพิ่มช่อง","add_post":"เพิ่มโพสต์","edit_channel":"แก้ไขช่อง","channel_setting":"การตั้งค่าช่อง","edit_post":"แก้ไขโพสต์","edit_posts":"แก้ไขข้อความ","channel_detail":"รายละเอียดช่อง","remove":"ลบ","remove_channel":"ลบช่อง","remove_channel_confirm":"คุณแน่ใจหรือไม่ว่าจะนำโพสต์นี้ออก สิ่งนี้ไม่สามารถกู้คืนได้","remove_post":"ลบโพสต์","remove_post_confirm":"คุณแน่ใจหรือว่าต้องการลบช่องนี้ สิ่งนี้ไม่สามารถกู้คืนได้","preview_mode":"โหมดดูตัวอย่าง","preview_mode_desc":"นี่คือตัวอย่างช่องของคุณ อัตราของภาพยนตร์ทั้งหมดแสดงไว้ที่นี่","edit_user_profile":"แก้ไขโปรไฟล์ผู้ใช้","name":"ชื่อเล่น","avatar":"สัญลักษณ์","no_following":"ไม่มีช่องติดตาม คลิกเพื่อข้ามไป","no_recommend":"ไม่มีช่องแนะนำ คลิกเพื่อข้ามไป","first_recomment_msg":"อาจใช้เวลาสักครู่หากนี่เป็นการเปิดแอปครั้งแรก","invalid_image":"รูปภาพไม่ถูกต้อง","image_not_reachable":"ไม่สามารถเข้าถึง URL รูปภาพนี้ได้","channel_not_found":"ไม่พบช่อง","cannot_get_channel_info":"ไม่สามารถรับข้อมูลช่อง ช่องนี้อาจถูกลบโดยผู้สร้างและไม่สามารถใช้งานได้อีกต่อไป","validate_error":"ตรวจสอบข้อผิดพลาด","validate_user_name_no_space":"ชื่อผู้ใช้ไม่ควรมีช่องว่าง","validate_url_no_space":"URL ไม่ควรมีช่องว่าง","validate_user_name_length":"ชื่อผู้ใช้ควรมีความยาวระหว่าง {0} ถึง {1}","validate_user_desc_length":"คำอธิบายผู้ใช้ไม่ควรเกิน {0} อักขระ","validate_user_avatar_url":"อวาตาร์ของผู้ใช้ควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_channel_title_length":"ชื่อช่องควรมีความยาวระหว่าง 1 ถึง 100","validate_channel_desc_length":"คำอธิบายช่องควรมีความยาวระหว่าง 10 ถึง 300","validate_channel_image_url":"การแสดงตัวอย่างช่องควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_title_length":"ชื่อโพสต์ควรมีความยาวระหว่าง 1 ถึง 100","validate_post_desc_length":"คำอธิบายโพสต์ควรมีความยาวระหว่าง 10 ถึง 300","validate_post_image_url":"โปสเตอร์ควรเป็น url ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_url":"URL ${displayName} ไม่ถูกต้อง","validate_post_url_length":"${displayName} URL ไม่ควรเกิน 2,048 อักขระ","film_rate":"อัตราฟิล์ม","set_film_rate":"กำหนดอัตราภาพยนตร์","select_a_rate_before_enter":"คุณต้องเลือกอัตราภาพยนตร์ก่อนเข้าสู่ไลบรารีสื่อ","library_available_rate":"อัตราภาพยนตร์ที่มีอยู่ในห้องสมุด","rate_g":"G – ผู้ชมทั่วไป","rate_g_desc":"รับทุกวัย ไม่มีอะไรที่จะทำให้ผู้ปกครองขุ่นเคืองเมื่อเด็ก ๆ ดู","rate_pg":"PG – ผู้ปกครองแนะนำ","rate_pg_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสำหรับเด็ก ผู้ปกครองควรให้คำแนะนำแก่ผู้ปกครอง อาจมีเนื้อหาบางอย่างที่ผู้ปกครองอาจไม่ชอบสำหรับเด็กเล็ก","rate_pg_13":"PG-13 – ผู้ปกครองควรระมัดระวังเป็นอย่างยิ่ง","rate_pg_13_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสมสำหรับเด็กอายุต่ำกว่า 13 ปี ผู้ปกครองควรระมัดระวัง เนื้อหาบางอย่างอาจไม่เหมาะสมกับเด็กก่อนวัยรุ่น","rate_r":"R – ถูกจำกัด","rate_r_desc":"อายุต่ำกว่า 17 ปีต้องมีพ่อแม่หรือผู้ปกครองที่เป็นผู้ใหญ่มาด้วย มีเนื้อหาสำหรับผู้ใหญ่ ผู้ปกครองควรเรียนรู้เพิ่มเติมเกี่ยวกับภาพยนตร์ก่อนที่จะพาลูกเล็กไปด้วย","rate_nc_17":"NC-17 – สำหรับผู้ใหญ่เท่านั้น","rate_nc_17_desc":"ห้ามใครอายุต่ำกว่า 17 ปีเข้า ผู้ใหญ่ชัดๆ ไม่อนุญาตให้เด็กเข้าพัก","set_as_private":"ตั้งเป็นส่วนตัว","hide_in_explore":"ซ่อนช่องนี้ในหน้าสำรวจ","hidden":"ที่ซ่อนอยู่","select_a_rate":"กรุณาเลือกอัตราภาพยนตร์","select_from_tasks":"เลือกจากงาน","import_from_magnet":"นำเข้าจากแม่เหล็ก:?...","input_magnet_url":"แม่เหล็กอินพุต:? URL","task_title":"ชื่องาน","set_title":"ตั้งชื่อเรื่อง","add_to_local_favorites":"เพิ่มในรายการโปรดในท้องถิ่น","remove_from_local_favorites":"ลบออกจากรายการโปรดในท้องถิ่น","removed_favorite":"ลบรายการโปรดแล้ว","import_or_export_favorites":"นำเข้า/ส่งออกรายการโปรด","export_local_favorites":"ส่งออกรายการโปรดในเครื่องเป็นข้อมูลสำรอง","import_favorites_file":"นำเข้าไฟล์รายการโปรด","not_a_favorite_file":"ไฟล์นี้ไม่ใช่ไฟล์สำรองข้อมูลโปรด","connection_status":"สถานะการเชื่อมต่อ","gun_server_list":"โหนดแคช","custom_nodes":"โหนดแคชที่กำหนดเอง","custom_nodes_hint":"โหนดแคชที่กำหนดเองจะถูกนำไปใช้หลังจากเปิดแอปใหม่","wait_for_reboot":"กำลังรอการรีบูต...({seconds}s)","reboot_now":"รีบูทเดี๋ยวนี้","reboot_later":"รีบูตในภายหลัง","peer_list":"โหนดโดยตรง","server":"โหนด URL","peer":"เพียร์","peer_id":"รหัสโหนด","connection":"การเชื่อมต่อ","data_source":"แหล่งข้อมูล","sync":"ซิงค์","syncing":"กำลังซิงค์","sync_completed":"ซิงค์เสร็จสมบูรณ์","got_all_post":"คุณได้รับโพสต์ทั้งหมดแล้ว","placeholder_channel_title":"ชื่อช่องของคุณ","placeholder_channel_desc":"คำอธิบายเกี่ยวกับช่องนี้","placeholder_post_title":"ชื่อภาพยนตร์ (ปี)","placeholder_post_desc":"คำอธิบายเกี่ยวกับหนังเรื่องนี้","private_channel":"ช่องส่วนตัว","creator_blocked":"ผู้สร้างบล็อก","go_to_library":"ไปห้องสมุด?","go_to_library_channel_msg":"คุณต้องการไปที่ช่องไลบรารี {0} หรือไม่","magnet_does_not_have_name":"แม่เหล็กนี้:? url ไม่มีชื่อ คุณต้องเพิ่มชื่อโพสต์ก่อน","no_available_post":"ไม่มีโพสต์","following_channel_no_post":"ช่องที่คุณติดตามทั้งหมดไม่มีโพสต์ อาจเกิดจากข้อผิดพลาดของเครือข่าย หากคุณเคยติดตามบางช่องแล้ว โพสต์อาจถูกโหลดในภายหลัง","share_to_library":"แบ่งปันไปที่ห้องสมุด","quick_start":"เริ่มต้นอย่างรวดเร็ว","quick_start_desc":"เริ่มสร้างโพสต์ด้วยงานหรือไฟล์","select_file":"เลือกไฟล์...","select_folder":"เลือกโฟลเดอร์...","post_options":"โพสต์ตัวเลือก","channel_options":"ตัวเลือกช่อง","create_new_channel":"สร้างช่องใหม่","use_existed_channel":"ใช้ช่องทางที่มีอยู่","select_existed_channel":"เลือกช่องที่มีอยู่","uploaded_by":"{title} อัพโหลดโดย {name}","created_by":"{title} สร้างโดย {name}","creating_new_channel":"กำลังสร้างช่องใหม่...","created_new_channel":"สร้างช่องใหม่แล้ว","creating_new_post":"กำลังสร้างโพสต์ใหม่...","created_new_post":"สร้างโพสต์ใหม่แล้ว","create_new_post":"สร้างโพสต์ใหม่","quick_start_timeout":"{0} หมดเวลา อาจเกิดจากข้อผิดพลาดของเครือข่าย กรุณาลองใหม่อีกครั้งในภายหลัง.","file_too_large":"ไฟล์ใหญ่เกินไป","file_too_large_msg":"ไฟล์นี้มีขนาดใหญ่กว่า 4GB ({size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจหรือไม่ว่าจะดำเนินการต่อ","resolving_folder_files":"กำลังแก้ไขไฟล์โฟลเดอร์...","folder_too_large":"โฟลเดอร์ใหญ่เกินไป","folder_too_large_msg":"ไฟล์ในโฟลเดอร์นี้มีขนาดใหญ่กว่า 4GB (รวม {size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจว่าจะอัปโหลดหรือไม่","creating_new_task":"กำลังสร้างงานใหม่...","cannot_create_task":"ไม่สามารถสร้างงาน","cannot_create_task_msg":"ซึ่งอาจเกิดจากข้อผิดพลาดบางอย่าง หากงานถูกสร้างขึ้นอย่างถูกต้อง คุณสามารถตรวจสอบรายการงานได้ในภายหลัง","cannot_get_task_name":"ไม่สามารถรับชื่องาน คุณต้องป้อนข้อมูลก่อน","remove_old_task":"ลบงานเก่า","remove_old_task_desc":"โหมดเว็บสามารถสร้างได้ครั้งละหนึ่งงานเท่านั้น คุณต้องการลบงานเก่าหรือไม่?","subtitle_list":"รายการคำบรรยาย","optional":"ไม่จำเป็น","with_subtitle":"พร้อมคำบรรยาย {language}","maximumSubtitleNum_limit":"จำนวนคำบรรยายถึงขีดสุดแล้ว","add_subtitle_url":"เพิ่มลิงค์ดาวน์โหลดคำบรรยาย","cannot_add_subtitle":"ไม่สามารถเพิ่มคำบรรยาย","cannot_add_subtitle_msg":"ไม่ได้เลือกภาษาคำบรรยายหรือลิงก์ดาวน์โหลดไม่ถูกต้อง","support_subtitle_type":"รองรับคำบรรยายในรูปแบบ srt และ vtt เท่านั้น","recommend_opensubtitles":"ขอแนะนำให้ใช้ลิงค์ดาวน์โหลดคำบรรยายหรือรหัสที่ www.opensubtitles.org","take_down":"ลง","serious_violation":"การละเมิดอย่างร้ายแรง","copyright_disputes":"ข้อพิพาทด้านลิขสิทธิ์","adults_only":"ผู้ใหญ่เท่านั้น","takedown_reason":"เหตุผลในการลบออก","takedown_mode":"โหมดลบออก","admins":"ผู้ดูแลระบบ","takedown_user":"ลบผู้สร้างรายนี้","takedown_channel":"ลบช่องนี้","takedown_post":"ลบโพสต์นี้","select_takedown_reason":"เลือกเหตุผลในการลบออก","takedown_invalid_reason":"เหตุผลในการลบออกไม่ถูกต้อง","takedown_invalid_user_id":"รหัสผู้ใช้ไม่ถูกต้อง รหัสควรมีอักขระ 87 ตัว","takedown_invalid_channel_id":"รหัสช่องไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_invalid_post_id":"รหัสโพสต์ไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_management":"จัดการลง","users":"ผู้ใช้","channels":"ช่อง","posts":"กระทู้","you":"คุณ","preset":"ตั้งค่าล่วงหน้า","admin":"ผู้ดูแลระบบ","committee":"คณะกรรมการ","about_takedown_mode":"เกี่ยวกับโหมดลบออก:\\nตั้งค่าล่วงหน้า: กำหนดค่าในที่เก็บ github พวกเขาทั้งหมดจะถูกลบออกจากห้องสมุด\\nผู้ดูแลระบบ: คนใดคนหนึ่งที่ผู้ดูแลระบบโหวตให้จะถูกลบออก\\nคณะกรรมการ: แอดมินอย่างน้อยครึ่งหนึ่งโหวตให้จะถูกลบออก","cannot_edit_preset":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากเป็นแถวที่กำหนดไว้ล่วงหน้า","cannot_edit_not_vote":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากคุณยังไม่ได้ลงคะแนน","remove_vote":"ลบการลงคะแนนของคุณ","post_preload_failed":"โหลดโพสต์นี้ล่วงหน้าไม่สำเร็จ ลิงก์ดาวน์โหลดอาจล้าสมัย ดังนั้นโพสต์นี้จึงไม่สามารถเล่นได้ทันที","about_cache_node":"เกี่ยวกับโหนดแคช","edit_cache_node":"แก้ไขโหนดแคช","create_cache_node":"สร้างโหนดแคช","about_cache_node_desc":"${displayName} ใช้เซิร์ฟเวอร์ปืนเป็นโหนดแคช คุณสามารถแก้ไขโหนดที่กำหนดเองได้ในการตั้งค่าล่วงหน้า","learn_how_to_deploy_gun":"เรียนรู้วิธีการปรับใช้เซิร์ฟเวอร์ปืนของคุณเอง","repeat_add":"เพิ่มงานแล้ว โปรดอย่าเพิ่มอีกครั้ง","upload":"ที่อัพโหลด","download":"ดาวน์โหลด","delete":"ลบ","delete_task":"ลบงาน","delete_confirm_message":"ลบงานนี้ไหม สิ่งนี้ไม่สามารถเพิกถอนได้","also_delete_files":"ลบไฟล์ด้วย","default_delete_files":"เริ่มต้นลบไฟล์ที่ดาวน์โหลดหลังจากลบงาน","not_now":"ไม่ใช่ตอนนี้","delete_autoupload_confirm":"งานนี้มีไฟล์ที่คุณใส่ไว้ในไดเร็กทอรีอัปโหลดอัตโนมัติ การลบงานนี้จะเป็นการลบไฟล์ด้วย","delete_anyway":"ลบต่อไป","upload_too_many_files":"อัปโหลดไฟล์มากเกินไป","ask_if_unlimit_upload_amount":"ไดเร็กทอรีอัปโหลดอัตโนมัติมีไฟล์มากเกินไป คุณต้องการปิดการจำกัดจำนวนการอัปโหลดหรือไม่ *สิ่งนี้อาจทำให้เกิดปัญหาด้านประสิทธิภาพ","disable_limitation":"ปิดการใช้งานข้อ จำกัด","not_length":"ขณะนี้ยังไม่รองรับการทำงานหลายไฟล์ โปรดให้ความร่วมมือ","download_torrent":"ดาวน์โหลดไฟล์","upload_torrent":"อัพโหลดไฟล์","files":"ไฟล์","file":"ไฟล์","folder":"โฟลเดอร์","start_all":"เริ่มต้นทั้งหมด","pause_all":"หยุดทั้งหมด","remove_all":"ลบทั้งหมด","upload_all":"อัปโหลดทั้งหมด","clear_history":"ล้างประวัติ","pause_all_finish_payments":"การดำเนินการนี้จะเสร็จสิ้นการชำระเงินทั้งหมด","accelerating":"กำลังเร่ง","link_task":"งานเชื่อมโยง","torrent_task":"งานไฟล์","ok":"ตกลง","cancel":"ยกเลิก","download_directory_position":"ดาวน์โหลดตำแหน่งไดเร็กทอรี","torrent_file":"ไฟล์งาน","magnetic_link_incorrect":"รูปแบบลิงค์ไม่ถูกต้อง","delete_fail":"ลบล้มเหลว","pause":"หยุดชั่วคราว","paused":"หยุดชั่วคราว","stop_torrent":"หยุด","seed":"เมล็ดพันธุ์","resume":"ประวัติย่อ","downloading":"กำลังดาวน์โหลด","downloaded":"ดาวน์โหลดแล้ว","uploading":"กำลังอัปโหลด","auto_uploading":"อัปโหลดอัตโนมัติ","uploaded":"อัปโหลดแล้ว","pending":"รองานอื่นๆ","verifying":"กำลังตรวจสอบ","waiting_for_verify":"กำลังรอการตรวจสอบ","seeding":"การเพาะเมล็ด","completed":"สมบูรณ์","status":"สถานะ","task_name":"ชื่องาน","size":"ขนาด","progress":"ความคืบหน้า","sort":"เรียงลำดับ","ascending":"จากน้อยไปมาก","descending":"จากมากไปน้อย","file_loading":"กำลังโหลดไฟล์...","loading":"กำลังโหลด","unknown_status":"ไม่ทราบ","play_while_downloading":"เล่น...","upload_or_play":"อัปโหลด / เล่น","play":"เล่น","ask_if_upload_file":"อัพโหลดไฟล์?","ask_if_upload_or_play":"อัปโหลดหรือเล่นไฟล์?","torrent_error":"เกิดข้อผิดพลาดเมื่อเพิ่มงาน:","no_peers":"ลองใหม่มากกว่า {0} ครั้ง แต่ไม่มีเพียร์","torrent_exists":"งานมีอยู่แล้ว","show_origin_torrent":"รับไฟล์งานหรือ URL ต้นฉบับ","show_directory":"เปิดไดเร็กทอรีของทอร์เรนต์นี้","task_num":"งาน","total_upload_speed":"ความเร็วในการอัปโหลด","total_download_speed":"ความเร็วดาวน์โหลด","path_missing":"ข้อผิดพลาด: ไม่พบเส้นทาง torrent","origin_not_found":"ไม่พบข้อมูลงานต้นทาง","text_copied":"Magnum url ถูกคัดลอกไปยังคลิปบอร์ดของคุณ","copy_magnet_uri":"คัดลอกแม่เหล็ก:? ยูอาร์ไอ","copy_download_uri":"คัดลอก URI ดาวน์โหลด","copy_share_uri":"คัดลอก URI ที่ใช้ร่วมกัน","uri_copied":"คัดลอก URI ไปยังคลิปบอร์ดของคุณเรียบร้อยแล้ว","uri_copy_failed":"คัดลอก uri.dll ไม่สำเร็จ","more":"มากกว่า...","toggle_list_mode":"สลับโหมดรายการ","comment":"ความคิดเห็น","operations":"การดำเนินงาน","open_directory":"เปิดไดเรกทอรี","no_downloading_task":"ไม่มีงานดาวน์โหลด","remove_all_downloading_tasks":"นำงานดาวน์โหลดทั้งหมดออกไหม","remove_all_upload_tasks":"นำงานอัปโหลดทั้งหมดออกไหม","remove_autoupload_files":"ลบไฟล์ที่อัปโหลดอัตโนมัติ","remove_all_history":"นำประวัติทั้งหมดออกไหม","remaining":"ที่เหลืออยู่","created_time":"สร้างเวลา","used_time":"เวลาที่ใช้","completed_time":"ครบเวลา","yesterday":"เมื่อวาน","before_yesterday":"{empty}","earlier":"ก่อนหน้านี้","miss_file":"ไฟล์บางไฟล์หายไป","delete_miss_file_task":"มีไฟล์ fome หายไปใน {0}","common_peer":"เพื่อนทั่วไป","ab_peer":"${displayName} เพื่อน","ab_peer_verified":"ยืนยันแล้ว ${displayName} เพียร์","ab_peer_available":"${displayName} เพียร์ที่มีอยู่","alphabiz_accelerating":"${displayName} เร่ง","income":"รายได้","income_info":"รายได้(วันนี้/ทั้งหมด)","total_income_info":"รายได้: {0}(วันนี้) / {1}(ทั้งหมด)","login_to_see_income":"เข้าสู่ระบบเพื่อดูสถิติรายได้","credit_cost":"ต้นทุนเครดิต","downloaded_by_payment":"ดาวน์โหลดโดยการชำระเงิน","file_not_found":"ไม่พบไฟล์นี้ในเครื่อง","no_task":"ไม่มีงาน","no_matched_task":"ไม่มีงานที่ตรงกัน","space_not_enough":"พื้นที่ดิสก์ไม่เพียงพอ","need_more_space":"ต้องการพื้นที่เพิ่ม {0} แต่ดิสก์ปัจจุบันมี {1} ฟรี (สงวน {2}) งานถูกหยุดชั่วคราว การโหลดไลบรารีล่วงหน้าถูกปิดใช้งาน คุณสามารถเปิดใช้งานอีกครั้งได้ใน [การตั้งค่า - ขั้นสูง]","seeders":"เครื่องหยอดเมล็ด","last_update":"การปรับปรุงครั้งล่าสุด","connecting":"กำลังเชื่อมต่อ","connected":"เชื่อมต่อแล้ว","request_timed_out":"คำขอหมดเวลา","connection_failed":"การเชื่อมต่อล้มเหลว","invalid_download_url":"URL ดาวน์โหลดไม่ถูกต้อง","download_link":"ลิ้งค์ดาวน์โหลด","empty_files":"ไม่มีไฟล์ในไดเรกทอรี","duplicate_task":"งานที่ซ้ำกัน","duplicate_tracker":"ตัวติดตามที่ซ้ำกัน","this_task_not_ready":"งานนี้ไม่พร้อม การหยุดงานนี้ชั่วคราวจะเป็นการลบออกโดยตรง","some_task_not_ready":"งานบางอย่างไม่พร้อม การหยุดงานเหล่านี้จะลบออกโดยตรง","failed_to_delete_files":"ลบไฟล์ไม่สำเร็จ","failed_to_delete_files_desc":"ลบบางไฟล์ของงานไม่สำเร็จ คุณอาจต้องลบออกด้วยตนเอง","unknown_error":"ข้อผิดพลาดที่ไม่รู้จัก: {0}","more_files_are_not_shown":"(ไฟล์เพิ่มเติม ${0} ไม่แสดงเนื่องจากเหตุผลด้านประสิทธิภาพ)","no_available_file":"ไม่มีไฟล์ที่ใช้ได้ กรุณารองานพร้อม","service_worker_error":"ไม่สามารถโหลด ServiceWorker เพื่อเล่นได้ เบราว์เซอร์ของคุณอาจไม่รองรับคุณลักษณะนี้ หรือไม่ได้เปิดใช้งาน ServiceWorker คุณอาจต้องโหลดหน้านี้ใหม่แล้วลองอีกครั้ง","add_task_first":"คุณต้องเพิ่มงานก่อน","player_task_time":"ผู้เล่นใช้เวลาหลายวินาทีในการเตรียมตัวสำหรับการเล่น อาจมีบางอย่างผิดปกติกับงาน","web_mode_hint":"โหมดเว็บของ ${displayName} รองรับเฉพาะ WebRTC เพียร์ เพื่อประสบการณ์ที่ดีที่สุด โปรดดาวน์โหลด ${displayName} Desktop App","web_mode_task_hint":"คลิกปุ่มด้านล่างเพื่อเพิ่มงาน คุณสามารถเพิ่มได้ครั้งละหนึ่งงานเท่านั้น","save_to_local":"บันทึกไปยังท้องถิ่น","save_as_zip":"บันทึกเป็น ZIP","creating_save_file":"กำลังสร้างไฟล์บันทึก...","upload_as_one_directory":"อัปโหลดเป็นไดเร็กทอรีเดียว","upload_as_single_files":"อัปโหลดเป็นไฟล์เดียว","web_mode_upload_single":"คุณสามารถอัปโหลดไฟล์เดียวในโหมดเว็บเท่านั้น","download_success":"ดาวน์โหลดสำเร็จ","download_fail":"การดาวน์โหลดล้มเหลว","wait_for_downloaded_to_share":"โปรดรอให้ดาวน์โหลดงานก่อนแชร์","download_with_cellular":"ดาวน์โหลดงานโดยใช้เซลลูลาร์","download_with_cellular_desc":"คุณกำลังใช้เครือข่ายเซลลูลาร์ การดาวน์โหลดงานด้วยเซลลูลาร์อาจมีค่าธรรมเนียมเพิ่มเติมจากผู้ให้บริการของคุณ","download_with_cellular_confirm":"ยังคงดาวน์โหลดด้วยมือถือ","language":"ภาษา","appearance":"รูปร่าง","darkModeSystem":"ระบบ","darkModeLight":"แสงสว่าง","darkModeDark":"มืด","basic_setting":"ขั้นพื้นฐาน","hideMenu":"ซ่อนเมนูแอพ (Windows & Linux เท่านั้น)","autoHide":"ซ่อนหน้าต่างอัตโนมัติ","autoStart":"เปิดที่เข้าสู่ระบบ","restore":"รักษาขนาดและตำแหน่งของหน้าต่างเมื่อออก","autoStartUnfinished":"ดำเนินงานที่ยังไม่เสร็จทั้งหมดต่อโดยอัตโนมัติ","default_download_path":"เส้นทางเริ่มต้น","download_directory":"ดาวน์โหลดไดเรกทอรี","upload_directory":"อัปโหลดไดเร็กทอรี","enable_auto_upload":"เปิดใช้งานการอัปโหลดอัตโนมัติ","unlimit_upload_amount":"ไม่จำกัดจำนวนอัพโหลด","unlimit_upload_warning":"อนุญาตให้อัปโหลดไฟล์จำนวนมาก ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพ","start":"สตาร์ทอัพ","transport_setting":"การแพร่เชื้อ","upload_limit":"ขีดจำกัดการอัปโหลด","download_limit":"ขีดจำกัดการดาวน์โหลด","payed_user_share_rate":"อัตราส่วนแบ่งของผู้ใช้ที่ชำระเงิน","unlimited":"ไม่ จำกัด","limit_input_error":"จำนวนจำกัดควรเป็นค่าบวก","BT_setting":"การตั้งค่างาน","saveLinkSeed":"บันทึกลิงค์เป็นไฟล์งาน","autoDownload":"ดาวน์โหลดลิงค์และเนื้อหาโดยอัตโนมัติ","continuousSeeding":"เก็บเมล็ดไว้จนกว่าจะหยุดด้วยตนเอง","seedSharingRate":"อัตราส่วนเมล็ด","seedTime":"เวลาเมล็ด (นาที)","task_manage":"การจัดการงาน","maximumDownloadNum":"งานที่ใช้งานสูงสุด","maximumConnectionsNum":"การเชื่อมต่อสูงสุดต่อเซิร์ฟเวอร์","range_error":"ช่วงควรอยู่ระหว่าง {0} ถึง {1}","random":"สุ่ม","breakpointContinuation":"ดำเนินการต่อ","automaticSkip":"แสดงการดาวน์โหลดโดยอัตโนมัติหลังจากเพิ่มงาน","afterNotification":"การแจ้งเตือนหลังจากการดาวน์โหลดเสร็จสิ้น","deleteConfirm":"ไม่จำเป็นต้องมีการยืนยันก่อนที่จะลบงาน","submit":"บันทึกและสมัคร","discard":"ทิ้ง","reset":"รีเซ็ต","reset_all_settings":"รีเซ็ตการตั้งค่าทั้งหมดไหม","preferences_resetted":"รีเซ็ตค่ากำหนดแล้ว","traditional_chinese":"จีนดั้งเดิม","japanese":"ญี่ปุ่น","english":"ภาษาอังกฤษ","chinese":"ภาษาจีนตัวย่อ","advancedSettings":"ขั้นสูง","autoUpdate":"อัปเดตอัตโนมัติ","autoCheckUpdate":"ตรวจสอบการอัปเดตโดยอัตโนมัติ","proxy":"หนังสือมอบฉันทะ","useProxyService":"เปิดใช้งานพร็อกซี","trackerService":"เซิร์ฟเวอร์ติดตาม","recommendUse":"ที่แนะนำ","autoUpdateTrackerServiceList":"อัปเดตรายการติดตามทุกวันโดยอัตโนมัติ","manualUpdateTracker":"อัปเดตด้วยตนเอง","manualUpdateSuccess":"อัปเดตเซิร์ฟเวอร์ตัวติดตามสำเร็จแล้ว","manualUpdateFail":"ไม่สามารถอัปเดตจาก:","listenPort":"ฟังพอร์ต","BTlistenPort":"พอร์ตส่งข้อมูล","DHTlistenPort":"แฮชพอร์ตแบบกระจาย","protocols":"โปรโตคอลที่เข้ากันได้","setDefaultClientForFollowingProtocols":"ตั้งเป็นไคลเอนต์เริ่มต้นสำหรับโปรโตคอลต่อไปนี้","magnetUrl":"แม่เหล็ก","video_file":"ไฟล์วิดีโอ","audio_file":"ไฟล์เสียง","security":"ความปลอดภัย","impersonateUserAgent":"จำลอง User-Agent","RPCauthorizationkey":"ความลับของ RPC","viewDocument":"ดูคู่มือลับ RPC","developer":"นักพัฒนา","applicationLogPath":"เส้นทางบันทึกแอป","downloadSessionPath":"ดาวน์โหลดเส้นทางเซสชัน","resetDownloadSessionRecord":"รีเซ็ตเซสชันการดาวน์โหลด","restoreInitialSettings":"รีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน","preferences_set_successfully":"บันทึกค่ากำหนดเรียบร้อยแล้ว!","preferences_set_fail":"บันทึกค่ากำหนดล้มเหลว!","change_not_save":"ไม่ได้บันทึกการเปลี่ยนแปลง","discard_all_changes":"ยกเลิกการเปลี่ยนแปลงทั้งหมดแล้วออกไหม","stay_in_page":"อยู่ในหน้า","disk_usage":"การใช้ดิสก์","pause_if_less_space":"หยุดชั่วคราวและแจ้งเตือนหากพื้นที่ว่างน้อยกว่า (MB)","default_video_player":"เครื่องเล่นวิดีโอเริ่มต้น","video_cache_time":"แคชการเล่นสตรีม","minutes":"นาที","system_default":"ค่าเริ่มต้นของระบบ","media_player":"เครื่องเล่นสื่อ","library_film_rate":"อัตราฟิล์มที่มีอยู่","library_show_explore":"แสดงหน้า [สำรวจ]","library_setting":"การตั้งค่าห้องสมุด","library_sync_setting":"การตั้งค่าการซิงค์ไลบรารี","keychain_sync_status":"สถานะการซิงค์พวงกุญแจ","sync_with_aws":"ซิงค์พวงกุญแจกับ Amazon Web Services","backup_to_local":"สำรองข้อมูลไปยังไฟล์ในเครื่อง","enable_sync_with_aws":"เปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws":"ปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws_desc":"นี่จะเป็นการลบรหัสที่บันทึกไว้ในเซิร์ฟเวอร์ โปรดตรวจสอบว่าคุณได้ส่งออกคีย์ของคุณแล้ว","input_independent_password":"ป้อนรหัสผ่านอิสระ","change_independent_password":"เปลี่ยนรหัสผ่านอิสระ","password_error":"รหัสผ่านผิดพลาด","password_invalid":"รหัสผ่านไม่ถูกต้อง","key_existed":"มีคีย์อยู่","key_not_found":"ไม่พบคีย์","library_recommend":"ห้องสมุดแนะนำ","show_all_channels":"แสดงช่องทั้งหมดในหน้าแนะนำห้องสมุด","not_logged_in":"ไม่ได้เข้าสู่ระบบ","login_to_continue":"เข้าสู่ระบบเพื่อดำเนินการต่อ","mnemonic_code":"รหัสช่วยในการจำ","wordlist":"รายการคำ","restore_code":"กู้คืนจากรหัส","generate_code":"สร้างรหัส","export_mnemonic_code":"ส่งออกรหัสช่วยจำ","import_mnemonic_code":"นำเข้ารหัสช่วยในการจำ","print":"พิมพ์","save_as_txt":"บันทึกเป็น txt","save_as_pdf":"บันทึกเป็น pdf","from_file":"จากไฟล์","not_valid_mnemonic_code":"นี่ไม่ใช่รหัสช่วยจำที่ถูกต้อง","cannot_parse_code_as_key":"ไม่สามารถแยกวิเคราะห์รหัสช่วยจำนี้เป็นรหัสไลบรารี","import_key_hint":"คุณแน่ใจหรือไม่ที่จะนำเข้าคีย์นี้ นี่จะกู้คืนรหัสเก่าของคุณในห้องสมุด","import_key_confirm":"ใช่ นำเข้าเลย","library_preload":"โหลดงานล่วงหน้าจากห้องสมุด","show_preload":"แสดงงานโหลดล่วงหน้า","set_download":"ตั้งค่าไดเร็กทอรีการดาวน์โหลด","set_download_desc":"สำหรับเวอร์ชัน macOS App Store ไดเร็กทอรีการดาวน์โหลดเริ่มต้นจะอยู่ในแซนด์บ็อกซ์ของแอพ และจะถูกลบหลังจากถอนการติดตั้งแอพ หากคุณต้องการเก็บไฟล์ดาวน์โหลด คุณต้องเลือกไดเร็กทอรีดาวน์โหลดอื่นด้วยตนเอง","home":"บ้าน","home_caption":"ดาวน์โหลด/อัพโหลดและไฟล์มีเดีย","library":"ห้องสมุด","library_caption":"สำรวจทรัพยากรสื่อ","player":"ผู้เล่น","player_caption":"เครื่องเล่นสื่อ","credits":"เครดิต","credits_caption":"ตรวจสอบยอดเงินในบัญชี","account":"บัญชี","account_caption":"ลงชื่อเข้าใช้/ลงทะเบียน/การจัดการ","settings":"การตั้งค่า","settings_caption":"การตั้งค่าสำหรับแอพ ผู้เล่น บัญชี","development":"การพัฒนา","development_caption":"โหมดนักพัฒนาสำหรับการใช้งานภายใน","basic":"ขั้นพื้นฐาน","basic_caption":"การตั้งค่าพื้นฐาน","advanced":"ขั้นสูง","advanced_caption":"ตั้งค่าขั้นสูง","blockchain":"กระเป๋าสตางค์","blockchain_caption":"${displayName} กระเป๋าเงินกระจายอำนาจ","internal_notice":"ประกาศการเผยแพร่ภายใน","release_notes":"บันทึกประจำรุ่น","terms_and_conditions":"ข้อกำหนดและเงื่อนไข","license_and_listen_notices":"ใบอนุญาตและฟังประกาศโอเพ่นซอร์ส","close":"ปิด","success":"ความสำเร็จ","fail":"ล้มเหลว","account_email_invalid_address":"ที่อยู่อีเมลที่ไม่ถูกต้อง","account_email_invalid_domain":"โดเมนอีเมลไม่ถูกต้อง","account_email_unknown_status":"สถานะการส่งอีเมลที่ไม่รู้จัก","account_email_unavailable_address":"ที่อยู่อีเมลไม่พร้อมใช้งาน","account_email_suppressed_address":"ที่อยู่อีเมลที่ถูกระงับ","account_loading":"กำลังโหลด...","account_is_required":"ต้องระบุ","account_sign_in_your_account":"เข้าสู่ระบบ","account_username":"ชื่อผู้ใช้","account_username_email_phone":"เบอร์โทรหรืออีเมล์","account_password":"รหัสผ่าน","account_new_password":"รหัสผ่านใหม่","account_re_enter_password":"ป้อนรหัสผ่านอีกครั้ง","account_password_not_equal":"รหัสผ่านสองรหัสไม่เท่ากัน","account_new_password_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","account_forgot_your_password":"ลืมรหัสผ่านหรือไม่?","account_reset_password":"รีเซ็ตรหัสผ่าน","account_sign_in":"เข้าสู่ระบบ","account_signed_in":"ลงทะเบียนเข้า","account_sign_up":"ลงชื่อ","account_find_your_account":"ค้นหาบัญชีของคุณ","account_enter_your_username":"ป้อนหมายเลขโทรศัพท์หรืออีเมลของคุณ","account_search":"ค้นหา","account_email_sent_tip":"อีเมลพร้อมรหัสยืนยันถูกส่งไปยังอีเมลของคุณแล้ว:","account_phone_sent_tip":"SMS พร้อมรหัสยืนยันถูกส่งไปยังโทรศัพท์ของคุณแล้ว:","account_email_phone_sent_tip":"อีเมลและ SMS พร้อมรหัสยืนยันถูกส่งไปยังอีเมลและโทรศัพท์ของคุณตามลำดับแล้ว:","account_software_token_tip":"MFA เปิดใช้งานสำหรับบัญชีของคุณ หากต้องการลงชื่อเข้าใช้ให้เสร็จสิ้น โปรดเปิดหรือดูอุปกรณ์ของคุณและพิมพ์ TOTP","account_reset_your_password":"รีเซ็ตรหัสผ่านของคุณ","account_verification_code":"รหัสยืนยัน","account_resend_code":"ส่งรหัสอีกครั้ง","account_code_has_been_resent":"ส่งรหัสยืนยันแล้ว","account_password_has_been_reset":"รีเซ็ตรหัสผ่านแล้ว","account_submit":"ส่ง","account_sign_up_your_account":"ลงทะเบียนบัญชีของคุณ","account_fill_required_fields":"กรอกข้อมูลในฟิลด์บังคับด้านล่าง","account_fill_optional_fields":"กรอกข้อมูลในฟิลด์ตัวเลือกด้านล่าง","account_email":"อีเมล","account_invitation":"การเชิญ","account_invitation_code":"รหัสการเชิญ","account_i_accept":"ฉันยอมรับ","account_license_terms":"ใบอนุญาตและเงื่อนไข","account_next":"ต่อไป","account_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_verify_fill_optional_fields":"ตรวจสอบและกรอกข้อมูลในช่องเพิ่มเติม","account_nickname":"ชื่อเล่น","account_gender":"เพศ","account_male":"ชาย","account_female":"หญิง","account_not_say":"ไม่พูด","account_birthday":"วันเกิด","account_phone_number":"หมายเลขโทรศัพท์","account_locale":"ท้องถิ่น","account_tip_verified":"ยืนยันแล้ว กำลังลงชื่อเข้าใช้...","account_verified":"ตรวจสอบแล้ว","account_unverified":"ไม่ได้รับการยืนยัน","account_signed_up":"ลงทะเบียน","account_verify_your_identity":"ยืนยันตัวตนของคุณ","account_finish":"เสร็จ","account_signed_out":"ออกจากระบบ","account_change_password":"เปลี่ยนรหัสผ่าน","account_change_email":"เปลี่ยนอีเมล","account_change_phone_number":"เปลี่ยนหมายเลขโทรศัพท์","account_sign_out":"ออกจากระบบ","account_current_password":"รหัสผ่านปัจจุบัน","account_re_enter_new_password":"ป้อนรหัสผ่านใหม่","account_personal_information":"ข้อมูล","account_edit":"แก้ไข","account_reset":"รีเซ็ต","account_greeting":"สวัสดี,","account_cancel":"ยกเลิก","account_change":"เปลี่ยน","account_not_set":"ไม่ได้ตั้งค่า","account_setting":"การตั้งค่า","account_copy_code":"คัดลอกรหัส","account_account_setting":"บัญชี","account_task_page":"งานสินเชื่อ","account_setting_caption":"เปลี่ยนรหัสผ่าน / แก้ไขข้อมูล","account_security":"ความปลอดภัย","account_want_to_join":"ต้องการเข้าร่วมหรือไม่","account_sign_in_now":"เข้าสู่ระบบ","account_changed":"เปลี่ยน","account_clipboard_with_invitation_code":"คัดลอกรหัสคำเชิญแล้ว","account_clipboard_with_code":"คัดลอกรหัสแล้ว","account_invitation_code_dialog_tip":"คุณจะส่งอีเมลหรือข้อความถึงเพื่อนพร้อมรหัสคำเชิญ:","account_available":"มีอยู่","account_invited":"เชิญ","account_used":"ใช้แล้ว","account_invitation_code_sent":"ส่งรหัสคำเชิญแล้ว","account_invitation_channel_required":"กรอกช่องเชิญอย่างน้อยหนึ่งช่อง","account_no_verification_code":"ไม่สามารถรับรหัสยืนยันได้?","account_no_phone_number":"ไม่มีหมายเลขโทรศัพท์?","account_sign_up_by_email":"ลงทะเบียนทางอีเมล","account_no_email":"ไม่มีอีเมล?","account_sign_up_by_phone_number":"ลงทะเบียนด้วยหมายเลขโทรศัพท์","account_no_totp":"ไม่มีทีโอที?","account_tip_no_totp":"หากไม่มี TOTP ให้ตั้งค่า TOTP ก่อน","account_setup_totp":"ตั้งค่า TOTP","account_contact_information":"ข้อมูลติดต่อ","account_delete_account":"ลบบัญชี","account_deleted":"ลบแล้ว","account_can_not_mfa":"MFA มีปัญหา?","account_set_mfa_type":"กำหนดค่า MFA","account_disable_mfa":"ปิดใช้งาน MFA","account_disabled_mfa":"MFA พิการ","account_sms_mfa":"SMS มฟ","account_totp_mfa":"ทีโอที สพม","account_totp":"ทีโอพี","account_not_recommend":"ไม่แนะนำ","account_oauth_sign_in_with":"ลงชื่อเข้าใช้ด้วย {provider}","account_sign_in_failed":"ลงชื่อเข้าใช้ไม่สำเร็จ","account_tip_oath_sign_up":"อีเมลที่เกี่ยวข้องกับบัญชี {provider} ปัจจุบัน: {email} ยังไม่ได้สร้างบัญชี","account_tip_confirm_delete_account":"ป้อนรหัสผ่านบัญชีปัจจุบันเพื่อยืนยันว่าคุณต้องการลบบัญชีปัจจุบัน (บัญชีที่ถูกลบไม่สามารถกู้คืนได้)","account_tip_config_mfa":"คุณสามารถเลือกใช้ SMS หรือรหัสผ่านครั้งเดียวตามเวลา (TOTP) เป็นการรับรองความถูกต้องรอง","account_error_can_not_enable_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน MFA","account_tip_can_not_enable_sms_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน SMS MFA","account_tip_can_not_enable_totp_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน TOTP MFA","account_tip_setup_totp":"ใช้แอพ เช่น Authenticator เพื่อสแกนรหัส QR ด้านล่างหรือคัดลอกรหัสด้วยตนเองเพื่อเพิ่มโทเค็นความปลอดภัย","account_tip_verify_totp":"ตรวจสอบ TOTP ของคุณ","account_link_your_social_account":"ผูกบัญชีโซเชียลของคุณ","account_unlink_your_social_account":"ยกเลิกการผูกบัญชีโซเชียล","account_tip_confirm_link":"คุณแน่ใจหรือไม่ว่าต้องการผูกบัญชีปัจจุบันกับบัญชี {provider} ของคุณ?","account_tip_confirm_unlink":"แน่ใจไหมว่าจะยกเลิกบัญชี {provider} ที่ผูกไว้","account_tip_linking":"ผูกพัน...","account_tip_unlinking":"ไม่ผูกพัน...","account_linked":"ผูกพัน","account_unlinked":"หลุด","account_error_can_not_link_to_the_linked_account":"บัญชีโซเชียลปัจจุบันเชื่อมโยงกับบัญชีอื่น","account_error_can_not_link_to_the_mismatched_email":"บัญชีปัจจุบันและที่อยู่อีเมลบัญชีโซเชียลไม่สอดคล้องกัน","account_error_can_not_link_before_email_verified":"ไม่สามารถเชื่อมโยงบัญชีโซเชียลได้เนื่องจากบัญชีปัจจุบันไม่ได้เชื่อมโยงกับอีเมลที่ยืนยันแล้ว","account_tip_confirm_verify_email_phone":"จะส่งรหัสยืนยันไปยังอีเมลและหมายเลขโทรศัพท์ของบัญชีปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_tip_confirm_verify_phone":"จะส่งรหัสยืนยันไปยังหมายเลขโทรศัพท์ปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_error_1_message_60_seconds":"สามารถส่ง SMS หรืออีเมลได้เพียง 1 ฉบับทุกๆ 60 วินาที โปรดรออีก {delta} วินาที","account_error_10_messages_per_day":"โทรศัพท์มือถือหรืออีเมลแต่ละเครื่องสามารถส่งข้อความได้ 10 ข้อความภายใน 24 ชั่วโมง","account_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","Network Error":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","account_error_user_not_exist":"ไม่มีผู้ใช้","account_error_incorrect_username_or_password":"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง","account_error_incorrect_original_password":"รหัสผ่านเดิมไม่ถูกต้อง","account_error_incorrect_password":"รหัสผ่านผิดพลาด","account_error_username_not_found":"ไม่พบชื่อผู้ใช้","account_error_can_not_reset_for_no_verified":"ไม่สามารถรีเซ็ตรหัสผ่านสำหรับบัญชีที่ไม่ได้รับการยืนยัน","account_error_invalid_verification_code":"รหัสยืนยันไม่ถูกต้อง โปรดลองอีกครั้ง","account_error_expired_verification_code":"รหัสยืนยันหมดอายุ โปรดลองอีกครั้ง","account_error_password_not_long_enough":"รหัสผ่านยาวไม่พอ","account_error_attempt_limit_exceeded":"เกินขีดจำกัดความพยายาม โปรดลองอีกครั้งในภายหลัง","account_error_password_attempts_exceeded":"เกินความพยายามรหัสผ่าน","account_error_invalid_phone_number_format":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_error_no_cell_phone_prefix":"โปรดเลือกคำนำหน้าสำหรับหมายเลขโทรศัพท์","account_error_username_already_exists":"ชื่อผู้ใช้นี้มีอยู่แล้ว","account_error_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_error_inactive_code":"รหัสเชิญไม่ใช่รหัสเปิดใช้งาน","account_error_non_existent_code":"รหัสเชิญไม่มีอยู่จริง","account_error_unexpected":"ข้อผิดพลาดที่ไม่คาดคิด","account_error_can_not_change_email_before_phone_bound":"เปลี่ยนอีเมลก่อนผูกเบอร์โทรไม่ได้","account_error_can_not_change_email_before_unbound_social_account":"ไม่สามารถเปลี่ยนอีเมลได้ก่อนที่จะยกเลิกการเชื่อมโยงบัญชีโซเชียล","account_error_can_not_change_phone_before_email_bound":"เปลี่ยนเบอร์โทรก่อนอีเมลผูกมัดไม่ได้","account_error_can_not_change_email_phone_with_mfa_enabled":"ไม่สามารถเปลี่ยนอีเมลหรือหมายเลขโทรศัพท์มือถือก่อนปิดใช้งาน MFA","account_error_not_supported_yet":"ไม่รองรับชั่วคราว","account_error_same_email":"ที่อยู่อีเมลใหม่ต้องไม่เหมือนกับที่อยู่อีเมลเดิม","account_error_same_phone":"หมายเลขโทรศัพท์ใหม่ต้องไม่ซ้ำกับหมายเลขโทรศัพท์เดิม","account_error_email_not_exists":"ไม่มีที่อยู่อีเมล","account_error_email_already_exists":"มีบัญชีที่ใช้อีเมลที่ระบุอยู่แล้ว","account_error_phone_already_exists":"มีบัญชีที่ใช้หมายเลขโทรศัพท์ที่ระบุอยู่แล้ว","account_error_mfa_token_mismatch":"รหัสโทเค็นของซอฟต์แวร์ไม่ตรงกัน","account_error_recaptcha_not_loaded":"มีปัญหากับเครือข่าย โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_recaptcha_validation_failed":"การตรวจสอบ ReCAPTCHA ล้มเหลว โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_sign_in_in_progress":"กำลังพยายามลงชื่อเข้าใช้ที่รอดำเนินการอยู่","account_field_range":"จำกัดการป้อนอักขระ {0}-{1} ตัว","account_field_only_alphanumeric":"รองรับเฉพาะตัวอักษรและตัวเลขเท่านั้น","account_field_only_alphanumeric_and_symbol":"รองรับเฉพาะตัวอักษรและตัวเลขและสัญลักษณ์เท่านั้น","account_field_only_chinese_alphanumeric_space_underline":"รองรับเฉพาะตัวอักษร ตัวเลข เว้นวรรค ขีดล่าง","account_field_prefix_without_number_space":"อักขระตัวแรกไม่สามารถเป็นตัวเลขหรือช่องว่างได้","account_field_suffix_without_space":"ไม่สามารถลงท้ายด้วยช่องว่าง","account_field_without_repeat_space":"ไม่สามารถใช้หลายช่องว่างในแถว","account_field_can_not_only_alphanumeric":"คุณไม่สามารถใช้ตัวอักษรหรือตัวเลขได้","account_field_must_have_number_characters":"ต้องมีอักขระตัวเลข","account_field_verification_code":"รหัสยืนยันต้องเป็นตัวเลขหกหลัก","account_field_invitation_code":"รหัสเชิญต้องเป็นตัวอักษรและตัวเลข","account_field_phone_number":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_invalid_email_format":"รูปแบบอีเมลไม่ถูกต้อง","account_sign_out_confirm":"คุณแน่ใจหรือที่จะออกจากระบบ? สิ่งนี้จะหยุดงานทั้งหมด","account_sign_out_anyway":"ออกจากระบบต่อไป","account_signing_out":"กำลังออกจากระบบ...","account_request_save_settings":"ไม่ได้บันทึกการตั้งค่า คุณต้องบันทึกการเปลี่ยนแปลงก่อนออกจากระบบ","pay":"จ่าย","pay_with_credit":"จ่ายสำหรับการเร่งความเร็วการดาวน์โหลด ต้องการเครดิตประมาณ {0}","pay_with_credit_payed":"กำลังเร่ง ยังคงต้องการเครดิตประมาณ {0}","create_payment":"สร้างการชำระเงิน","pay_target":"เป้า","pay_for_torrent":"จ่าย ${0}","your_subid":"รหัสย่อยของคุณ","your_credits":"เครดิตของคุณ","pay_point_for_data":"จ่ายคะแนน {0} สำหรับข้อมูล {1}","auto_renew":"เปิดใช้งานการต่ออายุอัตโนมัติ","transaction_details":"รายละเอียดการทำธุรกรรม","transaction_id":"รหัส","transaction_payer":"ผู้ชำระเงิน","transaction_payee":"ผู้รับเงิน","transaction_category":"หมวดหมู่","transaction_changed_amount":"จำนวนเงินที่เปลี่ยนแปลง","transaction_meta":"เมตา","transaction_status":"สถานะ","transaction_creation_time":"เวลาในการสร้าง","receipt_code":"รหัสใบเสร็จ","transfer_amount":"ยอดโอน","code_the_receipt_code":"คัดลอกรหัสใบเสร็จด้านล่างไปยังผู้ชำระเงิน","fill_the_receipt_code":"โอนเงินโดยกรอกรหัสการชำระเงินที่ผู้รับเงินให้ไว้","expense":"ค่าใช้จ่าย","copied":"คัดลอก","transfer":"โอนย้าย","receive":"รับ","copy":"สำเนา","withdraw_fund":"ถอนเงิน","category_paydata_payer":"ค่าใช้จ่ายของข้อมูล","category_paydata_payee":"รายได้ของข้อมูล","category_transfer":"โอนย้าย","category_bonus":"โบนัส","category_recharge":"เติมเงิน","status_pending":"รอดำเนินการ","status_completed":"สมบูรณ์","status_finish":"เสร็จ","status_failed":"ล้มเหลว","tip_invalid_receiver":"รหัสผู้รับไม่ถูกต้อง","tip_invalid_amount":"จำนวนเครดิตควรเป็นแบบลอยตัวในช่วง 0-1000 (ความแม่นยำขั้นต่ำคือ 0.001)","credit_get_more":"รับเครดิตมากขึ้น","credit_no_data":"ไม่มีข้อมูลที่สามารถใช้ได้","credit_loading":"กำลังโหลด...","credit_not_enough_amount":"เครดิตไม่เพียงพอ","credit_amount_not_enough":"เครดิตไม่เพียงพอ","credit_payee_not_exist":"ไม่มีผู้รับเงิน","credit_invalid_amount":"จำนวนเครดิตไม่ถูกต้อง","credit_can_not_transfer_to_yourself":"ไม่สามารถโอนเป็นของตนเองได้","credit_latest":"ล่าสุด","credit_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","add_subtitles":"เพิ่มคำบรรยาย","open_file":"เปิดไฟล์...","advanced_options":"ตัวเลือกขั้นสูง","title":"ชื่อ","location":"ที่ตั้ง","subtitle_file":"ไฟล์คำบรรยาย","unsupported_subtitle_type":"ประเภทไฟล์ {0} ไม่ใช่ประเภทคำบรรยายที่รองรับ","not_default_player":"ไม่ได้ตั้งค่าเครื่องเล่นวิดีโอเริ่มต้น","this_is_an_audio_file":"นี่คือไฟล์เสียง","the_added_subtitle_already_exists":"มีคำบรรยายที่เพิ่มเข้ามาแล้ว","stop_stream_player":"สื่อการสตรีมถูกยกเลิกเนื่องจากงานถูกหยุดชั่วคราวหรือถูกลบ","stop_player":"เครื่องเล่นถูกยกเลิกเนื่องจากไฟล์ถูกลบ","playing_timeout_hint":"หมดเวลารอ กรุณาตรวจสอบงาน","autoplay_hint":"การเล่นอัตโนมัติอาจถูกบล็อกโดยเบราว์เซอร์ของคุณ หากผู้เล่นไม่ได้เล่น ให้ลองคลิกที่หน้าจอเพื่อดำเนินการต่อ","remove_playing_confirm":"{0} ยังเล่นอยู่ ลบออกจะหยุดเล่น แน่ใจหรือว่าจะเอาออก?","unsupported_in_browser":"ยังไม่รองรับโหมดเบราว์เซอร์","client":"ลูกค้า","warning":"คำเตือน","enable":"เปิดใช้งาน","disable":"ปิดการใช้งาน","auto":"อัตโนมัติ","encrypt_connection":"เข้ารหัสการเชื่อมต่อ","encrypted_connection":"การเชื่อมต่อที่เข้ารหัส","non_encrypted_connection":"การเชื่อมต่อที่ไม่ได้เข้ารหัส","connected_wires_not_disconnect":"สายที่เชื่อมต่อจะไม่ถูกตัดการเชื่อมต่อ","audio":"เสียง","video":"วิดีโอ","image":"ภาพ","subtitle":"คำบรรยาย","zip":"ซิป","text":"ข้อความ","unknown":"ไม่ทราบ","add":"เพิ่ม","undo":"เลิกทำ","backup":"การสำรองข้อมูล","not_default_app":"${displayName} ไม่ใช่แอปเริ่มต้นของคุณสำหรับทอร์เรนต์และสื่อ คุณต้องการตั้งค่าเป็นค่าเริ่มต้นหรือไม่","dont_show_again":"ไม่ต้องแสดงอีก","go_to_settings":"ไปที่การตั้งค่า","about_alphabiz":"ประมาณ ${displayName}","last_check_at":"ตรวจครั้งล่าสุดเมื่อ","update_channel":"อัพเดทช่อง","check_for_update":"ตรวจสอบสำหรับการปรับปรุง","checking_for_update":"กำลังตรวจสอบการอัปเดต...","no_update_available":"ไม่มีการอัพเดท","update_available":"มีการปรับปรุง","update_now":"อัพเดทเลย","update_later":"อัปเดตในภายหลัง","click_to_update":"คลิกปุ่ม UPDATE NOW เพื่อดาวน์โหลดและอัปเดต","update_failed":"การอัพเดทล้มเหลว","update_failed_message":"เกิดข้อผิดพลาดขณะอัปเดต:","check_shasum_failed":"ตรวจสอบความสมบูรณ์ของตัวติดตั้งไม่สำเร็จ","downloading_update":"กำลังดาวน์โหลดอัปเดต...","ready_to_update":"พร้อมอัพเดท","restart_to_update":"ดาวน์โหลดการอัปเดตแล้ว ${displayName} จะออกจากการอัปเดตสักครู่","already_latest":"เวอร์ชันปัจจุบัน ({0}) เป็นเวอร์ชันล่าสุดแล้ว","update_timeout":"หมดเวลาอัปเดต","no_available_release":"ไม่มีรุ่นที่วางจำหน่าย","no_available_installer":"ไม่มีตัวติดตั้งที่ใช้ได้","feedback":"ข้อเสนอแนะ","select_a_type":"เลือกประเภท","category":"หมวดหมู่","select_a_category":"เลือกหมวดหมู่","require_title":"ต้องระบุชื่อเรื่อง","describe_your_problem":"อธิบายปัญหาของคุณ","report_a_bug":"รายงานข้อผิดพลาด","request_a_new_feature":"ขอคุณสมบัติใหม่","download_or_upload":"ดาวน์โหลด/อัพโหลด","others":"คนอื่น","submit_with_system_info":"ส่งพร้อมข้อมูลระบบ","submit_feedback":"ส่งความคิดเห็น","tweet_us":"ทวีตหาเรา","tweet_too_long":"ทวีตยาวเกินไป","delete_characters":"โปรดลบอักขระอย่างน้อย {0} ตัว","rest_characters":"คุณสามารถป้อนอักขระได้อีก {0} ตัว","update_alphabiz":"อัปเดต ${displayName}","current_version":"รุ่นปัจจุบัน","cancel_update":"ยกเลิกการปรับปรุง","slow_download_speed":"ดาวน์โหลดช้าเกินไป","slow_download_speed_caption":"การดาวน์โหลดตัวติดตั้งช้าเกินไปในขณะนี้ กรุณาตรวจสอบสถานะเครือข่าย","update_canceled":"ยกเลิกการอัปเดตแล้ว","current_version_release_time":"เวลาวางจำหน่ายของเวอร์ชันปัจจุบัน","expired_app":"${displayName} หมดอายุ","version_out_of_date":"เวอร์ชันล้าสมัย","have_to_update":"เวอร์ชัน ${displayName} ล้าสมัย โปรโตคอลหรือ API บางอย่างเลิกใช้แล้ว คุณต้องอัปเดต ${displayName} ก่อนดำเนินการต่อ","exit_alphabiz":"ออกจาก ${displayName}","exit_and_update":"ออกและใช้การอัปเดต","new_version_hint":"มีเวอร์ชันใหม่","no_new_version":"ไม่มีเวอร์ชั่นใหม่","current_is_latest":"เวอร์ชันปัจจุบันเป็นเวอร์ชันล่าสุดแล้ว","click_to_check_update":"คลิกปุ่ม [ตรวจสอบการอัปเดต] เพื่อตรวจสอบการอัปเดต","download_latest_version_from_website":"โปรดไปที่เว็บไซต์อย่างเป็นทางการเพื่อดาวน์โหลดเวอร์ชันล่าสุด","to_the_website":"ไปที่เว็บไซต์","network_diagnotic":"การวินิจฉัยเครือข่าย","diagnotic":"การวินิจฉัย","click_to_check":"คลิกเพื่อตรวจสอบ","click_to_check_again":"คลิกเพื่อตรวจสอบอีกครั้ง","checking":"กำลังตรวจสอบ","online":"ออนไลน์","offline":"ออฟไลน์","dns_look_up":"การค้นหา DNS","error":"ข้อผิดพลาด","aws_service":"บริการของ AWS","network_pings":"เครือข่ายปิง","not_found":"ไม่พบ","packet_loss":"การสูญเสียแพ็คเก็ต","official_site":"เว็บไซต์อย่างเป็นทางการ","download_test":"ดาวน์โหลดแบบทดสอบ","test_task":"งานทดสอบ {0}","download_failed":"การดาวน์โหลดล้มเหลว","second_spend":"การใช้จ่าย ${0}","open_default_player_failed":"ไม่สามารถเปิดโปรแกรมเล่นเริ่มต้นได้","copied_to_clipboard":"คัดลอกไปที่คลิปบอร์ดแล้ว","go_to":"ไปที่","region_not_available":"ภูมิภาคไม่พร้อมใช้งาน","region_not_available_message":"ขอโทษ! ภูมิภาคของคุณไม่สามารถใช้แอพนี้ได้ แอปนี้จะออกหลังจาก {0} วินาที","confirm":"ยืนยัน","no_available_result":"ไม่มีผลลัพธ์","invalid_password_format":"รูปแบบรหัสผ่านไม่ถูกต้อง","invalid_password_format_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","error_password":"รหัสผ่านผิดพลาด","keychain_setting":"พวงกุญแจ","setting_description":"ที่เก็บข้อมูลบนคลาวด์: บันทึกข้อมูลสำคัญไปยังคลาวด์\\nเปลี่ยนรหัสผ่าน: เปลี่ยนรหัสผ่านสำหรับคีย์ไลบรารีสื่อ\\nช่วยในการจำ: วิธีอื่นสำหรับการสร้างและกู้คืนคีย์\\nนำเข้ารหัสภายในเครื่อง: นำเข้ารหัสที่บันทึกไว้ในเครื่องไปยังไลบรารีสื่อ\\nคีย์ส่งออก: บันทึกข้อมูลไลบรารีสื่อปัจจุบันลงในเครื่องหรือระบบคลาวด์\\nคีย์สำรองไปยังคลาวด์: อัปเดตข้อมูลไลบรารีสื่อปัจจุบันไปยังคลาวด์เพื่อสำรองข้อมูล","refresh_status":"อัปเดตสถานะ","confirm_import_key":"ยืนยันคีย์นำเข้า","confirm_update_cloud_key":"คุณมีรหัสในระบบคลาวด์แล้ว การอัปเดตคีย์จะเขียนทับคีย์เดิม คุณแน่ใจหรือไม่ว่าต้องการอัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","export_key_with_cloud":"ป้อนรหัสผ่านอิสระที่คุณตั้งไว้เพื่อส่งออกคีย์ไลบรารีที่จัดเก็บไว้ในระบบคลาวด์ และล็อคไฟล์คีย์ด้วยรหัสผ่านปลดล็อค","store_cloud_key_prompt_password":"ป้อนรหัสผ่านอิสระเพื่อจัดเก็บรหัสห้องสมุดในระบบคลาวด์","update_cloud_key_prompt_password":"ตั้งรหัสผ่านอิสระเพื่อเข้ารหัสคีย์ไลบรารี จากนั้นอัปเดตไปยังระบบคลาวด์","enable_cloud_storage_prompt_password":"ตั้งรหัสผ่านสำหรับคีย์ที่จัดเก็บไว้ในคลาวด์ ซึ่งคุณสามารถดึงคีย์จากคลาวด์ได้","input_unlock_password":"ตั้งรหัสผ่านปลดล็อค","export_local_prompt_password":"โปรดตั้งรหัสผ่านปลดล็อคเพื่อเข้ารหัสไฟล์คีย์ของคุณ เราจะไม่บันทึกรหัสผ่านนี้ให้คุณ ดังนั้นหากคุณทำรหัสผ่านหาย คุณจะไม่สามารถปลดล็อกรหัสห้องสมุดของคุณได้","require_unlock_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","require_independent_password":"ป้อนรหัสผ่านอิสระเพื่อรับรหัสที่จัดเก็บไว้ในระบบคลาวด์","import_local_prompt_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","select_encrypt_mode":"เลือกโหมดการเข้ารหัส","update_cloud_key":"อัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","backup_to_cloud":"สำรองคีย์ไลบรารีไปยังระบบคลาวด์","save_local":"บันทึกคีย์ไลบรารีเป็นไฟล์เข้ารหัสในเครื่อง","create_new_key":"สร้างรหัสห้องสมุดใหม่","creating_lib_key":"กำลังสร้างรหัสห้องสมุด...","loading_lib_key":"กำลังโหลดรหัสห้องสมุด...","failed_to_create_lib_key":"สร้างรหัสห้องสมุดไม่สำเร็จ","failed_to_load_lib_key":"โหลดรหัสห้องสมุดไม่สำเร็จ","import_local_key":"นำเข้าคีย์ในเครื่อง","import_lib_key_from_local":"นำเข้าคีย์ไลบรารีในเครื่อง","import_from_cloud":"นำเข้ารหัสห้องสมุดจากระบบคลาวด์","create_or_import_key":"สร้างหรือนำเข้ารหัสห้องสมุด","create_or_import_key_desc":"คีย์ไลบรารีเป็นคีย์อิสระที่ใช้ในการดึงข้อมูลและเผยแพร่เนื้อหาด้วยฐานข้อมูลแบบกระจายอำนาจ","store_your_lib_key":"เก็บรหัสห้องสมุดของคุณ","export_cloud_key":"ส่งออกคีย์จากคลาวด์","export_current_key":"ส่งออกคีย์ปัจจุบัน","change_password":"เปลี่ยนรหัสผ่าน","enable_cloud_storage":"เปิดใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage":"ปิดการใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage_desc":"การปิดใช้ที่เก็บข้อมูลบนคลาวด์จะลบคีย์ที่บันทึกไว้ในคลาวด์ โปรดตรวจสอบให้แน่ใจว่าคีย์นั้นบันทึกไว้ในเครื่อง","sync_at":"ซิงค์ที่: {time}","cloud_storage_enabled":"ซิงค์พวงกุญแจกับ {storage}","cloud_storage_disabled":"ที่เก็บข้อมูลบนคลาวด์ถูกปิดใช้งาน","saved_locally":"บันทึกไว้ในเครื่อง","export_key":"ส่งออกไฟล์คีย์","cloud_independent_password":"รหัสผ่านอิสระบนคลาวด์","key_file_unlock_password":"รหัสผ่านปลดล็อคไฟล์ที่สำคัญ","re_enter_unlock_password":"ป้อนรหัสผ่านปลดล็อคอีกครั้ง","independent_password_not_enabled":"รหัสผ่านปัจจุบันคือรหัสผ่านบัญชี Alphabiz (ไม่ได้ตั้งรหัสผ่านอิสระ)","use_cognito_hash":"ใช้รหัสผ่านบัญชี Alphabiz","use_independent_password":"ใช้รหัสผ่านอิสระ","keychain_lib":"กุญแจห้องสมุด","loading_keychain_state":"กำลังโหลดพวงกุญแจ...","backing_up":"สำรอง...","backup_current_key":"สำรองคีย์ปัจจุบันไปยัง Cloud","cloud_lib_key_not_existed":"รหัสห้องสมุดไม่มีอยู่ในคลาวด์","open_keychain_file":"เปิดไฟล์พวงกุญแจ","confirm_open_abk":"คุณต้องการเปิดไฟล์ ABK หรือไม่","use_the_key":"ใช้กุญแจ","backup_the_key":"สำรองคีย์ไปยังคลาวด์","keychain_data_does_not_exist":"ไม่มีข้อมูลพวงกุญแจ","timeout of 0ms exceeded":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","XhrError":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","payer credit amount is not enough":"เครดิตไม่เพียงพอ","payee does not exist":"ไม่มีผู้รับเงิน","block_list_manage":"จัดการรายการบล็อก","blocked_users":"ผู้ใช้ที่ถูกบล็อก","blocked_channels":"ช่องที่ถูกบล็อก","unblock_user":"ผู้ใช้ยกเลิกการปิดกั้น","unblock_channel":"เลิกบล็อกช่อง","no_blocked_user":"ไม่มีผู้ใช้ที่ถูกบล็อก","no_blocked_channel":"ไม่มีช่องที่ถูกบล็อก","field_required":"จำเป็นต้องมี {0}","setting":"การตั้งค่า","unknown_media":"สื่อที่ไม่รู้จัก","settings_button_visible":"ปุ่มที่มองเห็นได้","settings_setting":"การตั้งค่า","settings_playback_rate":"อัตราการเล่น","settings_subtitle":"คำบรรยาย","settings_pip":"ปี๊บ","settings_fullscreen":"เต็มจอ","settings_subtitle_options":"ตัวเลือกคำบรรยาย","settings_normal":"ปกติ","settings_italic":"ตัวเอียง","settings_lighter":"ไฟแช็ก","settings_bolder":"โดดเด่นยิ่งขึ้น","settings_small":"เล็ก","settings_large":"ใหญ่","about":"เกี่ยวกับ","services":"บริการ","hide":"ซ่อน","hide_others":"ซ่อนอื่น ๆ","show_all":"แสดงทั้งหมด","quit":"ล้มเลิก","edit":"แก้ไข","redo":"ทำซ้ำ","cut":"ตัด","paste":"แปะ","select_all":"เลือกทั้งหมด","view":"ดู","reload":"โหลดใหม่","toggle_full_screen":"สลับโหมดเต็มหน้าจอ","toggle_developer_tools":"สลับเครื่องมือสำหรับนักพัฒนา","window":"หน้าต่าง","minimize":"ย่อเล็กสุด","bring_all_to_front":"นำทั้งหมดมาไว้ข้างหน้า","help":"ช่วย","github_repo":"Github Repo","issues":"ปัญหา","learn_more":"เรียนรู้เพิ่มเติม","learn_spelling":"เรียนรู้การสะกดคำ","lookup_selection":"ค้นหา \\"{selection}\\"","search_with_google":"ค้นหาด้วย Google","save_as":"บันทึกเป็น","save_image":"บันทึกภาพ","save_image_as":"บันทึกภาพเป็น ...","copy_link":"คัดลอกลิงค์","save_link_as":"บันทึกลิงค์เป็น ...","copy_image":"คัดลอกรูปภาพ","copy_image_as":"คัดลอกรูปภาพเป็น ...","copy_image_address":"คัดลอกที่อยู่รูปภาพ","download_complete":"ดาวน์โหลดเสร็จสิ้น","download_complete_message":"ดาวน์โหลด {0} แล้ว","is_running":"{0} กำลังดำเนินการ","open":"เปิด {0}","launch_problem":"ปัญหาการเปิดตัว","ask_clear_data":"ดูเหมือนว่าคุณกำลังพยายามเปิด {0} แต่ล้มเหลวหลายครั้ง\\nคุณต้องการล้างข้อมูลแอปทั้งหมดแล้วลองเปิดใช้งานในภายหลังหรือไม่","launch_directly":"เปิดตัวโดยตรง","clear_all_data":"ล้างข้อมูลทั้งหมด","ask_clear_confirm":"การดำเนินการนี้จะลบการกำหนดค่า บันทึก และข้อมูลผู้ใช้ทั้งหมด!\\nหลังจากนี้ คุณอาจต้องเปิดใช้ {0} อีกครั้ง\\nคุณแน่ใจว่าจะล้างข้อมูลหรือไม่","confirm_launch":"ไม่ เปิดใช้โดยตรง","confirm_clear":"ใช่ ล้างข้อมูลทั้งหมด"}')},"41c7":function(e,t){e.exports={mode:"committee",admins:["FQi3UfsB5zY7SSfLMPdl9Fdh7_EeM4og0ZGivp4tfJU.yXhvCAmmUz1Pw9-Iwhf9hpo9-H4WDHwezzRAGE5Oipk","an_id_of_admin","an_id_of_other_admin"]}},"44ce":function(e){e.exports=JSON.parse('{"lib_index":"Casa","lib_edit":"Pubblicare","lib_publish":"Pubblicare","lib_explore":"Esplorare","lib_following":"Seguente","lib_favorite":"Preferiti locali","lib_local_favorites":"Preferiti locali","lib_channel":"Canale","lib_submit":"Invia","lib_from_network":"Utilizzo di database decentralizzati dalla rete","welcome_to_lib":"Benvenuto nella libreria multimediale ${displayName}","register_or_login":"Registrati/Accedi","lib_recommend":"Consiglia","lib_recommend_desc":"Benvenuto nella libreria ${displayName}! Questa libreria utilizza un database decentralizzato dalla rete. Per iniziare a usarlo, devi seguire alcuni canali.","follow_any_channel_to_continue":"Segui qualsiasi canale per continuare","follow_channels_and_continue":"Segui i canali {0} e continua","show_more_for_me":"Mostra di più per me","no_more_recommend":"Non più raccomandare","key":"Chiave","create_key":"Crea chiave","save_key":"Salva chiave","save_key_file":"Vuoi salvare la tua chiave come file?","import_key":"Chiave di importazione","import":"Importare","invalid_key":"Chiave non valida","back_to_top":"Torna in cima","search_for_channel":"Cerca ID canale","search_channel_no_result":"Impossibile trovare il canale con ID {0}","please_input_channel_id":"Inserisci l\'ID del canale","welcome_help_text":"Questa è una libreria multimediale decentralizzata. Hai bisogno\\n per creare un account per questo database. Noi\\n generare automaticamente una chiave personale per te.\\n Se hai già avuto una chiave, puoi anche importare\\n qui.","welcome_key_text":"Una volta effettuato l\'accesso, fare clic sul pulsante [SALVA CHIAVE].\\n nell\'angolo in basso a destra per salvare la tua chiave privata.\\n Se perdi la tua chiave, potresti non essere in grado di accedere nuovamente.","redirect_to_recommend":"Sembra che tu non abbia seguito nessun canale. Reindirizzamento alla pagina [Esplora].","channel":"Canale","follow":"Seguire","unfollow":"Smetti di seguire","following":"Seguente","share":"Condividere","unfollow_confirm":"Sei sicuro di smettere di seguire questo canale? Tutti i post di questo canale nella tua cronologia verranno rimossi.","follow_failed_hint":"L\'operazione è ancora in sospeso in background. Se l\'operazione non viene applicata per molto tempo, riavviare l\'app e riprovare.","block":"Bloccare","unblock":"Sbloccare","blocked":"Bloccato","block_channel":"Blocca questo canale","block_channel_confirm":"Blocca il canale lo rimuoverà dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","block_creator":"Blocca il creatore di questo canale","unblock_creator":"Sblocca il creatore di questo canale","block_creator_confirm":"Blocca creatore rimuoverà tutti i canali creati da questo creatore dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","share_url_copied":"L\'URL di condivisione viene copiato negli appunti","follow_time":"Segui il tempo","update_time":"Tempo di aggiornamento","search":"Ricerca","type":"Tipo","added":"Aggiunto","click_to_task":"Fare clic per andare all\'attività","lib_already_added":"Hai già aggiunto questo video","description":"Descrizione","poster":"Manifesto","channel_poster":"Manifesto del canale","preview":"Anteprima","creator":"Creatore","creator_detail":"Dettaglio del creatore","loading_creator":"Caricamento delle informazioni sull\'autore","wait_for_creator_loaded":"Attendi il caricamento delle informazioni sul creatore.","follower":"Seguace","followers":"Seguaci","follower_list":"Elenco seguaci","user":"Utente","channel_title":"Titolo del canale","channel_id":"Canale ID","post_title":"Titolo del post","post_id":"Post ID","import_data_from_excel":"Importa dati da excel","set_excel_keys":"Imposta chiavi excel","excel_import_succeded":"L\'importazione di Excel è riuscita","excel_import_success_msg":"{0} le righe sono pronte per essere aggiunte, {1} non valide e {2} gli elementi duplicati vengono ignorati","cannot_find_channel":"Impossibile trovare il canale","cannot_find_posts":"Impossibile trovare i post","add_channel":"Aggiungi canale","add_post":"Aggiungi post","edit_channel":"Modifica canale","channel_setting":"Impostazione del canale","edit_post":"Modifica post","edit_posts":"Modifica post","channel_detail":"Dettaglio del canale","remove":"Rimuovere","remove_channel":"Rimuovi canale","remove_channel_confirm":"Sei sicuro di rimuovere questo post? Questo non può essere recuperato.","remove_post":"Rimuovi messaggio","remove_post_confirm":"Sei sicuro di rimuovere questo canale? Questo non può essere recuperato.","preview_mode":"Modalità anteprima","preview_mode_desc":"Questa è un\'anteprima del tuo canale. Tutte le tariffe dei film sono mostrate qui.","edit_user_profile":"Modifica profilo utente","name":"Soprannome","avatar":"Avatar","no_following":"Nessun canale successivo. Clicca per andare a","no_recommend":"Nessun canale consigliato. Clicca per andare a","first_recomment_msg":"Potrebbe volerci un po\' se questa è la prima volta che l\'app viene avviata.","invalid_image":"Immagine non valida","image_not_reachable":"L\'URL di questa immagine non è raggiungibile.","channel_not_found":"Canale non trovato","cannot_get_channel_info":"Impossibile ottenere informazioni sul canale. Questo canale potrebbe essere rimosso dal suo creatore e non essere più disponibile.","validate_error":"Convalida errore","validate_user_name_no_space":"Il nome utente non deve contenere spazi","validate_url_no_space":"L\'URL non deve contenere spazi","validate_user_name_length":"Il nome utente deve avere una lunghezza compresa tra {0} e {1}","validate_user_desc_length":"La descrizione dell\'utente non deve contenere più di {0} caratteri","validate_user_avatar_url":"L\'avatar dell\'utente deve essere un URL con meno di 2048 caratteri","validate_channel_title_length":"Il titolo del canale deve avere una lunghezza compresa tra 1 e 100","validate_channel_desc_length":"La descrizione del canale deve avere una lunghezza compresa tra 10 e 300","validate_channel_image_url":"L\'anteprima del canale deve essere un URL con meno di 2048 caratteri","validate_post_title_length":"Il titolo del post deve avere una lunghezza compresa tra 1 e 100","validate_post_desc_length":"La descrizione del post dovrebbe avere una lunghezza compresa tra 10 e 300","validate_post_image_url":"Il poster deve essere un URL con meno di 2048 caratteri","validate_post_url":"URL ${displayName} non valido","validate_post_url_length":"${displayName} L\'URL non deve superare i 2048 caratteri","film_rate":"Tasso di film","set_film_rate":"Imposta la velocità del film","select_a_rate_before_enter":"È necessario selezionare una tariffa film prima di accedere alla libreria multimediale.","library_available_rate":"Tasso di film disponibile in biblioteca","rate_g":"G – Udienze generali","rate_g_desc":"Ammesse tutte le età. Niente che possa offendere i genitori per la visione da parte dei bambini.","rate_pg":"PG - Suggerimenti per la guida dei genitori","rate_pg_desc":"Alcuni materiali potrebbero non essere adatti ai bambini. I genitori hanno esortato a dare \\"una guida dei genitori\\". Può contenere del materiale che i genitori potrebbero non gradire per i loro figli piccoli.","rate_pg_13":"PG-13 – Genitori fortemente avvertiti","rate_pg_13_desc":"Alcuni materiali potrebbero essere inappropriati per i bambini sotto i 13 anni. I genitori sono invitati a essere cauti. Alcuni materiali potrebbero non essere adatti ai preadolescenti.","rate_r":"R – Limitato","rate_r_desc":"I minori di 17 anni richiedono un genitore accompagnatore o un tutore adulto. Contiene del materiale per adulti. I genitori sono invitati a saperne di più sul film prima di portare con sé i loro figli piccoli.","rate_nc_17":"NC-17 – Solo per adulti","rate_nc_17_desc":"Nessuno sotto i 17 anni ammesso. Chiaramente adulto. I bambini non sono ammessi.","set_as_private":"Imposta come privato","hide_in_explore":"Nascondi questo canale nella pagina Esplora","hidden":"Nascosto","select_a_rate":"Seleziona una tariffa per il film","select_from_tasks":"Seleziona dalle attività","import_from_magnet":"Importazione da magnete:?...","input_magnet_url":"Magnete di ingresso:? URL","task_title":"Titolo dell\'attività","set_title":"Imposta titolo","add_to_local_favorites":"Aggiungi ai preferiti locali","remove_from_local_favorites":"Rimuovi dai preferiti locali","removed_favorite":"Preferito rimosso","import_or_export_favorites":"Importa/esporta preferiti","export_local_favorites":"Esporta i preferiti locali come backup","import_favorites_file":"Importa il file dei preferiti","not_a_favorite_file":"Questo file non è un file di backup preferito","connection_status":"Stato della connessione","gun_server_list":"Nodi di cache","custom_nodes":"Nodi di cache personalizzati","custom_nodes_hint":"I nodi di cache personalizzati verranno applicati dopo il riavvio dell\'app","wait_for_reboot":"In attesa di riavvio...({seconds}s)","reboot_now":"Riavvia ora","reboot_later":"Riavvia in seguito","peer_list":"Nodi diretti","server":"URL del nodo","peer":"Pari","peer_id":"ID nodo","connection":"Connessione","data_source":"Fonte di dati","sync":"Sincronizza","syncing":"Sincronizzazione","sync_completed":"Sincronizzazione completata","got_all_post":"Hai già tutti i post","placeholder_channel_title":"Il nome del tuo canale","placeholder_channel_desc":"Descrizione di questo canale","placeholder_post_title":"Nome film (anno)","placeholder_post_desc":"Descrizione di questo film","private_channel":"Canale privato","creator_blocked":"Creatore bloccato","go_to_library":"Vai in biblioteca?","go_to_library_channel_msg":"Vuoi andare al canale della biblioteca {0}?","magnet_does_not_have_name":"Questo magnete:? url non ha un nome, devi prima aggiungere un titolo al post.","no_available_post":"Nessun post disponibile","following_channel_no_post":"Tutti i tuoi canali seguenti non hanno post disponibili. Ciò potrebbe essere causato da un errore di rete. Se hai già seguito alcuni canali, i post potrebbero essere caricati in seguito.","share_to_library":"Condividi nella libreria","quick_start":"Avvio rapido","quick_start_desc":"Inizia a creare un post con un\'attività o un file","select_file":"Seleziona il file...","select_folder":"Seleziona cartella...","post_options":"Posta opzioni","channel_options":"Opzioni canale","create_new_channel":"Crea nuovo canale","use_existed_channel":"Usa canale esistente","select_existed_channel":"Seleziona il canale esistente","uploaded_by":"{title} caricato da {name}","created_by":"{title} creato da {name}","creating_new_channel":"Creazione nuovo canale...","created_new_channel":"Nuovo canale creato","creating_new_post":"Creazione nuovo post...","created_new_post":"Nuovo post creato","create_new_post":"Crea nuovo post","quick_start_timeout":"{0} timeout. Ciò potrebbe essere causato da un errore di rete. Per favore riprova più tardi.","file_too_large":"File troppo grande","file_too_large_msg":"Questo file è più grande di 4 GB ({size}) e potrebbe richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di continuare?","resolving_folder_files":"Risoluzione dei file delle cartelle...","folder_too_large":"Cartella troppo grande","folder_too_large_msg":"I file in questa cartella sono più grandi di 4 GB ({size} in totale) e potrebbero richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di caricare?","creating_new_task":"Creazione nuova attività...","cannot_create_task":"Impossibile creare l\'attività","cannot_create_task_msg":"Questo può causare qualche errore. Se l\'attività è stata creata correttamente, puoi controllare l\'elenco delle attività in un secondo momento.","cannot_get_task_name":"Impossibile ottenere il nome dell\'attività. Devi prima inserirne uno.","remove_old_task":"Rimuovi la vecchia attività","remove_old_task_desc":"La modalità Web può creare solo un\'attività alla volta. Vuoi rimuovere la vecchia attività?","subtitle_list":"Elenco dei sottotitoli","optional":"opzionale","with_subtitle":"Con sottotitoli {language}","maximumSubtitleNum_limit":"Il numero di sottotitoli ha raggiunto il massimo","add_subtitle_url":"Aggiungi il link per il download dei sottotitoli","cannot_add_subtitle":"Impossibile aggiungere i sottotitoli","cannot_add_subtitle_msg":"Lingua dei sottotitoli non selezionata o collegamento per il download non valido.","support_subtitle_type":"Sono supportati solo i sottotitoli in formato srt e vtt.","recommend_opensubtitles":"Si consiglia di utilizzare il collegamento o l\'ID per il download dei sottotitoli su www.opensubtitles.org.","take_down":"Prendere nota","serious_violation":"Violazione grave","copyright_disputes":"Controversie sul copyright","adults_only":"Solo adulti","takedown_reason":"Motivo della rimozione","takedown_mode":"Modalità abbattimento","admins":"Amministratori","takedown_user":"Rimuovi questo creatore","takedown_channel":"Rimuovi questo canale","takedown_post":"Rimuovi questo post","select_takedown_reason":"Seleziona il motivo della rimozione","takedown_invalid_reason":"Motivo della rimozione non valido","takedown_invalid_user_id":"ID utente non valido. L\'ID deve includere 87 caratteri","takedown_invalid_channel_id":"ID canale non valido. L\'ID deve includere 20 caratteri","takedown_invalid_post_id":"ID post non valido. L\'ID deve includere 20 caratteri","takedown_management":"Abbatti la gestione","users":"Utenti","channels":"Canali","posts":"Messaggi","you":"Voi","preset":"Preimpostato","admin":"Amministratore","committee":"Comitato","about_takedown_mode":"Informazioni sulla modalità di rimozione:\\nPredefinito: configurato nel repository github. Verranno tutti rimossi dalla libreria.\\nAmministratore: tutti i voti degli amministratori verranno rimossi.\\nComitato: almeno la metà degli amministratori che votano a favore verrà rimossa.","cannot_edit_preset":"Non puoi modificare questa riga poiché è una riga preimpostata","cannot_edit_not_vote":"Non puoi modificare questa riga perché non l\'hai votata","remove_vote":"Rimuovi il tuo voto","post_preload_failed":"Impossibile precaricare questo post. Il link per il download potrebbe non essere aggiornato, quindi questo post non può essere riprodotto immediatamente.","about_cache_node":"Informazioni sul nodo della cache","edit_cache_node":"Modifica il nodo della cache","create_cache_node":"Crea nodo cache","about_cache_node_desc":"${displayName} utilizza il server della pistola come nodo della cache. È possibile modificare i nodi personalizzati nelle impostazioni anticipate","learn_how_to_deploy_gun":"Scopri come distribuire il tuo server di armi","repeat_add":"L\'attività è stata aggiunta, non aggiungerla di nuovo","upload":"Caricamento","download":"Scaricamento","delete":"Eliminare","delete_task":"Elimina attività","delete_confirm_message":"Eliminare questa attività? Questo è irrevocabile","also_delete_files":"Elimina anche i file","default_delete_files":"Per impostazione predefinita, elimina i file scaricati dopo aver rimosso l\'attività","not_now":"Non adesso","delete_autoupload_confirm":"Questa attività contiene il file inserito nella directory di caricamento automatico. Elimina questa attività eliminerà anche il file.","delete_anyway":"Elimina comunque","upload_too_many_files":"Carica troppi file","ask_if_unlimit_upload_amount":"La directory di caricamento automatico contiene troppi file. Vuoi disabilitare la limitazione della quantità di upload? *Ciò potrebbe causare problemi di prestazioni","disable_limitation":"Disabilita limitazione","not_length":"L\'operazione su più file non è attualmente supportata, si prega di collaborare","download_torrent":"Download file","upload_torrent":"Caricare un file","files":"File","file":"File","folder":"Cartella","start_all":"Inizia tutto","pause_all":"Metti in pausa tutto","remove_all":"Rimuovi tutto","upload_all":"Carica tutto","clear_history":"Cancellare la cronologia","pause_all_finish_payments":"Questo terminerà tutti i pagamenti.","accelerating":"Accelerando","link_task":"Attività di collegamento","torrent_task":"Attività di archiviazione","ok":"OK","cancel":"Annulla","download_directory_position":"Scarica la posizione della directory","torrent_file":"file di attività","magnetic_link_incorrect":"Il formato del collegamento non è corretto","delete_fail":"Elimina fallita","pause":"Pausa","paused":"In pausa","stop_torrent":"Fermare","seed":"Seme","resume":"Riprendere","downloading":"Download","downloaded":"Scaricato","uploading":"Caricamento in corso","auto_uploading":"Caricamento automatico","uploaded":"Caricato","pending":"In attesa di altri compiti","verifying":"Verifica","waiting_for_verify":"In attesa di verifica","seeding":"Semina","completed":"Completato","status":"Stato","task_name":"Nome dell\'attività","size":"Misurare","progress":"Progresso","sort":"Ordinare","ascending":"Ascendente","descending":"Discendente","file_loading":"Caricamento file...","loading":"Caricamento","unknown_status":"Sconosciuto","play_while_downloading":"Giocare...","upload_or_play":"Carica / Riproduci","play":"Giocare","ask_if_upload_file":"Caricare un file?","ask_if_upload_or_play":"Caricare o riprodurre file?","torrent_error":"Errore durante l\'aggiunta dell\'attività:","no_peers":"Riprova per più di {0} volte e nessun peer è disponibile","torrent_exists":"L\'attività esiste già.","show_origin_torrent":"Ottieni il file o l\'URL dell\'attività originale","show_directory":"Apri la directory di questo torrent","task_num":"Compiti","total_upload_speed":"Velocità di caricamento","total_download_speed":"Velocità di download","path_missing":"Errore: impossibile trovare il percorso del torrent","origin_not_found":"Impossibile trovare le informazioni sull\'attività di origine.","text_copied":"L\'URL Magnum viene copiato negli appunti","copy_magnet_uri":"Copia magnete:? URI","copy_download_uri":"Copia l\'URI di download","copy_share_uri":"Copia l\'URI di condivisione","uri_copied":"L\'URI è stato copiato con successo negli appunti","uri_copy_failed":"Impossibile copiare l\'URI","more":"Di più...","toggle_list_mode":"Attiva/disattiva la modalità elenco","comment":"commento","operations":"Operazioni","open_directory":"Apri rubrica","no_downloading_task":"Nessuna attività di download","remove_all_downloading_tasks":"Rimuovere tutte le attività di download?","remove_all_upload_tasks":"Rimuovere tutte le attività di caricamento?","remove_autoupload_files":"Rimuovi i file di caricamento automatico","remove_all_history":"Rimuovere tutta la cronologia?","remaining":"Residuo","created_time":"Tempo creato","used_time":"Tempo utilizzato","completed_time":"Tempo completato","yesterday":"Ieri","before_yesterday":"{empty}","earlier":"Prima","miss_file":"Mancano alcuni file","delete_miss_file_task":"Ci sono file fome mancanti in {0}.","common_peer":"Pari comune","ab_peer":"${displayName} peer","ab_peer_verified":"Peer ${displayName} verificato","ab_peer_available":"${displayName} peer disponibili","alphabiz_accelerating":"${displayName} in accelerazione","income":"Reddito","income_info":"Reddito(oggi/totale)","total_income_info":"Entrate: {0}(oggi) / {1}(totale)","login_to_see_income":"Accedi per vedere le statistiche sul reddito","credit_cost":"Costi del credito","downloaded_by_payment":"Scaricato da Payments","file_not_found":"Impossibile trovare questo file in locale","no_task":"Non chiedere","no_matched_task":"Nessuna attività corrispondente","space_not_enough":"Lo spazio su disco non è sufficiente","need_more_space":"Hai bisogno di {0} di spazio in più ma il disco corrente ha {1} liberi ({2} riservati). Le attività sono sospese. Il precaricamento della libreria è disabilitato. Puoi riattivarlo in [Impostazioni - Avanzate].","seeders":"Seminatrici","last_update":"Ultimo aggiornamento","connecting":"Collegamento","connected":"Collegato","request_timed_out":"Tempo scaduto per la richiesta","connection_failed":"Connessione fallita","invalid_download_url":"URL di download non valido","download_link":"Link per scaricare","empty_files":"Nessun file nella directory","duplicate_task":"Compito duplicato","duplicate_tracker":"Tracker duplicato","this_task_not_ready":"Questa attività non è pronta. Metti in pausa questa attività la rimuoverà direttamente.","some_task_not_ready":"Alcune attività non sono pronte. Mettere in pausa queste attività le rimuoverà direttamente.","failed_to_delete_files":"Impossibile eliminare i file","failed_to_delete_files_desc":"Impossibile eliminare alcuni file dell\'attività. Potrebbe essere necessario eliminarli manualmente","unknown_error":"Errore sconosciuto: {0}","more_files_are_not_shown":"({0} altri file non vengono visualizzati per motivi di prestazioni)","no_available_file":"Nessun file disponibile. Attendere che l\'attività sia pronta.","service_worker_error":"Impossibile caricare ServiceWorker per giocare. Il tuo browser potrebbe non supportare questa funzione o ServiceWorker non è attivato. Potrebbe essere necessario ricaricare questa pagina e riprovare.","add_task_first":"Devi prima aggiungere l\'attività.","player_task_time":"Il giocatore impiega troppi secondi a prepararsi per il gioco. Potrebbe esserci qualcosa di sbagliato nell\'attività.","web_mode_hint":"La modalità web di ${displayName} supporta solo peer WebRTC. Per un\'esperienza migliore, scarica l\'app desktop ${displayName}.","web_mode_task_hint":"Fai clic sui pulsanti sottostanti per aggiungere un\'attività. Puoi aggiungere solo un\'attività alla volta.","save_to_local":"Salva in locale","save_as_zip":"Salva come CAP","creating_save_file":"Creazione del file di salvataggio...","upload_as_one_directory":"Carica come un\'unica directory","upload_as_single_files":"Carica come file singoli","web_mode_upload_single":"Puoi caricare un solo file in modalità web","download_success":"Scarica con successo","download_fail":"Scaricamento fallito","wait_for_downloaded_to_share":"Attendere il download dell\'attività prima di condividerla.","download_with_cellular":"Scarica le attività utilizzando il cellulare","download_with_cellular_desc":"Stai utilizzando una rete cellulare. Le attività di download con cellulare potrebbero richiedere costi aggiuntivi da parte del tuo operatore.","download_with_cellular_confirm":"Scarica ancora con il cellulare","language":"Lingua","appearance":"Aspetto","darkModeSystem":"Sistema","darkModeLight":"Leggero","darkModeDark":"Buio","basic_setting":"Di base","hideMenu":"Nascondi menu app (solo Windows e Linux)","autoHide":"Nascondi automaticamente la finestra","autoStart":"Apri al login","restore":"Mantieni le dimensioni e la posizione della finestra quando esci","autoStartUnfinished":"Riprendi automaticamente tutte le attività non completate","default_download_path":"Percorso predefinito","download_directory":"Scarica Rubrica","upload_directory":"Carica directory","enable_auto_upload":"Abilita il caricamento automatico","unlimit_upload_amount":"Quantità di caricamento illimitata","unlimit_upload_warning":"Consenti il ​​caricamento di grandi quantità di file. Ciò potrebbe causare problemi di prestazioni","start":"Avviare","transport_setting":"Trasmissione","upload_limit":"Limite di caricamento","download_limit":"Limite di download","payed_user_share_rate":"Tasso di condivisione degli utenti a pagamento","unlimited":"Illimitato","limit_input_error":"Il numero limite deve essere positivo","BT_setting":"Impostazioni attività","saveLinkSeed":"Salva collegamento come file attività","autoDownload":"Scarica automaticamente link e contenuti","continuousSeeding":"Continua a seminare finché non lo interrompi manualmente","seedSharingRate":"Rapporto seme","seedTime":"Tempo di semina (minuti)","task_manage":"Gestione dei compiti","maximumDownloadNum":"Attività attive massime","maximumConnectionsNum":"Connessione massima per server","range_error":"L\'intervallo dovrebbe essere compreso tra {0} e {1}","random":"casuale","breakpointContinuation":"Continua","automaticSkip":"Mostra automaticamente il download dopo aver aggiunto l\'attività","afterNotification":"Notifica dopo il completamento del download","deleteConfirm":"Non è richiesta alcuna conferma prima di eliminare l\'attività","submit":"Salva e applica","discard":"Scartare","reset":"Ripristina","reset_all_settings":"Resettare tutte le impostazioni?","preferences_resetted":"Preferenze ripristinate","traditional_chinese":"cinese tradizionale","japanese":"giapponese","english":"Inglese","chinese":"Cinese semplificato","advancedSettings":"Avanzate","autoUpdate":"Auto Update","autoCheckUpdate":"Controlla automaticamente l\'aggiornamento","proxy":"Delega","useProxyService":"Abilita proxy","trackerService":"Server di monitoraggio","recommendUse":"Consigliato","autoUpdateTrackerServiceList":"Aggiorna automaticamente l\'elenco dei tracker ogni giorno","manualUpdateTracker":"Aggiornamento manuale","manualUpdateSuccess":"Aggiorna correttamente i server del tracker","manualUpdateFail":"Impossibile aggiornare da:","listenPort":"Ascolta Porti","BTlistenPort":"Porta di trasmissione dati","DHTlistenPort":"Porta hash distribuita","protocols":"Protocolli compatibili","setDefaultClientForFollowingProtocols":"Imposta come client predefinito per i seguenti protocolli","magnetUrl":"Magnete","video_file":"File video","audio_file":"Fascicolo audio","security":"Sicurezza","impersonateUserAgent":"Agente utente fittizio","RPCauthorizationkey":"Segreto RPC","viewDocument":"Visualizza il manuale segreto RPC","developer":"Sviluppatore","applicationLogPath":"Percorso del registro dell\'app","downloadSessionPath":"Scarica il percorso della sessione","resetDownloadSessionRecord":"Reimposta sessione di download","restoreInitialSettings":"Ripristino delle impostazioni di fabbrica","preferences_set_successfully":"Salva le preferenze con successo!","preferences_set_fail":"Il salvataggio delle preferenze fallisce!","change_not_save":"Modifiche non salvate","discard_all_changes":"Annullare tutte le modifiche e andarsene?","stay_in_page":"Rimani nella pagina","disk_usage":"Uso del disco","pause_if_less_space":"Metti in pausa e notifica se lo spazio è inferiore a (MB)","default_video_player":"Lettore video predefinito","video_cache_time":"Cache di riproduzione in streaming","minutes":"minuti","system_default":"Default del sistema","media_player":"Media Player","library_film_rate":"Tasso di film disponibile","library_show_explore":"Mostra la pagina [Esplora].","library_setting":"Impostazione della libreria","library_sync_setting":"Impostazione della sincronizzazione della libreria","keychain_sync_status":"Stato di sincronizzazione del portachiavi","sync_with_aws":"Sincronizza il portachiavi con Amazon Web Services","backup_to_local":"Backup su file locale","enable_sync_with_aws":"Abilita la sincronizzazione con AWS","disable_sync_with_aws":"Disabilita la sincronizzazione con AWS","disable_sync_with_aws_desc":"Questo rimuoverà la chiave salvata nel server. Assicurati di aver già esportato la tua chiave.","input_independent_password":"Immettere una password indipendente","change_independent_password":"Cambia password indipendente","password_error":"Password errata","password_invalid":"password non valida","key_existed":"La chiave esisteva","key_not_found":"Chiave non trovata","library_recommend":"Libreria consigliata","show_all_channels":"Mostra tutti i canali nella pagina dei consigli della biblioteca","not_logged_in":"Accesso non effettuato","login_to_continue":"Accedi per continuare","mnemonic_code":"Codice mnemonico","wordlist":"Elenco di parole","restore_code":"Ripristina da codice","generate_code":"Genera codice","export_mnemonic_code":"Esporta codice mnemonico","import_mnemonic_code":"Importa il codice mnemonico","print":"Stampa","save_as_txt":"Salva come txt","save_as_pdf":"Salva come pdf","from_file":"Dal file","not_valid_mnemonic_code":"Questo non è un codice mnemonico valido","cannot_parse_code_as_key":"Impossibile analizzare questo codice mnemonico come chiave di libreria","import_key_hint":"Sei sicuro di importare questa chiave? Questo ripristinerà la tua vecchia chiave nella libreria.","import_key_confirm":"Sì, importalo.","library_preload":"Precarica le attività dalla libreria","show_preload":"Mostra le attività di precarico","set_download":"Imposta la directory di download","set_download_desc":"Per la versione macOS App Store, la directory di download predefinita si trova nella sandbox dell\'app e verrà eliminata dopo la disinstallazione dell\'app. Se desideri conservare i file di download, devi selezionare manualmente una directory di download diversa.","home":"Casa","home_caption":"Download/caricamento e file multimediali","library":"Biblioteca","library_caption":"Esplora le risorse multimediali","player":"Giocatore","player_caption":"Media Player","credits":"Crediti","credits_caption":"Controlla il saldo del conto","account":"Account","account_caption":"Accedi/Registrati/Gestisci","settings":"Impostazioni","settings_caption":"Impostazioni per app, lettore, account","development":"Sviluppo","development_caption":"Modalità sviluppatore per uso interno","basic":"Di base","basic_caption":"Impostazioni di base","advanced":"Avanzate","advanced_caption":"Impostazioni avanzate","blockchain":"Portafoglio","blockchain_caption":"${displayName} Portafoglio decentralizzato","internal_notice":"Avviso di rilascio interno","release_notes":"Note di rilascio","terms_and_conditions":"Termini e Condizioni","license_and_listen_notices":"Licenza e ascolto Avvisi open source","close":"Vicino","success":"Successo","fail":"Fallire","account_email_invalid_address":"indirizzo email non valido","account_email_invalid_domain":"Dominio e-mail non valido","account_email_unknown_status":"Stato di recapito email sconosciuto","account_email_unavailable_address":"Indirizzo email non disponibile","account_email_suppressed_address":"Indirizzo email soppresso","account_loading":"Caricamento...","account_is_required":"è obbligatorio","account_sign_in_your_account":"Registrazione","account_username":"Nome utente","account_username_email_phone":"Numero di telefono o e-mail","account_password":"Parola d\'ordine","account_new_password":"Nuova password","account_re_enter_password":"Reinserire la password","account_password_not_equal":"Due password non sono uguali","account_new_password_same":"La password è la stessa della password originale","account_forgot_your_password":"Hai dimenticato la password?","account_reset_password":"Resetta la password","account_sign_in":"Registrazione","account_signed_in":"Registrato in","account_sign_up":"Iscrizione","account_find_your_account":"Trova il tuo account","account_enter_your_username":"Inserisci il tuo numero di telefono o email","account_search":"Ricerca","account_email_sent_tip":"Un\'email con un codice di verifica è stata inviata alla tua email:","account_phone_sent_tip":"Un SMS con un codice di verifica è stato inviato al tuo telefono:","account_email_phone_sent_tip":"L\'e-mail e l\'SMS con il codice di verifica sono stati inviati rispettivamente alla tua e-mail e al tuo telefono:","account_software_token_tip":"MFA è abilitato per il tuo account. Per terminare l\'accesso, accendi o visualizza il tuo dispositivo e digita il TOTP","account_reset_your_password":"reimposta la tua password","account_verification_code":"Codice di verifica","account_resend_code":"Codice di rispedizione","account_code_has_been_resent":"Il codice di verifica è stato inviato di nuovo","account_password_has_been_reset":"La password è stata reimpostata","account_submit":"Invia","account_sign_up_your_account":"Registra il tuo account","account_fill_required_fields":"Compila i campi richiesti di seguito.","account_fill_optional_fields":"Compila i campi facoltativi di seguito.","account_email":"E-mail","account_invitation":"Invito","account_invitation_code":"Codice invito","account_i_accept":"Accetto","account_license_terms":"la licenza e le condizioni","account_next":"Prossimo","account_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini.","account_verify_fill_optional_fields":"Verifica e compila i campi facoltativi.","account_nickname":"Soprannome","account_gender":"Genere","account_male":"Maschio","account_female":"Femmina","account_not_say":"Non dire","account_birthday":"Compleanno","account_phone_number":"Numero di telefono","account_locale":"Locale","account_tip_verified":"Verificato, accesso...","account_verified":"verificato","account_unverified":"non verificato","account_signed_up":"Iscritto","account_verify_your_identity":"Verifica la tua identità","account_finish":"Fine","account_signed_out":"Disconnesso","account_change_password":"Cambiare la password","account_change_email":"Cambia email","account_change_phone_number":"Cambia numero di telefono","account_sign_out":"disconnessione","account_current_password":"Password attuale","account_re_enter_new_password":"Reinserire la nuova password","account_personal_information":"Informazione","account_edit":"modificare","account_reset":"Ripristina","account_greeting":"Ciao,","account_cancel":"Annulla","account_change":"modifica","account_not_set":"non impostato","account_setting":"collocamento","account_copy_code":"copiare il codice","account_account_setting":"Account","account_task_page":"Attività di credito","account_setting_caption":"Cambia password / Modifica informazioni","account_security":"Sicurezza","account_want_to_join":"Voglio aderire?","account_sign_in_now":"Registrazione","account_changed":"Cambiato","account_clipboard_with_invitation_code":"Codice invito copiato","account_clipboard_with_code":"Il Codice copiato","account_invitation_code_dialog_tip":"Invierai al tuo amico un\'e-mail o un messaggio di testo con un codice di invito:","account_available":"disponibile","account_invited":"invitato","account_used":"usato","account_invitation_code_sent":"Il codice di invito è stato inviato","account_invitation_channel_required":"Compila almeno un canale di invito","account_no_verification_code":"Non riesci a ricevere il codice di verifica?","account_no_phone_number":"Nessun numero di telefono?","account_sign_up_by_email":"Iscriviti tramite e-mail","account_no_email":"Nessuna e-mail?","account_sign_up_by_phone_number":"Iscriviti per numero di telefono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se non è presente TOTP, impostare prima TOTP","account_setup_totp":"Imposta TOTP","account_contact_information":"Informazioni sui contatti","account_delete_account":"Eliminare l\'account","account_deleted":"Eliminato","account_can_not_mfa":"MFA nei guai?","account_set_mfa_type":"Configurazione MFA","account_disable_mfa":"Disabilita l\'autenticazione a più fattori","account_disabled_mfa":"AMF disabilitato","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOP","account_not_recommend":"Non consigliato","account_oauth_sign_in_with":"Accedi con {provider}","account_sign_in_failed":"Impossibile accedere","account_tip_oath_sign_up":"L\'e-mail corrispondente all\'attuale account {provider}: {email} non ha ancora creato un account","account_tip_confirm_delete_account":"Immettere la password dell\'account corrente per confermare che si desidera eliminare l\'account corrente. (Gli account eliminati non possono essere ripristinati)","account_tip_config_mfa":"Puoi scegliere di utilizzare SMS o password monouso basata sul tempo (TOTP) come autenticazione secondaria","account_error_can_not_enable_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'MFA","account_tip_can_not_enable_sms_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'autenticazione a più fattori SMS","account_tip_can_not_enable_totp_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare TOTP MFA","account_tip_setup_totp":"Usa app come Authenticator per scansionare il codice QR qui sotto o copia il codice manualmente per aggiungere un token di sicurezza","account_tip_verify_totp":"Verifica il tuo TOTP","account_link_your_social_account":"Associa il tuo account social","account_unlink_your_social_account":"Scollega account social","account_tip_confirm_link":"Sei sicuro di voler associare l\'account corrente al tuo account {provider}?","account_tip_confirm_unlink":"Sei sicuro di cancellare il tuo account {provider} associato?","account_tip_linking":"legame...","account_tip_unlinking":"Non vincolante...","account_linked":"Limite","account_unlinked":"Non legato","account_error_can_not_link_to_the_linked_account":"L\'attuale account social è associato a un altro account","account_error_can_not_link_to_the_mismatched_email":"L\'account corrente e l\'indirizzo email dell\'account social non sono coerenti","account_error_can_not_link_before_email_verified":"L\'account social non può essere collegato perché l\'account corrente non è associato a un\'e-mail verificata","account_tip_confirm_verify_email_phone":"Se inviare un codice di verifica all\'e-mail e al numero di telefono dell\'account corrente per verificare la tua identità?","account_tip_confirm_verify_phone":"Se inviare un codice di verifica al numero di telefono corrente per verificare la tua identità?","account_error_1_message_60_seconds":"È possibile inviare un solo SMS o e-mail ogni 60 secondi, attendere altri {delta} secondi","account_error_10_messages_per_day":"Ogni telefono cellulare o e-mail può inviare solo 10 messaggi entro 24 ore","account_error_network":"Si è verificato un problema con la rete, riprova più tardi","Network Error":"Si è verificato un problema con la rete, riprova più tardi","account_error_user_not_exist":"l\'utente non esiste","account_error_incorrect_username_or_password":"nome utente o password errati","account_error_incorrect_original_password":"Password originale errata","account_error_incorrect_password":"password errata","account_error_username_not_found":"Nome utente non trovato","account_error_can_not_reset_for_no_verified":"Impossibile reimpostare la password per l\'account non verificato","account_error_invalid_verification_code":"Codice di verifica errato, riprova","account_error_expired_verification_code":"Codice di verifica scaduto, riprova","account_error_password_not_long_enough":"La password non è abbastanza lunga","account_error_attempt_limit_exceeded":"Limite di tentativi superato, riprova dopo un po\' di tempo.","account_error_password_attempts_exceeded":"Tentativi password superati.","account_error_invalid_phone_number_format":"Formato del numero di telefono non valido","account_error_no_cell_phone_prefix":"Seleziona il prefisso per il numero di telefono","account_error_username_already_exists":"Il nome utente esiste già","account_error_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini","account_error_inactive_code":"Il codice di invito non è un codice attivato","account_error_non_existent_code":"Il codice di invito è inesistente","account_error_unexpected":"Errore inaspettato","account_error_can_not_change_email_before_phone_bound":"L\'e-mail non può essere modificata prima che il numero di telefono sia associato","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail non può essere modificata prima di annullare l\'associazione dell\'account social","account_error_can_not_change_phone_before_email_bound":"Il numero di telefono non può essere modificato prima che l\'e-mail sia vincolata","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossibile modificare l\'e-mail o il numero di cellulare prima di disabilitare l\'MFA","account_error_not_supported_yet":"Attualmente non supportato","account_error_same_email":"Il nuovo indirizzo email non può essere uguale all\'indirizzo email originale","account_error_same_phone":"Il nuovo numero di telefono non può essere uguale al numero di telefono originale","account_error_email_not_exists":"L\'indirizzo email non esiste","account_error_email_already_exists":"Esiste già un account con l\'indirizzo email indicato.","account_error_phone_already_exists":"Esiste già un account con il numero di telefono indicato.","account_error_mfa_token_mismatch":"Codice token software non corrispondente","account_error_recaptcha_not_loaded":"C\'è un problema con la rete. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_recaptcha_validation_failed":"Convalida ReCAPTCHA non riuscita. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_sign_in_in_progress":"Tentativo di accesso in sospeso già in corso","account_field_range":"Limita l\'immissione di {0}-{1} caratteri","account_field_only_alphanumeric":"Supporta solo caratteri alfanumerici","account_field_only_alphanumeric_and_symbol":"Supporta solo caratteri alfanumerici e simboli","account_field_only_chinese_alphanumeric_space_underline":"Supporta solo caratteri alfanumerici, spazio, trattino basso","account_field_prefix_without_number_space":"Il primo carattere non può essere un numero o uno spazio","account_field_suffix_without_space":"Non può terminare con uno spazio","account_field_without_repeat_space":"Non è possibile utilizzare più spazi di seguito","account_field_can_not_only_alphanumeric":"Non puoi usare solo lettere o numeri","account_field_must_have_number_characters":"Deve contenere caratteri numerici","account_field_verification_code":"Il codice di verifica deve essere di sei cifre","account_field_invitation_code":"Il codice di invito deve essere alfanumerico","account_field_phone_number":"Formato del numero di telefono non valido","account_invalid_email_format":"formato email non valido","account_sign_out_confirm":"Sei sicuro di uscire? Questo interromperà tutte le attività.","account_sign_out_anyway":"Esci comunque","account_signing_out":"Uscita...","account_request_save_settings":"Le impostazioni non vengono salvate. Devi salvare le modifiche prima di uscire.","pay":"Paga","pay_with_credit":"Paga per l\'accelerazione del download. Ha bisogno di circa {0} di credito","pay_with_credit_payed":"Accelerando. Ha ancora bisogno di circa {0} di credito","create_payment":"Crea pagamento","pay_target":"Bersaglio","pay_for_torrent":"Paga per {0}","your_subid":"Il tuo ID secondario","your_credits":"I tuoi crediti","pay_point_for_data":"Paga {0} punto per dati {1}","auto_renew":"Abilita il rinnovo automatico","transaction_details":"Dettagli di Transazione","transaction_id":"Id","transaction_payer":"Pagatore","transaction_payee":"Beneficiario","transaction_category":"Categoria","transaction_changed_amount":"Importo modificato","transaction_meta":"Meta","transaction_status":"Stato","transaction_creation_time":"Tempo di creazione","receipt_code":"Codice scontrino","transfer_amount":"Importo del trasferimento","code_the_receipt_code":"Copia il codice della ricevuta qui sotto per il pagatore","fill_the_receipt_code":"Bonifico compilando il codice di pagamento fornito dal beneficiario","expense":"Spese","copied":"Copiato","transfer":"Trasferimento","receive":"Ricevere","copy":"copia","withdraw_fund":"Ritiro del Fondo","category_paydata_payer":"Costo dei dati","category_paydata_payee":"Entrata di dati","category_transfer":"Trasferimento","category_bonus":"Bonus","category_recharge":"Ricaricare","status_pending":"in attesa di","status_completed":"completato","status_finish":"fine","status_failed":"fallito","tip_invalid_receiver":"Codice ricevitore non valido","tip_invalid_amount":"L\'importo del credito deve essere un float compreso tra 0 e 1000 (la precisione minima è 0,001)","credit_get_more":"Ottieni più crediti","credit_no_data":"Nessun dato disponibile","credit_loading":"Caricamento...","credit_not_enough_amount":"Crediti insufficienti","credit_amount_not_enough":"Crediti insufficienti","credit_payee_not_exist":"Il beneficiario non esiste","credit_invalid_amount":"Importo del credito non valido","credit_can_not_transfer_to_yourself":"Impossibile trasferire a te stesso","credit_latest":"Ultimo","credit_error_network":"Si è verificato un problema con la rete, riprova più tardi","add_subtitles":"Aggiungi sottotitoli","open_file":"Apri il file...","advanced_options":"Opzioni avanzate","title":"Titolo","location":"posizione","subtitle_file":"file di sottotitoli","unsupported_subtitle_type":"Il tipo di file {0} non è un tipo di sottotitoli supportato","not_default_player":"Il lettore video predefinito non è impostato","this_is_an_audio_file":"Questo è un file audio","the_added_subtitle_already_exists":"Il sottotitolo aggiunto esiste già","stop_stream_player":"Lo streaming multimediale è stato interrotto perché l\'attività è stata sospesa o eliminata","stop_player":"Il lettore è stato chiuso perché il file è stato eliminato","playing_timeout_hint":"I tempi di attesa sono scaduti. Si prega di controllare l\'attività","autoplay_hint":"La riproduzione automatica potrebbe essere bloccata dal tuo browser. Se il giocatore non sta giocando, prova a fare clic sullo schermo per continuare","remove_playing_confirm":"{0} è ancora in riproduzione, rimuoverlo fermerà il giocatore. Sei sicuro di rimuoverlo?","unsupported_in_browser":"Non ancora supportato in modalità browser","client":"Cliente","warning":"Avvertimento","enable":"Abilitare","disable":"disattivare","auto":"Auto","encrypt_connection":"Crittografare la connessione","encrypted_connection":"Connessione crittografata","non_encrypted_connection":"Connessione non crittografata","connected_wires_not_disconnect":"I cavi collegati non verranno scollegati","audio":"Audio","video":"video","image":"Immagine","subtitle":"sottotitolo","zip":"cerniera lampo","text":"testo","unknown":"sconosciuto","add":"Aggiungere","undo":"Disfare","backup":"Backup","not_default_app":"${displayName} non è la tua app predefinita per torrent e media, vuoi impostarla come predefinita?","dont_show_again":"Non mostrare più","go_to_settings":"Vai alle impostazioni","about_alphabiz":"Circa ${displayName}","last_check_at":"Ultimo controllo alle","update_channel":"Aggiorna canale","check_for_update":"Ricerca aggiornamenti","checking_for_update":"Controllo dell\'aggiornamento...","no_update_available":"Nessun aggiornamento disponibile","update_available":"Aggiornamento disponibile","update_now":"Aggiorna ora","update_later":"Aggiorna dopo","click_to_update":"Fare clic sul pulsante AGGIORNA ORA per scaricare e aggiornare","update_failed":"Aggiornamento non riuscito","update_failed_message":"Si è verificato un errore durante l\'aggiornamento:","check_shasum_failed":"Impossibile controllare l\'integrità per il programma di installazione","downloading_update":"Download dell\'aggiornamento...","ready_to_update":"Pronto per l\'aggiornamento","restart_to_update":"L\'aggiornamento viene scaricato. ${displayName} uscirà per aggiornarsi per qualche istante.","already_latest":"La versione corrente ({0}) è già l\'ultima","update_timeout":"Timeout di aggiornamento","no_available_release":"Nessuna versione disponibile","no_available_installer":"Nessun programma di installazione disponibile","feedback":"Feedback","select_a_type":"Seleziona un tipo","category":"Categoria","select_a_category":"Seleziona una categoria","require_title":"Il titolo è obbligatorio","describe_your_problem":"Descrivi il tuo problema","report_a_bug":"Segnalare un bug","request_a_new_feature":"Richiedi una nuova funzionalità","download_or_upload":"Scaricare caricare","others":"Altri","submit_with_system_info":"Invia con informazioni di sistema","submit_feedback":"Invia feedback","tweet_us":"Twittaci","tweet_too_long":"Il tweet è troppo lungo","delete_characters":"Elimina almeno {0} caratteri","rest_characters":"Puoi inserire {0} più caratteri","update_alphabiz":"Aggiorna ${displayName}","current_version":"Versione attuale","cancel_update":"Annulla Aggiornamento","slow_download_speed":"Download troppo lento","slow_download_speed_caption":"Il download del programma di installazione è troppo lento ora. Controlla lo stato della rete","update_canceled":"Aggiornamento annullato","current_version_release_time":"Tempo di rilascio della versione corrente","expired_app":"${displayName} Scaduto","version_out_of_date":"Versione obsoleta","have_to_update":"La versione di ${displayName} non è aggiornata. Alcuni protocolli o API sono obsoleti. Devi aggiornare ${displayName} prima di continuare.","exit_alphabiz":"Esci ${displayName}","exit_and_update":"Esci e applica l\'aggiornamento","new_version_hint":"La nuova versione è disponibile","no_new_version":"Nessuna nuova versione disponibile","current_is_latest":"La versione attuale è già l\'ultima","click_to_check_update":"Fare clic sul pulsante [VERIFICA AGGIORNAMENTI] per verificare la presenza di aggiornamenti","download_latest_version_from_website":"Visitare il sito Web ufficiale per scaricare l\'ultima versione","to_the_website":"Al sito web","network_diagnotic":"Diagnostica di rete","diagnotic":"Diagnostico","click_to_check":"Fare clic per verificare","click_to_check_again":"Fare clic per controllare di nuovo","checking":"Controllo","online":"in linea","offline":"disconnesso","dns_look_up":"Ricerca DNS","error":"Errore","aws_service":"Servizio AWS","network_pings":"Ping di rete","not_found":"Non trovato","packet_loss":"Perdita di pacchetti","official_site":"Sito ufficiale","download_test":"Scarica Prova","test_task":"Compito di prova {0}","download_failed":"Scaricamento fallito","second_spend":"{0} s spendere","open_default_player_failed":"Impossibile aprire il lettore predefinito","copied_to_clipboard":"Copiato negli appunti","go_to":"Vai a","region_not_available":"Regione non disponibile","region_not_available_message":"Scusa! La tua regione non è disponibile per utilizzare questa app. Questa app si chiuderà dopo {0} secondi","confirm":"Confermare","no_available_result":"Nessun risultato disponibile","invalid_password_format":"formato della password invalido","invalid_password_format_same":"La password è la stessa della password originale","error_password":"Password errata","keychain_setting":"Portachiavi","setting_description":"Archiviazione cloud: salva i dati chiave nel cloud.\\nModifica password: consente di modificare la password per la chiave del catalogo multimediale.\\nMnemonico: un metodo alternativo per generare e ripristinare le chiavi.\\nImporta chiave locale: importa la chiave salvata localmente nel catalogo multimediale.\\nChiave di esportazione: salva i dati della libreria multimediale corrente in locale o nel cloud.\\nChiave di backup su cloud: aggiorna i dati della libreria multimediale corrente sul cloud per il backup.","refresh_status":"Aggiorna stato","confirm_import_key":"Conferma la chiave di importazione","confirm_update_cloud_key":"Hai già una chiave nel cloud. L\'aggiornamento della chiave sovrascriverà la chiave originale. Sei sicuro di voler aggiornare la chiave archiviata nel cloud?","export_key_with_cloud":"Immettere la password indipendente impostata per esportare la chiave della libreria archiviata nel cloud e bloccare il file della chiave con la password di sblocco","store_cloud_key_prompt_password":"Immettere una password indipendente per archiviare la chiave della libreria nel cloud","update_cloud_key_prompt_password":"Imposta una password indipendente per crittografare la chiave della libreria, quindi aggiornala nel cloud","enable_cloud_storage_prompt_password":"Imposta una password per la chiave memorizzata nel cloud, attraverso la quale puoi recuperare la chiave dal cloud","input_unlock_password":"Imposta la password di sblocco","export_local_prompt_password":"Si prega di impostare una password di sblocco per crittografare il file chiave. Non salveremo questa password per te, quindi se perdi la password, non sarai in grado di sbloccare la tua chiave della biblioteca","require_unlock_password":"Il file chiave è bloccato, inserisci la password di sblocco","require_independent_password":"Inserisci la password indipendente per ottenere la chiave memorizzata nel cloud","import_local_prompt_password":"Il file chiave è bloccato, inserisci la password di sblocco","select_encrypt_mode":"Seleziona la modalità di crittografia","update_cloud_key":"Aggiorna la chiave archiviata nel cloud","backup_to_cloud":"Eseguire il backup della chiave della libreria nel cloud","save_local":"Salva la chiave della libreria come file crittografato locale","create_new_key":"Crea una nuova chiave di libreria","creating_lib_key":"Creazione della chiave della libreria...","loading_lib_key":"Caricamento della chiave della libreria...","failed_to_create_lib_key":"Impossibile creare la chiave della libreria","failed_to_load_lib_key":"Impossibile caricare la chiave della libreria","import_local_key":"Importa la chiave localmente","import_lib_key_from_local":"Importa una chiave di libreria in locale","import_from_cloud":"Importa la chiave della libreria dal cloud","create_or_import_key":"Crea o importa la chiave della libreria","create_or_import_key_desc":"La chiave della libreria è una chiave indipendente utilizzata per recuperare e pubblicare contenuti con un database decentralizzato.","store_your_lib_key":"Memorizza la chiave della libreria","export_cloud_key":"Esporta chiave dal cloud","export_current_key":"Esporta chiave corrente","change_password":"Cambiare la password","enable_cloud_storage":"Abilita l\'archiviazione cloud","disable_cloud_storage":"Disabilita l\'archiviazione cloud","disable_cloud_storage_desc":"Disabilitare l\'archiviazione cloud rimuoverà la chiave salvata nel cloud, assicurati che la chiave sia salvata localmente","sync_at":"Sincronizza a: {time}","cloud_storage_enabled":"Sincronizza il portachiavi con {storage}","cloud_storage_disabled":"Archiviazione cloud disattivata","saved_locally":"Salvato localmente","export_key":"Esporta file chiave","cloud_independent_password":"Password indipendente dal cloud","key_file_unlock_password":"Password di sblocco del file chiave","re_enter_unlock_password":"Reinserire la password di sblocco","independent_password_not_enabled":"La password corrente è la password dell\'account Alphabiz (non è impostata alcuna password indipendente)","use_cognito_hash":"Usa la password dell\'account Alphabiz","use_independent_password":"Usa una password indipendente","keychain_lib":"chiave della biblioteca","loading_keychain_state":"Caricamento portachiavi...","backing_up":"Backup in corso...","backup_current_key":"Esegui il backup della chiave corrente su Cloud","cloud_lib_key_not_existed":"la chiave della libreria non esiste in Cloud","open_keychain_file":"Apri file portachiavi","confirm_open_abk":"Vuoi aprire il file ABK","use_the_key":"Usa la chiave","backup_the_key":"Eseguire il backup della chiave nel cloud","keychain_data_does_not_exist":"I dati del portachiavi non esistono","timeout of 0ms exceeded":"Si è verificato un problema con la rete, riprova più tardi","XhrError":"Si è verificato un problema con la rete, riprova più tardi","payer credit amount is not enough":"Crediti insufficienti","payee does not exist":"Il beneficiario non esiste","block_list_manage":"Gestione elenco blocchi","blocked_users":"Utenti bloccati","blocked_channels":"Canali bloccati","unblock_user":"Sblocca utente","unblock_channel":"Sblocca canale","no_blocked_user":"Nessun utente bloccato","no_blocked_channel":"Nessun canale bloccato","field_required":"{0} è obbligatorio","setting":"Collocamento","unknown_media":"Media sconosciuti","settings_button_visible":"Pulsante visibile","settings_setting":"Collocamento","settings_playback_rate":"Velocità di riproduzione","settings_subtitle":"Sottotitolo","settings_pip":"PiP","settings_fullscreen":"A schermo intero","settings_subtitle_options":"Opzioni sottotitoli","settings_normal":"Normale","settings_italic":"Corsivo","settings_lighter":"Accendino","settings_bolder":"Più audace","settings_small":"Piccolo","settings_large":"Grande","about":"Di","services":"Servizi","hide":"Nascondere","hide_others":"Nascondi altri","show_all":"Mostra tutto","quit":"Esentato","edit":"Modificare","redo":"Rifare","cut":"Taglio","paste":"Impasto","select_all":"Seleziona tutto","view":"Visualizzazione","reload":"Ricaricare","toggle_full_screen":"Passare a schermo intero","toggle_developer_tools":"Attiva/disattiva Strumenti per sviluppatori","window":"Finestra","minimize":"Minimizzare","bring_all_to_front":"Porta tutto in primo piano","help":"Aiuto","github_repo":"Github Repo","issues":"Problemi","learn_more":"Saperne di più","learn_spelling":"Impara l\'ortografia","lookup_selection":"Cerca \\"{selection}\\"","search_with_google":"Cerca con Google","save_as":"Salva come","save_image":"Salva immagine","save_image_as":"Salva l\'immagine come ...","copy_link":"Copia link","save_link_as":"Salva collegamento come ...","copy_image":"Copia l\'immagine","copy_image_as":"Copia immagine come...","copy_image_address":"Copia l\'indirizzo dell\'immagine","download_complete":"Download completato","download_complete_message":"{0} viene scaricato","is_running":"{0} è in esecuzione","open":"Apri {0}","launch_problem":"Problema di avvio","ask_clear_data":"Sembra che tu stia tentando di avviare {0} ma non ci sei riuscito più volte.\\nVuoi cancellare tutti i dati dell\'app e provare ad avviarla più tardi?","launch_directly":"Avvia direttamente","clear_all_data":"Cancella tutti i dati","ask_clear_confirm":"Questo rimuoverà tutte le configurazioni, i registri e i dati utente!\\nDopo questo potrebbe essere necessario lanciare di nuovo {0}.\\nSei sicuro di cancellare i dati?","confirm_launch":"No, avvia direttamente","confirm_clear":"Sì, cancella tutti i dati"}')},4544:function(e,t,a){},"45bf":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"47fc":function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));a("a1c1");const n=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"macOS",r:/Mac OS X/},{s:"UNIX",r:/UNIX/}];let o="unknown",i=()=>{};const r=new Promise((e=>i=e));function s(){const e="Unknown";let t=e;if(screen){const e=screen.width||"",a=screen.height||"";t=e+" x "+a}const a=navigator.appVersion,i=navigator.userAgent;let s,l,c,d=navigator.appName,u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10);-1!==(l=i.indexOf("Opera"))&&(d="Opera",u=i.substring(l+6),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))),-1!==(l=i.indexOf("Electron"))?(d="Electron",u=i.substring(l+9)):-1!==(l=i.indexOf("OPR"))?(d="Opera",u=i.substring(l+4)):-1!==(l=i.indexOf("Edge"))?(d="Microsoft Legacy Edge",u=i.substring(l+5)):-1!==(l=i.indexOf("Edg"))?(d="Microsoft Edge",u=i.substring(l+4)):-1!==(l=i.indexOf("MSIE"))?(d="Microsoft Internet Explorer",u=i.substring(l+5)):-1!==(l=i.indexOf("Chrome"))?(d="Chrome",u=i.substring(l+7)):-1!==(l=i.indexOf("Safari"))?(d="Safari",u=i.substring(l+7),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))):-1!==(l=i.indexOf("Firefox"))?(d="Firefox",u=i.substring(l+8)):-1!==i.indexOf("Trident/")?(d="Microsoft Internet Explorer",u=i.substring(i.indexOf("rv:")+3)):(s=i.lastIndexOf(" ")+1)<(l=i.lastIndexOf("/"))&&(d=i.substring(s,l),u=i.substring(l+1),d.toLowerCase()===d.toUpperCase()&&(d=navigator.appName)),-1!==(c=u.indexOf(";"))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(" "))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(")"))&&(u=u.substring(0,c)),_=parseInt(""+u,10),isNaN(_)&&(u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10));const p=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(a),m=navigator.cookieEnabled;let h=e;for(const o in n){const e=n[o];if(e.r.test(i)){h=e.s;break}}let g=e;switch(/Windows/.test(h)&&(g=/Windows (.*)/.exec(h)[1],h="Windows"),h){case"macOS":case"Android":g=/(?:Android|Mac OS|Mac OS X|MacIntel) ([._\d]+)/.exec(i)[1],g=g.replace(/_/g,".");break;case"iOS":g=/OS (\d+)_(\d+)_?(\d+)?/.exec(a),g=g[1]+"."+g[2]+"."+(g[3]||0);break}console.log("getSystemInfo");const f={screen:t,os:h,browser:d,osVersion:g,browserVersion:u,browserMajorVersion:_,mobile:p,cookies:m,arch:o};return r.then((()=>{f.arch=o})),f}"userAgentData"in navigator&&(console.log("Init userAgentData"),navigator.userAgentData.getHighEntropyValues(["architecture","bitness"]).then((({architecture:e,bitness:t})=>{console.log("Navigator userAgentData",e,t),"string"===typeof e&&(o=e),"string"===typeof t&&(o.includes("arm")?o+=t:o+="_"+t),i(o)})))},"49d6":function(e,t,a){},"4b8c":function(e,t,a){"use strict";a("80f4")},"4d52":function(e,t,a){"use strict";a("d4b5"),a("de6c"),a("a1c1"),a("7a76");var n=a("fb31");const o={type:"03",prefix:n["shortProtocol"]+"-blockchain"},i={encode:e=>Buffer.from(e,"utf-8").toString("hex"),decode:e=>Buffer.from(e,"hex").toString("utf-8")},r={encode:e=>Buffer.from(e,"utf-8").toString("base64"),decode:e=>Buffer.from(e,"base64").toString("utf-8")},s={stringifyProtocolObject(e){const t=JSON.parse(i.decode(e.hash)),a=e.data,n={to_address:t.to_address,coin_type:a.coin_type,amount:a.amount,expiration:a.expiration},o=r.encode(JSON.stringify(n));return[t.action,o].join("/")},parseProtocolObject(e){const t=`Transfer to ${e.to_address.substr(2,10)}`,a=JSON.stringify({action:"transfer",to_address:e.to_address}),n={};return["coin_type","amount","expiration"].forEach((t=>{n[t]=e[t]})),{name:t,id:a,data:n}}},l={transfer:s},c=e=>{if(!e.startsWith(`${o.prefix}://`))return null;const[t,a]=e.replace(`${o.prefix}://`,"").split("/");if(!l[t])throw new Error("Unexpected action: "+t);const n=JSON.parse(r.decode(a));return{action:t,actionArgs:n}},d=(e,t)=>{const a=r.encode(JSON.stringify(t));return`${o.prefix}://${[e,a].join("/")}`};t["a"]={config:o,parseAction:c,stringifyAction:d,fromObject(e){if(e.protocolType!==o.type)return null;const{action:t}=JSON.parse(i.decode(e.hash));if(!l[t])throw new Error("Unexpected action: "+t);return`${o.prefix}://${l[t].stringifyProtocolObject(e)}`},toObject(e){const{action:t,actionArgs:a}=c(e),{name:n,id:r,data:s}=l[t].parseProtocolObject(a);return{protocolType:o.type,name:encodeURIComponent(n),hash:i.encode(r),data:s}}}},"4d62":function(e,t,a){},"4d89":function(e,t,a){"use strict";a("c294")},"4dbc":function(e,t,a){"use strict";a("fe8f")},"4eaf":function(e,t,a){},"4ec4":function(e,t,a){"use strict";a("cb96")},"4fd2":function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return d}));a("de6c"),a("a1c1");const n=a("d310").isElectron(),o=new Map,i=e=>{if(!n)return!1;if("string"!==typeof e)return!1;if(o.has(e))return o.get(e);const t=a("bc7b");return!!t.existsSync(e)&&(o.set(e,t.statSync(e).isDirectory()),o.get(e))},r=["mp3","wav","aac","flac","m4a","wma"],s=["mp4","mkv","flv","avi","mov","wmv","rmvb","flv","webm"],l=e=>r.includes(e),c=e=>s.includes(e);function d(e){const t=e.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!t)return!1;const a=t[0].slice(1);if(!a.length)return!1;const n=r.includes(a.toLowerCase())||s.includes(a.toLowerCase());return!!n&&!i(e)}},5:function(e,t){},"508e":function(e,t){const a=["udp://open.tracker.cl:1337/announce","udp://tracker.opentrackr.org:1337/announce","udp://9.rarbg.com:2810/announce","udp://tracker.openbittorrent.com:6969/announce","udp://exodus.desync.com:6969/announce","udp://www.torrent.eu.org:451/announce","udp://tracker1.bt.moack.co.kr:80/announce","udp://tracker.zerobytes.xyz:1337/announce","udp://tracker.torrent.eu.org:451/announce","udp://tracker.theoks.net:6969/announce","udp://tracker.srv00.com:6969/announce","udp://tracker.pomf.se:80/announce","udp://tracker.ololosh.space:6969/announce","udp://tracker.monitorit4.me:6969/announce","udp://tracker.moeking.me:6969/announce","udp://tracker.lelux.fi:6969/announce","udp://tracker.jordan.im:6969/announce","udp://tracker-udp.gbitt.info:80/announce","udp://retracker.sevstar.net:2710/announce","udp://retracker.netbynet.ru:2710/announce","udp://186.10.181.71:1337/announce","udp://93.158.213.92:1337/announce","udp://151.80.120.113:2810/announce","udp://45.154.253.6:6969/announce","udp://208.83.20.20:6969/announce","udp://91.216.110.52:451/announce","udp://156.234.201.18:80/announce","udp://62.210.217.207:1337/announce","udp://89.234.156.205:451/announce","udp://209.141.59.16:6969/announce","udp://62.109.31.95:6969/announce","udp://65.108.63.133:80/announce","udp://93.104.214.40:6969/announce","udp://163.172.170.127:6969/announce","udp://95.217.161.135:6969/announce","udp://213.108.105.23:6969/announce","udp://109.72.83.209:80/announce","udp://78.30.254.12:2710/announce","udp://212.1.226.176:2710/announce","udp://tracker.leechers-paradise.org:6969","udp://tracker.coppersurfer.tk:6969","udp://tracker.opentrackr.org:1337","udp://explodie.org:6969","udp://tracker.empire-js.us:1337","wss://tracker.btorrent.xyz","wss://tracker.openwebtorrent.com"],n=e=>a.indexOf(e),o=e=>a[e];e.exports={getTrackerById:o,getIdByTracker:n,trackerList:a}},"50de":function(e,t,a){"use strict";a("bba7")},"512b":function(e,t,a){},"525c":function(e,t,a){},"536e":function(e,t,a){"use strict";a("a5d3")},5415:function(e,t,a){"use strict";a("512b")},5515:function(e,t,a){"use strict";a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"b",(function(){return v}));a("de6c"),a("d4b5"),a("4db2"),a("a1c1");var n=a("2d62"),o=a("d7df"),i=a("d710");function r(){const e=navigator.userAgent.toLowerCase();return e.includes("android")||e.includes("ios")||e.includes("iphone")}var s=a("c49d");const l=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100),c=(e="",t={})=>{if(e.startsWith("ab-")||e.startsWith(i["appName"].toLowerCase()))return!1;if(!e.startsWith("~"))return!0;if(e.startsWith("~@"))return 42!==e.length;const a=e.split("/");if(1===a.length){const[e,n]=a[0].split(".");if(!e||!n)return!0;if(e.length<40||n.length<40)return!0;const o=Object.keys(t);return o.some((e=>!["_","alias","auth","pub","epub","profile","follow","channels","blockChannels","blockUsers","takedowns"].includes(e)))}const n=a[1];if(!["follow","profile","channels","takedowns"].includes(n))return!0;const o=a[2]?[a[2]]:Object.keys(t);return"profile"===n?o.some((e=>!["_","#",">","avatar","description","name","id","blockChannels","blockUsers"].includes(e))):"follow"===n?o.some((e=>!(!e.match(/[^.]{43}\.[^.]{43}/)||e.includes("channels")))):Object.values(t).some((e=>"string"===typeof e&&e.includes("data:image")))},d=(e,t)=>{for(const r in t){const e=t[r];if("string"===typeof e&&e.includes("data:image"))return[]}const a=[],n=t._;if(!n||!n["#"]||!n[">"])return[];let o={[e]:{_:{"#":n["#"],">":{}}}},i=0;for(const r in t){if("_"===r)continue;const s=t[r];if("string"===typeof s&&s.includes("data:image"))return[];o[e][r]=s,i+=(JSON.stringify(s).length||0)+r.length,o[e]._[">"][r]=n[">"][r],i>1e4&&(a.push(o),i=0,o={[e]:{_:{"#":n["#"],">":{}}}})}return Object.keys(o).length&&a.push(o),a},u=(e,t,a)=>{if(e[t]){const n=e[t];e[t]=(...e)=>{n(...e),a(...e)}}else e[t]=a},_={timer:null,pending:!1,last:Date.now(),lastSize:0},p=async()=>{if(_.pending)return;const e=n["v"]._.graph;console.time("saveGraph"),_.pending=!0,_.last=Date.now();const t=Object.keys(e);if(_.lastSize>t.length)return console.log("Skip saving library");_.lastSize=t.length,console.log("start sending splice graph",t.length);let a=Object.create(null);o["a"].emit("save-library-db-start");for(const n of t){const t=e[n];if(!t)continue;if(c(n,t))continue;a[n]=t;const i=JSON.stringify(a);i.length>5e4&&(await new Promise((e=>l((()=>{o["a"].emit("save-library-db-partial",a),e()})))),a=Object.create(null))}Object.keys(a).length&&o["a"].emit("save-library-db-partial",a),l((()=>{o["a"].emit("save-library-db-end"),_.pending=!1,_.last=Date.now(),Object(s["a"])("Save partials",(new Date).toLocaleString()),console.timeEnd("saveGraph")}))},m=()=>{if(clearTimeout(_.timer),Date.now()-_.last>6e5)return p();_.timer=setTimeout(p,6e4)},h={};Object.defineProperty(window,"wrtcPeers",{get(){return h}}),Object.defineProperty(window,"saveGraph",{get(){return m}});let g=null;const f=async e=>{const t=g;return g=new Promise((a=>{const n=()=>{const t=e();t instanceof Promise?t.then(a):l((()=>a(t)))};t instanceof Promise?t.then(n):n()})),g};function b(e){const t=r()?2:5;if(Object.keys(h).length>t)return Object(s["d"])(),void(e._destroy&&e._destroy(null,(()=>{})));const a=e.wire;if(!a)return;const o=n["v"]._.root;if(e.syncState="waiting",e.remoteSyncState="waiting",h[e.id]&&"open"===h[e.id].wire.readyState)return;h[e.id]=e;let i=!1;e.downloaded=0,e.uploaded=0,e.downloadSpeed=0,e.uploadSpeed=0;const l={time:Date.now(),downloaded:0,uploaded:0},_=setInterval((()=>{if(i)return clearInterval(_);const t=Date.now(),a=t-l.time;e.downloadSpeed=Math.floor((e.downloaded-l.downloaded)/a*1e3),e.uploadSpeed=Math.floor((e.uploaded-l.uploaded)/a*1e3),l.time=t,l.downloaded=e.downloaded,l.uploaded=e.uploaded}),1e3),p=async(t="")=>(a.bufferedAmount>a.bufferedAmountLowThreshold&&await new Promise((e=>{a.onbufferedamountlow=e})),f((()=>{"open"===a.readyState?(e.uploaded+=t.length,a.send(t)):i=!0}))),g=()=>{if(!o.graph)return setTimeout(g,5e3);let e=-1;for(const a in o.graph){var t;const n=o.graph[a],i=null===n||void 0===n||null===(t=n._)||void 0===t?void 0:t[">"];i&&i>e&&(e=i)}p("ABINFO"+JSON.stringify({timestamp:e}))};g(),e.lastUpdate=-1,e.syncTimer=null;const b=async()=>{if(i)return;if(e.syncTimer&&clearTimeout(e.syncTimer),!o.graph)return void(e.syncTimer=setTimeout(b,5e3));e.syncState="syncing";const t=Object.keys(o.graph);for(let e=t.length-1;e>0;e--){const a=Math.floor(Math.random()*(e+1));[t[e],t[a]]=[t[a],t[e]]}let n=Object.create(null);const r=Date.now();let l=0,u=0;for(const m of t){if("open"!==a.readyState){"connecting"!==a.readyState&&(delete h[e.id],i=!0,e.close(),e._destroy&&e._destroy(null,(()=>{})),Object.keys(h).length<5&&Object(s["c"])());break}l++;const t=o.graph[m];if(!t)continue;if(t._&&t._[">"]){const a=Object.values(t._[">"]);if(a.every((t=>t5e4){const e=d(m,t);if(!e.length)continue;window.verb&&Object(s["a"])("SPLICES",e,JSON.stringify(t).length);for(const t of e)await p("ABSYNC"+JSON.stringify(t)),u++;continue}n[m]=t;const r="ABSYNC"+JSON.stringify(n);if(r.length>5e4&&(await p(r),u++,n=Object.create(null)),i)return}Object.keys(n).length&&u++,u&&(e.lastUpdate=r,m(),Object(s["a"])("Synced",l,"items to",e.id));const _=Object.keys(n).length?JSON.stringify(n):"{}",g="ABSYNC!"+_;"open"===a.readyState&&p(g),e.syncState="completed",e.syncTimer=setTimeout(b,1e4)};return u(a,"onclose",(function(){i=!0,delete h[e.id],clearTimeout(e.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(a,"onerror",(function(){i=!0,delete h[e.id],clearTimeout(e.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(a,"onmessage",(function(t){if(!t)return;let a=t.data;if("string"!==typeof a&&(a instanceof ArrayBuffer?a=Buffer.from(a).toString("utf-8"):(Object(s["a"])("unknown data",typeof a,a),a=a.toString())),a)if(a.startsWith("ABSYNC")){e.downloaded+=a.length,a.startsWith("ABSYNC!")?(e.remoteSyncState="completed",m()):e.remoteSyncState="syncing";try{if("ABSYNC!{}"===a)return;const e=JSON.parse(a.replace(/ABSYNC(!?)/,"")),t={put:e,_:function(){},$:n["v"]};f((()=>o.on.put(t)))}catch(i){Object(s["a"])("put error",i,a)}}else if(a.startsWith("ABINFO")){const t=JSON.parse(a.substring(6));t.timestamp&&(e.lastUpdate=t.timestamp,b())}})),u(e,"ondatachannel",(function(e){const t=e.channel;t.onmessage=a.onmessage,t.onopen=a.onopen,t.onclose=a.onclose})),e}function y(e){if(h[e.id])return;const t=e._pc;return t.id=e.id,t.wire=e._channel,t._from="tracker",e.on("error",(e=>window.verb&&Object(s["a"])("peer error",e))),t._destroy=()=>{e._destroy&&e._destroy(null,(()=>{}))},b(t)}n["v"]._.opt.onWrtcPeer=function(e){return e._from="gun",b(e)};t["a"]=y;async function v(e){let t=Object.create(null),a=0;const o=Object.keys(e);for(const i of o)if(a++,t[i]=e[i],a>300||a===o.length){const e={...t},i={put:e,_:function(){},$:n["v"]};if(await f((()=>n["v"]._.root.on.put(i))),a===o.length){for(const e in h)h[e].lastUpdate=-1;Object(s["a"])(`Put ${o.length} items from local db`)}else await new Promise((e=>l(e)));t=Object.create(null)}}setInterval((()=>{Object.keys(h).length>=5||n["v"]._.opt&&"function"===typeof n["v"]._.opt.announce&&n["v"]._.opt.announce()}),6e4)},5584:function(e,t,a){"use strict";var n=a("ff9b"),o=a("358c"),i=(a("de6c"),a("3387")),r=a.n(i);function s(e,t,a){const o=a?e=>e[a]:e=>e;for(const r of t){const t=e.findIndex((e=>o(e)===o(r)));-1===t?e.push(r):"object"===typeof r?Array.isArray(r)?s(e[t],r):Object(i["isEqual"])(e[t],r)||n["a"].set(e,t,r):n["a"].set(e,t,r)}for(let n=0;no(t)===o(e[n])))||e.splice(n--,1);return e}const l={tasksCount:{downloading:0,uploading:0,downloaded:0},abKeys:{},uploadingTasks:[],shouldDisableTasks:!1,uploadingLoading:!1,updatingTaskList:!1},c=new n["a"]({data(){return{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0}}}),d={DOWNLOADER_UPDATE_DOWNLOADING_TASK_COUNT(e,t){e.tasksCount.downloading=t},DOWNLOADER_UPDATE_UPLOADING_TASK_COUNT(e,t){e.tasksCount.uploading=t},DOWNLOADER_UPDATE_DOWNLOADED_TASK_COUNT(e,t){e.tasksCount.downloaded=t},DOWNLOADER_SET_UPLOADING_LOADING(e,t){e.uploadingLoading=t},updateTaskCount(e,t){Object.assign(e.tasksCount,t)},changeDisableTasks(e,t){e.shouldDisableTasks=t},updateABKeys(e,t){for(const a in t){const n=t[a],o=e.abKeys[a];o?e.abKeys[a]=[...s(o,n,"key")]:e.abKeys=t}},updateUploading(e,t){console.log("updateUploading",t),s(e.uploadingTasks,t,"abUrl")},setUpdatingTasks(e,t){e.updatingTaskList=t},updateTaskInfo(e,t){n["a"].set(c,t.type,t.info)},updateTasks(e,t){const{uploadingTasks:a,tasksCount:n,abKeyObj:o}=t;s(e.uploadingTasks,a,"abUrl");for(const i in n)e.tasksCount[i]=n[i];for(const i in o){const t=o[i],a=e.abKeys[i];a?s(a,t,"key"):e.abKeys=o}}},u={},_={taskCount(e){return e.tasksCount},getDownloadingTaskCount(e){return e.tasksCount.downloading},getUploadingTaskCount(e){return e.tasksCount.uploading},getDownloadedTaskCount(e){return e.tasksCount.downloaded},shouldDisableTasks(e){return e.shouldDisableTasks},isUploadingLoading(e){return e.uploadingLoading},abKeys(e){return e.abKeys},uploading(e){return e.uploadingTasks},tasks(){return c.$data},allTasks(){return[...c.downloading,...c.uploading,...c.downloaded]}},p={namespaced:!1,state:l,mutations:d,actions:u,getters:_};var m=p,h=a("d310"),g=a("8a63"),f=a("9efe"),b=a("e74d"),y=a("e75b"),v=a("d7df"),w=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const k=new y["a"].Rest("ABDevRest"),S=()=>w(void 0,void 0,void 0,(function*(){const e=window.$blockchain.$store.account;if(yield e.initCurrentAccount(),e.account)return;const t=yield e.createNewAccount();yield t.confirm(),yield e.recoveryAccount({key:t.toPrivateKeyObject().privateKeyHex}),console.log("The blockchain account has been created automatically: ",t)})),C=()=>w(void 0,void 0,void 0,(function*(){"blockchain"===localStorage.getItem("dataPaymentMixin.mode")&&(yield S())})),x=e=>{var t,a;return{sub:e.attributes.sub,username:e.username,signingTime:e.attributes["custom:signing_time"],signingIpAddress:e.attributes["custom:signing_ip_address"],lastLoginTime:e.attributes["custom:last_login_time"],lastIpAddress:e.attributes["custom:last_ip_address"],accountLevel:e.attributes["custom:account_level"],msgLocale:e.attributes["custom:msg_locale"],nickname:e.attributes.nickname,gender:e.attributes.gender,birthday:e.attributes.birthdate,locale:e.attributes.locale,email:e.attributes.email,phoneNumber:e.attributes.phone_number,phoneNumberCountryCode:e.attributes["custom:phone_number_code"],emailVerified:e.attributes.email_verified,phoneNumberVerified:e.attributes.phone_number_verified,invitationCode:null===(t=e.dynamo_attrs)||void 0===t?void 0:t.invitation_code,identities:JSON.parse(null!==(a=e.attributes.identities)&&void 0!==a?a:"[]")}},$=["sub","username","email","emailVerified","phoneNumber","phoneNumberCountryCode","phoneNumberVerified","signingTime","signingIpAddress","lastLoginTime","lastIpAddress","accountLevel","msgLocale","invitationCode","identities"],T=["nickname","gender","birthday","locale"],z=Object.assign(Object.assign({authState:null},[...$,...T].reduce(((e,t)=>(e[t]=void 0,e)),{})),{verification:null,preferredMFA:null}),P={ACCOUNT_UPDATE_INFO(e,t){Object.keys(t).forEach((a=>{const n=a;if(void 0!==t[n])e[n]=t[n];else{const t={gender:"notSay",locale:"notSay"};e[n]=t[n]||""}}))},ACCOUNT_CLEAR_INFO(e){[...$,...T].forEach((t=>{e[t]=void 0}))},ACCOUNT_UPDATE_STATE(e,t){if(e.verification&&["forgotPassword","signUpConfirm","signInConfirm","signUp"].includes(e.authState)&&(e.verification=null),e.authState=t,h["Bus"].$emit("update-authstate",t),"signedIn"!==e.authState)return console.log("Skip not sign in",t);console.log("authState:",e.authState),v["a"].emit("user_login","store - account_update_state"),Object(g["a"])()},ACCOUNT_UPDATE_VERIFICATION(e,t){t?(e.verification||(e.verification={}),Object.assign(e.verification,t)):e.verification=null},ACCOUNT_SET_MFA_TYPE(e,t){e.preferredMFA=t}},A={ACCOUNT_UPDATE_INFO({commit:e}){return w(this,void 0,void 0,(function*(){const t=yield Object(f["f"])();return e("ACCOUNT_UPDATE_INFO",x(t)),b["a"].currentAuthenticatedUser().then((e=>b["a"].getPreferredMFA(e))).then((t=>e("ACCOUNT_SET_MFA_TYPE",t))),{message:"success"}}))},ACCOUNT_REDIRECT_TO_INDEX({dispatch:e,commit:t,state:a}){return w(this,void 0,void 0,(function*(){const n=()=>w(this,void 0,void 0,(function*(){yield Promise.all([C(),e("CREDIT_INIT_DATA")]),t("ACCOUNT_UPDATE_STATE","signedIn")})),o=()=>w(this,void 0,void 0,(function*(){yield Promise.all([e("CREDIT_CLEAR_DATA")]),t("ACCOUNT_UPDATE_STATE","signedOut")}));try{const t=yield Object(f["e"])(!1).catch((e=>(console.warn("debug#859: fetchAuthUser"),console.log(e),null)));if(!t)return yield o();yield e("ACCOUNT_UPDATE_INFO"),"signedIn"!==a.authState?yield n():(console.warn("debug#859: state.authState"),console.log(a.authState))}catch(i){console.error('failed to "ACCOUNT_REDIRECT_TO_INDEX"'),console.warn("debug#859: state.authState"),console.log(i),yield o()}}))},ACCOUNT_SIGN_IN({commit:e,dispatch:t},{username:a,password:n}){return w(this,void 0,void 0,(function*(){const o=yield Object(f["l"])(a,n).catch((e=>e));if(o){if("SMS_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"phone_number",mfaType:o.message,destination:o.destination,user:o.user}),o;if("SOFTWARE_TOKEN_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"software_token",mfaType:o.message,user:o.user}),o;if("UserNotConfirmedException"===o.code){e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n});const i=yield t("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND");throw"success"===i.message?new Error(o.code):i}throw o}return e("ACCOUNT_CLEAR_INFO"),yield t("ACCOUNT_UPDATE_INFO"),yield Promise.all([C(),t("CREDIT_INIT_DATA")]),{message:"success"}}))},ACCOUNT_SIGN_OUT({commit:e,dispatch:t}){return w(this,void 0,void 0,(function*(){yield Object(f["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_DELETE_USER({commit:e,dispatch:t},{password:a}){return w(this,void 0,void 0,(function*(){yield Object(f["x"])(a),yield Object(f["d"])(),yield Object(f["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_SET_MFA_TYPE({dispatch:e,commit:t,state:a},n){return w(this,void 0,void 0,(function*(){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(n))throw new Error("Illegal mfa type");const e=yield b["a"].currentAuthenticatedUser();yield b["a"].setPreferredMFA(e,n);const a=yield b["a"].getPreferredMFA(e);t("ACCOUNT_SET_MFA_TYPE",a)}))},ACCOUNT_MFA_RESEND({dispatch:e,commit:t,state:a}){return w(this,void 0,void 0,(function*(){const n=a.verification.username,o=a.verification.password,i=yield e("ACCOUNT_SIGN_IN",{username:n,password:o}).catch((e=>e));if(!i)throw new Error("Unexpected Error");"SMS_MFA"===i.message?t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"phone_number",mfaType:i.message,destination:i.destination,user:i.user}):"SOFTWARE_TOKEN_MFA"===i.message&&t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"software_token",mfaType:i.message,user:i.user})}))},ACCOUNT_MFA_SUBMIT({state:e,commit:t,dispatch:a},n){return w(this,void 0,void 0,(function*(){const o=e.verification.user,i=e.verification.mfaType;yield Object(f["m"])(o,i,n),t("ACCOUNT_CLEAR_INFO"),yield a("ACCOUNT_UPDATE_INFO"),yield a("CREDIT_INIT_DATA")}))},ACCOUNT_CHANGE_ATTRIBUTES({dispatch:e},t){return w(this,void 0,void 0,(function*(){yield Object(f["b"])(t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_UNLINK_OAUTH({dispatch:e,state:t},a){return w(this,void 0,void 0,(function*(){if(t.identities.length<=0)throw new Error("Not oauth provider existed");const n=t.identities.find((e=>e.providerName===a));if(!n)throw new Error("Can not found oauth provider: "+a);yield Object(f["r"])(a,n.userId),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PASSWORD({commit:e},{oldPassword:t,newPassword:a}){return w(this,void 0,void 0,(function*(){const e=yield b["a"].currentAuthenticatedUser();yield k.post("/account/changePassword",{username:e.getUsername(),AccessToken:e.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:t,ProposedPassword:a})}))},ACCOUNT_FORGOT_PASSWORD_SEND({state:e,commit:t,rootGetters:a},n){return w(this,void 0,void 0,(function*(){const e=a.settings.language,o=yield Object(f["g"])(n,{msgLocale:`${e}:F`});return t("ACCOUNT_UPDATE_VERIFICATION",{username:n,type:o.CodeDeliveryDetails.AttributeName,destination:o.CodeDeliveryDetails.Destination}),{message:"success"}}))},ACCOUNT_FORGOT_PASSWORD_SUBMIT({commit:e,state:t},{code:a,password:n}){return w(this,void 0,void 0,(function*(){yield k.postGuest("/account/forgotPasswordSubmit",{ClientId:b["a"].userPool.getClientId(),ConfirmationCode:a,Password:n,Username:t.verification.username})}))},ACCOUNT_SIGN_UP_NECESSARY({rootGetters:e,commit:t},a){return w(this,void 0,void 0,(function*(){if(!a.email&&!a.phoneNumber)throw new Error("Email or Phone Number must be fill when signing up.");const n=e.settings.language;a.msgLocale=`${n}:${a.email?"E":"P"}`;const o=yield Object(f["o"])(a);return t("ACCOUNT_UPDATE_VERIFICATION",{username:o.user.username,password:a.password,type:o.codeDeliveryDetails.AttributeName,destination:{email:a.email,phone_number:a.phoneNumber}[o.codeDeliveryDetails.AttributeName]}),{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND({state:e,commit:t}){return w(this,void 0,void 0,(function*(){const t=e.verification.username;yield Object(f["i"])(t);return{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT({commit:e,state:t},{code:a,optAttrs:n}){return w(this,void 0,void 0,(function*(){try{yield Object(f["c"])(t.verification.username,a,n)}catch(e){if(console.warn("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",e),e instanceof Error&&!["User cannot be confirmed. Current status is CONFIRMED","User is already confirmed"].includes(e.message))throw e}return{message:"success"}}))},ACCOUNT_INVITE_CODE({commit:e,dispatch:t},{code:a,contactEmail:n,contactPhone:o}){return w(this,void 0,void 0,(function*(){return yield Object(f["h"])(a,n,o),yield t("ACCOUNT_UPDATE_INFO"),{message:"success"}}))},ACCOUNT_CHANGE_EMAIL_SEND({rootGetters:e,dispatch:t},a){return w(this,void 0,void 0,(function*(){const n=e.settings.language;return z.msgLocale===`${n}:E`||(yield Object(f["k"])(n,"E")),a&&a===z.email?yield Object(f["t"])("email"):yield Object(f["u"])("email",a),yield t("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_EMAIL_SUBMIT({dispatch:e},t){return w(this,void 0,void 0,(function*(){return yield Object(f["v"])("email",t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SEND({rootGetters:e,state:t,dispatch:a},{phoneNumber:n,phoneNumberCountryCode:o}){return w(this,void 0,void 0,(function*(){const i=e.settings.language;return t.msgLocale===`${i}:P`||(yield Object(f["k"])(i,"P")),n&&o&&n===t.phoneNumber&&o===t.phoneNumberCountryCode?yield Object(f["t"])("phone_number"):yield Object(f["u"])("phone_number",n,o),yield a("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SUBMIT({dispatch:e},t){return w(this,void 0,void 0,(function*(){return yield Object(f["v"])("phone_number",t),yield e("ACCOUNT_UPDATE_INFO")}))}},I={accountUserInfo(e,t){const a={};return Object.assign(a,t.accountUserOptionalInfo),a.preferredMFA=e.preferredMFA,Object.assign(a,t.accountUserReadonlyInfo),a},accountUserReadonlyInfo(){return $.reduce(((e,t)=>(e[t]=z[t],e)),{})},accountUserOptionalInfo(e){return T.reduce(((t,a)=>(t[a]=e[a],t)),{})}},q={namespaced:!1,state:z,mutations:P,actions:A,getters:I};var O=q,E=a("06e8"),D=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const j=new y["a"].Rest("ABDevRest"),N={Mutations:{CREDIT_SET_INIT_STATE:"CREDIT_SET_INIT_STATE",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_UPDATE:"CREDIT_UPDATE",CREDIT_UPDATE_TXN:"CREDIT_UPDATE_TXN",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION",CREDIT_UPDATE_USER:"CREDIT_UPDATE_USER",CREDIT_UPDATE_EXPENSES:"CREDIT_UPDATE_EXPENSES",CREDIT_UPDATE_INCOME_TODAY:"CREDIT_UPDATE_INCOME_TODAY",CREDIT_UPDATE_TOKEN:"CREDIT_UPDATE_TOKEN",CREDIT_UPDATE_INCOME:"CREDIT_UPDATE_INCOME"},Actions:{CREDIT_INIT_DATA:"CREDIT_INIT_DATA",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_TRANSFER:"CREDIT_TRANSFER",CREDIT_FETCH_TRANSACTION:"CREDIT_FETCH_TRANSACTION",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION"}},L=["credit"];var U,R;(function(e){e["TRANSFER"]="TRANSFER",e["PAYDATA"]="PAYDATA",e["RECHARGE"]="RECHARGE",e["BONUS"]="BONUS"})(U||(U={})),function(e){e["PENDING"]="PENDING",e["FAILED"]="FAILED",e["FINISH"]="FINISH",e["COMPLETED"]="COMPLETED"}(R||(R={}));const M=Object.assign({isModuleInit:0,incomeTransactions:[],expensesTransactions:[],incomeTodayTransactions:[],providentFund:null},L.reduce(((e,t)=>(e[t]=void 0,e)),{})),F={CREDIT_SET_INIT_STATE(e,t){e.isModuleInit=t},CREDIT_CLEAR_DATA(e){e.providentFund=null,L.forEach((t=>e[t]=void 0)),e.expensesTransactions=[],e.incomeTransactions=[],e.incomeTodayTransactions=[]},CREDIT_UPDATE(e,t){const a=e=>{const t={};for(const[a,n]of Object.entries(e)){let e=t;if(-1===a.indexOf("."))e[a]=n;else{const t=a.split(".");for(let a=0;aObject.keys(e).forEach((a=>{void 0!==t[a]&&(e[a]=t[a])}));let n=e.incomeTransactions.find((e=>e.id===t.id));if(n){if(a(n,t),n=e.incomeTodayTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}else{if(n=e.expensesTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}},CREDIT_UPDATE_USER(e,t){for(const[a,n]of Object.entries(t))L.includes(a)&&(e[a]=n)},CREDIT_UPDATE_INCOME(e,t){e.incomeTransactions=t},CREDIT_UPDATE_EXPENSES(e,t){e.expensesTransactions=t},CREDIT_UPDATE_INCOME_TODAY(e,t){e.incomeTodayTransactions=t}},B={CREDIT_TRANSFER({dispatch:e},{receiverSub:t,amount:a,meta:n}){return D(this,void 0,void 0,(function*(){const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>M.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield j.post("/credit/transfer",{receiverSub:t,amount:a,meta:n})}))},CREDIT_PAY_DATA_REQUEST({dispatch:e,state:t},{receiverSub:a,amount:n,meta:o}){return D(this,void 0,void 0,(function*(){if(n=Math.min(Number.parseInt(n),1e6),n>=t.credit)throw new Error("credit_not_enough_amount");return yield j.post("/dataProviding/request",{receiverSub:a,amount:n,meta:JSON.stringify(o)})}))},CREDIT_PAY_DATA_COMPLETED({dispatch:e},{transactionId:t}){return D(this,void 0,void 0,(function*(){return yield j.post("/dataProviding/complete",{transactionId:t})}))},CREDIT_PAY_DATA_FINISH({dispatch:e,rootState:t},{transactionId:a}){return D(this,void 0,void 0,(function*(){const e=window.localStorage.getItem("transaction_to_finish"),n=e?JSON.parse(e):{},o=n[t.account.sub]||[],i=o.map(((e,t)=>()=>D(this,void 0,void 0,(function*(){try{yield j.post("/dataProviding/finish",{transactionId:e}),delete o[t]}catch(a){a instanceof Error&&"Network Error"!==a.message&&delete o[t]}}))));i.push((()=>D(this,void 0,void 0,(function*(){try{yield j.post("/dataProviding/finish",{transactionId:a})}catch(e){if(!(e instanceof Error&&"Network Error"===e.message))throw e;o.push(a)}}))));try{yield Promise.all(i.map((e=>e())))}finally{n[t.account.sub]=o.filter((e=>null!==e)),window.localStorage.setItem("transaction_to_finish",JSON.stringify(n))}}))},CREDIT_PAY_DATA_CANCEL({dispatch:e},{transactionId:t}){return D(this,void 0,void 0,(function*(){return yield j.post("/dataProviding/cancel",{transactionId:t})}))},CREDIT_PF_DEPOSIT({commit:e,state:t},{amount:a,meta:n}){return D(this,void 0,void 0,(function*(){if(!t.providentFund||!1===t.providentFund.enable)return;const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>=t.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield j.post("/providentFund/deposit",{amount:a,meta:n})}))},CREDIT_PF_WITHDRAW(){return D(this,void 0,void 0,(function*(){return yield j.post("/providentFund/withdraw")}))},CREDIT_INIT_DATA({state:e,commit:t,dispatch:a,rootState:n,rootGetters:o}){return D(this,void 0,void 0,(function*(){if(e.isModuleInit)return;t(N.Mutations.CREDIT_SET_INIT_STATE,1),yield E["b"].enable(n.account.sub);const i=()=>D(this,void 0,void 0,(function*(){const e=y["a"].GQL.AwsApiGraphQL.injectAllOperations({}),a=()=>D(this,void 0,void 0,(function*(){const a=yield e.getUser(n.account.sub);t(N.Mutations.CREDIT_UPDATE,{credit:a.credit})})),o=()=>D(this,void 0,void 0,(function*(){const a=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},localStorage.setItem("credit.providentFund",JSON.stringify(e)),e)})(),o=yield e.getProvidentFund(n.account.sub);a.value=(null===o||void 0===o?void 0:o.amount)||0,t(N.Mutations.CREDIT_UPDATE,{providentFund:a})}));yield Promise.all([a(),o()]);const i=e=>new Promise((t=>{const a=Object(E["c"])({query_type:"income"});(()=>{D(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),r=e=>new Promise((t=>{const a=Object(E["c"])({query_type:"expense"});(()=>{D(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),s=e=>new Promise((t=>{const a=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[n,o]=a(),i=Object(E["c"])({query_type:"income",query_params:{createdAt:{oldest:n.toISOString(),latest:o.toISOString()}}});(()=>{D(this,void 0,void 0,(function*(){while(i.hasNext())yield i.fetch(),e(i.getData());t()}))})()}));Promise.all([i((e=>t(N.Mutations.CREDIT_UPDATE,{incomeTransactions:Object.values(e)}))),r((e=>t(N.Mutations.CREDIT_UPDATE,{expensesTransactions:Object.values(e)}))),s((e=>t(N.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:Object.values(e)})))])}));yield i(),E["b"].addHandlers({credit_changed:a=>{var n;return t(N.Mutations.CREDIT_UPDATE,{credit:(null!==(n=e.credit)&&void 0!==n?n:0)+a})},dp_expense_txn:a=>{const n=e.expensesTransactions.find((e=>e.id===a.id));n?t(N.Mutations.CREDIT_UPDATE_TXN,a):t(N.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]})},dp_income_txn:a=>{const n=e.incomeTransactions.find((e=>e.id===a.id));n?t(N.Mutations.CREDIT_UPDATE_TXN,a):t(N.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]});const o=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[i,r]=o();if(i.getTime()new Date(a.createdAt).getTime()){const n=e.incomeTodayTransactions.find((e=>e.id===a.id));n?t(N.Mutations.CREDIT_UPDATE_TXN,a):t(N.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:[...e.incomeTodayTransactions,a]})}},pf_value_changed:a=>{var n,o;return t(N.Mutations.CREDIT_UPDATE,{"providentFund.value":(null!==(o=null===(n=e.providentFund)||void 0===n?void 0:n.value)&&void 0!==o?o:0)+a})},pf_deposit_txn:a=>t(N.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]}),pf_withdraw_txn:a=>t(N.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]})},i),E["a"].enable({rootState:n,rootGetters:o,dispatch:a}),t(N.Mutations.CREDIT_SET_INIT_STATE,2)}))},CREDIT_CLEAR_DATA({commit:e,state:t}){return D(this,void 0,void 0,(function*(){2===t.isModuleInit&&(e(N.Mutations.CREDIT_SET_INIT_STATE,1),yield E["b"].disable(),yield E["a"].disable(),e(N.Mutations.CREDIT_CLEAR_DATA),e(N.Mutations.CREDIT_SET_INIT_STATE,0),console.log("credit data cleared"))}))}},W={transactions(e){const{incomeTransactions:t,expensesTransactions:a}=e;return{income:t,expenses:a}},incomeTodayTransactions(e){return e.incomeTodayTransactions}},H={namespaced:!1,state:M,mutations:F,actions:B,getters:W};var V=H,Q=a("508e"),G=a.n(Q),K=a("fb31"),Y=a.n(K),J={hideMenu:!0,autoHide:!1,language:"en-US",darkMode:"system",defaultVideoPlayer:Y.a.fileName,videoCacheTime:1,autoLaunch:!1,restore:!0,autoStartUnfinished:!0,seedSharingRate:!0,seedTime:!1,maximumDownloadNum:5,maximumConnectionsNum:20,saveLinkSeed:!1,unlimited:!0,continuousSeeding:!0,breakpointContinuation:!1,autoJumpToDownload:!0,notifyAfterDownloaded:!1,deleteConfirm:!1,defaultDeleteFiles:!1,uploadSpeed:-1,downloadSpeed:-1,payedUserShareRate:.7,downloadDirectory:"",autoUpload:!1,uploadDirectory:"",unlimitUploadAmount:!1,autoCheckUpdate:!0,useProxyService:!0,trackerSource:[{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt",label:"ngosang_best",cdn:!1},{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt",label:"ngosang_best_ip",cdn:!1}],trackerList:G.a.trackerList,autoUpdateTrackerServiceList:!0,trackerLastUpdateTime:"",listenPort:!1,BTlistenPort:21303,DHTlistenPort:26701,secureOption:"auto",bindMagnetUrl:!1,bindTorrentFile:!1,bindVideoFile:!1,bindVideoExts:{mp4:!1,mkv:!1,avi:!1,mov:!1,wmv:!1,rmvb:!1,flv:!1,webm:!1},bindAudioExts:{mp3:!1,wav:!1,aac:!1,flac:!1,m4a:!1,wma:!1},bindAudioFile:!1,dontAskForAssociate:!1,dontAskForPlayer:!1,userAgent:"",RPCauthorizationkey:"",versionChannel:"stable",githubPAT:"",lastUpdateCheckTime:Date.now(),disableDevTools:!0,minDiskSpace:512e6,autoDownload:!0,forceLogin:!0,libraryShowExplore:"remote",libraryRate:"G",libraryShowAllChannels:!1,libraryPreload:!0,showPreload:!1,downloadWithCellular:!1},Z=a("3fd2"),X=a.n(Z),ee=a("0f0c"),te=a("908d"),ae=a("d558"),ne=a("d710"),oe=a.n(ne),ie=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const re=Object(ee["a"])("version"),se=!re.match(/(internal|web)-dev$/),le=X.a.renderer(),ce=`${oe.a.name}_settings`,de=ge(),ue={UPDATE_SETTINGS(e,t){Object.assign(e,t),localStorage.setItem(ce,JSON.stringify(e))}},_e={updateSettings({commit:e},t){e("UPDATE_SETTINGS",t)},fetchSettings({dispatch:e}){return ie(this,void 0,void 0,(function*(){if(Object(ae["a"])())return new Promise((t=>{const a=localStorage.getItem(ce),o={};o&&(Object.assign(o,JSON.parse(a)),t(JSON.parse(a))),v["a"].once("fetch-settings",(a=>ie(this,void 0,void 0,(function*(){yield e("updateSettings",a),console.log("Fetch from server");for(const e in a)n["a"].set(o,e,a[e]);t(o)})))),v["a"].emit("fetch-settings")}));if(!le){const t=localStorage.getItem(ce),a=ge();return t||(te["b"].is.capacitor&&(a.forceLogin=!1),console.log("\n\n\n\n\n\n\n\n\n\n\n\nset web settings:",a)),yield e("updateSettings",a),a}const t=yield Promise.resolve().then(a.t.bind(null,"1b85",7)).then((e=>e.ipcRenderer.invoke("get-app-settings")));return yield e("updateSettings",t),t}))},set({dispatch:e,state:t},n){return ie(this,void 0,void 0,(function*(){if(Object(i["isEmpty"])(n))return;if(yield e("updateSettings",n),!le)return v["a"].emit("updateSettings",n);const{ipcRenderer:t}=yield Promise.resolve().then(a.t.bind(null,"1b85",7));console.log("set settings");const o=new Promise((e=>{t.once("set_settings_success",((t,a)=>{e(a)}))}));return t.send("set_settings",n),o}))},resetSettings({commit:e,dispatch:t}){if(le)return new Promise((t=>ie(this,void 0,void 0,(function*(){const{ipcRenderer:n}=yield Promise.resolve().then(a.t.bind(null,"1b85",7));n.once("reset_settings",((a,n)=>{console.log(n),e("UPDATE_SETTINGS",n),t(n)})),n.send("reset_settings")}))));{const t=Object(i["cloneDeep"])(J);return e("UPDATE_SETTINGGS",t),t}}},pe={settings(e){return e},isDevMode(e){return!e.disableDevTools||!se}},me={namespaced:!1,state:de,mutations:ue,actions:_e,getters:pe};var he=me;function ge(){const e=Object(i["cloneDeep"])(J),t=`${oe.a.name}_settings`,a="undefined"===typeof localStorage?null:localStorage.getItem(t);if(a){const t=JSON.parse(a);Object.assign(e,t)}return e}const fe={currentVideo:{pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0}},be={CURRENT_VIDEO_URL_MUTATION(e,t){e.currentVideo.url=t},CURRENT_VIDEO_PATH_MUTATION(e,t){e.currentVideo.path=t},CURRENT_VIDEO_SUBTITLE_LIST_MUTATION(e,t){e.currentVideo.subtitleList=t},CURRENT_VIDEO_CURRENT_TIME_MUTATION(e,t){e.currentVideo.currentTime=t},UPDATE_VIDEO_STATUS_MUTATION(e,t){e.currentVideo.status=t},UPDATE_VIDEO_PIP_STATUS_MUTATION(e,t){e.currentVideo.pipStatus=t},UPDATE_VIDEO_UPDATE_PLAYER_MUTATION(e,t){e.currentVideo.updatePlayer=t},SET_REMOTE_PLAY(e,t){e.currentVideo.infoHash=t,e.currentVideo.remotePlay=!0},RESET_INFOHASH(e){e.currentVideo.infoHash=""},RESET_REMOTE_PLAY(e){e.currentVideo.remotePlay=!1},RESET_PLAYER(){fe.currentVideo={pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0,subtitleList:[]}}},ye={currentVideoUrl({commit:e},t){e("CURRENT_VIDEO_URL_MUTATION",t)},currentVideoPath({commit:e},t){e("CURRENT_VIDEO_PATH_MUTATION",t)},currentVideoSubtitleList({commit:e},t){e("CURRENT_VIDEO_SUBTITLE_LIST_MUTATION",t)},currentVideoCurrentTime({commit:e},t){e("CURRENT_VIDEO_CURRENT_TIME_MUTATION",t)},updateVideoStatus({commit:e},t){e("UPDATE_VIDEO_STATUS_MUTATION",t)},updateVideoPIPStatus({commit:e},t){e("UPDATE_VIDEO_PIP_STATUS_MUTATION",t)},updatePlayer({commit:e},t){e("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",t)},remotePlay({commit:e},t){e("SET_REMOTE_PLAY",t)},resetInfoHash({commit:e}){e("RESET_INFOHASH")},resetRemotePlay({commit:e}){e("RESET_REMOTE_PLAY")},resetPlayer({commit:e}){e("RESET_PLAYER")}},ve={video(){return fe.currentVideo.url}},we={namespaced:!1,state:fe,mutations:be,actions:ye,getters:ve};var ke=we,Se=a("9572"),Ce=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const xe=new y["a"].Rest("ABDevRest"),$e={currentRoute:"/library",user:{id:"",name:"",description:"",avatar:""},userLoggedIn:!1,keychainState:{keychainData:{},unset:!0,hash:"",timestamps:{metadata:0},lib:null},followQueue:[]},Te={updateRoute(e,t){e.currentRoute=t},setUser(e,t){e.user=t},setKeychainState(e,t){Object.assign(e.keychainState,t)},addFollowQueue(e,t){e.followQueue.includes(t)||e.followQueue.push(t)},removeFollowQueue(e,t){while(e.followQueue.includes(t))e.followQueue.splice(e.followQueue.indexOf(t),1)}},ze=()=>Ce(void 0,void 0,void 0,(function*(){const e=()=>Ce(void 0,void 0,void 0,(function*(){const t=yield b["a"].currentUserInfo();return t&&t.attributes?t.attributes:yield e()}));return yield e()})),Pe={syncKeychainState({state:e,commit:t}){return Ce(this,void 0,void 0,(function*(){const a=()=>Ce(this,void 0,void 0,(function*(){const e=yield ze();let{"custom:key_metadata":t,"custom:key_lib":a}=e;return t=t?JSON.parse(t):{unset:!0,timestamps:{}},{metadata:t,lib:a}})),n=yield a();if(n){const e=e=>{if(!e.lib)return null;if(e.lib.startsWith("{"))return JSON.parse(e.lib);throw new Error("Failed to parseLib")};t("setKeychainState",{keychainData:n,unset:n.metadata.unset,hash:n.metadata.hash||"",timestamps:n.metadata.timestamps||{},lib:e(n)})}return e.keychainState}))},changeKeychainPassword(e,{oldPassword:t,password:a}){return Ce(this,void 0,void 0,(function*(){if(!t&&!a)throw Error("Invalid arguments");let e;t||(e="from_cognito"),a||(e="to_cognito"),yield xe.post("/keychain/changePassword",{password:t?Se["a"].digestPassword(t):void 0,newPassword:a?Se["a"].digestPassword(a):void 0,type:e})}))},getKeychainCloud({state:e,commit:t,dispatch:a},{password:n,mode:o,keyName:i}){return Ce(this,void 0,void 0,(function*(){const e=()=>Ce(this,void 0,void 0,(function*(){if(!["lib"].includes(i))throw new Error("invalid_keychain_keyname");const e=yield ze().then((e=>!!e[`custom:key_${i}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>Ce(this,void 0,void 0,(function*(){if("cognito_hash"===o){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===o){if(!n)throw new Error("keychain_password_not_found");return Se["a"].digestPassword(n)}throw new Error("invalid_keychain_mode")})))(),r=yield xe.post("/keychain/getKeychain",{password:t,keyName:i});if(!r)throw new Error("password_error");if(["epriv","epub","priv","pub"].some((e=>!r[e])))throw new Error("invalid_key");return console.log("getKeychainFromCloud:",r),r}))},createKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:o,mode:i,keyName:r}){return Ce(this,void 0,void 0,(function*(){const e=()=>Ce(this,void 0,void 0,(function*(){if(!["lib"].includes(r))throw new Error("invalid_keychain_keyname");const e=yield ze().then((e=>!!e[`custom:key_${r}`]));if(e)throw new Error("keychain_data_existed")}));yield e();const t=yield(()=>Ce(this,void 0,void 0,(function*(){if("cognito_hash"===i){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===i){if(!o)throw new Error("keychain_password_not_found");return Se["a"].digestPassword(o)}throw new Error("invalid_keychain_mode")})))();yield xe.post("/keychain/enableLibKey",Object.assign(Object.assign(Object.assign({},"cognito_hash"===i?{}:{password:t}),"cognito_hash"===i?{type:"cognito"}:{}),{keyName:r,keyData:JSON.stringify(n)})).catch(console.log)}))},updateKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:o,mode:i,keyName:r}){return Ce(this,void 0,void 0,(function*(){const e=()=>Ce(this,void 0,void 0,(function*(){if(!["lib"].includes(r))throw new Error("invalid_keychain_keyname");const e=yield ze().then((e=>!!e[`custom:key_${r}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>Ce(this,void 0,void 0,(function*(){if("cognito_hash"===i){const e=yield a("syncKeychainState");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===i){if(!o)throw new Error("keychain_password_not_found");return Se["a"].digestPassword(o)}throw new Error("invalid_keychain_mode")})))();yield xe.post("/keychain/updateKeychain",Object.assign(Object.assign(Object.assign({},"cognito_hash"===i?{}:{password:t}),"cognito_hash"===i?{type:"cognito"}:{}),{keyName:r,keyData:JSON.stringify(n)}))}))},disableKeychainCloud(e){return Ce(this,void 0,void 0,(function*(){yield xe.post("/keychain/disableKeychain")}))}};Object.defineProperty("undefined"===typeof window?global:window,"rest",{get(){return xe}});const Ae={libraryRoute(e){return e.currentRoute},libraryUser(){return $e.user},keychainState(){return $e.keychainState},followQueue(e){return e.followQueue}},Ie={namespaced:!1,state:$e,mutations:Te,actions:Pe,getters:Ae};var qe=Ie,Oe={downloader:m,account:O,credits:V,setting:he,video:ke,library:qe},Ee=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};n["a"].use(o["a"]);const De=new o["a"].Store({modules:Oe,strict:!1});t["a"]=De;Object.defineProperty(global,"vuex",{get(){return De}});const je=e=>["us"].includes(e.toLowerCase());if(Object(h["isElectron"])()){const{ipcRenderer:e}=a("1b85");e.on("app-init",(()=>Ee(void 0,void 0,void 0,(function*(){const e=global["require"]("geoip-country"),t=yield(yield fetch("https://api.ipify.org")).text(),a=e.lookup(t);a&&(console.log("Init user with ip",t,a),je(a.country)&&(console.log(`User country: ${a.country}. Enable secure.'`),De.dispatch("set",{secureOption:"enable"})))}))))}},"55e6":function(e,t,a){"use strict";a("0336")},"571b":function(e,t,a){},"572d":function(e,t){e.exports=require("url")},"586d":function(e,t,a){"use strict";a.r(t),a.d(t,"onGeneralUpdate",(function(){return n})),a.d(t,"onMessage",(function(){return o})),a.d(t,"onUpdateUserFromId",(function(){return i})),a.d(t,"onCreditChange",(function(){return r})),a.d(t,"onUpdateExpensesFromId",(function(){return s})),a.d(t,"onUpdateIncomeFromId",(function(){return l})),a.d(t,"onCreateUser",(function(){return c})),a.d(t,"onUpdateUser",(function(){return d})),a.d(t,"onDeleteUser",(function(){return u})),a.d(t,"onCreateInvitation",(function(){return _})),a.d(t,"onUpdateInvitation",(function(){return p})),a.d(t,"onDeleteInvitation",(function(){return m})),a.d(t,"onCreateMessageTimer",(function(){return h})),a.d(t,"onUpdateMessageTimer",(function(){return g})),a.d(t,"onDeleteMessageTimer",(function(){return f})),a.d(t,"onCreateTransaction",(function(){return b})),a.d(t,"onUpdateTransaction",(function(){return y})),a.d(t,"onDeleteTransaction",(function(){return v})),a.d(t,"onCreateTask",(function(){return w})),a.d(t,"onUpdateTask",(function(){return k})),a.d(t,"onDeleteTask",(function(){return S})),a.d(t,"onCreateProvidentFund",(function(){return C})),a.d(t,"onUpdateProvidentFund",(function(){return x})),a.d(t,"onDeleteProvidentFund",(function(){return $}));const n="\n subscription OnGeneralUpdate($id: String!) {\n onGeneralUpdate(id: $id) {\n id\n channel\n data\n }\n }\n",o="\n subscription OnMessage($channel: String!, $params: String) {\n onMessage(channel: $channel, params: $params) {\n channel\n data\n }\n }\n",i="\n subscription OnUpdateUserFromId($id: String!) {\n onUpdateUserFromId(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",r="\n subscription OnCreditChange($ownerId: String!) {\n onCreditChange(ownerId: $ownerId) {\n ownerId\n amount\n }\n }\n",s="\n subscription OnUpdateExpensesFromId($payerId: String!) {\n onUpdateExpensesFromId(payerId: $payerId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",l="\n subscription OnUpdateIncomeFromId($payeeId: String!) {\n onUpdateIncomeFromId(payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",c="\n subscription OnCreateUser($id: String) {\n onCreateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n subscription OnUpdateUser($id: String) {\n onUpdateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n subscription OnDeleteUser($id: String) {\n onDeleteUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",_="\n subscription OnCreateInvitation($inviterId: String) {\n onCreateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n subscription OnUpdateInvitation($inviterId: String) {\n onUpdateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n subscription OnDeleteInvitation($inviterId: String) {\n onDeleteInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",h="\n subscription OnCreateMessageTimer {\n onCreateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n subscription OnUpdateMessageTimer {\n onUpdateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n subscription OnDeleteMessageTimer {\n onDeleteMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",b="\n subscription OnCreateTransaction($payerId: String, $payeeId: String) {\n onCreateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n subscription OnUpdateTransaction($payerId: String, $payeeId: String) {\n onUpdateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n subscription OnDeleteTransaction($payerId: String, $payeeId: String) {\n onDeleteTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n subscription OnCreateTask {\n onCreateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n subscription OnUpdateTask {\n onUpdateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n subscription OnDeleteTask {\n onDeleteTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",C="\n subscription OnCreateProvidentFund($id: String) {\n onCreateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n subscription OnUpdateProvidentFund($id: String) {\n onUpdateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",$="\n subscription OnDeleteProvidentFund($id: String) {\n onDeleteProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},5960:function(e,t,a){},5984:function(e,t,a){},"5a2f":function(e,t,a){"use strict";a("7447")},"5ab7":function(e,t,a){"use strict";a("3361")},"5ae9":function(e,t){e.exports=require("crypto")},"5bb9":function(e,t,a){"use strict";a("cf6e")},"5ccc":function(e,t,a){},"5d03":function(e,t,a){},"5d61":function(e){e.exports=JSON.parse('{"lib_index":"Дом","lib_edit":"Публиковать","lib_publish":"Публиковать","lib_explore":"Исследовать","lib_following":"Следующий","lib_favorite":"Местные избранные","lib_local_favorites":"Местные избранные","lib_channel":"Канал","lib_submit":"Представлять на рассмотрение","lib_from_network":"Использование децентрализованной базы данных из сети","welcome_to_lib":"Добро пожаловать в ${displayName} Медиатеку","register_or_login":"Регистрация Войти","lib_recommend":"Рекомендовать","lib_recommend_desc":"Добро пожаловать в библиотеку ${displayName}! Эта библиотека использует децентрализованную базу данных из сети. Чтобы начать использовать его, вам нужно следить за некоторыми каналами.","follow_any_channel_to_continue":"Подпишитесь на любой канал, чтобы продолжить","follow_channels_and_continue":"Следите за каналами {0} и продолжайте","show_more_for_me":"Показать больше для меня","no_more_recommend":"Больше не рекомендую","key":"Ключ","create_key":"Создать ключ","save_key":"Сохранить ключ","save_key_file":"Вы хотите сохранить свой ключ в виде файла?","import_key":"Ключ импорта","import":"Импортировать","invalid_key":"Неправильный ключ","back_to_top":"Наверх","search_for_channel":"Поиск идентификатора канала","search_channel_no_result":"Не удается найти канал с идентификатором {0}","please_input_channel_id":"Пожалуйста, введите идентификатор канала","welcome_help_text":"Это децентрализованная медиатека. Тебе нужно\\n создать учетную запись для этой базы данных. Мы будем\\n автоматически сгенерирует для вас персональный ключ.\\n Если у вас уже есть ключ, вы также можете импортировать\\n это здесь.","welcome_key_text":"После входа в систему нажмите кнопку [СОХРАНИТЬ КЛЮЧ].\\n в правом нижнем углу, чтобы сохранить закрытый ключ.\\n Если вы потеряете свой ключ, вы не сможете снова войти в систему.","redirect_to_recommend":"Кажется, вы не следили за каким-либо каналом. Перенаправление на страницу [Обзор].","channel":"Канал","follow":"Следовать","unfollow":"Отписаться","following":"Следующий","share":"Делиться","unfollow_confirm":"Вы уверены, что хотите отписаться от этого канала? Все сообщения этого канала в вашей хронике будут удалены.","follow_failed_hint":"Операция все еще выполняется в фоновом режиме. Если операция не применяется в течение длительного времени, перезапустите приложение и повторите попытку.","block":"Блокировать","unblock":"Разблокировать","blocked":"Заблокировано","block_channel":"Заблокировать этот канал","block_channel_confirm":"Заблокировать канал удалит его из вашей временной шкалы. Вы можете управлять своим черным списком в настройках учетной записи.","block_creator":"Заблокировать создателя этого канала","unblock_creator":"Разблокировать создателя этого канала","block_creator_confirm":"Создатель блока удалит все каналы, созданные этим создателем, из вашей хроники. Вы можете управлять своим черным списком в настройках учетной записи.","share_url_copied":"URL-адрес общего доступа скопирован в буфер обмена","follow_time":"Следите за временем","update_time":"Время обновления","search":"Поиск","type":"Тип","added":"Добавлен","click_to_task":"Нажмите, чтобы перейти к задаче","lib_already_added":"Вы уже добавили это видео","description":"Описание","poster":"Плакат","channel_poster":"Афиша канала","preview":"Предварительный просмотр","creator":"Создатель","creator_detail":"Сведения о создателе","loading_creator":"Загрузка информации о создателе","wait_for_creator_loaded":"Подождите, пока загрузится информация о создателе.","follower":"Последователь","followers":"Последователи","follower_list":"Список подписчиков","user":"Пользователь","channel_title":"Название канала","channel_id":"Идентификатор канала","post_title":"Заголовок поста","post_id":"Идентификатор сообщения","import_data_from_excel":"Импортировать данные из excel","set_excel_keys":"Установить клавиши Excel","excel_import_succeded":"Импорт Excel выполнен успешно","excel_import_success_msg":"Строки {0} готовы к добавлению, {1} недействительны, а повторяющиеся элементы {2} игнорируются.","cannot_find_channel":"Не могу найти канал","cannot_find_posts":"Не могу найти сообщения","add_channel":"Добавить канал","add_post":"Добавить сообщение","edit_channel":"Изменить канал","channel_setting":"Настройка канала","edit_post":"Редактировать пост","edit_posts":"Редактировать сообщения","channel_detail":"Сведения о канале","remove":"Удалять","remove_channel":"Удалить канал","remove_channel_confirm":"Вы уверены, что хотите удалить этот пост? Это не может быть восстановлено.","remove_post":"Удалить сообщение","remove_post_confirm":"Вы уверены, что хотите удалить этот канал? Это не может быть восстановлено.","preview_mode":"Режим предварительного просмотра","preview_mode_desc":"Это предварительный просмотр вашего канала. Здесь показаны все рейтинги фильмов.","edit_user_profile":"Изменить профиль пользователя","name":"Псевдоним","avatar":"Аватар","no_following":"Нет следующих каналов. Нажмите, чтобы перейти","no_recommend":"Нет рекомендуемых каналов. Нажмите, чтобы перейти","first_recomment_msg":"Это может занять некоторое время, если это первое приложение, которое запускается.","invalid_image":"Недопустимое изображение","image_not_reachable":"URL этого изображения недоступен.","channel_not_found":"Канал не найден","cannot_get_channel_info":"Не могу получить информацию о канале. Этот канал может быть удален его создателем и больше недоступен.","validate_error":"Подтвердить ошибку","validate_user_name_no_space":"Имя пользователя не должно содержать пробелов","validate_url_no_space":"URL не должен содержать пробелов","validate_user_name_length":"Имя пользователя должно иметь длину от {0} до {1}.","validate_user_desc_length":"Описание пользователя не должно превышать {0} символов.","validate_user_avatar_url":"Аватар пользователя должен быть URL длиной менее 2048 символов.","validate_channel_title_length":"Название канала должно иметь длину от 1 до 100.","validate_channel_desc_length":"Описание канала должно иметь длину от 10 до 300","validate_channel_image_url":"URL-адрес предварительного просмотра канала должен содержать менее 2048 символов.","validate_post_title_length":"Заголовок сообщения должен иметь длину от 1 до 100.","validate_post_desc_length":"Описание поста должно иметь длину от 10 до 300","validate_post_image_url":"Плакат должен быть URL-адресом, содержащим менее 2048 символов.","validate_post_url":"Недействительный URL-адрес ${displayName}","validate_post_url_length":"${displayName} Длина URL не должна превышать 2048 символов.","film_rate":"Скорость фильма","set_film_rate":"Установить скорость фильма","select_a_rate_before_enter":"Перед входом в медиатеку необходимо выбрать скорость фильма.","library_available_rate":"Доступная в библиотеке скорость фильма","rate_g":"G – обычная аудитория","rate_g_desc":"Допускаются все возрасты. Ничего, что могло бы обидеть родителей за просмотр детьми.","rate_pg":"PG – рекомендуется родительский контроль","rate_pg_desc":"Некоторые материалы могут не подходить для детей. Родителей призвали дать «родительское руководство». Может содержать некоторые материалы, которые родителям могут не понравиться для их маленьких детей.","rate_pg_13":"PG-13 – Родители строго предупреждены","rate_pg_13_desc":"Некоторые материалы могут быть неприемлемы для детей младше 13 лет. Родителям настоятельно рекомендуется быть осторожными. Некоторые материалы могут быть неподходящими для подростков.","rate_r":"R - Ограничено","rate_r_desc":"До 17 лет требуется сопровождающий родитель или взрослый опекун. Содержит материалы для взрослых. Родителям настоятельно рекомендуется узнать больше о фильме, прежде чем брать с собой маленьких детей.","rate_nc_17":"NC-17 – Только для взрослых","rate_nc_17_desc":"Никто в возрасте 17 лет и младше не допускается. Явно взрослый. Дети не допускаются.","set_as_private":"Установить как личное","hide_in_explore":"Скрыть этот канал на странице исследования","hidden":"Скрытый","select_a_rate":"Пожалуйста, выберите рейтинг фильма","select_from_tasks":"Выбрать из задач","import_from_magnet":"Импорт из магнита:?...","input_magnet_url":"Входной магнит:? URL","task_title":"Название задачи","set_title":"Установить заголовок","add_to_local_favorites":"Добавить в избранное","remove_from_local_favorites":"Удалить из местных избранных","removed_favorite":"Удалено из избранного","import_or_export_favorites":"Импорт/экспорт избранного","export_local_favorites":"Экспорт локального избранного в качестве резервной копии","import_favorites_file":"Импорт файла избранного","not_a_favorite_file":"Этот файл не является любимым файлом резервной копии","connection_status":"Состояние подключения","gun_server_list":"Узлы кэша","custom_nodes":"Пользовательские узлы кэша","custom_nodes_hint":"Пользовательские узлы кэша будут применены после перезапуска приложения.","wait_for_reboot":"Ожидание перезагрузки...({seconds}s)","reboot_now":"Перезагрузить сейчас","reboot_later":"Перезагрузить позже","peer_list":"Прямые узлы","server":"URL-адрес узла","peer":"Вглядеться","peer_id":"Идентификатор узла","connection":"Связь","data_source":"Источник данных","sync":"Синхронизировать","syncing":"Синхронизации","sync_completed":"Синхронизация завершена","got_all_post":"Вы уже получили все сообщения","placeholder_channel_title":"Название вашего канала","placeholder_channel_desc":"Описание этого канала","placeholder_post_title":"Название фильма (год)","placeholder_post_desc":"Описание этого фильма","private_channel":"Частный канал","creator_blocked":"Создатель заблокирован","go_to_library":"Идти в библиотеку?","go_to_library_channel_msg":"Хотите перейти на библиотечный канал {0}?","magnet_does_not_have_name":"Этот магнит:? URL-адрес не имеет имени, вам нужно сначала добавить заголовок сообщения.","no_available_post":"Нет доступной записи","following_channel_no_post":"На всех ваших следующих каналах нет доступных сообщений. Это может быть вызвано сетевой ошибкой. Если вы уже подписались на некоторые каналы, сообщения могут быть загружены позже.","share_to_library":"Поделиться в библиотеке","quick_start":"Быстрый старт","quick_start_desc":"Начните создавать пост с заданием или файлом","select_file":"Выберите файл...","select_folder":"Выберите папку...","post_options":"Параметры публикации","channel_options":"Параметры канала","create_new_channel":"Создать новый канал","use_existed_channel":"Использовать существующий канал","select_existed_channel":"Выберите существующий канал","uploaded_by":"{title} загружено пользователем {name}","created_by":"{title} создано {name}","creating_new_channel":"Создание нового канала...","created_new_channel":"Создан новый канал","creating_new_post":"Создание нового поста...","created_new_post":"Создан новый пост","create_new_post":"Создать новый пост","quick_start_timeout":"{0} тайм-аут. Это может быть вызвано сетевой ошибкой. Пожалуйста, повторите попытку позже.","file_too_large":"Файл слишком большой","file_too_large_msg":"Размер этого файла превышает 4 ГБ ({size}), и его подготовка может занять много времени. Вы уверены, что хотите продолжить?","resolving_folder_files":"Разрешение файлов папки...","folder_too_large":"Папка слишком большая","folder_too_large_msg":"Размер файлов в этой папке превышает 4 ГБ (всего {size}), поэтому подготовка задачи может занять много времени. Вы уверены, что загрузите?","creating_new_task":"Создание новой задачи...","cannot_create_task":"Не могу создать задачу","cannot_create_task_msg":"Это может быть вызвано некоторой ошибкой. Если задача создана правильно, вы можете проверить список задач позже.","cannot_get_task_name":"Не удается получить имя задачи. Сначала вам нужно ввести один.","remove_old_task":"Удалить старую задачу","remove_old_task_desc":"В веб-режиме можно создать только одну задачу за раз. Удалить старую задачу?","subtitle_list":"Список субтитров","optional":"необязательный","with_subtitle":"С субтитрами {language}","maximumSubtitleNum_limit":"Количество субтитров достигло своего максимума","add_subtitle_url":"Добавьте ссылку на скачивание субтитров","cannot_add_subtitle":"Не удалось добавить субтитры","cannot_add_subtitle_msg":"Не выбран язык субтитров или недействительная ссылка для скачивания.","support_subtitle_type":"Поддерживаются только субтитры в формате srt и vtt.","recommend_opensubtitles":"Рекомендуется использовать ссылку или идентификатор загрузки субтитров на www.opensubtitles.org.","take_down":"Снять","serious_violation":"Серьезное нарушение","copyright_disputes":"Споры об авторских правах","adults_only":"Только для взрослых","takedown_reason":"Причина удаления","takedown_mode":"Режим тейкдауна","admins":"Админы","takedown_user":"Удалить этого автора","takedown_channel":"Удалить этот канал","takedown_post":"Удалить этот пост","select_takedown_reason":"Выберите причину удаления","takedown_invalid_reason":"Неверная причина удаления","takedown_invalid_user_id":"Недопустимый идентификатор пользователя. Идентификатор должен содержать 87 символов.","takedown_invalid_channel_id":"Недопустимый идентификатор канала. ID должен содержать 20 символов.","takedown_invalid_post_id":"Неверный идентификатор сообщения. ID должен содержать 20 символов.","takedown_management":"Снять управление","users":"Пользователи","channels":"каналы","posts":"Сообщения","you":"Ты","preset":"Предустановка","admin":"Администратор","committee":"комитет","about_takedown_mode":"О режиме удаления:\\nПредустановка: настроена в репозитории github. Все они будут удалены из библиотеки.\\nАдминистратор: Любой из админов, за которого проголосовали, будет удален.\\nКомитет: Не менее половины админов проголосовали за удаление.","cannot_edit_preset":"Вы не можете редактировать эту строку, так как это предустановленная строка.","cannot_edit_not_vote":"Вы не можете редактировать эту строку, так как вы не проголосовали за нее","remove_vote":"Удалить свой голос","post_preload_failed":"Не удалось предварительно загрузить это сообщение. Ссылка для скачивания может быть устаревшей, поэтому этот пост нельзя воспроизвести сразу.","about_cache_node":"Об узле кеша","edit_cache_node":"Изменить узел кеша","create_cache_node":"Создать кеш-узел","about_cache_node_desc":"${displayName} использует пушечный сервер в качестве кеш-узла. Вы можете редактировать пользовательские узлы в предварительной настройке","learn_how_to_deploy_gun":"Узнайте, как развернуть собственный оружейный сервер","repeat_add":"Задача добавлена, больше не добавляйте","upload":"Загрузить","download":"Скачать","delete":"Удалить","delete_task":"Удалить задачу","delete_confirm_message":"Удалить эту задачу? Это необратимо","also_delete_files":"Также удалить файлы","default_delete_files":"Удаление загруженных файлов по умолчанию после удаления задачи","not_now":"Не сейчас","delete_autoupload_confirm":"Эта задача содержит файл, который вы поместили в каталог автозагрузки. Удаление этой задачи также приведет к удалению файла.","delete_anyway":"Все равно удалить","upload_too_many_files":"Загрузить слишком много файлов","ask_if_unlimit_upload_amount":"Каталог автозагрузки содержит слишком много файлов. Вы хотите отключить ограничение суммы загрузки? * Это может вызвать проблемы с производительностью","disable_limitation":"Отключить ограничение","not_length":"Работа с несколькими файлами в настоящее время не поддерживается. Пожалуйста, сотрудничайте","download_torrent":"Загрузить файл","upload_torrent":"Загрузить файл","files":"Файлы","file":"Файл","folder":"Папка","start_all":"Начать все","pause_all":"Приостановить все","remove_all":"Убрать все","upload_all":"Загрузить все","clear_history":"Чистая история","pause_all_finish_payments":"На этом все платежи закончатся.","accelerating":"Ускорение","link_task":"Связать задачу","torrent_task":"Файловая задача","ok":"ХОРОШО","cancel":"Отмена","download_directory_position":"Загрузить положение каталога","torrent_file":"файл задачи","magnetic_link_incorrect":"Неверный формат ссылки","delete_fail":"Удалить не удалось","pause":"Пауза","paused":"Приостановлено","stop_torrent":"Останавливаться","seed":"Семя","resume":"Резюме","downloading":"Загрузка","downloaded":"Скачано","uploading":"Загрузка","auto_uploading":"Автоматическая загрузка","uploaded":"Загружено","pending":"Жду других задач","verifying":"Проверка","waiting_for_verify":"Ожидание проверки","seeding":"Посев","completed":"Завершенный","status":"Положение дел","task_name":"Название задачи","size":"Размер","progress":"Прогресс","sort":"Сортировать","ascending":"Восходящий","descending":"По убыванию","file_loading":"Загрузка файла...","loading":"Загрузка","unknown_status":"Неизвестный","play_while_downloading":"Играть...","upload_or_play":"Загрузить / Воспроизвести","play":"Играть","ask_if_upload_file":"Загрузить файл?","ask_if_upload_or_play":"Загрузить или воспроизвести файл?","torrent_error":"Ошибка при добавлении задачи:","no_peers":"Повторите попытку более {0} раз, и нет доступных одноранговых узлов","torrent_exists":"Задача уже существует.","show_origin_torrent":"Получить исходный файл задачи или URL-адрес","show_directory":"Открыть каталог этого торрента","task_num":"Задания","total_upload_speed":"Скорость загрузки","total_download_speed":"Скорость загрузки","path_missing":"Ошибка: не удается найти торрент-путь","origin_not_found":"Не удается найти информацию об исходной задаче.","text_copied":"URL Magnum скопирован в буфер обмена","copy_magnet_uri":"Копировать магнит:? URI","copy_download_uri":"Скопировать URI загрузки","copy_share_uri":"Скопировать общий URI","uri_copied":"URI успешно скопирован в буфер обмена","uri_copy_failed":"Не удалось скопировать uri","more":"Более...","toggle_list_mode":"Переключить режим списка","comment":"комментарий","operations":"Операции","open_directory":"Открыть каталог","no_downloading_task":"Нет задачи загрузки","remove_all_downloading_tasks":"Удалить все задачи загрузки?","remove_all_upload_tasks":"Удалить все задачи загрузки?","remove_autoupload_files":"Убрать автозагрузку файлов","remove_all_history":"Удалить всю историю?","remaining":"Оставшийся","created_time":"Время создания","used_time":"Использованное время","completed_time":"Завершенное время","yesterday":"Вчера","before_yesterday":"{empty}","earlier":"Ранее","miss_file":"Некоторые файлы отсутствуют","delete_miss_file_task":"Отсутствуют файлы fome в {0}.","common_peer":"Общий пир","ab_peer":"${displayName} коллега","ab_peer_verified":"Подтвержденный партнер ${displayName}","ab_peer_available":"${displayName} доступный пир(ы)","alphabiz_accelerating":"${displayName} ускорение","income":"Доход","income_info":"Доход(сегодня/всего)","total_income_info":"Доход: {0}(сегодня) / {1}(всего)","login_to_see_income":"Войдите, чтобы увидеть статистику доходов","credit_cost":"Стоимость кредита","downloaded_by_payment":"Скачано платежами","file_not_found":"Не удается найти этот файл в локальной","no_task":"Не спрашивай","no_matched_task":"Нет подходящей задачи","space_not_enough":"Недостаточно места на диске","need_more_space":"Требуется больше места на {0}, но на текущем диске свободно {1} (зарезервировано {2}). Задачи приостановлены. Предварительная загрузка библиотеки отключена. Вы можете снова включить его в [Настройки - Дополнительные].","seeders":"Сеялки","last_update":"Последнее обновление","connecting":"Подключение","connected":"Связанный","request_timed_out":"Истекло время запроса","connection_failed":"Ошибка подключения","invalid_download_url":"Неверный URL-адрес загрузки","download_link":"ссылка для скачивания","empty_files":"Нет файлов в каталоге","duplicate_task":"Дублировать задачу","duplicate_tracker":"Дублирующий трекер","this_task_not_ready":"Эта задача не готова. Приостановка этой задачи приведет к ее непосредственному удалению.","some_task_not_ready":"Некоторые задачи не готовы. Приостановка этих задач приведет к их непосредственному удалению.","failed_to_delete_files":"Не удалось удалить файлы","failed_to_delete_files_desc":"Не удалось удалить некоторые файлы задания. Возможно, вам придется удалить их вручную","unknown_error":"Неизвестная ошибка: {0}","more_files_are_not_shown":"({0} дополнительные файлы не отображаются из соображений производительности)","no_available_file":"Нет доступного файла. Пожалуйста, дождитесь готовности задачи.","service_worker_error":"Не удается загрузить ServiceWorker для игры. Возможно, ваш браузер не поддерживает эту функцию, или ServiceWorker не активирован. Возможно, вам придется перезагрузить эту страницу и повторить попытку.","add_task_first":"Сначала нужно добавить задачу.","player_task_time":"Игрок слишком долго готовится к игре. Возможно, что-то не так с заданием.","web_mode_hint":"Веб-режим ${displayName} поддерживает только одноранговые узлы WebRTC. Для получения наилучших результатов загрузите настольное приложение ${displayName}.","web_mode_task_hint":"Нажмите кнопки ниже, чтобы добавить задачу. Вы можете добавить только одну задачу за один раз.","save_to_local":"Сохранить в локальном","save_as_zip":"Сохранить как ZIP","creating_save_file":"Создание файла сохранения...","upload_as_one_directory":"Загрузить как один каталог","upload_as_single_files":"Загружать отдельными файлами","web_mode_upload_single":"Вы можете загрузить только один файл в веб-режиме","download_success":"Скачать успешно","download_fail":"Загрузка не удалась","wait_for_downloaded_to_share":"Пожалуйста, дождитесь загрузки задания, прежде чем делиться им.","download_with_cellular":"Скачивайте задания с помощью сотовой связи","download_with_cellular_desc":"Вы используете сотовую сеть. Загрузка задач с помощью сотовой связи может взимать дополнительную плату с вашего оператора связи.","download_with_cellular_confirm":"Еще скачать с сотовой связи","language":"Язык","appearance":"Появление","darkModeSystem":"Система","darkModeLight":"Свет","darkModeDark":"Темный","basic_setting":"Базовый","hideMenu":"Скрыть меню приложений (только для Windows и Linux)","autoHide":"Автоматическое скрытие окна","autoStart":"Открыть при входе","restore":"Сохранять размер и положение окна при выходе","autoStartUnfinished":"Автоматически возобновлять все незавершенные задачи","default_download_path":"Путь по умолчанию","download_directory":"Скачать каталог","upload_directory":"Загрузить каталог","enable_auto_upload":"Включить автоматическую загрузку","unlimit_upload_amount":"Неограниченная сумма загрузки","unlimit_upload_warning":"Разрешить загружать большое количество файлов. Это может вызвать проблемы с производительностью","start":"Запускать","transport_setting":"Передача инфекции","upload_limit":"Лимит загрузки","download_limit":"Лимит загрузки","payed_user_share_rate":"Доля оплаченных пользователей","unlimited":"Неограниченный","limit_input_error":"Число лимита должно быть положительным","BT_setting":"Параметры задачи","saveLinkSeed":"Сохранить ссылку как файл задачи","autoDownload":"Автоматически загружать ссылку и контент","continuousSeeding":"Продолжайте заполнение, пока не остановите его вручную","seedSharingRate":"Соотношение семян","seedTime":"Начальное время (минуты)","task_manage":"Управление задачами","maximumDownloadNum":"Максимальное количество активных задач","maximumConnectionsNum":"Максимальное количество подключений на сервер","range_error":"Диапазон должен быть между {0} и {1}.","random":"случайный","breakpointContinuation":"Продолжать","automaticSkip":"Автоматически показывать загрузку после добавления задачи","afterNotification":"Уведомление после завершения загрузки","deleteConfirm":"Перед удалением задачи не требуется подтверждение","submit":"Сохранить и применить","discard":"Отказаться","reset":"Перезагрузить","reset_all_settings":"Сбросить все настройки?","preferences_resetted":"Настройки сброшены","traditional_chinese":"традиционный китайский","japanese":"Японский","english":"Английский","chinese":"Упрощенный китайский","advancedSettings":"Передовой","autoUpdate":"Автоматическое обновление","autoCheckUpdate":"Автоматически проверять наличие обновлений","proxy":"Прокси","useProxyService":"Включить прокси","trackerService":"Трекерные серверы","recommendUse":"рекомендуемые","autoUpdateTrackerServiceList":"Автоматически обновлять список трекеров каждый день","manualUpdateTracker":"Ручное обновление","manualUpdateSuccess":"Успешно обновить серверы отслеживания","manualUpdateFail":"Не удалось обновить с:","listenPort":"Прослушивание портов","BTlistenPort":"Порт передачи данных","DHTlistenPort":"Распределенный хэш-порт","protocols":"Совместимые протоколы","setDefaultClientForFollowingProtocols":"Установить в качестве клиента по умолчанию для следующих протоколов","magnetUrl":"Магнит","video_file":"Видеофайл","audio_file":"Аудиофайл","security":"Безопасность","impersonateUserAgent":"Имитация пользовательского агента","RPCauthorizationkey":"Секрет RPC","viewDocument":"Посмотреть секретное руководство RPC","developer":"Разработчик","applicationLogPath":"Путь к журналу приложения","downloadSessionPath":"Скачать путь сеанса","resetDownloadSessionRecord":"Сбросить сеанс загрузки","restoreInitialSettings":"Сброс к заводским настройкам","preferences_set_successfully":"Сохраните настройки успешно!","preferences_set_fail":"Не удалось сохранить настройки!","change_not_save":"Изменения не сохраняются","discard_all_changes":"Отменить все изменения и уйти?","stay_in_page":"Оставайтесь на странице","disk_usage":"Использование диска","pause_if_less_space":"Пауза и уведомление, если места меньше (МБ)","default_video_player":"Видеопроигрыватель по умолчанию","video_cache_time":"Кэш потокового воспроизведения","minutes":"минуты","system_default":"Системные установки по умолчанию","media_player":"Медиа плеер","library_film_rate":"Доступная скорость фильма","library_show_explore":"Показать страницу [Исследовать]","library_setting":"Настройка библиотеки","library_sync_setting":"Настройка синхронизации библиотеки","keychain_sync_status":"Статус синхронизации связки ключей","sync_with_aws":"Синхронизируйте связку ключей с Amazon Web Services","backup_to_local":"Резервное копирование в локальный файл","enable_sync_with_aws":"Включить синхронизацию с AWS","disable_sync_with_aws":"Отключить синхронизацию с AWS","disable_sync_with_aws_desc":"Это удалит сохраненный ключ на сервере. Пожалуйста, убедитесь, что вы уже экспортировали свой ключ.","input_independent_password":"Введите независимый пароль","change_independent_password":"Изменить независимый пароль","password_error":"Ошибка пароля","password_invalid":"Неверный пароль","key_existed":"Ключ существовал","key_not_found":"Ключ не найден","library_recommend":"Библиотека рекомендует","show_all_channels":"Показать все каналы на странице рекомендаций библиотеки","not_logged_in":"Не вошел","login_to_continue":"Войдите, чтобы продолжить","mnemonic_code":"Мнемонический код","wordlist":"Список слов","restore_code":"Восстановить из кода","generate_code":"Сгенерировать код","export_mnemonic_code":"Экспорт мнемонического кода","import_mnemonic_code":"Импорт мнемонического кода","print":"Распечатать","save_as_txt":"Сохранить как текст","save_as_pdf":"Сохранить как PDF","from_file":"Из файла","not_valid_mnemonic_code":"Это неверный мнемонический код.","cannot_parse_code_as_key":"Не удается разобрать этот мнемонический код как библиотечный ключ","import_key_hint":"Вы уверены, что хотите импортировать этот ключ? Это восстановит ваш старый ключ в библиотеке.","import_key_confirm":"Да, импортировать.","library_preload":"Предварительно загрузить задачи из библиотеки","show_preload":"Показать задачи предварительной загрузки","set_download":"Установить каталог загрузки","set_download_desc":"Для версии App Store для macOS каталог загрузки по умолчанию находится в песочнице приложения и будет удален после удаления приложения. Если вы хотите сохранить загруженные файлы, вам нужно выбрать другой каталог загрузки вручную.","home":"Дом","home_caption":"Загрузка/выгрузка и медиафайлы","library":"Библиотека","library_caption":"Исследуйте медиа-ресурсы","player":"Игрок","player_caption":"Медиа плеер","credits":"Кредиты","credits_caption":"Проверить баланс счета","account":"Счет","account_caption":"Войти/Зарегистрироваться/Управление","settings":"Настройки","settings_caption":"Настройки для приложения, плеера, учетной записи","development":"Разработка","development_caption":"Режим разработчика для внутреннего использования","basic":"Базовый","basic_caption":"Базовые настройки","advanced":"Передовой","advanced_caption":"Расширенные настройки","blockchain":"Кошелек","blockchain_caption":"${displayName} Децентрализованный кошелек","internal_notice":"Уведомление о внутреннем выпуске","release_notes":"Примечания к выпуску","terms_and_conditions":"Условия и положения","license_and_listen_notices":"Лицензия и прослушивание уведомлений с открытым исходным кодом","close":"Закрывать","success":"Успех","fail":"Неудача","account_email_invalid_address":"Неверный адрес электронной почты","account_email_invalid_domain":"Недействительный домен электронной почты","account_email_unknown_status":"Неизвестный статус доставки электронной почты","account_email_unavailable_address":"Недоступный адрес электронной почты","account_email_suppressed_address":"Заблокированный адрес электронной почты","account_loading":"Загрузка...","account_is_required":"требуется","account_sign_in_your_account":"Войти","account_username":"Имя пользователя","account_username_email_phone":"Номер телефона или электронная почта","account_password":"Пароль","account_new_password":"Новый пароль","account_re_enter_password":"Повторно введите пароль","account_password_not_equal":"Два пароля не равны","account_new_password_same":"Пароль такой же, как исходный пароль","account_forgot_your_password":"Забыли пароль?","account_reset_password":"Сброс пароля","account_sign_in":"Войти","account_signed_in":"Вошел","account_sign_up":"Зарегистрироваться","account_find_your_account":"Найти ваш аккаунт","account_enter_your_username":"Введите свой номер телефона или адрес электронной почты","account_search":"Поиск","account_email_sent_tip":"На вашу электронную почту отправлено письмо с кодом подтверждения:","account_phone_sent_tip":"На ваш телефон отправлено SMS с кодом подтверждения:","account_email_phone_sent_tip":"Электронное письмо и SMS с кодом подтверждения были отправлены на ваш адрес электронной почты и телефон соответственно:","account_software_token_tip":"Для вашей учетной записи включена функция MFA. Чтобы завершить вход, включите или просмотрите свое устройство и введите TOTP.","account_reset_your_password":"Сбросить пароль","account_verification_code":"Проверочный код","account_resend_code":"Отправить код еще раз","account_code_has_been_resent":"Код подтверждения отправлен повторно","account_password_has_been_reset":"Пароль был сброшен","account_submit":"Представлять на рассмотрение","account_sign_up_your_account":"Зарегистрируйтесь","account_fill_required_fields":"Заполните необходимые поля ниже.","account_fill_optional_fields":"Заполните необязательные поля ниже.","account_email":"Электронная почта","account_invitation":"Приглашение","account_invitation_code":"Код приглашения","account_i_accept":"Я принимаю","account_license_terms":"лицензия и условия","account_next":"Следующий","account_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия.","account_verify_fill_optional_fields":"Проверьте и заполните необязательные поля.","account_nickname":"Псевдоним","account_gender":"Пол","account_male":"Мужской","account_female":"Женский","account_not_say":"Не сказать","account_birthday":"День рождения","account_phone_number":"Номер телефона","account_locale":"Местный","account_tip_verified":"Подтверждено, вход...","account_verified":"проверено","account_unverified":"непроверенный","account_signed_up":"Подписали","account_verify_your_identity":"Подтвердите вашу личность","account_finish":"Заканчивать","account_signed_out":"Вышел","account_change_password":"Изменить пароль","account_change_email":"Изменить e-mail","account_change_phone_number":"Изменить номер телефона","account_sign_out":"выход","account_current_password":"Текущий пароль","account_re_enter_new_password":"Повторно введите новый пароль","account_personal_information":"Информация","account_edit":"редактировать","account_reset":"перезагрузить","account_greeting":"Привет,","account_cancel":"Отмена","account_change":"изменять","account_not_set":"не задано","account_setting":"параметр","account_copy_code":"скопируйте код","account_account_setting":"Счет","account_task_page":"Кредитная задача","account_setting_caption":"Изменить пароль/редактировать информацию","account_security":"Безопасность","account_want_to_join":"Хочу присоединиться?","account_sign_in_now":"Войти","account_changed":"Измененный","account_clipboard_with_invitation_code":"Код приглашения скопирован","account_clipboard_with_code":"Код скопирован","account_invitation_code_dialog_tip":"Вы отправите другу электронное письмо или текстовое сообщение с кодом приглашения:","account_available":"доступный","account_invited":"приглашенный","account_used":"использовал","account_invitation_code_sent":"Пригласительный код отправлен","account_invitation_channel_required":"Заполните хотя бы один канал приглашения","account_no_verification_code":"Не можете получить код подтверждения?","account_no_phone_number":"Нет номера телефона?","account_sign_up_by_email":"Зарегистрироваться по электронной почте","account_no_email":"Нет электронной почты?","account_sign_up_by_phone_number":"Запись по номеру телефона","account_no_totp":"Нет ТОТП?","account_tip_no_totp":"Если нет TOTP, сначала настройте TOTP","account_setup_totp":"Настройка ТОТП","account_contact_information":"Контактная информация","account_delete_account":"Удалить аккаунт","account_deleted":"Удалено","account_can_not_mfa":"МИД в беде?","account_set_mfa_type":"Конфигурация многофакторной идентификации","account_disable_mfa":"Отключить многофакторную идентификацию","account_disabled_mfa":"Отключено многофакторной идентификации","account_sms_mfa":"СМС МФА","account_totp_mfa":"ТОТП МИД","account_totp":"ТОТП","account_not_recommend":"Не рекомендую","account_oauth_sign_in_with":"Войти с помощью {provider}","account_sign_in_failed":"Не удалось войти","account_tip_oath_sign_up":"Адрес электронной почты, соответствующий текущей учетной записи {provider}: {email} еще не создал учетную запись","account_tip_confirm_delete_account":"Введите пароль текущей учетной записи, чтобы подтвердить, что вы хотите удалить текущую учетную запись. (Удаленные учетные записи не могут быть восстановлены)","account_tip_config_mfa":"Вы можете использовать SMS или одноразовый пароль на основе времени (TOTP) в качестве вторичной аутентификации.","account_error_can_not_enable_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить MFA","account_tip_can_not_enable_sms_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить SMS MFA","account_tip_can_not_enable_totp_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить TOTP MFA.","account_tip_setup_totp":"Используйте приложения, такие как Authenticator, для сканирования приведенного ниже QR-кода или скопируйте код вручную, чтобы добавить токен безопасности.","account_tip_verify_totp":"Подтвердите свой TOTP","account_link_your_social_account":"Привяжите свой социальный аккаунт","account_unlink_your_social_account":"Отвязать социальный аккаунт","account_tip_confirm_link":"Вы уверены, что хотите привязать текущую учетную запись к своей учетной записи {provider}?","account_tip_confirm_unlink":"Вы уверены, что хотите отменить привязанную учетную запись {provider}?","account_tip_linking":"связывание...","account_tip_unlinking":"Отвязка...","account_linked":"Граница","account_unlinked":"Свободный","account_error_can_not_link_to_the_linked_account":"Текущая социальная учетная запись привязана к другой учетной записи","account_error_can_not_link_to_the_mismatched_email":"Текущая учетная запись и адрес электронной почты социальной учетной записи несовместимы","account_error_can_not_link_before_email_verified":"Невозможно связать социальную учетную запись, поскольку текущая учетная запись не привязана к подтвержденному адресу электронной почты.","account_tip_confirm_verify_email_phone":"Нужно ли отправлять код подтверждения на адрес электронной почты и номер телефона текущей учетной записи для подтверждения вашей личности?","account_tip_confirm_verify_phone":"Нужно ли отправлять код подтверждения на текущий номер телефона для подтверждения личности?","account_error_1_message_60_seconds":"Каждые 60 секунд можно отправлять только одно SMS или электронное письмо, подождите еще {delta} секунд","account_error_10_messages_per_day":"Каждый мобильный телефон или адрес электронной почты может отправлять только 10 сообщений в течение 24 часов.","account_error_network":"Возникла проблема с сетью, повторите попытку позже","Network Error":"Возникла проблема с сетью, повторите попытку позже","account_error_user_not_exist":"Пользователь не существует","account_error_incorrect_username_or_password":"Неверное имя пользователя или пароль","account_error_incorrect_original_password":"Неверный исходный пароль","account_error_incorrect_password":"неверный пароль","account_error_username_not_found":"Имя пользователя не найдено","account_error_can_not_reset_for_no_verified":"Невозможно сбросить пароль для неподтвержденной учетной записи","account_error_invalid_verification_code":"Неверный проверочный код, попробуйте еще раз","account_error_expired_verification_code":"Срок действия кода подтверждения истек, попробуйте еще раз","account_error_password_not_long_enough":"Пароль недостаточно длинный","account_error_attempt_limit_exceeded":"Превышен лимит попыток, попробуйте через некоторое время.","account_error_password_attempts_exceeded":"Превышено количество попыток ввода пароля.","account_error_invalid_phone_number_format":"Неверный формат номера телефона","account_error_no_cell_phone_prefix":"Пожалуйста, выберите префикс для номера телефона","account_error_username_already_exists":"Имя пользователя уже существует","account_error_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия","account_error_inactive_code":"Код приглашения не является активированным кодом","account_error_non_existent_code":"Код приглашения не существует","account_error_unexpected":"Неожиданная ошибка","account_error_can_not_change_email_before_phone_bound":"Электронная почта не может быть изменена до привязки номера телефона","account_error_can_not_change_email_before_unbound_social_account":"Электронная почта не может быть изменена до отвязки социальной учетной записи","account_error_can_not_change_phone_before_email_bound":"Номер телефона нельзя изменить, пока электронная почта не будет привязана","account_error_can_not_change_email_phone_with_mfa_enabled":"Невозможно изменить адрес электронной почты или номер мобильного телефона до отключения MFA","account_error_not_supported_yet":"Временно не поддерживается","account_error_same_email":"Новый адрес электронной почты не может совпадать с исходным адресом электронной почты.","account_error_same_phone":"Новый номер телефона не может совпадать с исходным номером телефона.","account_error_email_not_exists":"Адрес электронной почты не существует","account_error_email_already_exists":"Учетная запись с указанным адресом электронной почты уже существует.","account_error_phone_already_exists":"Учетная запись с указанным номером телефона уже существует.","account_error_mfa_token_mismatch":"Несоответствие кода программного токена","account_error_recaptcha_not_loaded":"Есть проблема с сетью. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_recaptcha_validation_failed":"Ошибка проверки ReCAPTCHA. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_sign_in_in_progress":"Ожидающая попытка входа уже выполняется","account_field_range":"Ограничьте ввод {0}-{1} символов","account_field_only_alphanumeric":"Поддерживает только буквенно-цифровые","account_field_only_alphanumeric_and_symbol":"Поддерживает только буквенно-цифровые и символы","account_field_only_chinese_alphanumeric_space_underline":"Поддерживает только буквы, цифры, пробел, подчеркивание","account_field_prefix_without_number_space":"Первый символ не может быть цифрой или пробелом","account_field_suffix_without_space":"Не может заканчиваться пробелом","account_field_without_repeat_space":"Нельзя использовать несколько пробелов подряд","account_field_can_not_only_alphanumeric":"Вы не можете просто использовать буквы или цифры","account_field_must_have_number_characters":"Должен содержать числовые символы","account_field_verification_code":"Код подтверждения должен состоять из шести цифр.","account_field_invitation_code":"Код приглашения должен быть буквенно-цифровым","account_field_phone_number":"Неверный формат номера телефона","account_invalid_email_format":"Неверный формат электронной почты","account_sign_out_confirm":"Вы уверены, что хотите выйти? Это остановит все задачи.","account_sign_out_anyway":"Выйти в любом случае","account_signing_out":"Выписка...","account_request_save_settings":"Настройки не сохраняются. Перед выходом необходимо сохранить изменения.","pay":"Платить","pay_with_credit":"Плата за ускорение скачивания. Нужно около {0} кредита","pay_with_credit_payed":"Ускорение. Все еще требуется около {0} кредита","create_payment":"Создать платеж","pay_target":"Цель","pay_for_torrent":"Оплатить {0}","your_subid":"Ваш субидентификатор","your_credits":"Ваши кредиты","pay_point_for_data":"Заплатите {0} баллов за {1} данных","auto_renew":"Включить автоматическое продление","transaction_details":"Детали транзакции","transaction_id":"Идентификатор","transaction_payer":"Плательщик","transaction_payee":"Получатель платежа","transaction_category":"Категория","transaction_changed_amount":"Изменена сумма","transaction_meta":"Мета","transaction_status":"Положение дел","transaction_creation_time":"Время создания","receipt_code":"Код получения","transfer_amount":"Сумма перевода","code_the_receipt_code":"Скопируйте код квитанции ниже плательщику","fill_the_receipt_code":"Перевод путем заполнения кода платежа, предоставленного получателем платежа","expense":"Расход","copied":"Скопировано","transfer":"Передача","receive":"Получать","copy":"Копировать","withdraw_fund":"Вывод средств","category_paydata_payer":"Стоимость данных","category_paydata_payee":"Доход от данных","category_transfer":"Передача","category_bonus":"Бонус","category_recharge":"Перезарядка","status_pending":"в ожидании","status_completed":"завершенный","status_finish":"заканчивать","status_failed":"неуспешный","tip_invalid_receiver":"Неверный код получателя","tip_invalid_amount":"Сумма кредита должна быть числом с плавающей запятой в диапазоне 0-1000 (минимальная точность 0,001).","credit_get_more":"Получите больше кредитов","credit_no_data":"Данные недоступны","credit_loading":"Загрузка...","credit_not_enough_amount":"Недостаточно кредитов","credit_amount_not_enough":"Недостаточно кредитов","credit_payee_not_exist":"Плательщик не существует","credit_invalid_amount":"Неверная сумма кредита","credit_can_not_transfer_to_yourself":"Не могу перевести на себя","credit_latest":"Последний","credit_error_network":"Возникла проблема с сетью, повторите попытку позже","add_subtitles":"Добавить субтитры","open_file":"Открыть файл...","advanced_options":"Расширенные настройки","title":"Заголовок","location":"расположение","subtitle_file":"файл субтитров","unsupported_subtitle_type":"Тип файла {0} не является поддерживаемым типом субтитров.","not_default_player":"Видеоплеер по умолчанию не установлен","this_is_an_audio_file":"это аудиофайл","the_added_subtitle_already_exists":"Добавленный субтитр уже существует","stop_stream_player":"Потоковое мультимедиа было прекращено, потому что задача была приостановлена ​​или удалена","stop_player":"Работа плеера была завершена, так как файл был удален","playing_timeout_hint":"Время ожидания истекло. Пожалуйста, проверьте задание","autoplay_hint":"Автозапуск может быть заблокирован вашим браузером. Если плеер не играет, попробуйте нажать на экран, чтобы продолжить","remove_playing_confirm":"{0} все еще воспроизводится, удалите его, чтобы остановить проигрыватель. Вы уверены, что хотите удалить его?","unsupported_in_browser":"Пока не поддерживается в режиме браузера","client":"Клиент","warning":"Предупреждение","enable":"Давать возможность","disable":"Запрещать","auto":"Авто","encrypt_connection":"Зашифровать соединение","encrypted_connection":"Зашифрованное соединение","non_encrypted_connection":"Незашифрованное соединение","connected_wires_not_disconnect":"Подключенные провода не будут отсоединены","audio":"аудио","video":"видео","image":"изображение","subtitle":"подзаголовок","zip":"молния","text":"текст","unknown":"неизвестный","add":"Добавлять","undo":"Отменить","backup":"Резервное копирование","not_default_app":"${displayName} не является вашим приложением по умолчанию для торрентов и мультимедиа, вы хотите установить его по умолчанию?","dont_show_again":"Больше не показывать","go_to_settings":"Перейдите в настройки","about_alphabiz":"Около ${displayName}","last_check_at":"Последняя проверка в","update_channel":"Обновить канал","check_for_update":"Проверить обновления","checking_for_update":"Проверка обновлений...","no_update_available":"Нет доступных обновлений","update_available":"Доступно обновление","update_now":"Обновить сейчас","update_later":"Обновить позже","click_to_update":"Нажмите кнопку ОБНОВИТЬ СЕЙЧАС, чтобы загрузить и обновить","update_failed":"Не удалось обновить","update_failed_message":"При обновлении произошла ошибка:","check_shasum_failed":"Не удалось проверить целостность установщика","downloading_update":"Загрузка обновления...","ready_to_update":"Готов к обновлению","restart_to_update":"Обновление скачивается. ${displayName} на некоторое время выйдет из режима обновления.","already_latest":"Текущая версия ({0}) уже является последней","update_timeout":"Время ожидания обновления","no_available_release":"Нет доступных выпусков","no_available_installer":"Нет доступного установщика","feedback":"Обратная связь","select_a_type":"Выберите тип","category":"Категория","select_a_category":"Выберите категорию","require_title":"Требуется заголовок","describe_your_problem":"Опишите вашу проблему","report_a_bug":"Сообщить об ошибке","request_a_new_feature":"Запросить новую функцию","download_or_upload":"Загрузка выгрузка","others":"Другие","submit_with_system_info":"Отправить с информацией о системе","submit_feedback":"Отправить отзыв","tweet_us":"Напишите нам","tweet_too_long":"Твит слишком длинный","delete_characters":"Удалите как минимум {0} символов.","rest_characters":"Вы можете ввести еще {0} символов","update_alphabiz":"Обновить ${displayName}","current_version":"Текущая версия","cancel_update":"Отменить обновление","slow_download_speed":"Загрузка слишком медленная","slow_download_speed_caption":"Загрузка установщика теперь слишком медленная. Пожалуйста, проверьте состояние сети","update_canceled":"Обновление отменено","current_version_release_time":"Время выпуска текущей версии","expired_app":"${displayName} Просрочено","version_out_of_date":"Версия устарела","have_to_update":"Версия ${displayName} устарела. Некоторые протоколы или API устарели. Вы должны обновить ${displayName}, прежде чем продолжить.","exit_alphabiz":"Выход ${displayName}","exit_and_update":"Выйти и применить обновление","new_version_hint":"Доступна новая версия","no_new_version":"Нет новой версии","current_is_latest":"Текущая версия уже является последней","click_to_check_update":"Нажмите кнопку [ПРОВЕРИТЬ ОБНОВЛЕНИЕ], чтобы проверить наличие обновлений.","download_latest_version_from_website":"Пожалуйста, посетите официальный сайт, чтобы загрузить последнюю версию","to_the_website":"На сайт","network_diagnotic":"Диагностика сети","diagnotic":"Диагностика","click_to_check":"Нажмите, чтобы проверить","click_to_check_again":"Нажмите, чтобы проверить еще раз","checking":"Проверка","online":"В сети","offline":"Не в сети","dns_look_up":"DNS-поиск","error":"Ошибка","aws_service":"Сервис AWS","network_pings":"Сетевой пинг","not_found":"Не найдено","packet_loss":"Потеря пакетов","official_site":"Официальный сайт","download_test":"Скачать тест","test_task":"Тестовое задание {0}","download_failed":"Загрузка не удалась","second_spend":"{0} потрачено","open_default_player_failed":"Не удалось открыть проигрыватель по умолчанию","copied_to_clipboard":"Скопировано в буфер обмена","go_to":"Идти к","region_not_available":"Регион недоступен","region_not_available_message":"Извини! Ваш регион недоступен для использования этого приложения. Это приложение будет закрыто через {0} секунд","confirm":"Подтверждать","no_available_result":"Нет доступных результатов","invalid_password_format":"Неверный формат пароля","invalid_password_format_same":"Пароль такой же, как исходный пароль","error_password":"Ошибка пароля","keychain_setting":"Брелок","setting_description":"Облачное хранилище: Сохраняйте ключевые данные в облаке.\\nИзменить пароль: изменить пароль для ключа библиотеки мультимедиа.\\nМнемоника: альтернативный метод генерации и восстановления ключей.\\nИмпортировать локальный ключ: Импорт локально сохраненного ключа в медиатеку.\\nКлюч экспорта: сохраняет текущие данные медиатеки в локальном хранилище или в облаке.\\nКлюч резервного копирования в облако: обновите данные текущей медиатеки в облаке для резервного копирования.","refresh_status":"Обновить состояние","confirm_import_key":"Подтвердить ключ импорта","confirm_update_cloud_key":"У вас уже есть ключ в облаке. Обновление ключа перезапишет исходный ключ. Вы уверены, что хотите обновить ключ, хранящийся в облаке?","export_key_with_cloud":"Введите независимый пароль, который вы установили для экспорта ключа библиотеки, хранящегося в облаке, и заблокируйте файл ключа с помощью пароля разблокировки.","store_cloud_key_prompt_password":"Введите независимый пароль для хранения ключа библиотеки в облаке","update_cloud_key_prompt_password":"Установите независимый пароль для шифрования ключа библиотеки, а затем обновите его в облаке.","enable_cloud_storage_prompt_password":"Установите пароль для ключа, хранящегося в облаке, с помощью которого вы сможете получить ключ из облака","input_unlock_password":"Установить пароль разблокировки","export_local_prompt_password":"Пожалуйста, установите пароль разблокировки, чтобы зашифровать файл ключа. Мы не сохраним этот пароль для вас, поэтому, если вы потеряете свой пароль, вы не сможете разблокировать ключ библиотеки.","require_unlock_password":"Файл ключа заблокирован, введите пароль разблокировки","require_independent_password":"Введите независимый пароль, чтобы получить ключ, хранящийся в облаке.","import_local_prompt_password":"Файл ключа заблокирован, введите пароль разблокировки","select_encrypt_mode":"Выберите режим шифрования","update_cloud_key":"Обновите ключ, хранящийся в облаке","backup_to_cloud":"Резервное копирование ключа библиотеки в облако","save_local":"Сохраните ключ библиотеки как локальный зашифрованный файл.","create_new_key":"Создайте новый ключ библиотеки","creating_lib_key":"Создание ключа библиотеки...","loading_lib_key":"Загрузка ключа библиотеки...","failed_to_create_lib_key":"Не удалось создать ключ библиотеки","failed_to_load_lib_key":"Не удалось загрузить ключ библиотеки","import_local_key":"Импортировать ключ локально","import_lib_key_from_local":"Импортировать библиотечный ключ локально","import_from_cloud":"Импортировать ключ библиотеки из облака","create_or_import_key":"Создать или импортировать библиотечный ключ","create_or_import_key_desc":"Библиотечный ключ — это независимый ключ, используемый для извлечения и публикации содержимого в децентрализованной базе данных.","store_your_lib_key":"Сохраните ключ библиотеки","export_cloud_key":"Экспорт ключа из облака","export_current_key":"Экспорт текущего ключа","change_password":"Изменить пароль","enable_cloud_storage":"Включить облачное хранилище","disable_cloud_storage":"Отключить облачное хранилище","disable_cloud_storage_desc":"Отключение облачного хранилища приведет к удалению ключа, сохраненного в облаке, убедитесь, что ключ сохранен локально.","sync_at":"Синхронизировать по адресу: {time}","cloud_storage_enabled":"Синхронизировать связку ключей с {storage}","cloud_storage_disabled":"Облачное хранилище отключено","saved_locally":"Сохранено локально","export_key":"Экспорт файла ключа","cloud_independent_password":"Независимый от облака пароль","key_file_unlock_password":"Пароль разблокировки файла ключа","re_enter_unlock_password":"Повторно введите пароль разблокировки","independent_password_not_enabled":"Текущий пароль — это пароль учетной записи Alphabiz (независимый пароль не установлен)","use_cognito_hash":"Использовать пароль учетной записи Alphabiz","use_independent_password":"Используйте независимый пароль","keychain_lib":"ключ библиотеки","loading_keychain_state":"Загрузка связки ключей...","backing_up":"Резервное копирование...","backup_current_key":"Резервное копирование текущего ключа в облако","cloud_lib_key_not_existed":"ключ библиотеки не существует в облаке","open_keychain_file":"Открыть файл связки ключей","confirm_open_abk":"Вы хотите открыть файл ABK?","use_the_key":"Используйте ключ","backup_the_key":"Резервное копирование ключа в облако","keychain_data_does_not_exist":"Данные связки ключей не существуют","timeout of 0ms exceeded":"Возникла проблема с сетью, повторите попытку позже","XhrError":"Возникла проблема с сетью, повторите попытку позже","payer credit amount is not enough":"Недостаточно кредитов","payee does not exist":"Плательщик не существует","block_list_manage":"Управление черным списком","blocked_users":"Заблокированные пользователи","blocked_channels":"Заблокированные каналы","unblock_user":"Разблокировать пользователя","unblock_channel":"Разблокировать канал","no_blocked_user":"Нет заблокированных пользователей","no_blocked_channel":"Нет заблокированного канала","field_required":"{0} требуется","setting":"Параметр","unknown_media":"Неизвестные СМИ","settings_button_visible":"Кнопка видна","settings_setting":"Параметр","settings_playback_rate":"Скорость воспроизведения","settings_subtitle":"Подзаголовок","settings_pip":"Картинка в картинке","settings_fullscreen":"Полноэкранный","settings_subtitle_options":"Параметры субтитров","settings_normal":"Нормальный","settings_italic":"Курсив","settings_lighter":"Более легкий","settings_bolder":"Смелее","settings_small":"Маленький","settings_large":"Большой","about":"О","services":"Услуги","hide":"Скрывать","hide_others":"Скрыть другие","show_all":"Показать все","quit":"Покидать","edit":"Редактировать","redo":"Повторить","cut":"Резать","paste":"Вставить","select_all":"Выбрать все","view":"Вид","reload":"Перезагрузить","toggle_full_screen":"Включить полноэкранный режим","toggle_developer_tools":"Переключить инструменты разработчика","window":"Окно","minimize":"Минимизировать","bring_all_to_front":"Вывести всех на передний план","help":"Помощь","github_repo":"Репозиторий Github","issues":"Проблемы","learn_more":"Узнать больше","learn_spelling":"Учиться правописанию","lookup_selection":"Посмотрите вверх \\"{selection}\\"","search_with_google":"Поиск с помощью Google","save_as":"Сохранить как","save_image":"Сохранить изображение","save_image_as":"Сохранить изображение как ...","copy_link":"Копировать ссылку","save_link_as":"Сохранить ссылку как ...","copy_image":"Копировать изображение","copy_image_as":"Копировать изображение как...","copy_image_address":"Копировать адрес изображения","download_complete":"Загрузка завершена","download_complete_message":"{0} скачивается","is_running":"{0} выполняется","open":"Открыть {0}","launch_problem":"Проблема с запуском","ask_clear_data":"Кажется, вы пытаетесь запустить {0}, но это несколько раз не удалось.\\nВы хотите очистить все данные приложения и попробовать запустить его позже?","launch_directly":"Запустить напрямую","clear_all_data":"Удалить все данные","ask_clear_confirm":"Это удалит все конфиги, логи и пользовательские данные!\\nПосле этого вам может понадобиться снова запустить {0}.\\nВы уверены, что хотите очистить данные?","confirm_launch":"Нет, запустить напрямую","confirm_clear":"Да, удалить все данные"}')},"5e05":function(e,t){e.exports=require("https")},"5e65":function(e,t,a){},"5e6d":function(e,t,a){},"5e87":function(e,t,a){"use strict";a("8fd4")},"5e95":function(e,t,a){"use strict";a("0c7a")},"5e9a":function(e){e.exports=JSON.parse('{"lib_index":"Thuis","lib_edit":"Publiceren","lib_publish":"Publiceren","lib_explore":"Ontdekken","lib_following":"Als vervolg op","lib_favorite":"Lokale favorieten","lib_local_favorites":"Lokale favorieten","lib_channel":"Kanaal","lib_submit":"Indienen","lib_from_network":"Gebruik van gedecentraliseerde database van netwerk","welcome_to_lib":"Welkom bij ${displayName} Mediabibliotheek","register_or_login":"Registreren/Inloggen","lib_recommend":"Aanbevelen","lib_recommend_desc":"Welkom bij ${displayName} Bibliotheek! Deze bibliotheek maakt gebruik van een gedecentraliseerde database van het netwerk. Om het te gaan gebruiken, moet je enkele kanalen volgen.","follow_any_channel_to_continue":"Volg een willekeurig kanaal om door te gaan","follow_channels_and_continue":"Volg {0} kanalen en ga verder","show_more_for_me":"Laat meer zien voor mij","no_more_recommend":"Niet meer aanbevelen","key":"Sleutel","create_key":"Sleutel maken","save_key":"Bewaar sleutel","save_key_file":"Wilt u uw sleutel opslaan als bestand?","import_key":"Sleutel importeren","import":"Importeren","invalid_key":"Ongeldige sleutel","back_to_top":"Terug naar boven","search_for_channel":"Zoek naar kanaal-ID","search_channel_no_result":"Kan kanaal met ID {0} niet vinden","please_input_channel_id":"Voer de kanaal-ID in","welcome_help_text":"Dit is een gedecentraliseerde mediabibliotheek. Jij hebt nodig\\n om een ​​account aan te maken voor deze database. Wij zullen\\n automatisch een persoonlijke sleutel voor u genereren.\\n Als u al een sleutel heeft gehad, kunt u ook importeren\\n het hier.","welcome_key_text":"Nadat u bent ingelogd, klikt u op de knop [SLEUTEL OPSLAAN].\\n in de rechterbenedenhoek om uw privésleutel op te slaan.\\n Als u uw sleutel kwijtraakt, kunt u mogelijk niet meer inloggen.","redirect_to_recommend":"Het lijkt erop dat je geen enkel kanaal hebt gevolgd. Omleiding naar de pagina [Verkennen].","channel":"Kanaal","follow":"Volgen","unfollow":"Ontvolgen","following":"Als vervolg op","share":"Deel","unfollow_confirm":"Weet je zeker dat je dit kanaal niet meer wilt volgen? Alle berichten van dit kanaal in je tijdlijn worden verwijderd.","follow_failed_hint":"De bewerking is nog steeds in behandeling op de achtergrond. Als de bewerking lange tijd niet wordt toegepast, start u de app opnieuw en probeert u het opnieuw.","block":"Blok","unblock":"Deblokkeren","blocked":"Geblokkeerd","block_channel":"Blokkeer dit kanaal","block_channel_confirm":"Door kanaal te blokkeren wordt het van je tijdlijn verwijderd. U kunt uw blokkeerlijst beheren in de accountinstellingen.","block_creator":"Blokkeer de maker van dit kanaal","unblock_creator":"Deblokkeer de maker van dit kanaal","block_creator_confirm":"De maker van het blok verwijdert alle kanalen die door deze maker zijn gemaakt van je tijdlijn. U kunt uw blokkeerlijst beheren in de accountinstellingen.","share_url_copied":"Share-URL wordt gekopieerd naar uw klembord","follow_time":"Volg de tijd","update_time":"Update tijd","search":"Zoekopdracht","type":"Type","added":"Toegevoegd","click_to_task":"Klik om naar de taak te gaan","lib_already_added":"Je hebt deze video al toegevoegd","description":"Beschrijving","poster":"Poster","channel_poster":"Kanaalposter","preview":"Voorbeeld","creator":"Schepper","creator_detail":"Creator-detail","loading_creator":"Informatie over maker laden","wait_for_creator_loaded":"Wacht tot de informatie over de maker is geladen.","follower":"Volgeling","followers":"Volgers","follower_list":"Lijst met volgers","user":"Gebruiker","channel_title":"Kanaal titel","channel_id":"Kanaal Nr","post_title":"Titel posten","post_id":"Post-ID","import_data_from_excel":"Importeer gegevens uit Excel","set_excel_keys":"Excel-sleutels instellen","excel_import_succeded":"Excel-import gelukt","excel_import_success_msg":"{0} rijen zijn klaar om toe te voegen, {1} ongeldige en {2} gedupliceerde items worden genegeerd","cannot_find_channel":"Kan zender niet vinden","cannot_find_posts":"Kan berichten niet vinden","add_channel":"Kanaal toevoegen","add_post":"Bericht toevoegen","edit_channel":"Kanaal bewerken","channel_setting":"Kanaal instelling","edit_post":"Bericht bewerken","edit_posts":"Berichten bewerken","channel_detail":"Kanaaldetail","remove":"Verwijderen","remove_channel":"Kanaal verwijderen","remove_channel_confirm":"Weet je zeker dat je dit bericht wilt verwijderen? Dit kan niet worden hersteld.","remove_post":"Bericht verwijderen","remove_post_confirm":"Weet je zeker dat je dit kanaal wilt verwijderen? Dit kan niet worden hersteld.","preview_mode":"Preview-modus","preview_mode_desc":"Dit is een voorbeeld van je kanaal. Alle tarieven van films worden hier getoond.","edit_user_profile":"Gebruikersprofiel bewerken","name":"Bijnaam","avatar":"Avatar","no_following":"Geen volgende kanalen. Klik om te gaan","no_recommend":"Geen aanbevolen kanalen. Klik om te gaan","first_recomment_msg":"Het kan even duren als dit de eerste keer is dat de app wordt gelanceerd.","invalid_image":"Ongeldige afbeelding","image_not_reachable":"Deze afbeeldings-URL is niet bereikbaar.","channel_not_found":"Kanaal niet gevonden","cannot_get_channel_info":"Kan kanaalinfo niet ophalen. Dit kanaal kan door de maker worden verwijderd en is niet langer beschikbaar.","validate_error":"Fout valideren","validate_user_name_no_space":"Gebruikersnaam mag geen spaties bevatten","validate_url_no_space":"URL mag geen spaties bevatten","validate_user_name_length":"De gebruikersnaam moet een lengte hebben tussen {0} en {1}","validate_user_desc_length":"De gebruikersbeschrijving mag niet langer zijn dan {0} tekens","validate_user_avatar_url":"Gebruikersavatar moet een URL zijn met minder dan 2048 tekens","validate_channel_title_length":"De kanaaltitel moet een lengte hebben tussen 1 en 100","validate_channel_desc_length":"De kanaalbeschrijving moet een lengte hebben tussen 10 en 300","validate_channel_image_url":"Kanaalvoorbeeld moet een URL zijn met minder dan 2048 tekens","validate_post_title_length":"De titel van het bericht moet een lengte hebben tussen 1 en 100","validate_post_desc_length":"De berichtbeschrijving moet een lengte hebben tussen 10 en 300","validate_post_image_url":"Poster moet een URL zijn met minder dan 2048 tekens","validate_post_url":"Ongeldige URL ${displayName}","validate_post_url_length":"${displayName} URL mag niet langer zijn dan 2048 tekens","film_rate":"Film tarief","set_film_rate":"Filmsnelheid instellen","select_a_rate_before_enter":"U moet een filmsnelheid selecteren voordat u naar de mediabibliotheek gaat.","library_available_rate":"Bibliotheek beschikbaar filmtarief","rate_g":"G – Algemeen publiek","rate_g_desc":"Alle leeftijden toegelaten. Niets dat ouders zou beledigen voor het bekijken door kinderen.","rate_pg":"PG - Ouderlijk toezicht voorgesteld","rate_pg_desc":"Sommige materialen zijn mogelijk niet geschikt voor kinderen. Ouders worden aangespoord om \\"ouderlijke begeleiding\\" te geven. Kan materiaal bevatten dat ouders misschien niet leuk vinden voor hun jonge kinderen.","rate_pg_13":"PG-13 – Ouders sterk gewaarschuwd","rate_pg_13_desc":"Sommige materialen kunnen ongeschikt zijn voor kinderen onder de 13 jaar. Ouders worden dringend verzocht voorzichtig te zijn. Sommige materialen zijn mogelijk niet geschikt voor pre-tieners.","rate_r":"R - Beperkt","rate_r_desc":"Onder de 17 jaar is een begeleidende ouder of volwassen voogd vereist. Bevat wat materiaal voor volwassenen. Ouders worden dringend verzocht meer over de film te weten te komen voordat ze hun jonge kinderen meenemen.","rate_nc_17":"NC-17 - Alleen volwassenen","rate_nc_17_desc":"Niemand van 17 jaar en jonger toegelaten. Duidelijk volwassen. Kinderen worden niet toegelaten.","set_as_private":"Instellen als privé","hide_in_explore":"Verberg dit kanaal op de verkenningspagina","hidden":"Verborgen","select_a_rate":"Selecteer een filmtarief","select_from_tasks":"Kies uit taken","import_from_magnet":"Importeren van magneet:?...","input_magnet_url":"Ingangsmagneet:? url","task_title":"Taak titel","set_title":"Titel instellen","add_to_local_favorites":"Toevoegen aan lokale favorieten","remove_from_local_favorites":"Verwijderen uit lokale favorieten","removed_favorite":"Favoriet verwijderd","import_or_export_favorites":"Favorieten importeren/exporteren","export_local_favorites":"Exporteer lokale favorieten als back-up","import_favorites_file":"Favorietenbestand importeren","not_a_favorite_file":"Dit bestand is geen favoriet back-upbestand","connection_status":"Verbindingsstatus","gun_server_list":"Cache-knooppunten","custom_nodes":"Aangepaste cacheknooppunten","custom_nodes_hint":"Aangepaste cacheknooppunten worden toegepast nadat de app opnieuw is gestart","wait_for_reboot":"Wachten op opnieuw opstarten...({seconds}s)","reboot_now":"Herstart nu","reboot_later":"Start later opnieuw op","peer_list":"Directe knooppunten","server":"Knooppunt-URL","peer":"Gelijke","peer_id":"Knooppunt-ID","connection":"Verbinding","data_source":"Databron","sync":"Synchroniseren","syncing":"synchroniseren","sync_completed":"Synchronisatie voltooid","got_all_post":"Je hebt al alle berichten","placeholder_channel_title":"Je kanaalnaam","placeholder_channel_desc":"Beschrijving over dit kanaal","placeholder_post_title":"Filmnaam (jaar)","placeholder_post_desc":"Beschrijving over deze film","private_channel":"Privé kanaal","creator_blocked":"Maker geblokkeerd","go_to_library":"Ga naar de bibliotheek?","go_to_library_channel_msg":"Wil je naar het bibliotheekkanaal {0}?","magnet_does_not_have_name":"Deze magneet:? url heeft geen naam, je moet eerst een berichttitel toevoegen.","no_available_post":"Geen beschikbaar bericht","following_channel_no_post":"Al je volgende kanalen hebben geen beschikbare post. Dit kan worden veroorzaakt door een netwerkfout. Als je al enkele kanalen hebt gevolgd, kunnen de berichten later worden geladen.","share_to_library":"Delen met bibliotheek","quick_start":"Snelle start","quick_start_desc":"Begin met het maken van een bericht met een taak of bestand","select_file":"Selecteer bestand...","select_folder":"Selecteer map...","post_options":"Plaats opties","channel_options":"Kanaal opties","create_new_channel":"Nieuw kanaal maken","use_existed_channel":"Gebruik bestaand kanaal","select_existed_channel":"Selecteer bestaand kanaal","uploaded_by":"{title} geüpload door {name}","created_by":"{title} gemaakt door {name}","creating_new_channel":"Nieuw kanaal maken...","created_new_channel":"Nieuw kanaal gemaakt","creating_new_post":"Nieuw bericht maken...","created_new_post":"Nieuw bericht gemaakt","create_new_post":"Nieuw bericht maken","quick_start_timeout":"{0} time-out. Dit kan worden veroorzaakt door een netwerkfout. Probeer het later opnieuw.","file_too_large":"Bestand te groot","file_too_large_msg":"Dit bestand is groter dan 4 GB ({size}) en kan een lange voorbereidingstijd in beslag nemen. Weet je zeker dat je door wilt gaan?","resolving_folder_files":"Mapbestanden oplossen...","folder_too_large":"Map te groot","folder_too_large_msg":"De bestanden in deze map zijn groter dan 4 GB ({size} totaal) en het kan een lange voorbereidingstijd kosten. Weet je zeker dat je wilt uploaden?","creating_new_task":"Nieuwe taak maken...","cannot_create_task":"Kan taak niet maken","cannot_create_task_msg":"Dit kan een fout veroorzaken. Als de taak correct is gemaakt, kunt u later controleren op de takenlijst.","cannot_get_task_name":"Kan de taaknaam niet ophalen. U moet er eerst een invoeren.","remove_old_task":"Verwijder oude taak","remove_old_task_desc":"De webmodus kan slechts één taak tegelijk maken. Wilt u de oude taak verwijderen?","subtitle_list":"Ondertitel lijst","optional":"optioneel","with_subtitle":"Met {language} ondertitels","maximumSubtitleNum_limit":"Het aantal ondertitels heeft zijn maximum bereikt","add_subtitle_url":"Downloadlink voor ondertiteling toevoegen","cannot_add_subtitle":"Het toevoegen van ondertitels is mislukt","cannot_add_subtitle_msg":"Ondertitelingstaal niet geselecteerd of ongeldige downloadlink.","support_subtitle_type":"Alleen ondertitels in srt- en vtt-indeling worden ondersteund.","recommend_opensubtitles":"Het wordt aanbevolen om de downloadlink of id voor ondertitels te gebruiken op www.opensubtitles.org.","take_down":"Neerhalen","serious_violation":"Ernstige overtreding","copyright_disputes":"Geschillen over auteursrechten","adults_only":"Alleen volwassenen","takedown_reason":"Reden voor verwijdering","takedown_mode":"Takedown-modus","admins":"Beheerders","takedown_user":"Schakel deze maker uit","takedown_channel":"Verwijder dit kanaal","takedown_post":"Verwijder dit bericht","select_takedown_reason":"Selecteer de verwijderingsreden","takedown_invalid_reason":"Ongeldige verwijderingsreden","takedown_invalid_user_id":"Ongeldige gebruikersnaam. ID moet 87 tekens bevatten","takedown_invalid_channel_id":"Ongeldige kanaal-ID. ID moet 20 tekens bevatten","takedown_invalid_post_id":"Ongeldige post-ID. ID moet 20 tekens bevatten","takedown_management":"Beheer afschaffen","users":"Gebruikers","channels":"Kanalen","posts":"Berichten","you":"Jij","preset":"Vooraf ingesteld","admin":"beheerder","committee":"Commissie","about_takedown_mode":"Over de takedown-modus:\\nVoorinstelling: geconfigureerd in github-repository. Ze worden allemaal uit de bibliotheek verwijderd.\\nAdmin: Elke stem van een admin wordt verwijderd.\\nCommissie: Minstens de helft van de admins die op stemmen, wordt verwijderd.","cannot_edit_preset":"U kunt deze rij niet bewerken omdat het een vooraf ingestelde rij is","cannot_edit_not_vote":"Je kunt deze rij niet bewerken omdat je er niet op hebt gestemd","remove_vote":"Verwijder uw stem","post_preload_failed":"Kan dit bericht niet vooraf laden. De downloadlink is mogelijk verouderd, dus dit bericht kan niet onmiddellijk worden afgespeeld.","about_cache_node":"Over cacheknooppunt","edit_cache_node":"Cacheknooppunt bewerken","create_cache_node":"Cacheknooppunt maken","about_cache_node_desc":"${displayName} gebruikt de wapenserver als cacheknooppunt. U kunt aangepaste knooppunten vooraf instellen","learn_how_to_deploy_gun":"Leer hoe u uw eigen wapenserver kunt inzetten","repeat_add":"De taak is toegevoegd. Voeg deze niet opnieuw toe","upload":"Uploaden","download":"Downloaden","delete":"Verwijderen","delete_task":"Taak verwijderen","delete_confirm_message":"Deze taak verwijderen? Dit is onherroepelijk","also_delete_files":"Verwijder ook bestanden","default_delete_files":"Verwijder standaard gedownloade bestanden na verwijdertaak","not_now":"Niet nu","delete_autoupload_confirm":"Deze taak bevat het bestand dat u in de map voor automatisch uploaden hebt geplaatst. Als u deze taak verwijdert, wordt het bestand ook verwijderd.","delete_anyway":"Hoe dan ook verwijderen","upload_too_many_files":"Upload te veel bestanden","ask_if_unlimit_upload_amount":"De map voor automatisch uploaden bevat te veel bestanden. Wilt u de beperking van het uploadbedrag uitschakelen? *Dit kan prestatieproblemen veroorzaken","disable_limitation":"Beperking uitschakelen","not_length":"Werken met meerdere bestanden wordt momenteel niet ondersteund. Werk alstublieft mee","download_torrent":"Download bestand","upload_torrent":"Upload bestand","files":"Bestanden","file":"Bestand","folder":"Map","start_all":"Begin allemaal","pause_all":"Pauzeer alles","remove_all":"Verwijder alles","upload_all":"Alles uploaden","clear_history":"Geschiedenis wissen","pause_all_finish_payments":"Hiermee worden alle betalingen voltooid.","accelerating":"Versnellen","link_task":"Koppel taak","torrent_task":"Dossier taak","ok":"OK","cancel":"Annuleren","download_directory_position":"Directory positie downloaden","torrent_file":"taak bestand","magnetic_link_incorrect":"Het linkformaat is onjuist","delete_fail":"Verwijderen mislukt","pause":"Pauze","paused":"Gepauzeerd","stop_torrent":"Stop","seed":"Zaad","resume":"Cv","downloading":"downloaden","downloaded":"gedownload","uploading":"Uploaden","auto_uploading":"Auto uploading","uploaded":"Geüpload","pending":"Wachten op andere taken","verifying":"Verifiëren","waiting_for_verify":"Wachten op verificatie","seeding":"Zaaien","completed":"Voltooid","status":"Toestand","task_name":"Opdrachtnaam","size":"Maat","progress":"Voortgang","sort":"Soort","ascending":"Oplopend","descending":"Aflopend","file_loading":"Bestand laden...","loading":"Bezig met laden","unknown_status":"Onbekend","play_while_downloading":"Toneelstuk...","upload_or_play":"Uploaden / afspelen","play":"Toneelstuk","ask_if_upload_file":"Upload bestand?","ask_if_upload_or_play":"Bestand uploaden of afspelen?","torrent_error":"Fout bij het toevoegen van taak:","no_peers":"Probeer het meer dan {0} keer opnieuw en er is geen peer beschikbaar","torrent_exists":"Taak bestaat al.","show_origin_torrent":"Haal het originele taakbestand of de url op","show_directory":"Open directory van deze torrent","task_num":"Taken","total_upload_speed":"Upload snelheid","total_download_speed":"Download snelheid","path_missing":"Fout: kan het torrent-pad niet vinden","origin_not_found":"Kan informatie over oorspronkelijke taak niet vinden.","text_copied":"De Magnum-URL wordt naar uw klembord gekopieerd","copy_magnet_uri":"Magneet kopiëren:? URI","copy_download_uri":"Download-URI kopiëren","copy_share_uri":"Deel-URI kopiëren","uri_copied":"URI is met succes naar uw klembord gekopieerd","uri_copy_failed":"Kopiëren van uri is mislukt","more":"Meer...","toggle_list_mode":"Schakel de lijstmodus in","comment":"opmerking","operations":"Activiteiten","open_directory":"Adresboek openen","no_downloading_task":"Geen downloadtaak","remove_all_downloading_tasks":"Alle downloadtaken verwijderen?","remove_all_upload_tasks":"Alle uploadtaken verwijderen?","remove_autoupload_files":"Verwijder automatisch geüploade bestanden","remove_all_history":"Alle geschiedenis verwijderen?","remaining":"Overig","created_time":"Gecreëerde tijd","used_time":"Gebruikte tijd","completed_time":"Voltooide tijd","yesterday":"Gisteren","before_yesterday":"{empty}","earlier":"Eerder","miss_file":"Er ontbreken enkele bestanden","delete_miss_file_task":"Er ontbreken enkele bestanden in {0}.","common_peer":"Gemeenschappelijke collega","ab_peer":"${displayName} collega","ab_peer_verified":"Geverifieerd ${displayName} peer","ab_peer_available":"${displayName} peer(s) beschikbaar","alphabiz_accelerating":"${displayName} versnellen","income":"Inkomen","income_info":"Inkomen (vandaag/totaal)","total_income_info":"Inkomen: {0}(vandaag) / {1}(totaal)","login_to_see_income":"Log in om inkomensstatistieken te bekijken","credit_cost":"Krediet kosten","downloaded_by_payment":"Gedownload door betalingen","file_not_found":"Kan dit bestand niet vinden in lokaal","no_task":"Niet vragen","no_matched_task":"Geen overeenkomende taak","space_not_enough":"Schijfruimte niet genoeg","need_more_space":"Heb {0} meer ruimte nodig, maar de huidige schijf heeft {1} vrij ({2} gereserveerd). Taken zijn gepauzeerd. Bibliotheek vooraf laden is uitgeschakeld. U kunt het opnieuw inschakelen in [Instellingen - Geavanceerd].","seeders":"Zaaimachines","last_update":"Laatste update","connecting":"Verbinden","connected":"Verbonden","request_timed_out":"Verzoek verlopen","connection_failed":"Verbinding mislukt","invalid_download_url":"Ongeldige download-URL","download_link":"download link","empty_files":"Geen bestanden in map","duplicate_task":"Dubbele taak","duplicate_tracker":"Dubbele tracker","this_task_not_ready":"Deze taak is niet gereed. Pauzeer deze taak om deze direct te verwijderen.","some_task_not_ready":"Sommige taken zijn nog niet klaar. Pauzeer deze taken om ze direct te verwijderen.","failed_to_delete_files":"Kan bestanden niet verwijderen","failed_to_delete_files_desc":"Kan sommige bestanden van de taak niet verwijderen. Mogelijk moet u ze handmatig verwijderen","unknown_error":"Onbekende fout: {0}","more_files_are_not_shown":"({0} meer bestanden worden niet weergegeven om prestatieredenen)","no_available_file":"Geen beschikbaar bestand. Wacht tot de taak gereed is.","service_worker_error":"Kan ServiceWorker niet laden om te spelen. Uw browser ondersteunt deze functie mogelijk niet of de ServiceWorker is niet geactiveerd. Mogelijk moet u deze pagina opnieuw laden en het opnieuw proberen.","add_task_first":"U moet eerst een taak toevoegen.","player_task_time":"De speler heeft te veel seconden nodig om zich voor te bereiden op het spel. Er kan iets mis zijn met de taak.","web_mode_hint":"De webmodus van ${displayName} ondersteunt alleen WebRTC-peers. Download voor de beste ervaring ${displayName} Desktop-app.","web_mode_task_hint":"Klik op onderstaande knoppen om een ​​taak toe te voegen. U kunt slechts één taak tegelijk toevoegen.","save_to_local":"Opslaan in lokaal","save_as_zip":"Opslaan als ZIP","creating_save_file":"Opslaan bestand maken...","upload_as_one_directory":"Uploaden als één map","upload_as_single_files":"Uploaden als afzonderlijke bestanden","web_mode_upload_single":"U kunt slechts één bestand uploaden in de webmodus","download_success":"Succesvol downloaden","download_fail":"Download mislukt","wait_for_downloaded_to_share":"Wacht tot de taak is gedownload voordat u deze deelt.","download_with_cellular":"Taken downloaden met mobiel","download_with_cellular_desc":"U gebruikt een mobiel netwerk. Downloadtaken met mobiel kunnen extra kosten in rekening brengen door uw provider.","download_with_cellular_confirm":"Nog steeds downloaden met mobiel","language":"Taal","appearance":"Verschijning","darkModeSystem":"Systeem","darkModeLight":"Licht","darkModeDark":"Donker","basic_setting":"Eenvoudig","hideMenu":"App-menu verbergen (alleen Windows en Linux)","autoHide":"Venster automatisch verbergen","autoStart":"Openen bij inloggen","restore":"Houd grootte en positie van het raam bij het verlaten","autoStartUnfinished":"Hervat automatisch alle onvoltooide taken","default_download_path":"Standaardpad","download_directory":"Directory downloaden","upload_directory":"Directory uploaden","enable_auto_upload":"Automatisch uploaden inschakelen","unlimit_upload_amount":"Onbeperkt uploadbedrag","unlimit_upload_warning":"Sta het uploaden van een groot aantal bestanden toe. Dit kan prestatieproblemen veroorzaken","start":"Beginnen","transport_setting":"Overdragen","upload_limit":"Uploadlimiet","download_limit":"Downloadlimiet","payed_user_share_rate":"Betaald gebruikerspercentage","unlimited":"Onbeperkt","limit_input_error":"Het limietnummer moet positief zijn","BT_setting":"Taak instellingen","saveLinkSeed":"Link opslaan als taakbestand","autoDownload":"Link en inhoud automatisch downloaden","continuousSeeding":"Blijf zaaien tot het handmatig stopt","seedSharingRate":"Zaad verhouding","seedTime":"Zaaitijd (minuten)","task_manage":"Taak beheer","maximumDownloadNum":"Maximaal actieve taken","maximumConnectionsNum":"Maximale verbinding per server","range_error":"Het bereik moet liggen tussen {0} en {1}","random":"willekeurig","breakpointContinuation":"Doorgaan","automaticSkip":"Laat automatisch downloaden zien na het toevoegen van een taak","afterNotification":"Melding nadat het downloaden is voltooid","deleteConfirm":"Er is geen bevestiging vereist voordat de taak wordt verwijderd","submit":"Opslaan en toepassen","discard":"Weggooien","reset":"Resetten","reset_all_settings":"Alle instellingen resetten?","preferences_resetted":"Voorkeuren gereset","traditional_chinese":"traditioneel Chinees","japanese":"Japans","english":"Engels","chinese":"Vereenvoudigd Chinees","advancedSettings":"Geavanceerd","autoUpdate":"Auto Update","autoCheckUpdate":"Automatisch controleren op updates","proxy":"Volmacht","useProxyService":"Proxy inschakelen","trackerService":"Tracker-servers","recommendUse":"Aanbevolen","autoUpdateTrackerServiceList":"Update de trackerlijst elke dag automatisch","manualUpdateTracker":"Handmatige update","manualUpdateSuccess":"Trackerservers succesvol bijwerken","manualUpdateFail":"Kan niet updaten van:","listenPort":"Luister poorten","BTlistenPort":"Poort voor gegevensoverdracht","DHTlistenPort":"Gedistribueerde hashpoort","protocols":"Compatibele protocollen","setDefaultClientForFollowingProtocols":"Instellen als de standaardclient voor de volgende protocollen","magnetUrl":"Magneet","video_file":"Video bestand","audio_file":"Geluidsbestand","security":"Beveiliging","impersonateUserAgent":"Onechte user-agent","RPCauthorizationkey":"RPC-geheim","viewDocument":"Bekijk de RPC Secret-handleiding","developer":"Ontwikkelaar","applicationLogPath":"App-logboekpad","downloadSessionPath":"Sessiepad downloaden","resetDownloadSessionRecord":"Reset downloadsessie","restoreInitialSettings":"Fabrieksinstellingen","preferences_set_successfully":"Bewaar voorkeuren succesvol!","preferences_set_fail":"Voorkeuren opslaan mislukt!","change_not_save":"Wijzigingen worden niet opgeslagen","discard_all_changes":"Alle wijzigingen negeren en vertrekken?","stay_in_page":"Blijf op de pagina","disk_usage":"Schijfgebruik","pause_if_less_space":"Pauzeren en melden als er minder ruimte is dan (MB)","default_video_player":"Standaard videospeler","video_cache_time":"Stream afspeelcache","minutes":"minuten","system_default":"Systeemfout","media_player":"Mediaspeler","library_film_rate":"Beschikbaar filmtarief","library_show_explore":"Toon [Verkennen] pagina","library_setting":"Bibliotheek instelling","library_sync_setting":"Instelling bibliotheeksynchronisatie","keychain_sync_status":"Synchronisatiestatus van sleutelhanger","sync_with_aws":"Synchroniseer sleutelhanger met Amazon Web Services","backup_to_local":"Back-up naar lokaal bestand","enable_sync_with_aws":"Schakel synchronisatie met AWS in","disable_sync_with_aws":"Schakel synchronisatie met AWS uit","disable_sync_with_aws_desc":"Hiermee wordt de opgeslagen sleutel op de server verwijderd. Zorg ervoor dat u uw sleutel al heeft geëxporteerd.","input_independent_password":"Voer een onafhankelijk wachtwoord in","change_independent_password":"Wijzig onafhankelijk wachtwoord","password_error":"Verkeerd wachtwoord","password_invalid":"Wachtwoord fout","key_existed":"Sleutel bestond","key_not_found":"Sleutel niet gevonden","library_recommend":"Bibliotheek aanbevelen","show_all_channels":"Toon alle kanalen op de aanbevelingspagina van de bibliotheek","not_logged_in":"Niet ingelogd","login_to_continue":"Log in om verder te gaan","mnemonic_code":"Mnemonische code","wordlist":"Woordenlijst","restore_code":"Herstellen vanuit code","generate_code":"Code genereren","export_mnemonic_code":"Export geheugensteuntje code","import_mnemonic_code":"Mnemocode importeren","print":"Afdrukken","save_as_txt":"Opslaan als txt","save_as_pdf":"Opslaan als pdf","from_file":"Van bestand","not_valid_mnemonic_code":"Dit is geen geldige geheugensteuncode","cannot_parse_code_as_key":"Kan deze geheugensteuncode niet ontleden als bibliotheeksleutel","import_key_hint":"Weet u zeker dat u deze sleutel wilt importeren? Hiermee wordt uw oude sleutel in de bibliotheek hersteld.","import_key_confirm":"Ja, importeer het.","library_preload":"Taken vooraf laden vanuit de bibliotheek","show_preload":"Vooraf geladen taken weergeven","set_download":"Downloadmap instellen","set_download_desc":"Voor de macOS App Store-versie bevindt de standaard downloadmap zich in de sandbox van de app en wordt deze verwijderd nadat de app is verwijderd. Als u uw downloadbestanden wilt behouden, moet u handmatig een andere downloaddirectory selecteren.","home":"Thuis","home_caption":"Downloaden/uploaden en mediabestanden","library":"Bibliotheek","library_caption":"Verken mediabronnen","player":"Speler","player_caption":"Mediaspeler","credits":"Credits","credits_caption":"Accountsaldo controleren","account":"Rekening","account_caption":"Aanmelden/Aanmelden/Beheer","settings":"Instellingen","settings_caption":"Instellingen voor app, speler, account","development":"Ontwikkeling","development_caption":"Ontwikkelaarsmodus voor intern gebruik","basic":"Eenvoudig","basic_caption":"Basis instellingen","advanced":"Geavanceerd","advanced_caption":"Geavanceerde instellingen","blockchain":"Portemonnee","blockchain_caption":"${displayName} Gedecentraliseerde portemonnee","internal_notice":"Interne vrijgavemelding","release_notes":"Release-opmerkingen","terms_and_conditions":"Voorwaarden","license_and_listen_notices":"Licentie en Luister Open Source Kennisgevingen","close":"Dichtbij","success":"Succes","fail":"Mislukking","account_email_invalid_address":"Ongeldig e-mailadres","account_email_invalid_domain":"Ongeldig e-maildomein","account_email_unknown_status":"Onbekende status van e-mailbezorging","account_email_unavailable_address":"E-mailadres niet beschikbaar","account_email_suppressed_address":"Onderdrukt e-mailadres","account_loading":"Bezig met laden...","account_is_required":"Is benodigd","account_sign_in_your_account":"Aanmelden","account_username":"Gebruikersnaam","account_username_email_phone":"Telefoonnummer of e-mail","account_password":"Wachtwoord","account_new_password":"Nieuw paswoord","account_re_enter_password":"Geef het wachtwoord opnieuw in","account_password_not_equal":"Twee wachtwoorden zijn niet gelijk","account_new_password_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","account_forgot_your_password":"Je wachtwoord vergeten?","account_reset_password":"Wachtwoord opnieuw instellen","account_sign_in":"Aanmelden","account_signed_in":"Ingelogd","account_sign_up":"Aanmelden","account_find_your_account":"Vind je account","account_enter_your_username":"Voer uw telefoonnummer of e-mailadres in","account_search":"Zoekopdracht","account_email_sent_tip":"Er is een e-mail met een verificatiecode naar uw e-mailadres verzonden:","account_phone_sent_tip":"Er is een sms met een verificatiecode naar je telefoon gestuurd:","account_email_phone_sent_tip":"E-mail en sms met verificatiecode zijn respectievelijk naar uw e-mail en telefoon verzonden:","account_software_token_tip":"MFA is ingeschakeld voor uw account. Om het inloggen te voltooien, schakelt u uw apparaat in of bekijkt u het en typt u de TOTP","account_reset_your_password":"Stel je wachtwoord opnieuw in","account_verification_code":"Verificatie code","account_resend_code":"Code nogmaals versturen","account_code_has_been_resent":"Verificatiecode is opnieuw verzonden","account_password_has_been_reset":"Wachtwoord is gereset","account_submit":"Indienen","account_sign_up_your_account":"Registreer uw account","account_fill_required_fields":"Vul hieronder de verplichte velden in.","account_fill_optional_fields":"Vul onderstaande optionele velden in.","account_email":"E-mail","account_invitation":"Uitnodiging","account_invitation_code":"Uitnodigingscode","account_i_accept":"ik aanvaard","account_license_terms":"de licentie en voorwaarden","account_next":"Volgende","account_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren.","account_verify_fill_optional_fields":"Controleer en vul optionele velden in.","account_nickname":"Bijnaam","account_gender":"Geslacht","account_male":"Mannelijk","account_female":"Vrouwelijk","account_not_say":"Niet zeggen","account_birthday":"Verjaardag","account_phone_number":"Telefoonnummer","account_locale":"Lokaal","account_tip_verified":"Geverifieerd, aanmelden...","account_verified":"geverifieerd","account_unverified":"niet geverifieerd","account_signed_up":"Ingeschreven","account_verify_your_identity":"Verifieer uw identiteit","account_finish":"Finish","account_signed_out":"Uitgelogd","account_change_password":"Verander wachtwoord","account_change_email":"E-mailadres wijzigen","account_change_phone_number":"Wijzig telefoonnummer","account_sign_out":"Afmelden","account_current_password":"Huidig ​​wachtwoord","account_re_enter_new_password":"voer nieuw wachtwoord opnieuw in","account_personal_information":"Informatie","account_edit":"bewerking","account_reset":"resetten","account_greeting":"Hallo,","account_cancel":"Annuleren","account_change":"wijziging","account_not_set":"niet ingesteld","account_setting":"instelling","account_copy_code":"kopieer de code","account_account_setting":"Rekening","account_task_page":"Krediet taak","account_setting_caption":"Wijzig wachtwoord / bewerk informatie","account_security":"Beveiliging","account_want_to_join":"Wil je meedoen?","account_sign_in_now":"Aanmelden","account_changed":"gewijzigd","account_clipboard_with_invitation_code":"Uitnodigingscode gekopieerd","account_clipboard_with_code":"De code gekopieerd","account_invitation_code_dialog_tip":"Je stuurt je vriend een e-mail of sms met een uitnodigingscode:","account_available":"beschikbaar","account_invited":"uitgenodigd","account_used":"gebruikt","account_invitation_code_sent":"Uitnodigingscode is verzonden","account_invitation_channel_required":"Vul minimaal één uitnodigingskanaal in","account_no_verification_code":"Verificatiecode niet ontvangen?","account_no_phone_number":"Geen telefoonnummer?","account_sign_up_by_email":"Aanmelden per e-mail","account_no_email":"Geen e-mail?","account_sign_up_by_phone_number":"Aanmelden via telefoonnummer","account_no_totp":"Geen TOTP?","account_tip_no_totp":"Als er geen TOTP is, stel dan eerst TOTP in","account_setup_totp":"Stel TOTP in","account_contact_information":"Contactgegevens","account_delete_account":"Account verwijderen","account_deleted":"verwijderd","account_can_not_mfa":"MFB in de problemen?","account_set_mfa_type":"MFA configureren","account_disable_mfa":"MFA uitschakelen","account_disabled_mfa":"MFA uitgeschakeld","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFB","account_totp":"TOTP","account_not_recommend":"Niet aan te raden","account_oauth_sign_in_with":"Log in met {provider}","account_sign_in_failed":"Inloggen mislukt","account_tip_oath_sign_up":"Het e-mailadres dat overeenkomt met het huidige {provider}-account: {email} heeft nog geen account aangemaakt","account_tip_confirm_delete_account":"Voer het huidige accountwachtwoord in om te bevestigen dat u het huidige account wilt verwijderen. (Verwijderde accounts kunnen niet worden hersteld)","account_tip_config_mfa":"U kunt ervoor kiezen om SMS of op tijd gebaseerd eenmalig wachtwoord (TOTP) als secundaire authenticatie te gebruiken","account_error_can_not_enable_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om MFA in te schakelen","account_tip_can_not_enable_sms_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om SMS MFA in te schakelen","account_tip_can_not_enable_totp_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om TOTP MFA in te schakelen","account_tip_setup_totp":"Gebruik apps zoals Authenticator om onderstaande QR-code te scannen of kopieer de code handmatig om een ​​security token toe te voegen","account_tip_verify_totp":"Controleer uw TOTP","account_link_your_social_account":"Bind uw sociale account","account_unlink_your_social_account":"Ontkoppel sociaal account","account_tip_confirm_link":"Weet u zeker dat u de lopende rekening aan uw {provider}-rekening wilt binden?","account_tip_confirm_unlink":"Weet u zeker dat u uw gebonden {provider}-account wilt annuleren?","account_tip_linking":"verbindend...","account_tip_unlinking":"Ontbinden...","account_linked":"Gebonden","account_unlinked":"Ongebonden","account_error_can_not_link_to_the_linked_account":"Het huidige sociale account is gekoppeld aan een ander account","account_error_can_not_link_to_the_mismatched_email":"Het huidige account en het e-mailadres van het sociale account zijn niet consistent","account_error_can_not_link_before_email_verified":"Het sociale account kan niet worden gekoppeld omdat het huidige account niet is gebonden aan een geverifieerde e-mail","account_tip_confirm_verify_email_phone":"Of u een verificatiecode naar het e-mailadres en telefoonnummer van het huidige account moet sturen om uw identiteit te verifiëren?","account_tip_confirm_verify_phone":"Of u een verificatiecode naar het huidige telefoonnummer moet sturen om uw identiteit te verifiëren?","account_error_1_message_60_seconds":"Er kan slechts één sms of e-mail per 60 seconden worden verzonden, wacht nog eens {delta} seconden","account_error_10_messages_per_day":"Elke mobiele telefoon of e-mail kan maximaal 10 berichten binnen 24 uur verzenden","account_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","Network Error":"Er is een probleem met het netwerk, probeer het later opnieuw","account_error_user_not_exist":"Gebruiker bestaat niet","account_error_incorrect_username_or_password":"foute gebruikersnaam of wachtwoord","account_error_incorrect_original_password":"Onjuist origineel wachtwoord","account_error_incorrect_password":"Incorrect wachtwoord","account_error_username_not_found":"gebruikersnaam niet gevonden","account_error_can_not_reset_for_no_verified":"Kan het wachtwoord voor het niet-geverifieerde account niet resetten","account_error_invalid_verification_code":"Onjuiste verificatiecode, probeer het opnieuw","account_error_expired_verification_code":"Verificatiecode is verlopen, probeer het opnieuw","account_error_password_not_long_enough":"Wachtwoord is niet lang genoeg","account_error_attempt_limit_exceeded":"Pogingslimiet overschreden, probeer het na enige tijd opnieuw.","account_error_password_attempts_exceeded":"Wachtwoordpogingen overschreden.","account_error_invalid_phone_number_format":"Ongeldig telefoonnummerformaat","account_error_no_cell_phone_prefix":"Selecteer het voorvoegsel voor het telefoonnummer","account_error_username_already_exists":"De gebruikersnaam bestaat al","account_error_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren","account_error_inactive_code":"De uitnodigingscode is geen geactiveerde code","account_error_non_existent_code":"De uitnodigingscode bestaat niet","account_error_unexpected":"Onverwachte fout","account_error_can_not_change_email_before_phone_bound":"Het e-mailadres kan niet worden gewijzigd voordat het telefoonnummer is gebonden","account_error_can_not_change_email_before_unbound_social_account":"De e-mail kan niet worden gewijzigd voordat het sociale account is losgekoppeld","account_error_can_not_change_phone_before_email_bound":"Het telefoonnummer kan niet worden gewijzigd voordat de e-mail is gebonden","account_error_can_not_change_email_phone_with_mfa_enabled":"Kan e-mailadres of mobiel telefoonnummer niet wijzigen voordat MFA is uitgeschakeld","account_error_not_supported_yet":"Momenteel niet ondersteund","account_error_same_email":"Het nieuwe e-mailadres mag niet hetzelfde zijn als het oorspronkelijke e-mailadres","account_error_same_phone":"Het nieuwe telefoonnummer kan niet hetzelfde zijn als het oorspronkelijke telefoonnummer","account_error_email_not_exists":"Email adres bestaat niet","account_error_email_already_exists":"Er bestaat al een account met het opgegeven e-mailadres.","account_error_phone_already_exists":"Er bestaat al een account met het opgegeven telefoonnummer.","account_error_mfa_token_mismatch":"Softwaretokencode komt niet overeen","account_error_recaptcha_not_loaded":"Er is een probleem met het netwerk. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_recaptcha_validation_failed":"ReCAPTCHA-validatie mislukt. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_sign_in_in_progress":"Aanmeldingspoging in behandeling is al bezig","account_field_range":"Beperk de invoer van {0}-{1} tekens","account_field_only_alphanumeric":"Ondersteunt alleen alfanumeriek","account_field_only_alphanumeric_and_symbol":"Ondersteunt alleen alfanumeriek en symbolen","account_field_only_chinese_alphanumeric_space_underline":"Ondersteunt alleen alfanumeriek, spatie, underscore","account_field_prefix_without_number_space":"Het eerste teken mag geen cijfer of spatie zijn","account_field_suffix_without_space":"Kan niet eindigen op een spatie","account_field_without_repeat_space":"Kan niet meerdere spaties achter elkaar gebruiken","account_field_can_not_only_alphanumeric":"U kunt niet alleen letters of cijfers gebruiken","account_field_must_have_number_characters":"Moet cijfertekens hebben","account_field_verification_code":"De verificatiecode moet uit zes cijfers bestaan","account_field_invitation_code":"Uitnodigingscode moet alfanumeriek zijn","account_field_phone_number":"Ongeldig telefoonnummerformaat","account_invalid_email_format":"ongeldige email formaat","account_sign_out_confirm":"Weet u zeker dat u zich wilt afmelden? Hierdoor worden alle taken stopgezet.","account_sign_out_anyway":"Meld je toch af","account_signing_out":"Uitloggen...","account_request_save_settings":"Instellingen worden niet opgeslagen. U moet de wijzigingen opslaan voordat u zich afmeldt.","pay":"Betalen","pay_with_credit":"Betalen voor het versnellen van downloaden. Heeft ongeveer {0} tegoed nodig","pay_with_credit_payed":"Versnellen. Heeft nog ongeveer {0} tegoed nodig","create_payment":"Betaling aanmaken","pay_target":"Doel","pay_for_torrent":"Betaal voor {0}","your_subid":"Uw subID","your_credits":"Uw tegoeden","pay_point_for_data":"Betaal {0} punt voor {1} data","auto_renew":"Automatisch verlengen inschakelen","transaction_details":"transactie details","transaction_id":"ID kaart","transaction_payer":"Betaler","transaction_payee":"Begunstigde","transaction_category":"Categorie","transaction_changed_amount":"Gewijzigd bedrag","transaction_meta":"Meta","transaction_status":"Toestand","transaction_creation_time":"Creatie tijd","receipt_code":"Ontvangstcode","transfer_amount":"Bedrag overmaken","code_the_receipt_code":"Kopieer onderstaande boncode naar de betaler","fill_the_receipt_code":"Maak over door de door de begunstigde verstrekte betaalcode in te vullen","expense":"Kosten","copied":"Gekopieerd","transfer":"Overdracht","receive":"Ontvangen","copy":"Kopiëren","withdraw_fund":"Fonds opnemen","category_paydata_payer":"Kosten van gegevens","category_paydata_payee":"Inkomsten van gegevens","category_transfer":"Overdracht","category_bonus":"Bonus","category_recharge":"Opladen","status_pending":"in behandeling","status_completed":"voltooid","status_finish":"finish","status_failed":"mislukt","tip_invalid_receiver":"Ongeldige ontvangercode","tip_invalid_amount":"Het kredietbedrag moet een float zijn in het bereik van 0-1000 (minimale precisie is 0,001)","credit_get_more":"Krijg meer kredieten","credit_no_data":"Geen gegevens beschikbaar","credit_loading":"Bezig met laden...","credit_not_enough_amount":"Niet genoeg tegoeden","credit_amount_not_enough":"Niet genoeg tegoeden","credit_payee_not_exist":"Begunstigde bestaat niet","credit_invalid_amount":"Ongeldig tegoedbedrag","credit_can_not_transfer_to_yourself":"Kan niet naar jezelf overdragen","credit_latest":"Laatste","credit_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","add_subtitles":"Ondertiteling toevoegen","open_file":"Open bestand...","advanced_options":"Geavanceerde mogelijkheden","title":"Titel","location":"plaats","subtitle_file":"ondertitel bestand","unsupported_subtitle_type":"Het bestandstype {0} is geen ondersteund ondertitelingstype","not_default_player":"De standaard videospeler is niet ingesteld","this_is_an_audio_file":"Dit is een audiobestand","the_added_subtitle_already_exists":"De toegevoegde ondertitel bestaat al","stop_stream_player":"De streaming media is beëindigd omdat de taak is onderbroken of verwijderd","stop_player":"De speler is beëindigd omdat het bestand is verwijderd","playing_timeout_hint":"Wacht tijden uit. Controleer de taak","autoplay_hint":"Autoplay kan worden geblokkeerd door uw browser. Als de speler niet speelt, klik dan op het scherm om door te gaan","remove_playing_confirm":"{0} speelt nog steeds, verwijder het om de speler te stoppen. Weet je zeker dat je het wilt verwijderen?","unsupported_in_browser":"Nog niet ondersteund in browsermodus","client":"Cliënt","warning":"Waarschuwing","enable":"Inschakelen","disable":"Uitzetten","auto":"Auto","encrypt_connection":"Versleutel de verbinding","encrypted_connection":"Versleutelde verbinding","non_encrypted_connection":"Niet-versleutelde verbinding","connected_wires_not_disconnect":"Aangesloten draden worden niet losgekoppeld","audio":"geluid","video":"video","image":"afbeelding","subtitle":"ondertitel","zip":"ritssluiting","text":"tekst","unknown":"onbekend","add":"Toevoegen","undo":"Ongedaan maken","backup":"Back-up","not_default_app":"${displayName} is niet je standaard app voor torrent en media, wil je deze als standaard instellen?","dont_show_again":"Niet meer laten zien","go_to_settings":"Ga naar Instellingen","about_alphabiz":"Over ${displayName}","last_check_at":"Laatste controle om","update_channel":"Kanaal bijwerken","check_for_update":"Controleer op updates","checking_for_update":"Controleren op updates...","no_update_available":"Geen update beschikbaar","update_available":"Update beschikbaar","update_now":"Update nu","update_later":"Later bijwerken","click_to_update":"Klik op de knop NU UPDATEN om te downloaden en bij te werken","update_failed":"Update mislukt","update_failed_message":"Er is een fout opgetreden tijdens het updaten:","check_shasum_failed":"Kan de integriteit van het installatieprogramma niet controleren","downloading_update":"Update downloaden...","ready_to_update":"Klaar om te updaten","restart_to_update":"Update wordt gedownload. ${displayName} wordt afgesloten om even bij te werken.","already_latest":"De huidige versie ({0}) is al de laatste","update_timeout":"Time-out bijwerken","no_available_release":"Geen beschikbare uitgave","no_available_installer":"Geen beschikbaar installatieprogramma","feedback":"Feedback","select_a_type":"Selecteer een soort","category":"Categorie","select_a_category":"Kies een categorie","require_title":"Titel is vereist","describe_your_problem":"Beschrijf uw probleem","report_a_bug":"Meld een fout","request_a_new_feature":"Vraag een nieuwe functie aan","download_or_upload":"Downloaden uploaden","others":"Anderen","submit_with_system_info":"Dien in met systeeminfo","submit_feedback":"Feedback verzenden","tweet_us":"Tweet ons","tweet_too_long":"Tweet is te lang","delete_characters":"Verwijder ten minste {0} karakter(s)","rest_characters":"U kunt {0} meer teken(s) invoeren","update_alphabiz":"Bijwerken ${displayName}","current_version":"Huidige versie","cancel_update":"Update annuleren","slow_download_speed":"Te langzaam downloaden","slow_download_speed_caption":"Het downloaden van het installatieprogramma is nu te traag. Controleer de netwerkstatus","update_canceled":"Update geannuleerd","current_version_release_time":"Releasetijd van de huidige versie","expired_app":"${displayName} Verlopen","version_out_of_date":"Versie verouderd","have_to_update":"De versie van ${displayName} is verouderd. Sommige protocollen of API\'s zijn verouderd. U moet ${displayName} updaten voordat u doorgaat.","exit_alphabiz":"Uitgang ${displayName}","exit_and_update":"Sluit af en pas de update toe","new_version_hint":"Nieuwe versie is beschikbaar","no_new_version":"Geen nieuwe versie beschikbaar","current_is_latest":"De huidige versie is al de nieuwste","click_to_check_update":"Klik op de knop [CHECK FOR UPDATE] om te controleren op updates","download_latest_version_from_website":"Bezoek de officiële website om de nieuwste versie te downloaden","to_the_website":"Naar de website","network_diagnotic":"Netwerk diagnose","diagnotic":"Diagnostisch","click_to_check":"Klik om te controleren","click_to_check_again":"Klik om opnieuw te controleren","checking":"Controleren","online":"Online","offline":"offline","dns_look_up":"DNS-zoekopdracht","error":"Fout","aws_service":"AWS-service","network_pings":"Netwerkping","not_found":"Niet gevonden","packet_loss":"Pakket(ten) verloren","official_site":"Officiële site","download_test":"Test downloaden","test_task":"Testtaak {0}","download_failed":"Download mislukt","second_spend":"{0} s uitgeven","open_default_player_failed":"Kan de standaardspeler niet openen","copied_to_clipboard":"Gekopieerd naar het klembord","go_to":"Ga naar","region_not_available":"Regio niet beschikbaar","region_not_available_message":"Sorry! Uw regio is niet beschikbaar om deze app te gebruiken. Deze app stopt na {0} seconden","confirm":"Bevestigen","no_available_result":"Geen beschikbaar resultaat","invalid_password_format":"ongeldig wachtwoord formaat","invalid_password_format_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","error_password":"Verkeerd wachtwoord","keychain_setting":"Sleutelhanger","setting_description":"Cloudopslag: sla belangrijke gegevens op in de cloud.\\nWachtwoord wijzigen: Wijzig het wachtwoord voor de mediabibliotheeksleutel.\\nMnemonic: een alternatieve methode voor het genereren en herstellen van sleutels.\\nLokale sleutel importeren: importeer de lokaal opgeslagen sleutel in de mediabibliotheek.\\nExportsleutel: Slaat de huidige mediabibliotheekgegevens op naar de lokale of cloud.\\nBack-upsleutel naar cloud: werk de huidige mediabibliotheekgegevens bij naar de cloud voor back-up.","refresh_status":"Status bijwerken","confirm_import_key":"Bevestig de importsleutel","confirm_update_cloud_key":"Je hebt al een sleutel in de cloud. Als u de sleutel bijwerkt, wordt de originele sleutel overschreven. Weet u zeker dat u de in de cloud opgeslagen sleutel wilt bijwerken","export_key_with_cloud":"Voer het onafhankelijke wachtwoord in dat u hebt ingesteld om de bibliotheeksleutel die in de cloud is opgeslagen te exporteren en vergrendel het sleutelbestand met het ontgrendelingswachtwoord","store_cloud_key_prompt_password":"Voer een onafhankelijk wachtwoord in om de bibliotheeksleutel in de cloud op te slaan","update_cloud_key_prompt_password":"Stel een onafhankelijk wachtwoord in om de bibliotheeksleutel te coderen en update deze vervolgens naar de cloud","enable_cloud_storage_prompt_password":"Stel een wachtwoord in voor de sleutel die in de cloud is opgeslagen, waarmee u de sleutel uit de cloud kunt ophalen","input_unlock_password":"Stel het ontgrendelingswachtwoord in","export_local_prompt_password":"Stel een ontgrendelingswachtwoord in om uw sleutelbestand te versleutelen. We slaan dit wachtwoord niet voor u op, dus als u uw wachtwoord kwijtraakt, kunt u uw bibliotheeksleutel niet ontgrendelen","require_unlock_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","require_independent_password":"Voer het onafhankelijke wachtwoord in om de sleutel in de cloud op te slaan","import_local_prompt_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","select_encrypt_mode":"Selecteer de coderingsmodus","update_cloud_key":"Werk de sleutel bij die in de cloud is opgeslagen","backup_to_cloud":"Maak een back-up van de bibliotheeksleutel naar de cloud","save_local":"Sla de bibliotheeksleutel op als lokaal gecodeerd bestand","create_new_key":"Maak een nieuwe bibliotheeksleutel aan","creating_lib_key":"Bibliotheeksleutel maken...","loading_lib_key":"Bibliotheeksleutel laden...","failed_to_create_lib_key":"Kan bibliotheeksleutel niet maken","failed_to_load_lib_key":"Kan bibliotheeksleutel niet laden","import_local_key":"Sleutel lokaal importeren","import_lib_key_from_local":"Importeer lokaal een bibliotheeksleutel","import_from_cloud":"Importeer de bibliotheeksleutel uit de cloud","create_or_import_key":"Bibliotheeksleutel maken of importeren","create_or_import_key_desc":"Bibliotheeksleutel is een onafhankelijke sleutel die wordt gebruikt om inhoud op te halen en te publiceren met een gedecentraliseerde database.","store_your_lib_key":"Bewaar uw bibliotheeksleutel","export_cloud_key":"Sleutel exporteren vanuit de cloud","export_current_key":"Exporteer huidige sleutel","change_password":"Verander wachtwoord","enable_cloud_storage":"Schakel cloudopslag in","disable_cloud_storage":"Schakel cloudopslag uit","disable_cloud_storage_desc":"Als u cloudopslag uitschakelt, wordt de in de cloud opgeslagen sleutel verwijderd. Zorg ervoor dat de sleutel lokaal wordt opgeslagen","sync_at":"Synchroniseren op: {time}","cloud_storage_enabled":"Synchroniseer sleutelhanger met {storage}","cloud_storage_disabled":"Cloudopslag uitgeschakeld","saved_locally":"Lokaal opgeslagen","export_key":"Sleutelbestand exporteren","cloud_independent_password":"Cloudonafhankelijk wachtwoord","key_file_unlock_password":"Sleutelbestand ontgrendelingswachtwoord","re_enter_unlock_password":"Voer het ontgrendelingswachtwoord opnieuw in","independent_password_not_enabled":"Het huidige wachtwoord is het wachtwoord van het Alphabiz-account (er is geen onafhankelijk wachtwoord ingesteld)","use_cognito_hash":"Gebruik het wachtwoord van het Alphabiz-account","use_independent_password":"Gebruik onafhankelijk wachtwoord","keychain_lib":"bibliotheek sleutel","loading_keychain_state":"Sleutelhanger laden...","backing_up":"Ondersteunen...","backup_current_key":"Maak een back-up van de huidige sleutel naar de cloud","cloud_lib_key_not_existed":"bibliotheeksleutel bestaat niet in Cloud","open_keychain_file":"Open Sleutelhangerbestand","confirm_open_abk":"Wilt u het ABK-bestand openen","use_the_key":"Gebruik de sleutel","backup_the_key":"Maak een back-up van de sleutel naar de cloud","keychain_data_does_not_exist":"Sleutelhangergegevens bestaan ​​niet","timeout of 0ms exceeded":"Er is een probleem met het netwerk, probeer het later opnieuw","XhrError":"Er is een probleem met het netwerk, probeer het later opnieuw","payer credit amount is not enough":"Niet genoeg tegoeden","payee does not exist":"Begunstigde bestaat niet","block_list_manage":"Blokkeerlijst beheren","blocked_users":"Geblokkeerde gebruikers","blocked_channels":"Geblokkeerde kanalen","unblock_user":"Deblokkeer gebruiker","unblock_channel":"Kanaal deblokkeren","no_blocked_user":"Geen geblokkeerde gebruiker","no_blocked_channel":"Geen geblokkeerd kanaal","field_required":"{0} is vereist","setting":"Instelling","unknown_media":"Onbekende media","settings_button_visible":"Knop zichtbaar","settings_setting":"Instelling","settings_playback_rate":"Afspeelsnelheid","settings_subtitle":"Ondertitel","settings_pip":"Pip","settings_fullscreen":"Volledig scherm","settings_subtitle_options":"Ondertitel opties","settings_normal":"Normaal","settings_italic":"Cursief","settings_lighter":"Aansteker","settings_bolder":"Bolder","settings_small":"Klein","settings_large":"Groot","about":"Over","services":"Diensten","hide":"Verbergen","hide_others":"Verberg anderen","show_all":"Toon alles","quit":"Ontslag nemen","edit":"Bewerking","redo":"Opnieuw doen","cut":"Snee","paste":"Plakken","select_all":"Selecteer alles","view":"Weergave","reload":"Herladen","toggle_full_screen":"Volledig scherm activeren","toggle_developer_tools":"Schakel ontwikkelaarstools in","window":"Raam","minimize":"Minimaliseren","bring_all_to_front":"Breng alles naar voren","help":"Hulp","github_repo":"Github-opslagplaats","issues":"Problemen","learn_more":"Kom meer te weten","learn_spelling":"Leer spelling","lookup_selection":"Zoek \\"{selection}\\" op","search_with_google":"Zoek met Google","save_as":"Opslaan als","save_image":"Afbeelding opslaan","save_image_as":"Sla afbeelding op als ...","copy_link":"Kopieer link","save_link_as":"Link opslaan als ...","copy_image":"Kopieer afbeelding","copy_image_as":"Afbeelding kopiëren als...","copy_image_address":"Kopieer afbeeldingsadres","download_complete":"Download compleet","download_complete_message":"{0} wordt gedownload","is_running":"{0} is actief","open":"{0} openen","launch_problem":"Start probleem","ask_clear_data":"Het lijkt erop dat je {0} probeert te starten, maar meerdere keren is mislukt.\\nWilt u alle app-gegevens wissen en later proberen te starten?","launch_directly":"Start direct","clear_all_data":"Wis alle gegevens","ask_clear_confirm":"Hiermee worden alle configuraties, logs en gebruikersgegevens verwijderd!\\nHierna moet u mogelijk {0} opnieuw starten.\\nWeet u zeker dat u gegevens wilt wissen?","confirm_launch":"Nee, start direct","confirm_clear":"Ja, wis alle gegevens"}')},6:function(e,t){},"603c":function(e,t,a){},"61a1":function(e,t,a){"use strict";a.d(t,"b",(function(){return Ai}));var n=a("ff9b"),o=a("fe87"),i=(a("de6c"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-container",class:{larger:!e.isElectron}},[a("q-toolbar",{staticClass:"library-header q-py-sm flex",staticStyle:{"flex-wrap":"nowrap","max-height":"57px"}},[e.lib.search.options.length?[e.$q.screen.xs?a("q-btn",{attrs:{unelevated:"",round:"",icon:"search"}},[a("q-menu",[a("q-card",{staticClass:"q-pa-md"},[a("q-select",{staticClass:"q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}}),a("q-input",{attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})],1)],1)],1):a("q-input",{staticStyle:{width:"320px"},attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"before",fn:function(){return[a("q-select",{staticStyle:{"min-width":"120px"},attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}})]},proxy:!0},{key:"append",fn:function(){return[a("q-icon",{attrs:{name:"search"}})]},proxy:!0}],null,!1,311008788),model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})]:e._e(),a("q-space"),a("div",{staticClass:"header-bar-status text-grey q-my-sm q-ml-xs flex no-wrap items-center text-right overflow-hidden"},[a("div",{staticClass:"from-network-hint",staticStyle:{"flex-shrink":"1"}},[e._v(e._s(e.$t("lib_from_network")))]),a("q-badge",{staticClass:"connection-status cursor-pointer q-ml-xs",attrs:{"text-color":"white",color:e.statusColor},on:{click:function(t){e.peerDialog=!0}}},[e.lib.online?a("q-icon",{staticClass:"status-icon",attrs:{name:"flash_on"}}):e._e(),a("span",{staticClass:"status-label"},[e._v(e._s(e.statusLabel))])],1)],1)],2),a("div",{staticClass:"library-view"},[a("transition",{attrs:{name:"slide",mode:"out-in"}},[a("keep-alive",{attrs:{exclude:"LibraryChannel,LibraryRecommend"}},[e.isLoggedIn?e.showRecommend?a("Recommend"):a("router-view"):a("Login")],1)],1)],1),a("ConnectionStatus",{model:{value:e.peerDialog,callback:function(t){e.peerDialog=t},expression:"peerDialog"}})],1)}),r=[],s=(a("a1c1"),a("36a1")),l=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"login-container"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".abk"},on:{change:e.onFileChange}}),a("q-dialog",{model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[a("q-card",[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("import_key")))]),a("q-input",{staticStyle:{width:"480px"},attrs:{type:"text",label:e.$t("key")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.userKey,callback:function(t){e.userKey=t},expression:"userKey"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{attrs:{flat:"",label:e.$t("import"),color:"primary"},on:{click:e.importKey}})],1)],1)],1),a("Loading",{attrs:{value:!0}})],1)},c=[],d=(a("e39c"),a("5584")),u=a("35f4"),_=a("3aea"),p=a("2d62"),m=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showLoading,expression:"showLoading"}],staticClass:"non-selectable",class:["absolute-top-left","full-width","full-height"].concat(["column","justify-center","items-center"],["bg-page","text-page"])},[a("div",{staticClass:"items-center"},[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])])},h=[],g=a("a449");const f=()=>{let e;return{data(){return{keychainLoadingState:!1,keychain:g["a"]}},watch:{"keychain.loading"(t){e&&clearTimeout(e),t?e=setTimeout((()=>{this.keychainLoadingState=!0}),500):this.keychainLoadingState=!1}}}};var b={name:"Loading",mixins:[f()],props:{value:Boolean},computed:{showLoading(){const e="signedOut"===this.$store.state.account.authState;return this.value&&!this.keychainLoadingState&&!e}},methods:{onChange(){this.$emit("change",!this.value)}}},y=b,v=(a("9fe7"),a("2b5f")),w=a("53ef"),k=a("09a4"),S=a.n(k),C=Object(v["a"])(y,m,h,!1,null,"1f47903d",null),x=C.exports;S()(C,"components",{QSpinner:w["a"]});const $=Object(u["a"])("abcdefg",5),T=Object(u["a"])("0123456789abcdef",40);var z={data(){return{username:"",password:"",nickname:"",description:"",avatar:"",userKey:"",showImport:!1}},components:{Loading:x},computed:{showLoading(){const e=this.$store.state.account.authState;return null===e}},methods:{validate(){if(!this.nickname){const e=d["a"].getters.accountUserInfo.nickname;this.nickname=e||this.username.substring(0,12)}return!0},showImportDialog(){this.$refs.fileSelector.click()},onFileChange(e){var t,a;null!==e&&void 0!==e&&null!==(t=e.target)&&void 0!==t&&null!==(a=t.files)&&void 0!==a&&a[0]&&Object(_["g"])(e.target.files[0]).then((e=>{if(!e)return this.$q.notify("Cannot read key pair from this file");this.userKey=e,this.importKey()}))},onReset(){this.username=$()+T(35),this.password=T(),this.nickname="",this.description=""},async onSubmit(){const e=this.validate();if("string"===typeof e)return this.$q.dialog({message:e});console.log(this.username,this.password,this.nickname),s["a"].register(this.username,this.password,{name:this.nickname,description:this.description,avatar:this.avatar}).then((()=>{const e=Object(p["t"])();if(console.log(e,s["a"].user),e._&&e._.sea){const t=e._.sea,{epub:a,pub:n,epriv:o,priv:i}=t;if(!a||!n||!o||!i)return;const r=[a,n,o,i].join(":");this.$q.dialog({title:this.$t("save_key"),message:this.$t("save_key_file"),ok:this.$t("save_key"),cancel:this.$t("cancel")}).onOk((()=>{var t,a;Object(_["h"])(r,`${(null===(t=e.data)||void 0===t?void 0:t.name)||(null===(a=s["a"].userData)||void 0===a?void 0:a.name)||"user"}.abk`)})).onDismiss((()=>{s["a"].prepareData()}))}}))},autoCreate(){this.onReset(),this.onSubmit()},importKey(){if(s["a"].isLoggedIn)return;console.log(this.userKey);const[e,t,a,n]=this.userKey.split(":");if(!e||!t||!a||!n)return this.$q.notify(this.$t("invalid_key"));s["a"].login({epub:e,pub:t,epriv:a,priv:n}).then(s["a"].prepareData)}},created(){this.onReset(),s["a"].$on("logged-in",(()=>{const e=[this.username,this.password].join(":");console.log("Logged in",e),this.$emit("login")}))}},P=z,A=(a("86d7"),a("1043")),I=a("b2aa"),q=a("e586"),O=a("d7c7"),E=a("0e45"),D=a("59ba"),j=Object(v["a"])(P,l,c,!1,null,"6a9c1d57",null),N=j.exports;S()(j,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]});var L=a("36a5"),U=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.value,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:function(t){return e.$emit("input",t)}}},[a("q-card",{staticClass:"peer-dialog-card"},[a("q-card-section",{staticClass:"row items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-bold peers-title"},[e._v(e._s(e.$t("connection_status")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{unelevated:"",round:"",icon:"close"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}],staticClass:"q-mb-sm"}),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area gun-server-list"},[a("div",{staticClass:"servers-title q-ml-sm q-mb-sm row items-center"},[a("div",{staticClass:"text-h6 q-mr-sm"},[e._v(e._s(e.$t("gun_server_list")))]),a("q-btn",{attrs:{flat:"",unelevated:"",rounded:"",dense:"",icon:"help_outline"},on:{click:e.showServerHelp}},[a("q-tooltip",[e._v(e._s(e.$t("about_cache_node")))])],1),a("q-space"),a("q-btn",{attrs:{unelevated:"",round:"",icon:"add"},on:{click:e.createCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("create_cache_node")))])],1),a("q-btn",{attrs:{unelevated:"",round:"",icon:"edit"},on:{click:e.editCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("edit_cache_node")))])],1)],1),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("server")))])])]),a("tbody",e._l(e.wsPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left",class:"text-"+e.statusColorMap[t.status]},[e._v(e._s(e.statusTextMap[t.status]))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))])])})),0)])],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area wrtc-peer-list"},[a("div",{staticClass:"peers-title q-ml-sm q-mb-sm text-h6"},[e._v(e._s(e.$t("peer_list")))]),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"}),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("peer_id")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("connection")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("data_source")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("download")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("upload")))])])]),a("tbody",[e.wrtcPeers&&Object.keys(e.wrtcPeers).length?e._l(e.wrtcPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left"},[a("q-icon",{attrs:{name:e.getPeerStatusIcon(t),color:"primary"}},[a("q-tooltip",[e._v(e._s(e.getPeerStatusTooltip(t)))])],1)],1),a("td",{staticClass:"text-left"},[e._v(e._s(e.getPeerId(t)))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.label))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.from))]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.downloaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.downloadSpeed))+" / s")]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.uploaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.uploadSpeed))+" / s")])])})):a("tr",{staticClass:"q-pa-md"},[a("td",{staticClass:"full-width text-center",attrs:{colspan:"8"}},[e._v("\n "+e._s(e.$t("credit_no_data"))+"\n ")])])],2)])],1)])],1)],1)},R=[],M=a("6422"),F={name:"LibraryConnectionStatus",props:{value:Boolean},data(){return{}},computed:{statusTextMap(){return{[WebSocket.CLOSED]:this.$t("offline"),[WebSocket.OPEN]:this.$t("connected"),[WebSocket.CONNECTING]:this.$t("connecting"),[WebSocket.CLOSING]:this.$t("offline")}},statusColorMap(){return{[WebSocket.CLOSED]:"red",[WebSocket.OPEN]:"green",[WebSocket.CONNECTING]:"none",[WebSocket.CLOSING]:"red"}},wsPeers(){return s["a"].gunPeers.filter((e=>"ws"===e.type))},wrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type))}},methods:{getPeerId(e){if("tracker"!==e.from)return e.url;let t=parseInt(e.url.substring(20),16),a="",n=0;while(t>0)n=t%62,t=Math.floor(t/62),a+=n<36?n.toString(36):(n-26).toString(36).toUpperCase();return a.substring(0,9)},getPeerStatusIcon(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?"import_export":"arrow_upward":"syncing"===e.remoteSyncState?"arrow_downward":"completed"===e.syncState?"completed"===e.remoteSyncState?"done_all":"done":"settings_ethernet"},getPeerStatusTooltip(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?this.$t("syncing"):this.$t("uploading"):"syncing"===e.remoteSyncState?this.$t("downloading"):"completed"===e.syncState?"completed"===e.remoteSyncState?this.$t("sync_completed"):this.$t("uploaded"):this.$t("connecting")},byteToLarger(e){return Object(M["a"])(e,{byte:!1,gb:!1})},showServerHelp(){this.$alphabiz.dialog({title:this.$t("about_cache_node"),message:this.$t("about_cache_node_desc"),cancel:!0,ok:{label:this.$t("go_to_settings"),handler:e=>{this.$emit("input",!1),setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300),e.hide()}}})},async createCacheNode(){window.open("https://alpha.biz/blog/how-to-deploy-a-gun-server/","_blank")},editCacheNode(){setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300)}}},B=F,W=(a("9f3a"),a("990e")),H=a("fc38"),V=a("cf25"),Q=a("3714"),G=a("f106"),K=a("a431"),Y=Object(v["a"])(B,U,R,!1,null,"54be07de",null),J=Y.exports;S()(Y,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QTooltip:V["a"],QMarkupTable:Q["a"],QIcon:G["a"]}),S()(Y,"directives",{ClosePopup:K["a"]});var Z=a("d7df"),X=a("d310"),ee=a("3fd2"),te=a.n(ee),ae=(a("d4b5"),a("0598")),ne=a("f680"),oe=a("1926");console.log("===",oe["b"]);const ie={_store:null,store:{favorites:[],ids:[]},_preNotify:null,_init(){if(Object(ae["default"])()){const e=a("f4b7");this._store=new e({name:"favorite",defaults:{favorites:[]}}),this.store=this._store.store}else{const e="ab-local-favorites",t=localStorage.getItem(e);this.store=t?JSON.parse(t):{favorites:[],ids:[]};const a=this.store;this._store={get(e){return console.log("get",e,a),a[e]},set(t,n){console.log("set",t,n,a),a[t]=n,localStorage.setItem(e,JSON.stringify(a))},clear(){console.log("clear"),localStorage.removeItem(e),ie._init()}}}this.store.ids=this.store.favorites.map((e=>e.id))},set(e){for(const t of e)this.add(t)},add(e){if(this.store.ids.find((t=>t===e.id)))return;e.timestamp||(e.timestamp=Date.now());let t=0;for(const a of this.store.favorites){if(!(a.timestamp>e.timestamp))break;t++}this.store.favorites.splice(t,0,e),this.store.ids.splice(t,0,e.id),this._store.set("favorites",this.store.favorites)},remove(e,t){const a="string"===typeof e?e:e.id,n=this.store.ids.findIndex((e=>e===a));if(-1===n)return;const[o]=this.store.favorites.splice(n,1);if(this.store.ids.splice(n,1),this._store.set("favorites",this.store.favorites),!o)return;const i=ne["a"].create({message:oe["b"].t("removed_favorite")+o.title,group:!1,actions:[{label:oe["b"].t("undo"),handler(){ie.add(o),t&&t(o)}}]});this._preNotify&&this._preNotify(),this._preNotify=i},list(){return this.store.favorites.sort(((e,t)=>t.timestamp-e.timestamp))},isFavorite(e){return this.store.ids.includes(e)},clear(){this._store.clear(),this.store.favorites.splice(0),this.store.ids.splice(0),this._store.set("favorites",this.store.favorites)}};ie._init();var re=ie,se={name:"Library",mixins:[g["d"]],components:{Login:N,Recommend:L["a"],ConnectionStatus:J},data(){return{breadcrumbs:[{label:this.$t("library"),icon:"video_library",to:"/library"}],peerDialog:!1,isElectron:Object(X["isElectron"])(),lib:s["a"]}},computed:{showRecommend(){return!!s["a"].isLoggedIn&&(!this.isVisitable(this.$route.fullPath)&&(s["a"].followingChannels.length?!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus:!s["a"].isFirstRegister))},currentView(){const e=this.$route.path.replace(/^\//,"").split("/");return e},hasWrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type)).length},statusColor(){if(this.hasWrtcPeers)return"green";if(!s["a"].online)return"red";switch(s["a"].onlineStatus){case"connected":return"green";case"connecting":return"yellow";case"reconnecting":return"yellow";default:return"red"}},statusLabel(){if(this.hasWrtcPeers)return this.$t("connected");if(!s["a"].online)return this.$t("offline");switch(s["a"].onlineStatus){case"connected":return this.$t("connected");case"connecting":return this.$t("connecting");case"reconnecting":return this.$t("connecting");default:return this.$t("unknown")}},isLoggedIn(){return this.lib.isLoggedIn}},methods:{isVisitable(e){return e.startsWith("/library/edit")||e.includes("preview=1")||e.includes("fromLink=1")||e.startsWith("/library/takedown")},getIcon(e){switch(e){case"following":return"star";case"explore":return"travel_explore";case"edit":return"edit_note"}return"list"}},beforeCreate(){if(te.a.mas()){const e=localStorage.getItem("__mas_library_user__");e||(console.log("clear store since no old user"),re.clear()),s["a"].whenReady.then((()=>{var t;s["a"].user&&null!==(t=s["a"].user.is)&&void 0!==t&&t.pub&&(e&&e!==s["a"].user.is.pub&&(console.log("clear store since user changed",e,s["a"].user.is.pub),re.clear()),localStorage.setItem("__mas_library_user__",s["a"].user.is.pub))}))}},mounted(){Z["a"].on("open-library",(e=>{console.log("open library url:",e);const t=Object(_["d"])(e);if(!t||!t.id)return;let a=0;const n=()=>{const e=Object(_["c"])(t.id);e?(console.log("go library",e),this.$root.$emit("navigate-to"),this.$router.push(e+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",e)))):(console.log("cannot get id from channel list",t.id,e),a||this.$q.notify(this.$t("loading")),a++<5?setTimeout(n,2e3):this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))};s["a"].whenReady.then(n)}))},watch:{"lib.libStatus":{handler(e){"ready"===e&&console.log("> library ready <")},immediate:!0},showRecommend(e){if(e){if(console.log("Show recommend. Redirect to library index"),"/library"===this.$route.path)return;this.$router.replace("/library")}}},beforeRouteUpdate(e,t,a){if(!e.path.startsWith("/library"))return a();const n=()=>!s["a"].isLoggedIn||!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus;if(n()){if("/library/"===e.path||"/library"===e.path)return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to")}));if(this.isVisitable(e.fullPath))return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to",e.path)}));a()}else a()}},le=se,ce=(a("899b5"),a("7285"),a("99c4")),de=a("a829"),ue=a("a4ac"),_e=a("90c4"),pe=a("c6f0"),me=Object(v["a"])(le,i,r,!1,null,"203f2a72",null),he=me.exports;S()(me,"components",{QToolbar:ce["a"],QBtn:A["a"],QMenu:de["a"],QCard:q["a"],QSelect:ue["a"],QInput:E["a"],QIcon:G["a"],QSpace:W["a"],QBadge:_e["a"],QBreadcrumbs:pe["a"]});var ge=a("d558"),fe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-explore"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{followable:"",post:n,disableFollow:e.loadingNext},on:{preview:e.showPreviewImage,follow:e.follow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.mod,o=t.column;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.shouldLoading(t,Math.max(Math.ceil(10/o),2)*o+(n?o-n:0))},expression:"(entry) => shouldLoading(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px - env(safe-area-inset-bottom) - env(safe-area-inset-top))"}},[e.searchFilteredPosts.length||e.loadingPosts||!e.loadedAll?e.loadedAll&&!e.loadingPosts?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):[a("div",[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{directives:[{name:"show",rawName:"v-show",value:!e.loadingPosts||e.filteredPosts.length,expression:"!loadingPosts || filteredPosts.length"}],attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),e.allPosts.length||e.loadingPosts?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToFollowing}},[a("q-tooltip",[e._v(e._s(e.$t("no_recommend"))+" "+e._s(e.$t("lib_following")))])],1)],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPosts&&!e.filteredPosts.length}})],1)},be=[],ye=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"intersection",rawName:"v-intersection",value:{handler:e.triggerPreload,threshold:0},expression:"{ handler: triggerPreload, threshold: 0 }"}],staticClass:"post-card overflow-hidden relative-position column no-wrap",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},on:{mouseenter:function(){return e.onCardHover(!0)},mouseleave:function(){return e.onCardHover(!1)}}},[a("img",{staticClass:"absolute-top-left",staticStyle:{filter:"blur(24px)",transform:"scale(1.25)",opacity:"0.08"},attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}),e.post.channel?a("div",[e.hideChannel?e._e():a("q-card-section",{staticClass:"post-channel-info no-wrap overflow-hidden row items-center"},[a("div",{staticClass:"channel cursor-pointer row items-center no-wrap",on:{click:e.toChannelPage}},[a("q-avatar",{staticClass:"shadow-2",staticStyle:{background:"#282828"},attrs:{size:"18"}},[e.isLoadedChannelImage?a("img",{attrs:{src:e.post.channel.image},on:{error:e.onChannelAvatarError,load:e.onChannelAvatarLoaded}}):e._e(),e.isLoadedChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"30px"}})],1),a("div",{staticClass:"channel-title q-ml-md ellipsis-2-lines",attrs:{title:e.post.channel.title}},[e._v("\n "+e._s(e.post.channel.title||e.$t("loading"))+"\n ")]),e.post.channel.hidden?a("span",{staticClass:"hidden-info text-grey q-ml-xs"},[e._v("("+e._s(e.$t("private_channel"))+")")]):e._e()],1),a("q-space"),a("FollowButton",{attrs:{id:e.post.channel.id,disableFollow:e.disableFollow}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:!e.hideChannel,expression:"!hideChannel"}],staticStyle:{margin:"0 -4px"}})],1):e._e(),a("q-card-section",{staticClass:"post-info q-pa-none overflow-hidden",class:e.$q.screen.width>=790?["row","no-wrap","justify-start","items-stretch"]:["column","no-wrap","justify-start","items-center"],style:{maxHeight:e.$q.screen.width>=790?"calc(16px * 2 + 360px)":"unset",flexGrow:1}},[a("div",{staticClass:"image",class:e.$q.screen.width>=790?["q-pa-md"]:["q-pa-sm"]},[a("div",{staticClass:"image-container row justify-center items-center"},[e.allowClickImage?a("img",{attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}):e._e(),e.allowClickImage?e._e():a("q-icon",{attrs:{size:"80px",name:"video_file",color:"general"}})],1)]),a("div",{staticClass:"overflow-hidden full-width flex-grow column no-wrap q-pb-md",style:{marginLeft:e.$q.screen.width>=790?"-8px !important":"0"}},[a("div",{staticClass:"desc-main q-pa-sm"},[a("div",{staticClass:"text-bold desc-title row overflow-hidden full-width no-wrap items-center"},[a("div",{staticClass:"post-title q-mr-sm overflow-hidden",attrs:{title:e.post.title}},[a("div",{staticClass:"text-no-wrap ellipsis"},[e._v(e._s(e.post.title))])]),a("q-space"),a("q-btn",{staticClass:"favorite-icon block",attrs:{dense:"",flat:"",color:"primary","text-color":"primary",round:"",icon:e.isFavorite?"star":"star_border"},on:{click:e.setFavorite}},[a("q-tooltip",[e._v(e._s(e.isFavorite?e.$t("remove_from_local_favorites"):e.$t("add_to_local_favorites")))])],1),e.post.channel?a("q-btn",{staticClass:"block",attrs:{dense:"",flat:"",round:"",icon:"more_vert"}},[a("q-menu",[a("q-list",{staticStyle:{"min-width":"100px"}},[a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.follow}},[a("q-item-section",[e._v("\n "+e._s(e.followable?e.$t("follow"):e.$t("unfollow"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.share}},[a("q-item-section",[e._v("\n "+e._s(e.$t("share"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockChannel}},[a("q-item-section",[e._v("\n "+e._s(e.isBlocked?e.$t("unblock"):e.$t("block"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockUser}},[a("q-item-section",[e._v(e._s(e.isBlockedUser?e.$t("unblock_creator"):e.$t("block_creator")))])],1),e.lib.isLibAdmin?[a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.takedownPost}},[a("q-item-section",[e._v(e._s(e.$t("takedown_post")))])],1)]:e._e()],2)],1)],1):e._e()],1),a("div",{staticClass:"text-subtitle2 q-mt-xs text-grey desc-time"},[a("span",[e._v(e._s(new Date(e.post.timestamp).toLocaleString()))]),a("q-badge",{staticClass:"q-ml-md bg-primary text-primary"},[e._v("\n "+e._s(e.post.rate||"G")+"\n "),a("q-tooltip",e._l(e.getRateText(e.post.rate).split("\n"),(function(t,n){return a("div",{key:n,staticClass:"rate-tip"},[e._v(e._s(t)+"\n ")])})),0)],1),e.subtitleLang?a("q-btn",{staticClass:"q-ml-sm",attrs:{dense:"",flat:"",size:"xs"}},[a("q-icon",{staticStyle:{"font-size":"22px"},attrs:{name:"subtitles"}}),a("q-tooltip",[e._v(e._s(e.$t("with_subtitle",{language:e.subtitleLang})))])],1):e._e()],1)]),a("div",{staticClass:"overflow-auto q-pa-sm",staticStyle:{"flex-grow":"1","flex-shrink":"1"}},[a("div",{staticClass:"full-width overflow-hidden"},e._l((e.post.description||"").split("\n"),(function(t,n){return a("div",{key:n,staticClass:"desc-para"},[e._v(e._s(t)+"\n ")])})),0)]),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.hideButtons,expression:"!hideButtons"}],staticClass:"text-center post-buttons q-pt-sm"},[e.post.abUrl||e.backAbUrl?a("div",{staticClass:"download-btns"},[e.addedStatus?a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"",flat:"",ripple:!1,"text-color":"primary",color:"primary"},on:{click:e.toTaskInfo}},[a("span",{staticClass:"action-button-content"},[a("q-tooltip",[e._v(e._s(e.$t("lib_already_added"))),a("br"),e._v(e._s(e.$t("click_to_task")))]),a("q-icon",{attrs:{name:"downloading"===e.addedStatus?"download":"done"}}),e._v("\n "+e._s("downloading"===e.addedStatus?e.$t("downloading"):e.$t("completed"))+"\n ")],1)]):a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.download}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("download")}},[a("q-icon",{attrs:{name:"download"}}),e._v(e._s(e.$t("download"))+"\n ")],1)]),e.playFile||e.preloadFailed?!e.playFile&&e.preloadFailed?a("q-btn",{staticClass:"q-ml-sm q-px-sm cursor-inherit",attrs:{unelevated:"",dense:"",flat:"",ripple:!1,"text-color":"primary",color:"primary"}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-tooltip",[e._v(e._s(e.$t("post_preload_failed")))]),a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm",attrs:{unelevated:"",dense:"","text-color":"primary",color:"primary"},on:{click:e.play}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play")}},[a("q-icon",{attrs:{name:"play_arrow"}}),e._v(e._s(e.$t("play"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.triggerPlay}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)])],1):a("div",{staticClass:"no-ab-url"},[a("q-btn",{attrs:{unelevated:"",dense:"",disable:"",label:e.$t("loading")}})],1)])])]),e.screen$xs?a("div",{staticClass:"dialog-actions"},[a("q-separator"),a("q-card-section",{staticClass:"flex q-py-sm"},[a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",label:e.$t("cancel"),color:"general","text-color":"general",unelevated:""}})],1)],1):e._e()],1)},ve=[],we=a("a11f"),ke=a("fc3a"),Se=a("c5a5");a("0c26");const{languages:Ce}=a("1c53"),xe="https://www.opensubtitles.org/subtitleserve/sub/";function $e(){const e=["en","zh","es","fr","de","ru","pt"],t=[],a=[];return Object.entries(Ce).forEach((([n,o])=>{const i={label:`${o.native}(${n})`,value:n,name:o.name};e.includes(n)?a.push(i):t.push(i)})),[...a,...t]}function Te(e){let t="";for(const a of e)(a.lang||a.url)&&(t&&(t+="%%%"),t=t+a.lang+"%%"+a.url);return t}function ze(e){const t=[];if(!e||""===e)return t;let a;a=e.includes("%%%")?e.split("%%%"):[e];for(const n of a){const e=n.split("%%");t.push({lang:e[0],url:e[1]})}return t}function Pe(e){let t=e,a="";if(!Array.isArray(e)&&"string"!==typeof e)return a;"string"===typeof e&&(t=ze(e));for(const n of t)a.includes(n.lang)||(a&&(a+="、"),a+=n.lang);return a}async function Ae(e){const t=a("9ad5");let n=e.trim();return/^\d+$/.test(n)&&(n=`${xe}${n}`),console.log(`requestSubtitleUrl: [${n}]`),!!n.startsWith("http")&&new Promise((e=>{t({method:"get",url:n,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"},responseType:"stream"}).then((t=>{console.log("succ",t.status),e(!0)})).catch((t=>{var a,n;console.log("err",(null===(a=t.response)||void 0===a?void 0:a.status)||t.response||t),429===(null===(n=t.response)||void 0===n?void 0:n.status)&&e(!0),e(!1)}))}))}function Ie(e){return/^\d+$/.test(e)}function qe(e){return Ie(e)?xe+e:e}var Oe=a("c033"),Ee=a("d710"),De=a.n(Ee);const je=n["a"].observable([]);Z["a"].on("preload-failed",(e=>{console.log("preload failed",e),je.includes(e)||(je.push(e),console.log(je))})),Z["a"].on("preload-done",(e=>{console.log("preload done",e),je.includes(e)&&je.splice(je.indexOf(e),1)}));const Ne="requestIdleCallback"in window?requestIdleCallback:e=>setTimeout(e,100);async function Le({url:e,postTitle:t}){if(!je.includes(e))return new Promise((a=>{Ne((()=>{Z["a"].emit("preload-task",{url:e,postTitle:t}),a()}))}))}const Ue=document.querySelector("#q-app"),Re=e=>new Promise((t=>setTimeout(t,e)));var Me={name:"PostCard",inject:["rootApp","io"],components:{FollowButton:Oe["a"]},props:{post:{type:Object,required:!0},hideChannel:{type:Boolean},hideButtons:{type:Boolean},disableFollow:{type:Boolean}},data(){return{scrollRoot:Ue,postCardHover:!1,allowClickImage:!0,animating:!1,followBtnHover:!1,pending:!1,favoriteNotifyFns:[],backAbUrl:"",isLoadedChannelImage:!0,isFavorite:re.isFavorite(this.post.id),lib:s["a"],preloadTriggered:!1,notAvailable:je}},computed:{followable(){return!s["a"].followingChannels.find((e=>{var t;return e.id===(null===(t=this.post.channel)||void 0===t?void 0:t.id)}))},isBlocked(){var e,t;return null===(e=s["a"].userData.blockChannels)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.id)},isBlockedUser(){var e,t;return null===(e=s["a"].userData.blockUsers)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.creator)},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHover?this.$t("unfollow"):this.$t("following")},abKey(){const e=this.post.abUrl||this.backAbUrl;return e?Object(we["a"])(e.includes("://")?e:decodeURIComponent(e)):""},addedStatus(){var e;return(null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.type)||!1},shortChannelTitle(){return this.post.channel&&this.post.channel.title?this.post.channel.title.length>12?this.post.channel.title.substring(0,10)+"...":this.post.channel.title:""},playFile(){var e;return null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.playFile},settings(){var e,t;const a=(null===(e=this.post)||void 0===e||null===(t=e._)||void 0===t?void 0:t["#"])||this.post.soul,n=d["a"].state.setting,o={downloadDirectory:n.downloadDirectory,uploadSpeed:n.uploadSpeed,downloadSpeed:n.downloadSpeed,maximumDownloadNum:n.maximumDownloadNum,maximumConnectionsNum:n.maximumConnectionsNum,payedUserShareRadix:n.payedUserShareRadix,trackers:n.trackerList||[],postTitle:Object(_["b"])(this.post.title)};return a&&(o.fromPost=a),o},subtitleLang(){return Pe(this.post.subtitleList)},preloadFailed(){return this.notAvailable.includes(this.post.abUrl||this.backAbUrl)}},methods:{onCardHover(e){this.postCardHover=e},getRateText(e="G"){switch(e){case"G":return this.$t("rate_g_desc");case"PG":return this.$t("rate_pg_desc");case"PG-13":return this.$t("rate_pg_13_desc");case"R":return this.$t("rate_r_desc");case"NC-17":return this.$t("rate_nc_17_desc")}return this.$t("rate_g_desc")},confirm(e,t={ok:"",cancel:"",message:""}){const a={title:e,ok:t.ok||this.$t("ok"),cancel:t.cancel||this.$t("cancel")};return t.message&&(a.message=t.message),new Promise((e=>{this.$q.dialog(a).onOk((()=>e(!0))).onDismiss((()=>e(!1)))}))},popupImage(){console.log("popup",this.allowClickImage),this.allowClickImage&&this.$emit("preview",this.post.image)},async playAnimation(e,t="#downloading"){if(this.animating)return;this.animating=!0;const a=document.querySelector(t),n=a?a.getBoundingClientRect():{x:0,y:e.clientY,width:0,height:0},o={left:e.clientX-36+"px",top:e.clientY-36+"px"},i={left:n.x+n.width/3-36+"px",top:n.y+n.height/2-36+"px"},r=document.createElement("i");r.classList.add("q-icon","material-icons","text-primary"),r.innerHTML="video_file",r.style.position="absolute",r.style.fontSize="72px",r.style.left=o.left,r.style.top=o.top,r.style.opacity=0,r.style.transform="scale(2.5)",r.style.transition="0.4s ease",document.body.appendChild(r),await Re(0),r.style.opacity=1,r.style.transform="scale(1)",await Re(500),r.style.transition="1s ease",r.style.left=i.left,r.style.top=i.top,r.style.transform="scale(0.5)",r.style.opacity=0,await Re(600),this.animating=!1,document.body.removeChild(r)},async triggerPlay(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);if(!Object(X["isElectron"])()&&!Object(ge["a"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task")+"?",{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.playAnimation(e,"#drawer-player"),await Re(600);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;if(this.io.emit("download-and-play",{type:"magnet",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings}),Object(X["isElectron"])()||Object(ge["a"])()){var i;const e=await Object(Se["a"])(o);if(!e)return;const t=null===(i=e.match(/([0-9a-fA-F]{40})/))||void 0===i?void 0:i[1];t&&d["a"].dispatch("remotePlay",t)}else{const{default:e}=a("7d7c"),{wtClient:t}=a("c620"),n=setInterval((()=>{t.torrents.length&&(clearInterval(n),e())}),100)}},async download(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;console.log(o),console.group("subtitle"),console.log(this.post.subtitleList),console.table(ze(this.post.subtitleList)),console.groupEnd();const i={type:"url",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings};if(!Object(X["isElectron"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task"),{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.io.emit("download_torrent",i),this.playAnimation(e,Object(X["isElectron"])()?"#downloading":"#task-management")},checkChannel(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.id,a=s["a"].channelList.find((e=>e.id===t));return!(!t||!a)||(this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}),!1)},async follow(){if(this.pending)return;if(!this.checkChannel())return;const e=this.post.channel.id,t=!s["a"].followingChannels.find((t=>t&&t.id===e));if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)),this.pending=!1}),2e3),console.log("follow click",t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},async share(){if(!this.checkChannel())return;const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.post.channel.title)}/${this.post.channel.id}`;console.log("share",e);const t=await Object(Se["a"])(e);if(console.log("converted url"),!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(ke["a"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))},async blockChannel(){if(!this.checkChannel())return;if(console.log("block channel",this.post.channel.id,this.isBlocked),this.isBlocked)return s["a"].unblockChannel(this.post.channel.id).then((e=>{console.log("unblock channel result",e)}));const e=await this.confirm(this.$t("block_channel"),{message:this.$t("block_channel_confirm"),ok:this.$t("block")});e&&s["a"].blockChannel(this.post.channel.id).then((e=>{console.log("block channel result",e)}))},async blockUser(){var e;if(console.log("block user",null===(e=this.post.channel)||void 0===e?void 0:e.creator,this.isBlockedUser),!this.post.channel||!this.post.channel.creator)return;if(this.isBlockedUser)return s["a"].unblockUser(this.post.channel.creator).then((e=>{console.log("unblock user result",e)}));const t=await this.confirm(this.$t("block_creator"),{message:this.$t("block_creator_confirm"),ok:this.$t("block")});t&&s["a"].blockUser(this.post.channel.creator).then((e=>{console.log("block user result",e)}))},toChannelPage(){this.checkChannel()&&this.$emit("to-channel",this.post.channel)},toTaskInfo(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.soul;let a=`/downloader?currentTab=${this.addedStatus}&abKey=${this.abKey}`;t&&(a+=`&channel=${encodeURIComponent(t)}`),this.post.id&&(a+=`&postId=${this.post.id}`),t&&this.post.id&&(a+=`&soul=${encodeURIComponent(t+"/posts/"+this.post.id)}`),console.log("to",this.abKey,this.addedStatus,t,this.post.id),console.log(a),this.$router.push(a)},setFavorite(){const e=this.post.id;var t,a,n,o,i,r,s,l,c,d,u,_,p,m,h;this.isFavorite?re.remove({id:e},(()=>{this.isFavorite=re.isFavorite(e)})):re.add({id:this.post.id,title:this.post.title,description:this.post.description,image:this.post.image,abUrl:this.post.abUrl||this.backAbUrl,soul:null===(t=this.post)||void 0===t||null===(a=t._)||void 0===a?void 0:a["#"],subtitleList:this.post.subtitleList,channel:{id:null===(n=this.post)||void 0===n||null===(o=n.channel)||void 0===o?void 0:o.id,title:null===(i=this.post)||void 0===i||null===(r=i.channel)||void 0===r?void 0:r.title,description:null===(s=this.post)||void 0===s||null===(l=s.channel)||void 0===l?void 0:l.description,image:null===(c=this.post)||void 0===c||null===(d=c.channel)||void 0===d?void 0:d.image,soul:null===(u=this.post)||void 0===u||null===(_=u.channel)||void 0===_||null===(p=_._)||void 0===p?void 0:p["#"],creator:null===(m=this.post)||void 0===m||null===(h=m.channel)||void 0===h?void 0:h.creator}});this.isFavorite=re.isFavorite(e)},play(){if(!Object(X["isElectron"])()&&!Object(ge["a"])()&&this.addedStatus){const e=a("7d7c").default;return e()}const{infoHash:e,playFile:t}=s["a"].addedPostMap[this.abKey]||{};console.log("play",e,t);const n=t.path||t;d["a"].dispatch("remotePlay",e),Z["a"].emit("play-torrent",{infoHash:e,filepath:n})},onChannelAvatarError(){this.isLoadedChannelImage=!1},takedownPost(){if(!s["a"].isLibAdmin||!this.post.id)return;if(20!==this.post.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("post",this.post.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))},onChannelAvatarLoaded(e){e.target.src===this.post.channel.image&&(this.isLoadedChannelImage=!0)},onImageError(){this.allowClickImage=!1},onImageLoaded(e){e.target.src===this.post.image&&(this.allowClickImage=!0)},triggerPreload({isIntersecting:e}){if(e&&!this.preloadTriggered&&this.settings.postTitle)return this.preloadFailed?console.log("skip preload failed",this.settings.postTitle):this.addedStatus?console.log("skip added",this.settings.postTitle):void((this.post.abUrl||this.backAbUrl)&&(console.log(`Scroll into view ${this.settings.postTitle}`),this.preloadTriggered=!0,Le({url:this.post.abUrl||this.backAbUrl,postTitle:this.settings.postTitle})))}},activated(){var e,t;this.post.abUrl||(console.log("no aburl",{...this.post}),null!==(e=this.post)&&void 0!==e&&null!==(t=e.channel)&&void 0!==t&&t.soul&&this.post.id&&p["v"].get(this.post.channel.soul+"/posts/"+this.post.id).on(((e,t,a,n)=>{e&&e.abUrl&&(console.log("Get abUrl for",this.post.id,e.abUrl),this.backAbUrl=e.abUrl,n.off())})));this.isFavorite=re.isFavorite(this.post.id)}},Fe=Me,Be=(a("cbf3"),a("9f3e")),We=a("e7c2"),He=a("b329"),Ve=a("25fb"),Qe=a("bcaf"),Ge=a("fa4f"),Ke=Object(v["a"])(Fe,ye,ve,!1,null,"580a0550",null),Ye=Ke.exports;S()(Ke,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QSeparator:H["a"],QBtn:A["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QBadge:_e["a"],QDialog:I["a"],QVirtualScroll:Qe["a"]}),S()(Ke,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Je=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page-sticky",{staticClass:"back-to-top",attrs:{position:"bottom-right"}},[a("transition",{attrs:{name:"animate"}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"back-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"publish"},on:{click:e.onClick}},[a("div",{staticClass:"fab-inner-text"},[e._v("\n "+e._s(e.$t("back_to_top"))+"\n ")])])],1)],1)},Ze=[],Xe={name:"BackToTop",props:{show:Boolean},data(){return{hide:!1,hovered:!1}},methods:{onClick(){this.$emit("click")}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0}},et=Xe,tt=(a("3408"),a("84f9")),at=Object(v["a"])(et,Je,Ze,!1,null,"ec8a50cc",null),nt=at.exports;S()(at,"components",{QPageSticky:tt["a"],QBtn:A["a"]});var ot=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"search-channel"},[a("div",{staticClass:"fixed-bottom-right show-search-channel",class:{higher:e.higher}},[a("q-btn",{staticClass:"channel-search-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"library_add"},on:{click:function(t){e.showDialog=!0}}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("search")))])])],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{hide:e.clearInput},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",{staticClass:"search-dialog overflow-hidden"},[a("q-card-section",{staticClass:"flex items-center q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("search_for_channel")))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(t){e.showDialog=!1}}})],1),a("q-card-section",{staticClass:"column items-stretch q-pt-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"search-textfield"},[a("q-input",{attrs:{type:"text",outlined:"",dense:"",autofocus:"",label:this.$t("channel")+" ID",placeholder:"%abcd1234"},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.search.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{color:"primary",name:"search"},on:{click:e.search}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}})],1),a("q-scroll-area",{staticClass:"items-center",staticStyle:{height:"calc(100vh - 256px)",margin:"4px auto 0",width:"100%"}},[a("div",{staticClass:"search-results full-width flex justify-center items-stretch"},[e._l(e.searchResults,(function(t){return a("ChannelCard",e._b({key:t.id,attrs:{followable:!e.lib.followingChannels.find((function(e){return e.id===t.id}))},on:{detail:e.detail,follow:e.follow}},"ChannelCard",t,!1))})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")],2)])],1)],1)],1)],1)},it=[],rt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-card column relative-position overflow-hidden rounded-borders",style:{border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},attrs:{flat:""}},[a("q-img",{staticClass:"channel-image absolute-top-left full-height",staticStyle:{filter:"blur(24px) saturate(1.5)",opacity:"0.2",transform:"scale(1.25)"},attrs:{src:e.image,ratio:1,"placeholder-src":"platform-assets/windows/icon/Wide310x150Logo.scale-240.png"}}),a("div",{staticClass:"image-container overflow-hidden",staticStyle:{"border-top-left-radius":"4px!important","border-top-right-radius":"4px!important"}},[a("q-img",{staticClass:"channel-image cursor-pointer",attrs:{contain:"",src:e.image,ratio:1},on:{click:e.detail,error:e.onImageError},scopedSlots:e._u([{key:"error",fn:function(){return[a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[a("q-icon",{attrs:{name:"video_library"}}),e._v("\n "+e._s(e.title)+"\n ")],1)]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])]},proxy:!0}])},[e.image&&e.isHaveImage?e._e():a("q-icon",{staticClass:"absolute-center",staticStyle:{color:"#ccc"},attrs:{size:"90px",name:"subscriptions"}}),a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[e._v("\n "+e._s(e.title)+"\n ")])]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])],1)],1),a("q-card-section",{staticClass:"q-py-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"q-pa-none row",staticStyle:{margin:"0 -16px"}},[a("div",{staticClass:"q-py-sm q-px-sm q-pl-md",attrs:{"data-cy":"channel-ID"}},[e._v("ID: "+e._s(e.id))]),a("q-space"),a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyId}}),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"block",size:"xs",dense:""},on:{click:e.takedown}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"q-px-md channel-desc",staticStyle:{margin:"0 -16px"}},[e._v(e._s(e.description))]),a("div",{staticClass:"channel-tags",staticStyle:{margin:"4px -4px 0"}},[e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative"}},[e._v(e._s(e.$t("blocked")))]):e._e(),e.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general"}},[e._v(e._s(e.$t("private_channel")))]):e._e()],1)]),a("q-space"),e.hideFollow?a("q-card-actions",[e.editable?a("q-btn",{attrs:{flat:"",icon:"delete",color:"negative"},on:{click:function(t){return t.stopPropagation(),e.remove.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("remove_channel"))+"\n ")])],1):e._e(),a("q-space"),e.editable?a("q-btn",{attrs:{flat:"",icon:"edit"},on:{click:function(t){return t.stopPropagation(),e.detail.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("edit_channel"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"find_in_page"},on:{click:function(t){return t.stopPropagation(),e.preview.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("preview"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"settings"},on:{click:function(t){return t.stopPropagation(),e.edit.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("channel_setting"))+"\n ")])],1):e._e()],1):a("q-card-actions",{staticClass:"flex justify-center items-center"},[a("FollowButton",{staticClass:"q-my-sm",attrs:{id:e.id}})],1)],1)},st=[],lt=a("aa8a"),ct={name:"ChannelCard",components:{FollowButton:Oe["a"]},data(){return{isHaveImage:!0,lib:s["a"]}},props:{title:{type:String,required:!0},description:{type:String,required:!0},image:{type:String,required:!0},id:{type:String,default:""},soul:{type:String,default:""},hidden:{type:Boolean},editable:{type:Boolean},hideFollow:{type:Boolean},followable:{type:Boolean}},watch:{image(e,t){e&&e!==t&&(this.isHaveImage=!0)}},computed:{isBlocked(){return s["a"].userData.blockChannels.includes(this.id)}},methods:{copyId(){Object(lt["b"])(this.id).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},edit(){this.editable&&this.$emit("edit",this.id)},detail(){this.$emit("detail",this.id)},onImageError(){this.isHaveImage=!1},preview(){this.$emit("preview",this.id)},follow(){this.$emit("follow",this.id)},remove(){this.$emit("remove-channel",this.id)},takedown(){if(!s["a"].isLibAdmin||!this.id)return;if(20!==this.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("channel",this.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))}}},dt=ct,ut=(a("4b8c"),a("9767")),_t=Object(v["a"])(dt,rt,st,!1,null,"37cd58ed",null),pt=_t.exports;S()(_t,"components",{QCard:q["a"],QImg:ut["a"],QIcon:G["a"],QTooltip:V["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QBadge:_e["a"],QCardActions:D["a"]});var mt={name:"SearchChannel",props:{higher:Boolean},components:{ChannelCard:pt},data(){return{hide:!1,showDialog:!1,searchText:"",searchResults:[],lib:s["a"]}},methods:{clearInput(){this.searchText="",this.searchResults=[]},search(){if(console.log("search",this.searchText),!this.searchText||!this.searchText.trim())return this.$q.dialog({message:this.$t("please_input_channel_id"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const e=this.searchText.trim().replace(/^%/,""),t=s["a"].channelList.filter((t=>!!(t&&t.title&&t.id)&&(t.hidden?t.id===e:t.id.includes(e))));this.searchResults=t,t.length||this.$q.dialog({message:this.$t("search_channel_no_result",[e]),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}})},follow(e){const t=!s["a"].followingChannels.find((t=>t.id===e));if(t)return s["a"].followChannel(e);this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},detail(e){const t=s["a"].allChannelList.find((t=>t.id===e&&t.title&&t.creator));if(!t)return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});console.log("find ch",t);const a=["id","title"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0,this.clearInput()}},ht=mt,gt=(a("6792"),a("c782")),ft=Object(v["a"])(ht,ot,it,!1,null,"1c919252",null),bt=ft.exports;S()(ft,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QInput:E["a"],QIcon:G["a"],QScrollArea:gt["a"]});var yt=a("c49d");const vt={data(){return{isActive:!1,searchText:"",lib:s["a"]}},activated(){this.isActive=!0,this.searchText=s["a"].search.text.trim()},deactivated(){this.isActive=!1},watch:{"lib.search.text"(e){this.isActive&&(this.searchText=e.trim())}}};var wt=function(e){const t=function(){return"index"===e||"explore"===e?this.searchFilteredPosts:"favorite"===e?this.filteredFavorites:void 0},a=async function(){this.loader$loadPostsNext?await this.loader$loadPostsNext({count:6}):this.loadNext&&await this.loadNext()};return{data(){return{pagination:{descending:!0,page:1,rowsPerPage:6}}},computed:{tableData:t,pagesNumber(){return Math.ceil(this.tableData.length/this.pagination.rowsPerPage)},currentPageNumber(){return this.pagination.page}},watch:{async currentPageNumber(e){const t=this.$el.querySelector(".library-table>.q-table__grid-content");if(t.scrollTop=0,e===this.pagesNumber)try{this.loading=!0,console.log("query"),await a.call(this)}catch(n){this.$q.notify({type:"negative",position:"bottom-right",message:n.message})}finally{this.loading=!1}}}}};let kt=null;var St={data(){return{showBackToTop:!1,scrollContentSelector:".virtual-scroll-grid-wrapper"}},methods:{handleBackToTop(){if(this.showBackToTop){const e=this.$el.querySelector(this.scrollContentSelector);if(!e)return;e.scrollTop=0}else{if(!this.$refs.vscroll)return;this.$refs.vscroll.scrollTo(0,"start")}}},mounted(){const e=this.$el.querySelector(this.scrollContentSelector),t=()=>{this.showBackToTop=e.scrollTop>0};e&&(e.addEventListener("scroll",t),kt=()=>e.removeEventListener("scroll",t))},beforeDestroy(){kt&&kt()}},Ct={name:"LibraryExplore",components:{PostCard:Ye,BackToTop:nt,SearchChannel:bt,Loading:x},mixins:[vt,wt("explore"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,showPreview:!1,previewImage:"",loadingPosts:!1,loadTimer:null,allPosts:[],loadingNext:!1,loadedAll:!0,loadedChannels:[],loadedPostIds:[],scrollIndex:0,loadingIntersecting:!1,loadStartTime:Date.now(),lib:s["a"]}},computed:{nonFollowingChannels(){const e=this.lib.followingChannels.map((e=>e.id)),t=this.lib.userData.blockChannels,a=this.lib.userData.blockUsers;return this.lib.channelList.filter((n=>!t.includes(null===n||void 0===n?void 0:n.id)&&(!a.includes(null===n||void 0===n?void 0:n.creator)&&!e.includes(null===n||void 0===n?void 0:n.id)))).filter((e=>e))},filteredPosts(){return this.allPosts.filter((e=>e.title&&e.timestamp)).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channel":return e.channel.title;case"channelID":return e.channel.id;default:return e.title}},n=n=>{var o,i;if(!n||!n.title)return!1;if(!e)return!0;const r=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&e===r||(null===(i=n.channel)||void 0===i||!i.hidden)&&r.includes(e)};console.time("filter");const o=this.filteredPosts.filter(n);return console.timeEnd("filter"),o},allPostToFetch(){const e=[];return this.loadedChannels.forEach((({channel:t,ids:a})=>{a.forEach((a=>{this.loadedPostIds.includes(a)||e.push({channel:t,postId:a})}))})),e}},methods:{onScroll(e){this.scrollIndex=e.index},itemsFn(e=0,t=5){return Object(yt["a"])("vitem",e,t),this.searchFilteredPosts.slice(e,e+t)},shouldLoading(e,t){this.loadingIntersecting=e.isIntersecting,e.isIntersecting&&this.loadNext(t)},async loadNext(e=24){if(!this.active)return!1;if(this.loadingNext)return;this.loadingNext=!0,this.allPostToFetch.sort(((e,t)=>e.postId&&t.postId?e.postId.localeCompare(t.postId):0));const t=this.allPostToFetch.slice(0,e);if(Object(yt["a"])("Load Next",t),!t.length)return this.loadingNext=!1,this.loadedAll=!0,void setTimeout((()=>{Object(yt["a"])("try load more"),this.loadPostList()}),3e3);this.loadedAll=!1;const a=await Promise.all(t.map((async({channel:e,postId:t},a)=>(await new Promise((e=>setTimeout(e,Math.floor(Math.random()*a*500)))),{channel:e,post:await s["a"].getPostById(e.id,t,!0)}))));Object(yt["a"])("fetch results",a),a.forEach((({channel:e,post:t})=>{var a;t&&"object"===typeof t&&(e.hidden&&e.creator!==(null===(a=s["a"].user.is)||void 0===a?void 0:a.pub)||(t.channel=e,this.allPosts.push(t)))})),this.loadedPostIds.push(...t.map((e=>e.postId))),this.loadingNext=!1,setTimeout((()=>{Object(yt["a"])("should load next",this.loadingIntersecting),this.loadingIntersecting&&this.loadNext()}),200)},loadPostList(){if(!this.active)return;if(this.loadStartTime+15e3e.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);const e=this.nonFollowingChannels.filter((e=>!(!e.title||!e.id)&&!this.loadedChannels.find((t=>t.channel.id===e.id))));Promise.all(e.map((async(e,t)=>s["a"].getChannelPostIds(e.id,!0).then((t=>{const a=this.loadedChannels.find((t=>t.channel.id===e.id));if(Object(yt["a"])("[Explore] get channel post ids",e.id,t,!a),a?t.forEach((e=>{a.ids.includes(e)||a.ids.push(e)})):this.loadedChannels.push({channel:e,ids:t}),this.active&&!this.allPosts.length){if(this.loadedChannels.length<7&&this.nonFollowingChannels.length>2)return;this.loadNext()}}))))).then((()=>{if(this.allPosts.length)this.loadingPosts=!1;else{if(!this.active)return;setTimeout((()=>{this.loadingPosts=!1,this.allPosts.length||this.loadPostList()}),2e3)}this.active&&this.loadingIntersecting&&this.loadNext()}))},prune(){const e=this.nonFollowingChannels.map((e=>e.id));for(let n=0;n(t.ids&&e.push(...t.ids),e)),[]);for(let n=0;nthis.allPosts[n].id===e));e.includes(null===(a=this.allPosts[n].channel)||void 0===a?void 0:a.id)&&t.includes(this.allPosts[n].id)||(this.allPosts.splice(n--,1),-1!==o&&this.loadedPostIds.splice(o,1))}for(let n=0;ne.id===this.loadedPostIds[n]))||this.loadedPostIds.splice(n--,1)},showPreviewImage(e){this.previewImage=e,this.showPreview=!0},toChannelPage(e){Object(yt["a"])("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},follow(e){this.lib.followChannel(e).then((t=>{Object(yt["a"])("followed",e,t)}))},goToFollowing(){this.$router.push("/library/following")},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.active=!0,this.prune(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/explore"),this.loadStartTime=Date.now(),this.loadPostList();const e=this;"explore"in window||Object.defineProperty(window,"explore",{get(){return e.loadedChannels}})},deactivated(){this.active=!1},mounted(){this.loadPostList(),this.setSearch()},watch:{nonFollowingChannels(e,t){if(e.length!==t.length){for(let t=0;te.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);this.loadPostList()}},"lib.search.text"(e){this.isActive&&(this.searchText=e)},"searchFilteredPosts.length"(e,t){t||!e||this.active||(console.log("change length"),this.$router.push("/library/explore"))},searchText(e){e&&this.active&&this.handleBackToTop()}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},beforeRouteLeave(e,t,a){clearTimeout(this.loadTimer),a()}},xt=Ct,$t=(a("6580"),a("7027")),Tt=a("8a98"),zt=a("526f"),Pt=a("d919"),At=a("32d0"),It=a("f065"),qt=Object(v["a"])(xt,fe,be,!1,null,"872ead0c",null),Ot=qt.exports;S()(qt,"components",{QIcon:G["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QTooltip:V["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(qt,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Et=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"library-following row justify-center",class:{web:!e.isElectron}},[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],followable:!1,blocked:e.blockMap[t.id]},on:{detail:e.showChannelDetail,follow:e.unfollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),e.followings.length?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary","text-color":"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToExplore}},[a("q-tooltip",[e._v(e._s(e.$t("no_following"))+" "+e._s(e.$t("lib_explore")))])],1)],1),a("BackToTop",{attrs:{show:e.scrollOffset>0},on:{click:e.scrollTop}}),a("SearchChannel",{attrs:{higher:e.scrollOffset>0}})],2)},Dt=[],jt=a("018b"),Nt={name:"LibraryFollowing",components:{ChannelCard:pt,SearchChannel:bt,BackToTop:nt},mixins:[vt],data(){return{isElectron:Object(X["isElectron"])(),scrollOffset:0,lib:s["a"]}},computed:{followings(){return this.lib.followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(e.title&&e.id)))},blockMap(){const e={};return s["a"].userData&&s["a"].userData.blockChannels?(this.followings.forEach((t=>{(s["a"].userData.blockChannels.includes(t.id)||s["a"].userData.blockUsers.includes(t.creator))&&(e[t.id]=!0)})),e):e},filteredChannels(){const e=this.searchText.toLowerCase();if(!e)return this.followings;const t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{const n=a(t);return Object(_["a"])(null===n||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.followings.filter(n)}},methods:{scrollTop(){this.$refs.scrollEl.scrollTo(0,0)},showChannelDetail(e){const t=this.followings.find((t=>t.id===e));console.log("to",t);const a=["id","title"].map((e=>{const a=t[e];return encodeURIComponent(e)+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)},unfollow(e){this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},goToExplore(){this.$root.$emit("navigate-to"),this.$router.push("/library/explore")},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/following"),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.scrollTo(0,this.scrollOffset)},mounted(){this.setSearch(),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.addEventListener("scroll",Object(jt["a"])((()=>{this.scrollOffset=this.$refs.scrollEl.scrollTop})))},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Lt=Nt,Ut=(a("3d7e"),Object(v["a"])(Lt,Et,Dt,!1,null,"0a6f4e44",null)),Rt=Ut.exports;S()(Ut,"components",{QBtn:A["a"],QTooltip:V["a"]});var Mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"local-favorite",class:{web:!e.isElectron}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.filteredFavorites.length,itemsFn:function(t,a){return e.filteredFavorites.slice(t,a)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n,followable:!e.lib.followingChannels.some((function(e){return e.id===n.channel.id}))},on:{follow:e.onFollow,preview:e.preview,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"rounded-borders bg-page column justify-center items-center",class:e.filteredFavorites.length?"q-mb-sm q-pa-md":"",style:e.filteredFavorites.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},[e.filteredFavorites.length?e._e():a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)])]},proxy:!0}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("div",{staticClass:"fixed-bottom-right save-or-load",class:{higher:e.scrollIndex>0||e.showBackToTop}},[a("q-btn",{staticClass:"backup-btn q-ma-xs",class:{hide:e.hideBtn},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary",icon:"source"},on:{click:e.saveOrLoad}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("backup")))])])],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("q-dialog",{model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",[a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"text-h6 col-12"},[e._v(e._s(e.$t("import_or_export_favorites")))]),a("div",{staticClass:"col-12"},[e._v("\n Total: "+e._s(e.favorites.length)+"\n ")]),a("div",{staticClass:"btns col-12 text-right q-mt-md"},[a("q-btn",{attrs:{color:"primary",flat:"",icon:"save",label:e.$t("export_local_favorites")},on:{click:e.exportData}}),a("FileSelector",{attrs:{accept:{name:"JSON",extensions:["json"]}},on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",flat:"",icon:"add",label:e.$t("import_favorites_file")}})],1)],1)])],1)],1)],1)},Ft=[],Bt=a("9a50"),Wt={name:"LibraryFavorite",components:{PostCard:Ye,BackToTop:nt,FileSelector:Bt["a"]},mixins:[vt,wt("favorite"),St],data(){return{isElectron:Object(X["isElectron"])(),hideBtn:!1,favorites:re.list(),scrollIndex:0,showPreview:!1,previewImage:"",showDialog:!1,lib:s["a"]}},computed:{filteredFavorites(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"postID":return e.id;case"postDesc":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.favorites.filter(n)}},methods:{onScroll(e){this.scrollIndex=e.index},preview(e){this.previewImage=e,this.showPreview=!0},remove(e){return re.remove(e)},saveOrLoad(){this.showDialog=!0},exportData(){Object(_["h"])(JSON.stringify({favorites:this.favorites}),"favorites.json"),this.showDialog=!1},importData(){console.log(this.$refs.fileSelector),this.$refs.fileSelector.value="",this.$refs.fileSelector.click()},onFileChange(e){e&&Object(_["g"])(e).then((e=>{if(!e)return this.$q.notify("Cannot read data from this file");const t=JSON.parse(e);if(!t.favorites||!Array.isArray(t.favorites))return this.$q.notify(this.$t("not_a_favorite_file"));re.set(t.favorites),this.showDialog=!1}))},onFollow(e){if(s["a"].followingChannels.some((t=>t.id===e||t.soul===e)))return console.log("unfollow"),s["a"].unfollowChannel(e).then(console.log);console.log("follow"),s["a"].followChannel(e).then(console.log)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"postTitle"},{label:this.$t("description"),value:"postDesc"},{label:this.$t("channel_title"),value:"channel"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/favorite"),this.hideBtn=!0,setTimeout((()=>{this.hideBtn=!1}),300)},deactivated(){this.hideBtn=!0},watch:{searchText(e){e&&this.active&&this.handleBackToTop()}}},Ht=Wt,Vt=(a("2377"),Object(v["a"])(Ht,Mt,Ft,!1,null,"c0faef30",null)),Qt=Vt.exports;S()(Vt,"components",{QIcon:G["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSpinnerIos:$t["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(Vt,"directives",{ClosePopup:K["a"]});var Gt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"edit-container"},[a("div",{ref:"scrollArea",staticClass:"edit-main flex items-stretch justify-center"},[a("div",{staticClass:"add-channel rounded-borders bg-general q-ma-sm flex justify-center items-center column",staticStyle:{"min-height":"290px"}},[a("div",{staticClass:"add-channel-panel relative-position"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticClass:"add-channel-btn block absolute-left",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle_outline",size:"24px"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_channel")))])],1),a("q-btn",{staticClass:"quick-start block absolute-right",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle",size:"24px"},on:{click:function(t){e.showQuickStart=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("quick_start_desc")))])],1)],1)]),e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{title:t.title,description:t.description,image:t.image,id:t.id,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],editable:!0,hideFollow:""},on:{edit:e.edit,detail:e.showChannelDetail,preview:e.showPreview,"remove-channel":e.removeChannel}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("ChannelEdit",{attrs:{title:e.modeTitle,show:e.showEdit,channel:e.edittingChannel,rules:{validateChannelTitle:e.validateChannelTitle,validateChannelDesc:e.validateChannelDesc,validateChannelImage:e.validateChannelImage}},on:{close:function(t){e.showEdit=!1},submit:e.submit}}),a("PostEdit",{attrs:{title:e.postModeTitle,show:e.showPostEdit,post:e.edittingPost,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl}},on:{close:function(t){e.showPostEdit=!1},submit:e.submitPost}}),a("QuickStart",{attrs:{show:e.showQuickStart},on:{input:function(t){return e.showQuickStart=t}}})],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}}),a("q-dialog",{attrs:{"full-width":"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showPostList,callback:function(t){e.showPostList=t},expression:"showPostList"}},[a("PostList",{attrs:{channel:e.listChannel,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl},editable:!0},on:{edit:e.showPostEditor,add:e.showPostAdd,"remove-post":e.removePost}})],1)],1)},Kt=[],Yt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[e.channel?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.title))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"column q-pb-none",class:e.screen$xs?"q-pt-md":"q-pt-none",staticStyle:{width:"560px","max-width":"100%","flex-grow":"1"}},[a("q-input",{attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle],placeholder:e.$t("placeholder_channel_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("description"),rules:[e.rules.validateChannelDesc],placeholder:e.$t("placeholder_channel_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("q-toggle",{staticStyle:{"margin-top":"-8px"},attrs:{color:"green"},model:{value:e.hidden,callback:function(t){e.hidden=t},expression:"hidden"}},[a("span",[e._v(e._s(e.$t("set_as_private")))]),a("q-tooltip",[e._v(e._s(e.$t("hide_in_explore")))])],1)],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"q-px-md",class:e.screen$xs?"q-py-sm":"q-py-md",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-px-md",attrs:{unelevated:"",color:"general","text-color":"general",label:e.$t("cancel")}}),a("q-btn",{staticClass:"q-px-md",attrs:{unelevated:"",color:"primary","text-color":"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1):e._e()],1)},Jt=[],Zt=a("d534"),Xt={name:"ChannelEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,channel:Object,title:String,rules:{validateChannelTitle:Function,validateChannelDesc:Function,validateChannelImage:Function}},data(){const e=[{label:this.$t("channel_title"),key:"title",rules:[this.rules.validateChannelTitle],value:""},{label:this.$t("description"),key:"description",rules:[this.rules.validateChannelDesc],value:""},{label:this.$t("preview")+"(url)",key:"image",rules:[this.rules.validateChannelImage],value:""}];return{inputs:e,channelTitle:"",description:"",image:"",isImageLoaded:!1,hidden:!1}},methods:{close(){this.$emit("close")},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.channelTitle,description:this.description,image:this.image,hidden:this.hidden})}},watch:{show(e){e&&this.channel?(this.channelTitle=this.channel.title,this.description=this.channel.description,this.image=this.channel.image,this.channel.hidden?this.hidden=!0:this.hidden=!1):(this.channelTitle="",this.description="",this.image="",this.hidden=!1)}}},ea=Xt,ta=a("03bd"),aa=Object(v["a"])(ea,Yt,Jt,!1,null,"01839ef4",null),na=aa.exports;S()(aa,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QInput:E["a"],QToggle:ta["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(aa,"directives",{ClosePopup:K["a"]});var oa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.close}},[e.post?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))])]),a("q-card-section",{staticClass:"row q-pt-none justify-start items-start"},[a("div",{staticClass:"full-width title-input-container"},[a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"bottom-slots":"","stack-label":"",outlined:"",dense:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle],placeholder:e.$t("placeholder_post_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.titleFromTask,expression:"titleFromTask"}],staticClass:"full-width"},[a("span",{staticClass:"task-prefix"},[e._v(e._s(e.$t("task_title"))+":")]),a("span",{staticClass:"title-from-task q-ml-xs text-grey"},[e._v(e._s(e.titleFromTask))]),a("span",{staticClass:"cursor-pointer q-ml-sm set-title",on:{click:e.setTitleFromTask}},[e._v(e._s(e.$t("set_title")))])])]},proxy:!0}],null,!1,1210891792),model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}})],1),a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"stack-label":"",outlined:"",dense:"",label:e.$t("description"),rules:[e.rules.validatePostDesc],placeholder:e.$t("placeholder_post_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-xs",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("div",{staticClass:"full-width row col-12"},[a("q-input",{staticClass:"col-7 q-pr-md",attrs:{outlined:"",dense:"",label:e.appName+" URL",rules:[e.rules.validatePostUrl],debounce:500},on:{input:e.inputUrl},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("q-select",{staticClass:"col-5",attrs:{outlined:"",dense:"","bottom-slots":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important","use-input":"",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}],null,!1,1979668889),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("q-select",{staticClass:"q-mt-sm",staticStyle:{width:"100%"},attrs:{outlined:"",dense:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}}),a("q-markup-table",{staticClass:"q-mt-lg full-width",attrs:{bordered:"",flat:"",dense:"","no-data-label":"I didn't find anything for you"}},[a("thead",[a("tr",[a("th",{attrs:{colspan:"3"}},[a("div",{staticClass:"flex items-center full-width"},[a("div",[e._v(e._s(e.$t("subtitle_list"))+" ("+e._s(e.$t("optional"))+")")]),a("q-btn",{staticClass:"q-ml-sm",attrs:{flat:"",round:"",icon:"help_outline",size:"0.7rem"}},[a("q-tooltip",[e._v(e._s(e.$t("support_subtitle_type"))),a("br"),e._v(e._s(e.$t("recommend_opensubtitles")))])],1),a("q-btn",{staticClass:"q-mx-xs",attrs:{flat:"",round:"",icon:"add",size:"0.7rem"},on:{click:function(t){return e.editSubtitle()}}},[a("q-tooltip",[e._v(e._s(e.$t("add_subtitles")))])],1)],1)])]),e.subtitleList.length?a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("download_link")))]),a("th",{staticClass:"text-center"})]):e._e()]),a("tbody",e._l(e.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"edit",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.editSubtitle(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1),a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.modifySubtitleList(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1)],1)])})),0)])],1),a("q-space"),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:e.$t("lib_submit"),color:"primary"},on:{click:e.submit}})],1)],1):e._e(),a("q-dialog",{ref:"addSubtitleDialog",on:{hide:function(t){e.subtitle={}}},model:{value:e.showSubtitleInput,callback:function(t){e.showSubtitleInput=t},expression:"showSubtitleInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("add_subtitle_url")))])]),a("q-card-section",{staticClass:"q-pt-none full-width"},[a("q-select",{staticStyle:{width:"200px"},attrs:{dense:"",outlined:"","emit-value":"",label:e.$t("language"),options:e.languageOptions},model:{value:e.subtitle.lang,callback:function(t){e.$set(e.subtitle,"lang",t)},expression:"subtitle.lang"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{label:e.$t("download_link"),outlined:"",dense:"",type:"text",placeholder:"https://www.opensubtitles.org/.../subtitleserve/sub/..."},model:{value:e.subtitle.url,callback:function(t){e.$set(e.subtitle,"url",t)},expression:"subtitle.url"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{attrs:{flat:"",icon:"done",loading:e.loading,disable:e.loading},on:{click:function(t){return e.modifySubtitleList(e.subtitle.index,e.subtitle)}},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])})],1)],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},ia=[],ra={name:"PostEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,post:Object,title:String,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},data(){const e=De.a.displayName;return{appName:e,postTitle:"",titleFromTask:"",description:"",image:"",isImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,rate:{label:this.$t("film_rate"),value:""},showSubtitleInput:!1,loading:!1,subtitle:{},languageOptions:$e(),subtitleList:[],taskOptions:[]}},computed:{rateOptions(){return[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}]},uploadingTasks(){return d["a"].getters.uploading.filter((e=>!!e.title||(console.log("PostEdit.uploadingTasks:",e),!1))).map((e=>{var t;const a=e.title.length>28?e.title.substring(0,24)+"...":e.title;return{label:a,title:e.title,value:(null===(t=e.abUrl.split("&"))||void 0===t?void 0:t[0])||e.abUrl}}))}},methods:{filterOptions(e,t){console.log("filter",e);const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.label.toLowerCase().includes(a)))}))},close(){this.$emit("close")},setTitleFromTask(){this.postTitle=this.titleFromTask,this.titleFromTask=""},inputUrl(e){this.abSelect&&e!==this.abSelect.value&&(this.abSelect=null,this.titleFromTask="")},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});this.abUrl=t},editSubtitle(e){if(this.loading=!1,"number"===typeof e)this.subtitle=JSON.parse(JSON.stringify(this.subtitleList[e])),this.subtitle.index=e;else{if(this.subtitleList.length>=5)return this.$q.notify(this.$t("maximumSubtitleNum_limit"));this.subtitle={index:this.subtitleList.length}}this.showSubtitleInput=!0},async modifySubtitleList(e,t){if(console.log("modifySubtitleList",e),this.loading=!0,t&&"number"===typeof t.index){if(!t.lang||!t.url||""===t.lang)return this.loading=!1,this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("cannot_add_subtitle_msg")+this.$t("recommend_opensubtitles"),ok:this.$t("ok")});const a=await Ae(this.subtitle.url);if(this.loading=!1,!a)return this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("invalid_download_url"),ok:this.$t("ok")});this.subtitleList[e]=t}else this.subtitleList.splice(e,1);this.$refs.addSubtitleDialog.hide()},async checkSubtitleUrl(){if(!/https:\/\/www\.opensubtitles\.org.*\/subtitleserve\/sub\/\d+$/gm.test(this.subtitle.url)&&!/^\d+$/.test(this.subtitle.url))return this.$t("invalid_download_url");const e=await Ae(this.subtitle.url);return e?void 0:this.$t("invalid_download_url")},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.postTitle.trim(),description:this.description.trim(),image:this.image.trim(),rate:this.rate.value,abUrl:this.abUrl.trim(),subtitleList:Te(this.subtitleList).trim()})}},watch:{show(e){if(e&&this.post){if(this.postTitle=this.post.title,this.description=this.post.description,this.image=this.post.image,this.abUrl=this.post.abUrl.includes(":")?this.post.abUrl:decodeURIComponent(this.post.abUrl),this.post.rate){const e=this.rateOptions.find((e=>e.value===this.post.rate));e&&(this.rate={...e})}else this.rate={label:this.$t("film_rate"),value:""};this.subtitleList=ze(this.post.subtitleList)}else this.postTitle="",this.description="",this.image="",this.abUrl="",this.titleFromTask="",this.abSelect=null,this.rate={label:this.$t("film_rate"),value:""},this.subtitleList=[]}}},sa=ra,la=(a("1761"),a("4101")),ca=Object(v["a"])(sa,oa,ia,!1,null,"48adc3b5",null),da=ca.exports;S()(ca,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QSelect:ue["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QSpace:W["a"],QCardActions:D["a"],QSpinner:w["a"],QColor:la["a"]}),S()(ca,"directives",{ClosePopup:K["a"]});var ua=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"post-list-card column no-wrap overflow-hidden relative-position"},[a("q-card-section",{staticClass:"flex items-center bg-page",class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.channel.title))]),a("q-space"),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"add"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_post")))])],1):e._e(),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"file_open"},on:{click:function(t){e.showImport=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("import_data_from_excel")))])],1):e._e(),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-ml-xs",attrs:{"fab-mini":"",flat:"",icon:"close"}})],1),a("q-card-section",{staticClass:"q-py-sm q-pb-none"},[a("div",{staticClass:"description"},[e._v(e._s(e.channel.description))])]),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none",staticStyle:{"flex-grow":"1","flex-shrink":"1","overflow-y":"scroll"}},[a("q-markup-table",{attrs:{square:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("created_time")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("operations")))])])]),a("tbody",{staticClass:"post-table"},e._l(e.sortedPosts,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[a("img",{attrs:{src:t.image,loading:"lazy",width:"64px"}})]),a("td",{staticClass:"text-left post-title"},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc",staticStyle:{"min-width":"240px"}},[e._v(e._s(t.description))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-center"},[e._v(e._s(e.stampToString(t.timestamp)))]),a("td",{staticClass:"text-center"},[e.editable?a("q-btn",{attrs:{icon:"edit",round:"",flat:""},on:{click:function(a){return e.edit(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1):e._e(),e.editable?a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:""},on:{click:function(a){return e.deletePost(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1):e._e()],1)])})),0)])],1),a("q-dialog",{attrs:{"content-class":"fullscreen-dialog excel-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.importDialogChange},model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[e.excelFile?a("Excel",{attrs:{file:e.excelFile,channelId:e.channel.id,channelPosts:e.posts,propKeys:e.excelProps,rules:e.rules}}):a("q-card",{staticClass:"import-entry"},[a("q-card-section",{staticClass:"row items-center no-wrap q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("import_data_from_excel")))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-card-section",{staticClass:"row items-center q-pt-none excel-import-dialog"},[a("div",{staticClass:"prop-settings col-12"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("set_excel_keys")))]),e._l(e.excelProps,(function(t,n){return a("q-input",{key:n,staticClass:"q-my-sm",attrs:{outlined:"",dense:"",label:t.label},model:{value:t.tableKey,callback:function(a){e.$set(t,"tableKey",a)},expression:"conf.tableKey"}})}))],2),a("q-file",{staticClass:"col-12",attrs:{outlined:"",dense:"",label:e.$t("open_file"),accept:".xls,.xlsx"},model:{value:e.excelFile,callback:function(t){e.excelFile=t},expression:"excelFile"}})],1)],1)],1),a("q-inner-loading",{staticClass:"q-pt-xl",attrs:{showing:e.showLoading,label:e.$t("loading")}},[a("q-spinner-gears",{attrs:{size:"50px",color:"primary"}}),a("div",{staticClass:"text-center"},[e._v(e._s(e.$t("lib_from_network")))])],1)],1)},_a=[],pa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-excel"},[a("q-card",{staticClass:"excel-card"},[a("q-card-section",{staticClass:"excel-main"},[a("div",{staticClass:"text-h6"},[e._v("Excel")]),a("q-markup-table",[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-left"},[e._v("Url")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"operation"})])]),a("tbody",{staticClass:"post-table"},e._l(e.posts,(function(t,n){return a("tr",{key:t.title},[a("td",{staticClass:"text-left post-title",attrs:{title:t.title}},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc"},[e._v(e._s(t.description))]),a("td",{staticClass:"text-left post-url",attrs:{title:t.abUrl}},[e._v(e._s(t.abUrl))]),a("td",{staticClass:"text-left post-img"},[a("img",{attrs:{src:t.image,width:"24px",loading:"lazy"}})]),a("td",{staticClass:"text-left post-rating"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-left post-options"},[a("q-btn",{attrs:{dense:"",flat:"",icon:"close",color:"red"},on:{click:function(t){return e.removePost(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("remove")))])],1)],1)])})),0)])],1),a("q-card-actions",{staticClass:"excel-actions q-pb-xs",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",color:"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1)],1)},ma=[],ha=a("8b4c"),ga={name:"LibraryExcel",props:{file:{type:File,default:()=>null},channelId:{type:String,default:""},channelPosts:{type:Array,default:()=>[]},rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function},propKeys:{type:Array,default:()=>[{key:"title",label:(void 0).$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:"Alphabiz URL",tableKey:"AB-S"},{key:"description",label:(void 0).$t("description"),tableKey:"描述"},{key:"image",label:(void 0).$t("poster"),tableKey:"海报"},{key:"rate",label:(void 0).$t("film_rate"),tableKey:"分级"}]}},data(){return{posts:[]}},methods:{removePost(e){this.posts.splice(e,1)},readFile(e){return new Promise(((t,a)=>{const n=new FileReader;n.onload=e=>{const n=e.target.result;try{const e=ha["read"](n);t(e)}catch(e){a(e)}},n.onerror=e=>a(e),n.readAsArrayBuffer(e)}))},async parseXlsx(){console.log("parse xlsx",this.file,ha);const e=await this.readFile(this.file);console.log(e),this.$q.loading.show(),this.posts=[];let t=0,a=0,n=0;for(const o in e.Sheets){const i=e.Sheets[o],r=ha["utils"].sheet_to_json(i);console.log("Parsed",r),r.length&&await r.reduce((async(e,o)=>{await e,await new Promise((e=>setTimeout(e)));const i={};for(const a of this.propKeys){if(!o[a.tableKey]||!o[a.tableKey].length)return console.log("[Excel] Failed",a,a.tableKey,o[a.tableKey]),t++;i[a.key]=o[a.tableKey]}if(this.channelPosts.some((e=>e.title===i.title||e.abUrl===i.abUrl)))return console.log("[Excel] Skip existed",i,this.channelPosts.find((e=>e.title===i.title||e.abUrl===i.abUrl))),a++;if(i.abUrl&&i.abUrl.startsWith("magnet"))try{i.abUrl=await Object(Se["a"])(i.abUrl)}catch(r){console.log("cannot convert abUrl",i.abUrl,r)}if(i.description=i.description.substring(0,299),[this.rules.validatePostTitle(i.title),this.rules.validatePostDesc(i.description),this.rules.validatePostImage(i.image),this.rules.validatePostUrl(i.abUrl)].some((e=>"string"===typeof e)))return console.log("[Excel] Validate error",[i.title,this.rules.validatePostTitle(i.title),i.description,this.rules.validatePostDesc(i.description),i.image,this.rules.validatePostImage(i.image),i.abUrl,this.rules.validatePostUrl(i.abUrl)]),n++;this.posts.push(i)}),Promise.resolve())}this.$q.loading.hide(),this.$q.dialog({title:this.$t("excel_import_succeded"),message:this.$t("excel_import_success_msg",[this.posts.length,t,a,n])})},submit(){return console.log(this.channelId,s["a"],this.posts),this.channelId?this.posts.length?void s["a"].addPosts(this.posts,this.channelId).then(((...e)=>{console.log("add posts",...e)})):this.$q.notify(this.$t("cannot_find_posts")):this.$q.notify(this.$t("cannot_find_channel"))}},watch:{file(e){console.log("file:",e)}},mounted(){console.log("excel mounted"),this.parseXlsx()},activated(){console.log("excel activated")}},fa=ga,ba=(a("5415"),Object(v["a"])(fa,pa,ma,!1,null,"27719a2e",null)),ya=ba.exports;S()(ba,"components",{QCard:q["a"],QCardSection:O["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QCardActions:D["a"]}),S()(ba,"directives",{ClosePopup:K["a"]});const va=e=>("00"+e).slice(-2);var wa={props:{channel:Object,editable:Boolean,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},components:{Excel:ya},data(){const e=De.a.name;return{appName:e,showLoading:!1,showImport:!1,excelFile:null,posts:[],excelProps:[{key:"title",label:this.$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:`${De.a.displayName} URL`,tableKey:"AB-S"},{key:"description",label:this.$t("description"),tableKey:this.$t("description")},{key:"image",label:this.$t("poster"),tableKey:this.$t("poster")},{key:"rate",label:this.$t("film_rate"),tableKey:this.$t("film_rate")}]}},inject:["rootApp"],computed:{sortedPosts(){return[...this.posts].sort(((e,t)=>t.timestamp-e.timestamp))}},methods:{loadPosts(){this.showLoading=!0,console.log("load posts",this.channel.id,this.channel),Object(p["o"])(this.channel.id,!this.editable).then((e=>{this.posts=e,console.log("Got posts",e),this.showLoading=!1}))},edit(e){console.log("edit",e,this.channel),this.$emit("edit",e,this.channel)},add(){this.$emit("add",this.channel)},deletePost(e){this.$emit("remove-post",e.id,this.channel.id)},download(e){this.rootApp.promptDownload(e.abUrl,!0)},stampToString(e){if(isNaN(e))return console.log("stamp is not number",e),"-";const t=new Date(e);return isNaN(t.getFullYear())?(console.log("date is invalid",e,t),"-"):[t.getFullYear(),...[t.getMonth()+1,t.getDate()].map(va)].join("-")+" "+[t.getHours(),t.getMinutes(),t.getSeconds()].map(va).join(":")},importDialogChange(e){e||(this.excelFile=null)}},mounted(){console.log("mounted",this.channel),this.loadPosts()},beforeDestroy(){console.log("destroyed",this.channel),this.channel&&this.channel.id&&Object(p["y"])(this.channel.id)}},ka=wa,Sa=(a("5e95"),a("3927")),Ca=Object(v["a"])(ka,ua,_a,!1,null,"1e291392",null),xa=Ca.exports;S()(Ca,"components",{QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QDialog:I["a"],QInput:E["a"],QFile:Sa["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QColor:la["a"]}),S()(Ca,"directives",{ClosePopup:K["a"]});var $a=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.changeShow}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",id:"file-selector"},on:{change:e.onFileChange}}),a("input",{ref:"folderSelector",staticStyle:{display:"none"},attrs:{type:"file",webkitdirectory:"",id:"folder-selector"},on:{change:e.onFolderChange}}),a("q-card",{staticClass:"card-container"},[a("q-card-section",{staticClass:"card-header non-selectable",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold q-my-none"},[e._v(e._s(e.$t("quick_start")))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("div",{staticClass:"card-content"},[a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"from-file-or-task flex items-start justify-start q-mb-lg"},[e.isCapacitor?e._e():a("div",{staticClass:"from-file-or-folder q-mt-md col-grow"},[a("q-btn",{staticClass:"full-width",class:{"q-mt-sm":!e.isElectron},attrs:{unelevated:"",dense:e.isElectron,color:"primary","text-color":"primary",label:e.$t("select_file")},on:{click:function(){return e.$refs.fileSelector.click()}}}),e.isElectron?a("q-btn",{staticClass:"full-width q-mt-sm",attrs:{unelevated:"",dense:"",color:"primary","text-color":"primary",label:e.$t("select_folder")},on:{click:function(){return e.$refs.folderSelector.click()}}}):e._e()],1),a("q-select",{staticClass:"col-grow q-mt-md from-upload-task",class:e.isCapacitor?"q-ml-none":"q-ml-sm",attrs:{outlined:"",dense:"","bottom-slots":"","use-input":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important",behavior:"menu",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet text-primary cursor-pointer non-selectable",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}]),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("div",{staticClass:"post-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_post_desc"),rules:[e.rules.validatePostDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postDescription,callback:function(t){e.postDescription=t},expression:"postDescription"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.appName+" "+e.$t("download_link"),rules:[e.rules.validatePostUrl]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("ImageWithPreview",{staticClass:"q-mb-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updatePostImageState},model:{value:e.postImage,callback:function(t){e.postImage=t},expression:"postImage"}}),a("q-select",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}})],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"channel-option non-selectable"},[a("label",{staticClass:"text-bold q-mr-sm",staticStyle:{"font-size":"1.125rem"}},[e._v(e._s(e.$t("channel_options")))]),a("q-radio",{attrs:{val:!0,label:e.$t("create_new_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}}),a("q-radio",{attrs:{val:!1,label:e.$t("use_existed_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}})],1),e.createChannel?a("div",{staticClass:"channel-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_channel_desc"),rules:[e.rules.validateChannelDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelDescription,callback:function(t){e.channelDescription=t},expression:"channelDescription"}}),a("ImageWithPreview",{attrs:{label:e.$t("channel_poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateChannelImageState},model:{value:e.channelImage,callback:function(t){e.channelImage=t},expression:"channelImage"}})],1):a("div",{staticClass:"channel-select"},[a("q-select",{staticClass:"full-width",attrs:{outlined:"","bottom-slots":"","use-input":"",dense:"","popup-content-style":"max-height: 320px !important","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"data-cy":"select-direct",behavior:"menu",label:e.$t("select_existed_channel"),options:e.channelOptions},on:{filter:e.filterChannels},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"option",fn:function(t){return[a("q-item",e._g(e._b({},"q-item",t.itemProps,!1),t.itemEvents),[a("q-item-section",[a("q-item-label",[a("span",{staticClass:"label"},[e._v(e._s(t.opt.label))]),a("small",{staticClass:"text-grey q-ml-sm"},[e._v(e._s(t.opt.caption))])])],1)],1)]}}]),model:{value:e.selectedChannel,callback:function(t){e.selectedChannel=t},expression:"selectedChannel"}})],1)])],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"card-footer",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{unelevated:"",label:e.$t("lib_submit"),disable:!e.submitReady,"text-color":"primary",color:"primary"},on:{click:e.submit}})],1)],1),a("q-dialog",{attrs:{value:!!e.progressText,persistent:""}},[a("q-card",{staticClass:"progress-card"},[a("q-card-section",[a("div",{staticClass:"text q-pa-md"},[e._v(e._s(e.progressText))])])],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text",autofocus:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done",color:"primary","text-color":"primary"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},Ta=[],za=(a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("84f6")),Pa=a("d6fe"),Aa=a.n(Pa);function Ia(e){if(!Array.isArray(e)||!e[0])return"";let t=Object(Pa["dirname"])(e[0]);for(let a=1;a1)t=Object(Pa["dirname"])(t);return t}var qa=a("8a63");const Oa=4e9,Ea=e=>new Promise((t=>setTimeout(t,e))),Da=()=>{const e=new Uint8Array(12);return crypto.getRandomValues(e),e.reduce(((e,t)=>{const a=t.toString(16).padStart(2,"0");return e+a}),"")};var ja={components:{ImageWithPreview:Zt["a"]},name:"QuickStart",props:{show:Boolean,preset:{required:!1,default:null}},data(){const e=[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}],t={validateChannelTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||oe["b"].t("validate_channel_image_url"))},validatePostTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||oe["b"].t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return oe["b"].t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?oe["b"].t("validate_post_url"):e.length<2048||oe["b"].t("validate_post_url_length")}},a=De.a.displayName;return{appName:a,rules:t,progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,rateOptions:e,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:e[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""},isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{username(){return s["a"].userData.name?s["a"].userData.name:d["a"].getters.accountUserInfo.nickname?d["a"].getters.accountUserInfo.nickname:s["a"].user.name||"-"},uploadingTasks(){return za["a"].taskList.uploading.map((e=>this.getTaskOption(e)))},channelOptions(){return s["a"].ownedChannels.filter((e=>!!e.id&&e.title.toLowerCase().includes(this.channelFilterInput))).filter((e=>s["a"].channelList.some((t=>e.id===t.id)))).map((e=>{const t=e.title.length>48?e.title.substring(0,44)+"...":e.title;return{label:t,title:e.title,caption:"%"+e.id,id:e.id}}))},submitReady(){if(this.channelImage&&!this.isChannelImageLoaded)return!1;if(this.channelImage&&!0!==this.rules.validateChannelImage(this.channelImage))return!1;if(this.postImage&&!this.isPostImageLoaded)return!1;if(this.postImage&&!0!==this.rules.validatePostImage(this.postImage))return!1;if(!this.rate)return!1;if(this.createChannel){if([this.rules.validateChannelTitle(this.channelTitle),this.rules.validateChannelDesc(this.channelDescription)].some((e=>!0!==e)))return!1}else if(!this.selectedChannel.id)return!1;return!![this.rules.validatePostTitle(this.postTitle),this.rules.validatePostDesc(this.postDescription),this.rules.validatePostUrl(this.abUrl)].every((e=>!0===e))}},methods:{todo(){this.$q.notify("TODO: This is not impl")},changeShow(e){this.$emit("input",e)},clear(){var e;const t={progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:this.rateOptions[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""}};null!==(e=this.channelOptions)&&void 0!==e&&e.length&&(t.createChannel=!1,t.selectedChannel=this.channelOptions[0]);for(const a in t)this.$set(this,a,t[a])},getTaskOption(e){var t;const a=e.postTitle||e.name||e.infoHash,n=a.length>36?a.substring(0,32)+"...":a;let o=Object(M["g"])(e.progress||1);if(e.ready)o="100.00%";else if(e.verifyStatus){const{current:t,total:a}=e.verifyStatus,n=t/a,i=Object(M["g"])(n);isNaN(n)||(o=i)}const i=(null===(t=e.alphabizURI.split("&"))||void 0===t?void 0:t[0])||e.alphabizURI,r=De.a.shortProtocol+"://"+i.split("/").pop();return{label:e.ready?n:n+` (${o})`,title:a,progress:o,value:r,ready:e.ready}},filterOptions(e,t){const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.title.toLowerCase().includes(a)))}))},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title,this.postDescription||(this.postDescription=this.$t("uploaded_by",{title:e.title,name:this.username}))},filterChannels(e,t){const a=e.toLowerCase();t((()=>{this.channelFilterInput=a}))},updatePostImageState(e){this.isPostImageLoaded=1===e},updateChannelImageState(e){this.isChannelImageLoaded=1===e},showProgress(e,...t){console.log(this.$t("progress")+":",e,...t),this.progressText=e},async createNewChannel(){const e=await s["a"].createChannel(this.channelTitle.trim(),this.channelDescription.trim(),this.channelImage.trim());return console.log("Channel created",e),e},async submit(){let e=!1,t=null;const a=async a=>(clearTimeout(t),t=setTimeout((()=>{e=!0,this.$q.dialog({message:this.$t("quick_start_timeout",[a]),ok:this.$t("ok")})}),11e3),new Promise((e=>setTimeout(e,1e4))));let n=this.selectedChannel.id;if(this.createChannel){this.showProgress(this.$t("creating_new_channel")),await Ea(1e3);const o=await Promise.race([this.createNewChannel(),a(this.$t("create_new_channel"))]);if(clearTimeout(t),console.log(o),e||!o)return this.showProgress("");this.showProgress(this.$t("created_new_channel"),o),await Ea(1e3),n=o.id}this.showProgress(this.$t("creating_new_post")),await Ea(1e3);const o=await Promise.race([s["a"].createPost({title:this.postTitle.trim(),description:this.postDescription.trim(),image:this.postImage.trim(),rate:this.rate.value,abUrl:this.abUrl.trim()},n),a(this.$t("create_new_post"))]);if(e||!o)return this.showProgress("");clearTimeout(t),this.showProgress(this.$t("created_new_post"),o),await Ea(2e3),this.showProgress(""),await Ea(500),this.$emit("input",!1),this.$q.dialog({message:this.$t("success"),ok:this.$t("ok")})},async askForConfirm(e,t){return new Promise((a=>{this.$q.dialog({title:e,message:t,ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>a(!0))).onCancel((()=>a(!1)))}))},calcFileSize(e){return e.reduce(((e,t)=>e+t.size),0)},async onFileChange(e){var t,n;const o=null===e||void 0===e||null===(t=e.target)||void 0===t||null===(n=t.files)||void 0===n?void 0:n[0];if(o){if(console.log("file selected",o),e.target.value=null,o.size>Oa){const e=await this.askForConfirm(this.$t("file_too_large"),this.$t("file_too_large_msg",{size:Object(M["a"])(o.size)}));if(!e)return}if(Object(X["isElectron"])())this.createTask(o.path);else{const e=a("c620").wtClient;if(e.torrents.length){const t=await this.askForConfirm(this.$t("remove_old_task"),this.$t("remove_old_task_desc"));if(!t)return;e.torrents[0].destroy(),e.torrents.splice(0)}this.createTask(o)}}},async onFolderChange(e){var t,a,n;console.log("onFolderChange",e),(null===e||void 0===e||null===(t=e.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a.length)>100&&(this.showProgress(this.$t("resolving_folder_files")),await Ea(100));const o=[...null===e||void 0===e||null===(n=e.target)||void 0===n?void 0:n.files];if(!o)return;console.log("folder selected",o),e.target.value=null;const i=this.calcFileSize(o),r=Ia(o.map((e=>e.path)));if(this.showProgress(""),await Ea(50),i>Oa){const e=await this.askForConfirm(this.$t("folder_too_large"),this.$t("folder_too_large_msg",{size:Object(M["a"])(i)}));if(!e)return}console.log("TOTAL:",i),console.log("Create task with folder",r),this.createTask(r)},async createTask(e){const t=Da();this.showProgress(this.$t("creating_new_task")),Object(X["isElectron"])()?Object(qa["g"])(e,t):Z["a"].emit("wt-add",e,{token:t});const a=()=>{const e=setInterval((()=>{const a=za["a"].taskList.uploading.find((e=>e.token===t)),n=()=>{this.showProgress(""),this.selectTask(this.getTaskOption(a))};if(a.ready&&a.alphabizURI)return clearInterval(e),void n();if(!a.verifyStatus)return this.showProgress(this.$t("loading")+"... (0%)");const o=Object(M["g"])(a.verifyStatus.current/a.verifyStatus.total);this.showProgress(this.$t("loading")+`... (${o})`),a.verifyStatus.current>=a.verifyStatus.total&&a.alphabizURI&&(clearInterval(e),setTimeout(n,1e3))}),1e3)},n=Date.now(),o=setInterval((()=>{const e=za["a"].taskList.uploading.find((e=>e.token===t));if(e)clearInterval(o),a();else if(Date.now()-n>3e3)return clearInterval(o),this.showProgress(""),this.askForConfirm(this.$t("cannot_create_task"),this.$t("cannot_create_task_msg"))}),500)},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});const a=e.split("&").find((e=>e.startsWith("dn="))),n=a?decodeURIComponent(a.substring(3)):this.postTitle;if(!n)return this.$q.dialog({title:this.$t("cannot_get_task_name"),ok:this.$t("ok")});this.selectTask({value:t,label:n,title:n})}},watch:{show(e){e&&this.$nextTick((()=>{this.clear(),this.preset&&this.selectTask(this.getTaskOption(this.preset))}))}}},Na=ja,La=(a("50de"),a("2b77")),Ua=a("79e0"),Ra=Object(v["a"])(Na,$a,Ta,!1,null,"7e12c2f2",null),Ma=Ra.exports;S()(Ra,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QBtn:A["a"],QSelect:ue["a"],QInput:E["a"],QRadio:La["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QCardActions:D["a"]}),S()(Ra,"directives",{ClosePopup:K["a"]});var Fa={name:"EditMain",components:{ChannelCard:pt,ChannelEdit:na,PostEdit:da,PostList:xa,BackToTop:nt,QuickStart:Ma},mixins:[vt],data(){return{current:null,showEdit:!1,edittingChannel:null,mode:"edit",currentId:"",listChannelId:"",edittingPost:null,edittingPostId:"",edittingPostChannelId:"",showPostList:!1,showPostEdit:!1,showBackToTop:!1,showQuickStart:!1,postMode:"edit",lib:s["a"]}},computed:{modeTitle(){return"add"===this.mode?this.$t("add_channel"):this.$t("channel_setting")},postModeTitle(){return"add"===this.postMode?this.$t("add_post"):this.$t("edit_post")},ownedChannels(){return this.lib.ownedChannels.filter((e=>s["a"].channelList.some((t=>t.id===e.id))))},filteredChannels(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.ownedChannels.filter(n)},ownedChannelInstances(){return this.lib.ownedChannelInstances},editTitle(){return"edit"===this.mode?this.$t("edit_channel"):this.$t("add_channel")},editPostTitle(){return"edit"===this.postMode?this.$t("edit_post"):this.$t("add_post")},listChannel(){const e=s["a"].ownedChannels.find((e=>e.id===this.listChannelId));return e||{}}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},edit(e){const t=this.ownedChannels.find((t=>t.id===e));t&&(this.edittingChannel=t,this.currentId=e,this.mode="edit",this.showEdit=!0)},add(){this.edittingChannel={title:"",description:"",image:""},this.mode="add",this.showEdit=!0},validateChannelTitle(e){return e.length>0&&e.length<100||this.$t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||this.$t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||this.$t("validate_channel_image_url"))},validateChannel(e){return[this.validateChannelTitle(e.title),this.validateChannelDesc(e.description),this.validateChannelImage(e.image)]},editChannel(e){console.log(e,this.currentId);const t=this.validateChannel(e);t.every((e=>!0===e))?(s["a"].editChannel(this.currentId,e).catch((e=>{console.error(e),this.$q.notify(this.$t("Network Error"))})),this.showEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addChannel(e){console.log(e);const t=this.validateChannel(e);if(t.every((e=>!0===e))){const t=this.lib.createChannel(e.title,e.description,e.image,e.hidden);console.log(t),this.showEdit=!1,t.then(console.log)}else this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submit(e){return"edit"===this.mode?this.editChannel(e):this.addChannel(e)},showPostEditor(e,t){console.log("show",e,t),this.postMode="edit",this.edittingPostId=e.id,this.edittingPostChannelId=t.id,this.edittingPost={...e},this.showPostEdit=!0},showPostAdd(){this.postMode="add",this.edittingPost={title:"",description:"",image:"",abUrl:""},this.showPostEdit=!0},validatePostTitle(e){return e.length>0&&e.length<100||this.$t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||this.$t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||this.$t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return this.$t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?this.$t("validate_post_url"):e.length<2048||this.$t("validate_post_url_length")},validatePost(e){return e.rate?[this.validatePostTitle(e.title),this.validatePostDesc(e.description),this.validateChannelImage(e.image),this.validatePostUrl(e.abUrl)]:[this.$t("select_a_rate")]},editPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("edit",e,this.edittingPostChannelId,this.edittingPostId),s["a"].editPost(this.edittingPostChannelId,this.edittingPostId,e),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("new post to add",e),s["a"].createPost(e,this.edittingPostChannelId),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submitPost(e){return"edit"===this.postMode?this.editPost(e):this.addPost(e)},removePost(e,t){console.log("remove post",e,t),this.$q.dialog({title:this.$t("remove_post"),message:this.$t("remove_post_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removePost(e,t)}))},removeChannel(e){console.log("remove channel by id:",e),this.$q.dialog({title:this.$t("remove_channel"),message:this.$t("remove_channel_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removeChannel(e)}))},showChannelDetail(e){this.listChannelId=e,this.edittingPostChannelId=e,this.showPostList=!0},showPreview(e){const t=s["a"].channelList.find((t=>t.id===e));if(!t)return;const a=["id","title","soul"].map((e=>{const a=t[e];return a?encodeURIComponent(e)+"="+encodeURIComponent(a):""})).filter((e=>e)).join("&"),n=`/library/channel?${a}&fromEdit=1&preview=1`;this.$root.$emit("navigate-to",n),this.$router.push(n)},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},mounted(){this.setSearch()},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/edit")},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Ba=Fa,Wa=(a("61dc"),Object(v["a"])(Ba,Gt,Kt,!1,null,"755ddde0",null)),Ha=Wa.exports;S()(Wa,"components",{QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QColor:la["a"]}),S()(Wa,"directives",{Intersection:Ge["a"]});var Va=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"channel-page"},[a("q-virtual-scroll",{ref:"vscroll",staticClass:"posts",staticStyle:{height:"calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))",padding:"0"},attrs:{separator:"",items:e.filteredPosts,"virtual-scroll-slice-size":10,"virtual-scroll-item-size":385,"virtual-scroll-sticky-size-end":16,"virtual-scroll-sticky-size-start":560},on:{"virtual-scroll":e.onScroll},scopedSlots:e._u([{key:"before",fn:function(){return[e.isPreview?a("q-card",{staticClass:"channel-preview-hint",attrs:{id:"channel-preview-hint"}},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("preview_mode")))]),a("div",{staticClass:"text-subtitle2"},[e._v(e._s(e.$t("preview_mode_desc")))])])],1):e._e(),a("div",{staticClass:"full-width flex justify-center",class:e.screen$xs?["q-pt-sm"]:["q-pt-md"]},[e.channel&&e.channel.id?a("ChannelHeader",{staticClass:"col-grow",class:[e.screen$xs?"q-ml-sm q-mr-xs":"q-mx-md"],attrs:{channel:e.channel},on:{scrollTop:e.scrollTop,intersect:e.intersect}}):e._e()],1)]},proxy:!0},{key:"default",fn:function(t){var n=t.item,o=t.index;return[a("PostCard",{key:o,attrs:{hideChannel:"",post:n},on:{preview:e.preview}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"flex justify-center items-center",class:e.filteredPosts.length?["q-py-xl"]:["full-height"],style:{marginTop:e.filteredPosts.length?"-16px":"0"}},[e.filteredPosts.length?[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])]:[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])]],2)]},proxy:!0}])}),a("BackToTop",{attrs:{show:e.scrollIndex>0&&!e.isIntersecting},on:{click:e.scrollTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPost}})],1)},Qa=[],Ga=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-header relative-position overflow-hidden",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.channel.image,width:"100%"},on:{error:e.onImageError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-pr-none q-mb-md flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black",staticStyle:{transform:"translateY(-50%)"},attrs:{size:"120px"}},[e.isLoadChannelImage?a("img",{attrs:{src:e.channel.image},on:{error:e.onChannelImageError,load:e.onChannelImageLoaded}}):e._e(),e.isLoadChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"65px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"},[a("q-badge",{staticClass:"block q-py-xs cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:function(t){e.showFollowers=!0}}},[a("div",{staticClass:"header-channel-info"},[a("span",{staticClass:"text-weight-bolder"},[e._v(e._s(e.followerCount))]),e._v(" "),a("span",[e._v(e._s(e.$t("followers")))])])]),a("q-space"),a("FollowButton",{attrs:{id:e.channel.id}})],1)],1),a("q-card-section",{staticClass:"q-pt-none column items-stretch",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis col-shrink",attrs:{title:e.channel.title}},[e._v(e._s(e.channel.title))]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.channel.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("channel")+" ID: "))]),a("span",[e._v("%"+e._s(e.channel.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownChannel}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"creator-title cursor-pointer ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"},on:{click:e.gotoCreator}},[e._v("\n "+e._s(e.$t("creator"))+": "),a("span",[e._v(e._s(e.creator.name))])]),a("q-space"),e.creator.id?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.creator.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("creator")+" ID: "))]),a("span",[e._v("@"+e._s(e.creator.id))])])],1):e._e(),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownCreator}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_user")))])],1):e._e()],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"header-description"},[e._v("\n "+e._s(e.channel.description)+"\n ")]),a("div",{staticClass:"header-badges q-mt-sm non-selectable",staticStyle:{height:"min-content"}},[a("div",{staticClass:"overflow-hidden",staticStyle:{margin:"-4px"}},[e.channel.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general",label:e.$t("private_channel")}}):e._e(),e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("blocked")}}):e._e(),e.isBlockedCreator?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("creator_blocked")}}):e._e()],1)])]),a("div",{staticClass:"absolute-top-right q-ma-sm flex"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.$emit("intersect",t)},expression:"e => $emit('intersect', e)"}],attrs:{unelevated:"",round:"",icon:"share","text-color":"white"},on:{click:e.copyShareLink}},[a("q-tooltip",[e._v(e._s(e.$t("share")))])],1)],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showFollowers,callback:function(t){e.showFollowers=t},expression:"showFollowers"}},[a("q-card",{staticClass:"column overflow-hidden no-wrap",style:{minWidth:e.screen$xs?void 0:"560px",maxHeight:e.screen$xs?void 0:"calc(100vh - 120px)"}},[a("q-card-section",{staticClass:"row items-center q-py-sm"},[a("div",{staticClass:"text-h6 follower-title"},[e._v(e._s(e.$t("follower"))+" - "+e._s(e.channel.title))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-separator"),a("q-card-section",{staticClass:"row items-center q-pa-none",staticStyle:{"min-width":"400px","flex-grow":"1","flex-shrink":"1","overflow-y":"auto"}},[a("q-markup-table",{staticStyle:{width:"100%"},attrs:{dense:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("user")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("follow_time")))])])]),a("tbody",e._l(e.followers,(function(t){return a("tr",{key:t.id},[a("td",{staticClass:"text-left"},[e._v(e._s(t.user))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))])])})),0)])],1)],1)],1)],1)},Ka=[],Ya=(a("7a76"),{components:{FollowButton:Oe["a"]},name:"ChannelHeader",props:{channel:{type:Object,required:!0}},data(){return{creator:{name:this.$t("loading"),id:"",avatar:"",description:""},followBtnHovered:!1,pending:!1,showFollowers:!1,offFollower:null,isLoadChannelImage:!0,followers:[],lib:s["a"]}},computed:{currentCreator(){return s["a"].currentCreator},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&s["a"].userData.blockChannels.includes(this.channel.id)},isBlockedCreator(){return!(!s["a"].userData||!s["a"].userData.blockUsers)&&s["a"].userData.blockUsers.includes(this.channel.creator)},followable(){return!s["a"].followingChannels.find((e=>e.id===this.channel.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHovered?this.$t("unfollow"):this.$t("following")},followerCount(){let e=this.followers.length;return e<1e3?e.toString():(e=Math.floor(e/1e3),e<1e3?e.toString()+"K+":(e=Math.floor(e/1e3),e<1e3?e.toString()+"M+":(e=Math.floor(e/1e3),e.toString()+"B+")))}},methods:{loadCreator(){this.channel.creator.id!==this.creator.id&&(this.creator={name:this.$t("loading"),id:"",avatar:"",description:""}),s["a"].getUserProfile(this.channel.creator).then((e=>{this.creator=e}))},loadFollowers(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on(((e,t,a,n)=>{this.offFollower=()=>n.off();const o=Object.values(e);for(let i=0;ie.id===i)),r={id:i,user:a,timestamp:n,time:new Date(n).toLocaleString()};-1!==o?this.followers.splice(o,1,r):this.followers.push(r)}}))},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},async copyShareLink(){const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`,t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("share_url_copied"))}))},async follow(){if(this.pending)return;const e=this.channel.id;if(!e)return;if(!s["a"].allChannelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:!0});const t=this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t&&s["a"].followChannel(e))}),2e3),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},gotoCreator(){if(console.log("goto creator",this.currentCreator),!this.currentCreator||!this.currentCreator.name)return this.$q.dialog({title:this.$t("loading_creator"),message:this.$t("wait_for_creator_loaded"),ok:this.$t("ok")});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(this.currentCreator.name)}`;this.$router.push(e).then((t=>{t instanceof Error||this.$root.$emit("navigate-to",e)}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{console.log(a),["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(){if(!this.channel.id)return this.$q.notify("Cannot get channel id");this.takedown("channel",this.channel.id)},onImageError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onChannelImageError(){this.isLoadChannelImage=!1},onChannelImageLoaded(e){e.target.src===this.channel.image&&(this.isLoadChannelImage=!0)}},mounted(){this.loadCreator(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")}))},activated(){this.loadCreator(),"function"===typeof this.offFollower&&(this.offFollower(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")})))},beforeDestroy(){"function"===typeof this.offFollower&&this.offFollower()},watch:{followable(){this.pending=!1},currentCreator(){this.loadCreator()},channel(e,t){e&&e.image!==t.image&&(this.isLoadChannelImage=!0)}}}),Ja=Ya,Za=(a("ec6d"),Object(v["a"])(Ja,Ga,Ka,!1,null,"1d2daf92",null)),Xa=Za.exports;S()(Za,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QBadge:_e["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QColor:la["a"]}),S()(Za,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var en={name:"LibraryChannel",components:{ChannelHeader:Xa,PostCard:Ye,Loading:x,BackToTop:nt},data(){return{channel:{id:""},posts:[],showPreview:!1,loadingPost:!1,previewImage:"",channelFollowers:[],currentId:"",scrollIndex:0,isIntersecting:!1,isChecking:!1,isPreview:!1,showLoading:!1,lib:s["a"]}},computed:{isDev(){return d["a"].getters.isDevMode},isFollowed(){return s["a"].followingChannels.some((e=>e.id===this.channel.id))},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&(s["a"].userData.blockChannels.includes(this.channel.id)||s["a"].userData.blockUsers.includes(this.channel.creator))},channelPosts(){const e=Object.assign({},this.channel);return this.posts.map((t=>({...t,rate:t.rate||"G",channel:e}))).sort(((e,t)=>t.timestamp-e.timestamp))},filteredPosts(){const e=s["a"].search.text.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.channelPosts.filter((e=>!!this.isPreview||!s["a"].isBannedPost(e)&&s["a"].isValidRate(e.rate))).filter(n)}},methods:{intersect(e){this.isIntersecting=e.isIntersecting},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onScroll(e){this.scrollIndex=e.index},scrollTop(){this.$refs.vscroll.scrollTo(0,"start")},loadChannelPosts(){console.log(this.$route.query);const e=this.lib.allChannelList.find((e=>e.id===this.$route.query.id||e.soul===this.$route.query.soul));if(console.log("load channel",e),e){var t,a;if(this.channel=e,this.loadingPost=!0,this.channel.creator||this.channel.soul)s["a"].setCreator(this.channel.creator||(null===(t=this.channel.soul)||void 0===t||null===(a=t.split("/"))||void 0===a?void 0:a[0]));this.posts=[],s["a"].getChannelPosts(e.id,!0).then((e=>{console.log("Channel posts",e),this.posts=e.sort(((e,t)=>{const a=t.timestamp-e.timestamp;return 0===a?e.title.match(/^\d+/)&&t.title.match(/^\d+/)?parseInt(t.title)-parseInt(e.title):t.title.localeCompare(e.title):a}));const t=Date.now(),a=setInterval((()=>{(this.posts.length||Date.now()-t>5e3)&&(this.loadingPost=!1,clearInterval(a))}),1e3)}))}else{if(this.posts=[],console.log(this.$route.path),"library/channel"!==this.$route.path)return;this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),persistent:!0,ok:this.$t("lib_index")}).onOk((()=>{this.currentId="",this.$root.$emit("navigate-to"),this.$router.push("/library")}))}},loadChannelFollowers(){const e=[];p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on((t=>{if(!t)return;const a=Object.values(t);for(let n=0;ne.id===n));-1!==r?e.splice(r,1,{id:n,user:i,timestamp:o}):e.push({id:n,user:i,timestamp:o})}})),this.channelFollowers=e.sort(((e,t)=>t.timestamp-e.timestamp))},async copyShare(){const e=`ab-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`;if(console.log("share",e),Object(X["isElectron"])()){const t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))}},onFollow(){const e=this.channel.id;console.log("follow",e),s["a"].followingChannels.map((e=>e.id)).includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},preview(e){this.previewImage=e,this.showPreview=!0},gotoCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.name)return this.$q.dialog({title:"Loading creator",message:"Please wait for creator info loaded",ok:!0});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(s["a"].currentCreator.name)}`;this.$root.$emit("navigate-to",e),this.$router.push(e)},checkAndReload(){console.log("check and reload"),this.isChecking||(this.isChecking=!0,setTimeout((()=>{this.isChecking=!1}),1e3),this.currentId===this.$route.query.id&&this.channelPosts.length||(console.log("load channel posts"),p["v"].get(`${p["e"]}/channels:follower/${this.currentId}`).off(),this.channel={},this.posts=[],this.currentId=this.$route.query.id,this.loadChannelPosts(),this.loadChannelFollowers()),this.$route.query.preview?this.isPreview=!0:this.isPreview=!1)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"}])}},mounted(){this.setSearch(),this.checkAndReload()},watch:{"$route.query.id"(e){e&&(console.log("query id check"),this.checkAndReload())},searchText(e){e&&this.active&&this.scrollTop()}},beforeDestroy(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).off()}},tn=en,an=(a("b16a"),Object(v["a"])(tn,Va,Qa,!1,null,"fb451ef2",null)),nn=an.exports;S()(an,"components",{QVirtualScroll:Qe["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QDialog:I["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(an,"directives",{ClosePopup:K["a"]});var on=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.lib.currentCreator?a("div",{ref:"scrollArea",staticClass:"library-creator q-pa-md q-pb-lg"},[a("q-card",{staticClass:"creator-info relative-position overflow-hidden q-mb-sm",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.48)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.profile.avatar,width:"100%"},on:{error:e.onAvatarError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-mb-md q-pr-none flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black creator-avatar",attrs:{size:"120px"}},[e.isLoadCreatorAvatar?a("img",{attrs:{src:e.profile.avatar},on:{error:e.onCreatorAvatarError,load:e.onCreatorAvatarLoaded}}):e._e(),e.isLoadCreatorAvatar?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"account_circle",size:"90px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"})],1),a("q-card-section",{staticClass:"q-pt-none column items-start overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis",staticStyle:{"max-width":"100%"},attrs:{title:e.profile.name}},[e._v("\n "+e._s(e.profile.name)+"\n ")]),e.profile.id?a("div",{staticClass:"flex items-center no-wrap overflow-hidden",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"creator-id ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"}},[a("span",[e._v("@"+e._s(e.profile.id))])]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyCreatorId}},[a("q-tooltip",[a("span",[e._v(e._s("ID: "))]),a("span",[e._v("@"+e._s(e.profile.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"block",size:"xs",dense:""},on:{click:e.takedownCreator}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("takedown_user")))])])],1):e._e()],1):e._e()]),e.profile.description?a("q-card-section",{staticClass:"q-pt-none creator-section overflow-hidden"},[a("div",{staticClass:"creator-description q-mb-sm scroll-y"},[e._v(e._s(e.profile.description))])]):e._e()],1),a("div",{staticClass:"creator-flex-layout flex justify-center"},[e.filteredChannels.length?[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followable:!e.followedIds.includes(t.id)},on:{takedown:e.takedownChannel,detail:e.showChannelDetail,follow:e.onFollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")]:a("div",{staticClass:"empty-placeholder full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),a("span",{staticClass:"empty-hint q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}})],1):e._e()},rn=[],sn={name:"LibraryCreator",components:{ChannelCard:pt,BackToTop:nt},mixins:[vt],data(){return{profile:{name:this.$t("loading"),id:"",avatar:"",description:""},showBackToTop:!1,isLoadCreatorAvatar:!0,lib:s["a"]}},computed:{filteredChannels(){const e=this.searchText.toLowerCase(),t=this.lib.search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=n=>{var o;const i=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&i===e||!(n.hidden&&!s["a"].followingChannels.find((e=>e.id===n.id)))&&i.includes(e)};return this.lib.currentCreator.channels.filter((e=>s["a"].channelList.some((t=>t.id===e.id)))).filter(n)},followedIds(){return s["a"].followingChannels.map((e=>e.id))}},watch:{profile(e,t){if(e&&e.avatar!==t.avatar&&(this.isLoadCreatorAvatar=!0),e&&e.name){const t=`/library/creator?fromChannel=1&name=${encodeURIComponent(e.name)}`;this.$root.$emit("update-path",t)}},searchText(e){e&&this.active&&this.scrollTop()}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},loadProfile(){this.profile={name:this.$t("loading"),id:"",avatar:"",description:""},s["a"].getUserProfile(s["a"].currentCreator.id).then((e=>{this.profile=e}))},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onCreatorAvatarError(){this.isLoadCreatorAvatar=!1},onCreatorAvatarLoaded(e){e.target.src===this.profile.avatar&&(this.isLoadCreatorAvatar=!0)},showChannelDetail(e){const t=Object(_["c"])(e);console.log(t),this.$root.$emit("navigate-to",t),this.$router.push(t)},copyCreatorId(){Object(lt["b"])(this.profile.id).then((()=>{this.$q.notify(this.$t("copied"))}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(e){if(!e||20!==e.length)return this.$q.notify("Cannot parse channel id");this.takedown("channel",e)},onFollow(e){console.log("follow",e),this.followedIds.includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},setSearch(){this.lib.setSearchOption([{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&(e.setSearch(),s["a"].setCreator(s["a"].currentCreator.id))}))},mounted(){this.setSearch()},activated(){this.loadProfile()}},ln=sn,cn=(a("878c"),Object(v["a"])(ln,on,rn,!1,null,"5975beaa",null)),dn=cn.exports;S()(cn,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QColor:la["a"]}),S()(cn,"directives",{Intersection:Ge["a"]});var un=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"take-down"},[a("div",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$t("takedown_management"))+"\n "),a("q-icon",{attrs:{name:"help"}},[a("q-tooltip",e._l(e.$t("about_takedown_mode").split("\n"),(function(t){return a("div",{key:t,staticStyle:{"font-size":"14px"}},[e._v(e._s(t))])})),0)],1)],1),a("div",{staticClass:"take-down-lists"},e._l(e.takedownList,(function(t){var n=t.type,o=t.label,i=t.list,r=t.model;return a("q-table",{key:n,staticStyle:{"max-height":"400px"},attrs:{flat:"",dense:"",title:o,data:i,columns:e.columns,"row-key":"name","virtual-scroll":"","rows-per-page-options":[0]},scopedSlots:e._u([{key:"top-row",fn:function(){return[a("q-tr",{staticClass:"takedown-row add"},[a("q-td",{staticClass:"takedown-id"},[a("q-input",{attrs:{placeholder:e.$t(n)+" ID",dense:""},model:{value:r.id,callback:function(t){e.$set(r,"id",t)},expression:"model.id"}})],1),a("q-td",{staticClass:"takedown-reason"},[a("q-select",{attrs:{options:e.reasonOptions,label:e.$t("takedown_reason"),dense:""},model:{value:r.reason,callback:function(t){e.$set(r,"reason",t)},expression:"model.reason"}})],1),a("q-td",[e._v(e._s(e.$t(e.mode)))]),a("q-td",{staticClass:"takedown-admin"},[e._v("("+e._s(e.$t("you"))+")")]),a("q-td",{staticClass:"text-center"},[a("q-btn",{attrs:{flat:"",dense:"",color:"primary",icon:"add"},on:{click:function(t){return e.addTakedown(n)}}})],1)],1)]},proxy:!0},{key:"body",fn:function(t){var o=t.row;return[a("q-tr",{key:o.id,staticClass:"takedown-row"},[a("q-td",{key:"id",staticClass:"takedown-id",attrs:{title:o.id}},[a("q-btn",{staticClass:"q-mr-sm",attrs:{flat:"",dense:"",color:"general",icon:"content_copy",size:"xs"},on:{click:function(t){return e.copy(o.id)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy"))+" ID")])],1),a("span",[e._v(e._s(o.id))])],1),a("q-td",{key:"reason",staticClass:"takedown-reason"},[e._v(e._s(o.reasonLabel))]),a("q-td",{key:"by",staticClass:"takedown-by"},[e._v(e._s(e.$t(o.by)))]),a("q-td",{key:"admins",staticClass:"takedown-admins"},[o.admins?a("div",[a("span",{staticClass:"voted-count",class:{"text-primary":o.selfVoted}},[a("span",[e._v(e._s(o.admins.length)+" voted")]),o.selfVoted?a("q-tooltip",[e._v("You have voted")]):e._e()],1),"committee"===o.by?a("span",{staticClass:"total-count",class:{"text-primary":o.admins.length>=o.minCount}},[e._v("\n / "+e._s(o.minCount)+" needs to takedown\n ")]):e._e()]):a("div",[e._v("-")])]),a("q-td",{key:"operations",staticClass:"takedown-operations text-center"},[a("q-btn",{attrs:{flat:"",dense:"",size:"xs",color:o.selfVoted?"negative":"positive",icon:o.selfVoted?"close":"add"},on:{click:function(t){return e.changeVote(n,o)}}}),"preset"===o.by?a("q-tooltip",[e._v(e._s(e.$t("cannot_edit_preset")))]):o.selfVoted?a("q-tooltip",[e._v(e._s(e.$t("remove_vote")))]):a("q-tooltip",[e._v(e._s(e.$t("add_vote")))])],1)],1)]}}],null,!0)})})),1)])},_n=[],pn=a("41c7"),mn=a.n(pn);const hn=["Serious Violation","Copyright Disputes","Adults Only"];var gn={name:"TakeDown",data(){return{mode:mn.a.mode,columns:[{name:"id",label:"ID",field:"id",align:"left",sortable:!0},{name:"reason",label:this.$t("takedown_reason"),field:"reason",align:"left",sortable:!0},{name:"by",label:this.$t("takedown_mode"),field:"by",align:"left",sortable:!0},{name:"admins",label:this.$t("admins"),field:"admins",align:"left",sortable:!1},{name:"operations",label:this.$t("operations"),field:"operations",align:"center",sortable:!1}],reasonOptions:[{label:this.$t("serious_violation"),value:"Serious Violation"},{label:this.$t("copyright_disputes"),value:"Copyright Disputes"},{label:this.$t("adults_only"),value:"Adults Only"}],user:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},channel:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},post:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},lib:s["a"]}},computed:{uid(){return s["a"].user&&s["a"].user.is?s["a"].user.is.pub:""},takedownUsers(){const e=s["a"].takedownList.users,t=s["a"].takedownExtraList.users,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownChannels(){const e=s["a"].takedownList.channels,t=s["a"].takedownExtraList.channels,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownPosts(){const e=s["a"].takedownList.posts,t=s["a"].takedownExtraList.posts,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownList(){return[{type:"user",label:this.$t("users"),model:this.user,list:this.takedownUsers},{type:"channel",label:this.$t("channels"),model:this.channel,list:this.takedownChannels},{type:"post",label:this.$t("posts"),model:this.post,list:this.takedownPosts}]}},methods:{takedownUser(){return 87!==this.user.id.length||this.user.id.split(".").some((e=>43!==e.length))?this.$q.notify(this.$t("takedown_invalid_user_id")):hn.includes(this.user.reason.value)?(console.log("takedown user",this.user.id,this.user.reason.value),void s["a"].takedown("user",this.user.id,this.user.reason.value).then(console.log)):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownChannel(){const e=this.channel.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_channel_id")):hn.includes(this.channel.reason.value)?void s["a"].takedown("channel",e,this.channel.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownPost(){const e=this.post.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_post_id")):hn.includes(this.post.reason.value)?void s["a"].takedown("post",e,this.post.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},untakedownUser(e){s["a"].takedown("user",e,"None")},addTakedown(e){return console.log("add",e),"user"===e?this.takedownUser():"channel"===e?this.takedownChannel():"post"===e?this.takedownPost():void 0},removeTakedown(e,t){return console.log("untakedown",e,t),"user"===e?this.untakedownUser(t):"channel"===e?s["a"].takedown("channel",t,"None"):"post"===e?s["a"].takedown("post",t,"None"):void 0},changeVote(e,t){return"preset"===t.by?console.log(t):t.selfVoted?this.removeTakedown(e,t.id):void s["a"].takedown(e,t.id,t.reason).then(console.log)},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied"))}))}},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/takedown"),this.lib.setSearchOption([])}},fn=gn,bn=(a("a44b"),a("85c4")),yn=a("236f"),vn=Object(v["a"])(fn,un,_n,!1,null,"888fffa4",null),wn=vn.exports;S()(vn,"components",{QIcon:G["a"],QTooltip:V["a"],QTable:Tt["a"],QTr:bn["a"],QTd:yn["a"],QInput:E["a"],QSelect:ue["a"],QBtn:A["a"],QColor:la["a"]});var kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-index"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n},on:{preview:function(t){return e.showPreview=t},follow:e.unfollow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.column,o=t.mod;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.fetchNext(t,Math.max(Math.ceil(10/n),2)*n+(o?n-o:0))},expression:"(entry) => fetchNext(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},["loaded"!==e.loaderState||e.searchFilteredPosts.length?"loaded"===e.loaderState?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):e.searchFilteredPosts.length?a("div",{staticClass:"column items-center"},[a("div",{staticClass:"flex"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]):[a("div",[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1)],1)},Sn=[],Cn=a("2e22"),xn={name:"LibraryIndex",components:{PostCard:Ye,SearchChannel:bt,BackToTop:nt},mixins:[Cn["c"],Cn["a"],Cn["b"],vt,wt("index"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,scrollIndex:0,lib:s["a"]}},computed:{followingChannels(){var e,t;const a=(null===(e=s["a"].userData)||void 0===e?void 0:e.blockChannels)||[],n=(null===(t=s["a"].userData)||void 0===t?void 0:t.blockUsers)||[];return s["a"].followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(!a.includes(e.id)&&!n.includes(e.creator))))},filteredPosts(){return Object.values(this.loadedPosts).filter((e=>e.title&&e.timestamp)).filter((e=>!s["a"].isBannedPost(e))).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){console.log("search index");const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"channelID":return e.channel.id;case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.filteredPosts.filter(n)}},methods:{async fetchNext({isIntersecting:e},t=10){e&&await this.loader$loadPostsNext({count:t})},itemsFn(e=0,t=5){return this.searchFilteredPosts.slice(e,e+t)},async unfollow(e){const t=this.$alphabiz.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}),a=await t.promise("ok");if(!a)return;const n=await s["a"].unfollowChannel(e);console.log("unfollowed",e,n)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)}},async activated(){this.active=!0;const e=()=>{this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])};this.$root.$emit("navigate-to"),e()},deactivated(){this.active=!1},watch:{"searchFilteredPosts.length"(e,t){t||!e||this.active||this.$router.push("/library")},searchText(e){e&&this.active&&this.handleBackToTop()}}},$n=xn,Tn=(a("1b99"),Object(v["a"])($n,kn,Sn,!1,null,null,null)),zn=Tn.exports;S()(Tn,"components",{QIcon:G["a"],QSpinner:w["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Tn,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Pn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar"},[e._l([{tabName:"downloading",label:"start_all",color:"primary",disable:e.isAllStarted,handleClick:e.downloadAll},{tabName:"downloading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.requestPauseAllDownloading},{tabName:"downloading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllDownloading},{tabName:"uploading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.pauseAllUploading},{tabName:"uploading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllUploading},{tabName:"downloaded",label:"clear_history",color:"general",disable:0===e.currentList.length,handleClick:e.clearAll}],(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,style:"negative"===t.color?{marginLeft:"16px"}:{},attrs:{color:t.color,icon:t.icon,label:e.$t(t.label),value:t.disable,dense:e.screen$xs},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),a("q-space"),a("div",{staticClass:"right-buttons"},[a("q-space"),a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!(e.showSearchText||e.searchText.length),expression:"!(showSearchText || searchText.length)"}],attrs:{"button-type":"icon",icon:"search"},on:{click:function(t){return e.toggleSearchText(!0)}}}),a("q-input",{directives:[{name:"show",rawName:"v-show",value:e.showSearchText||e.searchText.length,expression:"showSearchText || searchText.length"}],ref:"searchInput",attrs:{outlined:"",dense:"",type:"text",debounce:"300"},on:{blur:function(t){return e.toggleSearchText(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer text-red",attrs:{name:"close"},on:{click:e.clearSearch}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}}),a("alphabiz-button",{attrs:{"button-type":"icon",icon:"list"===e.listMode?"view_list":"view_agenda"},on:{click:e.changeListMode}},[a("q-tooltip",[e._v(e._s(e.$t("toggle_list_mode")))])],1),a("SortMenu",{on:{changeSortSequence:e.changeSortSequence,changeSortOption:e.changeSortOption}})],1)],2),"downloading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("q-linear-progress",{staticStyle:{"flex-shrink":"1","max-width":"calc(100% - 110px)"},attrs:{value:e.downloadingProgress.value,rounded:"",size:"20px"}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.downloadingProgress.label))])])]),a("div",{staticClass:"download-speed"},[e._v(e._s(e.totalDownloadSpeed))])],1):e._e(),"uploading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("div",[e._v(e._s(e.totalIncomeInfo))]),a("q-space"),a("div",[e._v(e._s(e.$t("total_upload_speed"))+": "+e._s(e.totalUploadSpeed))])],1):e._e()],1),a("q-tab-panels",{staticClass:"torrent-list bg-transparent",class:{"torrent-list-large":"downloaded"!==e.currentTab},model:{value:e.displayTab,callback:function(t){e.displayTab=t},expression:"displayTab"}},e._l(e.displayList,(function(t){return a("q-tab-panel",{key:"panel_"+t.label,staticClass:"q-pa-none",attrs:{name:t.key}},[a(e.listComponent,{key:"task-list-"+t.label,tag:"component",attrs:{list:t,tab:e.currentTab,incomes:e.incomes,noDataMessage:e.noDataMessage},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showOriginTorrent:e.showOriginTorrent,showDirectory:e.showDirectory,setThrottleGroup:e.setThrottleGroup,shareFile:e.shareFile,saveTorrentFile:e.saveTorrentFile,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart}})],1)})),1),a("q-page-sticky",{staticClass:"action-container",attrs:{position:"bottom-right",offset:[16,16]}},e._l({download:{tabName:"downloading",icon:"add",handleClick:function(){return e.showMagnetDialog("download")}},upload:{tabName:"uploading",icon:"cloud_upload",handleClick:function(){return e.showMagnetDialog("upload")}},upload_all:{tabName:"downloaded",icon:"cloud_upload",handleClick:e.uploadAll}},(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,staticClass:"q-ma-xs action-button",attrs:{color:"primary",icon:t.icon,label:e.$t(n),"button-type":"fab"},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TorrentPayment",e._b({attrs:{show:e.showPayment,dp$source:e.dp$source,autoRenew:e.autoRenew},on:{change:function(t){return e.showPayment=t},createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}},"TorrentPayment",e.paymentData,!1)),a("TableListDetail",{attrs:{show:e.showTorrentDetail,torrent:e.torrentDetail},on:{close:e.hideDetail,showDirectory:e.showDirectory,showPaymentPannel:e.showPaymentPannel,play:e.play,shareFile:e.shareFile}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.alphabizTorrent,paymentSize:e.paymentSize},on:{close:e.hideAbPanel,createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.quickStartTask},on:{input:e.hideQuickStartDialog}})],1)},An=[],In=a("bc7b"),qn=a.n(In),On=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-virtual-scroll",{key:"torrent-list-"+e.list.label,ref:"listIns",class:[e.screen$xs?"q-pt-sm":"q-pt-md",e.isPortrait?"portrait":"landscape"],style:"max-height:"+e.viewHeight,attrs:{items:e.list.list,"virtual-scroll-item-size":178},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("q-item",{key:e.list.label+"-"+n.infoHash,staticClass:"fit",class:[e.screen$xs?"q-px-sm":"q-px-md"],attrs:{dense:""}},[a("card-item",{attrs:{torrent:n,highlight:n.infoHash&&n.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"],saveFile:e.emitEvent["shareFile"]}})],1)]}},{key:"after",fn:function(){return[e.list.list.length?e._e():a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1),a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0}])})},En=[],Dn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{width:"100%"}},[a("q-card",{staticClass:"torrent-item",class:[e.screen$xs?"q-mb-sm":"q-mb-md"],attrs:{flat:"",bordered:""}},[a("q-card-section",{class:{highlight:e.highlight}},[a("div",{staticClass:"row justify-between items-center"},[a("div",{staticClass:"torrent-info title q-mb-xs"},[a("p",{staticClass:"torrent-name"},[e.isReady?e._e():a("q-circular-progress",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.paused&&!e.torrent.pending,expression:"!torrent.paused && !torrent.pending"}],staticClass:"torrent-loading",attrs:{indeterminate:"",size:"24px",color:"primary"}}),a("span",[e._v(e._s(e.displayName))]),e.torrent.isAutoUpload?a("q-icon",{staticClass:"q-ml-md",attrs:{name:"drive_folder_upload"}},[a("q-tooltip",[e._v(e._s(e.$t("auto_uploading")))])],1):e._e()],1)]),a("alphabiz-button",{staticClass:"absolute-top-right q-mt-sm q-mr-md",attrs:{size:"md","button-type":"icon",icon:"more_horiz"},on:{click:e.showDetail}},[a("q-tooltip",[e._v(e._s(e.$t("more")))])],1)],1),a("div",{staticClass:"torrent-info"},[a("div",{staticClass:"operations"},[a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!(e.torrent.paused&&e.torrent.missFile),expression:"!torrent.isAutoUpload && !(torrent.paused && torrent.missFile)"}],attrs:{color:"general",value:e.locked,icon:e.actionIcon,label:e.torrentAction,disabled:e.isProcessingUpload},on:{click:e.switchStateTorrent}}),e.isReady&&e.playable?a("alphabiz-button",{attrs:{color:"general",icon:"smart_display",label:e.torrent.done||e.torrent.isSeeding?e.$t("play"):e.$t("play_while_downloading")}},[a("q-menu",{attrs:{"max-height":"200px"}},[a("q-list",{staticStyle:{"min-width":"100px"}},e._l(e.playableFiles,(function(t,n){return a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],key:n,staticClass:"playable-items",attrs:{clickable:!t.missing,disable:t.missing},on:{click:function(a){return e.play(t.path,e.torrent.infoHash)}}},[a("q-linear-progress",{directives:[{name:"show",rawName:"v-show",value:1!==t.progress||t.isSeeding,expression:"item.progress !== 1 || item.isSeeding"}],staticClass:"progress-background",attrs:{stripe:"",value:t.progress}}),a("q-item-section",[a("p",{staticClass:"q-ma-none"},[a("q-icon",{staticClass:"q-mr-xs",attrs:{name:"play_arrow"}}),e._v("\n "+e._s(t.name)+"\n "),t.missing?a("q-icon",{attrs:{name:"error",color:"primary"}}):1===t.progress?a("q-icon",{attrs:{name:"done",color:"primary"}}):e._e(),t.missing?a("q-tooltip",[e._v(e._s(e.$t("file_not_found")))]):e._e(),1!==t.progress||e.isElectron?e._e():a("q-btn",{staticClass:"save-to-local-btn",attrs:{flat:"",dense:"",color:"primary",size:"sm",icon:e.isCapacitor?"ios_share":"save"},on:{click:function(a){return a.stopPropagation(),a.preventDefault(),e.saveFile(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("save_to_local")))])],1)],1)])],1)})),1)],1)],1):a("alphabiz-button",{attrs:{color:"general",icon:"file_open",label:e.$t("open_file")},on:{click:e.openFile}}),e.isElectron||e.isCapacitor?a("alphabiz-button",{attrs:{color:"general",icon:e.isElectron?"folder":"ios_share",label:e.isElectron?e.$t("open_directory"):e.$t("share")},on:{click:e.showDirectory}}):e._e(),e.torrent.fromPost?a("alphabiz-button",{attrs:{icon:"video_library",label:e.$t("library")},on:{click:e.showPostInfo}}):e._e(),1!==e.torrent.progress&&!e.torrent.upload||e.torrent.paused?e._e():a("alphabiz-button",{attrs:{icon:"present_to_all",label:e.$t("share_to_library"),disabled:e.isProcessingUpload},on:{click:e.showQuickStart}}),e.isElectron||e.isCapacitor||!e.torrent.done?e._e():a("alphabiz-button",{attrs:{label:e.$t("save_as_zip"),icon:"folder_zip"},on:{click:e.saveZip}}),a("alphabiz-button",{attrs:{color:"negative",icon:"close",label:e.$t("delete"),disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}}),a("q-space"),e.showAbButton?a("alphabiz-button",{attrs:{color:"accent",icon:e.isPayed?"flash_auto":"flash_on"},on:{click:e.openAbPanel}},[a("q-tooltip",[e._v(e._s(e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")))])],1):e._e()],1),e.torrent.upload||e.torrent.isSeeding?e._e():a("q-linear-progress",{staticClass:"q-mt-md",attrs:{value:e.torrent.done?1:e.torrent.progress,size:"18px",rounded:""}},[a("div",{staticClass:"progress-text flex flex-center absolute-full"},[e._v(e._s(e.progress||"0%"))])]),a("p",{staticClass:"text q-mb-xs bottom-status"},[e.statusText?a("span",{staticClass:"hint status-text"},[a("small",[e._v(e._s(e.statusText))]),a("br")]):e._e(),a("span",{staticStyle:{"margin-right":"10px"}},[e._v(e._s(this.$t("status"))+": "+e._s(e.torrentStatus))]),a("span",[e.torrent.paused||e.torrent.done||e.torrent.pending||e.torrent.isSeeding?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.downloadSpeed)+"\n ")]),e.torrent.upload?e._e():a("span",{staticStyle:{"margin-right":"10px"}},[e.torrent.done?e._e():a("span",[e._v("↓ "+e._s(e.downloaded)+" /")]),e._v("\n "+e._s(e.total))])]),a("span",[e.torrent.paused||e.torrent.pending?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.uploadSpeed)+"\n ")]),a("span",{staticStyle:{"margin-right":"10px"}},[e._v("↑ "+e._s(e.uploaded))])])]),a("p",{staticClass:"text timers q-mt-xs bottom-status"},[e.torrent.timeRemaining&&e.torrent.download?a("span",{staticClass:"remaining q-mr-md"},[e._v(e._s(e.$t("remaining"))+": "+e._s(e.remaining))]):e._e(),e.createdTime?a("span",[e._v(e._s(e.$t("created_time")+": "+e.createdTime))]):e._e(),e.completedTime?a("span",[e._v(e._s(e.$t("completed_time")+": "+e.completedTime))]):e._e(),e.usedTime?a("span",[e._v(e._s(e.$t("used_time")+": "+e.usedTime))]):e._e()])],1)])],1)],1)},jn=[],Nn=a("4fd2"),Ln=a("908d"),Un={name:"CardItem",inject:["io"],props:{torrent:{type:Object,required:!0},statusText:String,highlight:Boolean},data(){return{levelOptions:[{label:" Low ",value:"low"},{label:" Middle ",value:"mid"},{label:" High ",value:"high"}],locked:!1,loading:!1,isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},torrentAction(){return this.torrent.paused?this.torrent.done||1===this.torrent.progress||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},isReady(){return this.torrent&&this.torrent.name&&this.torrent.length},downloadSpeed(){return this.byteToLargerSize(this.torrent.downloadSpeed,{fix:1})+"/s"},downloaded(){return this.byteToLargerSize(this.torrent.downloaded)},uploadSpeed(){return this.byteToLargerSize(this.torrent.uploadSpeed,{fix:1})+"/s"},uploaded(){return this.byteToLargerSize(this.torrent.uploaded)},total(){return this.byteToLargerSize(this.torrent.length)},remaining(){return!this.torrent.timeRemaining||this.torrent.paused?"-":this.msToTime(this.torrent.timeRemaining)},createdTime(){return this.torrent.createdTime?new Date(this.torrent.createdTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},completedTime(){return this.torrent.completedTime&&this.torrent.done?new Date(this.torrent.completedTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},usedTime(){return this.torrent.usedTime?this.msToTime(this.torrent.usedTime):""},torrentStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.paused?this.$t("downloaded"):this.$t("uploading")}if(this.paused)return this.$t("paused");if(this.torrent.paused)return this.torrent.done||this.torrent.isSeeding?this.$t("completed"):this.$t("paused");if(this.torrent.isSeeding)return this.$t("seeding");if(this.torrent.upload)return this.$t("uploading");if(this.torrent.pending)return this.$t("pending");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(!this.torrent.ready){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.download?this.torrent.done?this.$t("downloaded"):this.$t("downloading"):this.$t("unknown_status")},displayName(){let e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e||"string"!==typeof e){if(!(e&&e instanceof File))return this.$t("loading");e=e.name}if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win?"\\":"/";if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},progress(){return Object(M["g"])(this.torrent.progress)},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return!this.torrent.done&&!this.torrent.isSeeding&&(this.isDevMode&&this.abPeers.length)},payedConnections(){return this.abPeers.filter((e=>"high"===e.remoteGroup))},isPayed(){return this.payedConnections.length},showAbPeerHint(){return this.abPeers.length},connectedPeers(){const e={};for(const t of this.abPeers){const a=t.subId||t.id;e[a]?e[a].isAbPeer|=t.isAbPeer:(e[a]=t,e[a].addresses=[]),e[a].addresses.includes(t.address)||e[a].addresses.push(t.address)}return Object.values(e).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0))},playableFiles(){return this.torrent.files.filter((e=>Object(Nn["a"])(e.name)))},playable(){return this.playableFiles.length}},methods:{byteToLargerSize(e,t={}){return Object(M["a"])(e,{byte:!1,gb:!0,...t})},msToTime(e){const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n>60){const e=n%60,t=(n-e)/60;return t>24?"> 24h":`${t}:${("0"+e).slice(-2)}:${("0"+a).slice(-2)}`}return`${("0"+n).slice(-2)}:${("0"+a).slice(-2)}`},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},switchStateTorrent(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash)}},openAbPanel(){console.log("open"),this.$emit("showAbPanel",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},setThrottleGroup(e,t,a){this.$emit("setThrottleGroup",{infoHash:this.torrent.infoHash,id:e,subId:t,level:a})},saveTorrentFile(){this.$emit("saveTorrentFile",this.torrent.infoHash)},play(e,t){this.$emit("play",e,t)},copyMagnetURI(){let e=this.torrent.alphabizURI||this.torrent.magnetURI;e||(e="magnet:?xt=urn:btih:"+this.torrent.infoHash,this.torrent.name&&(e+="&dn="+encodeURIComponent(this.torrent.name))),Object(lt["b"])(e),this.$q.notify(this.$t("text_copied"))},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},showOriginTorrent(){this.$emit("showOriginTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showPaymentPannel(e){this.$emit("showPaymentPannel",{infoHash:this.torrent.infoHash,torrentName:this.torrent.name,peerId:e.id,address:e.address,remoteUser:e.user,remoteSubId:e.subId})},showQuickStart(){this.$emit("showQuickStart",this.torrent)},saveFile(e){if(this.isCapacitor)return this.$emit("saveFile",e.path);this.$emit("saveFile",e)},saveZip(){this.$emit("saveZip")}},watch:{torrentStatus(e,t){t!==e&&this.$emit("sortByStatus")}},mounted(){this.loading=this.torrent.loading}},Rn=Un,Mn=(a("1357"),a("64e7")),Fn=a("834d"),Bn=Object(v["a"])(Rn,Dn,jn,!1,null,"3671d32d",null),Wn=Bn.exports;S()(Bn,"components",{QCard:q["a"],QCardSection:O["a"],QCircularProgress:Mn["a"],QIcon:G["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QLinearProgress:zt["a"],QItemSection:Ve["a"],QBtn:A["a"],QSpace:W["a"],QColor:la["a"],QBtnToggle:Fn["a"]}),S()(Bn,"directives",{ClosePopup:K["a"]});var Hn={name:"CardList",props:{list:Object,noDataMessage:String},data(){const e=this;return{isElectron:Object(X["isElectron"])(),safeArea:"env(safe-area-inset-bottom) - env(safe-area-inset-top)",emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),highlightItem:{}}},computed:{viewHeight(){const e=(this.list.key.startsWith("downloaded")?150:180)+(this.isPortrait||this.isElectron?0:-30);return`calc(100vh - ${this.safeArea} - ${e}px);`}},components:{CardItem:Wn},methods:{findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.listIns){var a;if(Date.now()-e<1e3)return;clearInterval(t);const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.listIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},Vn=Hn,Qn=(a("536e"),Object(v["a"])(Vn,On,En,!1,null,"0dd405a4",null)),Gn=Qn.exports;S()(Qn,"components",{QVirtualScroll:Qe["a"],QItem:He["a"],QIcon:G["a"]});var Kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-table",{ref:"tableIns",staticClass:"list bg-page text-page",class:{xs:e.isPortrait,electron:e.isElectron},attrs:{data:e.list.list,columns:e.columns,"row-key":"name",dense:"",flat:"","virtual-scroll":"","hide-bottom":!!e.list.list.length,"rows-per-page-options":[0],"visible-columns":e.visibleColumns,"no-data-label":e.noDataMessage},nativeOn:{mousemove:function(t){return e.onDrag(t)},touchmove:function(t){return e.onDrag(t)},mouseleave:function(t){return e.onDragEnd.apply(null,arguments)},mouseup:function(t){return e.onDragEnd.apply(null,arguments)},touchend:function(t){return e.onDragEnd.apply(null,arguments)},touchcancel:function(t){return e.onDragEnd.apply(null,arguments)}},scopedSlots:e._u([{key:"header",fn:function(t){return[a("q-tr",{attrs:{props:t}},e._l(t.cols,(function(n){return a("q-th",{key:n.name,staticClass:"thead",attrs:{props:t}},[a("span",{staticClass:"text-ellipsis"},[e._v(e._s(n.label))]),"options"!==n.name?a("span",{staticClass:"thead-draggable",on:{mousedown:function(t){return e.onDragStart(n,t)},mouseup:e.onDragEnd,touchstart:function(t){return e.onDragStart(n,t)},touchmove:function(t){return e.onDrag(t)},touchend:e.onDragEnd,touchcancel:e.onDragEnd}}):e._e()])})),1)]}},{key:"body",fn:function(t){return[a("ListItem",{key:t.row.infoHash,attrs:{torrent:t.row,visibleColumns:e.visibleColumns,showCols:e.showCols,incomes:e.taskIncomes[t.row.infoHash],colWidth:e.colWidthText,highlight:t.row.infoHash&&t.row.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"]}})]}},{key:"bottom-row",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0},{key:"no-data",fn:function(){return[a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1)]},proxy:!0}])})},Yn=[],Jn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-tr",{key:e.torrent.infoHash||e.torrent.origin,staticClass:"list-item-tr",class:{highlight:e.highlight}},[a("q-td",{key:"name",staticClass:"no-select task-name",style:e.colWidth.name,on:{dblclick:e.onDoubleClick}},[a("IconWithTooltip",e._b({staticClass:"q-mr-xs name-icon"},"IconWithTooltip",e.taskIcon,!1)),a("div",{staticClass:"name-info"},[a("span",{staticClass:"torrent-name",attrs:{title:e.displayName}},[e._v(e._s(e.displayName))]),a("br"),e._m(0),a("span",{staticClass:"text-grey"},[e._v(e._s(e.downloadStatus))])],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["remaining"],expression:"showCols['remaining']"}],key:"remaining",style:e.colWidth.remaining},[e._v(e._s(e.remaining))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["completedTime"],expression:"showCols['completedTime']"}],key:"completedTime",style:e.colWidth.completedTime},[e._v(e._s(e.completedTime))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["progress"],expression:"showCols['progress']"}],key:"progress",style:e.colWidth.progress},[a("q-linear-progress",{attrs:{value:e.torrent.progress,size:"20px",rounded:""}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.progress||"0%"))])])])],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["uploadSpeed"],expression:"showCols['uploadSpeed']"}],key:"uploadSpeed",style:e.colWidth.uploadSpeed},[e._v(e._s(e.uploadSpeed))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["downloadSpeed"],expression:"showCols['downloadSpeed']"}],key:"downloadSpeed",staticClass:"download-speed",style:e.colWidth.downloadSpeed},[a("span",{attrs:{title:e.downloadSpeed}},[e._v(e._s(e.downloadSpeed))]),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.showAbButton,expression:"showAbButton"}],staticClass:"text-primary float-right",attrs:{flat:"",dense:"",size:"sm"},on:{click:e.openAbPanel}},[a("IconWithTooltip",{attrs:{icon:e.isPayed?"flash_auto":"flash_on",tooltip:e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")}})],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["incomeInfo"],expression:"showCols['incomeInfo']"}],key:"incomeInfo",staticClass:"text-right",style:e.colWidth.incomeInfo},[e._v(e._s(e.incomeInfo))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.visibleColumns.includes("options"),expression:"visibleColumns.includes('options')"}],key:"options",staticClass:"option-btns",style:e.colWidth.options,attrs:{"auto-width":""}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!e.torrent.missFile,expression:"!torrent.isAutoUpload && !torrent.missFile"}],attrs:{flat:"",dense:"",size:"sm",disable:e.locked||e.isProcessingUpload},on:{click:e.toggleStatus}},[a("IconWithTooltip",{attrs:{icon:e.actionIcon,tooltip:e.taskAction,clickable:""}})],1),a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.onDoubleClick}},[a("IconWithTooltip",{attrs:{icon:e.playable?"smart_display":"file_open",tooltip:e.$t("open_file"),clickable:""}})],1),e._m(1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.torrent.fromPost,expression:"torrent.fromPost"}],attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showPostInfo}},[a("IconWithTooltip",{attrs:{icon:"video_library",tooltip:e.$t("library"),clickable:""}})],1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:(1===e.torrent.progress||e.torrent.upload)&&!e.torrent.paused,expression:"(torrent.progress === 1 || torrent.upload) && !torrent.paused"}],attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.showQuickStart}},[a("IconWithTooltip",{attrs:{icon:"present_to_all",tooltip:e.$t("share_to_library"),clickable:""}})],1),e._m(2),a("q-btn",{staticClass:"text-red",attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}},[a("IconWithTooltip",{attrs:{icon:"close",tooltip:e.$t("delete"),clickable:""}})],1)],1)],1)},Zn=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("IconWithTooltip",{directives:[{name:"show",rawName:"v-show",value:e.torrent.isAutoUpload,expression:"torrent.isAutoUpload"}],staticClass:"q-mr-xs text-primary",attrs:{tooltip:e.$t("auto_uploading"),icon:"cloud_upload"}})},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder",tooltip:e.$t("open_directory"),clickable:""}})],1)},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDetail}},[a("IconWithTooltip",{attrs:{icon:"more_horiz",tooltip:e.$t("more"),clickable:""}})],1)}],Xn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-icon",{class:{"cursor-pointer":e.clickable},attrs:{name:e.icon,size:e.size},on:{click:e.emitClick}},[e.tooltip?a("q-tooltip",[e._v("\n "+e._s(e.tooltip)+"\n ")]):e._e()],1)},eo=[],to={name:"IconWithTooltip",props:{icon:{type:String,require:!0},tooltip:{type:String,default:""},clickable:{type:Boolean,default:!1},size:{type:String,default:""}},methods:{emitClick(){this.$emit("click")}}},ao=to,no=Object(v["a"])(ao,Xn,eo,!1,null,null,null),oo=no.exports;S()(no,"components",{QIcon:G["a"],QTooltip:V["a"]});var io={name:"ListItem",props:{torrent:{type:Object,required:!0},visibleColumns:{type:Array,required:!0},showCols:{type:Object,required:!0},incomes:{type:Object,default:()=>({})},colWidth:{type:Object,default:()=>({})},highlight:Boolean},inject:["io"],components:{IconWithTooltip:oo},data(){return{locked:!1}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},displayName(){const e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e)return"";if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win;if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},isReady(){return this.torrent&&this.torrent.name&&this.torrent.ready},taskIcon(){const e=this.torrent,t=e.files?e.files:[],a=Object(M["c"])(t.map((e=>e.path||e)));return{icon:a.icon,tooltip:this.$t(a.tooltip)}},downloadStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return Object(M["a"])(this.torrent.length)}return this.isReady||this.torrent.paused||this.torrent.length?this.torrent.done||this.torrent.downloaded===this.torrent.length?Object(M["a"])(this.torrent.length):`${Object(M["a"])(this.torrent.downloaded)}/${Object(M["a"])(this.torrent.length)}`:"-"},remaining(){return this.torrent.paused||this.torrent.pending?"-":Object(M["e"])(this.torrent.timeRemaining)},completedTime(){const e=(...e)=>this.$t(...e);return this.torrent.completedTime?Object(M["f"])(this.torrent.completedTime,e,null===this||void 0===this?void 0:this.$i18n.locale):Object(M["f"])(this.torrent.createdTime,e,null===this||void 0===this?void 0:this.$i18n.locale)},progress(){return Object(M["g"])(this.torrent.progress)},downloadSpeed(){if(this.torrent.paused)return this.$t("paused");if(this.torrent.pending)return this.$t("pending");if(!this.torrent.ready){if(!this.torrent.hasMetadata)return this.$t("loading");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("verifying")+` (${n})`}return this.$t("verifying")}return Object(M["a"])(this.torrent.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s"},incomeInfo(){return[Number(((this.incomes.today||0)/1e3).toFixed(3)),Number(((this.incomes.total||0)/1e3).toFixed(3))].join(" / ")},uploadSpeed(){return this.torrent.ready?Object(M["a"])(this.torrent.uploadSpeed,{byte:!1,gb:!1,fix:1})+"/s":"-/s"},taskAction(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},playableFiles(){var e;return(null===(e=this.torrent.files)||void 0===e?void 0:e.filter((e=>Object(Nn["a"])(e.name))))||[]},playable(){return this.playableFiles.length},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return this.isDevMode&&this.abPeers.length},isPayed(){return this.abPeers.some((e=>"high"===e.remoteGroup))}},methods:{shouldShow(e){return this.visibleColumns.includes(e)},onDoubleClick(){this.playable?this.$emit("play",this.playableFiles[0].path,this.torrent.infoHash):this.torrent.files&&this.torrent.files.length?this.openFile():this.$q.notify(this.$t("no_available_file"))},toggleStatus(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash||this.torrent.token)}},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},openAbPanel(){this.$emit("showAbPanel",this.torrent)},showQuickStart(){this.$emit("showQuickStart",this.torrent)}}},ro=io,so=(a("bd3b"),Object(v["a"])(ro,Jn,Zn,!1,null,null,null)),lo=so.exports;S()(so,"components",{QTr:bn["a"],QTd:yn["a"],QLinearProgress:zt["a"],QBtn:A["a"],QColor:la["a"]});var co=a("ed1a"),uo={name:"TableList",props:{list:{type:Object,required:!0},tab:{type:String,default:"downloading"},incomes:{type:Object,default:()=>({})},noDataMessage:{type:String,default:()=>""}},components:{ListItem:lo},data(){const e=this;let t={name:250,remaining:80,completedTime:80,progress:120,downloadSpeed:150,uploadSpeed:100,incomeInfo:120,options:165};return localStorage.getItem("table-col-width")||localStorage.setItem("table-col-width",JSON.stringify(t)),t=JSON.parse(localStorage.getItem("table-col-width")),{isElectron:Object(X["isElectron"])(),emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),defaultColumns:{downloading:["name","remaining","progress","downloadSpeed","options"],uploading:["name","completedTime","uploadSpeed","incomeInfo","options"],downloaded:["name","completedTime","options"]},dragData:{start:!1,col:"",pageX:0,pageY:0},highlightItem:{},colWidth:t}},computed:{columns(){return[{name:"name",required:!0,label:this.$t("task_name"),align:"left",headerStyle:this.colWidthText.name+";padding-left: 48px; max-width: calc(100% - 48px);"},{name:"remaining",label:this.$t("remaining"),align:"left",headerStyle:this.colWidthText.remaining+"; max-width: calc(100% - 8px)"},{name:"completedTime",label:this.$t("completed_time"),align:"left",headerStyle:this.colWidthText.completedTime+"; max-width: calc(100% - 8px)"},{name:"progress",label:this.$t("progress"),align:"left",headerStyle:this.colWidthText.progress+"; max-width: calc(100% - 8px)"},{name:"downloadSpeed",label:this.$t("total_download_speed"),align:"left",headerStyle:this.colWidthText.downloadSpeed+"; max-width: calc(100% - 8px)"},{name:"uploadSpeed",label:this.$t("total_upload_speed"),align:"left",headerStyle:this.colWidthText.uploadSpeed+"; max-width: calc(100% - 8px)"},{name:"incomeInfo",label:this.$t("income_info"),align:"right",headerStyle:this.colWidthText.incomeInfo+"; max-width: calc(100% - 8px)"},{name:"options",label:this.$t("operations"),align:"left"}]},visibleColumns(){switch(this.tab){case"downloading":return this.defaultColumns.downloading;case"uploading":return 2!==this.$store.state.credits.isModuleInit?this.defaultColumns.uploading.filter((e=>"incomeInfo"!==e)):this.defaultColumns.uploading;case"downloaded":return this.defaultColumns.downloaded}return this.defaultColumns.downloading},showCols(){const e={};for(const t of this.visibleColumns)e[t]=!0;return e},colWidthText(){const e={};for(const t in this.colWidth){const a=this.colWidth[t];e[t]=`width: ${a}px; min-width: ${a}px; max-width: ${a}px;`}return e},tableList(){var e,t;return(null===(e=this.list)||void 0===e||null===(t=e.list)||void 0===t?void 0:t.map((e=>({name:e.name}))))||[]},taskIncomes(){const{todayTaskIncome:e,allTaskIncome:t}=this.incomes,a={};for(const n in t)a[n]||(a[n]={today:0,total:0}),a[n].total+=t[n],e[n]&&(a[n].today+=e[n]);return a}},methods:{onDragStart(e,t){this.dragData.pageX=t.pageX,this.dragData.pageY=t.pageY,this.dragData.start=!0,this.dragData.col=e.name,document.body.style.cursor="col-resize"},onDragEnd(){this.dragData.start&&(this.dragData.start=!1,document.body.style.cursor="",localStorage.setItem("table-col-width",JSON.stringify(this.colWidth)))},onDrag(e){if(!this.dragData.start)return;const t=this.dragData.pageX-e.pageX;this.dragData.pageX=e.pageX,this.colWidth[this.dragData.col]&&(this.colWidth[this.dragData.col]-=t,this.colWidth[this.dragData.col]<80&&(this.colWidth[this.dragData.col]=80))},onResize(){console.log("table resize"),this.$refs.tableIns.resetVirtualScroll()},findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},created(){this.onDrag=Object(co["a"])(this.onDrag,1e3/60),this.onResize=Object(co["a"])(this.onResize)},beforeDestroy(){window.removeEventListener("resize",this.onResize)},mounted(){window.addEventListener("resize",this.onResize),console.log("table created",this.$route.query)},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.tableIns){var a;if(Date.now()-e<1e3)return;const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.tableIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},_o=uo,po=(a("cdb7"),a("c1f8")),mo=Object(v["a"])(_o,Kn,Yn,!1,null,null,null),ho=mo.exports;S()(mo,"components",{QTable:Tt["a"],QTr:bn["a"],QTh:po["a"],QIcon:G["a"],QColor:la["a"]});var go=function(){var e=this,t=this,a=t.$createElement,n=t._self._c||a;return n("q-dialog",{attrs:{value:t.show},on:{input:function(t){return e.$emit("change",t)},"before-hide":function(){return e.disable=!1}}},[n("q-card",{staticClass:"info"},[n("q-card-section",[n("div",{staticClass:"text-h6"},[t._v(t._s(t.$t("create_payment")))]),n("div",{staticClass:"infohash"},[t._v(t._s(t.$t("pay_for_torrent",[t.torrentName])))]),n("small",{staticClass:"infohash text-secondary"},[t._v("infoHash: "+t._s(t.infoHash))]),n("div",{staticClass:"peer-info"},[t._v(t._s(t.$t("pay_target"))+":\n "),n("div",{staticClass:"q-ml-sm remote"},[t._v("SubId: "+t._s(t.remoteSubId))]),n("div",{staticClass:"peer-address q-ml-md"},[t._v("Address: "+t._s(t.address))]),n("div",{staticClass:"peer-id q-ml-md"},[t._v("PeerId: "+t._s(t.peerId))])]),n("div",{staticClass:"space q-my-md"}),n("div",{staticClass:"user-info"},[n("div",{staticClass:"sub-id"},[t._v(t._s(t.$t("your_subid"))+": "+t._s(t.subId))]),n("div",{staticClass:"credit-count"},[t._v(t._s(t.$t("your_credits"))+": "+t._s(t.credit))])]),n("div",{staticClass:"actions"},[n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[2,"20MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(2)}}}),n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[10,"100MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(10)}}}),n("br"),n("q-toggle",{attrs:{value:t.enableAutoRenew,label:t.$t("auto_renew"),"left-label":""},on:{input:t.setAutoRenew}})],1)])],1)],1)},fo=[],bo={name:"TorrentPayment",props:{dp$source:Object,infoHash:{type:String,default:""},torrentName:{type:String,default:""},peerId:{type:String,default:""},address:{type:String,default:""},remoteUser:{type:String,default:""},remoteSubId:{type:String,default:""},show:{type:Boolean,default:!1},autoRenew:{type:Object,default:()=>({})}},data(){return{disable:!1,sentTransactions:new Set,pendingTransactions:new Map}},computed:{credit(){return this.dp$source.dp$credit},userId(){return this.$store.state.account.username},subId(){return this.dp$source.dp$address},enableAutoRenew(){return this.autoRenew&&this.autoRenew[this.infoHash]||!1},income(){return this.dp$source.dp$incomeTxnList},expenses(){return this.dp$source.dp$expenseTxnList}},methods:{setAutoRenew(e){this.$emit("setAutoRenew",this.infoHash,e)},pay(e=1){if(!this.infoHash.length||!this.peerId.length||!this.remoteSubId.length)return this.$q.notify("Info missing");this.disable=!0,console.log("dp$ create payment from","TorrentPayment::pay"),this.$emit("createPayment",{infoHash:this.infoHash,peerId:this.peerId,remoteSubId:this.remoteSubId,payed:e,autoRenew:this.enableAutoRenew})}}},yo=bo,vo=Object(v["a"])(yo,go,fo,!1,null,null,null),wo=vo.exports;S()(vo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QBtn:A["a"],QToggle:ta["a"]});var ko=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.torrent?a("q-dialog",{staticClass:"detail-dialog",attrs:{value:e.show,position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.closeDialog}},[a("q-card",{staticClass:"detail-dialog",class:e.isCapacitor?"capacitor":""},[a("q-card-section",{staticClass:"flex items-center no-wrap",class:e.screen$xs?"q-py-sm":"q-py-md"},[e.torrent.fromPost?a("q-icon",{staticClass:"q-mr-xs text-primary",attrs:{name:"video_library"}},[a("q-tooltip",[e._v("\n "+e._s(e.$t("library"))+"\n ")])],1):e._e(),a("div",{staticClass:"text-h6 ellipsis",attrs:{title:e.torrent.postTitle||e.torrent.name}},[e._v("\n "+e._s(e.torrent.postTitle||e.torrent.name)+"\n ")]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:"","data-cy":"moreCard-closeBtn"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{class:e.screen$xs?"q-pt-md":"q-pt-none"},[a("q-input",{attrs:{readonly:"",label:e.$t("download")+" URL",outlined:"",dense:""},scopedSlots:e._u([{key:"append",fn:function(){return[a("IconWithTooltip",{attrs:{icon:"content_copy",tooltip:e.$t("copy_download_uri"),clickable:!0},on:{click:e.copyMagnetURI}}),a("IconWithTooltip",{attrs:{icon:"share",tooltip:e.$t("copy_share_uri"),clickable:!0},on:{click:e.copyShortURI}})]},proxy:!0}],null,!1,2307292726),model:{value:e.downloadURI,callback:function(t){e.downloadURI=t},expression:"downloadURI"}})],1),e.fileTree.length?a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"title"},[e.isElectron||e.isCapacitor?a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder_open",tooltip:e.$t("open_directory"),clickable:""}})],1):e._e(),e._v("\n "+e._s(e.$t("files"))+":\n ")],1),a("q-tree",{staticClass:"no-select file-tree",attrs:{nodes:e.fileTree,"node-key":"label",dense:"","no-connectors":""},scopedSlots:e._u([{key:"default-header",fn:function(t){return[a("q-item",{staticClass:"text full-width q-py-none q-px-xs no-margin vertical-middle",class:{"no-path":!t.node.path},attrs:{dense:"",clickable:!t.node.children},on:{dblclick:function(a){return e.onDblClick(t.node)}}},[!t.node.children&&t.node.path?a("IconWithTooltip",e._b({staticClass:"q-mt-xs q-mr-xs"},"IconWithTooltip",e.getFileIcon(t.node.path),!1)):t.node.path?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"folder"}}):e._e(),e.isCapacitor&&t.node.done&&t.node.fullPath?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"ios_share",label:e.$t("open_file")},on:{click:function(a){return e.shareFile(t.node)}}}):e._e(),t.node.progress?a("span",{staticClass:"file-progress"},[e._v(e._s(t.node.progress))]):e._e(),a("span",{staticClass:"file-name"},[e._v("‎"+e._s(t.node.label))])],1)]}}],null,!1,3668704012)})],1):e._e(),e.torrent.subtitleList&&e.torrent.subtitleList.length?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"subtitles",label:e.$t("subtitle")+" ("+e.torrent.subtitleList.length+")",value:!0}},[a("q-markup-table",{staticClass:"subtitleList-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center",staticStyle:{"padding-left":"20px"}},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("download_link")))]),a("th")])]),a("tbody",e._l(e.torrent.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-center",staticStyle:{"padding-left":"20px"},attrs:{title:t.lang}},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left url ellipsis",attrs:{title:e.getSubtitleUrl(t.url)}},[e._v(e._s(e.getSubtitleUrl(t.url)))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"content_copy",size:"xs",dense:"",flat:""},on:{click:function(a){return e.copySubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy_download_uri")))])],1),e.isElectron?a("q-btn",{attrs:{icon:"file_download",size:"xs",dense:"",flat:""},on:{click:function(a){return e.downloadSubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("download_link")))])],1):e._e()],1)])})),0)])],1)],1):e._e(),a("q-card-section",{staticClass:"q-pt-none peers"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"people",label:"Peers ("+e.connectedPeers.length+")",value:!0}},[a("q-markup-table",{staticClass:"peer-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center"}),a("th",{staticClass:"text-left ip",staticStyle:{"padding-left":"32px"}},[e._v("Peer")]),e.isDevMode?a("th",{staticClass:"text-left client"},[e._v(e._s(e.$t("client")))]):e._e(),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_download_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_upload_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("progress")))])])]),a("tbody",e._l(e.connectedPeers,(function(t){return a("PeerInfo",{key:t.id,attrs:{peer:t},on:{showPaymentPannel:e.showPaymentPannel}})})),1)])],1)],1),e.isDevMode?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{directives:[{name:"show",rawName:"v-show",value:e.trackerList.length,expression:"trackerList.length"}],attrs:{icon:"dns",label:"Trackers ("+e.trackerList.length+")"}},[e.isElectron?a("div",{staticClass:"row justify-end q-pa-sm"},[a("q-input",{staticClass:"col",attrs:{dense:"",type:"text",label:"Tracker URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.newTrackerUrl,callback:function(t){e.newTrackerUrl=t},expression:"newTrackerUrl"}}),a("q-btn",{attrs:{dense:"",color:"primary q-mx-sm q-px-sm",icon:"add",label:e.$t("add")},on:{click:e.addTracker}})],1):e._e(),a("q-markup-table",{staticClass:"tracker-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left",staticStyle:{"padding-left":"40px"}},[e._v("URL")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("last_update")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("seeders")))]),a("th",{staticClass:"text-center"},[e._v("Peers")]),e.isElectron?a("th"):e._e()])]),a("tbody",e._l(e.trackerList,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left url",attrs:{title:t.displayUrl+(t.isIpv6?" (IPv6)":"")}},[t.isIpv6?a("IconWithTooltip",{staticStyle:{color:"#4697ec"},attrs:{icon:"looks_6",tooltip:"IPv6",size:"xs"}}):a("q-icon",{attrs:{name:"looks_4",color:"grey",size:"xs"}}),e._v("\n "+e._s(t.displayUrl)+"\n ")],1),a("td",{staticClass:"text-left status",attrs:{title:t.status}},[e._v(e._s(t.status))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.complete))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.incomplete))]),e.isElectron?a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{color:"red",icon:"close",size:"xs",dense:"",flat:""},on:{click:function(a){return e.removeTracker(t.url)}}})],1):e._e()])})),0)])],1)],1):e._e()],1)],1):e._e()},So=[],Co=(a("dc69"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("tr",[a("td",{staticClass:"status text-center"},[e.peer.isAbPeer?"high"===e.peer.level?a("q-icon",{attrs:{name:"done_all"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer_verified")))])],1):a("q-icon",{attrs:{name:"done"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer")))])],1):a("q-icon",{attrs:{name:"remove"}},[a("q-tooltip",[e._v(e._s(e.$t("common_peer")))])],1)],1),a("td",{staticClass:"addresses"},e._l(e.peer.addresses,(function(t){return a("div",{key:e.peer.id+"_"+t,staticClass:"self-center not-outline address"},[a("q-icon",{attrs:{name:e.peer.secure?"lock":"lock_open",size:"xs",color:e.peer.secure?"green":"grey"}},[a("q-tooltip",[e._v(e._s(e.peer.secure?e.$t("encrypted_connection"):e.$t("non_encrypted_connection")))])],1),a("span",{staticClass:"country-flag q-ml-sm",attrs:{title:e.country}},[e._v(e._s(e.countryFlag))]),e.isDevMode?a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t))]):a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t?t.substring(0,4)+"*":"-"))])],1)})),0),e.isDevMode?a("td",{staticClass:"client text-left",class:{"text-primary":"Alphabiz"===e.peerClient},attrs:{title:e.peerClient}},[e._v(e._s(e.peerClient))]):e._e(),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.downloadSpeed}},[e._v(e._s(e.downloadSpeed)+" / s")]),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.uploadSpeed}},[e._v(e._s(e.uploadSpeed)+" / s")]),a("td",{staticClass:"progress text-right"},[e._v(e._s(e.peerProgress))])])}),xo=[],$o=a("1c53"),To=a.n($o),zo=a("ff11"),Po=a.n(zo);let Ao=null;Object(X["isElectron"])()&&(Ao=global["require"]("geoip-country"));var Io={props:{peer:{type:Object,required:!0}},computed:{isDevMode(){return d["a"].getters.isDevMode},country(){const e=this.peer.addresses[0];if(!e)return"";try{const t=Ao.lookup(e);return t&&t.country?t.country:""}catch(t){return""}},countryFlag(){return this.country?To.a.getEmojiFlag(this.country):""},uploadSpeed(){return Object(M["a"])(this.peer.uploadSpeed,{byte:!1,gb:!1,fix:1})},downloadSpeed(){return Object(M["a"])(this.peer.downloadSpeed,{byte:!1,gb:!1,fix:1})},peerClient(){if(!this.peer.id)return"-";const e=Buffer.from(this.peer.id,"hex").toString("ascii");try{const t=Po()(e.replace("-AB","-WD")),a=this.peer.isAbPeer?"(Alphabiz)WebTorrent":t.client;return"unknown"===a?this.$t("unknown"):t.version?a+" "+t.version:a}catch(t){return this.$t("unknown")}},peerProgress(){if("number"!==typeof this.peer.progress)return"-";const e=Number((100*this.peer.progress).toFixed(1));return e+"%"}},methods:{showPaymentPannel(){this.$emit("showPaymentPannel",{peerId:this.peer.id,address:this.peer.address,remoteUser:this.peer.user,remoteSubId:this.peer.subId})}}},qo=Io,Oo=(a("2e69"),Object(v["a"])(qo,Co,xo,!1,null,"4676c095",null)),Eo=Oo.exports;S()(Oo,"components",{QIcon:G["a"],QTooltip:V["a"]});var Do={props:{show:{type:Boolean,default:!1},torrent:{type:Object,required:!0}},data(){const e=Object(ae["default"])()?a("1b85").ipcRenderer:{};return{newTrackerUrl:"",isCapacitor:Object(ge["a"])(),isElectron:Object(ae["default"])(),ipcRenderer:e}},components:{IconWithTooltip:oo,PeerInfo:Eo},inject:["io"],computed:{isDevMode(){return d["a"].getters.isDevMode},fileCount(){if(!this.torrent)return 0;const e=this.torrent.files||this.torrent.file||[];return e&&e.length?e.length:0},fileTree(){if(!this.torrent)return[];const e=this.torrent.files&&this.torrent.files.map?this.torrent.files.map((e=>e.path)):this.torrent.file||[];if(!e||!e.length)return[];const t=this.fileCount>21?e.slice(e.length-20):e,a=Object(M["b"])(t,this.torrent.files);return a?(this.fileCount>21&&a.children&&a.children.push({label:this.$t("more_files_are_not_shown",[this.fileCount-20])}),[a]):[]},downloadURI(){return this.torrent.alphabizURI?this.torrent.alphabizURI:this.torrent.magnetURI},trackerList(){if(!this.torrent.trackerList)return[];const e=this.torrent.trackerList.map((e=>{const t=this.trackerStatus(e.message||e.status),a=e.info||{complete:"-",incomplete:"-"},n=new Date(e.timestamp),o=[n.getHours(),n.getMinutes(),n.getSeconds()].map((e=>("00"+e).slice(-2))).join(":");return{url:e.url,displayUrl:e.url.replace("@6",""),status:t,time:o,isIpv6:e.isIpv6,...a}})).reverse();return Object(ae["default"])()?e:e.filter((e=>{var t;return null===(t=e.url)||void 0===t?void 0:t.startsWith("ws")}))},connectedPeers(){if(!this.torrent||!this.torrent.connections)return[];const e={};for(const n of this.torrent.connections){const t=n.id;e[t]||(e[t]={...n},e[t].addresses=[],e[t].uploadSpeed=0,e[t].downloadSpeed=0,e[t].downloaded=0),e[t].addresses.includes(n.address)||e[t].addresses.push(n.address),e[t].uploadSpeed+=n.uploadSpeed,e[t].downloadSpeed+=n.downloadSpeed,e[t].downloaded+=n.downloaded,e[t].isAbPeer|=n.isAbPeer,e[t].isPayed|="high"===n.remoteGroup,e[t].secure|=n.secure}const t=[],a=Object.values(e).sort(((e,t)=>{var a;return null!==(a=e.id)&&void 0!==a&&a.localeCompare?e.id.localeCompare(t.id):0})).filter((e=>!!e.id&&(!t.includes(e.id)&&(t.push(e.id),!0))));return a}},methods:{getFileIcon(e){const t=Object(M["c"])([e]);return{icon:t.icon,tooltip:this.$t(t.tooltip)}},closeDialog(){this.$emit("close")},copyToClipboard(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("uri_copied"))})).catch((()=>{this.$q.notify(this.$t("uri_copy_failed"))}))},copyMagnetURI(){this.copyToClipboard(this.downloadURI)},copyShortURI(){if(!this.torrent.alphabizURI)return;const e=this.torrent.alphabizURI.match(/[^:/]\/([^&/]+)&/);e&&e[1]&&this.copyToClipboard(De.a.shortProtocol+"://"+e[1])},copySubtitleURL(e){console.log("copySubtitleURL",this.torrent),this.copyToClipboard(qe(e))},downloadSubtitleURL(e){this.ipcRenderer.send("to_browserurl",qe(e))},getSubtitleUrl(e){return qe(e)},showPaymentPannel(e){this.$emit("showPaymentPannel",Object.assign({infoHash:this.torrent.infoHash,name:this.torrent.name},e))},showDirectory(){this.$emit("showDirectory",this.torrent)},onDblClick(e){console.log(e),e.children||(Object(Nn["a"])(e.label)?this.$emit("play",e.path,this.torrent.infoHash):e.path&&this.io.emit("open-external-file",e.path))},shareFile(e){this.$emit("shareFile",e.fullPath)},trackerStatus(e){const t=e.toLowerCase();return"connecting"===t?this.$t("connecting"):"updated"===t?this.$t("connected"):t.includes("timed out")?this.$t("request_timed_out"):t.includes("connection failed")?this.$t("connection_failed"):this.$t("unknown_error",[e])},addTracker(){console.log("add",this.newTrackerUrl,this.torrent.infoHash);const e=this.newTrackerUrl.trim();if(this.torrent.trackerList.find((t=>t.url===e)))return this.$q.notify(this.$t("duplicate_tracker"));this.isElectron&&this.ipcRenderer.send("add-tracker",{infoHash:this.torrent.infoHash,url:e}),this.newTrackerUrl=""},removeTracker(e){console.log("remove",e,this.torrent.infoHash),this.isElectron&&this.ipcRenderer.send("remove-tracker",{infoHash:this.torrent.infoHash,url:e})}}},jo=Do,No=(a("860f"),a("348e")),Lo=a("5bbd"),Uo=Object(v["a"])(jo,ko,So,!1,null,"560c4343",null),Ro=Uo.exports;S()(Uo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QTooltip:V["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QInput:E["a"],QTree:No["a"],QItem:He["a"],QExpansionItem:Lo["a"],QMarkupTable:Q["a"]}),S()(Uo,"directives",{ClosePopup:K["a"]});var Mo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.showPanel},on:{input:e.close}},[a("q-card",[a("q-card-section",{staticClass:"row items-center"},[a("q-expansion-item",{staticStyle:{width:"400px"},attrs:{"expand-separator":"","default-opened":"",icon:"people",label:"Peers ("+e.abPeers.length+")",caption:"Alphabiz peer"}},[a("div",{staticClass:"total col-12 q-px-md q-ml-sm"},[a("span",[e._v(e._s(e.$t("credit_cost"))+": "+e._s(e.torrentExpensesNum))])]),e._l(e.abPeers,(function(t){return a("q-field",{key:t.id,attrs:{label:t.subId||t.id,"stack-label":"",borderless:"",readonly:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("div",{staticClass:"q-px-sm"})]},proxy:!0},{key:"control",fn:function(){return[e._l(t.addresses,(function(t,n){return a("div",{key:n+"-"+t,staticClass:"self-center full-width not-outline"},[e._v(" - "+e._s(t)+"\n ")])})),a("div",{staticClass:"text full-width q-mt-xs"},[a("span",{staticClass:"peer-speed q-ml-xs q-mr-lg",class:{"text-primary":"0.00 KB"!==t.uploadSpeed}},[e._v("↑ "+e._s(t.uploadSpeed)+" / s")]),t.isPayed?a("q-icon",{staticClass:"text-primary q-mx-xs cursor-pointer",attrs:{name:"bolt"}},[a("q-tooltip",[e._v(" "+e._s(e.$t("accelerating")))])],1):e._e(),a("span",{staticClass:"peer-speed q-mr-md",class:{"text-primary":"0.00 KB"!==t.downloadSpeed}},[e._v("↓ "+e._s(t.downloadSpeed)+" / s")]),a("span",{directives:[{name:"show",rawName:"v-show",value:t.downloaded,expression:"peer.downloaded"}],staticClass:"peer-downloaded text-primary"},[e._v(e._s(t.downloadedData))])],1)]},proxy:!0}],null,!0)})}))],2)],1),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"total text-center"},[e._v("\n "+e._s(e.$t("pay_with_credit_payed",[e.totalCredits]))+"\n ")])]),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("ok")}})],1)],1)],1)},Fo=[],Bo={props:{dp$source:Object,show:{type:Boolean,required:!0},torrent:{type:Object,required:!0},paymentSize:{type:Number,default:1e7}},computed:{torrentExpensesNum(){let e=0;if(this.dp$source.dp$expenseTxnDict&&this.dp$source.dp$expenseHashMapper){const t=this.dp$source.dp$expenseHashMapper[this.torrent.infoHash];if(console.log("torrentExpensesNum:","infoHash",this.torrent.infoHash),t)for(const a of t)e+=this.dp$source.dp$expenseTxnDict[a].amount}return Number((e/1e3).toFixed(3))},showPanel(){return this.show},totalCredits(){const e=this.torrent.length,t=e-this.torrent.downloaded,a=Number((t/1e10).toFixed(3));return a},abPeers(){if(!this.torrent||!this.torrent.connections)return[];const e=this.torrent.connections.filter((e=>e.isAbPeer&&e.hasResource&&e.subId!==d["a"].getters.accountUserInfo.sub)),t={};for(const a of e){const e=a.subId;e&&(t[e]?(t[e].isAbPeer|=a.isAbPeer,t[e].addresses.push(a.address),t[e].uploadSpeed+=a.uploadSpeed,t[e].downloadSpeed+=a.downloadSpeed,t[e].downloaded+=a.downloaded):(t[e]={...a},t[e].addresses=[a.address]))}return Object.values(t).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0)).map((e=>(e.uploadSpeed=Object(M["a"])(e.uploadSpeed,{byte:!1,gb:!1}),e.downloadSpeed=Object(M["a"])(e.downloadSpeed,{byte:!1,gb:!1}),e.downloadedData=Object(M["a"])(e.downloaded,{byte:!0,gb:!0}),e.isPayed="high"===e.remoteGroup,e)))},payedConnections(){return this.abPeers.filter((e=>e.isPayed))},downloadedFromPayed(){return Object(M["a"])(this.payedConnections.reduce(((e,t)=>e+t.downloaded||0),0),{byte:!0,gb:!0})},hasPayed(){return this.payedConnections.length}},methods:{confirmPayment(){if(!this.abPeers.length)return;let e=10;const t=Math.floor(10*this.torrent.downloadSpeed/this.paymentSize);t>e&&(e=t);const a=this.torrent.length-this.torrent.downloaded;a{console.log("pay for",t),t.isPayed?console.log("skip high level peer",t):(console.log("dp$ create payment from","AlphabizPanel::confirmPayment"),this.$emit("createPayment",{infoHash:this.torrent.infoHash,remoteSubId:t.subId,payed:e,autoRenew:!0},!0))})),this.close()},close(){this.$emit("close")}}},Wo=Bo,Ho=a("b121"),Vo=Object(v["a"])(Wo,Mo,Fo,!1,null,null,null),Qo=Vo.exports;S()(Vo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QExpansionItem:Lo["a"],QField:Ho["a"],QIcon:G["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Vo,"directives",{ClosePopup:K["a"]});var Go=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("alphabiz-button",{attrs:{"button-type":"icon",icon:"sort"}},[a("q-tooltip",[e._v(e._s(e.$t("sort")))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{attrs:{padding:""}},[a("q-item",{staticStyle:{"min-width":"240px"}},[a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("sort")))])],1),a("q-item-section",{attrs:{side:""}},[a("q-badge",{staticClass:"cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:e.changeSortSequence}},[a("span",{staticClass:"q-ml-sm"},[e._v(e._s(1===e.sortSequence?e.$t("ascending"):e.$t("descending")))]),a("q-icon",{attrs:{size:"1.5rem",name:1===e.sortSequence?"arrow_drop_up":"arrow_drop_down"}})],1)],1)],1),a("q-separator"),e._l(e.options,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"}],key:t.value,attrs:{clickable:"",dense:"",tag:"label"}},[a("q-item-section",{attrs:{avatar:""}},[a("q-radio",{attrs:{val:t.value,color:"positive"},model:{value:e.sortOption,callback:function(t){e.sortOption=t},expression:"sortOption"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)}))],2)],1)],1)},Ko=[],Yo={name:"DownloaderSortMenu",inject:["io"],data(){return{sortOption:"createdTime",sortSequence:1}},computed:{options(){switch(this.$route.query.currentTab){case"downloading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_download_speed"),value:"downloadSpeed"},{label:this.$t("progress"),value:"progress"},{label:this.$t("remaining"),value:"timeRemaining"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("used_time"),value:"usedTime"}];case"uploading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_upload_speed"),value:"uploadSpeed"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("income"),value:"income"}];case"downloaded":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("used_time"),value:"usedTime"}]}return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"}]}},methods:{saveSortOptions(){localStorage.setItem("sortOptions_"+this.$route.query.currentTab,JSON.stringify({sortOption:this.sortOption,sortSequence:this.sortSequence}))},changeSortSequence(){this.sortSequence=-1*this.sortSequence,this.$emit("changeSortSequence",this.sortSequence),this.io.emit("set_sort_sequence",this.sortSequence),this.saveSortOptions()}},mounted(){const e=localStorage.getItem("sortOptions_"+this.$route.query.currentTab);if(e){const{sortOption:t,sortSequence:a}=JSON.parse(e);t&&(this.sortOption=t),a&&(this.sortSequence=a)}else this.sortOption="createdTime",this.sortSequence=1,this.saveSortOptions()},watch:{sortOption(e){this.$emit("changeSortOption",e),this.io.emit("set_sort_option",this.sortOption),this.saveSortOptions()},"$route.query.currentTab"(e,t){if(e===t||!e)return;const a=localStorage.getItem("sortOptions_"+e);if(a){const{sortOption:e,sortSequence:t}=JSON.parse(a);e&&(this.sortOption=e),t&&(this.sortSequence=t)}else this.sortOption="createdTime",this.sortSequence=1}}},Jo=Yo,Zo=a("719b"),Xo=Object(v["a"])(Jo,Go,Ko,!1,null,"b08e87f8",null),ei=Xo.exports;S()(Xo,"components",{QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QBadge:_e["a"],QIcon:G["a"],QSeparator:H["a"],QRadio:La["a"]}),S()(Xo,"directives",{Ripple:Zo["a"]});var ti=a("0885"),ai=a("a368");const ni=a("d310").isElectron();var oi={name:"Downloader",inject:["rootApp","io","taskQueue","dp$source"],components:{CardList:Gn,TableList:ho,TableListDetail:Ro,IconWithTooltip:oo,AlphabizPanel:Qo,TorrentPayment:wo,SortMenu:ei,PostCard:Ye,QuickStart:Ma},data(){return{isMobile:Ln["b"].is.mobile||Object(ge["a"])(),currentTab:"downloading",loading:!1,listMode:localStorage.getItem("task-list-mode")||"list",searchText:"",showSearchText:!1,autoRenew:JSON.parse(localStorage.getItem("task-autorenew")||"{}"),sortOption:"createdTime",sortSequence:1,statusText:{},info:{downloadSpeed:0,uploadSpeed:0,progress:0,taskNum:0},showPayment:!1,showTorrentDetail:!1,torrentDetailInfoHash:"",paymentData:{infoHash:"",torrentName:"",peerId:"",address:"",remoteUser:"",remoteSubId:""},paymentSize:1e7,showAlphabizPanel:!1,abTorrentInfoHash:"",lib:s["a"],showChannelPost:!1,channelPost:null,showQuickStartDialog:!1,quickStartTask:null}},computed:{torrentList(){return za["a"].taskList},listComponent(){return"card"===this.listMode?"CardList":"TableList"},displayTab:{get(){return this.currentTab+"Torrents"},set(e){const t=e.replace(/Torrents$/,"");this.$router.push({path:this.$route.path,query:{...this.$route.query,currentTab:t}})}},displayList(){return[{key:"downloadingTorrents",label:this.$t("downloading"),open:!0,list:this.filterTorrent(this.downloadingTorrents||[])},{key:"uploadingTorrents",label:this.$t("uploading"),open:!1,list:this.filterTorrent(this.uploadingTorrents||[])},{key:"downloadedTorrents",label:this.$t("downloaded"),open:!1,list:this.filterTorrent(this.downloadedTorrents||[])}]},currentList(){switch(this.displayTab){case"downloadingTorrents":return this.displayList[0].list;case"uploadingTorrents":return this.displayList[1].list;default:return this.displayList[2].list}},isAllStarted(){return this.currentList.every((e=>!e.paused))},isAllPaused(){return this.currentList.every((e=>e.paused))},noDataMessage(){return this.searchText?this.$t("no_matched_task"):this.$t("no_task")},downloadingTorrents(){const e=this.sortTorrents(this.torrentList.downloading);return e},disableDownloadAll(){return this.loading||this.downloadingTorrents.every((e=>!e.paused))},disablePauseAllDownloading(){return this.loading||this.downloadingTorrents.every((e=>e.paused))},downloadingProgress(){const e=this.torrentList.totalDownloadProgress;return isNaN(e)||0===e&&0===this.downloadingNum?{value:0,label:this.$t("no_downloading_task")}:{value:e,label:Object(M["g"])(e)}},uploadingTorrents(){const e=this.sortTorrents(this.torrentList.uploading);return e},totalDownloadSpeed(){return this.torrentList.totalDownloadSpeed?Object(M["a"])(this.torrentList.totalDownloadSpeed,{byte:!1,gb:!1})+" / s":"0.00 KB / s"},totalUploadSpeed(){if(!this.uploadingTorrents)return"-";const e=this.torrentList.totalUploadSpeed;return Object(M["a"])(e,{byte:!1,gb:!1})+" / s"},downloadedTorrents(){return this.sortTorrents(this.torrentList.downloaded)},torrentItems(){return za["a"].allTasks},torrentDetail(){return this.torrentDetailInfoHash&&this.torrentItems.find((e=>e.infoHash===this.torrentDetailInfoHash))||{}},alphabizTorrent(){return this.abTorrentInfoHash&&this.torrentItems.find((e=>e.infoHash===this.abTorrentInfoHash))||{}},downloadingNum(){return this.downloadingTorrents.filter((e=>!e.paused&&!e.pending&&!(!e.download||1===e.progress))).length},incomes(){let e=0;const t={};for(const i of this.dp$source.dp$incomeTxnListToday){if(!i.meta||"FINISH"!==i.status)continue;e+=i.amount;const a=JSON.parse(i.meta);a.infoHash&&(t[a.infoHash]||(t[a.infoHash]=0),t[a.infoHash]+=i.amount)}let a=0;const n={},o=this.dp$source.dp$incomeStatusMapper.FINISH;if(o)for(const i of o){const e=this.dp$source.dp$incomeTxnDict[i];a+=e.amount;const t=JSON.parse(e.meta).infoHash;n[t]||(n[t]=0),n[t]+=e.amount}return{todayIncome:e,todayTaskIncome:t,allIncome:a,allTaskIncome:n}},totalIncomeInfo(){return 2!==d["a"].state.credits.isModuleInit?this.$t("login_to_see_income"):this.$t("total_income_info",[Number((this.incomes.todayIncome/1e3).toFixed(3)),Number((this.incomes.allIncome/1e3).toFixed(3))])},disableTasks(){return!!d["a"].getters.shouldDisableTasks||!!d["a"].getters.settings.forceLogin&&(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{ensureLogin(e){if(this.disableTasks){if(!d["a"].state.account.authState)return;this.$amplify.showSignedOutDialog()}else"function"===typeof e&&e()},async setLoading(){this.loading=!0,await new Promise((e=>setTimeout(e,1e3))),this.loading=!1},toggleSearchText(e){this.showSearchText=e,e&&this.$nextTick((()=>{this.$refs.searchInput.focus()}))},filterTorrent(e){const t=this.searchText.toLowerCase(),a=e.filter((e=>e.name||e.postTitle?e.postTitle?e.postTitle.toLowerCase().includes(t):e.name.toLowerCase().includes(t):""===t));return a},clearSearch(){this.searchText="",this.$refs.searchInput.blur()},changeListMode(){"list"===this.listMode?this.listMode="card":this.listMode="list",localStorage.setItem("task-list-mode",this.listMode)},byteToLargerSize(e){return Object(M["a"])(e,{byte:!0,gb:!0})},getTorrentListName(e){let t="downloading";return e.isSeeding||e.uploading?t="uploading":e.pending?t="pending":1===e.progress||e.done?t="downloaded":e.paused&&(t="paused"),t},showMagnetDialog(e){this.$root.$emit("openTaskDialog",e)},showDetail(e){this.torrentDetailInfoHash=e.infoHash,this.showTorrentDetail=!0},hideDetail(){this.showTorrentDetail=!1,this.torrentDetailInfoHash=""},showAbPanel({infoHash:e}){this.abTorrentInfoHash=e,this.showAlphabizPanel=!0},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},hideAbPanel(){this.showAlphabizPanel=!1,this.abTorrentInfoHash=""},async shareFile(e){const t=await ai["Share"].canShare();if(!t.value)return;const a=await ai["Share"].share({files:["file://"+encodeURI(e)]}).catch((e=>{console.log(e)}));this.$q.notify("Result: "+a.activityType)},showOriginTorrent(e){let t=e.token||e.origin;if(e.isSeeding||e.upload?t=e.magnetURI:e.magnetPath&&(t=e.magnetPath),!t)return this.$q.notify("origin_not_found");qn.a.existsSync(t)?this.io.emit("show_torrent_file",t):(t.startsWith("magnet")||(t="magnet:?xt=urn:btih:"+e.infoHash),e.name&&(t+="&dn="+encodeURIComponent(e.name)),Object(lt["b"])(t),this.$q.notify(this.$t("text_copied")))},async showDirectory(e){if(Object(ge["a"])()){if(1!==e.progress&&!e.done)return this.$q.notify(this.$t("wait_for_downloaded_to_share"));if((await ai["Share"].canShare()).value){const t=e.files.map((e=>"file://"+e.path));console.log("Files",t,e.path);const a=Ia(t);console.log("pub",a),ai["Share"].share({files:["file://"+encodeURI(a)],title:"Save"}).catch((e=>{console.log("Share error",e)}))}}if(!qn.a.existsSync(e.path))return this.$q.notify(this.$t("path_missing"));if(e.files&&1===e.files.length&&qn.a.existsSync(e.files[0].path))return this.io.emit("show_torrent_file",e.files[0].path);const t=Aa.a.resolve(e.path,e.postTitle||e.name||"");if(!qn.a.existsSync(t))return this.io.emit("show_torrent_file",e.path);this.io.emit("show_torrent_file",t)},setAutoRenew(e,t){return Object(ti["c"])(e,t),this.$set(this.autoRenew,e,t)},showPaymentPannel(e){this.paymentData=e,this.showPayment=!0},changeSortOption(e){this.sortOption=e},changeSortSequence(e){this.sortSequence=e},sortTorrents(e){const t=this.sortOption,a=t;switch(a){case"income":{const t=this.incomes.allTaskIncome;return[...e].sort(((e,a)=>t[e.infoHash]?t[a.infoHash]?(t[e.infoHash]-t[a.infoHash])*this.sortSequence:-1:t[a.infoHash]?1:0))}default:return e}},async askForConfirm(e){return new Promise((t=>{this.$q.dialog({persistent:!0,message:e,ok:this.$t("confirm"),cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>t(!0))).onCancel((()=>t(!1)))}))},downloadAll(e=!1){if(console.log("download all!"),this.loading)return console.log("skip downloadAll since loading");this.setLoading(),Object(qa["c"])(e)},async pauseAllDownloading(e=!1){if(!this.torrentList.downloading.length)return console.log("skip pause all downloading");console.log("pauseall"),this.setLoading(),Object(qa["d"])(e)},requestPauseAllDownloading(){this.$q.dialog({title:this.$t("pause_all"),message:this.$t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("pause_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.pauseAllDownloading()}))},removeAllDownloading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_downloading_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles");if(t&&d["a"].state.video.currentVideo.infoHash){const e=this.downloadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","download",t);for(const a of this.downloadingTorrents)this.io.emit("delete_torrent",a.infoHash,t);d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},pauseAllUploading(e=!1){this.torrentList.uploading.length&&(this.setLoading(),Object(qa["e"])(e))},removeAllUploading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_upload_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"},{label:this.$t("remove_autoupload_files"),value:"deleteAutoUpload"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles"),a=e.includes("deleteAutoUpload");if(t&&d["a"].state.video.currentVideo.remotePlay&&d["a"].state.video.currentVideo.infoHash){const e=this.uploadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){var n,o,i;const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;console.log(null===(n=this.$refs.videoJsPlayer)||void 0===n?void 0:n.player),null===(o=this.$refs.videoJsPlayer)||void 0===o||null===(i=o.player)||void 0===i||i.stop(),this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","upload",t,a),d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},async uploadAll(e=!1){const t=Object(qa["h"])(e);if(console.log("rest",t),t<=this.downloadedTorrents.length)return void console.log("Skip watch: nothing to upload");this.loading=!0;let a=null;const n=new Promise((e=>a=e)),o=this.$watch("downloadedTorrents",(e=>{e.length<=t&&(o(),this.loading=!1,console.log("upload done"),a())}));return setTimeout((()=>{this.loading&&(this.loading=!1,o(),a())}),5e3),n},pauseTorrent(e){this.setLoading(),Object(qa["f"])(e,this)},resumeTorrent(e){e&&this.ensureLogin((()=>{this.setLoading(),console.log("resume",e),this.io.emit("resume_torrent",e)}))},deleteTorrent(e){this.ensureLogin((async()=>{if(e.infoHash&&d["a"].state.video.currentVideo.remotePlay&&e.infoHash===d["a"].state.video.currentVideo.infoHash){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(a){const t=await za["a"].deleteTask(e);if(!t)return;this.io.emit("trigger_clear_player",e.infoHash)}}else za["a"].deleteTask(e)}))},clearAll(){this.ensureLogin((()=>{this.$q.dialog({title:this.$t("clear_history"),message:this.$t("remove_all_history"),ok:this.$t("remove_all"),cancel:this.$t("not_now")}).onOk((()=>{this.setLoading();for(const e of this.downloadedTorrents)this.io.emit("delete_torrent",e.infoHash)}))}))},startPayment(e,t=!1){Object(ti["d"])(e,t)},async createPayment(e,t=!1){await Object(ti["a"])(e,t,this),t||(this.showPayment=!1)},setThrottleGroup(e){this.io.emit("set_throttle_group",e)},saveTorrentFile(e){this.io.emit("save_torrent_file",e)},play(e,t){(ni||Object(ge["a"])())&&(console.log("run play():"+t+", "+e),d["a"].dispatch("remotePlay",t),this.io.emit("play-torrent",{infoHash:t,filepath:e}))},showQuickStart(e){this.quickStartTask=e,this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1,this.quickStartTask=null}},created(){this.io.on("client_info",(e=>{this.info=e}))},mounted(){if(Object.keys(this.autoRenew).length)for(const e in this.autoRenew)Object(ti["c"])(e,this.autoRenew[e])},beforeRouteEnter(e,t,a){if(console.log("before enter",e,t),"/downloader"!==e.path)return a();console.log("is downloader"),e.query.currentTab?(console.log("current tab:",e.query.currentTab),a((t=>{t.currentTab=e.query.currentTab}))):(console.log("not current tab",e.query),a({path:e.path,query:{...e.query,currentTab:"downloading"}}))},beforeRouteUpdate(e,t,a){console.log("before update",e,t),this.currentTab=e.query.currentTab,a()},watch:{autoRenew(e){localStorage.setItem("task-autorenew",JSON.stringify(e))}}},ii=oi,ri=(a("7297"),a("b2b4"),a("9b72")),si=a("832a"),li=a("917f"),ci=a("c72d"),di=Object(v["a"])(ii,Pn,An,!1,null,"540e1290",null),ui=di.exports;S()(di,"components",{QPage:ri["a"],QHeader:si["a"],QToolbar:ce["a"],QSpace:W["a"],QBtn:A["a"],QInput:E["a"],QIcon:G["a"],QTooltip:V["a"],QLinearProgress:zt["a"],QTabPanels:li["a"],QTabPanel:ci["a"],QPageSticky:tt["a"],QDialog:I["a"]});var _i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"file"},on:{change:e.onFileChange}}),a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("span",[e._v("\n "+e._s(e.$t("web_mode_hint"))+"\n "),a("a",{staticClass:"doc-link",attrs:{href:"https://alpha.biz",target:"_blank"}},[e._v("\n "+e._s(e.$t("go_to"))+" alpha.biz\n "),a("q-icon",{attrs:{name:"open_in_new"}})],1)])])],1),a("div",{staticClass:"task-container"},[e.task.magnetURI||e.task.origin||e.task.isSeeding?a("CardItem",{attrs:{torrent:e.task},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart,saveFile:e.saveFile,saveZip:e.saveZip}}):a("div",{staticClass:"no-task"},[a("div",{staticClass:"add-hints"},[e._v("\n "+e._s(e.$t("web_mode_task_hint"))+"\n ")]),a("q-btn",{staticClass:"add-button",attrs:{color:"primary",icon:"add",size:"lg"},on:{click:e.showDownload}},[a("q-tooltip",[e._v(e._s(e.$t("download")))])],1),a("q-btn",{staticClass:"add-button q-ml-md",attrs:{color:"primary",icon:"cloud_upload",size:"lg"},on:{click:e.showUpload}},[a("q-tooltip",[e._v(e._s(e.$t("upload")))])],1)],1)],1)]),a("q-dialog",{model:{value:e.showInput,callback:function(t){e.showInput=t},expression:"showInput"}},[a("q-card",{staticClass:"url-input"},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("download")))]),a("q-input",{attrs:{type:"text",label:"Task URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.taskUrl,callback:function(t){e.taskUrl=t},expression:"taskUrl"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:"Cancel",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{color:"primary",icon:"add",label:e.$t("add")},on:{click:e.addTask}})],1)],1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TableListDetail",{attrs:{show:e.showTaskDetail,torrent:e.task,paymentSize:10},on:{close:e.hideDetail}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.task,paymentSize:10},on:{close:e.hideAbPanel}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.task},on:{input:e.hideQuickStartDialog}})],1)},pi=[],mi=(a("f200"),a("09e8")),hi=a("7d7c"),gi=(a("dc89"),a("2425"),a("3cc3")),fi=a.n(gi);const bi=(e,t)=>{const a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=e,document.body.appendChild(n),n.click(),setTimeout((()=>{URL.revokeObjectURL(a),n.remove()}),3e4)};async function yi(e){return new Promise((t=>{e.getBlob(((a,n)=>{if(a)throw a;bi(e.name,n),t()}))}))}async function vi(e){if(!e.done)return;const t=Object(Pa["basename"])(e.name,Object(Pa["extname"])(e.name))+".zip",a=new fi.a,n=e.files;await Promise.all(n.map((e=>new Promise(((t,n)=>{e.getBlob(((o,i)=>{if(o)return n(o);a.file(e.path,i),t()}))}))))),n.length>1&&a.folder(e.postTitle||e.name);const o=await a.generateAsync({type:"blob"});return bi(t,o)}var wi=a("c620"),ki={components:{CardItem:Wn,TableListDetail:Ro,AlphabizPanel:Qo,QuickStart:Ma,PostCard:Ye},mixins:[mi["a"]],name:"Downloader",data(){return{locked:!1,showInput:!1,showTaskDetail:!1,showAlphabizPanel:!1,showQuickStartDialog:!1,showChannelPost:!1,channelPost:null,taskUrl:"",task:{}}},computed:{isReady(){return this.task.name&&this.task.length},displayName(){return this.task.postTitle?this.task.postTitle:this.task.name?this.task.name:this.$t("loading")},taskAction(){return this.task.paused?this.task.done?this.$t("upload"):this.$t("resume"):this.task.isSeeding?this.$t("stop_torrent"):this.$t("pause")},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{async showDownload(){this.taskUrl="",this.showInput=!0,await this.$nextTick();const e=await Object(lt["a"])();if(e&&"string"===typeof e){const t=e.trim();if([Ee["protocol"],Ee["shortProtocol"],"magnet"].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(Se["a"])(t);if(!e||!e.startsWith("magnet"))return;this.taskUrl=t}}},async showUpload(){this.$refs.fileSelector.click()},showDetail(){this.showTaskDetail=!0},hideDetail(){this.showTaskDetail=!1},switchState(){console.log("on switch state")},addTask(){Z["a"].emit("wt-add",this.taskUrl)},deleteTorrent(){this.$q.dialog({title:this.$t("delete_task"),message:this.$t("delete_confirm_message"),cancel:{color:"primary",flat:!0,label:this.$t("not_now")},ok:{color:"red",flat:!0,label:this.$t("delete")}}).onOk((()=>{Z["a"].emit("wt-delete",this.task.infoHash),this.task={}}))},pauseTorrent(){Z["a"].emit("wt-pause",this.task.infoHash),this.task.paused=!0},resumeTorrent(){this.task&&this.task.magnetURI&&(this.task.paused=!1,Z["a"].emit("wt-resume",this.task.infoHash))},play(e){console.log("onplay",e),Object(hi["default"])(e)},showPaymentPannel(){},showAbPanel(){this.showAlphabizPanel=!0},hideAbPanel(){this.showAlphabizPanel=!1},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},onFileChange(e){const t=e.target;t&&t.files&&t.files.length&&(console.log("To upload",t.files[0]),Z["a"].emit("wt-add",t.files[0])),t.value=null},showQuickStart(){this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1},saveFile(e){const t=wi["wtClient"].torrents[0];if(!t||!t.files)return;const a=t.files.find((t=>t.path===e.path))||t.files.find((t=>t.name===e.name));if(!a)return;const n=this.$q.dialog({title:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{yi(a).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>n.hide()))}))},saveZip(){const e=this.$q.dialog({message:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{vi(wi["wtClient"].torrents[0]).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>e.hide()))}))}},created(){console.log("[wt] created"),Z["a"].on("weberror",((...e)=>this.$q.notify(...e))),Z["a"].on("wt-task",(e=>{this.task=Array.isArray(e)?e[0]:e}))}},Si=ki,Ci=(a("5ab7"),Object(v["a"])(Si,_i,pi,!1,null,"71beeddd",null)),xi=Ci.exports;S()(Ci,"components",{QPage:ri["a"],QHeader:si["a"],QToolbar:ce["a"],QIcon:G["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]}),S()(Ci,"directives",{ClosePopup:K["a"]});const $i=[{name:"MainLayout",path:"/",redirect:"/library",component:()=>Promise.all([a.e(0),a.e(4)]).then(a.bind(null,"2cae")),children:[{name:"Library",path:"/library",component:he,children:[{name:"LibraryExplore",path:"explore",component:Ot},{name:"LibraryFollowing",path:"following",component:Rt},{name:"LibraryFavorites",path:"favorite",component:Qt},{name:"LibraryEdit",path:"edit",component:Ha},{name:"LibraryChannel",path:"channel",component:nn},{name:"LibraryCreator",path:"creator",component:dn},{name:"LibraryTakeDown",path:"takedown",component:wn},{name:"LibraryIndex",path:"",component:zn}]},{name:"Downloader",path:"/downloader",component:Object(X["isElectron"])()||Object(ge["a"])()?ui:xi},{name:"Player",path:"/player",component:()=>a.e(10).then(a.bind(null,"d8f8"))},{name:"Credits",path:"/credits",component:()=>a.e(6).then(a.bind(null,"316f"))},{name:"Blockchain",path:"/blockchain",component:()=>a.e(8).then(a.bind(null,"4b4f"))},{name:"AccountSettings",path:"/account/settings",component:()=>Promise.all([a.e(0),a.e(2)]).then(a.bind(null,"6b91"))},{name:"BasicSetting",path:"/basicSetting",component:()=>Promise.all([a.e(0),a.e(5)]).then(a.bind(null,"9ff7"))},{name:"AdvanceSetting",path:"/advanceSetting",component:()=>Promise.all([a.e(0),a.e(3)]).then(a.bind(null,"154e"))},{name:"Development",path:"/development",component:()=>Promise.resolve().then(a.bind(null,"39df"))}]},{name:"Error",path:"*",component:()=>a.e(9).then(a.bind(null,"183d"))}];var Ti=$i;n["a"].use(o["a"]);const zi=o["a"].prototype.push;o["a"].prototype.push=function(e){return zi.call(this,e).catch((e=>e))};let Pi=null;function Ai(){return Pi}t["a"]=function(){const e=new o["a"]({scrollBehavior:()=>({x:0,y:0}),routes:Ti,mode:"hash",base:""});return Pi=e,e}},"61dc":function(e,t,a){"use strict";a("d34c")},6422:function(e,t,a){"use strict";a.d(t,"e",(function(){return i})),a.d(t,"a",(function(){return r})),a.d(t,"g",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return h}));a("a1c1"),a("de6c");var n=a("4fd2");const o=(e,t="0",a=2)=>(t.repeat(a)+e).slice(-a),i=e=>{if("number"!==typeof e)return"-";const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n<60)return`00:${o(n)}:${o(a)}`;const i=n%60,r=(n-i)/60;return r>23?"> 24h":`${o(r)}:${o(i)}:${o(a)}`},r=(e,{byte:t=!0,gb:a=!0,fix:n=2}={})=>{if("number"!==typeof e)return"-";if(e<1e3&&t)return e.toFixed(2)+" Byte";const o=e/1e3;if(isNaN(o))return t?"0 Byte":"0 KB";if(o<1e3)return o.toFixed(n)+" KB";const i=o/1e3;if(i<1e3||!a)return i.toFixed(n)+" MB";const r=i/1e3;return r.toFixed(n)+" GB"},s=e=>"number"!==typeof e?"0%":1===e?"100.00%":e>.9999?"99.99%":(100*e).toFixed(2)+"%",l=e=>{const t={icon:"insert_drive_file",tooltip:"unknown"};if(0===e.length)return t;if(e.length>1)return{icon:"folder",tooltip:"folder"};const a=e[0].match(/\.[^.]+?$/);if(!a)return t;const o=a[0].substring(1);return Object(n["b"])(o)?{icon:"audio_file",tooltip:"audio"}:Object(n["c"])(o)?{icon:"video_file",tooltip:"video"}:["ass","vtt","srt"].includes(o)?{icon:"subtitles",tooltip:"subtitle"}:["jpg","jpeg","png","bmp","gif","webp"].includes(o)?{icon:"image",tooltip:"image"}:["zip","rar","gzip","gz","tar"].includes(o)?{icon:"folder_zip",tooltip:"zip"}:["txt","text"].includes(o)?{icon:"description",tooltip:"text"}:t},c=()=>navigator.userAgent.includes("Windows NT"),d=/(\/private)?\/var\/mobile\/Containers\/Data\/Application\/[a-zA-Z0-9-]+\/Documents\//,u=e=>e.match(d)?e.replace(d,""):e,_=(e,t=[],a=!1)=>{const n=c()||a?"\\":"/",o=e.map((e=>e.split(n))),i={};for(const s of o){let e=i;for(const t of s)e[t]||(e[t]={}),e=e[t]}let r=i,l=null,d="";try{do{const e=Object.keys(r)[0];d=d+e+n,l=r,r=r[e]}while(1===Object.keys(r).length)}catch(m){return null}d=d.split(n).slice(0,-1).join(n);const _={[d]:l[Object.keys(l)[0]]},p=(e,a="")=>{const o=Object.keys(e)[0],i=a?a+n+o:o,r=e[o];if(r&&Object.keys(r).length>0)return{label:u(o),path:u(i),fullPath:i,children:Object.keys(r).map((e=>p({[e]:r[e]},i)))};const l=t.find((e=>e.path===i)),c=u(o),d=c.length>52?c.slice(0,4)+"..."+c.slice(-40):c;return{progress:l?s(l.progress):"-",done:1===l.progress,label:d,fullPath:i,path:i}};return p(_)},p=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),m=e=>[e.getFullYear(),e.getMonth()+1,e.getDate()].map((e=>o(e))).join("-"),h=(e,t,a=navigator.language)=>{if(!e)return"-";const n=new Date(e),o=new Date;return p(n,o)?n.toLocaleTimeString(a):(o.setDate(o.getDate()-1),p(n,o)?t?t("yesterday"):"yesterday":(o.setDate(o.getDate()-1),p(n,o)?t?t("before_yesterday",{empty:m(n)}):"before yesterday":m(n)))}},6432:function(e){e.exports=JSON.parse('{"lib_index":"Rumah","lib_edit":"Menerbitkan","lib_publish":"Menerbitkan","lib_explore":"Mengeksplorasi","lib_following":"Mengikuti","lib_favorite":"Favorit Lokal","lib_local_favorites":"Favorit Lokal","lib_channel":"Saluran","lib_submit":"Kirim","lib_from_network":"Menggunakan database terdesentralisasi dari jaringan","welcome_to_lib":"Selamat datang di ${displayName} Perpustakaan Media","register_or_login":"Daftar/Masuk","lib_recommend":"Menyarankan","lib_recommend_desc":"Selamat datang di ${displayName} Perpustakaan! Perpustakaan ini menggunakan database terdesentralisasi dari jaringan. Untuk mulai menggunakannya, Anda perlu mengikuti beberapa saluran.","follow_any_channel_to_continue":"Ikuti saluran apa pun untuk melanjutkan","follow_channels_and_continue":"Ikuti saluran {0} dan lanjutkan","show_more_for_me":"Tampilkan lebih banyak untuk saya","no_more_recommend":"Tidak ada lagi rekomendasi","key":"Kunci","create_key":"Buat kunci","save_key":"Simpan kunci","save_key_file":"Apakah Anda ingin menyimpan kunci Anda sebagai file?","import_key":"Kunci impor","import":"Impor","invalid_key":"Kunci tidak sesuai","back_to_top":"Kembali ke atas","search_for_channel":"Telusuri ID saluran","search_channel_no_result":"Tidak dapat menemukan saluran dengan ID {0}","please_input_channel_id":"Masukkan ID saluran","welcome_help_text":"Ini adalah perpustakaan media terdesentralisasi. Anda membutuhkan\\n untuk membuat akun untuk database ini. Kami akan\\n menghasilkan kunci pribadi untuk Anda secara otomatis.\\n Jika Anda sudah memiliki kunci, Anda juga dapat mengimpor\\n itu disini.","welcome_key_text":"Setelah Anda masuk, silakan klik tombol [SAVE KEY].\\n di pojok kanan bawah untuk menyimpan kunci pribadi Anda.\\n Jika Anda kehilangan kunci, Anda mungkin tidak dapat masuk lagi.","redirect_to_recommend":"Sepertinya Anda belum mengikuti saluran mana pun. Mengalihkan ke halaman [Jelajahi].","channel":"Saluran","follow":"Mengikuti","unfollow":"Berhenti mengikuti","following":"Mengikuti","share":"Membagikan","unfollow_confirm":"Apakah Anda yakin untuk berhenti mengikuti saluran ini? Semua postingan saluran ini di linimasa Anda akan dihapus.","follow_failed_hint":"Operasi masih tertunda di latar belakang. Jika operasi tidak diterapkan untuk waktu yang lama, harap mulai ulang aplikasi dan coba lagi.","block":"Memblokir","unblock":"Buka blokir","blocked":"Diblokir","block_channel":"Blokir saluran ini","block_channel_confirm":"Blokir saluran akan menghapusnya dari garis waktu Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","block_creator":"Blokir pembuat saluran ini","unblock_creator":"Bebaskan pembuat saluran ini","block_creator_confirm":"Pembuat blok akan menghapus semua saluran yang dibuat oleh pembuat ini dari linimasa Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","share_url_copied":"Bagikan URL disalin ke clipboard Anda","follow_time":"Ikuti waktu","update_time":"Perbarui waktu","search":"Mencari","type":"Jenis","added":"Ditambahkan","click_to_task":"Klik untuk pergi ke tugas","lib_already_added":"Anda telah menambahkan video ini","description":"Keterangan","poster":"Poster","channel_poster":"Poster saluran","preview":"Pratinjau","creator":"Pencipta","creator_detail":"Detail pencipta","loading_creator":"Memuat info kreator","wait_for_creator_loaded":"Harap tunggu info kreator dimuat.","follower":"Pengikut","followers":"Pengikut","follower_list":"Daftar pengikut","user":"Pengguna","channel_title":"Judul saluran","channel_id":"ID saluran","post_title":"Judul postingan","post_id":"ID pos","import_data_from_excel":"Impor data dari excel","set_excel_keys":"Atur kunci excel","excel_import_succeded":"Impor Excel berhasil","excel_import_success_msg":"{0} baris siap untuk ditambahkan, {1} tidak valid dan {2} item duplikat diabaikan","cannot_find_channel":"Tidak dapat menemukan saluran","cannot_find_posts":"Tidak dapat menemukan postingan","add_channel":"Tambahkan saluran","add_post":"Tambahkan postingan","edit_channel":"Edit saluran","channel_setting":"Pengaturan saluran","edit_post":"Sunting pos","edit_posts":"Mengedit posting","channel_detail":"Detail saluran","remove":"Menghapus","remove_channel":"Hapus saluran","remove_channel_confirm":"Yakin ingin menghapus postingan ini? Ini tidak dapat dipulihkan.","remove_post":"Hapus postingan","remove_post_confirm":"Yakin ingin menghapus saluran ini? Ini tidak dapat dipulihkan.","preview_mode":"Mode Pratinjau","preview_mode_desc":"Ini adalah pratinjau saluran Anda. Semua tarif film ditampilkan di sini.","edit_user_profile":"Edit profil pengguna","name":"Nama panggilan","avatar":"Avatar","no_following":"Tidak ada saluran berikut. Klik untuk pergi","no_recommend":"Tidak ada saluran yang direkomendasikan. Klik untuk pergi","first_recomment_msg":"Mungkin perlu beberapa saat jika ini adalah pertama kalinya aplikasi diluncurkan.","invalid_image":"Gambar tidak valid","image_not_reachable":"Url gambar ini tidak dapat dijangkau.","channel_not_found":"Saluran tidak ditemukan","cannot_get_channel_info":"Tidak bisa mendapatkan info saluran. Saluran ini mungkin dihapus oleh pembuatnya dan tidak tersedia lagi.","validate_error":"Validasi kesalahan","validate_user_name_no_space":"Nama pengguna tidak boleh mengandung spasi","validate_url_no_space":"URL tidak boleh mengandung spasi","validate_user_name_length":"Nama pengguna harus memiliki panjang antara {0} dan {1}","validate_user_desc_length":"Deskripsi pengguna tidak boleh lebih dari {0} karakter","validate_user_avatar_url":"Avatar pengguna harus url dengan kurang dari 2048 karakter","validate_channel_title_length":"Judul saluran harus memiliki panjang antara 1 dan 100","validate_channel_desc_length":"Deskripsi saluran harus memiliki panjang antara 10 dan 300","validate_channel_image_url":"Pratinjau saluran harus berupa url dengan kurang dari 2048 karakter","validate_post_title_length":"Judul posting harus memiliki panjang antara 1 dan 100","validate_post_desc_length":"Deskripsi postingan harus memiliki panjang antara 10 dan 300","validate_post_image_url":"Poster harus url dengan kurang dari 2048 karakter","validate_post_url":"URL ${displayName} tidak valid","validate_post_url_length":"${displayName} URL tidak boleh lebih dari 2048 karakter","film_rate":"Tingkat film","set_film_rate":"Tetapkan kecepatan film","select_a_rate_before_enter":"Anda harus memilih kecepatan film sebelum masuk ke perpustakaan media.","library_available_rate":"Tingkat film yang tersedia di perpustakaan","rate_g":"G – Audiens Umum","rate_g_desc":"Semua umur diterima. Tidak ada yang menyinggung perasaan orang tua karena dilihat oleh anak-anak.","rate_pg":"PG – Disarankan Bimbingan Orang Tua","rate_pg_desc":"Beberapa bahan mungkin tidak cocok untuk anak-anak. Orang tua dihimbau untuk memberikan “bimbingan orang tua”. Mungkin berisi beberapa materi yang mungkin tidak disukai orang tua untuk anak kecil mereka.","rate_pg_13":"PG-13 – Orang Tua Sangat Diwaspadai","rate_pg_13_desc":"Beberapa materi mungkin tidak pantas untuk anak di bawah 13 tahun. Orang tua diimbau untuk berhati-hati. Beberapa materi mungkin tidak pantas untuk pra-remaja.","rate_r":"R – Dibatasi","rate_r_desc":"Di bawah 17 tahun membutuhkan pendamping orang tua atau wali dewasa. Berisi beberapa materi dewasa. Orang tua didesak untuk mempelajari lebih lanjut tentang film tersebut sebelum membawa serta anak-anak mereka yang masih kecil.","rate_nc_17":"NC-17 – Khusus Dewasa","rate_nc_17_desc":"Tidak Ada yang Berusia 17 Tahun ke Bawah yang Diakui. Jelas dewasa. Anak-anak tidak diterima.","set_as_private":"Tetapkan sebagai pribadi","hide_in_explore":"Sembunyikan saluran ini di halaman jelajahi","hidden":"Tersembunyi","select_a_rate":"Silakan pilih tarif film","select_from_tasks":"Pilih dari tugas","import_from_magnet":"Impor dari magnet:?...","input_magnet_url":"Masukan magnet:? url","task_title":"Judul tugas","set_title":"Tetapkan judul","add_to_local_favorites":"Tambahkan ke favorit lokal","remove_from_local_favorites":"Hapus dari favorit lokal","removed_favorite":"Favorit dihapus","import_or_export_favorites":"Impor/Ekspor Favorit","export_local_favorites":"Ekspor favorit lokal sebagai cadangan","import_favorites_file":"Impor file favorit","not_a_favorite_file":"File ini bukan file cadangan favorit","connection_status":"Status hubungan","gun_server_list":"Node Cache","custom_nodes":"Node cache khusus","custom_nodes_hint":"Node cache khusus akan diterapkan setelah aplikasi diluncurkan kembali","wait_for_reboot":"Menunggu reboot...({seconds}s)","reboot_now":"Nyalakan ulang","reboot_later":"Mulai ulang nanti","peer_list":"Node Langsung","server":"URL simpul","peer":"Rekan","peer_id":"ID simpul","connection":"Koneksi","data_source":"Sumber data","sync":"Sinkronkan","syncing":"Menyinkronkan","sync_completed":"Sinkronisasi selesai","got_all_post":"Anda sudah mendapatkan semua posting","placeholder_channel_title":"Nama Saluran Anda","placeholder_channel_desc":"Deskripsi tentang saluran ini","placeholder_post_title":"Nama Film (Tahun)","placeholder_post_desc":"Deskripsi tentang film ini","private_channel":"Saluran pribadi","creator_blocked":"Kreator diblokir","go_to_library":"Pergi ke perpustakaan?","go_to_library_channel_msg":"Apakah Anda ingin pergi ke saluran perpustakaan {0}?","magnet_does_not_have_name":"Magnet ini:? url tidak memiliki nama, Anda perlu menambahkan judul posting terlebih dahulu.","no_available_post":"Tidak ada pos yang tersedia","following_channel_no_post":"Semua saluran Anda berikut tidak memiliki pos yang tersedia. Ini mungkin disebabkan oleh kesalahan jaringan. Jika Anda telah mengikuti beberapa saluran, postingan dapat dimuat nanti.","share_to_library":"Bagikan ke perpustakaan","quick_start":"Mulai cepat","quick_start_desc":"Mulailah membuat postingan dengan tugas atau file","select_file":"Pilih file...","select_folder":"Pilih folder...","post_options":"Opsi pos","channel_options":"Opsi saluran","create_new_channel":"Buat saluran baru","use_existed_channel":"Gunakan saluran yang ada","select_existed_channel":"Pilih saluran yang ada","uploaded_by":"{title} diunggah oleh {name}","created_by":"{title} dibuat oleh {name}","creating_new_channel":"Membuat saluran baru...","created_new_channel":"Saluran baru dibuat","creating_new_post":"Membuat postingan baru...","created_new_post":"Posting baru dibuat","create_new_post":"Buat postingan baru","quick_start_timeout":"{0} batas waktu habis. Ini mungkin disebabkan oleh kesalahan jaringan. Coba lagi nanti.","file_too_large":"Berkas terlalu besar","file_too_large_msg":"File ini lebih besar dari 4GB ({size}) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk melanjutkan?","resolving_folder_files":"Menyelesaikan file folder...","folder_too_large":"Folder terlalu besar","folder_too_large_msg":"File dalam folder ini lebih besar dari 4GB ({size} total) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk mengunggah?","creating_new_task":"Membuat tugas baru...","cannot_create_task":"Tidak dapat membuat tugas","cannot_create_task_msg":"Hal ini dapat disebabkan oleh beberapa kesalahan. Jika tugas dibuat dengan benar, Anda dapat memeriksa daftar tugas nanti.","cannot_get_task_name":"Tidak bisa mendapatkan nama tugas. Anda harus memasukkannya terlebih dahulu.","remove_old_task":"Hapus tugas lama","remove_old_task_desc":"Mode web hanya dapat membuat satu tugas sekaligus. Apakah Anda ingin menghapus tugas lama?","subtitle_list":"Daftar subtitle","optional":"opsional","with_subtitle":"Dengan subtitel {language}","maximumSubtitleNum_limit":"Jumlah subtitle telah mencapai maksimum","add_subtitle_url":"Tambahkan tautan unduhan subtitle","cannot_add_subtitle":"Gagal menambahkan subtitel","cannot_add_subtitle_msg":"Bahasa subtitle tidak dipilih atau tautan unduhan tidak valid.","support_subtitle_type":"Hanya subtitle dalam format srt dan vtt yang didukung.","recommend_opensubtitles":"Disarankan untuk menggunakan link atau id download subtitle di www.opensubtitles.org.","take_down":"Menurunkan","serious_violation":"Pelanggaran Berat","copyright_disputes":"Sengketa Hak Cipta","adults_only":"Hanya untuk orang dewasa","takedown_reason":"Alasan penghapusan","takedown_mode":"Modus penghapusan","admins":"Admin","takedown_user":"Hapus kreator ini","takedown_channel":"Hapus saluran ini","takedown_post":"Hapus postingan ini","select_takedown_reason":"Pilih alasan penghapusan","takedown_invalid_reason":"Alasan penghapusan tidak valid","takedown_invalid_user_id":"Id pengguna tidak valid. Id harus menyertakan 87 karakter","takedown_invalid_channel_id":"Id saluran tidak valid. ID harus menyertakan 20 karakter","takedown_invalid_post_id":"ID pos tidak valid. ID harus menyertakan 20 karakter","takedown_management":"Turunkan manajemen","users":"Pengguna","channels":"Saluran","posts":"Posting","you":"Anda","preset":"Prasetel","admin":"Admin","committee":"Komite","about_takedown_mode":"Tentang mode penghapusan:\\nPreset: Dikonfigurasi di repositori github. Semuanya akan dihapus dari perpustakaan.\\nAdmin: Siapa pun yang dipilih oleh admin akan dihapus.\\nKomite: Setidaknya setengah dari suara admin akan dihapus.","cannot_edit_preset":"Anda tidak dapat mengedit baris ini karena merupakan baris preset","cannot_edit_not_vote":"Anda tidak dapat mengedit baris ini karena Anda belum memilihnya","remove_vote":"Hapus suara Anda","post_preload_failed":"Gagal mempramuat pos ini. Tautan unduhan mungkin sudah kedaluwarsa, sehingga postingan ini tidak dapat langsung diputar.","about_cache_node":"Tentang simpul cache","edit_cache_node":"Edit simpul cache","create_cache_node":"Buat simpul cache","about_cache_node_desc":"${displayName} menggunakan server gun sebagai node cache. Anda dapat mengedit node khusus di pengaturan sebelumnya","learn_how_to_deploy_gun":"Pelajari cara menerapkan server senjata Anda sendiri","repeat_add":"Tugas telah ditambahkan, Tolong jangan tambahkan lagi","upload":"Mengunggah","download":"Unduh","delete":"Menghapus","delete_task":"Hapus tugas","delete_confirm_message":"Hapus tugas ini? Ini tidak dapat dibatalkan","also_delete_files":"Hapus juga file","default_delete_files":"Hapus default file yang diunduh setelah menghapus tugas","not_now":"Tidak sekarang","delete_autoupload_confirm":"Tugas ini berisi file yang Anda masukkan ke direktori unggah otomatis. Hapus tugas ini juga akan menghapus file.","delete_anyway":"Tetap hapus","upload_too_many_files":"Unggah terlalu banyak file","ask_if_unlimit_upload_amount":"Direktori upload otomatis berisi terlalu banyak file. Apakah Anda ingin menonaktifkan batasan jumlah unggahan? *Ini dapat menyebabkan masalah kinerja","disable_limitation":"Nonaktifkan batasan","not_length":"Operasi multi file tidak didukung saat ini, Mohon kerjasamanya","download_torrent":"Unduh berkas","upload_torrent":"Unggah data","files":"File","file":"Mengajukan","folder":"Map","start_all":"Mulai semua","pause_all":"Jeda semua","remove_all":"Hapus semua","upload_all":"Unggah semua","clear_history":"Hapus riwayat","pause_all_finish_payments":"Ini akan menyelesaikan semua pembayaran.","accelerating":"Mempercepat","link_task":"Tugas tautan","torrent_task":"Tugas berkas","ok":"OKE","cancel":"Membatalkan","download_directory_position":"Unduh posisi direktori","torrent_file":"berkas tugas","magnetic_link_incorrect":"Format tautan salah","delete_fail":"Hapus gagal","pause":"Berhenti sebentar","paused":"Dijeda","stop_torrent":"Berhenti","seed":"Benih","resume":"Melanjutkan","downloading":"Mengunduh","downloaded":"Diunduh","uploading":"Mengunggah","auto_uploading":"Mengunggah otomatis","uploaded":"Diunggah","pending":"Menunggu tugas lainnya","verifying":"Memverifikasi","waiting_for_verify":"Menunggu verifikasi","seeding":"Penyemaian","completed":"Lengkap","status":"Status","task_name":"Nama tugas","size":"Ukuran","progress":"Kemajuan","sort":"Menyortir","ascending":"Naik","descending":"Menurun","file_loading":"Memuat berkas...","loading":"Memuat","unknown_status":"Tidak dikenal","play_while_downloading":"Bermain...","upload_or_play":"Unggah / Putar","play":"Bermain","ask_if_upload_file":"Unggah data?","ask_if_upload_or_play":"Unggah atau putar file?","torrent_error":"Kesalahan saat menambahkan tugas:","no_peers":"Coba lagi lebih dari {0} kali dan tidak ada peer yang tersedia","torrent_exists":"Tugas sudah ada.","show_origin_torrent":"Dapatkan file atau url tugas asli","show_directory":"Buka direktori torrent ini","task_num":"Tugas","total_upload_speed":"Kecepatan mengunggah","total_download_speed":"Kecepatan unduh","path_missing":"Kesalahan: tidak dapat menemukan jalur torrent","origin_not_found":"Tidak dapat menemukan info tugas asal.","text_copied":"Url magnum disalin ke clipboard Anda","copy_magnet_uri":"Salin magnet:? URI","copy_download_uri":"Salin URI unduhan","copy_share_uri":"Salin bagikan URI","uri_copied":"URI berhasil disalin ke clipboard Anda","uri_copy_failed":"Gagal menyalin uri","more":"Lagi...","toggle_list_mode":"Beralih mode daftar","comment":"komentar","operations":"Operasi","open_directory":"Buka direktori","no_downloading_task":"Tidak ada tugas mengunduh","remove_all_downloading_tasks":"Hapus semua tugas pengunduhan?","remove_all_upload_tasks":"Hapus semua tugas upload?","remove_autoupload_files":"Hapus file unggahan otomatis","remove_all_history":"Hapus semua histori?","remaining":"Tersisa","created_time":"Waktu yang diciptakan","used_time":"Waktu yang digunakan","completed_time":"Selesai waktu","yesterday":"Kemarin","before_yesterday":"{empty}","earlier":"Lebih awal","miss_file":"Beberapa file hilang","delete_miss_file_task":"Ada file fome yang hilang di {0}.","common_peer":"Rekan biasa","ab_peer":"${displayName} sesama","ab_peer_verified":"Terverifikasi ${displayName} peer","ab_peer_available":"${displayName} peer tersedia","alphabiz_accelerating":"${displayName} percepatan","income":"Penghasilan","income_info":"Pendapatan(hari ini/total)","total_income_info":"Penghasilan: {0}(hari ini) / {1}(total)","login_to_see_income":"Login untuk melihat statistik pendapatan","credit_cost":"Biaya kredit","downloaded_by_payment":"Diunduh oleh Pembayaran","file_not_found":"Tidak dapat menemukan file ini di lokal","no_task":"Tidak bertanya","no_matched_task":"Tidak ada tugas yang cocok","space_not_enough":"Ruang disk tidak cukup","need_more_space":"Perlu {0} lebih banyak ruang tetapi disk saat ini memiliki {1} gratis ({2} dicadangkan). Tugas dijeda. Pramuat perpustakaan dinonaktifkan. Anda dapat mengaktifkannya kembali di [Pengaturan - Lanjutan].","seeders":"Seeder","last_update":"Pembaharuan Terakhir","connecting":"Menghubungkan","connected":"Terhubung","request_timed_out":"Waktu permintaan habis","connection_failed":"Koneksi gagal","invalid_download_url":"URL unduhan tidak valid","download_link":"tautan unduhan","empty_files":"Tidak ada file dalam direktori","duplicate_task":"Tugas duplikat","duplicate_tracker":"Pelacak duplikat","this_task_not_ready":"Tugas ini belum siap. Jeda tugas ini akan langsung menghapusnya.","some_task_not_ready":"Beberapa tugas belum siap. Jeda tugas ini akan langsung menghapusnya.","failed_to_delete_files":"Gagal menghapus file","failed_to_delete_files_desc":"Gagal menghapus beberapa file tugas. Anda mungkin perlu menghapusnya secara manual","unknown_error":"Kesalahan tidak diketahui: {0}","more_files_are_not_shown":"({0} lebih banyak file tidak ditampilkan karena alasan kinerja)","no_available_file":"Tidak ada berkas yang tersedia. Harap tunggu tugas siap.","service_worker_error":"Tidak dapat memuat ServiceWorker untuk diputar. Browser Anda mungkin tidak mendukung fitur ini, atau ServiceWorker tidak diaktifkan. Anda mungkin perlu memuat ulang halaman ini dan mencoba lagi.","add_task_first":"Anda perlu menambahkan tugas terlebih dahulu.","player_task_time":"Pemain membutuhkan waktu terlalu lama untuk bersiap bermain. Mungkin ada yang salah dengan tugas itu.","web_mode_hint":"Mode web ${displayName} hanya mendukung rekan WebRTC. Untuk pengalaman terbaik, silakan unduh ${displayName} Aplikasi Desktop.","web_mode_task_hint":"Klik tombol di bawah untuk menambahkan tugas. Anda hanya dapat menambahkan satu tugas pada satu waktu.","save_to_local":"Simpan ke lokal","save_as_zip":"Simpan sebagai ZIP","creating_save_file":"Membuat file penyimpanan...","upload_as_one_directory":"Unggah sebagai satu direktori","upload_as_single_files":"Unggah sebagai file tunggal","web_mode_upload_single":"Anda hanya dapat mengunggah satu file dalam mode web","download_success":"Unduh dengan sukses","download_fail":"Unduhan gagal","wait_for_downloaded_to_share":"Harap tunggu tugas diunduh sebelum berbagi.","download_with_cellular":"Unduh tugas menggunakan seluler","download_with_cellular_desc":"Anda menggunakan jaringan seluler. Mengunduh tugas dengan seluler mungkin memerlukan biaya tambahan dari operator Anda.","download_with_cellular_confirm":"Masih mengunduh dengan seluler","language":"Bahasa","appearance":"Penampilan","darkModeSystem":"Sistem","darkModeLight":"Lampu","darkModeDark":"Gelap","basic_setting":"Dasar","hideMenu":"Sembunyikan Menu Aplikasi (Hanya Windows & Linux)","autoHide":"Sembunyikan Jendela Otomatis","autoStart":"Buka saat masuk","restore":"Pertahankan ukuran dan posisi jendela saat keluar","autoStartUnfinished":"Secara otomatis melanjutkan semua tugas yang belum selesai","default_download_path":"Jalur Default","download_directory":"Unduh Direktori","upload_directory":"Unggah Direktori","enable_auto_upload":"Aktifkan unggahan otomatis","unlimit_upload_amount":"Batasi jumlah unggahan","unlimit_upload_warning":"Izinkan mengunggah file dalam jumlah besar. Hal ini dapat menyebabkan masalah kinerja","start":"Rintisan","transport_setting":"Penularan","upload_limit":"batas unggahan","download_limit":"batas unduhan","payed_user_share_rate":"Tingkat berbagi pengguna berbayar","unlimited":"Tak terbatas","limit_input_error":"Jumlah batas harus positif","BT_setting":"Pengaturan Tugas","saveLinkSeed":"Simpan tautan sebagai file tugas","autoDownload":"Unduh tautan dan konten secara otomatis","continuousSeeding":"Terus penyemaian sampai menghentikannya secara manual","seedSharingRate":"Rasio Benih","seedTime":"Waktu Benih (menit)","task_manage":"Manajemen tugas","maximumDownloadNum":"Tugas aktif maksimum","maximumConnectionsNum":"Koneksi maksimum per server","range_error":"Kisaran harus antara {0} dan {1}","random":"acak","breakpointContinuation":"Melanjutkan","automaticSkip":"Tampilkan pengunduhan secara otomatis setelah menambahkan tugas","afterNotification":"Pemberitahuan setelah pengunduhan selesai","deleteConfirm":"Tidak diperlukan konfirmasi sebelum menghapus tugas","submit":"Simpan & Terapkan","discard":"Membuang","reset":"Mengatur ulang","reset_all_settings":"Atur ulang semua pengaturan?","preferences_resetted":"Preferensi disetel ulang","traditional_chinese":"Cina tradisional","japanese":"Jepang","english":"Bahasa inggris","chinese":"Cina disederhanakan","advancedSettings":"Canggih","autoUpdate":"Pembaruan Otomatis","autoCheckUpdate":"Periksa pembaruan secara otomatis","proxy":"Proksi","useProxyService":"Aktifkan Proksi","trackerService":"Server Pelacak","recommendUse":"Direkomendasikan","autoUpdateTrackerServiceList":"Perbarui daftar pelacak setiap hari secara otomatis","manualUpdateTracker":"Pembaruan manual","manualUpdateSuccess":"Berhasil memperbarui server pelacak","manualUpdateFail":"Gagal memperbarui dari:","listenPort":"Mendengarkan Pelabuhan","BTlistenPort":"Pelabuhan Transmisi Data","DHTlistenPort":"Port Hash Terdistribusi","protocols":"Protokol yang Kompatibel","setDefaultClientForFollowingProtocols":"Tetapkan sebagai klien default untuk protokol berikut","magnetUrl":"Magnet","video_file":"Berkas video","audio_file":"berkas audio","security":"Keamanan","impersonateUserAgent":"Mock User-Agen","RPCauthorizationkey":"Rahasia RPC","viewDocument":"Lihat Manual Rahasia RPC","developer":"Pengembang","applicationLogPath":"Jalur log aplikasi","downloadSessionPath":"Unduh jalur sesi","resetDownloadSessionRecord":"Setel ulang sesi unduhan","restoreInitialSettings":"Atur Ulang Pabrik","preferences_set_successfully":"Simpan preferensi berhasil!","preferences_set_fail":"Simpan preferensi gagal!","change_not_save":"Perubahan tidak disimpan","discard_all_changes":"Buang semua perubahan dan tinggalkan?","stay_in_page":"Tetap di halaman","disk_usage":"Penggunaan disk","pause_if_less_space":"Jeda dan beri tahu jika ruang kurang dari (MB)","default_video_player":"Pemutar video bawaan","video_cache_time":"Streaming tembolok putar","minutes":"menit","system_default":"Default Sistem","media_player":"Pemutar Media","library_film_rate":"Tingkat film yang tersedia","library_show_explore":"Tampilkan halaman [Jelajahi].","library_setting":"Pengaturan perpustakaan","library_sync_setting":"Pengaturan sinkronisasi perpustakaan","keychain_sync_status":"Status sinkronisasi rantai kunci","sync_with_aws":"Sinkronkan Rantai Kunci dengan Layanan Web Amazon","backup_to_local":"Cadangkan ke file lokal","enable_sync_with_aws":"Aktifkan sinkronisasi dengan AWS","disable_sync_with_aws":"Nonaktifkan sinkronisasi dengan AWS","disable_sync_with_aws_desc":"Ini akan menghapus kunci yang disimpan di server. Harap pastikan Anda telah mengekspor kunci Anda.","input_independent_password":"Masukkan kata sandi independen","change_independent_password":"Ubah kata sandi independen","password_error":"Password error","password_invalid":"Kata sandi tidak valid","key_existed":"Kunci ada","key_not_found":"Kunci tidak ditemukan","library_recommend":"Perpustakaan merekomendasikan","show_all_channels":"Tampilkan semua saluran di halaman rekomendasi perpustakaan","not_logged_in":"Belum masuk","login_to_continue":"Masuk untuk melanjutkan","mnemonic_code":"Kode mnemonik","wordlist":"Daftar kata","restore_code":"Pulihkan dari kode","generate_code":"Hasilkan kode","export_mnemonic_code":"Ekspor kode mnemonik","import_mnemonic_code":"Impor kode mnemonik","print":"Mencetak","save_as_txt":"Simpan sebagai txt","save_as_pdf":"Simpan sebagai pdf","from_file":"Dari file","not_valid_mnemonic_code":"Ini bukan kode mnemonik yang valid","cannot_parse_code_as_key":"Tidak dapat mengurai kode mnemonik ini sebagai kunci perpustakaan","import_key_hint":"Apakah Anda yakin akan mengimpor kunci ini? Ini akan memulihkan kunci lama Anda di perpustakaan.","import_key_confirm":"Ya, impor itu.","library_preload":"Pramuat tugas dari perpustakaan","show_preload":"Tampilkan tugas pramuat","set_download":"Tetapkan direktori unduhan","set_download_desc":"Untuk versi macOS App Store, direktori unduhan default ada di kotak pasir Aplikasi, dan akan dihapus setelah aplikasi dihapus. Jika Anda ingin menyimpan file unduhan, Anda harus memilih direktori unduhan yang berbeda secara manual.","home":"Rumah","home_caption":"Unduh/Unggah dan File Media","library":"Perpustakaan","library_caption":"Jelajahi sumber daya media","player":"Pemain","player_caption":"Pemutar Media","credits":"Kredit","credits_caption":"Periksa Saldo Akun","account":"Akun","account_caption":"Masuk/Daftar/Manajemen","settings":"Pengaturan","settings_caption":"Pengaturan untuk Aplikasi, Pemain, Akun","development":"Perkembangan","development_caption":"Mode Pengembang untuk Penggunaan Internal","basic":"Dasar","basic_caption":"Pengaturan dasar","advanced":"Canggih","advanced_caption":"Pengaturan lanjutan","blockchain":"Dompet","blockchain_caption":"${displayName} Dompet Terdesentralisasi","internal_notice":"Pemberitahuan Rilis Internal","release_notes":"Catatan rilis","terms_and_conditions":"syarat dan Ketentuan","license_and_listen_notices":"Lisensi dan Mendengarkan Pemberitahuan Sumber Terbuka","close":"Menutup","success":"Kesuksesan","fail":"Gagal","account_email_invalid_address":"alamat email salah","account_email_invalid_domain":"Domain email tidak valid","account_email_unknown_status":"Status pengiriman email tidak diketahui","account_email_unavailable_address":"Alamat email tidak tersedia","account_email_suppressed_address":"Alamat email yang ditekan","account_loading":"Memuat...","account_is_required":"Dibutuhkan","account_sign_in_your_account":"Masuk","account_username":"Nama belakang","account_username_email_phone":"Nomor telepon atau email","account_password":"Kata sandi","account_new_password":"Kata sandi baru","account_re_enter_password":"Masukkan Kembali password","account_password_not_equal":"Dua kata sandi tidak sama","account_new_password_same":"Passwordnya sama dengan password aslinya","account_forgot_your_password":"lupa kata sandi Anda?","account_reset_password":"Atur ulang kata sandi","account_sign_in":"Masuk","account_signed_in":"Masuk","account_sign_up":"Mendaftar","account_find_your_account":"Temukan akun Anda","account_enter_your_username":"Masukkan nomor telepon atau email Anda","account_search":"Mencari","account_email_sent_tip":"Email dengan kode verifikasi telah dikirim ke email Anda:","account_phone_sent_tip":"SMS dengan kode verifikasi telah dikirim ke ponsel Anda:","account_email_phone_sent_tip":"Email dan SMS dengan kode verifikasi telah dikirimkan ke email dan ponsel Anda masing-masing:","account_software_token_tip":"MFA diaktifkan untuk akun Anda. Untuk menyelesaikan proses masuk, aktifkan atau lihat perangkat Anda dan ketik TOTP","account_reset_your_password":"Mereset password Anda","account_verification_code":"Kode verifikasi","account_resend_code":"Kirim ulang kode","account_code_has_been_resent":"Kode verifikasi telah dikirim ulang","account_password_has_been_reset":"Kata sandi telah diatur ulang","account_submit":"Kirim","account_sign_up_your_account":"Daftarkan akun Anda","account_fill_required_fields":"Isi bidang yang wajib diisi di bawah ini.","account_fill_optional_fields":"Isi bidang opsional di bawah ini.","account_email":"Surel","account_invitation":"Undangan","account_invitation_code":"Kode undangan","account_i_accept":"saya menerima","account_license_terms":"lisensi dan persyaratan","account_next":"Berikutnya","account_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu.","account_verify_fill_optional_fields":"Verifikasi dan isi kolom opsional.","account_nickname":"Nama panggilan","account_gender":"Jenis kelamin","account_male":"Pria","account_female":"Perempuan","account_not_say":"Tidak mengatakan","account_birthday":"Hari ulang tahun","account_phone_number":"Nomor telepon","account_locale":"Lokal","account_tip_verified":"Terverifikasi, Masuk...","account_verified":"diverifikasi","account_unverified":"tidak diverifikasi","account_signed_up":"Mendaftar","account_verify_your_identity":"Verifikasi identitas Anda","account_finish":"Menyelesaikan","account_signed_out":"Keluar","account_change_password":"Ganti kata sandi","account_change_email":"Ganti e-mail","account_change_phone_number":"Ganti nomor telepon","account_sign_out":"Keluar","account_current_password":"Kata sandi saat ini","account_re_enter_new_password":"Masukkan kembali kata sandi baru","account_personal_information":"Informasi","account_edit":"sunting","account_reset":"mengatur ulang","account_greeting":"Halo,","account_cancel":"Membatalkan","account_change":"mengubah","account_not_set":"tidak diatur","account_setting":"pengaturan","account_copy_code":"salin kodenya","account_account_setting":"Akun","account_task_page":"Tugas kredit","account_setting_caption":"Ubah Kata Sandi / Edit Informasi","account_security":"Keamanan","account_want_to_join":"Ingin bergabung?","account_sign_in_now":"Masuk","account_changed":"Berubah","account_clipboard_with_invitation_code":"Kode undangan disalin","account_clipboard_with_code":"Kode disalin","account_invitation_code_dialog_tip":"Anda akan mengirimi teman Anda email atau pesan teks dengan kode undangan:","account_available":"tersedia","account_invited":"diundang","account_used":"digunakan","account_invitation_code_sent":"Kode undangan telah dikirim","account_invitation_channel_required":"Isi minimal satu saluran undangan","account_no_verification_code":"Tidak dapat menerima kode verifikasi?","account_no_phone_number":"Tidak ada nomor telepon?","account_sign_up_by_email":"Daftar melalui email","account_no_email":"Tidak ada email?","account_sign_up_by_phone_number":"Daftar dengan nomor telepon","account_no_totp":"Tidak ada TOTP?","account_tip_no_totp":"Jika tidak ada TOTP, silahkan setup TOTP terlebih dahulu","account_setup_totp":"Siapkan TOTP","account_contact_information":"Kontak informasi","account_delete_account":"Hapus akun","account_deleted":"Dihapus","account_can_not_mfa":"MFA bermasalah?","account_set_mfa_type":"Konfigurasi MFA","account_disable_mfa":"Nonaktifkan MFA","account_disabled_mfa":"MFA yang dinonaktifkan","account_sms_mfa":"SMS MFA","account_totp_mfa":"MFA TOTP","account_totp":"TOTP","account_not_recommend":"Tidak merekomendasikan","account_oauth_sign_in_with":"Masuk dengan {provider}","account_sign_in_failed":"Gagal masuk","account_tip_oath_sign_up":"Email terkait dengan akun {provider} saat ini: {email} belum membuat akun","account_tip_confirm_delete_account":"Masukkan kata sandi akun saat ini untuk mengonfirmasi bahwa Anda ingin menghapus akun saat ini.(Akun yang dihapus tidak dapat dipulihkan)","account_tip_config_mfa":"Anda dapat memilih untuk menggunakan SMS atau sandi satu kali berbasis waktu (TOTP) sebagai autentikasi sekunder","account_error_can_not_enable_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan MFA","account_tip_can_not_enable_sms_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan SMS MFA","account_tip_can_not_enable_totp_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan TOTP MFA","account_tip_setup_totp":"Gunakan aplikasi seperti Authenticator untuk memindai kode QR di bawah atau menyalin kode secara manual untuk menambahkan token keamanan","account_tip_verify_totp":"Verifikasi TOTP Anda","account_link_your_social_account":"Ikat akun sosial Anda","account_unlink_your_social_account":"Lepaskan akun sosial","account_tip_confirm_link":"Yakin ingin menautkan akun saat ini ke akun {provider} Anda?","account_tip_confirm_unlink":"Apakah Anda yakin akan membatalkan akun terikat {provider} Anda?","account_tip_linking":"mengikat...","account_tip_unlinking":"Tidak mengikat...","account_linked":"Melompat","account_unlinked":"Tidak terikat","account_error_can_not_link_to_the_linked_account":"Akun sosial saat ini terikat ke akun lain","account_error_can_not_link_to_the_mismatched_email":"Akun saat ini dan alamat email akun sosial tidak konsisten","account_error_can_not_link_before_email_verified":"Akun sosial tidak dapat ditautkan karena akun saat ini tidak terikat ke email yang diverifikasi","account_tip_confirm_verify_email_phone":"Apakah akan mengirim kode verifikasi ke email dan nomor telepon akun saat ini untuk memverifikasi identitas Anda?","account_tip_confirm_verify_phone":"Apakah akan mengirim kode verifikasi ke nomor telepon saat ini untuk memverifikasi identitas Anda?","account_error_1_message_60_seconds":"Hanya satu SMS atau email yang dapat dikirim setiap 60 detik, tunggu lagi {delta} detik","account_error_10_messages_per_day":"Setiap ponsel atau email hanya dapat mengirim 10 pesan dalam waktu 24 jam","account_error_network":"Ada masalah dengan jaringan, coba lagi nanti","Network Error":"Ada masalah dengan jaringan, coba lagi nanti","account_error_user_not_exist":"pengguna tidak ada","account_error_incorrect_username_or_password":"Username atau kata sandi salah","account_error_incorrect_original_password":"Kata sandi asli salah","account_error_incorrect_password":"kata kunci Salah","account_error_username_not_found":"Nama pengguna tidak ditemukan","account_error_can_not_reset_for_no_verified":"Tidak dapat mengatur ulang kata sandi untuk akun yang belum diverifikasi","account_error_invalid_verification_code":"Kode verifikasi salah, harap coba lagi","account_error_expired_verification_code":"Kode verifikasi kedaluwarsa, harap coba lagi","account_error_password_not_long_enough":"Kata sandi tidak cukup panjang","account_error_attempt_limit_exceeded":"Batas percobaan terlampaui, silakan coba setelah beberapa saat.","account_error_password_attempts_exceeded":"Upaya sandi terlampaui.","account_error_invalid_phone_number_format":"Format nomor telepon tidak valid","account_error_no_cell_phone_prefix":"Silakan pilih awalan untuk nomor telepon","account_error_username_already_exists":"nama pengguna sudah ada","account_error_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu","account_error_inactive_code":"Kode undangan bukan kode yang diaktifkan","account_error_non_existent_code":"Kode undangan tidak ada","account_error_unexpected":"Kesalahan tak terduga","account_error_can_not_change_email_before_phone_bound":"Email tidak dapat diubah sebelum nomor telepon terikat","account_error_can_not_change_email_before_unbound_social_account":"Email tidak dapat diubah sebelum melepaskan ikatan akun sosial","account_error_can_not_change_phone_before_email_bound":"Nomor telepon tidak dapat diubah sebelum email diikat","account_error_can_not_change_email_phone_with_mfa_enabled":"Tidak dapat mengubah email atau nomor ponsel sebelum menonaktifkan MFA","account_error_not_supported_yet":"Tidak didukung saat ini","account_error_same_email":"Alamat email baru tidak boleh sama dengan alamat email asli","account_error_same_phone":"Nomor telepon baru tidak boleh sama dengan nomor telepon asli","account_error_email_not_exists":"Alamat email tidak ada","account_error_email_already_exists":"Akun dengan email yang diberikan sudah ada.","account_error_phone_already_exists":"Akun dengan nomor telepon yang diberikan sudah ada.","account_error_mfa_token_mismatch":"Ketidakcocokan Kode Token Perangkat Lunak","account_error_recaptcha_not_loaded":"Ada masalah dengan jaringan. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_recaptcha_validation_failed":"Validasi ReCAPTCHA gagal. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_sign_in_in_progress":"Upaya masuk tertunda sedang berlangsung","account_field_range":"Batasi input {0}-{1} karakter","account_field_only_alphanumeric":"Hanya mendukung alfanumerik","account_field_only_alphanumeric_and_symbol":"Hanya mendukung alfanumerik dan simbol","account_field_only_chinese_alphanumeric_space_underline":"Hanya mendukung alfanumerik, spasi, garis bawah","account_field_prefix_without_number_space":"Karakter pertama tidak boleh angka atau spasi","account_field_suffix_without_space":"Tidak boleh diakhiri dengan spasi","account_field_without_repeat_space":"Tidak dapat menggunakan beberapa spasi dalam satu baris","account_field_can_not_only_alphanumeric":"Anda tidak bisa hanya menggunakan huruf atau angka","account_field_must_have_number_characters":"Harus memiliki karakter angka","account_field_verification_code":"Kode verifikasi harus enam digit","account_field_invitation_code":"Kode undangan harus alfanumerik","account_field_phone_number":"Format nomor telepon tidak valid","account_invalid_email_format":"format email salah","account_sign_out_confirm":"Apakah Anda yakin untuk keluar? Ini akan menghentikan semua tugas.","account_sign_out_anyway":"Tetap keluar","account_signing_out":"Keluar...","account_request_save_settings":"Setelan tidak disimpan. Anda perlu menyimpan perubahan sebelum keluar.","pay":"Membayar","pay_with_credit":"Bayar untuk mempercepat unduhan. Membutuhkan sekitar {0} kredit","pay_with_credit_payed":"Mempercepat. Masih membutuhkan sekitar {0} kredit","create_payment":"Buat Pembayaran","pay_target":"Target","pay_for_torrent":"Bayar {0}","your_subid":"SubId Anda","your_credits":"kredit Anda","pay_point_for_data":"Bayar {0} poin untuk {1} data","auto_renew":"Aktifkan perpanjangan otomatis","transaction_details":"Detil transaksi","transaction_id":"Pengenal","transaction_payer":"Pembayar","transaction_payee":"Penerima pembayaran","transaction_category":"Kategori","transaction_changed_amount":"Jumlah yang Diubah","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Waktu penciptaan","receipt_code":"Kode Penerimaan","transfer_amount":"Jumlah transfer","code_the_receipt_code":"Salin kode tanda terima di bawah ini ke pembayar","fill_the_receipt_code":"Transfer dengan mengisi kode pembayaran yang diberikan oleh penerima pembayaran","expense":"Pengeluaran","copied":"Disalin","transfer":"Transfer","receive":"Menerima","copy":"Menyalin","withdraw_fund":"Tarik Dana","category_paydata_payer":"Biaya data","category_paydata_payee":"Pendapatan data","category_transfer":"Transfer","category_bonus":"Bonus","category_recharge":"Isi ulang","status_pending":"tertunda","status_completed":"lengkap","status_finish":"menyelesaikan","status_failed":"gagal","tip_invalid_receiver":"Kode penerima tidak valid","tip_invalid_amount":"Jumlah kredit harus mengambang dalam kisaran 0-1000 (Presisi minimum adalah 0,001)","credit_get_more":"Dapatkan lebih banyak kredit","credit_no_data":"Tidak ada data yang tersedia","credit_loading":"Memuat...","credit_not_enough_amount":"Kredit tidak cukup","credit_amount_not_enough":"Kredit tidak cukup","credit_payee_not_exist":"Penerima pembayaran tidak ada","credit_invalid_amount":"Jumlah kredit tidak valid","credit_can_not_transfer_to_yourself":"Tidak dapat mentransfer ke diri sendiri","credit_latest":"Terbaru","credit_error_network":"Ada masalah dengan jaringan, coba lagi nanti","add_subtitles":"Tambahkan Subtitle","open_file":"Membuka file...","advanced_options":"Opsi lanjutan","title":"Judul","location":"lokasi","subtitle_file":"file subtitle","unsupported_subtitle_type":"Jenis file {0} bukan jenis teks film yang didukung","not_default_player":"Pemutar video default tidak disetel","this_is_an_audio_file":"Ini adalah file audio","the_added_subtitle_already_exists":"Subtitel yang ditambahkan sudah ada","stop_stream_player":"Media streaming dihentikan karena tugas dijeda atau dihapus","stop_player":"Pemutar dihentikan karena file telah dihapus","playing_timeout_hint":"Waktu tunggu habis. Silakan periksa tugas","autoplay_hint":"Autoplay mungkin diblokir oleh browser Anda. Jika pemain tidak bermain, coba klik layar untuk melanjutkan","remove_playing_confirm":"{0} masih diputar, hapus akan menghentikan pemutar. Apakah Anda yakin untuk menghapusnya?","unsupported_in_browser":"Belum didukung dalam mode browser","client":"Klien","warning":"Peringatan","enable":"Memungkinkan","disable":"Cacat","auto":"Mobil","encrypt_connection":"Mengenkripsi koneksi","encrypted_connection":"Koneksi terenkripsi","non_encrypted_connection":"Koneksi tidak terenkripsi","connected_wires_not_disconnect":"Kabel yang terhubung tidak akan terputus","audio":"audio","video":"video","image":"gambar","subtitle":"subtitle","zip":"ritsleting","text":"teks","unknown":"tidak dikenal","add":"Menambahkan","undo":"Membuka","backup":"Cadangan","not_default_app":"${displayName} bukan aplikasi default Anda untuk torrent dan media, apakah Anda ingin menyetelnya sebagai default?","dont_show_again":"Jangan tampilkan lagi","go_to_settings":"Pergi ke pengaturan","about_alphabiz":"Tentang ${displayName}","last_check_at":"Cek terakhir di","update_channel":"Perbarui saluran","check_for_update":"Memeriksa pembaruan","checking_for_update":"Memeriksa pembaruan...","no_update_available":"Tidak ada pembaruan yang tersedia","update_available":"Pembaruan tersedia","update_now":"Memperbarui sekarang","update_later":"Perbarui nanti","click_to_update":"Klik tombol PERBARUI SEKARANG untuk mengunduh dan memperbarui","update_failed":"Pembaharuan gagal","update_failed_message":"Terjadi kesalahan saat memperbarui:","check_shasum_failed":"Gagal memeriksa integritas penginstal","downloading_update":"Mengunduh pembaruan...","ready_to_update":"Siap memperbarui","restart_to_update":"Pembaruan diunduh. ${displayName} akan keluar untuk memperbarui beberapa saat.","already_latest":"Versi saat ini({0}) sudah terbaru","update_timeout":"Perbarui batas waktu","no_available_release":"Tidak ada rilis yang tersedia","no_available_installer":"Tidak ada pemasang yang tersedia","feedback":"Masukan","select_a_type":"Pilih jenis","category":"Kategori","select_a_category":"Pilih Kategori","require_title":"Judul diperlukan","describe_your_problem":"Jelaskan masalah Anda","report_a_bug":"Laporkan bug","request_a_new_feature":"Minta fitur baru","download_or_upload":"Unduh/Unggah","others":"Yang lain","submit_with_system_info":"Kirim dengan info sistem","submit_feedback":"Berikan umpan balik","tweet_us":"Tweet kami","tweet_too_long":"Tweet terlalu panjang","delete_characters":"Hapus setidaknya {0} karakter","rest_characters":"Anda dapat memasukkan {0} lebih banyak karakter","update_alphabiz":"Perbarui ${displayName}","current_version":"Versi sekarang","cancel_update":"Batalkan pembaruan","slow_download_speed":"Unduh terlalu lambat","slow_download_speed_caption":"Pengunduhan penginstal terlalu lambat sekarang. Periksa status jaringan","update_canceled":"Pembaruan dibatalkan","current_version_release_time":"Waktu rilis versi saat ini","expired_app":"${displayName} Kedaluwarsa","version_out_of_date":"Versi kedaluwarsa","have_to_update":"Versi ${displayName} sudah usang. Beberapa protokol atau API tidak digunakan lagi. Anda harus memperbarui ${displayName} sebelum melanjutkan.","exit_alphabiz":"Keluar ${displayName}","exit_and_update":"Keluar dan terapkan pembaruan","new_version_hint":"Versi baru tersedia","no_new_version":"Tidak ada versi baru yang tersedia","current_is_latest":"Versi saat ini sudah terbaru","click_to_check_update":"Klik tombol [PERIKSA PEMBARUAN] untuk memeriksa pembaruan","download_latest_version_from_website":"Silakan kunjungi situs web resmi untuk mengunduh versi terbaru","to_the_website":"Ke situs web","network_diagnotic":"Diagnostik Jaringan","diagnotic":"Diagnostik","click_to_check":"Klik untuk memeriksa","click_to_check_again":"Klik untuk memeriksa lagi","checking":"Memeriksa","online":"On line","offline":"Luring","dns_look_up":"pencarian DNS","error":"Kesalahan","aws_service":"Layanan AWS","network_pings":"Jaringan Ping","not_found":"Tidak ditemukan","packet_loss":"Kehilangan paket","official_site":"Situs resmi","download_test":"Unduh Tes","test_task":"Uji Tugas {0}","download_failed":"Unduhan gagal","second_spend":"{0} pembelanjaan","open_default_player_failed":"Gagal membuka pemutar default","copied_to_clipboard":"Disalin ke papan klip","go_to":"Pergi ke","region_not_available":"Wilayah tidak tersedia","region_not_available_message":"Maaf! Wilayah Anda tidak tersedia untuk menggunakan aplikasi ini. Aplikasi ini akan berhenti setelah {0} detik","confirm":"Mengonfirmasi","no_available_result":"Tidak ada hasil yang tersedia","invalid_password_format":"Format kata sandi tidak valid","invalid_password_format_same":"Passwordnya sama dengan password aslinya","error_password":"Password error","keychain_setting":"Gantungan kunci","setting_description":"Penyimpanan cloud: Menyimpan data kunci ke cloud.\\nUbah kata sandi: Mengubah kata sandi untuk kunci perpustakaan media.\\nMnemonik: metode alternatif untuk membuat dan memulihkan kunci.\\nImpor Kunci Lokal: Impor kunci yang disimpan secara lokal ke perpustakaan media.\\nKunci Ekspor: Menyimpan data pustaka media saat ini ke lokal atau cloud.\\nKunci cadangan ke cloud: Perbarui data perpustakaan media saat ini ke cloud untuk cadangan.","refresh_status":"Memperbaharui status","confirm_import_key":"Konfirmasi kunci impor","confirm_update_cloud_key":"Anda sudah memiliki kunci di cloud. Memperbarui kunci akan menimpa kunci asli. Apakah Anda yakin ingin memperbarui kunci yang disimpan di awan","export_key_with_cloud":"Masukkan kata sandi independen yang Anda atur untuk mengekspor kunci perpustakaan yang disimpan di cloud, dan kunci file kunci dengan kata sandi buka kunci","store_cloud_key_prompt_password":"Masukkan kata sandi independen untuk menyimpan kunci perpustakaan di cloud","update_cloud_key_prompt_password":"Tetapkan kata sandi independen untuk mengenkripsi kunci perpustakaan, lalu perbarui ke cloud","enable_cloud_storage_prompt_password":"Tetapkan kata sandi untuk kunci yang disimpan di cloud, di mana Anda dapat mengambil kunci dari cloud","input_unlock_password":"Tetapkan kata sandi buka kunci","export_local_prompt_password":"Silakan atur kata sandi buka kunci untuk mengenkripsi file kunci Anda. Kami tidak akan menyimpan kata sandi ini untuk Anda, jadi jika Anda kehilangan kata sandi, Anda tidak akan dapat membuka kunci perpustakaan Anda","require_unlock_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","require_independent_password":"Masukkan kata sandi independen untuk menyimpan kunci di cloud","import_local_prompt_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","select_encrypt_mode":"Pilih mode enkripsi","update_cloud_key":"Perbarui kunci yang disimpan di cloud","backup_to_cloud":"Cadangkan kunci perpustakaan ke cloud","save_local":"Simpan kunci perpustakaan sebagai file terenkripsi lokal","create_new_key":"Buat kunci pustaka baru","creating_lib_key":"Membuat kunci perpustakaan...","loading_lib_key":"Memuat kunci pustaka...","failed_to_create_lib_key":"Gagal membuat kunci perpustakaan","failed_to_load_lib_key":"Gagal memuat kunci perpustakaan","import_local_key":"Impor kunci secara lokal","import_lib_key_from_local":"Impor kunci perpustakaan secara lokal","import_from_cloud":"Impor kunci perpustakaan dari cloud","create_or_import_key":"Buat atau impor kunci perpustakaan","create_or_import_key_desc":"Kunci perpustakaan adalah kunci independen yang digunakan untuk mengambil dan menerbitkan konten dengan basis data terdesentralisasi.","store_your_lib_key":"Simpan kunci perpustakaan Anda","export_cloud_key":"Ekspor Kunci dari Cloud","export_current_key":"Ekspor Kunci Saat Ini","change_password":"Ganti kata sandi","enable_cloud_storage":"Aktifkan penyimpanan awan","disable_cloud_storage":"Nonaktifkan penyimpanan awan","disable_cloud_storage_desc":"Nonaktifkan penyimpanan cloud akan menghapus kunci yang disimpan di cloud, harap pastikan kunci disimpan secara lokal","sync_at":"Sinkronkan di: {time}","cloud_storage_enabled":"Sinkronkan Rantai Kunci dengan {storage}","cloud_storage_disabled":"Penyimpanan cloud dinonaktifkan","saved_locally":"Disimpan secara lokal","export_key":"Ekspor file kunci","cloud_independent_password":"Kata sandi independen cloud","key_file_unlock_password":"Kata sandi buka kunci file kunci","re_enter_unlock_password":"Masukkan kembali kata sandi buka kunci","independent_password_not_enabled":"Kata sandi saat ini adalah kata sandi akun Alphabiz (tidak ada kata sandi independen yang ditetapkan)","use_cognito_hash":"Gunakan kata sandi akun Alphabiz","use_independent_password":"Gunakan kata sandi independen","keychain_lib":"kunci pustaka","loading_keychain_state":"Memuat gantungan kunci...","backing_up":"Mencadangkan...","backup_current_key":"Cadangkan kunci saat ini ke Cloud","cloud_lib_key_not_existed":"kunci perpustakaan tidak ada di Cloud","open_keychain_file":"Buka File Rantai Kunci","confirm_open_abk":"Apakah Anda ingin membuka file ABK","use_the_key":"Gunakan kuncinya","backup_the_key":"Cadangkan kunci ke cloud","keychain_data_does_not_exist":"Data gantungan kunci tidak ada","timeout of 0ms exceeded":"Ada masalah dengan jaringan, coba lagi nanti","XhrError":"Ada masalah dengan jaringan, coba lagi nanti","payer credit amount is not enough":"Kredit tidak cukup","payee does not exist":"Penerima pembayaran tidak ada","block_list_manage":"Daftar blokir mengelola","blocked_users":"Pengguna diblokir","blocked_channels":"Saluran yang diblokir","unblock_user":"Buka blokir pengguna","unblock_channel":"Buka blokir saluran","no_blocked_user":"Tidak ada pengguna yang diblokir","no_blocked_channel":"Tidak ada saluran yang diblokir","field_required":"{0} diperlukan","setting":"Pengaturan","unknown_media":"Media Tidak Dikenal","settings_button_visible":"Tombol Terlihat","settings_setting":"Pengaturan","settings_playback_rate":"Tingkat Pemutaran","settings_subtitle":"Subtitle","settings_pip":"PiP","settings_fullscreen":"Layar penuh","settings_subtitle_options":"Opsi Subtitel","settings_normal":"Normal","settings_italic":"Miring","settings_lighter":"Lebih ringan","settings_bolder":"Lebih berani","settings_small":"Kecil","settings_large":"Besar","about":"Tentang","services":"Jasa","hide":"Bersembunyi","hide_others":"Sembunyikan Lainnya","show_all":"Tunjukkan semua","quit":"Berhenti","edit":"Sunting","redo":"Mengulangi","cut":"Memotong","paste":"Tempel","select_all":"Pilih Semua","view":"Melihat","reload":"Muat ulang","toggle_full_screen":"Alihkan Layar Penuh","toggle_developer_tools":"Alihkan Alat Pengembang","window":"Jendela","minimize":"Memperkecil","bring_all_to_front":"Bawa Semua ke Depan","help":"Membantu","github_repo":"Repo Github","issues":"Masalah","learn_more":"Belajarlah lagi","learn_spelling":"Pelajari Ejaan","lookup_selection":"Cari \\"{selection}\\"","search_with_google":"Telusuri dengan Google","save_as":"Simpan Sebagai","save_image":"Menyimpan gambar","save_image_as":"Menyimpan gambar sebagai ...","copy_link":"Salin tautan","save_link_as":"Simpan tautan sebagai ...","copy_image":"Salin Gambar","copy_image_as":"Salin Gambar Sebagai ...","copy_image_address":"Salin Alamat Gambar","download_complete":"Unduh selesai","download_complete_message":"{0} telah diunduh","is_running":"{0} sedang berjalan","open":"Buka {0}","launch_problem":"Luncurkan masalah","ask_clear_data":"Tampaknya Anda mencoba meluncurkan {0} tetapi gagal beberapa kali.\\nApakah Anda ingin menghapus semua data aplikasi dan mencoba meluncurkannya nanti?","launch_directly":"Luncurkan secara langsung","clear_all_data":"Hapus semua data","ask_clear_confirm":"Ini akan menghapus semua konfigurasi, log, dan data pengguna!\\nSetelah ini, Anda mungkin perlu meluncurkan {0} lagi.\\nApakah Anda yakin ingin menghapus data?","confirm_launch":"Tidak, luncurkan langsung","confirm_clear":"Ya, hapus semua data"}')},6545:function(e,t,a){},6580:function(e,t,a){"use strict";a("0c70")},6755:function(e,t,a){},6792:function(e,t,a){"use strict";a("b031")},"68e2":function(e){e.exports=JSON.parse('{"lib_index":"집","lib_edit":"게시","lib_publish":"게시","lib_explore":"탐구하다","lib_following":"수행원","lib_favorite":"로컬 즐겨찾기","lib_local_favorites":"로컬 즐겨찾기","lib_channel":"채널","lib_submit":"제출하다","lib_from_network":"네트워크에서 분산 데이터베이스 사용","welcome_to_lib":"${displayName} 미디어 라이브러리에 오신 것을 환영합니다.","register_or_login":"회원가입/로그인","lib_recommend":"추천하다","lib_recommend_desc":"${displayName} 도서관에 오신 것을 환영합니다! 이 라이브러리는 네트워크에서 분산된 데이터베이스를 사용합니다. 사용을 시작하려면 일부 채널을 팔로우해야 합니다.","follow_any_channel_to_continue":"계속하려면 아무 채널이나 팔로우하세요.","follow_channels_and_continue":"{0} 채널을 팔로우하고 계속하기","show_more_for_me":"더 보여줘","no_more_recommend":"더 이상 추천하지 않음","key":"열쇠","create_key":"키 만들기","save_key":"키 저장","save_key_file":"키를 파일로 저장하시겠습니까?","import_key":"키 가져오기","import":"수입","invalid_key":"유효하지 않은 키","back_to_top":"맨 위로","search_for_channel":"채널 ID 검색","search_channel_no_result":"ID가 {0}인 채널을 찾을 수 없습니다.","please_input_channel_id":"채널 ID를 입력하세요.","welcome_help_text":"이것은 분산형 미디어 라이브러리입니다. 당신은 필요\\n 이 데이터베이스에 대한 계정을 생성합니다. 우리는\\n 자동으로 개인 키를 생성합니다.\\n 이미 키가 있는 경우 가져올 수도 있습니다.\\n 여기.","welcome_key_text":"로그인 후 [SAVE KEY] 버튼을 클릭해주세요.\\n 개인 키를 저장하려면 오른쪽 하단 모서리에 있습니다.\\n 키를 분실하면 다시 로그인하지 못할 수 있습니다.","redirect_to_recommend":"팔로우한 채널이 없는 것 같습니다. [탐색] 페이지로 리디렉션 중입니다.","channel":"채널","follow":"따르다","unfollow":"언팔로우","following":"수행원","share":"공유하다","unfollow_confirm":"이 채널을 팔로우 해제하시겠습니까? 타임라인에 있는 이 채널의 모든 게시물이 삭제됩니다.","follow_failed_hint":"작업이 백그라운드에서 아직 보류 중입니다. 오랜 시간 동안 동작이 적용되지 않으면 앱을 다시 시작하고 다시 시도하십시오.","block":"차단하다","unblock":"차단 해제","blocked":"막힌","block_channel":"이 채널 차단","block_channel_confirm":"채널을 차단하면 타임라인에서 제거됩니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","block_creator":"이 채널의 작성자 차단","unblock_creator":"이 채널의 작성자 차단 해제","block_creator_confirm":"블록 작성자는 이 작성자가 생성한 모든 채널을 타임라인에서 제거합니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","share_url_copied":"공유 URL이 클립보드에 복사되었습니다.","follow_time":"팔로우 타임","update_time":"업데이트 시간","search":"찾다","type":"유형","added":"추가됨","click_to_task":"작업으로 이동하려면 클릭하세요.","lib_already_added":"이 동영상을 이미 추가했습니다.","description":"설명","poster":"포스터","channel_poster":"채널 포스터","preview":"시사","creator":"창조자","creator_detail":"크리에이터 세부정보","loading_creator":"크리에이터 정보 로드 중","wait_for_creator_loaded":"크리에이터 정보가 로드될 때까지 기다려 주십시오.","follower":"수행원","followers":"추종자","follower_list":"팔로어 목록","user":"사용자","channel_title":"채널 제목","channel_id":"채널 ID","post_title":"게시물 제목","post_id":"게시물 ID","import_data_from_excel":"엑셀에서 데이터 가져오기","set_excel_keys":"엑셀 키 설정","excel_import_succeded":"엑셀 가져오기 성공","excel_import_success_msg":"{0} 행을 추가할 준비가 되었습니다. {1} 유효하지 않으며 {2} 중복 항목은 무시됩니다.","cannot_find_channel":"채널을 찾을 수 없습니다","cannot_find_posts":"게시물을 찾을 수 없습니다","add_channel":"채널 추가","add_post":"게시물 추가","edit_channel":"채널 수정","channel_setting":"채널 설정","edit_post":"게시물 수정","edit_posts":"게시물 수정","channel_detail":"채널 세부정보","remove":"제거하다","remove_channel":"채널 삭제","remove_channel_confirm":"이 게시물을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","remove_post":"게시물 삭제","remove_post_confirm":"이 채널을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","preview_mode":"미리보기 모드","preview_mode_desc":"채널의 미리보기입니다. 영화의 모든 요금이 여기에 표시됩니다.","edit_user_profile":"사용자 프로필 수정","name":"별명","avatar":"화신","no_following":"다음 채널이 없습니다. 클릭하여 이동","no_recommend":"추천 채널이 없습니다. 클릭하여 이동","first_recomment_msg":"앱을 처음 실행하는 경우 다소 시간이 걸릴 수 있습니다.","invalid_image":"잘못된 이미지","image_not_reachable":"이 이미지 URL에 연결할 수 없습니다.","channel_not_found":"채널을 찾을 수 없음","cannot_get_channel_info":"채널 정보를 가져올 수 없습니다. 이 채널은 제작자에 의해 삭제되어 더 이상 사용할 수 없습니다.","validate_error":"오류 확인","validate_user_name_no_space":"사용자 이름에는 공백이 없어야 합니다.","validate_url_no_space":"URL은 공백을 포함할 수 없습니다.","validate_user_name_length":"사용자 이름은 {0}에서 {1} 사이여야 합니다.","validate_user_desc_length":"사용자 설명은 {0}자를 초과할 수 없습니다.","validate_user_avatar_url":"사용자 아바타는 2048자 미만의 URL이어야 합니다.","validate_channel_title_length":"채널 제목의 길이는 1에서 100 사이여야 합니다.","validate_channel_desc_length":"채널 설명의 길이는 10에서 300 사이여야 합니다.","validate_channel_image_url":"채널 미리보기는 2048자 미만의 URL이어야 합니다.","validate_post_title_length":"게시물 제목의 길이는 1에서 100 사이여야 합니다.","validate_post_desc_length":"게시물 설명의 길이는 10에서 300 사이여야 합니다.","validate_post_image_url":"포스터는 2048자 미만의 URL이어야 합니다.","validate_post_url":"잘못된 ${displayName} URL","validate_post_url_length":"${displayName} URL은 2048자 이하여야 합니다.","film_rate":"영화 비율","set_film_rate":"촬영 속도 설정","select_a_rate_before_enter":"미디어 라이브러리에 들어가기 전에 필름 속도를 선택해야 합니다.","library_available_rate":"도서관 이용 가능 영화 요금","rate_g":"G – 일반 청중","rate_g_desc":"전연령 인정합니다. 아이들이 보는 것에 대해 부모를 화나게 하는 것은 없습니다.","rate_pg":"PG – 학부모 지도 권장","rate_pg_desc":"일부 자료는 어린이에게 적합하지 않을 수 있습니다. 학부모들은 \\"부모의 지도\\"를 해줄 것을 촉구했다. 부모가 어린 자녀에게 좋아하지 않을 수 있는 내용이 포함되어 있을 수 있습니다.","rate_pg_13":"PG-13 – 부모의 강력한 주의","rate_pg_13_desc":"일부 자료는 13세 미만의 어린이에게 부적절할 수 있습니다. 부모는 주의를 기울여야 합니다. 일부 자료는 미성년자에게 부적절할 수 있습니다.","rate_r":"R – 제한됨","rate_r_desc":"17세 미만은 부모 또는 성인 보호자를 동반해야 합니다. 약간의 성인물이 포함되어 있습니다. 부모는 어린 자녀를 데리고 가기 전에 영화에 대해 더 많이 알아야 합니다.","rate_nc_17":"NC-17 – 성인 전용","rate_nc_17_desc":"17세 미만은 허용되지 않습니다. 분명히 성인. 어린이는 입장할 수 없습니다.","set_as_private":"비공개로 설정","hide_in_explore":"탐색 페이지에서 이 채널 숨기기","hidden":"숨겨진","select_a_rate":"영화 요금을 선택하세요","select_from_tasks":"작업에서 선택","import_from_magnet":"자석에서 가져오기:?...","input_magnet_url":"입력 자석:? URL","task_title":"작업 제목","set_title":"제목 설정","add_to_local_favorites":"로컬 즐겨찾기에 추가","remove_from_local_favorites":"로컬 즐겨찾기에서 제거","removed_favorite":"삭제된 즐겨찾기","import_or_export_favorites":"즐겨찾기 가져오기/내보내기","export_local_favorites":"로컬 즐겨찾기를 백업으로 내보내기","import_favorites_file":"즐겨찾기 파일 가져오기","not_a_favorite_file":"이 파일은 즐겨찾는 백업 파일이 아닙니다.","connection_status":"연결 상태","gun_server_list":"캐시 노드","custom_nodes":"커스텀 캐시 노드","custom_nodes_hint":"앱을 다시 시작한 후 맞춤 캐시 노드가 적용됩니다.","wait_for_reboot":"재부팅 대기 중...({seconds}s)","reboot_now":"지금 재부팅하세요","reboot_later":"나중에 재부팅","peer_list":"직접 노드","server":"노드 URL","peer":"또래","peer_id":"노드 ID","connection":"연결","data_source":"데이터 소스","sync":"동조","syncing":"동기화 중","sync_completed":"동기화 완료","got_all_post":"이미 모든 게시물이 있습니다.","placeholder_channel_title":"채널 이름","placeholder_channel_desc":"이 채널에 대한 설명","placeholder_post_title":"영화명(연도)","placeholder_post_desc":"이 영화에 대한 설명","private_channel":"비공개 채널","creator_blocked":"크리에이터가 차단됨","go_to_library":"도서관에 가십니까?","go_to_library_channel_msg":"도서관 채널 {0}로 이동하시겠습니까?","magnet_does_not_have_name":"이 자석:? url에는 이름이 없으므로 먼저 게시물 제목을 추가해야 합니다.","no_available_post":"사용 가능한 게시물이 없습니다.","following_channel_no_post":"다음의 모든 채널에 사용 가능한 게시물이 없습니다. 네트워크 오류로 인해 발생할 수 있습니다. 일부 채널을 이미 팔로우한 경우 게시물이 나중에 로드될 수 있습니다.","share_to_library":"라이브러리에 공유","quick_start":"빠른 시작","quick_start_desc":"작업 또는 파일로 게시물 작성 시작","select_file":"파일 선택...","select_folder":"폴더 선택...","post_options":"게시물 옵션","channel_options":"채널 옵션","create_new_channel":"새 채널 만들기","use_existed_channel":"기존 채널 사용","select_existed_channel":"기존 채널 선택","uploaded_by":"{title} {name} 업로드","created_by":"{title} {name} 생성","creating_new_channel":"새 채널 생성 중...","created_new_channel":"새 채널이 생성되었습니다.","creating_new_post":"새 게시물 작성 중...","created_new_post":"새 게시물이 생성됨","create_new_post":"새 게시물 만들기","quick_start_timeout":"{0} 시간이 초과되었습니다. 네트워크 오류로 인해 발생할 수 있습니다. 나중에 다시 시도 해주십시오.","file_too_large":"파일이 너무 큽니다","file_too_large_msg":"이 파일은 4GB({size})보다 크며 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 계속하시겠습니까?","resolving_folder_files":"폴더 파일을 해결하는 중...","folder_too_large":"폴더가 너무 큼","folder_too_large_msg":"이 폴더의 파일은 4GB({size} 총)보다 크고 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 업로드하시겠습니까?","creating_new_task":"새 작업 생성 중...","cannot_create_task":"작업을 생성할 수 없습니다.","cannot_create_task_msg":"일부 오류로 인해 발생할 수 있습니다. 작업이 올바르게 생성되면 나중에 작업 목록을 확인할 수 있습니다.","cannot_get_task_name":"작업 이름을 가져올 수 없습니다. 먼저 하나를 입력해야 합니다.","remove_old_task":"이전 작업 제거","remove_old_task_desc":"웹 모드는 한 번에 하나의 작업만 만들 수 있습니다. 이전 작업을 제거하시겠습니까?","subtitle_list":"자막 목록","optional":"선택 과목","with_subtitle":"{language} 자막 포함","maximumSubtitleNum_limit":"자막 수가 최대치에 도달했습니다.","add_subtitle_url":"자막 다운로드 링크 추가","cannot_add_subtitle":"자막을 추가하지 못했습니다.","cannot_add_subtitle_msg":"자막 언어가 선택되지 않았거나 다운로드 링크가 유효하지 않습니다.","support_subtitle_type":"srt 및 vtt 형식의 자막만 지원됩니다.","recommend_opensubtitles":"www.opensubtitles.org에서 자막 다운로드 링크 또는 아이디를 사용하는 것을 권장합니다.","take_down":"테이크다운","serious_violation":"심각한 위반","copyright_disputes":"저작권 분쟁","adults_only":"성인 만","takedown_reason":"게시 중단 이유","takedown_mode":"테이크다운 모드","admins":"관리자","takedown_user":"이 크리에이터 게시 중단","takedown_channel":"이 채널 게시 중단","takedown_post":"이 게시물 게시 중단","select_takedown_reason":"게시 중단 이유 선택","takedown_invalid_reason":"잘못된 게시 중단 이유","takedown_invalid_user_id":"잘못된 사용자 ID입니다. ID는 87자를 포함해야 합니다.","takedown_invalid_channel_id":"잘못된 채널 ID입니다. ID는 20자를 포함해야 합니다.","takedown_invalid_post_id":"잘못된 게시물 ID입니다. ID는 20자를 포함해야 합니다.","takedown_management":"테이크다운 관리","users":"사용자","channels":"채널","posts":"게시물","you":"너","preset":"프리셋","admin":"관리자","committee":"위원회","about_takedown_mode":"게시 중단 모드 정보:\\n사전 설정: github 저장소에서 구성됩니다. 모두 라이브러리에서 제거됩니다.\\n관리자: 관리자 투표 중 하나가 제거됩니다.\\n위원회: 투표한 관리자의 절반 이상이 제거됩니다.","cannot_edit_preset":"이 행은 미리 설정된 행이므로 편집할 수 없습니다.","cannot_edit_not_vote":"투표하지 않았으므로 이 행을 편집할 수 없습니다.","remove_vote":"투표 제거","post_preload_failed":"이 게시물을 미리 로드하지 못했습니다. 다운로드 링크가 오래되어 이 게시물을 바로 재생할 수 없습니다.","about_cache_node":"캐시 노드 정보","edit_cache_node":"캐시 노드 편집","create_cache_node":"캐시 노드 생성","about_cache_node_desc":"${displayName}는 건 서버를 캐시 노드로 사용합니다. 사전 설정에서 사용자 정의 노드를 편집할 수 있습니다.","learn_how_to_deploy_gun":"자체 건 서버를 배포하는 방법 알아보기","repeat_add":"작업이 추가되었습니다. 다시 추가하지 마세요.","upload":"업로드","download":"다운로드","delete":"삭제","delete_task":"작업 삭제","delete_confirm_message":"이 작업을 삭제하시겠습니까? 취소할 수 없습니다.","also_delete_files":"파일도 삭제","default_delete_files":"제거 작업 후 기본 삭제 다운로드 파일","not_now":"지금은 아니다","delete_autoupload_confirm":"이 작업에는 자동 업로드 디렉터리에 넣은 파일이 포함되어 있습니다. 이 작업을 삭제하면 파일도 삭제됩니다.","delete_anyway":"무시하고 삭제","upload_too_many_files":"너무 많은 파일 업로드","ask_if_unlimit_upload_amount":"자동 업로드 디렉터리에 너무 많은 파일이 포함되어 있습니다. 업로드 용량 제한을 비활성화하시겠습니까? *성능 문제가 발생할 수 있습니다.","disable_limitation":"제한 비활성화","not_length":"현재 다중 파일 작업이 지원되지 않습니다. 협조해 주시기 바랍니다.","download_torrent":"파일 다운로드","upload_torrent":"파일 업로드","files":"파일","file":"파일","folder":"폴더","start_all":"모두 시작","pause_all":"모두 일시중지","remove_all":"모두 제거","upload_all":"모두 업로드","clear_history":"기록 지우기","pause_all_finish_payments":"이로써 모든 결제가 완료됩니다.","accelerating":"가속","link_task":"작업 연결","torrent_task":"파일 작업","ok":"좋아요","cancel":"취소","download_directory_position":"다운로드 디렉토리 위치","torrent_file":"작업 파일","magnetic_link_incorrect":"링크 형식이 잘못되었습니다.","delete_fail":"삭제 실패","pause":"정지시키다","paused":"일시중지됨","stop_torrent":"멈추다","seed":"씨앗","resume":"재개하다","downloading":"다운로드 중","downloaded":"다운로드됨","uploading":"업로드 중","auto_uploading":"자동 업로드","uploaded":"업로드됨","pending":"다른 작업을 기다리는 중","verifying":"확인 중","waiting_for_verify":"확인 대기 중","seeding":"파종","completed":"완전한","status":"상태","task_name":"작업 이름","size":"크기","progress":"진전","sort":"종류","ascending":"오름차순","descending":"내림차순","file_loading":"파일 로드 중...","loading":"로드 중","unknown_status":"알려지지 않은","play_while_downloading":"놀다...","upload_or_play":"업로드/재생","play":"놀다","ask_if_upload_file":"파일을 업로드하시겠습니까?","ask_if_upload_or_play":"파일을 업로드하거나 재생하시겠습니까?","torrent_error":"작업 추가 시 오류:","no_peers":"{0} 회 이상 재시도하고 사용 가능한 피어가 없습니다.","torrent_exists":"작업이 이미 존재합니다.","show_origin_torrent":"원본 작업 파일 또는 URL 가져오기","show_directory":"이 토렌트의 디렉토리 열기","task_num":"작업","total_upload_speed":"업로드 속도","total_download_speed":"다운로드 속도","path_missing":"오류: 토렌트 경로를 찾을 수 없습니다.","origin_not_found":"원본 작업 정보를 찾을 수 없습니다.","text_copied":"매그넘 URL이 클립보드에 복사됩니다.","copy_magnet_uri":"복사 자석:? URI","copy_download_uri":"다운로드 URI 복사","copy_share_uri":"공유 URI 복사","uri_copied":"URI가 클립보드에 성공적으로 복사되었습니다.","uri_copy_failed":"URI를 복사하지 못했습니다.","more":"더...","toggle_list_mode":"목록 모드 전환","comment":"논평","operations":"운영","open_directory":"디렉토리 열기","no_downloading_task":"다운로드 작업 없음","remove_all_downloading_tasks":"모든 다운로드 작업을 제거하시겠습니까?","remove_all_upload_tasks":"모든 업로드 작업을 제거하시겠습니까?","remove_autoupload_files":"자동 업로드 파일 제거","remove_all_history":"모든 기록을 삭제하시겠습니까?","remaining":"남은","created_time":"만든 시간","used_time":"사용시간","completed_time":"완료된 시간","yesterday":"어제","before_yesterday":"{empty}","earlier":"더 일찍","miss_file":"일부 파일이 누락됨","delete_miss_file_task":"{0}에 누락된 파일이 있습니다.","common_peer":"공통 피어","ab_peer":"${displayName} 피어","ab_peer_verified":"확인된 ${displayName} 피어","ab_peer_available":"${displayName} 피어 사용 가능","alphabiz_accelerating":"${displayName} 가속","income":"소득","income_info":"수입(오늘/총)","total_income_info":"수입: {0}(오늘) / {1}(총)","login_to_see_income":"소득 통계를 보려면 로그인하십시오.","credit_cost":"신용 비용","downloaded_by_payment":"결제로 다운로드","file_not_found":"로컬에서 이 파일을 찾을 수 없습니다.","no_task":"묻지 않는다","no_matched_task":"일치하는 작업 없음","space_not_enough":"디스크 공간이 충분하지 않음","need_more_space":"{0} 더 많은 공간이 필요하지만 현재 디스크에 {1} 여유 공간이 있습니다({2} 예약됨). 작업이 일시 중지되었습니다. 라이브러리 사전 로드가 비활성화되었습니다. [설정 - 고급]에서 다시 활성화할 수 있습니다.","seeders":"파종기","last_update":"마지막 업데이트","connecting":"연결 중","connected":"연결됨","request_timed_out":"요청 시간이 초과되었습니다","connection_failed":"연결에 실패","invalid_download_url":"잘못된 다운로드 URL","download_link":"다운로드 링크","empty_files":"디렉토리에 파일이 없습니다","duplicate_task":"중복 작업","duplicate_tracker":"중복 추적기","this_task_not_ready":"이 작업은 준비되지 않았습니다. 이 작업을 일시 중지하면 바로 제거됩니다.","some_task_not_ready":"일부 작업이 준비되지 않았습니다. 이러한 작업을 일시 중지하면 바로 제거됩니다.","failed_to_delete_files":"파일을 삭제하지 못했습니다.","failed_to_delete_files_desc":"작업의 일부 파일을 삭제하지 못했습니다. 수동으로 삭제해야 할 수도 있습니다.","unknown_error":"알 수 없는 오류: {0}","more_files_are_not_shown":"({0} 더 많은 파일은 성능상의 이유로 표시되지 않음)","no_available_file":"사용 가능한 파일이 없습니다. 작업이 준비될 때까지 기다리십시오.","service_worker_error":"재생을 위해 ServiceWorker를 로드할 수 없습니다. 브라우저가 이 기능을 지원하지 않거나 ServiceWorker가 활성화되지 않았을 수 있습니다. 이 페이지를 새로고침하고 다시 시도해야 할 수도 있습니다.","add_task_first":"먼저 작업을 추가해야 합니다.","player_task_time":"플레이어가 플레이를 준비하는 데 너무 많은 시간이 걸립니다. 작업에 문제가 있을 수 있습니다.","web_mode_hint":"${displayName}의 웹 모드는 WebRTC 피어만 지원합니다. 최상의 경험을 위해 ${displayName} 데스크탑 앱을 다운로드하십시오.","web_mode_task_hint":"작업을 추가하려면 아래 버튼을 클릭하세요. 한 번에 하나의 작업만 추가할 수 있습니다.","save_to_local":"로컬에 저장","save_as_zip":"ZIP으로 저장","creating_save_file":"세이브 파일 생성중...","upload_as_one_directory":"하나의 디렉토리로 업로드","upload_as_single_files":"단일 파일로 업로드","web_mode_upload_single":"웹 모드에서는 단일 파일만 업로드할 수 있습니다.","download_success":"성공적으로 다운로드","download_fail":"다운로드 실패","wait_for_downloaded_to_share":"공유하기 전에 작업이 다운로드될 때까지 기다리십시오.","download_with_cellular":"셀룰러를 사용하여 작업 다운로드","download_with_cellular_desc":"셀룰러 네트워크를 사용하고 있습니다. 셀룰러로 작업을 다운로드하면 이동통신사에서 추가 요금을 부과할 수 있습니다.","download_with_cellular_confirm":"여전히 셀룰러로 다운로드","language":"언어","appearance":"모습","darkModeSystem":"체계","darkModeLight":"빛","darkModeDark":"어두운","basic_setting":"기초적인","hideMenu":"앱 메뉴 숨기기(Windows 및 Linux만 해당)","autoHide":"창 자동 숨기기","autoStart":"로그인 시 열기","restore":"종료 시 창의 크기와 위치 유지","autoStartUnfinished":"완료되지 않은 모든 작업을 자동으로 재개","default_download_path":"기본 경로","download_directory":"디렉토리 다운로드","upload_directory":"디렉토리 업로드","enable_auto_upload":"자동 업로드 사용","unlimit_upload_amount":"무제한 업로드 금액","unlimit_upload_warning":"많은 양의 파일을 업로드할 수 있습니다. 이로 인해 성능 문제가 발생할 수 있습니다.","start":"시작","transport_setting":"전염","upload_limit":"업로드 제한","download_limit":"다운로드 한도","payed_user_share_rate":"유료 사용자 점유율","unlimited":"제한 없는","limit_input_error":"제한 숫자는 양수여야 합니다.","BT_setting":"작업 설정","saveLinkSeed":"작업 파일로 링크 저장","autoDownload":"링크 및 콘텐츠 자동 다운로드","continuousSeeding":"수동으로 중지할 때까지 시드 유지","seedSharingRate":"종자 비율","seedTime":"시드 시간(분)","task_manage":"작업 관리","maximumDownloadNum":"최대 활성 작업","maximumConnectionsNum":"서버당 최대 연결","range_error":"범위는 {0}에서 {1} 사이여야 합니다.","random":"무작위의","breakpointContinuation":"계속하다","automaticSkip":"작업 추가 후 자동으로 다운로드 표시","afterNotification":"다운로드 완료 후 알림","deleteConfirm":"작업을 삭제하기 전에 확인이 필요하지 않습니다.","submit":"저장 및 적용","discard":"버리다","reset":"초기화","reset_all_settings":"모든 설정을 재설정하시겠습니까?","preferences_resetted":"환경설정이 재설정됨","traditional_chinese":"중국어 번체","japanese":"일본어","english":"영어","chinese":"중국어 간체","advancedSettings":"고급의","autoUpdate":"자동 업데이트","autoCheckUpdate":"업데이트 자동 확인","proxy":"대리","useProxyService":"프록시 활성화","trackerService":"트래커 서버","recommendUse":"추천","autoUpdateTrackerServiceList":"매일 자동으로 트래커 목록 업데이트","manualUpdateTracker":"수동 업데이트","manualUpdateSuccess":"트래커 서버를 성공적으로 업데이트했습니다.","manualUpdateFail":"업데이트 실패:","listenPort":"청취 포트","BTlistenPort":"데이터 전송 포트","DHTlistenPort":"분산 해시 포트","protocols":"호환 가능한 프로토콜","setDefaultClientForFollowingProtocols":"다음 프로토콜의 기본 클라이언트로 설정","magnetUrl":"자석","video_file":"비디오 파일","audio_file":"오디오 파일","security":"보안","impersonateUserAgent":"모의 사용자 에이전트","RPCauthorizationkey":"RPC 비밀","viewDocument":"RPC 시크릿 매뉴얼 보기","developer":"개발자","applicationLogPath":"앱 로그 경로","downloadSessionPath":"세션 경로 다운로드","resetDownloadSessionRecord":"다운로드 세션 재설정","restoreInitialSettings":"공장초기화","preferences_set_successfully":"기본 설정을 성공적으로 저장하십시오!","preferences_set_fail":"기본 설정 저장 실패!","change_not_save":"변경 사항이 저장되지 않음","discard_all_changes":"모든 변경사항을 취소하고 종료하시겠습니까?","stay_in_page":"페이지에 머물기","disk_usage":"디스크 사용량","pause_if_less_space":"공간이 (MB) 미만인 경우 일시 중지 및 알림","default_video_player":"기본 비디오 플레이어","video_cache_time":"스트림 재생 캐시","minutes":"분","system_default":"시스템 기본값","media_player":"미디어 플레이어","library_film_rate":"사용 가능한 영화 속도","library_show_explore":"[탐색] 페이지 표시","library_setting":"라이브러리 설정","library_sync_setting":"라이브러리 동기화 설정","keychain_sync_status":"키체인 동기화 상태","sync_with_aws":"Amazon Web Services와 키체인 동기화","backup_to_local":"로컬 파일에 백업","enable_sync_with_aws":"AWS와 동기화 활성화","disable_sync_with_aws":"AWS와의 동기화 비활성화","disable_sync_with_aws_desc":"이렇게 하면 서버에 저장된 키가 제거됩니다. 이미 키를 내보냈는지 확인하십시오.","input_independent_password":"독립적인 암호 입력","change_independent_password":"독립적인 비밀번호 변경","password_error":"비밀번호 오류","password_invalid":"잘못된 비밀번호","key_existed":"키 존재","key_not_found":"키를 찾을 수 없음","library_recommend":"도서관 추천","show_all_channels":"도서관 추천 페이지에 모든 채널 표시","not_logged_in":"로그인하지 않았습니다","login_to_continue":"계속하려면 로그인하세요.","mnemonic_code":"니모닉 코드","wordlist":"단어 목록","restore_code":"코드에서 복원","generate_code":"코드 생성","export_mnemonic_code":"니모닉 코드 내보내기","import_mnemonic_code":"니모닉 코드 가져오기","print":"인쇄","save_as_txt":"txt로 저장","save_as_pdf":"PDF로 저장","from_file":"파일에서","not_valid_mnemonic_code":"유효한 니모닉 코드가 아닙니다.","cannot_parse_code_as_key":"이 니모닉 코드를 라이브러리 키로 구문 분석할 수 없습니다.","import_key_hint":"이 키를 가져오시겠습니까? 이렇게 하면 라이브러리에서 이전 키가 복구됩니다.","import_key_confirm":"예, 가져옵니다.","library_preload":"라이브러리에서 작업 미리 로드","show_preload":"사전 로드 작업 표시","set_download":"다운로드 디렉토리 설정","set_download_desc":"macOS App Store 버전의 경우 기본 다운로드 디렉토리는 앱의 샌드박스에 있으며 앱 제거 후 삭제됩니다. 다운로드 파일을 보관하려면 다른 다운로드 디렉토리를 수동으로 선택해야 합니다.","home":"집","home_caption":"다운로드/업로드 및 미디어 파일","library":"도서관","library_caption":"미디어 리소스 살펴보기","player":"플레이어","player_caption":"미디어 플레이어","credits":"학점","credits_caption":"계정 잔액 확인","account":"계정","account_caption":"로그인/가입/관리","settings":"설정","settings_caption":"앱, 플레이어, 계정 설정","development":"개발","development_caption":"내부용 개발자 모드","basic":"기초적인","basic_caption":"기본 설정","advanced":"고급의","advanced_caption":"고급 설정","blockchain":"지갑","blockchain_caption":"${displayName} 탈중앙화 지갑","internal_notice":"내부 릴리스 공지","release_notes":"릴리즈 노트","terms_and_conditions":"이용약관","license_and_listen_notices":"라이선스 및 오픈 소스 듣기 고지 사항","close":"닫다","success":"성공","fail":"실패하다","account_email_invalid_address":"잘못된 이메일 주소","account_email_invalid_domain":"잘못된 이메일 도메인","account_email_unknown_status":"알 수 없는 이메일 전송 상태","account_email_unavailable_address":"사용할 수 없는 이메일 주소","account_email_suppressed_address":"억제된 이메일 주소","account_loading":"로드 중...","account_is_required":"필요하다","account_sign_in_your_account":"로그인","account_username":"사용자 이름","account_username_email_phone":"전화번호 또는 이메일","account_password":"비밀번호","account_new_password":"새 비밀번호","account_re_enter_password":"비밀번호를 다시 입력하세요","account_password_not_equal":"두 암호가 동일하지 않습니다","account_new_password_same":"비밀번호는 기존 비밀번호와 동일합니다.","account_forgot_your_password":"비밀번호를 잊어 버렸습니까?","account_reset_password":"암호를 재설정","account_sign_in":"로그인","account_signed_in":"로그인","account_sign_up":"가입하기","account_find_your_account":"계정 찾기","account_enter_your_username":"전화번호 또는 이메일을 입력하세요.","account_search":"찾다","account_email_sent_tip":"확인 코드가 포함된 이메일이 귀하의 이메일로 전송되었습니다:","account_phone_sent_tip":"인증 코드가 포함된 SMS가 휴대전화로 전송되었습니다.","account_email_phone_sent_tip":"확인 코드가 포함된 이메일과 SMS가 각각 귀하의 이메일과 전화로 전송되었습니다:","account_software_token_tip":"계정에 대해 MFA가 활성화되었습니다. 로그인을 완료하려면 장치를 켜거나 보고 TOTP를 입력하십시오.","account_reset_your_password":"비밀번호를 재설정","account_verification_code":"확인 코드","account_resend_code":"코드 재전송","account_code_has_been_resent":"인증 코드가 재전송되었습니다","account_password_has_been_reset":"비밀번호가 재설정되었습니다","account_submit":"제출하다","account_sign_up_your_account":"계정 가입","account_fill_required_fields":"아래의 필수 필드를 작성하십시오.","account_fill_optional_fields":"아래의 선택 필드를 채우십시오.","account_email":"이메일","account_invitation":"초대","account_invitation_code":"초대 코드","account_i_accept":"동의 함","account_license_terms":"라이센스 및 조건","account_next":"다음","account_you_need_to_accept_license_terms":"먼저 라이센스 및 약관에 동의해야 합니다.","account_verify_fill_optional_fields":"선택적 필드를 확인하고 채우십시오.","account_nickname":"별명","account_gender":"성별","account_male":"남성","account_female":"여성","account_not_say":"말하지마","account_birthday":"생일","account_phone_number":"전화 번호","account_locale":"현지의","account_tip_verified":"확인됨, 로그인 중...","account_verified":"확인","account_unverified":"확인되지 않은","account_signed_up":"가입","account_verify_your_identity":"신원 확인","account_finish":"마치다","account_signed_out":"로그 아웃","account_change_password":"비밀번호 변경","account_change_email":"이메일을 바꾸다","account_change_phone_number":"전화번호 변경","account_sign_out":"로그아웃","account_current_password":"현재 비밀번호","account_re_enter_new_password":"새 비밀번호를 다시 입력하십시오","account_personal_information":"정보","account_edit":"편집하다","account_reset":"초기화","account_greeting":"안녕하세요,","account_cancel":"취소","account_change":"변화","account_not_set":"설정되지 않음","account_setting":"환경","account_copy_code":"코드 복사","account_account_setting":"계정","account_task_page":"신용 작업","account_setting_caption":"비밀번호 변경 / 정보 수정","account_security":"보안","account_want_to_join":"들어 올래?","account_sign_in_now":"로그인","account_changed":"변경됨","account_clipboard_with_invitation_code":"초대 코드 복사됨","account_clipboard_with_code":"복사된 코드","account_invitation_code_dialog_tip":"초대 코드가 포함된 이메일 또는 문자 메시지를 친구에게 보냅니다.","account_available":"사용 가능","account_invited":"초대","account_used":"사용된","account_invitation_code_sent":"초대 코드가 전송되었습니다","account_invitation_channel_required":"하나 이상의 초대 채널을 작성하십시오.","account_no_verification_code":"인증번호를 받을 수 없나요?","account_no_phone_number":"전화번호가 없나요?","account_sign_up_by_email":"이메일로 가입","account_no_email":"이메일이 없나요?","account_sign_up_by_phone_number":"전화번호로 가입","account_no_totp":"TOTP가 없습니까?","account_tip_no_totp":"TOTP가 없는 경우 TOTP를 먼저 설정하십시오.","account_setup_totp":"TOTP 설정","account_contact_information":"연락처 정보","account_delete_account":"계정 삭제","account_deleted":"삭제됨","account_can_not_mfa":"문제가 있는 MFA?","account_set_mfa_type":"구성 MFA","account_disable_mfa":"MFA 비활성화","account_disabled_mfa":"장애인 MFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"추천하지 않음","account_oauth_sign_in_with":"{provider}로 로그인","account_sign_in_failed":"로그인 실패","account_tip_oath_sign_up":"현재 {provider} 계정에 해당하는 이메일: {email}은 아직 계정을 만들지 않았습니다.","account_tip_confirm_delete_account":"현재 계정의 비밀번호를 입력하여 현재 계정 삭제를 확인합니다.(삭제된 계정은 복구할 수 없습니다.)","account_tip_config_mfa":"2차 인증으로 SMS 또는 시간 기반 일회용 비밀번호(TOTP)를 사용하도록 선택할 수 있습니다.","account_error_can_not_enable_mfa":"MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_sms_mfa":"SMS MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_totp_mfa":"TOTP MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_setup_totp":"Authenticator와 같은 앱을 사용하여 아래 QR 코드를 스캔하거나 코드를 수동으로 복사하여 보안 토큰을 추가하세요.","account_tip_verify_totp":"TOTP 확인","account_link_your_social_account":"소셜 계정 연결","account_unlink_your_social_account":"소셜 계정 바인딩 해제","account_tip_confirm_link":"현재 계정을 {provider} 계정에 연결하시겠습니까?","account_tip_confirm_unlink":"결합된 {provider} 계정을 취소하시겠습니까?","account_tip_linking":"제본...","account_tip_unlinking":"구속 해제...","account_linked":"경계","account_unlinked":"매여 있지 않은","account_error_can_not_link_to_the_linked_account":"현재 소셜 계정은 다른 계정에 연결되어 있습니다.","account_error_can_not_link_to_the_mismatched_email":"현재 계정과 소셜 계정 이메일 주소가 일치하지 않습니다.","account_error_can_not_link_before_email_verified":"현재 계정이 인증된 이메일에 연결되어 있지 않기 때문에 소셜 계정을 연결할 수 없습니다.","account_tip_confirm_verify_email_phone":"신원 확인을 위해 현재 계정의 이메일과 전화번호로 인증 코드를 보낼지 여부","account_tip_confirm_verify_phone":"신원 확인을 위해 현재 전화번호로 인증 코드를 보낼지 여부","account_error_1_message_60_seconds":"60초마다 하나의 SMS 또는 이메일만 보낼 수 있습니다. {delta}초를 더 기다리세요.","account_error_10_messages_per_day":"각 휴대폰 또는 이메일은 24시간 이내에 10개의 메시지만 보낼 수 있습니다.","account_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","Network Error":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","account_error_user_not_exist":"사용자가 존재하지 않습니다","account_error_incorrect_username_or_password":"잘못된 사용자 이름 또는 비밀번호","account_error_incorrect_original_password":"잘못된 원래 암호","account_error_incorrect_password":"잘못된 비밀번호","account_error_username_not_found":"사용자 이름을 찾을 수 없습니다","account_error_can_not_reset_for_no_verified":"확인되지 않은 계정의 비밀번호는 재설정할 수 없습니다.","account_error_invalid_verification_code":"인증 코드가 잘못되었습니다. 다시 시도해 주세요.","account_error_expired_verification_code":"인증 코드가 만료되었습니다. 다시 시도해 주세요.","account_error_password_not_long_enough":"비밀번호가 충분히 길지 않습니다","account_error_attempt_limit_exceeded":"시도 제한을 초과했습니다. 잠시 후에 시도하십시오.","account_error_password_attempts_exceeded":"암호 시도 횟수를 초과했습니다.","account_error_invalid_phone_number_format":"잘못된 전화번호 형식","account_error_no_cell_phone_prefix":"전화번호의 접두사를 선택하세요.","account_error_username_already_exists":"사용자 이름이 이미 존재합니다","account_error_you_need_to_accept_license_terms":"먼저 라이선스 및 약관에 동의해야 합니다.","account_error_inactive_code":"초대 코드는 활성화된 코드가 아닙니다.","account_error_non_existent_code":"초대 코드가 존재하지 않습니다","account_error_unexpected":"예기치 않은 오류","account_error_can_not_change_email_before_phone_bound":"전화번호가 바인딩되기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_email_before_unbound_social_account":"소셜 계정 바인딩을 해제하기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_phone_before_email_bound":"이메일이 바인딩되기 전에는 전화번호를 변경할 수 없습니다.","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA를 비활성화하기 전에는 이메일 또는 휴대폰 번호를 변경할 수 없습니다.","account_error_not_supported_yet":"지원되지 않음","account_error_same_email":"새 이메일 주소는 원래 이메일 주소와 같을 수 없습니다.","account_error_same_phone":"새 전화번호는 원래 전화번호와 같을 수 없습니다.","account_error_email_not_exists":"이메일 주소가 존재하지 않습니다","account_error_email_already_exists":"주어진 이메일을 사용하는 계정이 이미 존재합니다.","account_error_phone_already_exists":"주어진 전화번호를 사용하는 계정이 이미 존재합니다.","account_error_mfa_token_mismatch":"소프트웨어 토큰 코드 불일치","account_error_recaptcha_not_loaded":"네트워크에 문제가 있습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_recaptcha_validation_failed":"ReCAPTCHA 유효성 검사에 실패했습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_sign_in_in_progress":"보류 중인 로그인 시도가 이미 진행 중입니다.","account_field_range":"{0}-{1} 문자 입력 제한","account_field_only_alphanumeric":"영숫자만 지원","account_field_only_alphanumeric_and_symbol":"영숫자 및 기호만 지원","account_field_only_chinese_alphanumeric_space_underline":"영숫자, 공백, 밑줄만 지원합니다.","account_field_prefix_without_number_space":"첫 번째 문자는 숫자나 공백일 수 없습니다.","account_field_suffix_without_space":"공백으로 끝날 수 없습니다.","account_field_without_repeat_space":"연속으로 여러 공백을 사용할 수 없습니다.","account_field_can_not_only_alphanumeric":"문자나 숫자만 사용할 수 없습니다.","account_field_must_have_number_characters":"숫자 문자가 있어야 합니다.","account_field_verification_code":"인증 코드는 6자리여야 합니다.","account_field_invitation_code":"초대 코드는 영숫자여야 합니다.","account_field_phone_number":"잘못된 전화번호 형식","account_invalid_email_format":"잘못된 이메일 형식","account_sign_out_confirm":"로그아웃하시겠습니까? 이렇게 하면 모든 작업이 중지됩니다.","account_sign_out_anyway":"무시하고 로그아웃","account_signing_out":"로그아웃 중...","account_request_save_settings":"설정이 저장되지 않습니다. 로그아웃하기 전에 변경 사항을 저장해야 합니다.","pay":"지불하다","pay_with_credit":"다운로드 가속화 비용을 지불합니다. {0} 크레딧이 필요합니다.","pay_with_credit_payed":"가속. 여전히 약 {0} 크레딧이 필요합니다.","create_payment":"결제 생성","pay_target":"표적","pay_for_torrent":"{0} 지불","your_subid":"당신의 subId","your_credits":"당신의 크레딧","pay_point_for_data":"{1} 데이터에 대해 {0} 포인트 지불","auto_renew":"자동 갱신 활성화","transaction_details":"상세 거래 내역","transaction_id":"ID","transaction_payer":"지불인","transaction_payee":"수취인","transaction_category":"범주","transaction_changed_amount":"변경 금액","transaction_meta":"메타","transaction_status":"상태","transaction_creation_time":"생성 시간","receipt_code":"영수증 코드","transfer_amount":"이체 금액","code_the_receipt_code":"아래의 영수증 코드를 지불인에게 복사하십시오.","fill_the_receipt_code":"수취인이 제공한 결제 코드를 입력하여 송금","expense":"비용","copied":"복사됨","transfer":"옮기다","receive":"받다","copy":"복사","withdraw_fund":"자금 인출","category_paydata_payer":"데이터 비용","category_paydata_payee":"데이터 수입","category_transfer":"옮기다","category_bonus":"보너스","category_recharge":"재충전","status_pending":"보류 중","status_completed":"완전한","status_finish":"마치다","status_failed":"실패한","tip_invalid_receiver":"잘못된 수신자 코드","tip_invalid_amount":"신용 금액은 0-1000 범위의 부동 소수점이어야 합니다(최소 정밀도는 0.001임).","credit_get_more":"더 많은 크레딧 받기","credit_no_data":"자료 없음","credit_loading":"로드 중...","credit_not_enough_amount":"크레딧이 부족합니다","credit_amount_not_enough":"크레딧이 부족합니다","credit_payee_not_exist":"수취인이 존재하지 않습니다.","credit_invalid_amount":"유효하지 않은 크레딧 금액","credit_can_not_transfer_to_yourself":"자신에게 양도할 수 없습니다.","credit_latest":"최신","credit_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","add_subtitles":"자막 추가","open_file":"파일 열기...","advanced_options":"고급 옵션","title":"제목","location":"위치","subtitle_file":"자막 파일","unsupported_subtitle_type":"{0} 파일 형식은 지원되는 자막 형식이 아닙니다.","not_default_player":"기본 비디오 플레이어가 설정되지 않았습니다.","this_is_an_audio_file":"이것은 오디오 파일입니다","the_added_subtitle_already_exists":"추가된 자막이 이미 존재합니다.","stop_stream_player":"작업이 일시 중지 또는 삭제되어 스트리밍 미디어가 종료되었습니다.","stop_player":"파일이 삭제되어 플레이어가 종료되었습니다.","playing_timeout_hint":"대기 시간이 초과되었습니다. 과제를 확인해주세요","autoplay_hint":"브라우저에서 자동 재생을 차단할 수 있습니다. 플레이어가 재생되지 않으면 화면을 클릭하여 계속하십시오.","remove_playing_confirm":"{0}는 아직 재생 중입니다. 제거하면 플레이어가 중지됩니다. 제거하시겠습니까?","unsupported_in_browser":"브라우저 모드에서는 아직 지원되지 않음","client":"고객","warning":"경고","enable":"할 수 있게 하다","disable":"장애를 입히다","auto":"자동","encrypt_connection":"연결 암호화","encrypted_connection":"암호화된 연결","non_encrypted_connection":"암호화되지 않은 연결","connected_wires_not_disconnect":"연결된 전선이 끊어지지 않습니다","audio":"오디오","video":"동영상","image":"영상","subtitle":"부제","zip":"지퍼","text":"텍스트","unknown":"알려지지 않은","add":"추가하다","undo":"실행 취소","backup":"지원","not_default_app":"${displayName}은(는) 토렌트 및 미디어용 기본 앱이 아닙니다. 기본값으로 설정하시겠습니까?","dont_show_again":"다시 표시하지 않음","go_to_settings":"설정으로 바로 가기","about_alphabiz":"약 ${displayName}","last_check_at":"마지막 확인 시간","update_channel":"채널 업데이트","check_for_update":"업데이트를 확인","checking_for_update":"업데이트 확인 중...","no_update_available":"사용 가능한 업데이트 없음","update_available":"업데이트 가능","update_now":"지금 업데이트","update_later":"나중에 업데이트","click_to_update":"지금 업데이트 버튼을 클릭하여 다운로드 및 업데이트","update_failed":"업데이트가 실패","update_failed_message":"업데이트하는 동안 오류가 발생했습니다:","check_shasum_failed":"설치 프로그램의 무결성을 확인하지 못했습니다.","downloading_update":"업데이트 다운로드 중...","ready_to_update":"업데이트 준비 완료","restart_to_update":"업데이트가 다운로드됩니다. ${displayName}는 잠시 동안 업데이트를 위해 종료됩니다.","already_latest":"현재 버전({0})은 이미 최신 버전입니다.","update_timeout":"업데이트 시간 초과","no_available_release":"사용 가능한 릴리스 없음","no_available_installer":"사용 가능한 설치 프로그램 없음","feedback":"피드백","select_a_type":"유형 선택","category":"범주","select_a_category":"카테고리 선택","require_title":"제목은 필수 항목입니다.","describe_your_problem":"문제를 설명하십시오","report_a_bug":"버그 신고","request_a_new_feature":"새 기능 요청","download_or_upload":"다운로드 업로드","others":"기타","submit_with_system_info":"시스템 정보와 함께 제출","submit_feedback":"피드백 제출","tweet_us":"트윗하기","tweet_too_long":"트윗이 너무 깁니다","delete_characters":"최소 {0} 문자를 삭제하십시오.","rest_characters":"{0} 더 많은 문자를 입력할 수 있습니다.","update_alphabiz":"업데이트 ${displayName}","current_version":"현재 버전","cancel_update":"업데이트 취소","slow_download_speed":"너무 느린 다운로드","slow_download_speed_caption":"현재 설치 프로그램 다운로드가 너무 느립니다. 네트워크 상태를 확인하십시오","update_canceled":"업데이트 취소됨","current_version_release_time":"현재 버전의 출시 시간","expired_app":"${displayName} 만료됨","version_out_of_date":"오래된 버전","have_to_update":"${displayName} 버전이 오래되었습니다. 일부 프로토콜 또는 API는 더 이상 사용되지 않습니다. 계속하기 전에 ${displayName}를 업데이트해야 합니다.","exit_alphabiz":"${displayName} 종료","exit_and_update":"종료 및 업데이트 적용","new_version_hint":"새 버전을 사용할 수 있습니다","no_new_version":"사용 가능한 새 버전이 없습니다.","current_is_latest":"현재 버전이 이미 최신 버전입니다.","click_to_check_update":"[업데이트 확인] 버튼을 클릭하여 업데이트 확인","download_latest_version_from_website":"최신 버전을 다운로드하려면 공식 웹 사이트를 방문하십시오.","to_the_website":"웹사이트로","network_diagnotic":"네트워크 진단","diagnotic":"특수 증상","click_to_check":"클릭하여 확인","click_to_check_again":"다시 확인하려면 클릭","checking":"확인 중","online":"온라인","offline":"오프라인","dns_look_up":"DNS 조회","error":"오류","aws_service":"AWS 서비스","network_pings":"네트워크 핑","not_found":"찾을 수 없음","packet_loss":"패킷 손실","official_site":"공식 사이트","download_test":"테스트 다운로드","test_task":"테스트 작업 {0}","download_failed":"다운로드 실패","second_spend":"{0} 지출","open_default_player_failed":"기본 플레이어를 열지 못했습니다.","copied_to_clipboard":"클립보드에 복사됨","go_to":"이동","region_not_available":"사용할 수 없는 지역","region_not_available_message":"죄송합니다! 귀하의 지역은 이 앱을 사용할 수 없습니다. 이 앱은 {0}초 후에 종료됩니다.","confirm":"확인하다","no_available_result":"사용 가능한 결과 없음","invalid_password_format":"비밀번호 포맷이 맞지 않습니다","invalid_password_format_same":"비밀번호는 기존 비밀번호와 동일합니다.","error_password":"비밀번호 오류","keychain_setting":"키체인","setting_description":"클라우드 스토리지: 주요 데이터를 클라우드에 저장합니다.\\n암호 변경: 미디어 라이브러리 키의 암호를 변경합니다.\\nMnemonic: 키 생성 및 복원을 위한 대체 방법입니다.\\n로컬 키 가져오기: 로컬에 저장된 키를 미디어 라이브러리로 가져옵니다.\\n내보내기 키: 현재 미디어 라이브러리 데이터를 로컬 또는 클라우드에 저장합니다.\\n클라우드에 키 백업: 백업을 위해 현재 미디어 라이브러리 데이터를 클라우드로 업데이트합니다.","refresh_status":"업데이트 상태","confirm_import_key":"가져오기 키 확인","confirm_update_cloud_key":"이미 클라우드에 키가 있습니다. 키를 업데이트하면 원래 키를 덮어씁니다. 클라우드에 저장된 키를 업데이트하시겠습니까?","export_key_with_cloud":"클라우드에 저장된 라이브러리 키를 내보내기 위해 설정한 독립 암호를 입력하고 잠금 해제 암호로 키 파일을 잠급니다.","store_cloud_key_prompt_password":"클라우드에 라이브러리 키를 저장하기 위해 독립적인 암호를 입력하십시오.","update_cloud_key_prompt_password":"독립적인 암호를 설정하여 라이브러리 키를 암호화한 다음 클라우드로 업데이트","enable_cloud_storage_prompt_password":"클라우드에 저장된 키의 암호를 설정하여 클라우드에서 키를 검색할 수 있습니다.","input_unlock_password":"잠금해제 비밀번호 설정","export_local_prompt_password":"키 파일을 암호화하려면 잠금 해제 암호를 설정하십시오. 이 비밀번호는 저장되지 않으므로 비밀번호를 분실하면 라이브러리 키를 잠금 해제할 수 없습니다.","require_unlock_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","require_independent_password":"클라우드에 저장된 키를 가져오려면 독립적인 비밀번호를 입력하세요.","import_local_prompt_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","select_encrypt_mode":"암호화 모드 선택","update_cloud_key":"클라우드에 저장된 키 업데이트","backup_to_cloud":"라이브러리 키를 클라우드에 백업","save_local":"라이브러리 키를 로컬 암호화 파일로 저장","create_new_key":"새 라이브러리 키 만들기","creating_lib_key":"라이브러리 키 생성 중...","loading_lib_key":"라이브러리 키 로드 중...","failed_to_create_lib_key":"라이브러리 키를 만들지 못했습니다.","failed_to_load_lib_key":"라이브러리 키를 로드하지 못했습니다.","import_local_key":"로컬로 키 가져오기","import_lib_key_from_local":"라이브러리 키를 로컬로 가져오기","import_from_cloud":"클라우드에서 라이브러리 키 가져오기","create_or_import_key":"라이브러리 키 만들기 또는 가져오기","create_or_import_key_desc":"라이브러리 키는 분산형 데이터베이스로 콘텐츠를 가져오고 게시하는 데 사용되는 독립적인 키입니다.","store_your_lib_key":"라이브러리 키 저장","export_cloud_key":"클라우드에서 키 내보내기","export_current_key":"현재 키 내보내기","change_password":"비밀번호 변경","enable_cloud_storage":"클라우드 스토리지 활성화","disable_cloud_storage":"클라우드 스토리지 비활성화","disable_cloud_storage_desc":"클라우드 저장소를 비활성화하면 클라우드에 저장된 키가 제거됩니다. 키가 로컬에 저장되었는지 확인하십시오.","sync_at":"동기화 위치: {time}","cloud_storage_enabled":"{storage}와 키체인 동기화","cloud_storage_disabled":"클라우드 스토리지 비활성화됨","saved_locally":"로컬에 저장됨","export_key":"키 파일 내보내기","cloud_independent_password":"클라우드 독립 암호","key_file_unlock_password":"키 파일 잠금 해제 암호","re_enter_unlock_password":"잠금해제 비밀번호 재입력","independent_password_not_enabled":"현재 비밀번호는 알파비즈 계정 비밀번호입니다(독립적인 비밀번호는 설정되어 있지 않습니다)","use_cognito_hash":"Alphabiz 계정 비밀번호 사용","use_independent_password":"독립적인 비밀번호 사용","keychain_lib":"도서관 열쇠","loading_keychain_state":"키체인 로드 중...","backing_up":"백업...","backup_current_key":"현재 키를 클라우드에 백업","cloud_lib_key_not_existed":"클라우드에 라이브러리 키가 없습니다.","open_keychain_file":"키체인 파일 열기","confirm_open_abk":"ABK 파일을 여시겠습니까","use_the_key":"열쇠를 사용","backup_the_key":"키를 클라우드에 백업","keychain_data_does_not_exist":"키체인 데이터가 존재하지 않습니다","timeout of 0ms exceeded":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","XhrError":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","payer credit amount is not enough":"크레딧이 부족합니다","payee does not exist":"수취인이 존재하지 않습니다.","block_list_manage":"차단 목록 관리","blocked_users":"차단된 사용자","blocked_channels":"차단된 채널","unblock_user":"사용자 차단 해제","unblock_channel":"채널 차단 해제","no_blocked_user":"차단된 사용자 없음","no_blocked_channel":"차단된 채널 없음","field_required":"{0}이(가) 필요합니다.","setting":"환경","unknown_media":"알 수 없는 미디어","settings_button_visible":"버튼 표시","settings_setting":"환경","settings_playback_rate":"재생 속도","settings_subtitle":"부제","settings_pip":"씨","settings_fullscreen":"전체 화면","settings_subtitle_options":"자막 옵션","settings_normal":"정상","settings_italic":"이탤릭체","settings_lighter":"거룻배","settings_bolder":"대담한","settings_small":"작은","settings_large":"크기가 큰","about":"에 대한","services":"서비스","hide":"숨다","hide_others":"다른 사람 숨기기","show_all":"모두 보이기","quit":"그만두다","edit":"편집하다","redo":"다시 하다","cut":"자르다","paste":"반죽","select_all":"모두 선택","view":"보다","reload":"새로고침","toggle_full_screen":"전체 화면 전환","toggle_developer_tools":"개발자 도구 전환","window":"창문","minimize":"최소화","bring_all_to_front":"모두 앞으로 가져오기","help":"돕다","github_repo":"Github 레포","issues":"문제","learn_more":"더 알아보기","learn_spelling":"맞춤법 배우기","lookup_selection":"\\"{selection}\\" 검색","search_with_google":"Google로 검색","save_as":"다른 이름으로 저장","save_image":"이미지를 저장","save_image_as":"이미지를 다른 이름으로 저장...","copy_link":"링크 복사","save_link_as":"다른 이름으로 링크 저장...","copy_image":"복사 이미지","copy_image_as":"다음으로 이미지 복사...","copy_image_address":"이미지 주소 복사","download_complete":"다운로드를 완료하였습니다","download_complete_message":"{0} 다운로드됨","is_running":"{0} 실행 중","open":"{0} 열기","launch_problem":"시작 문제","ask_clear_data":"{0}를 실행하려고 시도했지만 여러 번 실패한 것 같습니다.\\n모든 앱 데이터를 지우고 나중에 실행하시겠습니까?","launch_directly":"직접 실행","clear_all_data":"모든 데이터 지우기","ask_clear_confirm":"이렇게 하면 모든 구성, 로그 및 사용자 데이터가 제거됩니다!\\n그런 다음 {0}를 다시 시작해야 할 수도 있습니다.\\n데이터를 지우시겠습니까?","confirm_launch":"아니요, 직접 시작합니다.","confirm_clear":"예, 모든 데이터를 삭제합니다."}')},"6bdd":function(e,t){e.exports=require("child_process")},"6ce4":function(e,t,a){},7:function(e,t){},7285:function(e,t,a){"use strict";a("c066")},7297:function(e,t,a){"use strict";a("a5fe")},7405:function(e,t,a){},7447:function(e,t,a){},7686:function(e,t,a){},"76b4":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},7895:function(e,t,a){"use strict";a("ae24")},"7ad0":function(e,t,a){},"7d7c":function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return me}));a("a1c1"),a("7a76");var n=a("c620"),o=a("f680"),i=a("61a1"),r=a("1926"),s=a("5584"),l=a("eb7a"),c=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",{staticStyle:{position:"relative"}},[a("input",{ref:"file",staticStyle:{display:"none"},attrs:{id:"media-file-upload",type:"file","data-cy":"file-input"},on:{input:e.manualAddFile}}),a("input",{ref:"subtitle",staticStyle:{display:"none"},attrs:{type:"file",accept:".srt,.vtt"},on:{input:e.manualAddSubtitle}}),a("div",{attrs:{id:"video-container",lang:e.lang}},[a("video",{ref:"video",staticClass:"video-js vjs-default-skin vjs-16-9 vjs-big-play-centered vjs-fluid",staticStyle:{height:"100%"},attrs:{crossorigin:"anonymous",id:"my-video"}})]),a("audio-info",{attrs:{show:e.isAudio}}),a("video-splash",{attrs:{show:e.showSplash,videoLoadingHint:e.videoLoadingHint}}),a("advanced-options",{attrs:{show:e.showAdvancedOptions,advancedOptions:e.advancedOpt},on:{close:function(){return e.toggleAdvancedOptions(!1)}}})],1)},d=[];a("de6c"),a("dc89"),a("2425"),a("d4b5");const u=a("bc7b"),_=a("d6fe"),p=a("17de"),m=a("5c0c");function h(e){const t=e.path||e;if(console.log(t),!u.existsSync(t)&&!u.existsSync(t+".downloading"))return[];const a=_.dirname(e.path),n=_.extname(e.path),o=e.name.substring(0,e.name.lastIndexOf("."));console.log(a,o,n);const i=b(a,o),r=f(a,i),s=y(a,o),l=g(a,s);return[...r,...l]}function g(e,t){const a=[];try{t.forEach(((t,n,o)=>{o[n]=e+"/"+t;const i=u.readFileSync(o[n]),r=m.decode(i,p.detect(i)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),s=1===(t.match(/\./g)||[]).length?t:_.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".srt";a.push({src:URL.createObjectURL(new Blob([v(r)])),label:s,path:e+"\\"+t})}))}catch(n){console.log(n)}return console.log(a),a}function f(e,t){const a=[];try{t.forEach(((t,n,o)=>{o[n]=e+"/"+t;const i=u.readFileSync(o[n]),r=p.analyse(i);console.log("encoding",r);const s=m.decode(i,p.detect(i)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),l=1===(t.match(/\./g)||[]).length?t:_.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".vtt";a.push({src:URL.createObjectURL(new Blob([s])),label:l,path:e+"\\"+t})}))}catch(n){console.log(n)}return console.log(a),a}function b(e,t){let a;try{a=u.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".vtt")))}catch(n){console.log(n)}return a}function y(e,t){let a;try{a=u.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".srt")))}catch(n){console.log(n)}return a}function v(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}const k=a("d310").isElectron();function S(e){if(!k||"string"!==typeof e)return e;const t=a("d6fe"),n=t.basename(e);return{name:n,path:e}}var C=a("4fd2"),x=a("3d18"),$=a("e3c7"),T=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],attrs:{id:"video-splash"}},[a("div",{staticClass:"loading"},[a("q-circular-progress",{staticClass:"q-ma-md",attrs:{indeterminate:"",size:"24px",color:"warning"}}),a("p",[e._v(e._s(e.videoLoadingHint))])],1)])])},z=[],P={name:"VideoSplash",props:{show:{type:Boolean},videoLoadingHint:{type:String}},data(){return{}},created(){},mounted(){},computed:{},methods:{}},A=P,I=(a("e0e1"),a("2b5f")),q=a("64e7"),O=a("09a4"),E=a.n(O),D=Object(I["a"])(A,T,z,!1,null,"bcdd35fc",null),j=D.exports;E()(D,"components",{QCircularProgress:q["a"]});var N=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"audio-info-container"},[a("p",{staticClass:"info"},[e._v(e._s(e.$t("this_is_an_audio_file")))]),a("img",{attrs:{src:e.icon,alt:"favicon",width:"100px"}})])])},L=[],U={name:"AudioInfo",components:{},props:{show:{type:Boolean}},data(){return{icon:"developer/assets/icon-256.png"}},created(){},mounted(){},computed:{},methods:{}},R=U,M=(a("eb21"),Object(I["a"])(R,N,L,!1,null,"d5366250",null)),F=M.exports,B=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show},on:{input:e.close}},[a("q-card",{staticStyle:{width:"600px","max-width":"80vw","overflow-x":"hidden"}},[a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"text-h6 col-12"},[e._v(e._s(e.$t("advanced_options")))])]),a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"col-4 justify-start q-pl-xl q-my-md"},[e._v(e._s(e.advancedOptions[0].name)+":")]),a("div",{staticClass:"col-8 justify-start q-pl-md q-my-md",staticStyle:{"word-wrap":"break-word"}},[e._v(e._s(e.advancedOptions[0].value))]),a("div",{staticClass:"col-4 justify-start q-pl-xl q-my-md"},[e._v(e._s(e.advancedOptions[1].name)+":")]),a("div",{staticClass:"col-8 justify-start q-pl-md q-my-md",staticStyle:{"word-wrap":"break-word"}},[e._v(e._s(e.advancedOptions[1].value))]),a("div",{staticClass:"col-4 justify-start q-pl-xl q-my-md"},[e._v(e._s(e.advancedOptions[2].name)+":")]),a("div",{staticClass:"col-8 justify-start q-pl-md q-my-md",staticStyle:{"word-wrap":"break-word"}},e._l(e.advancedOptions[2].value,(function(t,n){return a("div",{key:n,staticClass:"license-section"},[e._v("\n "+e._s(t.label)+"\n ")])})),0)])],1)],1)},W=[],H={name:"AdvancedOptions",components:{},props:{show:Boolean,advancedOptions:Array},data(){return{}},created(){},mounted(){},computed:{},methods:{close(){this.$emit("close")}}},V=H,Q=a("b2aa"),G=a("e586"),K=a("d7c7"),Y=Object(I["a"])(V,B,W,!1,null,"5c3e2e5d",null),J=Y.exports;E()(Y,"components",{QDialog:Q["a"],QCard:G["a"],QCardSection:K["a"]});var Z=a("d710"),X=a.n(Z),ee=a("908d"),te=a("d558");const ae=a("d310").isElectron();window.videojs=l["default"],a("4b37"),a("94ce"),a("63f2");const ne=X.a.fileName,oe={toggleSplash(){},updatePlayer(){}};var ie={name:"Player",inject:["rootApp","io"],components:{VideoSplash:j,AudioInfo:F,AdvancedOptions:J},data(){return{player:null,playerOptions:{fill:!1,autoplay:!0,responsive:!0,fluid:!0,preload:"auto",controls:!0,controlBar:{volumePanel:{inline:!1}}},subsBtn:null,progress:[],fileName:"",playerLang:"",playerCacheTime:0,showSplash:!1,videoLoadingHint:"",showAdvancedOptions:!1,isUpdateSubtitle:"",isAudio:!1,isPause:!1}},created(){this.initVideoComponent(),this.playerLang=s["a"].state.setting.language,this.playerCacheTime=s["a"].state.setting.videoCacheTime,window.addEventListener("error",(e=>{console.log("Uncaught global error",e.message,"\nThis has no effect to app and can be ignore")})),ae&&($["ipcRenderer"].once("ask-for-player",(()=>{this.$q.notify({message:this.$t("not_default_player"),actions:[{label:this.$t("dont_show_again"),textColor:"warning",handler:()=>{s["a"].dispatch("set",{dontAskForPlayer:!0})}},{label:this.$t("go_to_settings"),textColor:"warning",handler:()=>{this.$router.push("/basicSetting")}}]}),s["a"].dispatch("set",{dontAskForPlayer:!0})})),this.$root.$on("pause-player-before-close",(()=>{this.player&&(this.isPause=!0,s["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),s["a"].state.video.currentVideo.status&&this.player&&this.player.pause())})));for(const e in oe)"function"===typeof this[e]&&(oe[e]=(...t)=>this[e](...t))},mounted(){console.log("player mounted"),this.loadPlayer(!0)},async activated(){if(this.playerLang!==s["a"].state.setting.language&&(this.playerLang=s["a"].state.setting.language,this.languageChange()),this.playerCacheTime!==s["a"].state.setting.videoCacheTime){console.log("videoCacheTime change",s["a"].state.setting.videoCacheTime),this.playerCacheTime=s["a"].state.setting.videoCacheTime;const e=this.updateCacheRate(s["a"].state.setting.videoCacheTime);if(e){this.updateSrc(s["a"].state.video.currentVideo.url,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(s["a"].state.video.currentVideo.currentTime);const e=s["a"].state.video.currentVideo.currentTime/this.player.duration(),t=document.querySelector(".vjs-play-progress");t&&setTimeout((()=>{t.style.width=100*e+"%"}),500)}}if(ae||Object(te["a"])()){if(s["a"].state.video.currentVideo.remotePlay){this.isUpdateSubtitle="",this.isPause=!1,this.loadPlayer(!0),this.toggleSplash(!0),this.player.bigPlayButton.hide();const e=setTimeout((()=>{this.videoLoadingHint=this.$t("playing_timeout_hint")}),18e4);$["ipcRenderer"].send("get-stream-address"),$["ipcRenderer"].once("stream-address",((t,a)=>{console.log("got stream address",a),this.toggleSplash(!1),clearTimeout(e);let{address:n,filepath:o}=a;console.log("Stream play, try update player.src",a,"address",n,"filepath",o),o||(o="win32"===process.platform?decodeURI(n).replace("play:///","").replace(/\//g,"\\"):decodeURI(n).replace("play://","")),s["a"].dispatch("currentVideoUrl",n),s["a"].dispatch("currentVideoPath",o),s["a"].dispatch("currentVideoCurrentTime",0);try{this.updateSrc(n),this.isPause?(setTimeout((()=>{this.player.pause()}),1e3),this.isPause=!1):this.player.play(),this.player.readyState()&&s["a"].dispatch("resetRemotePlay"),this.clearOldSubtitle(),this.addSubtitle(o),this.changeSubtitleForLang()}catch(t){console.log("src err",t),s["a"].dispatch("resetRemotePlay")}}))}s["a"].state.video.currentVideo.url||s["a"].state.video.currentVideo.infoHash||this.loadPlayer(!0),$["ipcRenderer"].on("pause-player",(()=>{this.player&&(this.isPause=!0,s["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),s["a"].state.video.currentVideo.status&&this.player&&this.player.pause())}))}else s["a"].state.video.currentVideo.url!==this.player.src()&&console.log("url changed",s["a"].state.video.currentVideo.url,this.player.src());this.io.on("server_progress",(e=>{var t;if("/player"!==this.$router.currentRoute.path)return;if(!this.player&&!this.player.readyState())return;if(null===(t=s["a"].state.video.currentVideo)||void 0===t||!t.url)return;const a=e.find((e=>{var t;return null===(t=s["a"].state.video.currentVideo)||void 0===t?void 0:t.url.includes(e.name)}));if(a&&a.progress){const e=[],t=a.progress.length;let n=a.progress[0],o=1;for(let i=1;i{this.isUpdateSubtitle||(this.isUpdateSubtitle=e,console.log("update_subtitleList!!!",e,"path:",s["a"].state.video.currentVideo.path,t))})),this.io.on("clear_player",(e=>{const t=s["a"].state.video.currentVideo.url;if(s["a"].state.video.currentVideo.infoHash!==e.infoHash)return;const a=/^http/gm.test(t),n=/^play:\/\//gm.test(t);n&&"paused"===e.status||(a||n)&&(console.log("is",a,n),s["a"].state.video.currentVideo.pipStatus&&this.player.exitPictureInPicture(),s["a"].dispatch("resetPlayer"),this.$destroy(),setTimeout((()=>{console.log("timeout",a,n),this.$router.push("/player");try{this.loadPlayer(!0)}catch(e){console.log("Failed to force load player. This will not go wrong.",e.message||e)}a&&this.$q.notify(this.$t("stop_stream_player")),n&&this.$q.notify(this.$t("stop_player"))}),500))}))},beforeDestroy(){this&&this.player&&this.player.dispose()},computed:{lang(){const e=s["a"].state.setting.language?s["a"].state.setting.language:"en-US";return this.player&&this.player.language(e),e},settings(){const e=s["a"].state.setting;return{defaultVideoPlayer:e.defaultVideoPlayer,language:e.language}},advancedOpt(){let e=s["a"].state.video.currentVideo.path;const t=s["a"].state.video.currentVideo.url;t&&t.startsWith("play://")&&(e=decodeURI(t).replace("play:///",""));const a=e?e.replace(/^.*[\\\/]/,""):this.fileName;return[{name:this.$t("title"),value:decodeURIComponent(a).replace("\\","")},{name:this.$t("location"),value:e},{name:this.$t("subtitle_file"),value:s["a"].state.video.currentVideo.subtitleList}]}},watch:{"$store.state.video.currentVideo.updatePlayer"(e,t){console.log("watch updatePlayer:",e),e&&e!==t&&(console.log("need update player"),s["a"].dispatch("updatePlayer",!1),this.updatePlayer(s["a"].state.video.currentVideo.url))}},methods:{toggleSplash(e,t=""){this.showSplash=e,this.videoLoadingHint=t},toggleAudio(e){this.isAudio=e},toggleAdvancedOptions(e){this.showAdvancedOptions=e},openFile(){console.log("click",this.$refs.file),this.$refs.file.click()},bigPlayBtnOpenFile(){const e=document.querySelector("#my-video video").src;console.log("bigPlayBtn",e),e?this.player.play():this.openFile()},async languageChange(){this.player&&(this.player.language(this.lang),this.updateComponentText(),s["a"].state.video.currentVideo.url&&await this.loadPlayer(!0))},manualAddFile(e){console.log("Open Media File: "+e.target.files[0]),0!==e.target.files.length&&(e.target.files[0].path&&s["a"].dispatch("currentVideoPath",e.target.files[0].path),this.updatePlayer(e.target.files[0]),setTimeout((()=>{this.$refs.file.value=null}),500))},async manualAddSubtitle(e){const t=e.target.files;if(!t.length)return;const a=t[0],n=this.player.textTracks(),o=await this.addSubtitle(a,a.name);console.log("manualAddSubtitle",a,a.name,o);let i=-1;setTimeout((()=>{for(let e=0;e`,this.updateTitle=function(e){this.el_.innerHTML=``}}})),l["default"].registerComponent("SubsButton",l["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Add subtitles...",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}})),l["default"].registerComponent("AddSubButton",l["default"].extend(t,{constructor:function(){t.apply(this,arguments);const e=arguments[1];this._text=e.text||"Add subtitles...",this.el_.innerHTML+=`${this._text}`}})),l["default"].registerComponent("AdvancedOptionsButton",l["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Advanced Options",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}}));const a=l["default"].getComponent("SeekBar");a.prototype.getPercent=function(){const e=this.player_.currentTime(),t=e/this.player_.duration();return t>=1?1:t},a.prototype.handleMouseMove=function(e){let t=this.calculateDistance(e)*this.player_.duration();t===this.player_.duration()&&(t-=.1),this.player_.currentTime(t),this.update()}},addControlBarComponent(){const e=this.player.controlBar.addChild("FileButton",{text:this.$t("open_file")},1),t=ee["b"].is.mobile?"touchend":"click";e.on(t,this.openFile),this.subsBtn=this.player.controlBar.addChild("SubsButton",{text:this.$t("add_subtitles")+"..."},14),this.subsBtn.on(t,(()=>this.$refs.subtitle.click()));const a=this.player.controlBar.addChild("AdvancedOptionsButton",{text:this.$t("advanced_options")},16);a.on(t,(()=>{this.player.isFullscreen()&&this.player.exitFullscreen(),this.toggleAdvancedOptions(!0)}))},updateComponentText(){const e=this.player.controlBar.getChild("FileButton");e.updateTitle(this.$t("open_file")),this.subsBtn.updateTitle(this.$t("add_subtitles")+"...");const t=this.player.controlBar.getChild("AdvancedOptionsButton");t.updateTitle(this.$t("advanced_options"))},loadPlayer(e=!1){let t=()=>{};const a=new Promise((e=>{t=e}));if(!l["default"].getPlayer("my-video")||e){if(e){Object(l["default"])("my-video")&&(Object(l["default"])("my-video").isInPictureInPicture()&&Object(l["default"])("my-video").exitPictureInPicture(),Object(l["default"])("my-video").dispose());const e=document.querySelector("#video-container");e&&(e.innerHTML='')}try{this.player=Object(l["default"])("my-video",this.playerOptions,(()=>t()))}catch(n){console.log("loadPlayer error",n);const e=n.message;e.includes("The element or ID supplied is not valid.")&&(s["a"].dispatch("resetPlayer"),this.$destroy())}if(this.player.on("ready",(async()=>{s["a"].dispatch("updateVideoStatus",!1)})),this.player.on("canplay",(async()=>{s["a"].dispatch("resetRemotePlay");const e=(ae?s["a"].state.video.currentVideo.path:this.fileName||s["a"].state.video.currentVideo.url).split(".").pop();if(this.toggleAudio(Object(C["b"])(e)),this.isUpdateSubtitle&&s["a"].state.video.currentVideo.infoHash===this.isUpdateSubtitle&&s["a"].state.video.currentVideo.path&&(await this.addSubtitle(s["a"].state.video.currentVideo.path),this.changeSubtitleForLang(),this.isUpdateSubtitle=""),!s["a"].state.video.currentVideo.url){const e=document.querySelector("#my-video video").src;s["a"].dispatch("currentVideoUrl",e);const t=e.split("/"),a=t[t.length-1];"undefined"!==typeof a&&(this.fileName=a),this.loadPlayer(!0),setTimeout((()=>this.player.play()),500)}setTimeout((()=>{!1===s["a"].state.video.currentVideo.status&&this.player.paused()&&this.player.bigPlayButton.show()}),700)})),this.player.on("play",(async()=>{if(this.settings.defaultVideoPlayer!==ne&&s["a"].state.video.currentVideo.url.startsWith("play://")&&s["a"].state.video.currentVideo.infoHash){this.player.pause(),this.player.exitPictureInPicture();const e=s["a"].state.video.currentVideo.path;return console.log("player will pause,open default player,"+e),await Object(x["b"])(this.settings.defaultVideoPlayer,e),s["a"].dispatch("resetPlayer"),this.loadPlayer(!0)}this.player.bigPlayButton.hide(),s["a"].dispatch("updateVideoStatus",!0)})),this.player.on("pause",(()=>{4===this.player.readyState()&&this.player.bigPlayButton.show(),s["a"].dispatch("updateVideoStatus",!1)})),this.player.on("seeked",(()=>{setTimeout((()=>{const e=document.querySelector(".vjs-load-progress"),t=document.querySelector(".vjs-play-progress");e.style.width=t.style.width}),200)})),this.player.on("waiting",(()=>{const e=document.querySelector("#my-video video");e&&(e.style.backgroundColor="black")})),this.player.on("loadedmetadata",(()=>{const e=s["a"].state.video.currentVideo.url;if(!e||!/^http/gm.test(e))return;if(!/wait=0$/gm.test(e)||0===s["a"].state.setting.videoCacheTime)return;const t=this.updateCacheRate(s["a"].state.setting.videoCacheTime);console.log("loadedmetadata!",t),t&&(this.updateSrc(e,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(s["a"].state.video.currentVideo.currentTime))})),this.player.on("leavepictureinpicture",(()=>{this.player&&this.player.bigPlayButton.hide(),s["a"].dispatch("updateVideoPIPStatus",!1),setTimeout((()=>{try{this.player.paused()?this.player.bigPlayButton.show():this.$router.push("/player")}catch(n){console.log("Failed to check pause status, but nothing will go wrong with this.",n.message||n)}}),500)})),this.player.on("enterpictureinpicture",(()=>{s["a"].dispatch("updateVideoPIPStatus",!0),this.player.paused()||setTimeout((()=>this.player.play()),500)})),this.player.on("timeupdate",(()=>{s["a"].dispatch("currentVideoCurrentTime",this.player.currentTime())})),this.player.on("error",(()=>{this.toggleSplash(!1),console.log("player error event!",this.player.error_.message);const e=this.player.languages()[this.player.language()],t=e&&e[this.player.error_.message]||this.player.error_.message;if(4!==this.player.error_.code||ae||Object(te["a"])())this.$q.notify(t);else{const e='open_in_new',a=`${this.$t("download")} ${ne} Desktop${e}`,n=`${a}`,o=this.$q.notify({html:!0,message:`${t}${n}`,actions:[{label:this.$t("close"),color:"green",handler(){o()}}],timeout:0})}s["a"].dispatch("resetPlayer"),this.$q.loading.hide(),this.loadPlayer(!0)})),s["a"].state.video.currentVideo.url&&!s["a"].state.video.currentVideo.remotePlay){this.player&&this.player.bigPlayButton.hide();const e=s["a"].state.video.currentVideo.subtitleList,t=s["a"].state.video.currentVideo.status,a=s["a"].state.video.currentVideo.updatePlayer;if(this.updateSrc(s["a"].state.video.currentVideo.url),this.player.currentTime(a?0:s["a"].state.video.currentVideo.currentTime),console.log("loadplayer(force) status",a,t,e,this.player),!a&&!t&&!/^https:\/\/localhost:8080\/webtorrent/gm.test(s["a"].state.video.currentVideo.url)){const e=()=>{this.player.pause(),this.player.off("play",e)};this.player.on("play",e)}"undefined"!==typeof e&&e.length?this.restoreSub(e):this.addSubtitle(s["a"].state.video.currentVideo.path),s["a"].dispatch("updatePlayer",!1)}return ee["b"].is.mobile?this.player.bigPlayButton.on("touchend",this.bigPlayBtnOpenFile):this.player.bigPlayButton.on("click",this.bigPlayBtnOpenFile),this.addControlBarComponent(),s["a"].dispatch("updateVideoPIPStatus",!1),a}this.player=l["default"].getPlayer("my-video")},async updatePlayer(e){if(!e)return;this.player||await this.loadPlayer(!0);const t="string"===typeof e?e:URL.createObjectURL(e);console.log("update Player",e,t),this.fileName=e.name,s["a"].dispatch("currentVideoUrl",t);try{this.updateSrc(t)}catch(a){console.debug("updateSrc error",a.message||a),await this.loadPlayer(!0)}s["a"].dispatch("resetInfoHash"),this.clearOldSubtitle(),s["a"].state.video.currentVideo.path?await this.addSubtitle(s["a"].state.video.currentVideo.path):await this.addSubtitle(e,e.name),this.changeSubtitleForLang()},updateSrc(e,t={clearSubtitle:!0,clearProgress:!0}){this.toggleAudio(!1),t.clearProgress&&this.clearProgress(),t.clearSubtitle&&s["a"].dispatch("currentVideoSubtitleList",[]),e.startsWith("play://")&&(e+=`?infoHash=${s["a"].state.video.currentVideo.infoHash}`),console.log("updateSrc()",e),this.player.src([{src:e,type:"video/mp4"}])},updateCacheRate(e){if(!this.player.duration())return;const t=60*e/this.player.duration(),a=s["a"].state.video.currentVideo.url;return!!a&&(s["a"].dispatch("currentVideoUrl",a.replace(/wait=.*/gm,`wait=${t}`)),!0)},updateProgress(e){if(e){let t=document.querySelector("#download-progress");if(!t){const e=document.querySelector(".vjs-progress-holder");if(!e)return;t=e.appendChild(document.createElement("div")),t.id="download-progress"}const a=e=>{let t=0;for(let a=0;a1?t+e[a].length:t+1,e[a].rate=t;return e},n=a(e);t.style.background=n.reduce(((e,t)=>e+`, ${t.color} 0%, ${t.color} ${t.rate}%`),"linear-gradient(90deg")+")"}},clearProgress(){let e=document.querySelector("#download-progress");if(!e){const t=document.querySelector(".vjs-progress-holder");if(!t)return;e=t.appendChild(document.createElement("div")),e.id="download-progress"}e.style.background=""},async addSubtitle(e,t){var a;console.log("sub",e,t);let n=e;if("string"===typeof e){if(e.startsWith("blob:"))return;n=e.startsWith("play://")?S(decodeURI(e.replace("play:///",""))):S(e)}t||(t=(null===(a=n)||void 0===a?void 0:a.name)||"");const o=t.match(/\.[^.]+$/);if(!o)return;const i=o[0].toLowerCase();console.log("addSubtitle sub",n,t);let r=!1,s=!1;if(ae)[".ass"].includes(i)?console.log("add .ass sub"):await Promise.all(h(n).map((e=>new Promise((a=>{setTimeout((()=>{s=this.isRepeatSubtitle(e.label,e.path),"number"!==typeof s&&(this.player.addRemoteTextTrack({kind:"captions",label:e.label||t,src:e.src},!0),this.updateSubtitleList(e.label||t,{path:e.path}),r=!0),a()}))})))));else{if(console.log("web addSubtitle"),![".srt",".vtt"].includes(i))return;s=this.isRepeatSubtitle(t),"number"!==typeof s&&await new Promise((e=>{const a=new FileReader;a.readAsText(n),a.onload=a=>{const n=".vtt"===i?a.target.result:v(a.target.result);console.log(a.target.result),this.player.addRemoteTextTrack({src:URL.createObjectURL(new Blob([n])),kind:"captions",label:t},!0),this.updateSubtitleList(t),r=!0,e()}}))}if(r&&this.subsBtn){this.subsBtn.addClass("hidden"),this.listenSubsCapsMenuItem();const e=this.player.textTracks();e&&e[0]&&(e[0].mode="showing",this.updateSubtitleList(e[0].label,{isShow:!0})),this.appendAddSubBtn()}return s},isRepeatSubtitle(e,t){const a=s["a"].state.video.currentVideo.subtitleList;let n=!1;for(let o=0;o{a[o].label===e&&(n=o),a[o].isShow=!1})),"number"===typeof t.index?a[t.index].isShow=!0:-1!==n&&(a[n].isShow=!0)}else a.push({label:e,path:t.path,isShow:t.isShow});s["a"].dispatch("currentVideoSubtitleList",a)},listenSubsCapsMenuItem(){const e=this.player.controlBar.subsCapsButton,t=e.menu.children();t.forEach(((e,t)=>{if("SubsCapsMenuItem"===e.constructor.name){const a=ee["b"].is.mobile?"touchend":"click";e.on(a,(()=>{this.updateSubtitleList(e.track.label,{index:t-2,isShow:!0})}))}}))},clearOldSubtitle(){if(!this.subsBtn)return;this.subsBtn.removeClass("hidden");const e=this.player.remoteTextTracks();for(let t=e.length-1;t>=0;t--)this.player.removeRemoteTextTrack(e[t])},async restoreSub(e){let t;console.log("restoreSub",e),s["a"].dispatch("currentVideoSubtitleList",[]);for(const a in e){if(!e[a].path)return;await this.addSubtitle(e[a].path),e[a].isShow&&(t=a)}if("string"===typeof t){const e=this.player.textTracks();for(let t=0;t{const t=this.player.controlBar.subsCapsButton,a=t.menu.children();if(!a)return;if(a.some((e=>"AddSubButton"===e.name_)))return;const n=t.menu.addChild("AddSubButton",{text:e.$t("add_subtitles")+"..."},2);n.addClass("add-sub-btn");const o=ee["b"].is.mobile?"touchend":"click";n.on(o,(()=>{this.$refs.subtitle.click()}))}),1e3)}}},re=ie,se=(a("803a"),a("9b72")),le=a("f106"),ce=Object(I["a"])(re,c,d,!1,null,null,null);ce.exports;E()(ce,"components",{QPage:se["a"],QIcon:le["a"]});var de=a("6422");const ue=()=>{const e=l["default"].getAllPlayers();return Array.isArray(e)?e[0]:null},_e=()=>{const e=()=>(n["wtClient"].torrents[0]&&n["wtClient"].torrents[0].files&&n["wtClient"].torrents[0].files.forEach((e=>{e._serviceWorker&&"activated"===e._serviceWorker.state||(e._serviceWorker=n["wtClient"].serviceWorker)})),!0);if(n["wtClient"].serviceWorker&&"activated"===n["wtClient"].serviceWorker.state){if("activated"===n["wtClient"].serviceWorker.state)return e();n["wtClient"].serviceWorker=null}if(!navigator.serviceWorker||!navigator.serviceWorker.controller)return!1;const t=navigator.serviceWorker.controller;return"activated"===t.state&&(n["wtClient"].loadWorker(t),e())};let pe=null;function me(e){if("string"===typeof e&&e.startsWith("/webtorrent/")&&(e=e.replace("/webtorrent/","")),oe.toggleSplash(!1),!_e())return void o["a"].create(r["b"].t("service_worker_error"));if(!n["wtClient"].torrents[0])return void o["a"].create(r["b"].t("add_task_first"));let t=!1;const a=Date.now();Object(i["b"])().push({name:"Player",params:{action:{type:"play_remote"}}}),pe&&clearInterval(pe),oe.toggleSplash(!0,r["b"].t("loading")),pe=setInterval((async()=>{if(t)return;if(Date.now()-a>3e4&&!n["wtClient"].torrents[0].ready)return oe.toggleSplash(!1),o["a"].create(r["b"].t("player_task_time")),void clearInterval(pe);if(n["wtClient"].torrents[0]&&!n["wtClient"].torrents[0].files[0])return void oe.toggleSplash(!0,r["b"].t("loading"));{const e=n["wtClient"].torrents[0].files[0],t=Object(de["a"])(e.downloaded||0),a=Object(de["a"])(e.length||0),o=`(${t}/${a})`;if(oe.toggleSplash(!0,r["b"].t("downloading")+"... "+o),n["wtClient"].torrents[0].pieces[e._startPiece]||n["wtClient"].torrents[0].pieces[e._startPiece+1])return void console.log("Wait for first two pieces downloaded")}const i=document.querySelector("#my-video video");if(!i)return;try{const a=ue();if(e||(e=n["wtClient"].torrents[0].files[0].path),4===a.readyState()){const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e)}`;if(console.log(t,a.src(),t===a.src()),a.src()!==t)throw a.hasStarted(!1),new Error("Reset since src changed");return console.log(a.readyState(),"ready"),a.setAttribute("muted",!0),a.setAttribute("playsInline",!0),a.setAttribute("autoplay",!1),oe.toggleSplash(!1),void clearInterval(pe)}if(t)return}catch(c){console.log("cannot get vjs",c)}if(t)return;const l=n["wtClient"].torrents[0].files.find((t=>e===t.path));if(i.setAttribute("playsInline",!0),i.setAttribute("muted",!0),i.setAttribute("autoplay",!1),l){console.log("Play file",e,l);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(l.path||l.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=ue();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}else{const e=n["wtClient"].torrents[0].files[0];console.log("Cannot find same file. Use files[0]",e.path);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e.path||e.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=ue();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}oe.toggleSplash(!1),t=!0}),1e3)}},"7f2d":function(e,t){e.exports=require("buffer")},"7fb7":function(e,t,a){"use strict";a("dcb3")},8:function(e,t){},"803a":function(e,t,a){"use strict";a("525c")},8079:function(e,t){e.exports=require("http")},8097:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a("3fd2"),o=a.n(n),i=a("0f0c"),r=a("d558");function s(){if(Object(r["a"])())return!0;const e=Object(i["a"])("packageFormat");return o.a.mas()||o.a.windowsStore()||e&&"snap"===e}},"80f4":function(e,t,a){},8162:function(e,t,a){},"81a4":function(e,t,a){},"81e0":function(e,t,a){a("7a76"),a("0c26"),a("de6c");const n=e=>{const t=`Failed to validate app config: ${e}`,a=new Error(t);throw a.stack=a.stack.trim().split("\n")[0],a},o=["application.manifest","application.reference","batfile","blob","cerfile","chm.file","cmdfile","comfile","cplfile","dllfile","drvfile","exefile","explorer.assocactionid.burnselection","explorer.assocactionid.closesession","explorer.assocactionid.erasedisc","explorer.assocactionid.zipselection","explorer.assocprotocol.search-ms","explorer.burnselection","explorer.closesession","explorer.erasedisc","explorer.zipselection","file","fonfile","hlpfile","htafile","inffile","insfile","internetshortcut","jsefile","lnkfile","microsoft.powershellscript .1","ms-accountpictureprovider","ms-appdata","ms-appx","ms-autoplay","msi.package","msi.patch","ms-windows-store","ocxfile","piffile","regfile","scrfile","scriptletfile","shbfile","shcmdfile","shsfile","smb","sysfile","ttffile","unknown","usertileprovider","vbefile","vbsfile","windows.gadget","wsffile","wsfile","wshfile"];e.exports=function(e){e&&"object"===typeof e||n("config is not an object");for(const t of["name","displayName","author","developer","description","publisher","homepage","upgradeCode","protocol","shortProtocol"])t in e&&"string"===typeof e[t]||n(`config.${t} must be string`);e.name.match(/^[a-zA-Z0-9.\-+]{3,}/)||n("config.name should contain at least 3 characters"),e.protocol.match(/^[a-z][a-z0-9.\-+]{2,}/)||n("config.protocol should contain at least 3 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.protocol)&&n(`The protocol "${e.protocol}" is not available since it is reserved by Windows Store`),e.shortProtocol.match(/^[a-z][a-z0-9.\-+]{1,}/)||n("config.shortProtocol should contain at least 2 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.shortProtocol)&&n(`The protocol "${e.shortProtocol}" is not available since it is reserved by Windows Store`),e.name.toLowerCase()===e.shortProtocol&&n("config.shortProtocol should not be same as config.name"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as config.protocol"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as app name"),e.register&&"object"===typeof e.register||n("config.register should be object"),"whitelist"===e.register.mode&&(Array.isArray(e.register.list)&&0!==e.register.list.length||n('config.register.list should be array with at least one country code since register mode is "whitelist"'))}},8306:function(e,t,a){},8460:function(e,t,a){"use strict";a("91fe")},"848e":function(e,t,a){},"84cb":function(e,t,a){"use strict";a("afe1")},"84f6":function(e,t,a){"use strict";a("de6c"),a("a1c1");var n=a("ff9b"),o=a("d7df"),i=a("5584"),r=a("8750"),s=a("1926"),l=a("0885"),c=a("a11f"),d=a("4fd2");const u=e=>new Promise((t=>{const a=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100);a((()=>{t(e())}))})),_=new n["a"]({data(){return{taskList:{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0},updatingTaskList:!1,lastUpdateTime:Date.now()}},computed:{allTasks(){return[...this.taskList.downloading,...this.taskList.uploading,...this.taskList.downloaded]}},methods:{async updateTaskList(e){if(this.updatingTaskList)console.log("Skip updating task list since busy");else{this.updatingTaskList=!0,await this.$nextTick();const t={},a=[],n={};for(const o in e){const i=e[o];if(!Array.isArray(i)){this.taskList[o]=i;continue}await u((()=>{i.forEach((e=>{Array.isArray(e.files)&&e.files.forEach((e=>{e.path.endsWith(".downloading")&&(e.path=e.path.replace(/\.downloading$/,"")),e.name.endsWith(".downloading")&&(e.name=e.name.replace(/\.downloading$/,""))}))})),this.taskList[o]=i})),t[o]=i.length;const r=[];i.forEach((e=>{"uploading"===o&&a.push({title:e.postTitle||e.name,abUrl:e.alphabizURI});const t={};if(e.infoHash){var n;t.start=(new Date).getTime(),t.getABKey=(new Date).getTime();const a=Object(c["a"])(e.alphabizURI||e.magnetURI||e.infoHash);t.playFile=(new Date).getTime();const o=null===(n=e.files)||void 0===n?void 0:n.find((e=>1===e.progress&&Object(d["a"])(e.path)));r.push({key:a,infoHash:e.infoHash,...o?{playFile:o}:{}}),t.end=(new Date).getTime()}})),n[o]=r}Object.freeze(e),i["a"].commit("updateTasks",{tasksCount:t,uploadingTasks:a,abKeyObj:n}),await this.$nextTick(),this.updatingTaskList=!1}},deleteTask(e){const t=[];return i["a"].getters.settings.defaultDeleteFiles&&t.push("deleteFiles"),console.log("to del",e),new Promise((a=>{if(e.isAutoUpload)return r["a"].create({title:s["b"].t("delete")+" "+(e.postTitle||e.name),message:s["b"].t("delete_autoupload_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete_anyway")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((()=>{console.log("Delete autoupload file",e),o["a"].emit("delete_torrent",e.infoHash,!0),a(!0)})).onCancel((()=>{a(!1)}));if(e.missAllFile)return o["a"].emit("delete_torrent",e.infoHash,!0),a(!0);const n=e.postTitle||e.name||e.origin||e.infoHash||"",c=n.length>20?n.substring(0,18)+"...":n;r["a"].create({title:s["b"].t("delete")+" "+c,style:"white-space:pre-wrap;word-break:break-all",message:s["b"].t("delete_confirm_message"),options:{type:"checkbox",model:t,items:[{label:s["b"].t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((t=>{o["a"].emit("delete_torrent",e.infoHash||e.token,t.includes("deleteFiles")),i["a"].dispatch("set",{defaultDeleteFiles:t.includes("deleteFiles")}),Object(l["c"])(e.infoHash,!1),a(!0)})).onCancel((()=>{a(!1)}))}))},onDeleteTask(e){for(const t in this.taskList){const a=_[t];if(!Array.isArray(a))continue;const n=a.findIndex((t=>t.infoHash===e));-1!==n&&a.splice(n,1)}}}});t["a"]=_},"860f":function(e,t,a){"use strict";a("4544")},"86d7":function(e,t,a){"use strict";a("6545")},"878c":function(e,t,a){"use strict";a("9e9b")},"88ba":function(e){e.exports=JSON.parse('{"lib_index":"घर","lib_edit":"प्रकाशित करना","lib_publish":"प्रकाशित करना","lib_explore":"अन्वेषण करना","lib_following":"अगले","lib_favorite":"स्थानीय पसंदीदा","lib_local_favorites":"स्थानीय पसंदीदा","lib_channel":"चैनल","lib_submit":"जमा करना","lib_from_network":"नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करना","welcome_to_lib":"${displayName} मीडिया लाइब्रेरी में आपका स्वागत है","register_or_login":"लॉग इन रजिस्टर करें","lib_recommend":"अनुशंसा करना","lib_recommend_desc":"${displayName} लाइब्रेरी में आपका स्वागत है! यह लाइब्रेरी नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करती है। इसका उपयोग शुरू करने के लिए, आपको कुछ चैनलों का अनुसरण करना होगा।","follow_any_channel_to_continue":"जारी रखने के लिए किसी भी चैनल का अनुसरण करें","follow_channels_and_continue":"{0} चैनलों का अनुसरण करें और जारी रखें","show_more_for_me":"मेरे लिए और अधिक दिखाएँ","no_more_recommend":"अब और कोई अनुशंसा नहीं","key":"चाबी","create_key":"कुंजी बनाएं","save_key":"कुंजी सहेजें","save_key_file":"क्या आप अपनी कुंजी को फ़ाइल के रूप में सहेजना चाहते हैं?","import_key":"कुंजी आयात करें","import":"आयात","invalid_key":"अमान्य कुंजी","back_to_top":"वापस शीर्ष पर","search_for_channel":"चैनल आईडी खोजें","search_channel_no_result":"{0} आईडी वाला चैनल नहीं मिल सका","please_input_channel_id":"कृपया चैनल आईडी इनपुट करें","welcome_help_text":"यह एक विकेन्द्रीकृत मीडिया लाइब्रेरी है। आप की जरूरत है\\n इस डेटाबेस के लिए एक खाता बनाने के लिए। हम ऐसा करेंगे\\n स्वचालित रूप से आपके लिए एक व्यक्तिगत कुंजी उत्पन्न करें।\\n यदि आपके पास पहले से ही कोई चाबी है, तो आप आयात भी कर सकते हैं\\n यहाँ यह।","welcome_key_text":"एक बार लॉग इन करने के बाद, कृपया [कुंजी सहेजें] बटन पर क्लिक करें\\n अपनी निजी कुंजी को सहेजने के लिए दाएं-नीचे कोने में।\\n यदि आपकी कुंजी खो जाती है, तो आप दोबारा लॉगिन नहीं कर पाएंगे।","redirect_to_recommend":"ऐसा लगता है कि आपने किसी चैनल को फ़ॉलो नहीं किया था. [एक्सप्लोर] पेज पर रीडायरेक्ट किया जा रहा है।","channel":"चैनल","follow":"अनुसरण करना","unfollow":"करें","following":"अगले","share":"शेयर करना","unfollow_confirm":"क्या आप वाकई इस चैनल को अनफ़ॉलो करना चाहते हैं? आपकी टाइमलाइन से इस चैनल की सभी पोस्ट हटा दी जाएंगी.","follow_failed_hint":"कार्रवाई अभी भी पृष्ठभूमि में लंबित है. यदि ऑपरेशन लंबे समय तक लागू नहीं होता है, तो कृपया ऐप को पुनरारंभ करें और पुनः प्रयास करें।","block":"अवरोध पैदा करना","unblock":"अनब्लॉक","blocked":"अवरोधित","block_channel":"इस चैनल को ब्लॉक करें","block_channel_confirm":"ब्लॉक चैनल इसे आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","block_creator":"इस चैनल के निर्माता को ब्लॉक करें","unblock_creator":"इस चैनल के निर्माता को अनब्लॉक करें","block_creator_confirm":"ब्लॉक क्रिएटर इस क्रिएटर द्वारा बनाए गए सभी चैनलों को आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","share_url_copied":"शेयर यूआरएल आपके क्लिपबोर्ड पर कॉपी हो गया है","follow_time":"समय का पालन करें","update_time":"समय सुधारें","search":"खोज","type":"प्रकार","added":"जोड़ा","click_to_task":"कार्य पर जाने के लिए क्लिक करें","lib_already_added":"आप यह वीडियो पहले ही जोड़ चुके हैं","description":"विवरण","poster":"पोस्टर","channel_poster":"चैनल का पोस्टर","preview":"पूर्व दर्शन","creator":"निर्माता","creator_detail":"निर्माता विवरण","loading_creator":"निर्माता की जानकारी लोड हो रही है","wait_for_creator_loaded":"कृपया निर्माता की जानकारी लोड होने तक प्रतीक्षा करें।","follower":"पालन ​​करने वाला","followers":"समर्थक","follower_list":"अनुयायी सूची","user":"उपयोगकर्ता","channel_title":"चैनल का शीर्षक","channel_id":"चैनल आईडी","post_title":"शीर्षक पोस्ट करें","post_id":"पोस्ट आईडी","import_data_from_excel":"एक्सेल से डेटा आयात करें","set_excel_keys":"एक्सेल कुंजियाँ सेट करें","excel_import_succeded":"एक्सेल आयात सफल हुआ","excel_import_success_msg":"{0} पंक्तियाँ जोड़ने के लिए तैयार हैं, {1} अमान्य और {2} डुप्लिकेट आइटमों को नजरअंदाज कर दिया गया है","cannot_find_channel":"चैनल नहीं मिल सका","cannot_find_posts":"पोस्ट नहीं मिल सकीं","add_channel":"चैनल जोड़ें","add_post":"पोस्ट जोड़ें","edit_channel":"चैनल संपादित करें","channel_setting":"चैनल सेटिंग","edit_post":"संपादित पोस्ट","edit_posts":"पोस्ट संपादित करें","channel_detail":"चैनल विवरण","remove":"निकालना","remove_channel":"चैनल हटाएँ","remove_channel_confirm":"क्या आप निश्चित रूप से इस पोस्ट को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","remove_post":"पोस्ट हटाएँ","remove_post_confirm":"क्या आप निश्चित रूप से इस चैनल को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","preview_mode":"पूर्वावलोकन मोड","preview_mode_desc":"यह आपके चैनल का पूर्वावलोकन है. यहां फिल्मों के सभी रेट दिखाए गए हैं।","edit_user_profile":"उपयोगकर्ता प्रोफ़ाइल संपादित करें","name":"उपनाम","avatar":"अवतार","no_following":"कोई निम्नलिखित चैनल नहीं. जाने के लिए क्लिक करें","no_recommend":"कोई अनुशंसित चैनल नहीं. जाने के लिए क्लिक करें","first_recomment_msg":"यदि यह पहली बार ऐप लॉन्च हुआ है तो इसमें कुछ समय लग सकता है।","invalid_image":"अमान्य छवि","image_not_reachable":"यह छवि यूआरएल पहुंच योग्य नहीं है.","channel_not_found":"चैनल नहीं मिला","cannot_get_channel_info":"चैनल की जानकारी नहीं मिल सकी. इस चैनल को इसके निर्माता द्वारा हटाया जा सकता है और यह अब उपलब्ध नहीं रहेगा।","validate_error":"त्रुटि सत्यापित करें","validate_user_name_no_space":"उपयोगकर्ता नाम में रिक्त स्थान नहीं होना चाहिए","validate_url_no_space":"यूआरएल में रिक्त स्थान नहीं होना चाहिए","validate_user_name_length":"उपयोगकर्ता नाम की लंबाई {0} और {1} के बीच होनी चाहिए","validate_user_desc_length":"उपयोगकर्ता विवरण {0} अक्षरों से अधिक नहीं होना चाहिए","validate_user_avatar_url":"उपयोगकर्ता अवतार का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_channel_title_length":"चैनल शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_channel_desc_length":"चैनल विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_channel_image_url":"चैनल पूर्वावलोकन 2048 अक्षरों से कम वाला यूआरएल होना चाहिए","validate_post_title_length":"पोस्ट शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_post_desc_length":"पोस्ट विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_post_image_url":"पोस्टर का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_post_url":"अमान्य ${displayName} यूआरएल","validate_post_url_length":"${displayName} यूआरएल 2048 अक्षरों से अधिक नहीं होना चाहिए","film_rate":"फ़िल्म दर","set_film_rate":"फिल्म दर निर्धारित करें","select_a_rate_before_enter":"मीडिया लाइब्रेरी में प्रवेश करने से पहले आपको एक फिल्म दर का चयन करना होगा।","library_available_rate":"लाइब्रेरी में उपलब्ध फ़िल्म दर","rate_g":"जी - सामान्य दर्शक","rate_g_desc":"सभी उम्र के लोगों को प्रवेश दिया गया। ऐसा कुछ भी नहीं जिसे बच्चों द्वारा देखने पर माता-पिता को ठेस पहुंचे।","rate_pg":"पीजी - माता-पिता के मार्गदर्शन का सुझाव दिया गया","rate_pg_desc":"कुछ मटीरियल बच्चों के लिए उपयुक्त नहीं हो सकते। माता-पिता से \\"माता-पिता का मार्गदर्शन\\" देने का आग्रह किया गया। इसमें कुछ ऐसी सामग्री हो सकती है जो माता-पिता अपने छोटे बच्चों के लिए पसंद नहीं करेंगे।","rate_pg_13":"पीजी-13 - अभिभावकों को कड़ी चेतावनी दी गई","rate_pg_13_desc":"कुछ सामग्री 13 वर्ष से कम उम्र के बच्चों के लिए अनुपयुक्त हो सकती है। माता-पिता से सतर्क रहने का आग्रह किया जाता है। कुछ सामग्री पूर्व-किशोरों के लिए अनुपयुक्त हो सकती है।","rate_r":"आर - प्रतिबंधित","rate_r_desc":"17 वर्ष से कम आयु के लिए माता-पिता या वयस्क अभिभावक का साथ आवश्यक है। इसमें कुछ वयस्क सामग्री शामिल है. माता-पिता से आग्रह किया जाता है कि वे अपने छोटे बच्चों को अपने साथ ले जाने से पहले फिल्म के बारे में अधिक जानें।","rate_nc_17":"एनसी-17 - केवल वयस्क","rate_nc_17_desc":"17 वर्ष से कम उम्र के किसी भी व्यक्ति को प्रवेश नहीं दिया गया। स्पष्ट रूप से वयस्क. बच्चों को प्रवेश नहीं दिया जाता.","set_as_private":"निजी के रूप में सेट करें","hide_in_explore":"इस चैनल को एक्सप्लोर पेज में छुपाएं","hidden":"छिपा हुआ","select_a_rate":"कृपया एक फ़िल्म दर चुनें","select_from_tasks":"कार्यों में से चयन करें","import_from_magnet":"चुंबक से आयात:?...","input_magnet_url":"इनपुट चुंबक:? यूआरएल","task_title":"कार्य का शीर्षक","set_title":"शीर्षक सेट करें","add_to_local_favorites":"स्थानीय पसंदीदा में जोड़ें","remove_from_local_favorites":"स्थानीय पसंदीदा से हटाएँ","removed_favorite":"पसंदीदा हटा दिया गया","import_or_export_favorites":"आयात/निर्यात पसंदीदा","export_local_favorites":"बैकअप के रूप में स्थानीय पसंदीदा निर्यात करें","import_favorites_file":"पसंदीदा फ़ाइल आयात करें","not_a_favorite_file":"यह फ़ाइल पसंदीदा बैकअप फ़ाइल नहीं है","connection_status":"संपर्क स्थिति","gun_server_list":"कैश नोड्स","custom_nodes":"कस्टम कैश नोड्स","custom_nodes_hint":"ऐप पुनः लॉन्च के बाद कस्टम कैश नोड्स लागू किए जाएंगे","wait_for_reboot":"रीबूट की प्रतीक्षा में...({seconds}s)","reboot_now":"अब रिबूट करें","reboot_later":"बाद में रिबूट करें","peer_list":"प्रत्यक्ष नोड्स","server":"नोड यूआरएल","peer":"समकक्ष","peer_id":"नोड आईडी","connection":"संबंध","data_source":"डेटा स्रोत","sync":"साथ-साथ करना","syncing":"सिंक्रनाइज़ किए जा रहे","sync_completed":"सिंक पूरा हुआ","got_all_post":"आपको सभी पोस्ट पहले ही मिल चुकी हैं","placeholder_channel_title":"आपके चैनल का नाम","placeholder_channel_desc":"इस चैनल के बारे में विवरण","placeholder_post_title":"मूवी का नाम (वर्ष)","placeholder_post_desc":"इस फिल्म के बारे में विवरण","private_channel":"निजी चैनल","creator_blocked":"निर्माता को अवरोधित किया गया","go_to_library":"पुस्तकालय जाएं?","go_to_library_channel_msg":"क्या आप लाइब्रेरी चैनल {0} पर जाना चाहते हैं?","magnet_does_not_have_name":"यह चुम्बक:? यूआरएल में कोई नाम नहीं है, आपको पहले एक पोस्ट शीर्षक जोड़ना होगा।","no_available_post":"कोई पोस्ट उपलब्ध नहीं","following_channel_no_post":"आपके निम्नलिखित सभी चैनलों पर पोस्ट उपलब्ध नहीं है। यह नेटवर्क त्रुटि के कारण हो सकता है. यदि आपने पहले से ही कुछ चैनलों का अनुसरण किया है, तो पोस्ट बाद में लोड की जा सकती हैं।","share_to_library":"लाइब्रेरी में साझा करें","quick_start":"जल्दी शुरू","quick_start_desc":"किसी कार्य या फ़ाइल के साथ एक पोस्ट बनाना प्रारंभ करें","select_file":"फ़ाइल का चयन करें...","select_folder":"फोल्डर का चयन करें...","post_options":"पोस्ट विकल्प","channel_options":"चैनल विकल्प","create_new_channel":"नया चैनल बनाएं","use_existed_channel":"मौजूदा चैनल का उपयोग करें","select_existed_channel":"मौजूदा चैनल का चयन करें","uploaded_by":"{title} {name} द्वारा अपलोड किया गया","created_by":"{title} {name} द्वारा निर्मित","creating_new_channel":"नया चैनल बनाया जा रहा है...","created_new_channel":"नया चैनल बनाया गया","creating_new_post":"नई पोस्ट बनाई जा रही है...","created_new_post":"नई पोस्ट बनाई गई","create_new_post":"नई पोस्ट बनाएं","quick_start_timeout":"{0} समयबाह्य। यह नेटवर्क त्रुटि के कारण हो सकता है. कृपया बाद में पुन: प्रयास करें।","file_too_large":"बहुत बड़ी फाइल","file_too_large_msg":"यह फ़ाइल 4GB ({size}) से बड़ी है और इसे तैयार करने में काफी समय लग सकता है। क्या आप निश्चित रूप से जारी रखेंगे?","resolving_folder_files":"फ़ोल्डर फ़ाइलों का समाधान किया जा रहा है...","folder_too_large":"फ़ोल्डर बहुत बड़ा है","folder_too_large_msg":"इस फ़ोल्डर में फ़ाइलें 4GB ({size} कुल) से बड़ी हैं और कार्य तैयार करने में लंबा समय लग सकता है। क्या आप निश्चित रूप से अपलोड करना चाहते हैं?","creating_new_task":"नया कार्य बनाया जा रहा है...","cannot_create_task":"कार्य नहीं बनाया जा सकता","cannot_create_task_msg":"यह किसी त्रुटि के कारण हो सकता है. यदि कार्य सही ढंग से बनाया गया है, तो आप बाद में कार्य सूची की जांच कर सकते हैं।","cannot_get_task_name":"कार्य का नाम नहीं मिल सका. आपको पहले एक इनपुट करना होगा.","remove_old_task":"पुराना कार्य हटाएँ","remove_old_task_desc":"वेब मोड एक बार में केवल एक ही कार्य बना सकता है। क्या आप पुराना कार्य हटाना चाहते हैं?","subtitle_list":"उपशीर्षक सूची","optional":"वैकल्पिक","with_subtitle":"{language} उपशीर्षक के साथ","maximumSubtitleNum_limit":"उपशीर्षकों की संख्या अधिकतम तक पहुंच गई है","add_subtitle_url":"उपशीर्षक डाउनलोड लिंक जोड़ें","cannot_add_subtitle":"उपशीर्षक जोड़ने में विफल","cannot_add_subtitle_msg":"उपशीर्षक भाषा चयनित नहीं है या डाउनलोड लिंक अमान्य है।","support_subtitle_type":"केवल एसआरटी और वीटीटी प्रारूप में उपशीर्षक समर्थित हैं।","recommend_opensubtitles":"www.opensubtitles.org पर उपशीर्षक डाउनलोड लिंक या आईडी का उपयोग करने की अनुशंसा की जाती है।","take_down":"नीचे करें","serious_violation":"गंभीर उल्लंघन","copyright_disputes":"कॉपीराइट विवाद","adults_only":"केवल वयस्क","takedown_reason":"हटाने का कारण","takedown_mode":"टेकडाउन मोड","admins":"व्यवस्थापक","takedown_user":"इस निर्माता को हटाओ","takedown_channel":"इस चैनल को हटाओ","takedown_post":"इस पोस्ट को हटाएं","select_takedown_reason":"निष्कासन का कारण चुनें","takedown_invalid_reason":"अमान्य निष्कासन कारण","takedown_invalid_user_id":"अमान्य उपयोगकर्ता आइ डी। आईडी में 87 अक्षर शामिल होने चाहिए","takedown_invalid_channel_id":"अमान्य चैनल आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_invalid_post_id":"अमान्य पोस्ट आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_management":"प्रबंधन हटाओ","users":"उपयोगकर्ताओं","channels":"चैनल","posts":"पदों","you":"आप","preset":"प्रीसेट","admin":"व्यवस्थापक","committee":"समिति","about_takedown_mode":"टेकडाउन मोड के बारे में:\\nप्रीसेट: जीथब रिपॉजिटरी में कॉन्फ़िगर किया गया। उन सभी को लाइब्रेरी से हटा दिया जाएगा.\\nव्यवस्थापक: व्यवस्थापकों में से जिस किसी को भी वोट दिया जाएगा उसे हटा दिया जाएगा।\\nसमिति: वोट करने वाले कम से कम आधे व्यवस्थापकों को हटा दिया जाएगा।","cannot_edit_preset":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि यह एक पूर्व निर्धारित पंक्ति है","cannot_edit_not_vote":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि आपने इसके लिए मतदान नहीं किया है","remove_vote":"अपना वोट हटाओ","post_preload_failed":"इस पोस्ट को प्रीलोड करने में विफल. डाउनलोड लिंक पुराना हो सकता है, इसलिए इस पोस्ट को तुरंत नहीं चलाया जा सकता।","about_cache_node":"कैश नोड के बारे में","edit_cache_node":"कैश नोड संपादित करें","create_cache_node":"कैश नोड बनाएं","about_cache_node_desc":"${displayName} कैश नोड के रूप में गन सर्वर का उपयोग करता है। आप अग्रिम सेटिंग में कस्टम नोड्स संपादित कर सकते हैं","learn_how_to_deploy_gun":"जानें कि अपना खुद का गन सर्वर कैसे तैनात करें","repeat_add":"कार्य जोड़ दिया गया है, कृपया इसे दोबारा न जोड़ें","upload":"डालना","download":"डाउनलोड","delete":"मिटाना","delete_task":"कार्य हटाएँ","delete_confirm_message":"यह कार्य हटाएं? यह अपरिवर्तनीय है","also_delete_files":"फ़ाइलें भी हटाएँ","default_delete_files":"हटाने के कार्य के बाद डाउनलोड की गई फ़ाइलों को डिफ़ॉल्ट रूप से हटा दें","not_now":"अभी नहीं","delete_autoupload_confirm":"इस कार्य में वह फ़ाइल शामिल है जिसे आपने ऑटो-अपलोड निर्देशिका में रखा है। इस कार्य को हटाने से फ़ाइल भी हट जाएगी।","delete_anyway":"फिर भी हटाएँ","upload_too_many_files":"बहुत सारी फ़ाइलें अपलोड करें","ask_if_unlimit_upload_amount":"स्वतः-अपलोड निर्देशिका में बहुत अधिक फ़ाइलें हैं। क्या आप अपलोड राशि सीमा को अक्षम करना चाहते हैं? *इससे प्रदर्शन संबंधी समस्या हो सकती है","disable_limitation":"सीमा अक्षम करें","not_length":"मल्टी फ़ाइल ऑपरेशन वर्तमान में समर्थित नहीं है, कृपया सहयोग करें","download_torrent":"डाउनलोड फ़ाइल","upload_torrent":"फ़ाइल अपलोड करें","files":"फ़ाइलें","file":"फ़ाइल","folder":"फ़ोल्डर","start_all":"सभी प्रारंभ करें","pause_all":"सभी को रोकें","remove_all":"सभी हटाएं","upload_all":"सभी अपलोड करें","clear_history":"इतिहास मिटा दें","pause_all_finish_payments":"इससे सभी भुगतान समाप्त हो जायेंगे.","accelerating":"तेज","link_task":"लिंक कार्य","torrent_task":"फ़ाइल कार्य","ok":"ठीक","cancel":"रद्द करना","download_directory_position":"निर्देशिका स्थिति डाउनलोड करें","torrent_file":"कार्य फ़ाइल","magnetic_link_incorrect":"लिंक प्रारूप ग़लत है","delete_fail":"हटाएँ विफल","pause":"विराम","paused":"रोके गए","stop_torrent":"रुकना","seed":"बीज","resume":"फिर शुरू करना","downloading":"डाउनलोड","downloaded":"डाउनलोड","uploading":"अपलोड हो रहा है","auto_uploading":"स्वतः अपलोडिंग","uploaded":"अपलोड किए गए","pending":"अन्य कार्यों के लिए प्रतीक्षा की जा रही है","verifying":"सत्यापन","waiting_for_verify":"सत्यापन की प्रतीक्षा की जा रही है","seeding":"बोने","completed":"पुरा होना।","status":"दर्जा","task_name":"कार्य का नाम","size":"आकार","progress":"प्रगति","sort":"क्रम से लगाना","ascending":"आरोही","descending":"अवरोही","file_loading":"फ़ाइल लोड हो रही है...","loading":"लोड हो रहा है","unknown_status":"अज्ञात","play_while_downloading":"खेल...","upload_or_play":"अपलोड/चलाएँ","play":"खेल","ask_if_upload_file":"फ़ाइल अपलोड करें?","ask_if_upload_or_play":"फ़ाइल अपलोड करें या चलाएं?","torrent_error":"कार्य जोड़ते समय त्रुटि:","no_peers":"{0} से अधिक बार पुनः प्रयास करें और कोई सहकर्मी उपलब्ध नहीं है","torrent_exists":"काम पहले से मौज़ूद।","show_origin_torrent":"मूल कार्य फ़ाइल या यूआरएल प्राप्त करें","show_directory":"इस टोरेंट की निर्देशिका खोलें","task_num":"कार्य","total_upload_speed":"भार डालना के गति","total_download_speed":"डाउनलोड की गति","path_missing":"त्रुटि: टोरेंट पथ नहीं मिल सका","origin_not_found":"मूल कार्य की जानकारी नहीं मिल सकी.","text_copied":"मैग्नम यूआरएल आपके क्लिपबोर्ड पर कॉपी किया गया है","copy_magnet_uri":"प्रतिलिपि चुंबक:? यूआरआई","copy_download_uri":"डाउनलोड यूआरआई कॉपी करें","copy_share_uri":"कॉपी शेयर यूआरआई","uri_copied":"यूआरआई सफलतापूर्वक आपके क्लिपबोर्ड पर कॉपी हो गया है","uri_copy_failed":"यूरी की प्रतिलिपि बनाने में विफल","more":"अधिक...","toggle_list_mode":"सूची मोड टॉगल करें","comment":"टिप्पणी","operations":"संचालन","open_directory":"निर्देशिका खोलें","no_downloading_task":"कोई डाउनलोडिंग कार्य नहीं","remove_all_downloading_tasks":"सभी डाउनलोडिंग कार्य हटाएँ?","remove_all_upload_tasks":"सभी अपलोड कार्य हटाएं?","remove_autoupload_files":"स्वतः-अपलोड फ़ाइलें हटाएँ","remove_all_history":"सारा इतिहास हटा दें?","remaining":"बचा हुआ","created_time":"समय बनाया","used_time":"बिताया समय","completed_time":"पूरा समय","yesterday":"कल","before_yesterday":"{empty}","earlier":"पहले","miss_file":"कुछ फ़ाइलें गुम हैं","delete_miss_file_task":"{0} में फोम फ़ाइलें गायब हैं।","common_peer":"आम सहकर्मी","ab_peer":"${displayName} सहकर्मी","ab_peer_verified":"सत्यापित ${displayName} सहकर्मी","ab_peer_available":"${displayName} सहकर्मी उपलब्ध हैं","alphabiz_accelerating":"${displayName} तेज हो रहा है","income":"आय","income_info":"आय(आज/कुल)","total_income_info":"आय: {0}(आज) / {1}(कुल)","login_to_see_income":"आय के आँकड़े देखने के लिए लॉगिन करें","credit_cost":"ऋण लागत","downloaded_by_payment":"पेमेंट्स द्वारा डाउनलोड किया गया","file_not_found":"यह फ़ाइल स्थानीय में नहीं मिल सकी","no_task":"न पूछें","no_matched_task":"कोई मिलान कार्य नहीं","space_not_enough":"डिस्क स्थान पर्याप्त नहीं है","need_more_space":"{0} अधिक स्थान की आवश्यकता है लेकिन वर्तमान डिस्क में {1} निःशुल्क ({2} आरक्षित) है। कार्य रुके हुए हैं. लाइब्रेरी प्रीलोड अक्षम है. आप इसे [सेटिंग्स - उन्नत] में पुनः सक्षम कर सकते हैं।","seeders":"बीज","last_update":"आखिरी अपडेट","connecting":"कनेक्ट","connected":"जुड़े हुए","request_timed_out":"अनुरोध का समय समाप्त","connection_failed":"कनेक्शन विफल","invalid_download_url":"अमान्य डाउनलोड यूआरएल","download_link":"लिंक को डाउनलोड करें","empty_files":"निर्देशिका में कोई फ़ाइल नहीं","duplicate_task":"डुप्लिकेट कार्य","duplicate_tracker":"डुप्लिकेट ट्रैकर","this_task_not_ready":"यह कार्य तैयार नहीं है. इस कार्य को रोकें इसे सीधे हटा दिया जाएगा.","some_task_not_ready":"कुछ कार्य तैयार नहीं हैं. इन कार्यों को रोकें उन्हें सीधे हटा दिया जाएगा।","failed_to_delete_files":"फ़ाइलें हटाने में विफल","failed_to_delete_files_desc":"कार्य की कुछ फ़ाइलें हटाने में विफल. आपको उन्हें मैन्युअल रूप से हटाने की आवश्यकता हो सकती है","unknown_error":"अज्ञात त्रुटि: {0}","more_files_are_not_shown":"({0} प्रदर्शन कारणों से अधिक फ़ाइलें नहीं दिखाई गई हैं)","no_available_file":"कोई फ़ाइल उपलब्ध नहीं. कृपया कार्य तैयार होने तक प्रतीक्षा करें.","service_worker_error":"खेलने के लिए ServiceWorker को लोड नहीं किया जा सकता. हो सकता है कि आपका ब्राउज़र इस सुविधा का समर्थन न करे, या सर्विसवर्कर सक्रिय नहीं है। आपको इस पृष्ठ को पुनः लोड करने और पुनः प्रयास करने की आवश्यकता हो सकती है।","add_task_first":"आपको पहले कार्य जोड़ना होगा.","player_task_time":"खिलाड़ी को खेल की तैयारी में बहुत अधिक सेकंड लगते हैं। कार्य में कुछ गड़बड़ी हो सकती है।","web_mode_hint":"${displayName} का वेब मोड केवल WebRTC साथियों का समर्थन करता है। सर्वोत्तम अनुभव के लिए, कृपया ${displayName} डेस्कटॉप ऐप डाउनलोड करें।","web_mode_task_hint":"कार्य जोड़ने के लिए नीचे दिए गए बटन पर क्लिक करें। आप एक समय में केवल एक ही कार्य जोड़ सकते हैं.","save_to_local":"स्थानीय में सहेजें","save_as_zip":"ज़िप के रूप में सहेजें","creating_save_file":"सेव फ़ाइल बनाई जा रही है...","upload_as_one_directory":"एक निर्देशिका के रूप में अपलोड करें","upload_as_single_files":"एकल फ़ाइलों के रूप में अपलोड करें","web_mode_upload_single":"आप वेब मोड में केवल एक फ़ाइल अपलोड कर सकते हैं","download_success":"सफलतापूर्वक डाउनलोड करें","download_fail":"डाउनलोड विफल","wait_for_downloaded_to_share":"कृपया साझा करने से पहले कार्य डाउनलोड होने की प्रतीक्षा करें।","download_with_cellular":"सेल्युलर का उपयोग करके कार्य डाउनलोड करें","download_with_cellular_desc":"आप सेल्युलर नेटवर्क का उपयोग कर रहे हैं. सेल्युलर से डाउनलोड कार्यों के लिए आपके वाहक द्वारा अतिरिक्त शुल्क लिया जा सकता है।","download_with_cellular_confirm":"अभी भी सेल्युलर से डाउनलोड करें","language":"भाषा","appearance":"उपस्थिति","darkModeSystem":"प्रणाली","darkModeLight":"रोशनी","darkModeDark":"अँधेरा","basic_setting":"बुनियादी","hideMenu":"ऐप मेनू छुपाएं (केवल विंडोज़ और लिनक्स)","autoHide":"ऑटो छिपाएँ विंडो","autoStart":"लॉगिन पर खोलें","restore":"बाहर निकलते समय खिड़की का आकार और स्थिति रखें","autoStartUnfinished":"सभी अधूरे कार्य स्वचालित रूप से फिर से शुरू करें","default_download_path":"डिफ़ॉल्ट पथ","download_directory":"निर्देशिका डाउनलोड करें","upload_directory":"निर्देशिका अपलोड करें","enable_auto_upload":"ऑटो अपलोड सक्षम करें","unlimit_upload_amount":"अपलोड राशि असीमित","unlimit_upload_warning":"बड़ी मात्रा में फ़ाइलें अपलोड करने की अनुमति दें. इससे प्रदर्शन संबंधी समस्या हो सकती है","start":"चालू होना","transport_setting":"हस्तांतरण","upload_limit":"अपलोड सीमा","download_limit":"डाउनलोड सीमा","payed_user_share_rate":"भुगतान किया गया उपयोगकर्ता शेयर दर","unlimited":"असीमित","limit_input_error":"सीमा संख्या धनात्मक होनी चाहिए","BT_setting":"कार्य सेटिंग्स","saveLinkSeed":"लिंक को कार्य फ़ाइल के रूप में सहेजें","autoDownload":"स्वचालित रूप से लिंक और सामग्री डाउनलोड करें","continuousSeeding":"बीज बोना तब तक जारी रखें जब तक कि इसे मैन्युअल रूप से बंद न कर दें","seedSharingRate":"बीज अनुपात","seedTime":"बीज समय (मिनट)","task_manage":"कार्य प्रबंधन","maximumDownloadNum":"अधिकतम सक्रिय कार्य","maximumConnectionsNum":"प्रति सर्वर अधिकतम कनेक्शन","range_error":"रेंज {0} और {1} के बीच होनी चाहिए","random":"रैंडम","breakpointContinuation":"जारी रखना","automaticSkip":"कार्य जोड़ने के बाद स्वचालित रूप से डाउनलोडिंग दिखाएं","afterNotification":"डाउनलोड पूरा होने के बाद अधिसूचना","deleteConfirm":"कार्य हटाने से पहले किसी पुष्टि की आवश्यकता नहीं है","submit":"सहेजें और लागू करें","discard":"खारिज करना","reset":"रीसेट","reset_all_settings":"सभी सेटिंग्स को रीसेट?","preferences_resetted":"प्राथमिकताएँ रीसेट की गईं","traditional_chinese":"परंपरागत चीनी","japanese":"जापानी","english":"अंग्रेज़ी","chinese":"सरलीकृत चीनी","advancedSettings":"विकसित","autoUpdate":"ऑटो अपडेट","autoCheckUpdate":"अद्यतन के लिए स्वचालित रूप से जाँच करें","proxy":"प्रतिनिधि","useProxyService":"प्रॉक्सी सक्षम करें","trackerService":"ट्रैकर सर्वर","recommendUse":"अनुशंसित","autoUpdateTrackerServiceList":"ट्रैकर सूची को हर दिन स्वचालित रूप से अपडेट करें","manualUpdateTracker":"मैन्युअल अद्यतन","manualUpdateSuccess":"ट्रैकर सर्वर को सफलतापूर्वक अपडेट करें","manualUpdateFail":"यहां से अपडेट करने में विफल:","listenPort":"बंदरगाहों सुनो","BTlistenPort":"डेटा ट्रांसमिशन पोर्ट","DHTlistenPort":"वितरित हैश पोर्ट","protocols":"संगत प्रोटोकॉल","setDefaultClientForFollowingProtocols":"निम्नलिखित प्रोटोकॉल के लिए डिफ़ॉल्ट क्लाइंट के रूप में सेट करें","magnetUrl":"चुंबक","video_file":"वीडियो फाइल","audio_file":"ऑडियो फाइल","security":"सुरक्षा","impersonateUserAgent":"नकली उपयोगकर्ता-एजेंट","RPCauthorizationkey":"आरपीसी रहस्य","viewDocument":"आरपीसी सीक्रेट मैनुअल देखें","developer":"डेवलपर","applicationLogPath":"ऐप लॉग पथ","downloadSessionPath":"सत्र पथ डाउनलोड करें","resetDownloadSessionRecord":"डाउनलोड सत्र रीसेट करें","restoreInitialSettings":"नए यंत्र जैसी सेटिंग","preferences_set_successfully":"प्राथमिकताएँ सफलतापूर्वक सहेजें!","preferences_set_fail":"प्राथमिकताएँ सहेजना विफल!","change_not_save":"परिवर्तन सहेजे नहीं जाते","discard_all_changes":"सभी परिवर्तन त्यागें और छोड़ें?","stay_in_page":"पेज में रहें","disk_usage":"डिस्क उपयोग","pause_if_less_space":"यदि स्थान (एमबी) से कम है तो रोकें और सूचित करें","default_video_player":"डिफ़ॉल्ट वीडियो प्लेयर","video_cache_time":"स्ट्रीम प्ले कैश","minutes":"मिनट","system_default":"प्रणालीगत चूक","media_player":"मीडिया प्लेयर","library_film_rate":"उपलब्ध फिल्म दर","library_show_explore":"[अन्वेषण] पृष्ठ दिखाएँ","library_setting":"पुस्तकालय सेटिंग","library_sync_setting":"लाइब्रेरी सिंक सेटिंग","keychain_sync_status":"किचेन सिंक स्थिति","sync_with_aws":"अमेज़ॅन वेब सेवाओं के साथ किचेन को सिंक करें","backup_to_local":"स्थानीय फ़ाइल में बैकअप","enable_sync_with_aws":"AWS के साथ समन्वयन सक्षम करें","disable_sync_with_aws":"AWS के साथ समन्वयन अक्षम करें","disable_sync_with_aws_desc":"यह सर्वर में सेव की को हटा देगा। कृपया सुनिश्चित करें कि आपने अपनी कुंजी पहले ही निर्यात कर ली है।","input_independent_password":"स्वतंत्र पासवर्ड इनपुट करें","change_independent_password":"स्वतंत्र पासवर्ड बदलें","password_error":"पासवर्ड त्रुटि","password_invalid":"पासवर्ड अमान्य","key_existed":"कुंजी मौजूद थी","key_not_found":"कुंजी प्राप्त नहीं हुई","library_recommend":"पुस्तकालय की अनुशंसा","show_all_channels":"लाइब्रेरी अनुशंसा पृष्ठ में सभी चैनल दिखाएं","not_logged_in":"अंदर प्रवेश की अनुमति नहीं है","login_to_continue":"जारी रखने के लिए लॉगिन करें","mnemonic_code":"स्मरणीय कोड","wordlist":"शब्द सूची","restore_code":"कोड से पुनर्स्थापित करें","generate_code":"कोड जनरेट करें","export_mnemonic_code":"स्मरणीय कोड निर्यात करें","import_mnemonic_code":"स्मरणीय कोड आयात करें","print":"छाप","save_as_txt":"txt के रूप में सहेजें","save_as_pdf":"पीडीएफ के रूप में सहेजें","from_file":"लेख्यपत्र से","not_valid_mnemonic_code":"यह एक वैध स्मरणीय कोड नहीं है","cannot_parse_code_as_key":"इस स्मरणीय कोड को लाइब्रेरी कुंजी के रूप में पार्स नहीं किया जा सकता","import_key_hint":"क्या आप निश्चित रूप से इस कुंजी को आयात करना चाहते हैं? इससे लाइब्रेरी में आपकी पुरानी कुंजी वापस आ जाएगी।","import_key_confirm":"हाँ, इसे आयात करें.","library_preload":"लाइब्रेरी से कार्य प्रीलोड करें","show_preload":"प्रीलोड कार्य दिखाएँ","set_download":"डाउनलोड निर्देशिका सेट करें","set_download_desc":"MacOS ऐप स्टोर संस्करण के लिए, डिफ़ॉल्ट डाउनलोड निर्देशिका ऐप के सैंडबॉक्स में है, और ऐप अनइंस्टॉल होने के बाद हटा दी जाएगी। यदि आप अपनी डाउनलोड फ़ाइलें रखना चाहते हैं, तो आपको मैन्युअल रूप से एक अलग डाउनलोड निर्देशिका का चयन करना होगा।","home":"घर","home_caption":"डाउनलोड/अपलोड और मीडिया फ़ाइलें","library":"पुस्तकालय","library_caption":"मीडिया संसाधनों का अन्वेषण करें","player":"खिलाड़ी","player_caption":"मीडिया प्लेयर","credits":"क्रेडिट","credits_caption":"अकाउंट बैलेंस जांचें","account":"खाता","account_caption":"साइन इन/साइन अप/प्रबंधन","settings":"समायोजन","settings_caption":"ऐप, प्लेयर, अकाउंट के लिए सेटिंग्स","development":"विकास","development_caption":"आंतरिक उपयोग के लिए डेवलपर मोड","basic":"बुनियादी","basic_caption":"मूल सेटिंग्स","advanced":"विकसित","advanced_caption":"एडवांस सेटिंग","blockchain":"बटुआ","blockchain_caption":"${displayName} विकेंद्रीकृत वॉलेट","internal_notice":"आंतरिक रिलीज़ सूचना","release_notes":"रिलीज नोट्स","terms_and_conditions":"नियम और शर्तें","license_and_listen_notices":"लाइसेंस और ओपन सोर्स नोटिस सुनें","close":"बंद करना","success":"सफलता","fail":"असफल","account_email_invalid_address":"अमान्य ईमेल पता","account_email_invalid_domain":"अमान्य ईमेल डोमेन","account_email_unknown_status":"अज्ञात ईमेल वितरण स्थिति","account_email_unavailable_address":"अनुपलब्ध ईमेल पता","account_email_suppressed_address":"दबा हुआ ईमेल पता","account_loading":"लोड हो रहा है...","account_is_required":"आवश्यक है","account_sign_in_your_account":"दाखिल करना","account_username":"उपयोगकर्ता नाम","account_username_email_phone":"फ़ोन नंबर या ईमेल","account_password":"पासवर्ड","account_new_password":"नया पासवर्ड","account_re_enter_password":"पासवर्ड फिर से दर्ज करें","account_password_not_equal":"दो पासवर्ड बराबर नहीं हैं","account_new_password_same":"पासवर्ड मूल पासवर्ड जैसा ही है","account_forgot_your_password":"अपना कूट शब्द भूल गए?","account_reset_password":"पासवर्ड रीसेट","account_sign_in":"दाखिल करना","account_signed_in":"साइन इन किया","account_sign_up":"साइन अप करें","account_find_your_account":"अपना खाता प्राप्त करें","account_enter_your_username":"अपना फ़ोन नंबर या ईमेल दर्ज करें","account_search":"खोज","account_email_sent_tip":"आपके ईमेल पर सत्यापन कोड वाला एक ईमेल भेजा गया है:","account_phone_sent_tip":"आपके फ़ोन पर सत्यापन कोड वाला एक एसएमएस भेजा गया है:","account_email_phone_sent_tip":"सत्यापन कोड के साथ ईमेल और एसएमएस क्रमशः आपके ईमेल और फ़ोन पर भेज दिए गए हैं:","account_software_token_tip":"आपके खाते के लिए एमएफए सक्षम है। साइन इन पूरा करने के लिए, कृपया अपना डिवाइस चालू करें या देखें और TOTP टाइप करें","account_reset_your_password":"अपना पासवर्ड रीसेट करें","account_verification_code":"सत्यापन कोड","account_resend_code":"पुन: कोड भेजे","account_code_has_been_resent":"सत्यापन कोड पुनः भेजा गया है","account_password_has_been_reset":"पासवर्ड रीसेट कर दिया गया है","account_submit":"जमा करना","account_sign_up_your_account":"अपना खाता साइन अप करें","account_fill_required_fields":"नीचे आवश्यक फ़ील्ड भरें.","account_fill_optional_fields":"नीचे वैकल्पिक फ़ील्ड भरें.","account_email":"ईमेल","account_invitation":"आमंत्रण","account_invitation_code":"आमंत्रण संकेत","account_i_accept":"मुझे स्वीकार है","account_license_terms":"लाइसेंस और शर्तें","account_next":"अगला","account_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा।","account_verify_fill_optional_fields":"सत्यापित करें और वैकल्पिक फ़ील्ड भरें।","account_nickname":"उपनाम","account_gender":"लिंग","account_male":"नर","account_female":"महिला","account_not_say":"कहना नहीं","account_birthday":"जन्मदिन","account_phone_number":"फ़ोन नंबर","account_locale":"स्थानीय","account_tip_verified":"सत्यापित, साइन इन हो रहा है...","account_verified":"सत्यापित","account_unverified":"असत्यापित","account_signed_up":"साइनअप किया","account_verify_your_identity":"अपनी पहचान सत्यापित करो","account_finish":"खत्म करना","account_signed_out":"साइन आउट","account_change_password":"पासवर्ड बदलें","account_change_email":"बदले ई - मेल","account_change_phone_number":"फ़ोन नंबर बदलें","account_sign_out":"साइन आउट","account_current_password":"वर्तमान पासवर्ड","account_re_enter_new_password":"नया पासवर्ड पुनः दर्ज करें","account_personal_information":"जानकारी","account_edit":"संपादन करना","account_reset":"रीसेट","account_greeting":"नमस्ते,","account_cancel":"रद्द करना","account_change":"परिवर्तन","account_not_set":"सेट नहीं","account_setting":"सेटिंग","account_copy_code":"कोड कॉपी करें","account_account_setting":"खाता","account_task_page":"श्रेय कार्य","account_setting_caption":"पासवर्ड बदलें/जानकारी संपादित करें","account_security":"सुरक्षा","account_want_to_join":"सम्मिलित होना चाहते हो?","account_sign_in_now":"दाखिल करना","account_changed":"बदला हुआ","account_clipboard_with_invitation_code":"आमंत्रण कोड कॉपी किया गया","account_clipboard_with_code":"कोड कॉपी किया गया","account_invitation_code_dialog_tip":"आप अपने मित्र को आमंत्रण कोड के साथ एक ईमेल या टेक्स्ट संदेश भेजेंगे:","account_available":"उपलब्ध","account_invited":"आमंत्रित","account_used":"इस्तेमाल किया गया","account_invitation_code_sent":"आमंत्रण कोड भेज दिया गया है","account_invitation_channel_required":"कम से कम एक आमंत्रण चैनल भरें","account_no_verification_code":"सत्यापन कोड प्राप्त नहीं हो सकता?","account_no_phone_number":"कोई फ़ोन नंबर नहीं?","account_sign_up_by_email":"ईमेल द्वारा साइन अप करें","account_no_email":"कोई ईमेल नहीं?","account_sign_up_by_phone_number":"फ़ोन नंबर द्वारा साइन अप करें","account_no_totp":"कोई टीओटीपी नहीं?","account_tip_no_totp":"यदि कोई टीओटीपी नहीं है, तो कृपया पहले टीओटीपी सेटअप करें","account_setup_totp":"सेटअप टीओटीपी","account_contact_information":"संपर्क जानकारी","account_delete_account":"खाता हटा दो","account_deleted":"हटाए गए","account_can_not_mfa":"मुसीबत में एमएफए?","account_set_mfa_type":"कॉन्फ़िग एमएफए","account_disable_mfa":"एमएफए अक्षम करें","account_disabled_mfa":"विकलांग एमएफए","account_sms_mfa":"एसएमएस एमएफए","account_totp_mfa":"टीओटीपी एमएफए","account_totp":"टीओटीपी","account_not_recommend":"अनुसंशित नहीं","account_oauth_sign_in_with":"{provider} के साथ साइन इन करें","account_sign_in_failed":"साइन इन करने में विफल","account_tip_oath_sign_up":"वर्तमान {provider} खाते से संबंधित ईमेल: {email} ने अभी तक कोई खाता नहीं बनाया है","account_tip_confirm_delete_account":"यह पुष्टि करने के लिए कि आप चालू खाता हटाना चाहते हैं, चालू खाता पासवर्ड दर्ज करें। (हटाए गए खाते पुनर्स्थापित नहीं किए जा सकते)","account_tip_config_mfa":"आप द्वितीयक प्रमाणीकरण के रूप में एसएमएस या समय-आधारित वन-टाइम पासवर्ड (टीओटीपी) का उपयोग करना चुन सकते हैं","account_error_can_not_enable_mfa":"एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_sms_mfa":"एसएमएस एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_totp_mfa":"टीओटीपी एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर जोड़ना होगा","account_tip_setup_totp":"नीचे दिए गए क्यूआर कोड को स्कैन करने के लिए ऑथेंटिकेटर जैसे ऐप्स का उपयोग करें या सुरक्षा टोकन जोड़ने के लिए कोड को मैन्युअल रूप से कॉपी करें","account_tip_verify_totp":"अपना TOTP सत्यापित करें","account_link_your_social_account":"अपना सोशल अकाउंट बाइंड करें","account_unlink_your_social_account":"सोशल अकाउंट अनबाइंड करें","account_tip_confirm_link":"क्या आप वाकई चालू खाते को अपने {provider} खाते से जोड़ना चाहते हैं?","account_tip_confirm_unlink":"क्या आप निश्चित रूप से अपना बाउंड {provider} खाता रद्द करना चाहते हैं?","account_tip_linking":"बंधन...","account_tip_unlinking":"खोलना...","account_linked":"अवश्यंभावी","account_unlinked":"अबाध","account_error_can_not_link_to_the_linked_account":"वर्तमान सामाजिक खाता किसी अन्य खाते से जुड़ा हुआ है","account_error_can_not_link_to_the_mismatched_email":"चालू खाता और सामाजिक खाता ईमेल पता असंगत हैं","account_error_can_not_link_before_email_verified":"सामाजिक खाते को लिंक नहीं किया जा सकता क्योंकि चालू खाता सत्यापित ईमेल से बंधा नहीं है","account_tip_confirm_verify_email_phone":"क्या अपनी पहचान सत्यापित करने के लिए चालू खाते के ईमेल और फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_tip_confirm_verify_phone":"क्या अपनी पहचान सत्यापित करने के लिए वर्तमान फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_error_1_message_60_seconds":"प्रत्येक 60 सेकंड में केवल एक एसएमएस या ईमेल भेजा जा सकता है, अन्य {delta} सेकंड प्रतीक्षा करें","account_error_10_messages_per_day":"प्रत्येक मोबाइल फोन या ईमेल 24 घंटे के भीतर केवल 10 संदेश भेज सकता है","account_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","Network Error":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","account_error_user_not_exist":"उपभोगकर्ता मौजूद नहीं","account_error_incorrect_username_or_password":"गलत उपयोगकर्ता नाम या पासवर्ड","account_error_incorrect_original_password":"ग़लत मूल पासवर्ड","account_error_incorrect_password":"गलत पासवर्ड","account_error_username_not_found":"उपयोगकर्ता नाम नहीं मिला","account_error_can_not_reset_for_no_verified":"असत्यापित खाते के लिए पासवर्ड रीसेट नहीं किया जा सकता","account_error_invalid_verification_code":"गलत सत्यापन कोड, कृपया पुनः प्रयास करें","account_error_expired_verification_code":"सत्यापन कोड समाप्त हो गया, कृपया पुनः प्रयास करें","account_error_password_not_long_enough":"पासवर्ड पर्याप्त लंबा नहीं है","account_error_attempt_limit_exceeded":"प्रयास की सीमा पार हो गई, कृपया कुछ समय बाद प्रयास करें।","account_error_password_attempts_exceeded":"पासवर्ड प्रयास पार हो गए.","account_error_invalid_phone_number_format":"अमान्य फ़ोन नंबर प्रारूप","account_error_no_cell_phone_prefix":"कृपया फ़ोन नंबर के लिए उपसर्ग चुनें","account_error_username_already_exists":"उपयोगकर्ता नाम पहले से ही मौजूद है","account_error_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा","account_error_inactive_code":"आमंत्रण कोड कोई सक्रिय कोड नहीं है","account_error_non_existent_code":"आमंत्रण कोड अस्तित्वहीन है","account_error_unexpected":"अप्रत्याशित त्रुटि","account_error_can_not_change_email_before_phone_bound":"फ़ोन नंबर बाध्य होने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_email_before_unbound_social_account":"सोशल अकाउंट को अनबाइंड करने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_phone_before_email_bound":"ईमेल बाइंड होने से पहले फ़ोन नंबर नहीं बदला जा सकता","account_error_can_not_change_email_phone_with_mfa_enabled":"एमएफए को अक्षम करने से पहले ईमेल या मोबाइल फोन नंबर नहीं बदला जा सकता","account_error_not_supported_yet":"मौजूदा समर्थित नहीं है","account_error_same_email":"नया ईमेल पता मूल ईमेल पते के समान नहीं हो सकता","account_error_same_phone":"नया फ़ोन नंबर मूल फ़ोन नंबर के समान नहीं हो सकता","account_error_email_not_exists":"ईमेल पता मौजूद नहीं है","account_error_email_already_exists":"दिए गए ईमेल वाला एक खाता पहले से मौजूद है।","account_error_phone_already_exists":"दिए गए फ़ोन नंबर वाला एक खाता पहले से मौजूद है।","account_error_mfa_token_mismatch":"सॉफ़्टवेयर टोकन कोड बेमेल","account_error_recaptcha_not_loaded":"नेटवर्क की दिक्कत है. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_recaptcha_validation_failed":"ReCAPTCHA सत्यापन विफल रहा. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_sign_in_in_progress":"लंबित साइन-इन प्रयास पहले से ही प्रगति पर है","account_field_range":"{0}-{1} वर्णों का इनपुट सीमित करें","account_field_only_alphanumeric":"केवल अक्षरांकीय का समर्थन करता है","account_field_only_alphanumeric_and_symbol":"केवल अक्षरांकीय और प्रतीकों का समर्थन करता है","account_field_only_chinese_alphanumeric_space_underline":"केवल अल्फ़ान्यूमेरिक, स्पेस, अंडरस्कोर का समर्थन करता है","account_field_prefix_without_number_space":"पहला अक्षर कोई संख्या या स्थान नहीं हो सकता","account_field_suffix_without_space":"रिक्त स्थान के साथ समाप्त नहीं हो सकता","account_field_without_repeat_space":"एक पंक्ति में एकाधिक रिक्त स्थान का उपयोग नहीं किया जा सकता","account_field_can_not_only_alphanumeric":"आप केवल अक्षरों या संख्याओं का उपयोग नहीं कर सकते","account_field_must_have_number_characters":"संख्या अक्षर होने चाहिए","account_field_verification_code":"सत्यापन कोड छह अंकों का होना चाहिए","account_field_invitation_code":"आमंत्रण कोड अक्षरांकीय होना चाहिए","account_field_phone_number":"अमान्य फ़ोन नंबर प्रारूप","account_invalid_email_format":"अमान्य ईमेल प्रारूप","account_sign_out_confirm":"क्या आप निश्चित रूप से साइन आउट करना चाहते हैं? इससे सभी कार्य रुक जायेंगे.","account_sign_out_anyway":"फिर भी साइन आउट करें","account_signing_out":"भाग रद्द करना...","account_request_save_settings":"सेटिंग्स सहेजी नहीं गई हैं. साइन आउट करने से पहले आपको परिवर्तन सहेजने होंगे.","pay":"वेतन","pay_with_credit":"डाउनलोड में तेजी लाने के लिए भुगतान करें. लगभग {0} क्रेडिट की आवश्यकता है","pay_with_credit_payed":"तेज़ हो रहा है. अभी भी लगभग {0} क्रेडिट की आवश्यकता है","create_payment":"भुगतान बनाएँ","pay_target":"लक्ष्य","pay_for_torrent":"{0} के लिए भुगतान करें","your_subid":"आपकी उपआईडी","your_credits":"आपका श्रेय","pay_point_for_data":"{1} डेटा के लिए {0} प्वाइंट का भुगतान करें","auto_renew":"स्वतः नवीनीकरण सक्षम करें","transaction_details":"लेनदेन का विवरण","transaction_id":"पहचान","transaction_payer":"भुगतानकर्ता","transaction_payee":"आदाता","transaction_category":"वर्ग","transaction_changed_amount":"परिवर्तित राशि","transaction_meta":"मेटा","transaction_status":"दर्जा","transaction_creation_time":"रचना समय","receipt_code":"रसीद कोड","transfer_amount":"स्थानांतरण राशि","code_the_receipt_code":"नीचे दिए गए रसीद कोड को भुगतानकर्ता के पास कॉपी करें","fill_the_receipt_code":"प्राप्तकर्ता द्वारा प्रदान किया गया भुगतान कोड भरकर स्थानांतरण करें","expense":"व्यय","copied":"कॉपी किया गया","transfer":"स्थानांतरण","receive":"पाना","copy":"प्रतिलिपि","withdraw_fund":"फंड निकालना","category_paydata_payer":"डेटा की लागत","category_paydata_payee":"डेटा की आय","category_transfer":"स्थानांतरण","category_bonus":"बक्शीश","category_recharge":"फिर से दाम लगाना","status_pending":"लंबित","status_completed":"पुरा होना","status_finish":"खत्म करना","status_failed":"असफल","tip_invalid_receiver":"अमान्य रिसीवर कोड","tip_invalid_amount":"क्रेडिट राशि 0-1000 की सीमा में फ़्लोट होनी चाहिए (न्यूनतम सटीकता 0.001 है)","credit_get_more":"अधिक क्रेडिट प्राप्त करें","credit_no_data":"कोई डेटा मौजूद नहीं","credit_loading":"लोड हो रहा है...","credit_not_enough_amount":"पर्याप्त क्रेडिट नहीं","credit_amount_not_enough":"पर्याप्त क्रेडिट नहीं","credit_payee_not_exist":"आदाता मौजूद नहीं है","credit_invalid_amount":"अमान्य क्रेडिट राशि","credit_can_not_transfer_to_yourself":"अपने आप को स्थानांतरित नहीं किया जा सकता","credit_latest":"नवीनतम","credit_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","add_subtitles":"उपशीर्षक जोड़ें","open_file":"खुली फाइल...","advanced_options":"उन्नत विकल्प","title":"शीर्षक","location":"जगह","subtitle_file":"उपशीर्षक फ़ाइल","unsupported_subtitle_type":"{0} का फ़ाइल प्रकार समर्थित उपशीर्षक प्रकार नहीं है","not_default_player":"डिफ़ॉल्ट वीडियो प्लेयर सेट नहीं है","this_is_an_audio_file":"यह एक ऑडियो फ़ाइल है","the_added_subtitle_already_exists":"जोड़ा गया उपशीर्षक पहले से मौजूद है","stop_stream_player":"स्ट्रीमिंग मीडिया समाप्त कर दिया गया क्योंकि कार्य रोक दिया गया था या हटा दिया गया था","stop_player":"फ़ाइल हटा दिए जाने के कारण प्लेयर समाप्त कर दिया गया था","playing_timeout_hint":"प्रतीक्षा का समय समाप्त हो गया। कृपया कार्य की जाँच करें","autoplay_hint":"ऑटोप्ले आपके ब्राउज़र द्वारा अवरुद्ध किया जा सकता है. यदि प्लेयर नहीं चल रहा है, तो जारी रखने के लिए स्क्रीन पर क्लिक करने का प्रयास करें","remove_playing_confirm":"{0} अभी भी चल रहा है, इसे हटा दें तो प्लेयर बंद हो जाएगा। क्या आप निश्चित रूप से इसे हटा देंगे?","unsupported_in_browser":"ब्राउज़र मोड में अभी तक समर्थित नहीं है","client":"ग्राहक","warning":"चेतावनी","enable":"सक्षम","disable":"अक्षम करना","auto":"ऑटो","encrypt_connection":"कनेक्शन एन्क्रिप्ट करें","encrypted_connection":"एन्क्रिप्टेड कनेक्शन","non_encrypted_connection":"गैर-एन्क्रिप्टेड कनेक्शन","connected_wires_not_disconnect":"जुड़े हुए तारों को नहीं काटा जाएगा","audio":"ऑडियो","video":"वीडियो","image":"छवि","subtitle":"उपशीर्षक","zip":"ज़िप","text":"मूलपाठ","unknown":"अज्ञात","add":"जोड़ना","undo":"पूर्ववत","backup":"बैकअप","not_default_app":"${displayName} टोरेंट और मीडिया के लिए आपका डिफ़ॉल्ट ऐप नहीं है, क्या आप इसे डिफ़ॉल्ट के रूप में सेट करना चाहते हैं?","dont_show_again":"दोबारा मत दिखाना","go_to_settings":"सेटिंग्स में जाओ","about_alphabiz":"लगभग ${displayName}","last_check_at":"आखिरी बार जांचें","update_channel":"चैनल अपडेट करें","check_for_update":"अपडेट के लिये जांचें","checking_for_update":"अद्यतन के लिए जाँच की जा रही है...","no_update_available":"कोई अद्यतन उपलब्ध नहीं है","update_available":"उपलब्ध अद्यतन","update_now":"अभी अद्यतन करें","update_later":"बाद में अपडेट करें","click_to_update":"डाउनलोड और अपडेट करने के लिए अभी अपडेट करें बटन पर क्लिक करें","update_failed":"भार बढ़ाना विफल हुवा","update_failed_message":"अद्यतन करते समय एक त्रुटि उत्पन्न हुई:","check_shasum_failed":"इंस्टॉलर के लिए सत्यनिष्ठा की जाँच करने में विफल","downloading_update":"अद्यतन स्थिति डाउनलोड हो रही है...","ready_to_update":"अद्यतन करने के लिए तैयार","restart_to_update":"अपडेट डाउनलोड हो गया है. ${displayName} कुछ क्षण के लिए अपडेट करने के लिए बाहर निकल जाएगा।","already_latest":"वर्तमान संस्करण({0}) पहले से ही नवीनतम है","update_timeout":"अपडेट टाइमआउट","no_available_release":"कोई उपलब्ध रिलीज़ नहीं","no_available_installer":"कोई उपलब्ध इंस्टॉलर नहीं","feedback":"प्रतिक्रिया","select_a_type":"एक प्रकार चुनें","category":"वर्ग","select_a_category":"एक श्रेणी चुनें","require_title":"शीर्षक आवश्यक है","describe_your_problem":"अपनी समस्या का वर्णन करें","report_a_bug":"एक बग रिपोर्ट करो","request_a_new_feature":"एक नई सुविधा का अनुरोध करें","download_or_upload":"डाउनलोड अपलोड","others":"अन्य","submit_with_system_info":"सिस्टम जानकारी के साथ सबमिट करें","submit_feedback":"प्रतिपुष्टि दें","tweet_us":"हमें ट्वीट करें","tweet_too_long":"ट्वीट बहुत लंबा है","delete_characters":"कृपया कम से कम {0} अक्षर हटाएं","rest_characters":"आप {0} अधिक वर्ण इनपुट कर सकते हैं","update_alphabiz":"अद्यतन ${displayName}","current_version":"वर्तमान संस्करण","cancel_update":"अद्यतन रद्द करें","slow_download_speed":"डाउनलोड बहुत धीमा है","slow_download_speed_caption":"इंस्टॉलर डाउनलोड अब बहुत धीमा है. कृपया नेटवर्क स्थिति जांचें","update_canceled":"अद्यतन रद्द किया गया","current_version_release_time":"वर्तमान संस्करण का रिलीज़ समय","expired_app":"${displayName} समाप्त हो गया","version_out_of_date":"संस्करण पुराना है","have_to_update":"${displayName} का संस्करण पुराना हो चुका है। कुछ प्रोटोकॉल या एपीआई अप्रचलित हैं। जारी रखने से पहले आपको ${displayName} अपडेट करना होगा।","exit_alphabiz":"${displayName} से बाहर निकलें","exit_and_update":"बाहर निकलें और अपडेट लागू करें","new_version_hint":"नया संस्करण उपलब्ध है","no_new_version":"कोई नया संस्करण उपलब्ध नहीं है","current_is_latest":"वर्तमान संस्करण पहले से ही नवीनतम है","click_to_check_update":"अपडेट की जांच के लिए [अद्यतन की जांच करें] बटन पर क्लिक करें","download_latest_version_from_website":"कृपया नवीनतम संस्करण डाउनलोड करने के लिए आधिकारिक वेबसाइट पर जाएँ","to_the_website":"वेबसाइट के लिए","network_diagnotic":"नेटवर्क डायग्नोस्टिक","diagnotic":"डायग्नोस्टिक","click_to_check":"जांचने के लिए क्लिक करें","click_to_check_again":"दोबारा जांचने के लिए क्लिक करें","checking":"चेकिंग","online":"ऑनलाइन","offline":"ऑफलाइन","dns_look_up":"डीएनएस लुकअप","error":"गलती","aws_service":"एडब्ल्यूएस सेवा","network_pings":"नेटवर्क पिंग","not_found":"नहीं मिला","packet_loss":"पैकेट का नुकसान","official_site":"आधिकारिक साइट","download_test":"परीक्षण डाउनलोड करें","test_task":"परीक्षण कार्य {0}","download_failed":"डाउनलोड विफल","second_spend":"{0} का खर्च","open_default_player_failed":"डिफ़ॉल्ट प्लेयर खोलने में विफल","copied_to_clipboard":"क्लिपबोर्ड पर नकल","go_to":"के लिए जाओ","region_not_available":"क्षेत्र उपलब्ध नहीं है","region_not_available_message":"क्षमा मांगना! आपका क्षेत्र इस ऐप का उपयोग करने के लिए उपलब्ध नहीं है। यह ऐप {0} सेकंड के बाद बंद हो जाएगा","confirm":"पुष्टि करना","no_available_result":"कोई परिणाम उपलब्ध नहीं","invalid_password_format":"अवैध पासवर्ड प्रारूप","invalid_password_format_same":"पासवर्ड मूल पासवर्ड जैसा ही है","error_password":"पासवर्ड त्रुटि","keychain_setting":"कीचेन","setting_description":"क्लाउड स्टोरेज: मुख्य डेटा को क्लाउड में सेव करें।\\nपासवर्ड बदलें: मीडिया लाइब्रेरी कुंजी के लिए पासवर्ड बदलें।\\nनिमोनिक: कुंजियाँ उत्पन्न करने और पुनर्स्थापित करने की एक वैकल्पिक विधि।\\nस्थानीय कुंजी आयात करें: स्थानीय रूप से सहेजी गई कुंजी को मीडिया लाइब्रेरी में आयात करें।\\nनिर्यात कुंजी: वर्तमान मीडिया लाइब्रेरी डेटा को स्थानीय या क्लाउड पर सहेजता है।\\nक्लाउड के लिए बैकअप कुंजी: बैकअप के लिए वर्तमान मीडिया लाइब्रेरी डेटा को क्लाउड पर अपडेट करें।","refresh_status":"अद्यतन स्थिति","confirm_import_key":"आयात कुंजी की पुष्टि करें","confirm_update_cloud_key":"आपके पास पहले से ही क्लाउड में एक कुंजी है। कुंजी को अद्यतन करने से मूल कुंजी अधिलेखित हो जाएगी. क्या आप वाकई क्लाउड में संग्रहीत कुंजी को अपडेट करना चाहते हैं?","export_key_with_cloud":"क्लाउड में संग्रहीत लाइब्रेरी कुंजी को निर्यात करने के लिए आपके द्वारा सेट किया गया स्वतंत्र पासवर्ड दर्ज करें, और अनलॉक पासवर्ड द्वारा कुंजी फ़ाइल को लॉक करें","store_cloud_key_prompt_password":"लाइब्रेरी कुंजी को क्लाउड में संग्रहीत करने के लिए एक स्वतंत्र पासवर्ड दर्ज करें","update_cloud_key_prompt_password":"लाइब्रेरी कुंजी को एन्क्रिप्ट करने के लिए एक स्वतंत्र पासवर्ड सेट करें और फिर इसे क्लाउड पर अपडेट करें","enable_cloud_storage_prompt_password":"क्लाउड में संग्रहीत कुंजी के लिए एक पासवर्ड सेट करें, जिसके माध्यम से आप क्लाउड से कुंजी पुनः प्राप्त कर सकते हैं","input_unlock_password":"अनलॉक पासवर्ड सेट करें","export_local_prompt_password":"कृपया अपनी कुंजी फ़ाइल को एन्क्रिप्ट करने के लिए एक अनलॉक पासवर्ड सेट करें। हम आपके लिए यह पासवर्ड सेव नहीं करेंगे, इसलिए यदि आप अपना पासवर्ड खो देते हैं, तो आप अपनी लाइब्रेरी कुंजी को अनलॉक नहीं कर पाएंगे","require_unlock_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","require_independent_password":"कुंजी को क्लाउड में संग्रहीत करने के लिए स्वतंत्र पासवर्ड दर्ज करें","import_local_prompt_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","select_encrypt_mode":"एन्क्रिप्शन मोड का चयन करें","update_cloud_key":"क्लाउड में संग्रहीत कुंजी को अद्यतन करें","backup_to_cloud":"लाइब्रेरी कुंजी को क्लाउड पर बैकअप करें","save_local":"लाइब्रेरी कुंजी को स्थानीय एन्क्रिप्टेड फ़ाइल के रूप में सहेजें","create_new_key":"एक नई लाइब्रेरी कुंजी बनाएं","creating_lib_key":"लाइब्रेरी कुंजी बनाई जा रही है...","loading_lib_key":"लाइब्रेरी कुंजी लोड हो रही है...","failed_to_create_lib_key":"लाइब्रेरी कुंजी बनाने में विफल","failed_to_load_lib_key":"लाइब्रेरी कुंजी लोड करने में विफल","import_local_key":"कुंजी को स्थानीय रूप से आयात करें","import_lib_key_from_local":"लाइब्रेरी कुंजी को स्थानीय रूप से आयात करें","import_from_cloud":"क्लाउड से लाइब्रेरी कुंजी आयात करें","create_or_import_key":"लाइब्रेरी कुंजी बनाएं या आयात करें","create_or_import_key_desc":"लाइब्रेरी कुंजी एक स्वतंत्र कुंजी है जिसका उपयोग विकेंद्रीकृत डेटाबेस के साथ सामग्री लाने और प्रकाशित करने के लिए किया जाता है।","store_your_lib_key":"अपनी लाइब्रेरी कुंजी संग्रहीत करें","export_cloud_key":"क्लाउड से कुंजी निर्यात करें","export_current_key":"वर्तमान कुंजी निर्यात करें","change_password":"पासवर्ड बदलें","enable_cloud_storage":"क्लाउड स्टोरेज सक्षम करें","disable_cloud_storage":"क्लाउड स्टोरेज अक्षम करें","disable_cloud_storage_desc":"क्लाउड स्टोरेज को अक्षम करने से क्लाउड में सहेजी गई कुंजी हट जाएगी, कृपया सुनिश्चित करें कि कुंजी स्थानीय रूप से सहेजी गई है","sync_at":"यहां सिंक करें: {time}","cloud_storage_enabled":"{storage} के साथ किचेन को सिंक करें","cloud_storage_disabled":"क्लाउड स्टोरेज अक्षम किया गया","saved_locally":"स्थानीय स्तर पर सहेजा गया","export_key":"कुंजी फ़ाइल निर्यात करें","cloud_independent_password":"क्लाउड स्वतंत्र पासवर्ड","key_file_unlock_password":"कुंजी फ़ाइल अनलॉक पासवर्ड","re_enter_unlock_password":"अनलॉक पासवर्ड पुनः दर्ज करें","independent_password_not_enabled":"वर्तमान पासवर्ड अल्फ़ाबिज़ खाता पासवर्ड है (कोई स्वतंत्र पासवर्ड सेट नहीं है)","use_cognito_hash":"अल्फ़ाबिज़ खाता पासवर्ड का उपयोग करें","use_independent_password":"स्वतंत्र पासवर्ड का प्रयोग करें","keychain_lib":"पुस्तकालय कुंजी","loading_keychain_state":"चाबी का गुच्छा लोड हो रहा है...","backing_up":"समर्थन करना...","backup_current_key":"क्लाउड पर वर्तमान कुंजी का बैकअप लें","cloud_lib_key_not_existed":"लाइब्रेरी कुंजी क्लाउड में मौजूद नहीं है","open_keychain_file":"किचेन फ़ाइल खोलें","confirm_open_abk":"क्या आप एबीके फ़ाइल खोलना चाहते हैं?","use_the_key":"कुंजी का प्रयोग करें","backup_the_key":"क्लाउड पर कुंजी का बैकअप लें","keychain_data_does_not_exist":"किचेन डेटा मौजूद नहीं है","timeout of 0ms exceeded":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","XhrError":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","payer credit amount is not enough":"पर्याप्त क्रेडिट नहीं","payee does not exist":"आदाता मौजूद नहीं है","block_list_manage":"ब्लॉक सूची प्रबंधन","blocked_users":"रोके गए उपयोगकर्ता","blocked_channels":"अवरुद्ध चैनल","unblock_user":"उपयोगकर्ता को अनब्लॉक करें","unblock_channel":"चैनल अनब्लॉक करें","no_blocked_user":"कोई अवरुद्ध उपयोगकर्ता नहीं","no_blocked_channel":"कोई अवरुद्ध चैनल नहीं","field_required":"{0} आवश्यक है","setting":"सेटिंग","unknown_media":"अज्ञात मीडिया","settings_button_visible":"बटन दृश्यमान","settings_setting":"सेटिंग","settings_playback_rate":"प्लेबैक दर","settings_subtitle":"उपशीर्षक","settings_pip":"रंज","settings_fullscreen":"पूर्ण स्क्रीन","settings_subtitle_options":"उपशीर्षक विकल्प","settings_normal":"सामान्य","settings_italic":"तिरछा","settings_lighter":"लाइटर","settings_bolder":"बोल्डर","settings_small":"छोटा","settings_large":"बड़ा","about":"के बारे में","services":"सेवाएं","hide":"छिपाना","hide_others":"दूसरों को छुपाएं","show_all":"सब दिखाएं","quit":"छोड़ना","edit":"संपादन करना","redo":"फिर से करना","cut":"काटना","paste":"पेस्ट करें","select_all":"सबका चयन करें","view":"देखना","reload":"पुनः लोड करें","toggle_full_screen":"संपूर्ण स्क्रीन टॉगल करें","toggle_developer_tools":"डेवलपर टूल टॉगल करें","window":"खिड़की","minimize":"छोटा करना","bring_all_to_front":"सभी को सामने लाओ","help":"मदद","github_repo":"जीथब रेपो","issues":"समस्याएँ","learn_more":"और अधिक जानें","learn_spelling":"वर्तनी सीखें","lookup_selection":"ऊपर देखो \\"{selection}\\"","search_with_google":"गूगल से खोजें","save_as":"के रूप रक्षित करें","save_image":"चित्र को सेव करें","save_image_as":"इमेज को इस तरह सेव कीजिए ...","copy_link":"लिंक की प्रतिलिपि करें","save_link_as":"लिंक इस रूप में सेव करें ...","copy_image":"नकल छवि","copy_image_as":"छवि को इस रूप में कॉपी करें...","copy_image_address":"छवि पता कॉपी करें","download_complete":"डाउनलोड पूर्ण","download_complete_message":"{0} डाउनलोड हो गया है","is_running":"{0} चल रहा है","open":"{0} खोलें","launch_problem":"लॉन्च समस्या","ask_clear_data":"ऐसा लगता है कि आप {0} लॉन्च करने का प्रयास कर रहे हैं लेकिन कई बार विफल रहे।\\nक्या आप सभी ऐप डेटा साफ़ करना चाहते हैं और बाद में लॉन्च करने का प्रयास करना चाहते हैं?","launch_directly":"सीधे लॉन्च करें","clear_all_data":"सभी डेटा साफ़ करें","ask_clear_confirm":"यह सभी कॉन्फ़िगरेशन, लॉग और उपयोगकर्ता डेटा हटा देगा!\\nइसके बाद आपको {0} को फिर से लॉन्च करने की आवश्यकता हो सकती है।\\nक्या आप निश्चित रूप से डेटा साफ़ करना चाहते हैं?","confirm_launch":"नहीं, सीधे लॉन्च करें","confirm_clear":"हां, सारा डेटा साफ़ करें"}')},"88f5":function(e,t,a){"use strict";a("0f74")},"899b5":function(e,t,a){"use strict";a("81a4")},"8a63":function(e,t,a){"use strict";a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return p})),a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"e",(function(){return g})),a.d(t,"g",(function(){return f})),a.d(t,"h",(function(){return b})),a.d(t,"a",(function(){return y}));a("a1c1"),a("7a76");var n=a("d7df"),o=a("5584"),i=a("1926"),r=a("8750"),s=a("f680"),l=a("84f6"),c=a("d310"),d=a("d558");setTimeout((()=>{n["a"].on("torrent_list",(e=>{l["a"].updateTaskList(e)})),n["a"].on("torrent_delete",(e=>{console.log("deleted",e),l["a"].onDeleteTask(e)})),n["a"].on("torrent_error",(e=>{console.log("torrent error",e);const t=e.torrent||{},a=t.postTitle||t.name||t.infoHash||e.token;s["a"].create({message:i["b"].t("torrent_error")+" "+a,caption:i["b"].t(e.message),group:e.message})}))}),1e3);const u=()=>{const e=o["a"].getters.settings;return{downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}};function _(e,t){const a="string"===typeof t?t:(null===t||void 0===t?void 0:t.path)||(null===t||void 0===t?void 0:t[0].path);if(!a)return;let o=0;const i=a.startsWith("ab://")?a.replace(/^ab:\/\//,(()=>"alphabiz://alphabiz-task-"+o++)):a;n["a"].emit("download_torrent",{type:e,url:i,file:i,token:crypto.randomUUID(),...u()})}function p(e,t){console.log("pause torrent",e);const a=l["a"].taskList.downloaded.find((t=>t.infoHash===e));if(!a)return n["a"].emit("pause_torrent",e);const o=e=>{var a,n;const o=t.dp$expenseHashMapper[e];if(!o)return;const i=null===(a=t.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>o.includes(e))),r=null===(n=t.dp$expenseStatusMapper.COMPLETED)||void 0===n?void 0:n.filter((e=>o.includes(e)));i&&i.forEach((e=>{console.log("dp$cancel from pauseTorrent",e),t.dp$cancel(e).catch((t=>{console.log("dp$cancel failed:",e,t.code,t.message)}))})),r&&r.forEach((e=>{console.log("dp$confirm from pauseTorrent",e),t.dp$confirm(e)}))};return r["a"].create({title:i["b"].t("pause"),message:i["b"].t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("pause")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{try{o(e)}catch(t){console.log("dp$pause failed:",t.message)}n["a"].emit("pause_torrent",e)}))}function m(e=!1){if(e&&!o["a"].getters.settings.autoStartUnfinished&&!Object(d["a"])())return console.log("Skip auto download all");const t=l["a"].taskList.downloading.filter((t=>(!e||!t.pausedByUser)&&t.paused)).sort(((e,t)=>{const a=e.createdTime-t.createdTime;return isNaN(a)?0:a}));return console.log("[DownloadAll] resume",t),n["a"].emit("resume-all",t),new Promise((e=>{n["a"].once("resume-all",e)}))}function h(e=!1){n["a"].emit("pause_all",e),setTimeout((()=>{n["a"].emit("pause_all",e)}))}function g(e=!1){const t=l["a"].taskList.uploading;if(!t.length)return;const a=t.filter((e=>!e.infoHash&&!e.isPreload&&!e.files));if(a.length)return e&&(a.forEach((e=>{n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)),r["a"].create({message:i["b"].t("some_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{a.forEach((e=>{e.infoHash||n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)}));n["a"].emit("pause_all_uploading",e)}function f(e,t){const a=Array.isArray(e)?e:[e],o=a.map((e=>e?"string"===typeof e?e:"string"===typeof e.path?e.path:null:null)).filter((e=>e));if(!o.length&&Object(c["isElectron"])())throw new Error(`Cannot upload file ${e}: cannot get file path`);n["a"].emit("seed_torrent",{file:o,token:t||crypto.randomUUID(),...u()})}function b(e=!1){if(!l["a"].taskList.downloaded)return 0;const t=l["a"].taskList.downloaded.filter((t=>(!e||!t.pausedByUser)&&(!t.missAllFile&&!t.missFile)));if(!t.length)return console.log("skip upload all since nothing to upload"),l["a"].taskList.downloaded.length;const a=l["a"].taskList.downloaded.length-t.length;return n["a"].emit("seed_torrents",t),a}async function y(){o["a"].getters.settings.autoStartUnfinished?"signedIn"===o["a"].state.account.authState?(console.log("prepare download all"),await m(!0),b(!0)):console.log("User is not logged in",o["a"].getters.accountUserInfo.authState):console.log("User disabled auto restart")}},"8dc9":function(e,t,a){},"8f79":function(e,t,a){},"8fd4":function(e,t,a){},9:function(e,t){},"91fe":function(e,t,a){},9256:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},9344:function(e,t,a){"use strict";a("1278")},9369:function(e,t,a){"use strict";a.d(t,"c",(function(){return r})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return c}));a("7a76"),a("de6c"),a("f200");var n=a("5584"),o=a("36a1"),i=a("072b");function r(e){return!!e||this.$t("account_is_required")}function s(e){return i["d"].call(this,e)}function l(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function c(e,t={}){const{mode:a,password:o,keyName:i}=t,r=await n["a"].dispatch("syncKeychainState");r[i]?await n["a"].dispatch("updateKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}):await n["a"].dispatch("createKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}),await n["a"].dispatch("syncKeychainState")}async function d(e,t){const a=async()=>{var e;if(!o["a"].user||null===(e=o["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=o["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t},i={lib:await a()},r=Object.keys(i).map((a=>c.call(this,i[a],{mode:e,password:t,keyName:a})));await Promise.all(r),await n["a"].dispatch("syncKeychainState")}t["b"]={beforeCreate(){if(!["StatusBanner","ChangePassword"].includes(this.$options.name))throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async keychain$changePassword(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{const t={oldPassword:{type:"password",model:"",label:this.$t("account_current_password"),rules:[r.bind(this),s.bind(this)]},password:{type:"password",model:"",label:this.$t("account_new_password"),rules:[r.bind(this),s.bind(this),e=>t.oldPassword.model!==e||this.$t("invalid_password_format_same")]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("change_password"),message:n["a"].getters.keychainState.unset?this.$t("independent_password_not_enabled"):void 0,cancel:!0,prompts:t,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.oldPassword,a.password)}))});await a.promise()};await a((async(a,o,i)=>{try{await n["a"].dispatch("changeKeychainPassword",{oldPassword:o,password:i}),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(r){e(r.message)}}))},async keychain$enableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=()=>{try{var t;if(!o["a"].user||null===(t=o["a"].user._)||void 0===t||!t.sea)throw new Error("Please login first")}catch(a){e(a.message)}};a();const i=l.call(this,this.$t("loading_keychain_state")),c=await n["a"].dispatch("syncKeychainState").finally(i.hide),u=async e=>{const t={password:{type:"password",label:this.$t("account_password"),model:"",rules:[r.bind(this),s.bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("input_independent_password"),prompts:t,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password)))});await a.promise()};if(c.hash&&c.unset){const a=async e=>{const t={};t.use_cognito_hash={color:"primary",textColor:"primary",label:this.$t("use_cognito_hash"),handler:t=>t.dialog$useLoadingState("use_cognito_hash",(()=>e(t,"cognito_hash")))},t.use_independent_password={label:this.$t("use_independent_password"),handler:t=>t.dialog$useLoadingState("use_independent_password",(()=>e(t,"independent_password")))};const a=this.$alphabiz.dialog({title:this.$t("enable_cloud_storage"),message:this.$t("enable_cloud_storage_prompt_password"),cancel:!0,ok:!1,actions:t});await a.promise()};await a((async(a,n)=>{if("independent_password"===n)await u((async(o,i)=>{try{await d.call(this,n,i),t(),o.hide(),a.hide()}catch(r){e(r.message)}}));else if("cognito_hash"===n)try{await d.call(this,n,void 0),t(),a.hide()}catch(o){e(o.message)}}))}else await u((async(a,n)=>{try{await d.call(this,"independent_password",n),t(),a.hide()}catch(o){e(o.message)}}))},async keychain$disableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{let t=5;const a=()=>({label:t?`${this.$t("disable_cloud_storage")} (${t})`:this.$t("disable_cloud_storage"),disable:!!t,color:"negative",textColor:"negative",handler:t=>t.dialog$useLoadingState("ok",e)}),n=this.$alphabiz.dialog({title:this.$t("disable_cloud_storage"),message:this.$t("disable_cloud_storage_desc"),cancel:!0,ok:a()}),o=setInterval((()=>{t>0?t-=1:clearInterval(o),n.update({ok:a()})}),1e3);await n.promise()};await a((async a=>{try{await new Promise((e=>setTimeout(e,1e3))),await n["a"].dispatch("disableKeychainCloud"),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(o){e(o.message)}}))}}}},"937c":function(e,t){e.exports={remote:{url:"https://alpha.biz/app/remote_config"},local:{type:"local",version:"default:v1",oauth:{enable:!1,providers:["Github","Twitter"]},account:{phone_number:!1},library:{show_explore:!1},update:{enable:!1}}}},"93e8":function(e,t,a){"use strict";a("981d")},9445:function(e){e.exports=JSON.parse('{"users":[{"_comment":"You should use pubkey as id here. See take-down.js for more info.","id":"a_pubkey_of_user","reason":"Serious Violation"}],"channels":[{"id":"an_id_of_channel","reason":"Copyright Disputes"}],"posts":[{"id":"an_id_of_post","reason":"Adults Only"}]}')},9572:function(e,t,a){"use strict";a("7a76"),a("d4b5"),a("de6c");var n=a("02fe"),o=a.n(n);const i=({encryptor:e,decryptor:t,randomHex:a,pbkdf2:n})=>{const o=e=>{if(64!==e.length)throw new Error("Invalid password length")},i=(t,a)=>{const o=n(a.password,a.salt,1e3,32);return e(t,o,Buffer.from(a.iv,"hex"))},r=(e,a)=>{const o=n(a.password,a.salt,1e3,32);return t(e,o,Buffer.from(a.iv,"hex"))},s=(e,t)=>{o(t);const n=a(),r=a(),s=i(e,{password:t,iv:n,salt:r});return JSON.stringify({encrypted:s,salt:r,iv:n})},l=(e,t)=>{o(t);const a=JSON.parse(e),n=r(a.encrypted,{password:t,salt:a.salt,iv:a.iv});if(!n)throw new Error("password_error");return n},c=(e,t,a)=>{o(t),o(a);const n=l(e,t);return s(n,a)};return{encryptKey:s,decryptKey:l,changePassword:c}},r=i({encryptor:(e,t,a)=>{const n=o.a.AES.encrypt(e,o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return n.ciphertext.toString()},decryptor:(e,t,a)=>{try{const n=o.a.AES.decrypt(o.a.enc.Base64.stringify(o.a.enc.Hex.parse(e)),o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return o.a.enc.Utf8.stringify(n)}catch(n){return console.error(n.message),null}},pbkdf2:(e,t,a,n)=>o.a.enc.Hex.stringify(o.a.PBKDF2(e,t,{hasher:o.a.algo.SHA512,keySize:2*n/8,iterations:a})),randomHex:()=>o.a.enc.Hex.stringify(o.a.lib.WordArray.random(16))}),s=e=>o.a.SHA256(e).toString();t["a"]={encryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{epub:a,pub:n,epriv:o,priv:i}=e,l=[a,n,o,i].join(":");return r.encryptKey(l,s(t))},decryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");const a=r.decryptKey(e,s(t)),[n,o,i,l]=a.split(":"),c={epub:n,pub:o,epriv:i,priv:l};if(["epriv","epub","priv","pub"].some((e=>!c[e])))throw new Error("invalid_key");return c},changePassword:async(e,t,a)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(!a||"string"!==typeof a)throw new Error("invalid_password");return r.changePassword(e,s(t),s(a))},digestPassword:e=>{if(!e||"string"!==typeof e)throw new Error("invalid_password");return s(e)}}},"981d":function(e,t,a){},9910:function(e,t,a){},9992:function(e,t,a){"use strict";a("603c")},"9a50":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"file-selector",on:{click:e.onClick,touch:e.onClick}},[a("input",{ref:"fileSelector",staticClass:"file-selector-input",attrs:{type:"file",name:"fileSelector",webkitdirectory:e.directory,accept:e.accept?"."+e.accept.extensions[0]:"*"},on:{change:e.onSelect}}),e._t("default",(function(){return[a("q-btn",{attrs:{color:"primary",icon:"folder_open",label:e.$t("select_file")}})]}))],2)},o=[],i=(a("de6c"),a("0598")),r=a("d558"),s=a("d6fe"),l={name:"FileSelector",props:{directory:Boolean,accept:{type:Object,required:!1}},data(){return{isElectron:Object(i["default"])(),isCapacitor:Object(r["a"])()}},mounted(){console.log("File selector mounted")},methods:{getFileContent(e){const t=a("bc7b").readFileSync(e,{encoding:"binary"});return t},buildFile(e){if(this.directory||a("bc7b").statSync(e).isDirectory())return a("bc7b").statSync(e).isDirectory()?{path:e,name:e}:{path:e,name:Object(s["dirname"])(e)};const t=[this.getFileContent(e)],n=Object(s["basename"])(e),o=a("ea33").lookup(Object(s["extname"])(e));return console.log("buf",t,e),console.log(n,o),new File(t,n,{type:o})},async selectDirectory(){if(!this.isElectron)return this.$refs.fileSelector.click();console.log("select directory");const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"1b85",7));e.once("select_file_or_directory",((e,t)=>{const a=t&&!t.canceled&&Array.isArray(t.filePaths)&&t.filePaths.length?t.filePaths.map((e=>this.buildFile(e))):null;this.$emit("select",a)})),e.send("select_file_or_directory",[])},async selectFile(){console.log("click select file",this.$refs.fileSelector);const e=this.$refs.fileSelector;return e.click()},onClick(){if(console.log("onclick",this.$refs.fileSelector),this.directory)return this.selectDirectory();this.selectFile()},onSelect(e){var t,a,n;console.log("on select files",null===(t=e.target)||void 0===t?void 0:t.files);const o=null===(a=e.target)||void 0===a||null===(n=a.files)||void 0===n?void 0:n[0];this.$emit("select",o)}}},c=l,d=(a("f157"),a("2b5f")),u=a("1043"),_=a("09a4"),p=a.n(_),m=Object(d["a"])(c,n,o,!1,null,"a5acd74c",null);t["a"]=m.exports;p()(m,"components",{QBtn:u["a"]})},"9be9":function(e,t,a){},"9c3b":function(e,t,a){},"9d1e":function(e,t,a){},"9e98":function(e,t,a){"use strict";a("2cfd")},"9e9b":function(e,t,a){},"9efe":function(e,t,a){"use strict";a.d(t,"e",(function(){return p})),a.d(t,"f",(function(){return m})),a.d(t,"l",(function(){return h})),a.d(t,"m",(function(){return g})),a.d(t,"o",(function(){return f})),a.d(t,"n",(function(){return b})),a.d(t,"b",(function(){return y})),a.d(t,"x",(function(){return v})),a.d(t,"g",(function(){return w})),a.d(t,"i",(function(){return k})),a.d(t,"c",(function(){return S})),a.d(t,"h",(function(){return C})),a.d(t,"t",(function(){return x})),a.d(t,"u",(function(){return $})),a.d(t,"v",(function(){return T})),a.d(t,"d",(function(){return z})),a.d(t,"p",(function(){return P})),a.d(t,"q",(function(){return A})),a.d(t,"r",(function(){return I})),a.d(t,"j",(function(){return q})),a.d(t,"w",(function(){return O})),a.d(t,"k",(function(){return E})),a.d(t,"a",(function(){return D})),a.d(t,"s",(function(){return j}));a("de6c"),a("7a76"),a("d4b5"),a("f200"),a("dc69"),a("0c26"),a("a1c1");var n=a("e74d"),o=a("67cf"),i=a("35f4"),r=a("e75b"),s=a("9572"),l=a("ff9b");const c=new r["a"].Rest("ABDevRest"),d=Object(i["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20),u=e=>(e.email&&(e.email=e.email.toLowerCase()),{username:e.username,password:e.password,attributes:{...e.msgLocale?{"custom:msg_locale":e.msgLocale}:{},...e.email?{email:e.email}:{},...e.phoneNumber?{phone_number:e.phoneNumber}:{},...e.phoneNumberCountryCode?{"custom:phone_number_code":e.phoneNumberCountryCode}:{},...e.keyMetadata?{"custom:key_metadata":e.keyMetadata}:{}},clientMetadata:{oauthSignUp:e.oauthSignUp||"false",...e.invitationCode?{invitationCode:e.invitationCode}:{},...e.oauthData?{oauthData:e.oauthData}:{},...e.appClient?{"custom:app_client":e.appClient}:{},...e.signUpIpAddress?{"custom:signing_ip_address":e.signUpIpAddress}:{},...e.os?{"custom:os":e.os}:{}}}),_=e=>{e.email&&(e.email=e.email.toLowerCase());const t={email:"email",phoneNumber:"phone_number",phoneNumberCountryCode:"custom:phone_number_code",msgLocale:"custom:msg_locale",emailVerified:"email_verified",phoneNumberVerified:"phone_number_verified",app_client:"custom:app_client",os:"custom:os",nickname:"nickname",gender:"gender",birthday:"birthdate",locale:"locale"},a={};return Object.entries(t).forEach((([t,n])=>{void 0!==e[t]&&(a[n]=e[t])})),a};async function p(e=!0){const t=await n["a"].currentAuthenticatedUser().catch((e=>{throw new Error(e)}));if(!t||0===Object.keys(t).length)throw new Error("No authed user");return e||(t.dynamo_attrs={},t.dynamo_attrs.invitation_code=[]),t}async function m(){const e=await n["a"].currentUserInfo();if(!e||0===Object.keys(e).length)throw new Error("No user info");return e.dynamo_attrs={},e.dynamo_attrs.invitation_code=[],e}async function h(e,t){e=e.toLowerCase();let a=await n["a"].signIn(e,t,{});if("SMS_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.destination=a.challengeParam.CODE_DELIVERY_DESTINATION,e.user=a,e}if("SOFTWARE_TOKEN_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.user=a,e}if("CUSTOM_CHALLENGE"===a.challengeName){const e=await l["a"].prototype.$recaptcha("login");if(a=await n["a"].sendCustomChallengeAnswer(a,e),!a)throw new Error("Network Error")}c.post("/account/postSignIn",{keychainMetadataHash:s["a"].digestPassword(t)}).catch((e=>{console.error(e.message)}))}async function g(e,t,a){return n["a"].confirmSignIn(e,a,t)}async function f(e){e.username=d().toLowerCase();const t=await n["a"].signUp(u(e));return await c.postGuest("/account/postSignUp",{sub:t.userSub,username:e.username,keychainMetadataHash:s["a"].digestPassword(e.password),isTestEnv:window.isTestEnv,invitationCode:e.invitationCode}),t}async function b(){return await n["a"].signOut().catch((e=>{console.log("SignOut catch >>",e)}))}async function y(e){const t=await p(),a=await n["a"].updateUserAttributes(t,_(e));if("SUCCESS"!==a)throw new Error("Change attributes failed")}async function v(e){const t=await p(),a=await n["a"].changePassword(t,e,e).catch((e=>{throw"Incorrect username or password."===e.message?new Error("Incorrect password"):e}));return"SUCCESS"===a}function w(e,t={}){return e=e.toLowerCase(),n["a"].forgotPassword(e,t)}function k(e){return e=e.toLowerCase(),n["a"].resendSignUp(e)}async function S(e,t,a={},o={oauthSignUp:"false"}){e=e.toLowerCase();const i={optionalAttributes:JSON.stringify(_(a)),...o},r=await n["a"].confirmSignUp(e,t,{clientMetadata:i});if("SUCCESS"!==r)throw new Error(JSON.stringify(r));return r}async function C(e,t,a){t&&(t=t.toLowerCase()),await c.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function x(e){await n["a"].verifyCurrentUserAttribute(e)}async function $(e,...t){const a={email:{email:t[0].toLowerCase()},phone_number:{phoneNumber:t[0],phoneNumberCountryCode:t[1]}}[e];await c.post("/account/setVerifyAttr",a)}async function T(e,t){const a=await n["a"].verifyCurrentUserAttributeSubmit(e,t);await c.post("/account/postVerifyAttr",{success:"SUCCESS"===a})}async function z(){await c.post("/admin/deleteAccount")}async function P(){const e=await n["a"].currentAuthenticatedUser();return await n["a"].setupTOTP(e)}async function A(e){const t=await n["a"].currentAuthenticatedUser();await n["a"].verifyTotpToken(t,e)}async function I(e,t){n["a"].signOutOAuth(),await c.postGuest("/account/unlinkProvider",{providerName:e,providerUserId:t})}async function q(e,t){e=e.toLowerCase();const a=await c.postGuest("/account/verifyForDisableMFA",{username:e,metadata:t}),n=a.email.Destination,o=a.phoneNumber.Destination;return{email:{destination:n},phoneNumber:{destination:o}}}async function O(e,t,a){e=e.toLowerCase(),await c.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}async function E(e,t){await y({msgLocale:`${e}:${t}`})}const D={data:{hash:void 0},record(e){if(!e)throw new Error("invalid password");D.data.hash=s["a"].digestPassword(e)},enable(){const e=async()=>{const e=async()=>{let e=await n["a"].currentUserInfo().then((e=>{var t;return null===e||void 0===e||null===(t=e.attributes)||void 0===t?void 0:t["custom:key_metadata"]}));return e=e?JSON.parse(e):{unset:!0,timestamps:{}},e},t=await e();t.hash?console.tag.green("Polyfill","config_password_hash","cancelled").log("cognito_hash_existed"):D.data.hash?(console.tag.green("Polyfill","config_password_hash","start").log(t),t.hash=D.data.hash,await n["a"].updateUserAttributes(await n["a"].currentAuthenticatedUser(),{"custom:key_metadata":JSON.stringify(t)}),console.tag.green("Polyfill","config_password_hash","done").log(t)):console.tag.green("Polyfill","config_password_hash","cancelled").log("local_hash_not_found")};this.$amplify.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await e()}))}};function j(){const e=a(["\n subscription OnMessage($channel: String!) {\n onMessage(channel: $channel) {\n channel\n data\n }\n }\n "]);return t;function t(t){const a=e("onMessage",{channel:`DeliveryStatus::${t}`},{authMode:"API_KEY"}),n=new Promise(((e,t)=>{a.on((a=>{const n=JSON.parse(a.data);console.log("promiseDeliveryStatus >",n),"Bounce"===n.type?t(o(n.data[0])):"Delivery"===n.type&&e(n)}))})).finally((()=>{a.off()}));return n.off=()=>a.off(),n;function o(e){var t;const a={"5.1.1":"Bad destination mailbox address","5.4.4":"Invalid domain","5.3.0":"Other or undefined mailbox status"};let n=a[e.status];return e.diagnosticCode.startsWith("smtp; 550 Mailbox unavailable or access denied")?n="Mailbox unavailable":e.diagnosticCode.indexOf("it is on the suppression list for your account.")&&(n="Suppressed email address"),new Error(null!==(t=n)&&void 0!==t?t:e.diagnosticCode)}}function a(e=[]){const t=a(e);return(e,a,{authMode:n,authToken:i}={})=>{if(!t[e])throw new Error(`Operation not found: ${e}`);const r=o["a"].graphql({query:t[e],variables:a,authMode:null!==n&&void 0!==n?n:void 0,authToken:null!==i&&void 0!==i?i:void 0});r.name=e;const s=(e,t)=>console.error(e[0].message,{errors:e,provider:t});let l;const c={on(e,t=s){return l&&l.unsubscribe(),l=r.subscribe({next:({provider:t,value:a})=>{var n;return e(null===(n=a.data)||void 0===n?void 0:n[r.name],t)},error:({provider:e,error:a})=>t(a.errors,e)}),c},off(){return l&&(l.unsubscribe(),l=null),c}};return c};function a(e=[]){return e.reduce(((e,a)=>(e[t(a)]=a,e)),{});function t(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return a}}}}},"9f3a":function(e,t,a){"use strict";a("4eaf")},"9f42":function(e,t,a){},"9fe7":function(e,t,a){"use strict";a("9be9")},a11f:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));a("de6c"),a("a1c1");var n=a("d710"),o=a.n(n);const i=new Map;function r(e){if(i.has(e))return i.get(e);if("string"!==typeof e)return e;let t=e;var a;if(e.startsWith(o.a.protocol))t=null===(a=e.match(/[^/]\/([^&/]+)/))||void 0===a?void 0:a[1];else if(e.startsWith(o.a.shortProtocol))t=e.replace(o.a.shortProtocol+"://","");else if(e.match(/([0-9a-fA-F]{40})/)){var n;t=null===(n=e.match(/([0-9a-fA-F]{40})/))||void 0===n?void 0:n[1],t&&(t=Buffer.from("01"+t,"hex").toString("base64").replace(/\//g,"_"))}const r=t||e;return i.set(e,r),r}},a282:function(e){e.exports=JSON.parse('{"lib_index":"Hogar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Siguiente","lib_favorite":"Favoritos locales","lib_local_favorites":"Favoritos locales","lib_channel":"Canal","lib_submit":"Entregar","lib_from_network":"Usando una base de datos descentralizada de la red","welcome_to_lib":"Bienvenido a ${displayName} Biblioteca multimedia","register_or_login":"Registro de inicio de sesión","lib_recommend":"Recomendar","lib_recommend_desc":"¡Bienvenido a ${displayName} Biblioteca! Esta biblioteca utiliza una base de datos descentralizada de la red. Para comenzar a usarlo, debe seguir algunos canales.","follow_any_channel_to_continue":"Sigue cualquier canal para continuar","follow_channels_and_continue":"Sigue {0} canales y continúa","show_more_for_me":"Mostrar más para mí","no_more_recommend":"No más recomendar","key":"Llave","create_key":"Crear clave","save_key":"Guardar clave","save_key_file":"¿Quieres guardar tu clave como archivo?","import_key":"Clave de importación","import":"Importar","invalid_key":"Tecla inválida","back_to_top":"Volver arriba","search_for_channel":"Buscar ID de canal","search_channel_no_result":"No se puede encontrar el canal con ID {0}","please_input_channel_id":"Ingrese el ID del canal","welcome_help_text":"Esta es una biblioteca multimedia descentralizada. Necesitas\\n para crear una cuenta para esta base de datos. Lo haremos\\n generar una clave personal para usted automáticamente.\\n Si ya ha tenido una clave, también puede importar\\n aquí.","welcome_key_text":"Una vez que haya iniciado sesión, haga clic en el botón [GUARDAR CLAVE]\\n en la esquina inferior derecha para guardar su clave privada.\\n Si pierde su clave, es posible que no pueda volver a iniciar sesión.","redirect_to_recommend":"Parece que no habías seguido ningún canal. Redirigiendo a la página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Dejar de seguir","following":"Siguiente","share":"Compartir","unfollow_confirm":"¿Estás seguro de dejar de seguir este canal? Se eliminarán todas las publicaciones de este canal en tu línea de tiempo.","follow_failed_hint":"La operación aún está pendiente en segundo plano. Si la operación no se aplica durante mucho tiempo, reinicie la aplicación y vuelva a intentarlo.","block":"Bloquear","unblock":"Desatascar","blocked":"Obstruido","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal lo eliminará de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","block_creator":"Bloquear al creador de este canal","unblock_creator":"Desbloquear al creador de este canal.","block_creator_confirm":"Bloquear creador eliminará todos los canales creados por este creador de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","share_url_copied":"Compartir URL se copia en su portapapeles","follow_time":"seguir el tiempo","update_time":"Tiempo de actualizacion","search":"Buscar","type":"Tipo","added":"Agregado","click_to_task":"Haga clic para ir a la tarea","lib_already_added":"Ya has añadido este vídeo.","description":"Descripción","poster":"Póster","channel_poster":"cartel del canal","preview":"Avance","creator":"Creador","creator_detail":"Detalles del creador","loading_creator":"Cargando información del creador","wait_for_creator_loaded":"Espere a que se cargue la información del creador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Usuario","channel_title":"Título del canal","channel_id":"Canal ID","post_title":"Título de la entrada","post_id":"ID del mensaje","import_data_from_excel":"Importar datos de excel","set_excel_keys":"Establecer claves de Excel","excel_import_succeded":"Importación de Excel exitosa","excel_import_success_msg":"{0} las filas están listas para agregarse, {1} no son válidos y {2} los elementos duplicados se ignoran","cannot_find_channel":"No puedo encontrar el canal","cannot_find_posts":"No puedo encontrar publicaciones","add_channel":"Agregar canal","add_post":"Agregar publicación","edit_channel":"editar canal","channel_setting":"Configuración de canal","edit_post":"Editar post","edit_posts":"Editar publicaciones","channel_detail":"Detalle del canal","remove":"Eliminar","remove_channel":"Quitar canal","remove_channel_confirm":"¿Estás seguro de eliminar esta publicación? Esto no se puede recuperar.","remove_post":"Quitar publicación","remove_post_confirm":"¿Estás seguro de eliminar este canal? Esto no se puede recuperar.","preview_mode":"Modo de vista previa","preview_mode_desc":"Esta es una vista previa de tu canal. Todas las tarifas de las películas se muestran aquí.","edit_user_profile":"Editar perfil de usuario","name":"Apodo","avatar":"Avatar","no_following":"No hay canales de seguimiento. Haga clic para ir a","no_recommend":"No hay canales recomendados. Haga clic para ir a","first_recomment_msg":"Puede tomar un tiempo si es la primera vez que se inicia la aplicación.","invalid_image":"Imagen inválida","image_not_reachable":"No se puede acceder a esta URL de imagen.","channel_not_found":"Canal no encontrado","cannot_get_channel_info":"No se puede obtener información del canal. Este canal puede ser eliminado por su creador y ya no está disponible.","validate_error":"Validar error","validate_user_name_no_space":"El nombre de usuario no debe contener espacios","validate_url_no_space":"La URL no debe contener espacios","validate_user_name_length":"El nombre de usuario debe tener una longitud entre {0} y {1}","validate_user_desc_length":"La descripción del usuario no debe tener más de {0} caracteres","validate_user_avatar_url":"El avatar del usuario debe ser una URL con menos de 2048 caracteres","validate_channel_title_length":"El título del canal debe tener una longitud entre 1 y 100","validate_channel_desc_length":"La descripción del canal debe tener una longitud de entre 10 y 300","validate_channel_image_url":"La vista previa del canal debe ser una URL con menos de 2048 caracteres","validate_post_title_length":"El título de la publicación debe tener una longitud entre 1 y 100","validate_post_desc_length":"La descripción de la publicación debe tener una longitud entre 10 y 300","validate_post_image_url":"El póster debe ser una URL con menos de 2048 caracteres","validate_post_url":"URL ${displayName} no válida","validate_post_url_length":"${displayName} La URL no debe tener más de 2048 caracteres","film_rate":"Tasa de película","set_film_rate":"Establecer tasa de película","select_a_rate_before_enter":"Debe seleccionar una tarifa de película antes de ingresar a la biblioteca de medios.","library_available_rate":"Tarifa de película disponible en la biblioteca","rate_g":"G – Audiencias Generales","rate_g_desc":"Todas las edades admitidas. Nada que ofendería a los padres por ser visto por niños.","rate_pg":"PG: se sugiere la supervisión de los padres","rate_pg_desc":"Algun material puede no ser adecuado para niños. Se instó a los padres a dar \\"orientación de los padres\\". Puede contener material que a los padres no les gustará para sus hijos pequeños.","rate_pg_13":"PG-13 – Padres fuertemente advertidos","rate_pg_13_desc":"Algunos materiales pueden ser inapropiados para niños menores de 13 años. Se insta a los padres a tener cuidado. Algunos materiales pueden ser inapropiados para preadolescentes.","rate_r":"R – Restringido","rate_r_desc":"Los menores de 17 años requieren un padre o tutor adulto que los acompañe. Contiene algo de material para adultos. Se insta a los padres a aprender más sobre la película antes de llevar a sus hijos pequeños con ellos.","rate_nc_17":"NC-17 – Solo para adultos","rate_nc_17_desc":"No se admiten menores de 17 años. Claramente adulto. No se admiten niños.","set_as_private":"Establecer como privado","hide_in_explore":"Ocultar este canal en la página de exploración","hidden":"Oculto","select_a_rate":"Seleccione una tarifa de película","select_from_tasks":"Seleccionar de tareas","import_from_magnet":"Importar desde imán:?...","input_magnet_url":"Imán de entrada:? URL","task_title":"Título de la tarea","set_title":"Establecer título","add_to_local_favorites":"Añadir a favoritos locales","remove_from_local_favorites":"Quitar de favoritos locales","removed_favorite":"Favorito eliminado","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locales como copia de seguridad","import_favorites_file":"Importar archivo de favoritos","not_a_favorite_file":"Este archivo no es un archivo de respaldo favorito","connection_status":"Estado de conexión","gun_server_list":"Nodos de caché","custom_nodes":"Nodos de caché personalizados","custom_nodes_hint":"Los nodos de caché personalizados se aplicarán después del reinicio de la aplicación","wait_for_reboot":"Esperando reinicio...({seconds}s)","reboot_now":"Reinicie ahora","reboot_later":"Reiniciar despues","peer_list":"Nodos directos","server":"URL del nodo","peer":"Par","peer_id":"ID de nodo","connection":"Conexión","data_source":"Fuente de datos","sync":"sincronizar","syncing":"Sincronizando","sync_completed":"Sincronización completada","got_all_post":"Ya tienes todas las publicaciones","placeholder_channel_title":"Nombre de tu canal","placeholder_channel_desc":"Descripción sobre este canal","placeholder_post_title":"Nombre de la película (año)","placeholder_post_desc":"Descripción sobre esta película","private_channel":"canal privado","creator_blocked":"Creador bloqueado","go_to_library":"¿Ir a la biblioteca?","go_to_library_channel_msg":"¿Quieres ir al canal de la biblioteca {0}?","magnet_does_not_have_name":"Este imán:? url no tiene nombre, primero debe agregar un título de publicación.","no_available_post":"No hay publicación disponible","following_channel_no_post":"Todos sus siguientes canales no tienen publicación disponible. Esto puede ser causado por un error de red. Si ya ha seguido algunos canales, es posible que las publicaciones se carguen más tarde.","share_to_library":"Compartir con la biblioteca","quick_start":"Inicio rápido","quick_start_desc":"Comienza a crear una publicación con una tarea o un archivo","select_file":"Seleccione Archivo...","select_folder":"Seleccione la carpeta...","post_options":"Opciones de publicación","channel_options":"Opciones de canal","create_new_channel":"Crear nuevo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Seleccionar canal existente","uploaded_by":"{title} subido por {name}","created_by":"{title} creado por {name}","creating_new_channel":"Creando nuevo canal...","created_new_channel":"Nuevo canal creado","creating_new_post":"Creando nueva publicación...","created_new_post":"Nueva publicación creada","create_new_post":"Crear nueva publicación","quick_start_timeout":"{0} tiempo de espera. Esto puede deberse a un error de red. Por favor, inténtelo de nuevo más tarde.","file_too_large":"Archivo demasiado grande","file_too_large_msg":"Este archivo tiene más de 4 GB ({size}) y puede llevar mucho tiempo preparar la tarea. ¿Estás seguro de continuar?","resolving_folder_files":"Resolviendo archivos de carpeta...","folder_too_large":"Carpeta demasiado grande","folder_too_large_msg":"Los archivos en esta carpeta tienen más de 4 GB ({size} en total) y pueden llevar mucho tiempo preparar la tarea. ¿Estás seguro de subir?","creating_new_task":"Creando nueva tarea...","cannot_create_task":"No se puede crear la tarea","cannot_create_task_msg":"Esto puede ser causado por algún error. Si la tarea se crea correctamente, puede verificar la lista de tareas más tarde.","cannot_get_task_name":"No se puede obtener el nombre de la tarea. Primero debe ingresar uno.","remove_old_task":"Eliminar tarea anterior","remove_old_task_desc":"El modo web solo puede crear una tarea a la vez. ¿Quieres eliminar la tarea anterior?","subtitle_list":"Lista de subtítulos","optional":"opcional","with_subtitle":"Con {language} subtítulos","maximumSubtitleNum_limit":"El número de subtítulos ha alcanzado su máximo","add_subtitle_url":"Añadir enlace de descarga de subtítulos","cannot_add_subtitle":"Error al agregar subtítulos","cannot_add_subtitle_msg":"Idioma de los subtítulos no seleccionado o enlace de descarga no válido.","support_subtitle_type":"Solo se admiten subtítulos en formato srt y vtt.","recommend_opensubtitles":"Se recomienda usar el enlace de descarga de subtítulos o la identificación en www.opensubtitles.org.","take_down":"Derribar","serious_violation":"Infracción grave","copyright_disputes":"Disputas de derechos de autor","adults_only":"Sólo para adultos","takedown_reason":"Motivo de eliminación","takedown_mode":"modo de derribo","admins":"administradores","takedown_user":"Eliminar a este creador","takedown_channel":"Eliminar este canal","takedown_post":"Eliminar esta publicación","select_takedown_reason":"Seleccione el motivo de eliminación","takedown_invalid_reason":"Motivo de eliminación no válido","takedown_invalid_user_id":"ID de usuario invalido. La identificación debe incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal no válido. El ID debe incluir 20 caracteres","takedown_invalid_post_id":"Identificación de publicación no válida. El ID debe incluir 20 caracteres","takedown_management":"Gestión de eliminación","users":"Usuarios","channels":"Canales","posts":"Publicaciones","you":"Tú","preset":"Preestablecido","admin":"Administración","committee":"Comité","about_takedown_mode":"Acerca del modo de eliminación:\\nPreset: Configurado en el repositorio de github. Todos ellos serán eliminados de la biblioteca.\\nAdministrador: cualquiera de los votos de los administradores será eliminado.\\nComité: Se eliminará al menos la mitad de los votos de los administradores.","cannot_edit_preset":"No puede editar esta fila porque es una fila predeterminada","cannot_edit_not_vote":"No puede editar esta fila porque no la ha votado","remove_vote":"Elimina tu voto","post_preload_failed":"No se pudo precargar esta publicación. El enlace de descarga puede estar desactualizado, por lo que esta publicación no se puede reproducir de inmediato.","about_cache_node":"Acerca del nodo de caché","edit_cache_node":"Editar nodo de caché","create_cache_node":"Crear nodo de caché","about_cache_node_desc":"${displayName} usa el servidor de armas como nodo de caché. Puede editar nodos personalizados en la configuración avanzada","learn_how_to_deploy_gun":"Aprenda a implementar su propio servidor de armas","repeat_add":"La tarea ha sido añadida, por favor no la vuelvas a añadir","upload":"Subir","download":"Descargar","delete":"Borrar","delete_task":"Eliminar tarea","delete_confirm_message":"¿Eliminar esta tarea? esto es irrevocable","also_delete_files":"También eliminar archivos","default_delete_files":"Eliminación predeterminada de archivos descargados después de eliminar la tarea","not_now":"Ahora no","delete_autoupload_confirm":"Esta tarea contiene un archivo que colocaste en el directorio de carga automática. Eliminar esta tarea también eliminará el archivo.","delete_anyway":"eliminar de todos modos","upload_too_many_files":"Subir demasiados archivos","ask_if_unlimit_upload_amount":"El directorio de carga automática contiene demasiados archivos. ¿Desea deshabilitar la limitación de la cantidad de carga? *Esto puede causar problemas de rendimiento","disable_limitation":"Deshabilitar limitación","not_length":"La operación de archivos múltiples no es compatible en este momento, por favor coopere","download_torrent":"Descargar archivo","upload_torrent":"Subir archivo","files":"archivos","file":"Archivo","folder":"Carpeta","start_all":"Empezar todo","pause_all":"Pausar todo","remove_all":"Eliminar todo","upload_all":"Subir todo","clear_history":"Borrar historial","pause_all_finish_payments":"Esto finalizará todos los pagos.","accelerating":"Acelerador","link_task":"Vincular tarea","torrent_task":"Tarea de archivo","ok":"DE ACUERDO","cancel":"Cancelar","download_directory_position":"Descargar la posición del directorio","torrent_file":"archivo de tarea","magnetic_link_incorrect":"El formato del enlace es incorrecto.","delete_fail":"Error al eliminar","pause":"Pausa","paused":"en pausa","stop_torrent":"Detener","seed":"Semilla","resume":"Reanudar","downloading":"Descargando","downloaded":"descargado","uploading":"Cargando","auto_uploading":"Carga automática","uploaded":"subido","pending":"Esperando otras tareas","verifying":"Verificando","waiting_for_verify":"Esperando para verificar","seeding":"siembra","completed":"Terminado","status":"Estado","task_name":"Nombre de la tarea","size":"Tamaño","progress":"Progreso","sort":"Clasificar","ascending":"ascendente","descending":"Descendente","file_loading":"Cargando archivo...","loading":"Cargando","unknown_status":"Desconocido","play_while_downloading":"Jugar...","upload_or_play":"Cargar / Reproducir","play":"Jugar","ask_if_upload_file":"¿Subir archivo?","ask_if_upload_or_play":"¿Subir o reproducir archivo?","torrent_error":"Error al agregar tarea:","no_peers":"Vuelva a intentarlo más de {0} veces y no hay ningún compañero disponible","torrent_exists":"La tarea ya existe.","show_origin_torrent":"Obtener archivo de tarea original o url","show_directory":"Abra el directorio de este torrent","task_num":"Tareas","total_upload_speed":"Velocidad de subida","total_download_speed":"Velocidad de Descarga","path_missing":"Error: no se puede encontrar la ruta del torrente","origin_not_found":"No se puede encontrar la información de la tarea de origen.","text_copied":"La URL de Magnum se copia en su portapapeles","copy_magnet_uri":"Copiar imán :? URI","copy_download_uri":"Copiar URI de descarga","copy_share_uri":"Copiar compartir URI","uri_copied":"URI se copió con éxito en su portapapeles","uri_copy_failed":"Error al copiar uri","more":"Más...","toggle_list_mode":"Alternar modo de lista","comment":"comentario","operations":"Operaciones","open_directory":"Directorio abierto","no_downloading_task":"Sin tarea de descarga","remove_all_downloading_tasks":"¿Eliminar todas las tareas de descarga?","remove_all_upload_tasks":"¿Eliminar todas las tareas de carga?","remove_autoupload_files":"Eliminar archivos de carga automática","remove_all_history":"¿Eliminar todo el historial?","remaining":"Restante","created_time":"tiempo creado","used_time":"Tiempo usado","completed_time":"tiempo completado","yesterday":"Ayer","before_yesterday":"{empty}","earlier":"Más temprano","miss_file":"Faltan algunos archivos","delete_miss_file_task":"Faltan archivos fome en {0}.","common_peer":"Par común","ab_peer":"${displayName} compañero","ab_peer_verified":"Compañero ${displayName} verificado","ab_peer_available":"${displayName} compañeros disponibles","alphabiz_accelerating":"${displayName} acelerando","income":"Ingreso","income_info":"Ingresos (hoy/total)","total_income_info":"Ingresos: {0}(hoy) / {1}(total)","login_to_see_income":"Inicie sesión para ver las estadísticas de ingresos","credit_cost":"Costos de crédito","downloaded_by_payment":"Descargado por Pagos","file_not_found":"No se puede encontrar este archivo en local","no_task":"No preguntar","no_matched_task":"Sin tarea coincidente","space_not_enough":"Espacio en disco insuficiente","need_more_space":"Necesita {0} más de espacio pero el disco actual tiene {1} libre ({2} reservado). Las tareas están en pausa. La precarga de la biblioteca está deshabilitada. Puede volver a habilitarlo en [Configuración - Avanzado].","seeders":"Sembradoras","last_update":"Última actualización","connecting":"Conectando","connected":"Conectado","request_timed_out":"Tiempo de espera agotado","connection_failed":"La conexión falló","invalid_download_url":"URL de descarga no válida","download_link":"enlace de descarga","empty_files":"No hay archivos en el directorio","duplicate_task":"Tarea duplicada","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarea no está lista. Pausar esta tarea la eliminará directamente.","some_task_not_ready":"Algunas tareas no están listas. Pausar estas tareas las eliminará directamente.","failed_to_delete_files":"Error al eliminar archivos","failed_to_delete_files_desc":"No se pudieron eliminar algunos archivos de la tarea. Es posible que deba eliminarlos manualmente","unknown_error":"Error desconocido: {0}","more_files_are_not_shown":"({0} más archivos no se muestran por motivos de rendimiento)","no_available_file":"Ningún archivo disponible. Espere a que la tarea esté lista.","service_worker_error":"No se puede cargar ServiceWorker para jugar. Es posible que su navegador no sea compatible con esta función o que ServiceWorker no esté activado. Es posible que deba volver a cargar esta página e intentarlo de nuevo.","add_task_first":"Primero debe agregar la tarea.","player_task_time":"El jugador tarda demasiados segundos en prepararse para jugar. Puede haber algo mal con la tarea.","web_mode_hint":"El modo web de ${displayName} solo es compatible con pares WebRTC. Para obtener la mejor experiencia, descargue la aplicación de escritorio ${displayName}.","web_mode_task_hint":"Haga clic en los botones a continuación para agregar una tarea. Solo puede agregar una tarea a la vez.","save_to_local":"Guardar en local","save_as_zip":"Guardar como ZIP","creating_save_file":"Creando archivo guardado...","upload_as_one_directory":"Subir como un directorio","upload_as_single_files":"Subir como archivos individuales","web_mode_upload_single":"Solo puedes subir un único archivo en modo web","download_success":"Descargar con éxito","download_fail":"Descarga fracasó","wait_for_downloaded_to_share":"Espere a que se descargue la tarea antes de compartirla.","download_with_cellular":"Descargar tareas usando celular","download_with_cellular_desc":"Está utilizando una red celular. Las tareas de descarga con celular pueden tener tarifas adicionales por parte de su proveedor.","download_with_cellular_confirm":"Todavía descargar con celular","language":"Idioma","appearance":"Apariencia","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Oscuro","basic_setting":"Básico","hideMenu":"Ocultar menú de aplicaciones (solo Windows y Linux)","autoHide":"Ocultar ventana automáticamente","autoStart":"Abrir al iniciar sesión","restore":"Mantener el tamaño y la posición de la ventana al salir","autoStartUnfinished":"Reanudar automáticamente todas las tareas inconclusas","default_download_path":"Ruta predeterminada","download_directory":"Descargar directorio","upload_directory":"Subir directorio","enable_auto_upload":"Habilitar carga automática","unlimit_upload_amount":"Cantidad de carga ilimitada","unlimit_upload_warning":"Permitir cargar una gran cantidad de archivos. Esto puede causar un problema de rendimiento","start":"Puesta en marcha","transport_setting":"Transmisión","upload_limit":"Límite de carga","download_limit":"Límite de descarga","payed_user_share_rate":"Tasa de participación de usuario pagado","unlimited":"Ilimitado","limit_input_error":"El número límite debe ser positivo","BT_setting":"Configuración de tareas","saveLinkSeed":"Guardar enlace como archivo de tarea","autoDownload":"Descargar automáticamente el enlace y el contenido","continuousSeeding":"Sigue sembrando hasta que lo detengas manualmente.","seedSharingRate":"Proporción de semillas","seedTime":"Tiempo de semilla (minutos)","task_manage":"Administración de tareas","maximumDownloadNum":"Máximo de tareas activas","maximumConnectionsNum":"Conexión máxima por servidor","range_error":"El rango debe estar entre {0} y {1}","random":"aleatorio","breakpointContinuation":"Continuar","automaticSkip":"Mostrar automáticamente la descarga después de agregar una tarea","afterNotification":"Notificación después de que se complete la descarga","deleteConfirm":"No se requiere confirmación antes de eliminar la tarea","submit":"Guardar y aplicar","discard":"Desechar","reset":"Reiniciar","reset_all_settings":"¿Restablecer todos los ajustes?","preferences_resetted":"Preferencias restablecidas","traditional_chinese":"chino tradicional","japanese":"japonés","english":"Inglés","chinese":"chino simplificado","advancedSettings":"Avanzado","autoUpdate":"Actualización automática","autoCheckUpdate":"Comprobar automáticamente si hay actualizaciones","proxy":"Apoderado","useProxyService":"Habilitar proxy","trackerService":"Servidores de seguimiento","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Actualizar la lista de rastreadores todos los días automáticamente","manualUpdateTracker":"Actualización manual","manualUpdateSuccess":"Actualice con éxito los servidores de seguimiento","manualUpdateFail":"Error al actualizar desde:","listenPort":"Puertos de escucha","BTlistenPort":"Puerto de transmisión de datos","DHTlistenPort":"Puerto hash distribuido","protocols":"Protocolos compatibles","setDefaultClientForFollowingProtocols":"Establecer como cliente predeterminado para los siguientes protocolos","magnetUrl":"Imán","video_file":"Archivo de vídeo","audio_file":"Archivo de audio","security":"Seguridad","impersonateUserAgent":"Agente de usuario simulado","RPCauthorizationkey":"Secreto RPC","viewDocument":"Ver manual secreto de RPC","developer":"Desarrollador","applicationLogPath":"Ruta de registro de la aplicación","downloadSessionPath":"Descarga la ruta de la sesión","resetDownloadSessionRecord":"Restablecer sesión de descarga","restoreInitialSettings":"Restablecimiento de fábrica","preferences_set_successfully":"¡Guarde las preferencias con éxito!","preferences_set_fail":"¡Error al guardar las preferencias!","change_not_save":"Los cambios no se guardan","discard_all_changes":"¿Descartar todos los cambios y salir?","stay_in_page":"permanecer en la página","disk_usage":"Uso del disco","pause_if_less_space":"Pausar y notificar si el espacio es inferior a (MB)","default_video_player":"reproductor de vídeo predeterminado","video_cache_time":"Caché de reproducción de secuencias","minutes":"minutos","system_default":"Sistema por defecto","media_player":"Reproductor multimedia","library_film_rate":"Tarifa de película disponible","library_show_explore":"Mostrar la página [Explorar]","library_setting":"configuración de la biblioteca","library_sync_setting":"Configuración de sincronización de la biblioteca","keychain_sync_status":"Estado de sincronización del llavero","sync_with_aws":"Sincronizar llavero con Amazon Web Services","backup_to_local":"Copia de seguridad en archivo local","enable_sync_with_aws":"Habilitar sincronización con AWS","disable_sync_with_aws":"Deshabilitar la sincronización con AWS","disable_sync_with_aws_desc":"Esto eliminará la clave guardada en el servidor. Asegúrese de haber exportado ya su clave.","input_independent_password":"Introducir contraseña independiente","change_independent_password":"Cambiar contraseña independiente","password_error":"Error de contraseña","password_invalid":"contraseña incorrecta","key_existed":"La clave existía","key_not_found":"Clave no encontrada","library_recommend":"biblioteca recomendar","show_all_channels":"Mostrar todos los canales en la página de recomendación de la biblioteca","not_logged_in":"Sin iniciar sesión","login_to_continue":"Iniciar sesión para continuar","mnemonic_code":"Código mnemotécnico","wordlist":"Lista de palabras","restore_code":"Restaurar desde código","generate_code":"Generar codigo","export_mnemonic_code":"Exportar código mnemotécnico","import_mnemonic_code":"Importar código mnemotécnico","print":"Imprimir","save_as_txt":"Guardar como texto","save_as_pdf":"Guardar como pdf","from_file":"Desde el archivo","not_valid_mnemonic_code":"Este no es un código mnemotécnico válido","cannot_parse_code_as_key":"No se puede analizar este código mnemotécnico como clave de biblioteca","import_key_hint":"¿Estás seguro de importar esta clave? Esto recuperará su clave anterior en la biblioteca.","import_key_confirm":"Sí, importarlo.","library_preload":"Precargar tareas desde la biblioteca","show_preload":"Mostrar tareas de precarga","set_download":"Establecer directorio de descarga","set_download_desc":"Para la versión de la App Store de macOS, el directorio de descarga predeterminado está en la zona de pruebas de la aplicación y se eliminará después de desinstalar la aplicación. Si desea conservar sus archivos de descarga, debe seleccionar un directorio de descarga diferente manualmente.","home":"Hogar","home_caption":"Descargar/cargar y archivos multimedia","library":"Biblioteca","library_caption":"Explorar recursos de medios","player":"Jugador","player_caption":"Reproductor multimedia","credits":"Créditos","credits_caption":"Consultar saldo de cuenta","account":"Cuenta","account_caption":"Iniciar sesión/Registrarse/Gestión","settings":"Ajustes","settings_caption":"Configuraciones para aplicación, jugador, cuenta","development":"Desarrollo","development_caption":"Modo desarrollador para uso interno","basic":"Básico","basic_caption":"Ajustes básicos","advanced":"Avanzado","advanced_caption":"Ajustes avanzados","blockchain":"Billetera","blockchain_caption":"${displayName} Monedero descentralizado","internal_notice":"Aviso de publicación interna","release_notes":"Notas de lanzamiento","terms_and_conditions":"Términos y condiciones","license_and_listen_notices":"Licencia y escucha Avisos de código abierto","close":"Cerca","success":"Éxito","fail":"Fallar","account_email_invalid_address":"Dirección de correo electrónico no válida","account_email_invalid_domain":"Dominio de correo electrónico no válido","account_email_unknown_status":"Estado de entrega de correo electrónico desconocido","account_email_unavailable_address":"Dirección de correo electrónico no disponible","account_email_suppressed_address":"Dirección de correo electrónico suprimida","account_loading":"Cargando...","account_is_required":"se requiere","account_sign_in_your_account":"Iniciar sesión","account_username":"Nombre de usuario","account_username_email_phone":"Número de teléfono o correo electrónico","account_password":"Contraseña","account_new_password":"Nueva contraseña","account_re_enter_password":"Escriba la contraseña otra vez","account_password_not_equal":"Dos contraseñas no son iguales","account_new_password_same":"La contraseña es la misma que la contraseña original.","account_forgot_your_password":"¿Olvidaste tu contraseña?","account_reset_password":"Restablecer la contraseña","account_sign_in":"Iniciar sesión","account_signed_in":"Registrado","account_sign_up":"Inscribirse","account_find_your_account":"Encuentra tu cuenta","account_enter_your_username":"Ingrese su número de teléfono o correo electrónico","account_search":"Buscar","account_email_sent_tip":"Se ha enviado un correo electrónico con un código de verificación a su correo electrónico:","account_phone_sent_tip":"Se ha enviado un SMS con un código de verificación a su teléfono:","account_email_phone_sent_tip":"Se han enviado un correo electrónico y un SMS con el código de verificación a su correo electrónico y teléfono, respectivamente:","account_software_token_tip":"MFA está habilitado para su cuenta. Para terminar de iniciar sesión, encienda o vea su dispositivo y escriba el TOTP","account_reset_your_password":"Restablecer su contraseña","account_verification_code":"Código de verificación","account_resend_code":"Reenviar codigo","account_code_has_been_resent":"El código de verificación ha sido reenviado","account_password_has_been_reset":"Contraseña se ha restablecido","account_submit":"Entregar","account_sign_up_your_account":"registra tu cuenta","account_fill_required_fields":"Complete los campos requeridos a continuación.","account_fill_optional_fields":"Complete los campos opcionales a continuación.","account_email":"Correo electrónico","account_invitation":"Invitación","account_invitation_code":"Código de invitación","account_i_accept":"Acepto","account_license_terms":"la licencia y los términos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos.","account_verify_fill_optional_fields":"Verifique y complete los campos opcionales.","account_nickname":"Apodo","account_gender":"Género","account_male":"Masculino","account_female":"Femenino","account_not_say":"No decir","account_birthday":"Cumpleaños","account_phone_number":"Número de teléfono","account_locale":"Local","account_tip_verified":"Verificado, iniciando sesión...","account_verified":"verificado","account_unverified":"inconfirmado","account_signed_up":"Inscrito","account_verify_your_identity":"Verifica tu identidad","account_finish":"Finalizar","account_signed_out":"Cerró sesión","account_change_password":"Cambiar la contraseña","account_change_email":"Cambiar e-mail","account_change_phone_number":"Cambiar número de teléfono","account_sign_out":"desconectar","account_current_password":"Contraseña actual","account_re_enter_new_password":"re-ingrese nueva contraseña","account_personal_information":"Información","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Hola,","account_cancel":"Cancelar","account_change":"cambiar","account_not_set":"no establecido","account_setting":"configuración","account_copy_code":"copia el código","account_account_setting":"Cuenta","account_task_page":"tarea de crédito","account_setting_caption":"Cambiar contraseña / Editar información","account_security":"Seguridad","account_want_to_join":"¿Querer unirse?","account_sign_in_now":"Iniciar sesión","account_changed":"Cambió","account_clipboard_with_invitation_code":"Código de invitación copiado","account_clipboard_with_code":"El código copiado","account_invitation_code_dialog_tip":"Enviarás a tu amigo un correo electrónico o mensaje de texto con un código de invitación:","account_available":"disponible","account_invited":"invitado","account_used":"usado","account_invitation_code_sent":"Se ha enviado el código de invitación.","account_invitation_channel_required":"Rellene al menos un canal de invitación","account_no_verification_code":"¿No puede recibir el código de verificación?","account_no_phone_number":"¿Sin número de teléfono?","account_sign_up_by_email":"Regístrese por correo electrónico","account_no_email":"No email? ","account_sign_up_by_phone_number":"Regístrese por número de teléfono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Si no hay TOTP, configure TOTP primero","account_setup_totp":"Configurar TOTP","account_contact_information":"Información del contacto","account_delete_account":"Borrar cuenta","account_deleted":"Eliminado","account_can_not_mfa":"MFA en problemas?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Deshabilitar MFA","account_disabled_mfa":"MFA deshabilitado","account_sms_mfa":"SMS MFA","account_totp_mfa":"AMF TOTP","account_totp":"TOTP","account_not_recommend":"No recomendado","account_oauth_sign_in_with":"Iniciar sesión con {provider}","account_sign_in_failed":"Error al iniciar sesión","account_tip_oath_sign_up":"El correo electrónico correspondiente a la cuenta {provider} actual: {email} aún no ha creado una cuenta","account_tip_confirm_delete_account":"Ingrese la contraseña de la cuenta actual para confirmar que desea eliminar la cuenta actual. (Las cuentas eliminadas no se pueden restaurar)","account_tip_config_mfa":"Puede optar por usar SMS o una contraseña de un solo uso basada en el tiempo (TOTP) como autenticación secundaria","account_error_can_not_enable_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar MFA","account_tip_can_not_enable_sms_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar SMS MFA","account_tip_can_not_enable_totp_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar TOTP MFA","account_tip_setup_totp":"Use aplicaciones como Authenticator para escanear el código QR a continuación o copie el código manualmente para agregar un token de seguridad","account_tip_verify_totp":"Verifica tu TOTP","account_link_your_social_account":"Enlaza tu cuenta social","account_unlink_your_social_account":"Desvincular cuenta social","account_tip_confirm_link":"¿Está seguro de que desea vincular la cuenta actual a su cuenta {provider}?","account_tip_confirm_unlink":"¿Está seguro de cancelar su cuenta vinculada de {provider}?","account_tip_linking":"vinculante...","account_tip_unlinking":"Desvinculación...","account_linked":"Atado","account_unlinked":"Sin consolidar","account_error_can_not_link_to_the_linked_account":"La cuenta social actual está vinculada a otra cuenta","account_error_can_not_link_to_the_mismatched_email":"La cuenta actual y la dirección de correo electrónico de la cuenta social son inconsistentes","account_error_can_not_link_before_email_verified":"La cuenta social no se puede vincular porque la cuenta actual no está vinculada a un correo electrónico verificado","account_tip_confirm_verify_email_phone":"¿Desea enviar un código de verificación al correo electrónico y al número de teléfono de la cuenta actual para verificar su identidad?","account_tip_confirm_verify_phone":"Si enviar un código de verificación al número de teléfono actual para verificar su identidad?","account_error_1_message_60_seconds":"Solo se puede enviar un SMS o correo electrónico cada 60 segundos, espere otros {delta} segundos","account_error_10_messages_per_day":"Cada teléfono móvil o correo electrónico solo puede enviar 10 mensajes en 24 horas","account_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","Network Error":"Hay un problema con la red, inténtalo de nuevo más tarde","account_error_user_not_exist":"el usuario no existe","account_error_incorrect_username_or_password":"Nombre de usuario o contraseña incorrecta","account_error_incorrect_original_password":"Contraseña original incorrecta","account_error_incorrect_password":"Contraseña incorrecta","account_error_username_not_found":"usuario no encontrado","account_error_can_not_reset_for_no_verified":"No se puede restablecer la contraseña de la cuenta no verificada","account_error_invalid_verification_code":"Código de verificación incorrecto, inténtalo de nuevo","account_error_expired_verification_code":"El código de verificación caducó, inténtalo de nuevo","account_error_password_not_long_enough":"La contraseña no es lo suficientemente larga","account_error_attempt_limit_exceeded":"Se excedió el límite de intentos, intente después de un tiempo.","account_error_password_attempts_exceeded":"Intentos de contraseña excedidos.","account_error_invalid_phone_number_format":"Formato de número de teléfono no válido","account_error_no_cell_phone_prefix":"Seleccione el prefijo para el número de teléfono","account_error_username_already_exists":"el nombre de usuario ya existe","account_error_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos","account_error_inactive_code":"El código de invitación no es un código activado","account_error_non_existent_code":"El código de invitación no existe.","account_error_unexpected":"Error inesperado","account_error_can_not_change_email_before_phone_bound":"El correo electrónico no se puede cambiar antes de vincular el número de teléfono","account_error_can_not_change_email_before_unbound_social_account":"El correo electrónico no se puede cambiar antes de desvincular la cuenta social","account_error_can_not_change_phone_before_email_bound":"El número de teléfono no se puede cambiar antes de vincular el correo electrónico","account_error_can_not_change_email_phone_with_mfa_enabled":"No se puede cambiar el correo electrónico o el número de teléfono móvil antes de desactivar MFA","account_error_not_supported_yet":"No hay apoyo por el momento","account_error_same_email":"La nueva dirección de correo electrónico no puede ser la misma que la dirección de correo electrónico original","account_error_same_phone":"El nuevo número de teléfono no puede ser el mismo que el número de teléfono original","account_error_email_not_exists":"La dirección de correo electrónico no existe","account_error_email_already_exists":"Ya existe una cuenta con el correo electrónico proporcionado.","account_error_phone_already_exists":"Ya existe una cuenta con el número de teléfono dado.","account_error_mfa_token_mismatch":"Discrepancia de código de token de software","account_error_recaptcha_not_loaded":"Hay un problema con la red. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_recaptcha_validation_failed":"La validación de ReCAPTCHA falló. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_sign_in_in_progress":"Intento de inicio de sesión pendiente ya en curso","account_field_range":"Límite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Solo admite alfanumérico","account_field_only_alphanumeric_and_symbol":"Solo admite caracteres alfanuméricos y símbolos.","account_field_only_chinese_alphanumeric_space_underline":"Solo admite caracteres alfanuméricos, espacios y guiones bajos.","account_field_prefix_without_number_space":"El primer carácter no puede ser un número o un espacio","account_field_suffix_without_space":"No puede terminar con un espacio","account_field_without_repeat_space":"No se pueden usar varios espacios seguidos","account_field_can_not_only_alphanumeric":"No puedes usar solo letras o números.","account_field_must_have_number_characters":"Debe tener caracteres numéricos","account_field_verification_code":"El código de verificación debe ser de seis dígitos","account_field_invitation_code":"El código de invitación debe ser alfanumérico","account_field_phone_number":"Formato de número de teléfono no válido","account_invalid_email_format":"Formato de correo inválido","account_sign_out_confirm":"¿Estás seguro de cerrar sesión? Esto detendrá todas las tareas.","account_sign_out_anyway":"Cerrar sesión de todos modos","account_signing_out":"Cerrando sesión...","account_request_save_settings":"Los ajustes no se guardan. Debe guardar los cambios antes de cerrar sesión.","pay":"Pagar","pay_with_credit":"Pagar por acelerar la descarga. Necesita alrededor de {0} de crédito","pay_with_credit_payed":"Acelerador. Todavía necesita alrededor de {0} de crédito","create_payment":"Crear pago","pay_target":"Objetivo","pay_for_torrent":"Pagar por {0}","your_subid":"su subID","your_credits":"tus creditos","pay_point_for_data":"Paga {0} puntos por {1} datos","auto_renew":"Habilitar renovación automática","transaction_details":"Detalles de la transacción","transaction_id":"Identificación","transaction_payer":"Pagador","transaction_payee":"Tenedor","transaction_category":"Categoría","transaction_changed_amount":"Importe modificado","transaction_meta":"Meta","transaction_status":"Estado","transaction_creation_time":"Tiempo de creación","receipt_code":"Código de recibo","transfer_amount":"Monto de la transferencia","code_the_receipt_code":"Copie el código de recibo a continuación para el pagador","fill_the_receipt_code":"Transferencia rellenando el código de pago facilitado por el beneficiario","expense":"Gastos","copied":"copiado","transfer":"Transferir","receive":"Recibir","copy":"Copiar","withdraw_fund":"Retirar fondos","category_paydata_payer":"costo de los datos","category_paydata_payee":"Ingreso de datos","category_transfer":"Transferir","category_bonus":"Prima","category_recharge":"Recargar","status_pending":"pendiente","status_completed":"terminado","status_finish":"finalizar","status_failed":"fallido","tip_invalid_receiver":"Código de receptor no válido","tip_invalid_amount":"El monto del crédito debe ser un valor flotante en el rango de 0 a 1000 (la precisión mínima es 0,001)","credit_get_more":"Obtenga más créditos","credit_no_data":"Datos no disponibles","credit_loading":"Cargando...","credit_not_enough_amount":"Crédito insuficiente","credit_amount_not_enough":"Crédito insuficiente","credit_payee_not_exist":"El beneficiario no existe","credit_invalid_amount":"Importe de crédito no válido","credit_can_not_transfer_to_yourself":"No se puede transferir a usted mismo","credit_latest":"El último","credit_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","add_subtitles":"Agregar subtítulos","open_file":"Abrir documento...","advanced_options":"Opciones avanzadas","title":"Título","location":"ubicación","subtitle_file":"archivo de subtítulos","unsupported_subtitle_type":"El tipo de archivo de {0} no es un tipo de subtítulo admitido","not_default_player":"El reproductor de video predeterminado no está configurado","this_is_an_audio_file":"Este es un archivo de audio.","the_added_subtitle_already_exists":"El subtítulo agregado ya existe","stop_stream_player":"La transmisión de medios se terminó porque la tarea se detuvo o se eliminó","stop_player":"El reproductor se canceló porque se eliminó el archivo.","playing_timeout_hint":"Tiempos de espera agotados. Por favor revisa la tarea","autoplay_hint":"La reproducción automática puede estar bloqueada por su navegador. Si el jugador no está jugando, intente hacer clic en la pantalla para continuar","remove_playing_confirm":"{0} todavía se está reproduciendo, eliminarlo detendrá el reproductor. ¿Estás seguro de eliminarlo?","unsupported_in_browser":"Todavía no es compatible con el modo navegador","client":"Cliente","warning":"Advertencia","enable":"Permitir","disable":"Desactivar","auto":"Auto","encrypt_connection":"Cifrar conexión","encrypted_connection":"Conexión encriptada","non_encrypted_connection":"Conexión no encriptada","connected_wires_not_disconnect":"Los cables conectados no se desconectarán","audio":"audio","video":"video","image":"imagen","subtitle":"subtitular","zip":"cremallera","text":"texto","unknown":"desconocido","add":"Agregar","undo":"Deshacer","backup":"Respaldo","not_default_app":"${displayName} no es su aplicación predeterminada para torrent y medios, ¿desea establecerla como predeterminada?","dont_show_again":"no volver a mostrar","go_to_settings":"Ir a la configuración","about_alphabiz":"Sobre ${displayName}","last_check_at":"último cheque en","update_channel":"Actualizar canal","check_for_update":"Buscar actualizaciones","checking_for_update":"Comprobación de actualización...","no_update_available":"Actualización no disponible","update_available":"Actualización disponible","update_now":"Actualizar ahora","update_later":"Actualizar más tarde","click_to_update":"Haga clic en el botón ACTUALIZAR AHORA para descargar y actualizar","update_failed":"Actualización fallida","update_failed_message":"Ocurrió un error durante la actualización:","check_shasum_failed":"No se pudo verificar la integridad del instalador","downloading_update":"Descargando actualización...","ready_to_update":"Listo para actualizar","restart_to_update":"Se descarga la actualización. ${displayName} saldrá para actualizarse por unos momentos.","already_latest":"La versión actual ({0}) ya es la última","update_timeout":"Tiempo de espera de actualización","no_available_release":"Sin lanzamiento disponible","no_available_installer":"No hay instalador disponible","feedback":"Comentario","select_a_type":"Seleccione un tipo","category":"Categoría","select_a_category":"Seleccione una categoría","require_title":"Se requiere título","describe_your_problem":"Describe tu problema","report_a_bug":"Reportar un error","request_a_new_feature":"Solicitar una nueva característica","download_or_upload":"Descargar cargar","others":"Otros","submit_with_system_info":"Enviar con información del sistema","submit_feedback":"Enviar comentarios","tweet_us":"twitteanos","tweet_too_long":"El tuit es demasiado largo","delete_characters":"Elimine al menos {0} carácter(es)","rest_characters":"Puede ingresar {0} carácter(es) más","update_alphabiz":"Actualizar ${displayName}","current_version":"Versión actual","cancel_update":"Cancelar actualización","slow_download_speed":"Descarga demasiado lenta","slow_download_speed_caption":"La descarga del instalador es demasiado lenta ahora. Por favor, compruebe el estado de la red.","update_canceled":"Actualización cancelada","current_version_release_time":"Tiempo de lanzamiento de la versión actual","expired_app":"${displayName} Caducado","version_out_of_date":"Versión desactualizada","have_to_update":"La versión de ${displayName} está desactualizada. Algunos protocolos o API están en desuso. Tienes que actualizar ${displayName} antes de continuar.","exit_alphabiz":"Salir ${displayName}","exit_and_update":"Salir y aplicar actualización","new_version_hint":"La nueva versión está disponible","no_new_version":"No hay nueva versión disponible","current_is_latest":"La versión actual ya es la última","click_to_check_update":"Haga clic en el botón [COMPROBAR ACTUALIZACIÓN] para buscar actualizaciones","download_latest_version_from_website":"Visite el sitio web oficial para descargar la última versión.","to_the_website":"Ir al sitio web","network_diagnotic":"Diagnóstico de red","diagnotic":"Diagnóstico","click_to_check":"Haga clic para verificar","click_to_check_again":"Haga clic para comprobar de nuevo","checking":"Comprobación","online":"En línea","offline":"Desconectado","dns_look_up":"búsqueda de DNS","error":"Error","aws_service":"Servicio AWS","network_pings":"Ping de red","not_found":"Extraviado","packet_loss":"Pérdida de paquetes","official_site":"Sitio oficial","download_test":"Descargar prueba","test_task":"Tarea de prueba {0}","download_failed":"Descarga fracasó","second_spend":"{0} gasto","open_default_player_failed":"Error al abrir el reproductor predeterminado","copied_to_clipboard":"Copiado al portapapeles","go_to":"Ir a","region_not_available":"Región no disponible","region_not_available_message":"¡Lo siento! Su región no está disponible para usar esta aplicación. Esta aplicación se cerrará después de {0} segundos","confirm":"Confirmar","no_available_result":"Ningún resultado disponible","invalid_password_format":"Formato de contraseña no válido","invalid_password_format_same":"La contraseña es la misma que la contraseña original.","error_password":"Error de contraseña","keychain_setting":"Llavero","setting_description":"Almacenamiento en la nube: guarde datos clave en la nube.\\nCambiar contraseña: cambie la contraseña de la clave de la biblioteca de medios.\\nMnemónico: un método alternativo para generar y restaurar claves.\\nImportar clave local: importe la clave guardada localmente en la biblioteca de medios.\\nExportar clave: guarda los datos de la biblioteca de medios actual en el local o en la nube.\\nCopia de seguridad de la clave en la nube: actualice los datos de la biblioteca de medios actual en la nube para hacer una copia de seguridad.","refresh_status":"Estado de actualización","confirm_import_key":"Confirmar clave de importación","confirm_update_cloud_key":"Ya tienes una clave en la nube. Actualizar la clave sobrescribirá la clave original. ¿Está seguro de que desea actualizar la clave almacenada en la nube?","export_key_with_cloud":"Ingrese la contraseña independiente que configuró para exportar la clave de la biblioteca almacenada en la nube y bloquee el archivo clave con la contraseña de desbloqueo","store_cloud_key_prompt_password":"Ingrese una contraseña independiente para almacenar la clave de la biblioteca en la nube","update_cloud_key_prompt_password":"Establezca una contraseña independiente para cifrar la clave de la biblioteca y luego actualícela en la nube","enable_cloud_storage_prompt_password":"Establezca una contraseña para la clave almacenada en la nube, a través de la cual puede recuperar la clave de la nube","input_unlock_password":"Establecer contraseña de desbloqueo","export_local_prompt_password":"Establezca una contraseña de desbloqueo para cifrar su archivo de clave. No guardaremos esta contraseña para usted, por lo que si pierde su contraseña, no podrá desbloquear su clave de biblioteca","require_unlock_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","require_independent_password":"Ingrese la contraseña independiente para obtener la clave almacenada en la nube","import_local_prompt_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","select_encrypt_mode":"Seleccione el modo de encriptación","update_cloud_key":"Actualizar la clave almacenada en la nube","backup_to_cloud":"Copia de seguridad de la clave de la biblioteca en la nube","save_local":"Guarde la clave de la biblioteca como archivo cifrado local","create_new_key":"Crear una nueva clave de biblioteca","creating_lib_key":"Creando clave de biblioteca...","loading_lib_key":"Cargando clave de biblioteca...","failed_to_create_lib_key":"No se pudo crear la clave de la biblioteca","failed_to_load_lib_key":"Error al cargar la clave de la biblioteca","import_local_key":"Importar clave localmente","import_lib_key_from_local":"Importar una clave de biblioteca localmente","import_from_cloud":"Importar la clave de la biblioteca desde la nube","create_or_import_key":"Crear o importar clave de biblioteca","create_or_import_key_desc":"La clave de la biblioteca es una clave independiente que se utiliza para obtener y publicar contenidos con una base de datos descentralizada.","store_your_lib_key":"Guarde su clave de biblioteca","export_cloud_key":"Exportar clave desde la nube","export_current_key":"Exportar clave actual","change_password":"Cambiar la contraseña","enable_cloud_storage":"Habilitar el almacenamiento en la nube","disable_cloud_storage":"Deshabilitar el almacenamiento en la nube","disable_cloud_storage_desc":"Deshabilitar el almacenamiento en la nube eliminará la clave guardada en la nube, asegúrese de que la clave esté guardada localmente","sync_at":"Sincronizar en: {time}","cloud_storage_enabled":"Sincronizar llavero con {storage}","cloud_storage_disabled":"Almacenamiento en la nube deshabilitado","saved_locally":"Guardado localmente","export_key":"Exportar archivo clave","cloud_independent_password":"Contraseña independiente de la nube","key_file_unlock_password":"Contraseña de desbloqueo de archivo clave","re_enter_unlock_password":"Vuelva a ingresar la contraseña de desbloqueo","independent_password_not_enabled":"La contraseña actual es la contraseña de la cuenta de Alphabiz (no se establece una contraseña independiente)","use_cognito_hash":"Usar la contraseña de la cuenta de Alphabiz","use_independent_password":"Usar contraseña independiente","keychain_lib":"clave de biblioteca","loading_keychain_state":"Cargando llavero...","backing_up":"Haciendo copia de seguridad...","backup_current_key":"Copia de seguridad de la clave actual en la nube","cloud_lib_key_not_existed":"la clave de la biblioteca no existe en la nube","open_keychain_file":"Abrir archivo de llavero","confirm_open_abk":"¿Quieres abrir el archivo ABK?","use_the_key":"usa la llave","backup_the_key":"Copia de seguridad de la clave en la nube","keychain_data_does_not_exist":"Los datos del llavero no existen","timeout of 0ms exceeded":"Hay un problema con la red, inténtalo de nuevo más tarde","XhrError":"Hay un problema con la red, inténtalo de nuevo más tarde","payer credit amount is not enough":"Crédito insuficiente","payee does not exist":"El beneficiario no existe","block_list_manage":"Administrar lista de bloqueo","blocked_users":"Usuarios bloqueados","blocked_channels":"Canales bloqueados","unblock_user":"Desbloquear usuario","unblock_channel":"Desbloquear canal","no_blocked_user":"Ningún usuario bloqueado","no_blocked_channel":"Ningún canal bloqueado","field_required":"{0} es requerido","setting":"Configuración","unknown_media":"Medios desconocidos","settings_button_visible":"Botón visible","settings_setting":"Configuración","settings_playback_rate":"Tasa de reproducción","settings_subtitle":"Subtitular","settings_pip":"Pepita","settings_fullscreen":"Pantalla completa","settings_subtitle_options":"Opciones de subtítulos","settings_normal":"Normal","settings_italic":"Itálico","settings_lighter":"Encendedor","settings_bolder":"más audaz","settings_small":"Pequeño","settings_large":"Grande","about":"Acerca de","services":"Servicios","hide":"Esconder","hide_others":"Esconder otros","show_all":"Mostrar todo","quit":"Abandonar","edit":"Editar","redo":"Rehacer","cut":"Cortar","paste":"Pegar","select_all":"Seleccionar todo","view":"Vista","reload":"Recargar","toggle_full_screen":"Alternar pantalla completa","toggle_developer_tools":"Alternar herramientas para desarrolladores","window":"Ventana","minimize":"Minimizar","bring_all_to_front":"Traer todo al frente","help":"Ayuda","github_repo":"Repositorio de Github","issues":"Asuntos","learn_more":"Aprende más","learn_spelling":"aprender ortografía","lookup_selection":"Buscar \\"{selection}\\"","search_with_google":"Buscar con Google","save_as":"Guardar como","save_image":"Guardar imagen","save_image_as":"Guardar imagen como ...","copy_link":"Copiar link","save_link_as":"Guardar enlace como ...","copy_image":"Copiar imagen","copy_image_as":"Copiar imagen como...","copy_image_address":"Copiar dirección de imagen","download_complete":"Descarga completa","download_complete_message":"{0} está descargado","is_running":"{0} se está ejecutando","open":"Abierto {0}","launch_problem":"Problema de lanzamiento","ask_clear_data":"Parece que está intentando iniciar {0} pero falló varias veces.\\n¿Desea borrar todos los datos de la aplicación e intentar iniciarla más tarde?","launch_directly":"Lanzar directamente","clear_all_data":"Borrar todos los datos","ask_clear_confirm":"¡Esto eliminará todas las configuraciones, registros y datos de usuario!\\nDespués de esto, es posible que deba iniciar {0} nuevamente.\\n¿Estás seguro de borrar los datos?","confirm_launch":"No, lanzar directamente","confirm_clear":"Sí, borrar todos los datos"}')},a368:function(e,t,a){"use strict";a.r(t);var n=a("00e9");a.d(t,"Clipboard",(function(){return n["a"]}));var o=a("b46e");a.d(t,"Share",(function(){return o["a"]}));var i=a("b009");a.d(t,"Filesystem",(function(){return i["c"]})),a.d(t,"Directory",(function(){return i["a"]})),a.d(t,"Encoding",(function(){return i["b"]}));var r=a("5c0a");a.d(t,"Device",(function(){return r["a"]}));var s=a("79b7");a.d(t,"App",(function(){return s["a"]}));var l=a("c03e");a.d(t,"Network",(function(){return l["a"]}));var c=a("67d7");a.d(t,"Capacitor",(function(){return c["a"]}))},a449:function(e,t,a){"use strict";a.d(t,"a",(function(){return x})),a.d(t,"d",(function(){return F})),a.d(t,"c",(function(){return B})),a.d(t,"b",(function(){return W}));a("de6c"),a("f200"),a("7a76"),a("a1c1");var n=a("36a1"),o=a("5584"),i=a("35f4"),r=a("2d62"),s=(a("dc89"),a("2425"),a("d558"));const l=e=>e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve(""),c=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},d=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e};var u={methods:{async $readFile(){const e=d(),t=await c(e);console.log("file$selected",t);const a=await l(t);return a},async $writeFile(e,t){if(Object(s["a"])()){const{Share:n,Filesystem:o,Directory:i}=await Promise.resolve().then(a.bind(null,"a368")),{value:r}=await n.canShare();if(!r)return;const{uri:s}=await o.writeFile({data:t,path:e,directory:i.Documents}).catch((()=>({})));return n.share({title:e,files:[s.startsWith("file://")?s:"file://"+s]}).catch((e=>{console.log(e)}))}const n=URL.createObjectURL(new Blob([t])),o=document.createElement("a");o.href=n,o.download=e,o.click(),setTimeout((()=>window.URL.revokeObjectURL(n)),0)}}},_=a("9572"),p=a("02fe"),m=a.n(p),h=a("9369"),g=a("d710"),f=a.n(g),b=a("ff9b");const y=a("d310").isElectron();y||console.warn("Warning: Torrent downloader is not impl in browser mode now");const v=Object(i["a"])("abcdefg",5),w=Object(i["a"])("0123456789abcdef",40),k=async(e,t=5)=>{let a=0;while(a=t)throw console.log("Failed at running",e),n;console.log("Retry #"+a++,e)}},S=!0,C=(...e)=>{if(!S)return;const[t,...a]=e;console.tag.green(...t).log(...a)},x=new b["a"]({data(){return{loading:!1}},methods:{setLoading(e){this.loading=e}}});function $(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function T(){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));return t}async function z(e,t={}){const a={password:{type:"password",model:"",rules:[h["c"].bind(this),h["d"].bind(this)]}},n=this.$alphabiz.dialog({title:this.$t("input_independent_password"),cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(async()=>{await e(t,t.dialog$arguments().prompts.password)})),...t});await n.promise()}async function P(e,t={}){const a={password:{type:"password",label:this.$t("account_password"),model:"",rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>a.password.model===e||this.$t("account_password_not_equal")]}},n=this.$alphabiz.dialog({cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password))),...t});await n.promise()}async function A(e,{delay:t,timeout:a,messages:{processing:n,failed:o}}){const i=$.call(this,n),r=e=>new Promise((t=>setTimeout(t,e))),s=e=>new Promise((t=>{let a=e;const r=Date.now(),s=setInterval((()=>{const l=Math.floor((Date.now()-r)/1e3);a=e-l,a>0?i.update({progress:`${n} ${a}s`}):(clearInterval(s),i.update({progress:o}),t())}),1e3)}));let l,c=!1;return await Promise.race([r(t).then((()=>s(Math.round(a/1e3)))),e().then((e=>{c=!0,l=e}))]).finally((()=>{r(c?0:1e3).then((()=>i.hide()))})),l}async function I(e={}){const t="lib",{mode:a,password:n}=e,i=await o["a"].dispatch("getKeychainCloud",{keyName:t,mode:a,password:n});if(["epriv","epub","priv","pub"].some((e=>!i[e])))throw new Error("invalid_key");return i}async function q(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const a="lib",{mode:n,password:o}=t;await Object(h["a"])(e,{mode:n,password:o,keyName:a})}async function O(e,t={}){var a;let n;if(t.dataStr?n=t.dataStr:(C(["requireKeyObjLocal","$readFile","start"]),n=await this.$readFile(),C(["requireKeyObjLocal","$readFile","done"],n)),!n)return;if(!n.startsWith("eyJ"))throw console.warn("legacy version or invalid key file"),new Error("invalid_key");const o=async e=>{const t={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},a=await _["a"].decryptLibKeyObj(t.decode(n),e).catch((()=>{}));if(!a||"object"!==typeof a)throw new Error("error_password");if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a};await z.call(this,(async(t,a)=>{const n=await o(a).catch((e=>(this.$q.notify({message:this.$t(e.message),type:"negative",position:"bottom-right"}),null)));C(["requireKeyObjLocal","decrypted"],n),n&&await e(n).finally((()=>t.hide()))}),{title:null!==(a=t.title)&&void 0!==a?a:this.$t("input_unlock_password"),message:this.$t("require_unlock_password")})}async function E(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{password:a}=t,n={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},o=await _["a"].encryptLibKeyObj(e,a).catch((()=>null));if(!o)throw new Error("error_password");const i=Math.floor(Date.now()/1e3);await this.$writeFile(`${f.a.displayName.replace(/\s/g,"_")}-libkey-${i}.abk`,n.encode(o))}async function D(){const e=async()=>{try{C(["createKeyObj","1"],"ensure logout"),await n["a"].logout();const e=v()+w(35),t=w(),a=e.substring(0,12);C(["createKeyObj","2"],"register"),await k((async()=>{await n["a"].register(e,t,{name:a,description:"",avatar:""})}));const o=e=>{var t;if(null===e||void 0===e||null===(t=e._)||void 0===t||!t.sea)throw new Error("current_lib_key_does_not_exist");const a=e._.sea;if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a},i=o(Object(r["t"])());return C(["createKeyObj","3","created"],i),i}catch(e){throw console.error(e),new Error("failed to create lib key obj")}finally{C(["createKeyObj","4"],"logout"),await n["a"].logout()}};return await A.call(this,e,{delay:1e4,timeout:15e3,messages:{processing:this.$t("creating_lib_key"),failed:this.$t("failed_to_create_lib_key")}})}async function j(){var e;if(!n["a"].user||null===(e=n["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=n["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t}async function N(e,t=!0){const a=async()=>{if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");return C(["loadKeyObj"],"lib.login"),await k((async()=>{await n["a"].logout(),await n["a"].login(e)})),C(["loadKeyObj"],"lib.prepareData"),await n["a"].prepareData(),!0};return t?await A.call(this,a,{delay:1e4,timeout:6e4,messages:{processing:this.$t("loading_lib_key"),failed:this.$t("failed_to_load_lib_key")}}):await a()}async function L(){localStorage.removeItem(`library-pair@${r["e"]}`),await n["a"].logout()}async function U(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"});let a=!1;const n=$.call(this,this.$t("loading_keychain_state"));await new Promise((e=>setTimeout(e,1e3)));const o=await this.$store.dispatch("syncKeychainState").catch((e=>(t(e.message),null)));if(!o)return n.hide(),a;const i=!(null===o||void 0===o||!o.lib),r=!!o.hash;o.unset&&o.hash;if(i){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));if(!t)return n.hide(),a}if(r)try{n.update({progress:this.$t("backing_up")}),await q.call(this,e,{mode:"cognito_hash",password:void 0}),a=!0}catch(s){t(s.message)}finally{n.hide()}else{n.hide();const o=async(n,o)=>{try{await q.call(this,e,{mode:"independent_password",password:o}),a=!0,n.hide()}catch(s){t(s.message)}},r=i?z:P,l=i?{message:this.$t("update_cloud_key_prompt_password")}:{message:this.$t("store_cloud_key_prompt_password")};await r.call(this,o,l)}return a}async function R(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async t=>{let a=null;const n={label:this.$t("import_from_cloud"),value:"import_from_cloud",disable:!0,desc:this.$t("loading_keychain_state")},o=e=>e.dialog$useLoadingState("ok",(()=>(a&&a(),t(e,e.dialog$arguments().option)))),i={type:"radio",model:"import_from_cloud",items:[n,{label:this.$t("import_lib_key_from_local"),value:"import_from_local"},{label:this.$t("create_new_key"),value:"create_new_key"}]},r=this.$alphabiz.dialog({title:this.$t("create_or_import_key"),message:this.$t("create_or_import_key_desc"),options:i,ok:o});function s(e){const t=e=>{n.label=e?`${this.$t("import_from_cloud")} (${e}s)`:this.$t("import_from_cloud"),r.update({options:Object.assign({},i)})};let a=null;const o=new Promise((n=>{let o=e,i=setInterval((()=>{if(o<=0)return a(!0);t(o),o-=1}),1e3);a=e=>{i&&clearInterval(i),i=null,n(e)}}));return o.then((e=>{if(t(),e)return r.vm.handleOk()})),()=>a(!1)}await this.$store.dispatch("syncKeychainState").then((e=>{e.lib?(n.disable=!1,n.desc=this.$t("sync_at",{time:this.$d(e.timestamps.lib,"YMDHms")}),i.model="import_from_cloud"):(n.disable=!0,n.desc=this.$t("cloud_storage_disabled"),i.model="import_from_local"),r.update({options:Object.assign({},i)})})).catch((t=>e(t.message))),n.disable||(a=s.call(this,6),this.$watch((()=>r.vm.dialog$arguments().option),(()=>a()))),await r.promise()};await a((async(a,n)=>{C(["select",n]);const o=async e=>{const n=await N.call(this,e);n&&(t(),a.hide())};if("create_new_key"===n){const t=await D.call(this);if(!t)return;let a=!1;const r=async t=>{const o=async t=>{const a={type:"radio",model:"backup_to_cloud",items:[{label:this.$t("save_local"),value:"save_local"},{label:this.$t("backup_to_cloud"),value:"backup_to_cloud",desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),cancel:!0,options:a,ok:e=>e.dialog$useLoadingState("ok",(()=>t(e,e.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((t=>e(t.message))),await n.promise()};await o((async(o,i)=>{if(C([n,i]),"save_local"===i)await P.call(this,(async(n,i)=>{try{await E.call(this,t,{password:i}),a=!0,n.hide(),o.hide()}catch(r){e(r.message)}}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")});else if("backup_to_cloud"===i){if(a=await U.call(this,t),!a)return;o.hide()}}))};if(await r(t),!a)return;try{C([n,"stored"]),await o(t)}catch(i){e(i.message)}}else if("import_from_local"===n)await O.call(this,o);else if("import_from_cloud"===n){C([n,"syncKeychainState"]);const t=await this.$store.dispatch("syncKeychainState").catch((t=>(e(t.message),null)));if(null===t||void 0===t||!t.lib)return C([n,"cloud_lib_key_not_existed"]),void e("cloud_lib_key_not_existed");if(t.unset&&t.hash){C([n,"use_cognito_hash"]);try{const e=await I.call(this,{mode:"cognito_hash",password:void 0});await o(e)}catch(i){e(i.message)}return}C([n,"use_independent_password"]),await z.call(this,(async(t,a)=>{try{const e=await I.call(this,{mode:"independent_password",password:a});await o(e),t.hide()}catch(i){e(i.message)}}),{message:this.$t("require_independent_password")})}}))}async function M(){try{const e=await this.$store.dispatch("syncKeychainState");if(null!==e&&void 0!==e&&e.lib)return!1;const t=await D.call(this);if(!t)throw new Error("failed_to_create_keyObj");const a=await U.call(this,t);if(!a)throw new Error("failed_to_store_keyObj");const n=await N.call(this,t);if(!n)throw new Error("failed_to_load_keyObj");return!0}catch(e){return C(["lib$auto_create","cancel"],e.message),!1}}const F={mixins:[u],created(){this.$amplify.addOnAuthStateChangedListener((async e=>{if("signedIn"!==e)return;x.setLoading(!0);const t=()=>{const e=localStorage.getItem(`library-pair@${r["e"]}`);if(!e)return;const t=JSON.parse(e);return["epriv","epub","priv","pub"].some((e=>!t[e]))?void 0:t},a=t();if(a)await N.call(this,a,!1);else{const e=await M.call(this);e||await R.call(this)}x.setLoading(!1)})),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedOut"===e&&await L.call(this)}))}},B={mixins:[u],beforeCreate(){if("KeychainItem"!==this.$options.name&&"MnemonicCode"!==this.$options.name)throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async lib$exportCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=await j.call(this).catch((t=>(e(t.message),null)));if(!t)return;await P.call(this,(async(a,n)=>{await E.call(this,t,{password:n}).then((()=>a.hide()),(t=>e(t.message)))}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")})},async importKeyObject(e){const t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});return N.call(this,e).then(t)},async lib$importLocalKey(){const e=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});await O.call(this,(async t=>{await N.call(this,t),e()}))},async lib$backupCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=await j.call(this).catch((t=>(e(t.message),null)));if(!a)return;const n=$.call(this,this.$t("loading_keychain_state"));await o["a"].dispatch("syncKeychainState").then((async o=>{const i=await T.call(this);if(i)if(o.hash&&o.unset){n.update({progress:this.$t("backing_up")});try{await q.call(this,a,{mode:"cognito_hash",password:void 0}),t()}catch(r){e(r.message)}finally{n.hide()}}else{n.hide();const o=e=>P.call(this,e,{title:this.$t("input_independent_password"),message:this.$t("update_cloud_key_prompt_password")});await o((async(n,o)=>{try{await q.call(this,a,{mode:"independent_password",password:o}),t(),n.hide()}catch(r){e(r.message)}}))}else n.hide()}),(t=>{e(t.message),n.hide()}))},async lib$exportCloudKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=$.call(this,this.$t("loading_keychain_state")),a=await o["a"].dispatch("syncKeychainState").catch((t=>(e(t.message),null))).finally(t.hide);if(!a)return;const n=async e=>{let t=this.$t("export_key_with_cloud"),n={unlockPassword:{type:"password",model:"",label:this.$t("key_file_unlock_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("re_enter_unlock_password"),rules:[e=>n.unlockPassword.model===e||this.$t("account_password_not_equal")]}};const o=a.unset&&a.hash;o?t+=`; ${this.$t("independent_password_not_enabled")}`:n={password:{type:"password",model:"",label:this.$t("cloud_independent_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},...n};const i=this.$alphabiz.dialog({title:this.$t("export_key"),message:t,prompts:n,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.password||"",a.unlockPassword,o?"cognito_hash":"independent_password")}))});await i.promise()};await n((async(t,a,n,o)=>{try{const e=await I.call(this,{mode:o,password:a});await E.call(this,e,{password:n}),t.hide()}catch(i){e(i.message)}}))}}},W={methods:{async lib$openABK(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),n=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});if(!y)return;const o=a("1b85").ipcRenderer;[".abk"].some((t=>e.endsWith(t)))&&(e=await o.invoke("read-abk",e));const i=async()=>{const a=async()=>{const t=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),message:this.$t("confirm_open_abk",{filename:e}),cancel:!0});return!!await t.promise()};await a()&&await O.call(this,(async e=>{C(["lib$openABK","keyObj"],e);const a=async e=>{const a={type:"radio",model:"use_the_key",items:[{value:"use_the_key",label:this.$t("use_the_key")},{value:"backup_the_key",label:this.$t("backup_the_key"),desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),options:a,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((e=>t(e.message))),await n.promise()};await a((async(a,o)=>{C(["lib$openABK","selectAction"],o);try{if("use_the_key"===o)await N.call(this,e);else if("backup_the_key"===o){const t=await U.call(this,e);if(!t)return}n(),a.hide()}catch(i){t(i.message)}}))}),{title:this.$t("open_keychain_file"),dataStr:e})};"signedIn"===this.$store.state.account.authState?(C(["lib$openABK","hot boot"]),await i()):(C(["lib$openABK","cold boot"]),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedIn"===e&&await i()}),{once:!0}))}}}},a44b:function(e,t,a){"use strict";a("c5fa")},a51a:function(e,t){e.exports={github:{username:"tanshuai",repo:"alphabiz",branch:"main",internalRepo:"alphabiz-app"},bucketUrl:"https://s3.amazonaws.com/internal.alpha.biz",s3DownloadUrl:"https://d2v5t3td4po4es.cloudfront.net/releases/"}},a5d3:function(e,t,a){},a5fe:function(e,t,a){},a749:function(e,t,a){"use strict";var n=a("8750"),o=a("a368"),i=a("8a63"),r=a("5584"),s=a("1926"),l=a("d558");const c=e=>{if(Object(l["a"])()){if(!e.connected)return console.log("Network offline");if("cellular"===e.connectionType){if(r["a"].getters.settings.downloadWithCellular)return console.log("User allowed download with cellular");Object(i["d"])(!0),Object(i["e"])(!0),n["a"].create({title:s["b"].t("download_with_cellular"),message:s["b"].t("download_with_cellular_desc"),ok:s["b"].t("download_with_cellular_confirm"),cancel:s["b"].t("pause_all")}).onOk((()=>{r["a"].dispatch("set",{downloadWithCellular:!0}).then((()=>{r["a"].dispatch("fetchSettings"),Object(i["c"])(!0),Object(i["h"])(!0)}))}))}else e.connectionType}},d=async()=>{o["Network"].addListener("networkStatusChange",(e=>{c(e)}));const e=await o["Network"].getStatus();c(e)};d(),t["a"]=c},a754:function(e,t){e.exports=require("string_decoder")},a75f:function(e,t,a){},aa59:function(e,t,a){},aa8a:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return s}));var n=a("fc3a"),o=a("a368"),i=a("d558");async function r(){if(Object(i["a"])()){const{value:e,type:t}=await o["Clipboard"].read();return t.startsWith("text")||"url"===t?e:""}return navigator.clipboard.readText()}async function s(e){return Object(i["a"])()?o["Clipboard"].write({string:e}):Object(n["a"])(e)}},ac09:function(e,t,a){"use strict";a("8dc9")},ac84:function(e,t,a){},ae24:function(e,t,a){},af04:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a("7ca3"),o=a.n(n),i=(a("a1c1"),a("0c26"),a("f680")),r=a("1926"),s=a("d310");class l{static showRaw(e,t){i["a"].create({message:e,type:t,position:"bottom-right",timeout:5e3})}static show(e,t,a){const n="account_",o=n+e.replace(/ /g,"_"),s=r["b"].t(o,a);i["a"].create({message:s,type:t,position:"bottom-right",timeout:5e3})}static showPositive(e){this.show(e,"positive")}static showNegative(e){let t;e=e.replace("PreSignUp failed with error ",""),e=e.replace("CustomMessage failed with error ",""),e=e.replace("VerifyAuthChallengeResponse failed with error ",""),"."===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),0===e.indexOf("Cognito received the following error from Amazon SES when attempting to send email:")?e="error_email_not_exists":["Member must satisfy regular expression pattern: [0-9]+","Member must have length greater than or equal to 6","Member must have length less than or equal to 6"].findIndex((t=>e.indexOf(t)>=0))>=0&&(e="error_mfa_token_mismatch"),e.indexOf("$recaptcha")>=0&&(e="Recaptcha Validation Failed"),"No user info"===e&&(e="Network Error"),"XhrError"===e&&(e="Network Error");const a="data::",n=e.lastIndexOf(a);if(n>=0){t=e.substring(n+a.length),e=e.substring(0,n).trim();try{t=JSON.parse(t)}catch{}}if("error_1_message_60_seconds"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+6e4-(new Date).getTime();t={delta:Math.min(Math.max(Math.ceil(e/1e3),1),60)}}else if("error_10_messages_per_day"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+864e5;t={date:e}}const o=!Object.keys(this.ERROR_EVENTS).includes(e);if(o)this.showRaw(e,"negative",t);else{const a=this.ERROR_EVENTS[e];if("error_network"===a)return void c();this.show(a,"negative",t)}}}function c(){i["a"].create({icon:"wifi_tethering_error",multiLine:!0,message:r["b"].t("account_error_network"),type:"negative",position:"bottom-right",timeout:5e3,actions:[{noCaps:!0,label:r["b"].t("network_diagnotic"),color:"white",handler:()=>{s["Bus"].$emit("CALL_NETWORK_DIAGNOSTIC")}}]})}o()(l,"ERROR_EVENTS",{"Bad destination mailbox address":"email_invalid_address","Invalid domain":"email_invalid_domain","Other or undefined mailbox status":"email_unknown_status","Mailbox unavailable":"email_unavailable_address","Suppressed email address":"email_suppressed_address","Invalid code provided, please request a code again":"account_error_invalid_verification_code","Network error":"error_network","Network Error":"error_network","timeout of 0ms exceeded":"error_network","User does not exist":"error_user_not_exist","Incorrect username or password":"error_incorrect_username_or_password","Username/client id combination not found":"error_username_not_found","Cannot reset password for the user as there is no registered/verified email or phone_number":"error_can_not_reset_for_no_verified","Invalid verification code provided, please try again":"error_invalid_verification_code","Password did not conform with policy: Password not long enough":"error_password_not_long_enough","Attempt limit exceeded, please try after some time":"error_attempt_limit_exceeded","Invalid phone number format":"error_invalid_phone_number_format","User already exists":"error_username_already_exists","Incorrect password":"error_incorrect_password",you_need_to_accept_license_terms:"error_you_need_to_accept_license_terms",incorrect_original_password:"error_incorrect_original_password",unexpected_error:"error_unexpected",invitation_channel_required:"invitation_channel_required",invitation_no_code:"invitation_no_code",can_not_change_email:"error_can_not_change_email_before_phone_bound",can_not_change_phone:"error_can_not_change_phone_before_email_bound",not_supported_yet:"error_not_supported_yet",can_not_change_email_phone_with_mfa_enabled:"error_can_not_change_email_phone_with_mfa_enabled",error_same_email:"error_same_email",error_same_phone:"error_same_phone","the code is not an activated code":"error_inactive_code","the code has been used":"error_inactive_code","the code is non-existent":"error_non_existent_code","An account with the given email already exists":"error_email_already_exists","An account with the given phone number already exists":"error_phone_already_exists","Email or phone number is required":"error_email_or_phone_required",error_email_not_exists:"error_email_not_exists",LINKED_ACCOUNT:"error_can_not_link_to_the_linked_account",MISMATCHED_EMAIL:"error_can_not_link_to_the_mismatched_email",error_can_not_link_before_email_verified:"error_can_not_link_before_email_verified",error_can_not_change_email_before_unbound_social_account:"error_can_not_change_email_before_unbound_social_account","Invalid code or auth state for the user":"error_invalid_verification_code","Invalid session for the user, session is expired":"error_expired_verification_code","Invalid session for the user, session can only be used once":"error_expired_verification_code",error_recaptcha_not_loaded:"error_recaptcha_not_loaded","Only 1 message can be sent every 60 seconds":"error_1_message_60_seconds","Only 10 messages can be sent per day":"error_10_messages_per_day",sign_in_failed:"sign_in_failed","Recaptcha Validation Failed":"error_recaptcha_validation_failed","reCAPTCHA verification error":"error_recaptcha_validation_failed","Pending sign-in attempt already in progress":"error_sign_in_in_progress","Invalid code received for user":"error_mfa_token_mismatch","Code mismatch and fail enable Software Token MFA":"error_mfa_token_mismatch","Your software token has already been used once":"error_mfa_token_mismatch","Code mismatch":"error_mfa_token_mismatch",error_mfa_token_mismatch:"error_mfa_token_mismatch",error_can_not_enable_mfa:"error_can_not_enable_mfa","Password attempts exceeded":"error_password_attempts_exceeded"})},afe1:function(e,t,a){},b031:function(e,t,a){},b16a:function(e,t,a){"use strict";a("6ce4")},b1d8:function(e,t,a){"use strict";a("5984")},b2b4:function(e,t,a){"use strict";a("0742")},b36a:function(e,t,a){},b36c:function(e){e.exports=JSON.parse('{"lib_index":"Lar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Seguindo","lib_favorite":"Favoritos locais","lib_local_favorites":"Favoritos locais","lib_channel":"Canal","lib_submit":"Enviar","lib_from_network":"Usando banco de dados descentralizado da rede","welcome_to_lib":"Bem-vindo à biblioteca de mídia ${displayName}","register_or_login":"Registrar/Entrar","lib_recommend":"recomendar","lib_recommend_desc":"Bem-vindo à Biblioteca ${displayName}! Esta biblioteca usa banco de dados descentralizado da rede. Para começar a usar, você precisa seguir alguns canais.","follow_any_channel_to_continue":"Siga qualquer canal para continuar","follow_channels_and_continue":"Siga os canais {0} e continue","show_more_for_me":"Mostrar mais para mim","no_more_recommend":"Não recomendo mais","key":"Chave","create_key":"Criar chave","save_key":"Salvar chave","save_key_file":"Deseja salvar sua chave como arquivo?","import_key":"Importar chave","import":"Importar","invalid_key":"Chave inválida","back_to_top":"De volta ao topo","search_for_channel":"Pesquisar ID do canal","search_channel_no_result":"Não foi possível encontrar o canal com ID {0}","please_input_channel_id":"Insira o ID do canal","welcome_help_text":"Esta é uma biblioteca de mídia descentralizada. Você precisa\\n para criar uma conta para este banco de dados. Vamos\\n gerar uma chave pessoal para você automaticamente.\\n Se você já possui uma chave, também pode importar\\n isso aqui.","welcome_key_text":"Depois de fazer login, clique no botão [SAVE KEY]\\n no canto inferior direito para salvar sua chave privada.\\n Se você perder sua chave, talvez não consiga fazer login novamente.","redirect_to_recommend":"Parece que você não seguiu nenhum canal. Redirecionando para a página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Deixar de seguir","following":"Seguindo","share":"Compartilhar","unfollow_confirm":"Tem certeza que deseja deixar de seguir este canal? Todas as postagens deste canal em sua linha do tempo serão removidas.","follow_failed_hint":"A operação ainda está pendente em segundo plano. Se a operação não for aplicada por muito tempo, reinicie o aplicativo e tente novamente.","block":"Bloquear","unblock":"Desbloquear","blocked":"Bloqueado","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal irá removê-lo de sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","block_creator":"Bloquear o criador deste canal","unblock_creator":"Desbloquear o criador deste canal","block_creator_confirm":"O criador do bloco removerá todos os canais criados por este criador da sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","share_url_copied":"URL de compartilhamento é copiado para sua área de transferência","follow_time":"Siga o tempo","update_time":"Tempo de atualização","search":"Procurar","type":"Tipo","added":"Adicionado","click_to_task":"Clique para ir para a tarefa","lib_already_added":"Você já adicionou este vídeo","description":"Descrição","poster":"Poster","channel_poster":"Cartaz do canal","preview":"Visualização","creator":"O Criador","creator_detail":"Detalhes do criador","loading_creator":"Carregando informações do criador","wait_for_creator_loaded":"Aguarde o carregamento das informações do criador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Do utilizador","channel_title":"Título do canal","channel_id":"ID do canal","post_title":"Título da postagem","post_id":"ID da postagem","import_data_from_excel":"Importar dados do excel","set_excel_keys":"Definir chaves do Excel","excel_import_succeded":"A importação do Excel foi bem-sucedida","excel_import_success_msg":"Linhas {0} estão prontas para serem adicionadas, itens {1} inválidos e {2} duplicados são ignorados","cannot_find_channel":"Não foi possível encontrar o canal","cannot_find_posts":"Não é possível encontrar postagens","add_channel":"Adicionar canal","add_post":"Adicionar postagem","edit_channel":"Editar canal","channel_setting":"Configuração do canal","edit_post":"Editar post","edit_posts":"Editar postagens","channel_detail":"Detalhes do canal","remove":"Remover","remove_channel":"Remover canal","remove_channel_confirm":"Tem certeza que deseja remover esta postagem? Isso não pode ser recuperado.","remove_post":"Remover postagem","remove_post_confirm":"Tem certeza que deseja remover este canal? Isso não pode ser recuperado.","preview_mode":"Modo de pré-visualização","preview_mode_desc":"Esta é uma prévia do seu canal. Todas as taxas de filmes são mostradas aqui.","edit_user_profile":"Editar perfil de usuário","name":"Apelido","avatar":"avatar","no_following":"Nenhum canal a seguir. Clique para ir para","no_recommend":"Nenhum canal recomendado. Clique para ir para","first_recomment_msg":"Pode demorar um pouco se esta for a primeira vez que o aplicativo é iniciado.","invalid_image":"imagem inválida","image_not_reachable":"Este URL de imagem não está acessível.","channel_not_found":"Canal não encontrado","cannot_get_channel_info":"Não é possível obter informações do canal. Este canal pode ser removido por seu criador e não estar mais disponível.","validate_error":"Validar erro","validate_user_name_no_space":"O nome de usuário não deve conter espaços","validate_url_no_space":"URL não deve conter espaços","validate_user_name_length":"O nome de usuário deve ter comprimento entre {0} e {1}","validate_user_desc_length":"A descrição do usuário não deve ter mais de {0} caracteres","validate_user_avatar_url":"O avatar do usuário deve ser url com menos de 2048 caracteres","validate_channel_title_length":"O título do canal deve ter comprimento entre 1 e 100","validate_channel_desc_length":"A descrição do canal deve ter comprimento entre 10 e 300","validate_channel_image_url":"A visualização do canal deve ser um URL com menos de 2.048 caracteres","validate_post_title_length":"O título da postagem deve ter comprimento entre 1 e 100","validate_post_desc_length":"A descrição do post deve ter entre 10 e 300","validate_post_image_url":"O pôster deve ser url com menos de 2048 caracteres","validate_post_url":"URL ${displayName} inválido","validate_post_url_length":"${displayName} URL não deve ter mais de 2048 caracteres","film_rate":"taxa de filme","set_film_rate":"Definir taxa de filme","select_a_rate_before_enter":"Você precisa selecionar uma taxa de filme antes de entrar na biblioteca de mídia.","library_available_rate":"Taxa de filme disponível na biblioteca","rate_g":"G – Audiências Gerais","rate_g_desc":"Todas as idades admitidas. Nada que ofendesse os pais pela visualização pelos filhos.","rate_pg":"PG – Orientação Parental Sugerida","rate_pg_desc":"Parte do material pode não ser adequado para crianças. Os pais são instados a dar \\"orientação parental\\". Pode conter alguns materiais que os pais podem não gostar para seus filhos pequenos.","rate_pg_13":"PG-13 – Pais fortemente advertidos","rate_pg_13_desc":"Alguns materiais podem ser impróprios para crianças menores de 13 anos. Os pais devem ser cautelosos. Alguns materiais podem ser impróprios para pré-adolescentes.","rate_r":"R – Restrito","rate_r_desc":"Menores de 17 anos requerem acompanhamento dos pais ou responsável adulto. Contém algum material adulto. Os pais são convidados a aprender mais sobre o filme antes de levar seus filhos pequenos com eles.","rate_nc_17":"NC-17 – Apenas para adultos","rate_nc_17_desc":"Ninguém com 17 anos ou menos é admitido. Claramente adulto. Crianças não são admitidas.","set_as_private":"Definir como privado","hide_in_explore":"Ocultar este canal na página de exploração","hidden":"Escondido","select_a_rate":"Selecione uma taxa de filme","select_from_tasks":"Selecione entre as tarefas","import_from_magnet":"Importar do imã:?...","input_magnet_url":"Ímã de entrada:? url","task_title":"Título da tarefa","set_title":"Definir título","add_to_local_favorites":"Adicionar aos favoritos locais","remove_from_local_favorites":"Remover dos favoritos locais","removed_favorite":"Favorito removido","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locais como backup","import_favorites_file":"Importar arquivo de favoritos","not_a_favorite_file":"Este arquivo não é um arquivo de backup favorito","connection_status":"Status da conexão","gun_server_list":"nós de cache","custom_nodes":"Nós de cache personalizados","custom_nodes_hint":"Os nós de cache personalizados serão aplicados após o reinício do aplicativo","wait_for_reboot":"Aguardando reinicialização...({seconds}s)","reboot_now":"Reinicie agora","reboot_later":"Reiniciar mais tarde","peer_list":"Nós Diretos","server":"URL do nó","peer":"Par","peer_id":"ID do nó","connection":"Conexão","data_source":"Fonte de dados","sync":"Sincronizar","syncing":"Sincronizando","sync_completed":"Sincronização concluída","got_all_post":"Você já tem todos os posts","placeholder_channel_title":"Nome do seu canal","placeholder_channel_desc":"Descrição sobre este canal","placeholder_post_title":"Nome do filme (ano)","placeholder_post_desc":"Descrição sobre este filme","private_channel":"canal privado","creator_blocked":"Criador bloqueado","go_to_library":"Ir para a biblioteca?","go_to_library_channel_msg":"Você quer ir para o canal da biblioteca {0}?","magnet_does_not_have_name":"Este ímã:? url não tem um nome, você precisa adicionar um título de postagem primeiro.","no_available_post":"Nenhuma postagem disponível","following_channel_no_post":"Todos os seus canais a seguir não têm postagem disponível. Isso pode ser causado por erro de rede. Se você já segue alguns canais, os posts podem ser carregados posteriormente.","share_to_library":"Compartilhar na biblioteca","quick_start":"Começo rápido","quick_start_desc":"Comece a criar uma postagem com uma tarefa ou arquivo","select_file":"Selecione o arquivo...","select_folder":"Selecione a pasta...","post_options":"opções de postagem","channel_options":"Opções de canal","create_new_channel":"Criar novo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Selecione o canal existente","uploaded_by":"{title} enviado por {name}","created_by":"{title} criado por {name}","creating_new_channel":"Criando novo canal...","created_new_channel":"Novo canal criado","creating_new_post":"Criando nova postagem...","created_new_post":"Nova postagem criada","create_new_post":"Criar nova postagem","quick_start_timeout":"{0} tempo limite. Isso pode ser causado por erro de rede. Por favor, tente novamente mais tarde.","file_too_large":"Arquivo muito grande","file_too_large_msg":"Este arquivo tem mais de 4 GB ({size}) e pode levar muito tempo para ser preparado. Tem certeza de que deseja continuar?","resolving_folder_files":"Resolvendo arquivos de pasta...","folder_too_large":"Pasta muito grande","folder_too_large_msg":"Os arquivos nesta pasta são maiores que 4 GB ({size} no total) e podem levar muito tempo para serem preparados. Tem certeza de que deseja fazer o upload?","creating_new_task":"Criando nova tarefa...","cannot_create_task":"Não é possível criar tarefa","cannot_create_task_msg":"Isso pode causar algum erro. Se a tarefa for criada corretamente, você poderá verificar a lista de tarefas posteriormente.","cannot_get_task_name":"Não é possível obter o nome da tarefa. Você precisa inserir um primeiro.","remove_old_task":"Remover tarefa antiga","remove_old_task_desc":"O modo Web só pode criar uma tarefa de cada vez. Deseja remover a tarefa antiga?","subtitle_list":"lista de legendas","optional":"opcional","with_subtitle":"Com {language} legendas","maximumSubtitleNum_limit":"O número de legendas atingiu o máximo","add_subtitle_url":"Adicionar link de download de legenda","cannot_add_subtitle":"Falha ao adicionar legendas","cannot_add_subtitle_msg":"Idioma da legenda não selecionado ou link de download inválido.","support_subtitle_type":"Apenas legendas nos formatos srt e vtt são suportadas.","recommend_opensubtitles":"Recomenda-se usar o link de download de legenda ou id em www.opensubtitles.org.","take_down":"Derrubar","serious_violation":"Violação Grave","copyright_disputes":"Disputas de direitos autorais","adults_only":"Somente Adultos","takedown_reason":"Motivo da remoção","takedown_mode":"Modo de remoção","admins":"Administradores","takedown_user":"Remover este criador","takedown_channel":"Remover este canal","takedown_post":"Remover esta postagem","select_takedown_reason":"Selecione o motivo da remoção","takedown_invalid_reason":"Motivo de remoção inválido","takedown_invalid_user_id":"ID de usuário inválido. O ID deve incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal inválido. O ID deve incluir 20 caracteres","takedown_invalid_post_id":"ID de postagem inválido. O ID deve incluir 20 caracteres","takedown_management":"Gerenciamento de remoção","users":"Usuários","channels":"Canais","posts":"Postagens","you":"Você","preset":"predefinido","admin":"Administrador","committee":"Comitê","about_takedown_mode":"Sobre o modo de remoção:\\nPreset: Configurado no repositório github. Todos eles serão removidos da biblioteca.\\nAdmin: Qualquer um dos votos dos administradores será removido.\\nComitê: Pelo menos metade dos votos dos administradores serão removidos.","cannot_edit_preset":"Você não pode editar esta linha, pois é uma linha predefinida","cannot_edit_not_vote":"Você não pode editar esta linha porque não votou nela","remove_vote":"Remova seu voto","post_preload_failed":"Falha ao pré-carregar esta postagem. O link de download pode estar desatualizado, então esta postagem não pode ser reproduzida imediatamente.","about_cache_node":"Sobre o nó de cache","edit_cache_node":"Editar nó de cache","create_cache_node":"Criar nó de cache","about_cache_node_desc":"${displayName} usa o servidor de armas como nó de cache. Você pode editar nós personalizados na configuração avançada","learn_how_to_deploy_gun":"Aprenda como implantar seu próprio servidor de armas","repeat_add":"A tarefa foi adicionada, não a adicione novamente","upload":"Carregar","download":"Download","delete":"Excluir","delete_task":"Excluir tarefa","delete_confirm_message":"Excluir esta tarefa? Isso é irrevogável","also_delete_files":"Excluir também arquivos","default_delete_files":"Padrão excluir arquivos baixados após remover tarefa","not_now":"Agora não","delete_autoupload_confirm":"Esta tarefa contém o arquivo que você colocou no diretório de upload automático. Excluir esta tarefa também excluirá o arquivo.","delete_anyway":"Excluir mesmo assim","upload_too_many_files":"Carregar muitos arquivos","ask_if_unlimit_upload_amount":"O diretório de upload automático contém muitos arquivos. Deseja desativar a limitação da quantidade de upload? *Isso pode causar problemas de desempenho","disable_limitation":"Desativar limitação","not_length":"A operação de vários arquivos não é suportada no momento, por favor, coopere","download_torrent":"⇬ Fazer download do arquivo","upload_torrent":"Subir arquivo","files":"arquivos","file":"Arquivo","folder":"Pasta","start_all":"Iniciar tudo","pause_all":"Pausar tudo","remove_all":"Deletar tudo","upload_all":"Carregar tudo","clear_history":"Apagar o histórico","pause_all_finish_payments":"Isso finalizará todos os pagamentos.","accelerating":"acelerando","link_task":"Tarefa de link","torrent_task":"Tarefa de arquivo","ok":"OK","cancel":"Cancelar","download_directory_position":"Baixar posição do diretório","torrent_file":"arquivo de tarefa","magnetic_link_incorrect":"O formato do link está incorreto","delete_fail":"Excluir falha","pause":"Pausa","paused":"Pausado","stop_torrent":"Parar","seed":"Semente","resume":"Retomar","downloading":"Baixando","downloaded":"baixado","uploading":"Enviando","auto_uploading":"Carregamento automático","uploaded":"Carregado","pending":"Aguardando outras tarefas","verifying":"verificando","waiting_for_verify":"Esperando para verificar","seeding":"Semeando","completed":"Concluído","status":"Status","task_name":"Nome da tarefa","size":"Tamanho","progress":"Progresso","sort":"Organizar","ascending":"Ascendente","descending":"descendente","file_loading":"Carregando arquivo...","loading":"Carregando","unknown_status":"Desconhecido","play_while_downloading":"Jogar...","upload_or_play":"Carregar / Reproduzir","play":"Jogar","ask_if_upload_file":"Subir arquivo?","ask_if_upload_or_play":"Carregar ou reproduzir arquivo?","torrent_error":"Erro ao adicionar tarefa:","no_peers":"Tente novamente mais de {0} vezes e nenhum par está disponível","torrent_exists":"Tarefa já existe.","show_origin_torrent":"Obter arquivo de tarefa original ou url","show_directory":"Abra o diretório deste torrent","task_num":"Tarefas","total_upload_speed":"Velocidade de upload","total_download_speed":"Velocidade de download","path_missing":"Erro: não é possível encontrar o caminho do torrent","origin_not_found":"Não é possível encontrar as informações da tarefa de origem.","text_copied":"Magnum url é copiado para a área de transferência","copy_magnet_uri":"Copiar ímã:? URI","copy_download_uri":"Copiar URI de download","copy_share_uri":"Copiar URI de compartilhamento","uri_copied":"O URI foi copiado com sucesso para a área de transferência","uri_copy_failed":"Falha ao copiar uri","more":"Mais...","toggle_list_mode":"Alternar modo de lista","comment":"Comente","operations":"Operações","open_directory":"Diretório aberto","no_downloading_task":"Nenhuma tarefa de download","remove_all_downloading_tasks":"Remover todas as tarefas de download?","remove_all_upload_tasks":"Remover todas as tarefas de upload?","remove_autoupload_files":"Remover arquivos de upload automático","remove_all_history":"Remover todo o histórico?","remaining":"Restante","created_time":"hora criada","used_time":"Tempo usado","completed_time":"Tempo concluído","yesterday":"Ontem","before_yesterday":"{empty}","earlier":"Mais cedo","miss_file":"Alguns arquivos estão faltando","delete_miss_file_task":"Faltam arquivos fome em {0}.","common_peer":"Par comum","ab_peer":"${displayName} colega","ab_peer_verified":"Par verificado ${displayName}","ab_peer_available":"${displayName} pares disponíveis","alphabiz_accelerating":"${displayName} acelerando","income":"Renda","income_info":"Renda (hoje/total)","total_income_info":"Renda: {0}(hoje) / {1}(total)","login_to_see_income":"Faça login para ver as estatísticas de receita","credit_cost":"Custos de crédito","downloaded_by_payment":"Baixado por Pagamentos","file_not_found":"Não é possível encontrar este arquivo no local","no_task":"Não pergunte","no_matched_task":"Nenhuma tarefa correspondente","space_not_enough":"Espaço em disco insuficiente","need_more_space":"Precisa de {0} mais espaço, mas o disco atual tem {1} livre ({2} reservado). As tarefas são pausadas. O pré-carregamento da biblioteca está desativado. Você pode reativá-lo em [Configurações - Avançado].","seeders":"Semeadores","last_update":"Última atualização","connecting":"Conectando","connected":"Conectado","request_timed_out":"Solicitação expirou","connection_failed":"Falha na conexão","invalid_download_url":"URL de download inválido","download_link":"Link para Download","empty_files":"Nenhum arquivo no diretório","duplicate_task":"Duplicar tarefa","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarefa não está pronta. Pausar esta tarefa irá removê-la diretamente.","some_task_not_ready":"Algumas tarefas não estão prontas. Pausar essas tarefas irá removê-las diretamente.","failed_to_delete_files":"Falha ao excluir arquivos","failed_to_delete_files_desc":"Falha ao excluir alguns arquivos da tarefa. Pode ser necessário excluí-los manualmente","unknown_error":"Erro desconhecido: {0}","more_files_are_not_shown":"({0} mais arquivos não são mostrados por motivos de desempenho)","no_available_file":"Nenhum arquivo disponível. Aguarde a tarefa pronta.","service_worker_error":"Não é possível carregar o ServiceWorker para reprodução. Seu navegador pode não oferecer suporte a esse recurso ou o ServiceWorker não está ativado. Pode ser necessário recarregar esta página e tentar novamente.","add_task_first":"Você precisa adicionar a tarefa primeiro.","player_task_time":"O jogador leva muitos segundos se preparando para o jogo. Pode haver algo errado com a tarefa.","web_mode_hint":"O modo web de ${displayName} suporta apenas pares WebRTC. Para uma melhor experiência, faça o download do aplicativo de desktop ${displayName}.","web_mode_task_hint":"Clique nos botões abaixo para adicionar uma tarefa. Você só pode adicionar uma tarefa por vez.","save_to_local":"Salvar no local","save_as_zip":"Salvar como ZIP","creating_save_file":"Criando arquivo de salvamento...","upload_as_one_directory":"Carregar como um diretório","upload_as_single_files":"Carregar como arquivos únicos","web_mode_upload_single":"Você só pode carregar um único arquivo no modo web","download_success":"Baixe com sucesso","download_fail":"Download falhou","wait_for_downloaded_to_share":"Aguarde a tarefa baixada antes de compartilhar.","download_with_cellular":"Baixar tarefas usando celular","download_with_cellular_desc":"Você está usando a rede celular. Tarefas de download com celular podem exigir taxas adicionais de sua operadora.","download_with_cellular_confirm":"Ainda baixa com celular","language":"Linguagem","appearance":"Aparência","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Escuro","basic_setting":"básico","hideMenu":"Ocultar menu de aplicativos (somente Windows e Linux)","autoHide":"Ocultar Janela Automática","autoStart":"Abrir no login","restore":"Mantenha o tamanho e a posição da janela ao sair","autoStartUnfinished":"Retome automaticamente todas as tarefas inacabadas","default_download_path":"Caminho Padrão","download_directory":"Baixe o diretório","upload_directory":"Carregar Diretório","enable_auto_upload":"Ativar upload automático","unlimit_upload_amount":"Quantidade ilimitada de upload","unlimit_upload_warning":"Permitir upload de grande quantidade de arquivos. Isso pode causar problemas de desempenho","start":"Comece","transport_setting":"Transmissão","upload_limit":"Limite de upload","download_limit":"limite de download","payed_user_share_rate":"Taxa de compartilhamento de usuário pago","unlimited":"Ilimitado","limit_input_error":"O número limite deve ser positivo","BT_setting":"Configurações de tarefas","saveLinkSeed":"Salvar link como arquivo de tarefa","autoDownload":"Baixar link e conteúdo automaticamente","continuousSeeding":"Continue a semear até parar manualmente","seedSharingRate":"Proporção de sementes","seedTime":"Tempo de Semeadura (minutos)","task_manage":"Gerenciamento de Tarefas","maximumDownloadNum":"Máximo de tarefas ativas","maximumConnectionsNum":"Conexão máxima por servidor","range_error":"O intervalo deve estar entre {0} e {1}","random":"aleatório","breakpointContinuation":"Continuar","automaticSkip":"Mostrar download automaticamente após adicionar tarefa","afterNotification":"Notificação após a conclusão do download","deleteConfirm":"Nenhuma confirmação é necessária antes de excluir a tarefa","submit":"Salvar & Aplicar","discard":"Descartar","reset":"Reiniciar","reset_all_settings":"Redefinir todas as configurações?","preferences_resetted":"Preferências redefinidas","traditional_chinese":"chinês tradicional","japanese":"japonês","english":"Inglês","chinese":"Chinês simplificado","advancedSettings":"Avançado","autoUpdate":"Atualização automática","autoCheckUpdate":"Verifique automaticamente se há atualização","proxy":"Proxy","useProxyService":"Ativar proxy","trackerService":"Servidores Rastreadores","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Atualize a lista de rastreadores todos os dias automaticamente","manualUpdateTracker":"atualização manual","manualUpdateSuccess":"Atualizar servidores rastreadores com sucesso","manualUpdateFail":"Falha ao atualizar de:","listenPort":"Ouvir portas","BTlistenPort":"Porta de transmissão de dados","DHTlistenPort":"Porta Hash Distribuída","protocols":"Protocolos Compatíveis","setDefaultClientForFollowingProtocols":"Definir como o cliente padrão para os seguintes protocolos","magnetUrl":"Magnético","video_file":"Arquivo de vídeo","audio_file":"Arquivo de áudio","security":"Segurança","impersonateUserAgent":"Agente de usuário simulado","RPCauthorizationkey":"Segredo RPC","viewDocument":"Veja o Manual do Segredo RPC","developer":"Desenvolvedor","applicationLogPath":"caminho de registro do aplicativo","downloadSessionPath":"Baixar caminho da sessão","resetDownloadSessionRecord":"Redefinir sessão de download","restoreInitialSettings":"Restauração de fábrica","preferences_set_successfully":"Salve as preferências com sucesso!","preferences_set_fail":"Falha ao salvar preferências!","change_not_save":"Alterações não salvas","discard_all_changes":"Descartar todas as alterações e sair?","stay_in_page":"Fique na página","disk_usage":"Uso de disco","pause_if_less_space":"Pause e notifique se o espaço for menor que (MB)","default_video_player":"Player de vídeo padrão","video_cache_time":"Cache de reprodução de fluxo","minutes":"minutos","system_default":"Sistema padrão","media_player":"Reprodutor de mídia","library_film_rate":"Taxa de filme disponível","library_show_explore":"Mostrar página [Explorar]","library_setting":"Configuração da biblioteca","library_sync_setting":"Configuração de sincronização da biblioteca","keychain_sync_status":"Status de sincronização das chaves","sync_with_aws":"Sincronize as Chaves com o Amazon Web Services","backup_to_local":"Backup para arquivo local","enable_sync_with_aws":"Habilitar sincronização com AWS","disable_sync_with_aws":"Desabilitar sincronização com AWS","disable_sync_with_aws_desc":"Isso removerá a chave salva no servidor. Verifique se você já exportou sua chave.","input_independent_password":"Inserir senha independente","change_independent_password":"Alterar senha independente","password_error":"Erro de senha","password_invalid":"Senha inválida","key_existed":"A chave existia","key_not_found":"Chave não encontrada","library_recommend":"Biblioteca recomendada","show_all_channels":"Mostrar todos os canais na página de recomendação da biblioteca","not_logged_in":"Não logado","login_to_continue":"Entre para continuar","mnemonic_code":"código mnemônico","wordlist":"Lista de palavras","restore_code":"Restaurar do código","generate_code":"Gerar código","export_mnemonic_code":"Exportar código mnemônico","import_mnemonic_code":"Importar código mnemônico","print":"Imprimir","save_as_txt":"Salvar como txt","save_as_pdf":"Salvar como pdf","from_file":"De arquivo","not_valid_mnemonic_code":"Este não é um código mnemônico válido","cannot_parse_code_as_key":"Não é possível analisar este código mnemônico como chave de biblioteca","import_key_hint":"Tem certeza de importar esta chave? Isso recuperará sua chave antiga na biblioteca.","import_key_confirm":"Sim, importe.","library_preload":"Pré-carregar tarefas da biblioteca","show_preload":"Mostrar tarefas de pré-carregamento","set_download":"Definir diretório de download","set_download_desc":"Para a versão macOS App Store, o diretório de download padrão está na caixa de proteção do aplicativo e será excluído após a desinstalação do aplicativo. Se você deseja manter seus arquivos de download, precisa selecionar um diretório de download diferente manualmente.","home":"Lar","home_caption":"Download/Upload e Arquivos de Mídia","library":"Biblioteca","library_caption":"Explorar recursos de mídia","player":"Jogador","player_caption":"Reprodutor de mídia","credits":"Créditos","credits_caption":"Verificar saldo da conta","account":"Conta","account_caption":"Entrar/Inscrever-se/Gerenciamento","settings":"Configurações","settings_caption":"Configurações para App, Player, Conta","development":"Desenvolvimento","development_caption":"Modo de desenvolvedor para uso interno","basic":"básico","basic_caption":"Configurações básicas","advanced":"Avançado","advanced_caption":"Configurações avançadas","blockchain":"Carteira","blockchain_caption":"${displayName} Carteira Descentralizada","internal_notice":"Aviso de lançamento interno","release_notes":"Notas de lançamento","terms_and_conditions":"Termos e Condições","license_and_listen_notices":"Avisos de licença e escuta de código aberto","close":"Fechar","success":"Sucesso","fail":"Falhar","account_email_invalid_address":"Endereço de email invalido","account_email_invalid_domain":"Domínio de e-mail inválido","account_email_unknown_status":"Status de entrega de e-mail desconhecido","account_email_unavailable_address":"Endereço de e-mail indisponível","account_email_suppressed_address":"Endereço de e-mail suprimido","account_loading":"Carregando...","account_is_required":"é necessário","account_sign_in_your_account":"Entrar","account_username":"Nome de usuário","account_username_email_phone":"Número de telefone ou e-mail","account_password":"Senha","account_new_password":"Nova Senha","account_re_enter_password":"Digite novamente a senha","account_password_not_equal":"Duas senhas não são iguais","account_new_password_same":"A senha é a mesma que a senha original","account_forgot_your_password":"Esqueceu sua senha?","account_reset_password":"Redefinir senha","account_sign_in":"Entrar","account_signed_in":"Assinado","account_sign_up":"Inscrever-se","account_find_your_account":"Encontre Sua Conta","account_enter_your_username":"Digite seu número de telefone ou e-mail","account_search":"Procurar","account_email_sent_tip":"Um e-mail com um código de verificação foi enviado para o seu e-mail:","account_phone_sent_tip":"Um SMS com um código de verificação foi enviado para o seu telefone:","account_email_phone_sent_tip":"E-mail e SMS com código de verificação foram enviados para seu e-mail e telefone, respectivamente:","account_software_token_tip":"A MFA está habilitada para sua conta. Para concluir o login, ligue ou visualize seu dispositivo e digite o TOTP","account_reset_your_password":"Redefina sua senha","account_verification_code":"Código de verificação","account_resend_code":"Reenviar código","account_code_has_been_resent":"O código de verificação foi reenviado","account_password_has_been_reset":"A senha foi redefinida","account_submit":"Enviar","account_sign_up_your_account":"Inscreva sua conta","account_fill_required_fields":"Preencha os campos obrigatórios abaixo.","account_fill_optional_fields":"Preencha os campos opcionais abaixo.","account_email":"E-mail","account_invitation":"Convite","account_invitation_code":"Código de Convite","account_i_accept":"aceito","account_license_terms":"a licença e os termos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro.","account_verify_fill_optional_fields":"Verifique e preencha os campos opcionais.","account_nickname":"Apelido","account_gender":"Gênero","account_male":"Macho","account_female":"Fêmea","account_not_say":"Não diga","account_birthday":"Aniversário","account_phone_number":"Número de telefone","account_locale":"Local","account_tip_verified":"Verificado, fazendo login...","account_verified":"verificado","account_unverified":"não verificado","account_signed_up":"inscreveu-se","account_verify_your_identity":"Verifique sua identidade","account_finish":"Terminar","account_signed_out":"Assinado","account_change_password":"Alterar a senha","account_change_email":"Mude o e-mail","account_change_phone_number":"Alterar número de telefone","account_sign_out":"sair","account_current_password":"Senha atual","account_re_enter_new_password":"Re-introduza a nova palavra-passe","account_personal_information":"Informação","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Olá,","account_cancel":"Cancelar","account_change":"mudar","account_not_set":"não configurado","account_setting":"contexto","account_copy_code":"copie o código","account_account_setting":"Conta","account_task_page":"tarefa de crédito","account_setting_caption":"Alterar senha / Editar informações","account_security":"Segurança","account_want_to_join":"Quer se juntar?","account_sign_in_now":"Entrar","account_changed":"Mudado","account_clipboard_with_invitation_code":"Código de convite copiado","account_clipboard_with_code":"O código copiado","account_invitation_code_dialog_tip":"Você enviará ao seu amigo um e-mail ou mensagem de texto com um código de convite:","account_available":"disponível","account_invited":"convidamos","account_used":"usado","account_invitation_code_sent":"O código de convite foi enviado","account_invitation_channel_required":"Preencha pelo menos um canal de convite","account_no_verification_code":"Não pode receber o código de verificação?","account_no_phone_number":"Sem número de telefone?","account_sign_up_by_email":"Inscreva-se por e-mail","account_no_email":"No email? ","account_sign_up_by_phone_number":"Inscreva-se pelo número de telefone","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se não houver TOTP, configure o TOTP primeiro","account_setup_totp":"Configurar TOTP","account_contact_information":"Informações de contato","account_delete_account":"Deletar conta","account_deleted":"Excluído","account_can_not_mfa":"MFA em apuros?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Desativar MFA","account_disabled_mfa":"MFA desativado","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Não recomendado","account_oauth_sign_in_with":"Entrar com {provider}","account_sign_in_failed":"Falha ao fazer login","account_tip_oath_sign_up":"O e-mail correspondente à conta {provider} atual: {email} ainda não criou uma conta","account_tip_confirm_delete_account":"Digite a senha da conta atual para confirmar que deseja excluir a conta atual. (As contas excluídas não podem ser restauradas)","account_tip_config_mfa":"Você pode optar por usar SMS ou senha única baseada em tempo (TOTP) como autenticação secundária","account_error_can_not_enable_mfa":"Você deve vincular seu endereço de e-mail e número de celular para habilitar o MFA","account_tip_can_not_enable_sms_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o SMS MFA","account_tip_can_not_enable_totp_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o TOTP MFA","account_tip_setup_totp":"Use aplicativos como o Authenticator para digitalizar o código QR abaixo ou copie o código manualmente para adicionar um token de segurança","account_tip_verify_totp":"Verifique seu TOTP","account_link_your_social_account":"Vincule sua conta social","account_unlink_your_social_account":"Desvincular conta social","account_tip_confirm_link":"Tem certeza de que deseja vincular a conta atual à sua conta {provider}?","account_tip_confirm_unlink":"Tem certeza de que deseja cancelar sua conta vinculada {provider}?","account_tip_linking":"vinculativo...","account_tip_unlinking":"Desvinculando...","account_linked":"Vinculado","account_unlinked":"Não consolidado","account_error_can_not_link_to_the_linked_account":"A conta social atual está vinculada a outra conta","account_error_can_not_link_to_the_mismatched_email":"A conta atual e o endereço de e-mail da conta social são inconsistentes","account_error_can_not_link_before_email_verified":"A conta social não pode ser vinculada porque a conta atual não está vinculada a um e-mail verificado","account_tip_confirm_verify_email_phone":"Deseja enviar um código de verificação para o e-mail e número de telefone da conta atual para verificar sua identidade?","account_tip_confirm_verify_phone":"Quer enviar um código de verificação para o número de telefone atual para verificar sua identidade?","account_error_1_message_60_seconds":"Apenas um SMS ou e-mail pode ser enviado a cada 60 segundos, aguarde mais {delta} segundos","account_error_10_messages_per_day":"Cada celular ou e-mail só pode enviar 10 mensagens em 24 horas","account_error_network":"Há um problema com a rede, tente novamente mais tarde","Network Error":"Há um problema com a rede, tente novamente mais tarde","account_error_user_not_exist":"Usuário não existe","account_error_incorrect_username_or_password":"Usuário ou senha incorretos","account_error_incorrect_original_password":"Senha original incorreta","account_error_incorrect_password":"Senha incorreta","account_error_username_not_found":"Nome de usuário não encontrado","account_error_can_not_reset_for_no_verified":"Não é possível redefinir a senha da conta não verificada","account_error_invalid_verification_code":"Código de verificação incorreto, tente novamente","account_error_expired_verification_code":"O código de verificação expirou, tente novamente","account_error_password_not_long_enough":"A senha não é longa o suficiente","account_error_attempt_limit_exceeded":"Limite de tentativas excedido, tente após algum tempo.","account_error_password_attempts_exceeded":"Tentativas de senha excedidas.","account_error_invalid_phone_number_format":"Formato de número de telefone inválido","account_error_no_cell_phone_prefix":"Por favor, selecione o prefixo para o número de telefone","account_error_username_already_exists":"O nome de usuário já existe","account_error_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro","account_error_inactive_code":"O código de convite não é um código ativado","account_error_non_existent_code":"O código de convite é inexistente","account_error_unexpected":"Erro inesperado","account_error_can_not_change_email_before_phone_bound":"O e-mail não pode ser alterado antes que o número de telefone seja vinculado","account_error_can_not_change_email_before_unbound_social_account":"O e-mail não pode ser alterado antes de desvincular a conta social","account_error_can_not_change_phone_before_email_bound":"O número de telefone não pode ser alterado antes que o e-mail seja vinculado","account_error_can_not_change_email_phone_with_mfa_enabled":"Não é possível alterar o e-mail ou o número do celular antes de desativar o MFA","account_error_not_supported_yet":"Não é suportado de momento","account_error_same_email":"O novo endereço de e-mail não pode ser igual ao endereço de e-mail original","account_error_same_phone":"O novo número de telefone não pode ser igual ao número de telefone original","account_error_email_not_exists":"O endereço de e-mail não existe","account_error_email_already_exists":"Já existe uma conta com o e-mail fornecido.","account_error_phone_already_exists":"Já existe uma conta com o número de telefone fornecido.","account_error_mfa_token_mismatch":"Incompatibilidade de código de token de software","account_error_recaptcha_not_loaded":"Há um problema com a rede. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_recaptcha_validation_failed":"Falha na validação do ReCAPTCHA. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_sign_in_in_progress":"Tentativa de login pendente já em andamento","account_field_range":"Limite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Suporta apenas alfanumérico","account_field_only_alphanumeric_and_symbol":"Suporta apenas alfanuméricos e símbolos","account_field_only_chinese_alphanumeric_space_underline":"Suporta apenas alfanumérico, espaço, sublinhado","account_field_prefix_without_number_space":"O primeiro caractere não pode ser um número ou um espaço","account_field_suffix_without_space":"Não pode terminar com um espaço","account_field_without_repeat_space":"Não é possível usar vários espaços seguidos","account_field_can_not_only_alphanumeric":"Você não pode usar apenas letras ou números","account_field_must_have_number_characters":"Deve ter caracteres numéricos","account_field_verification_code":"O código de verificação deve ter seis dígitos","account_field_invitation_code":"O código do convite deve ser alfanumérico","account_field_phone_number":"Formato de número de telefone inválido","account_invalid_email_format":"Formato de email inválido","account_sign_out_confirm":"Tem certeza que deseja sair? Isso interromperá todas as tarefas.","account_sign_out_anyway":"Sair mesmo assim","account_signing_out":"Saindo...","account_request_save_settings":"As configurações não são salvas. Você precisa salvar as alterações antes de sair.","pay":"Pagar","pay_with_credit":"Pague pela aceleração de download. Precisa de cerca de {0} de crédito","pay_with_credit_payed":"Acelerando. Ainda precisa de cerca de {0} de crédito","create_payment":"Criar Pagamento","pay_target":"Alvo","pay_for_torrent":"Pague por {0}","your_subid":"Seu subID","your_credits":"seus créditos","pay_point_for_data":"Pague {0} pontos por {1} dados","auto_renew":"Ativar renovação automática","transaction_details":"Detalhes da transação","transaction_id":"Eu ia","transaction_payer":"Pagador","transaction_payee":"Beneficiário","transaction_category":"Categoria","transaction_changed_amount":"Valor alterado","transaction_meta":"meta","transaction_status":"Status","transaction_creation_time":"Tempo de criação","receipt_code":"Código de Recibo","transfer_amount":"Valor da transferência","code_the_receipt_code":"Copie o código do recibo abaixo para o pagador","fill_the_receipt_code":"Transferência preenchendo o código de pagamento fornecido pelo beneficiário","expense":"Despesa","copied":"copiado","transfer":"Transferir","receive":"Receber","copy":"cópia de","withdraw_fund":"Retirar fundos","category_paydata_payer":"Custo dos dados","category_paydata_payee":"Renda de dados","category_transfer":"Transferir","category_bonus":"Bônus","category_recharge":"Recarrega","status_pending":"pendente","status_completed":"concluído","status_finish":"terminar","status_failed":"fracassado","tip_invalid_receiver":"Código de receptor inválido","tip_invalid_amount":"O valor do crédito deve ser flutuante no intervalo de 0 a 1.000 (a precisão mínima é de 0,001)","credit_get_more":"Obtenha mais créditos","credit_no_data":"Nenhum dado disponível","credit_loading":"Carregando...","credit_not_enough_amount":"Não há créditos suficientes","credit_amount_not_enough":"Não há créditos suficientes","credit_payee_not_exist":"Beneficiário não existe","credit_invalid_amount":"Valor de crédito inválido","credit_can_not_transfer_to_yourself":"Não pode transferir para si mesmo","credit_latest":"Mais recente","credit_error_network":"Há um problema com a rede, tente novamente mais tarde","add_subtitles":"Adicionar legendas","open_file":"Abrir arquivo...","advanced_options":"Opções avançadas","title":"Título","location":"localização","subtitle_file":"arquivo de legenda","unsupported_subtitle_type":"O tipo de arquivo {0} não é um tipo de legenda compatível","not_default_player":"O reprodutor de vídeo padrão não está definido","this_is_an_audio_file":"Este é um arquivo de áudio","the_added_subtitle_already_exists":"A legenda adicionada já existe","stop_stream_player":"A mídia de streaming foi encerrada porque a tarefa foi pausada ou excluída","stop_player":"O player foi encerrado porque o arquivo foi excluído","playing_timeout_hint":"Tempos de espera esgotados. Por favor, verifique a tarefa","autoplay_hint":"A reprodução automática pode ser bloqueada pelo seu navegador. Se o player não estiver jogando, tente clicar na tela para continuar","remove_playing_confirm":"{0} ainda está jogando, removê-lo irá parar o jogador. Tem certeza de removê-lo?","unsupported_in_browser":"Ainda não suportado no modo de navegador","client":"Cliente","warning":"Aviso","enable":"Habilitar","disable":"Desativar","auto":"Auto","encrypt_connection":"Criptografar conexão","encrypted_connection":"Conexão criptografada","non_encrypted_connection":"Conexão não criptografada","connected_wires_not_disconnect":"Os fios conectados não serão desconectados","audio":"áudio","video":"vídeo","image":"imagem","subtitle":"legenda","zip":"fecho eclair","text":"texto","unknown":"desconhecido","add":"Adicionar","undo":"Desfazer","backup":"Cópia de segurança","not_default_app":"${displayName} não é seu aplicativo padrão para torrent e mídia, deseja definir como padrão?","dont_show_again":"Não mostrar novamente","go_to_settings":"Vá para as configurações","about_alphabiz":"Cerca de ${displayName}","last_check_at":"última verificação em","update_channel":"Atualizar canal","check_for_update":"Verifique atualizações","checking_for_update":"Verificando atualização...","no_update_available":"Nenhuma atualização disponível","update_available":"Atualização disponível","update_now":"Atualizar agora","update_later":"Atualizar mais tarde","click_to_update":"Clique no botão ATUALIZAR AGORA para baixar e atualizar","update_failed":"Atualização falhou","update_failed_message":"Ocorreu um erro durante a atualização:","check_shasum_failed":"Falha ao verificar a integridade do instalador","downloading_update":"Download da atualização...","ready_to_update":"Pronto para atualizar","restart_to_update":"A atualização foi baixada. ${displayName} sairá para atualizar por alguns instantes.","already_latest":"A versão atual ({0}) já é a mais recente","update_timeout":"Atualizar tempo limite","no_available_release":"Nenhuma versão disponível","no_available_installer":"Nenhum instalador disponível","feedback":"Opinião","select_a_type":"Selecione um tipo","category":"Categoria","select_a_category":"Selecione uma categoria","require_title":"O título é obrigatório","describe_your_problem":"Descreva seu problema","report_a_bug":"Reportar um erro","request_a_new_feature":"Solicitar um novo recurso","download_or_upload":"Baixar/Carregar","others":"Outros","submit_with_system_info":"Enviar com informações do sistema","submit_feedback":"Enviar feedback","tweet_us":"Tweet nós","tweet_too_long":"O tweet é muito longo","delete_characters":"Exclua pelo menos {0} caractere(s)","rest_characters":"Você pode inserir {0} mais personagem(s)","update_alphabiz":"Atualização ${displayName}","current_version":"Versão Atual","cancel_update":"Cancelar atualização","slow_download_speed":"Download muito lento","slow_download_speed_caption":"O download do instalador está muito lento agora. Verifique o status da rede","update_canceled":"Atualização cancelada","current_version_release_time":"Hora de lançamento da versão atual","expired_app":"${displayName} Expirado","version_out_of_date":"Versão desatualizada","have_to_update":"A versão de ${displayName} está desatualizada. Alguns protocolos ou APIs são obsoletos. Você tem que atualizar ${displayName} antes de continuar.","exit_alphabiz":"Sair ${displayName}","exit_and_update":"Sair e aplicar atualização","new_version_hint":"Nova versão está disponível","no_new_version":"Nenhuma nova versão disponível","current_is_latest":"A versão atual já é a mais recente","click_to_check_update":"Clique no botão [CHECK FOR UPDATE] para verificar a atualização","download_latest_version_from_website":"Por favor, visite o site oficial para baixar a versão mais recente","to_the_website":"para o site","network_diagnotic":"Diagnóstico de rede","diagnotic":"Diagnóstico","click_to_check":"Clique para conferir","click_to_check_again":"Clique para verificar novamente","checking":"verificando","online":"On-line","offline":"desligada","dns_look_up":"Pesquisa de DNS","error":"Erro","aws_service":"Serviço AWS","network_pings":"Ping de rede","not_found":"Não encontrado","packet_loss":"Perda de pacote(s)","official_site":"Site oficial","download_test":"teste de download","test_task":"Tarefa de teste {0}","download_failed":"Download falhou","second_spend":"{0} gastos","open_default_player_failed":"Falha ao abrir o player padrão","copied_to_clipboard":"Copiado para a área de transferência","go_to":"Vá para","region_not_available":"Região não disponível","region_not_available_message":"Desculpe! Sua região não está disponível para usar este aplicativo. Este aplicativo será encerrado após {0} segundos","confirm":"confirme","no_available_result":"Nenhum resultado disponível","invalid_password_format":"formato de senha inválido","invalid_password_format_same":"A senha é a mesma que a senha original","error_password":"Erro de senha","keychain_setting":"Chaveiro","setting_description":"Armazenamento em nuvem: salve dados importantes na nuvem.\\nAlterar senha: Altere a senha da chave da biblioteca de mídia.\\nMnemônico: um método alternativo para gerar e restaurar chaves.\\nImportar chave local: importe a chave salva localmente para a biblioteca de mídia.\\nChave de exportação: salva os dados da biblioteca de mídia atual no local ou na nuvem.\\nChave de backup para nuvem: atualize os dados da biblioteca de mídia atual para a nuvem para backup.","refresh_status":"Atualizar o status","confirm_import_key":"Confirmar chave de importação","confirm_update_cloud_key":"Você já tem uma chave na nuvem. A atualização da chave substituirá a chave original. Tem certeza de que deseja atualizar a chave armazenada na nuvem","export_key_with_cloud":"Digite a senha independente que você definiu para exportar a chave da biblioteca armazenada na nuvem e bloqueie o arquivo de chave pela senha de desbloqueio","store_cloud_key_prompt_password":"Digite uma senha independente para armazenar a chave da biblioteca na nuvem","update_cloud_key_prompt_password":"Defina uma senha independente para criptografar a chave da biblioteca e atualize-a na nuvem","enable_cloud_storage_prompt_password":"Defina uma senha para a chave armazenada na nuvem, por meio da qual você pode recuperar a chave da nuvem","input_unlock_password":"Definir senha de desbloqueio","export_local_prompt_password":"Defina uma senha de desbloqueio para criptografar seu arquivo de chave. Não salvaremos essa senha para você, portanto, se você perder sua senha, não poderá desbloquear a chave da biblioteca","require_unlock_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","require_independent_password":"Digite a senha independente para obter a chave armazenada na nuvem","import_local_prompt_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","select_encrypt_mode":"Selecione o modo de criptografia","update_cloud_key":"Atualize a chave armazenada na nuvem","backup_to_cloud":"Faça backup da chave da biblioteca na nuvem","save_local":"Salve a chave da biblioteca como arquivo criptografado local","create_new_key":"Criar uma nova chave de biblioteca","creating_lib_key":"Criando chave de biblioteca...","loading_lib_key":"Carregando chave da biblioteca...","failed_to_create_lib_key":"Falha ao criar a chave da biblioteca","failed_to_load_lib_key":"Falha ao carregar a chave da biblioteca","import_local_key":"Importar chave localmente","import_lib_key_from_local":"Importar uma chave de biblioteca localmente","import_from_cloud":"Importe a chave da biblioteca da nuvem","create_or_import_key":"Criar ou importar chave de biblioteca","create_or_import_key_desc":"A chave da biblioteca é uma chave independente usada para buscar e publicar conteúdo com banco de dados descentralizado.","store_your_lib_key":"Armazene sua chave de biblioteca","export_cloud_key":"Exportar chave da nuvem","export_current_key":"Exportar Chave Atual","change_password":"Alterar a senha","enable_cloud_storage":"Ativar armazenamento em nuvem","disable_cloud_storage":"Desative o armazenamento em nuvem","disable_cloud_storage_desc":"Desativar o armazenamento em nuvem removerá a chave salva na nuvem, certifique-se de que a chave seja salva localmente","sync_at":"Sincronizar em: {time}","cloud_storage_enabled":"Sincronize as Chaves com {storage}","cloud_storage_disabled":"Armazenamento em nuvem desativado","saved_locally":"Salvo localmente","export_key":"Exportar arquivo de chave","cloud_independent_password":"Senha independente da nuvem","key_file_unlock_password":"Senha de desbloqueio do arquivo de chave","re_enter_unlock_password":"Digite novamente a senha de desbloqueio","independent_password_not_enabled":"A senha atual é a senha da conta Alphabiz (nenhuma senha independente é definida)","use_cognito_hash":"Use a senha da conta Alphabiz","use_independent_password":"Usar senha independente","keychain_lib":"chave da biblioteca","loading_keychain_state":"Carregando chaveiro...","backing_up":"Fazendo backup...","backup_current_key":"Faça backup da chave atual na nuvem","cloud_lib_key_not_existed":"a chave da biblioteca não existe na nuvem","open_keychain_file":"Abrir arquivo de chaveiro","confirm_open_abk":"Deseja abrir o arquivo ABK","use_the_key":"Use a chave","backup_the_key":"Faça backup da chave na nuvem","keychain_data_does_not_exist":"Os dados das chaves não existem","timeout of 0ms exceeded":"Há um problema com a rede, tente novamente mais tarde","XhrError":"Há um problema com a rede, tente novamente mais tarde","payer credit amount is not enough":"Não há créditos suficientes","payee does not exist":"Beneficiário não existe","block_list_manage":"lista de bloqueio gerenciar","blocked_users":"Usuários bloqueados","blocked_channels":"canais bloqueados","unblock_user":"Desbloquear usuário","unblock_channel":"Desbloquear canal","no_blocked_user":"Nenhum usuário bloqueado","no_blocked_channel":"Nenhum canal bloqueado","field_required":"{0} é obrigatório","setting":"Contexto","unknown_media":"Mídia Desconhecida","settings_button_visible":"Botão Visível","settings_setting":"Contexto","settings_playback_rate":"Taxa de reprodução","settings_subtitle":"Legenda","settings_pip":"PiP","settings_fullscreen":"Tela cheia","settings_subtitle_options":"Opções de legenda","settings_normal":"Normal","settings_italic":"itálico","settings_lighter":"Isqueiro","settings_bolder":"mais ousado","settings_small":"Pequeno","settings_large":"Grande","about":"Sobre","services":"Serviços","hide":"Esconder","hide_others":"Ocultar outros","show_all":"Mostre tudo","quit":"Desistir","edit":"Editar","redo":"refazer","cut":"Corte","paste":"Colar","select_all":"Selecionar tudo","view":"Visualizar","reload":"recarregar","toggle_full_screen":"Alternar para o modo tela cheia","toggle_developer_tools":"Alternar ferramentas do desenvolvedor","window":"Janela","minimize":"Minimizar","bring_all_to_front":"Traga tudo para a frente","help":"Ajuda","github_repo":"Repositório do Github","issues":"Problemas","learn_more":"Saber mais","learn_spelling":"Aprenda ortografia","lookup_selection":"Procure \\"{selection}\\"","search_with_google":"Pesquise com o Google","save_as":"Salvar como","save_image":"Salvar imagem","save_image_as":"Salvar imagem como ...","copy_link":"Link de cópia","save_link_as":"Salvar link como ...","copy_image":"Copiar imagem","copy_image_as":"Copiar imagem como...","copy_image_address":"Copiar endereço da imagem","download_complete":"Download completo","download_complete_message":"{0} foi baixado","is_running":"{0} está em execução","open":"Aberto {0}","launch_problem":"problema de inicialização","ask_clear_data":"Parece que você está tentando iniciar {0}, mas falhou várias vezes.\\nDeseja limpar todos os dados do aplicativo e tentar iniciar mais tarde?","launch_directly":"Iniciar diretamente","clear_all_data":"Limpar todos os dados","ask_clear_confirm":"Isso removerá todas as configurações, logs e dados do usuário!\\nDepois disso, talvez seja necessário iniciar {0} novamente.\\nTem certeza que deseja limpar os dados?","confirm_launch":"Não, lance diretamente","confirm_clear":"Sim, limpe todos os dados"}')},b37d:function(e,t,a){var n,o;a("de6c"),a("7996");class i{constructor(e,t,{first:a,last:n,odd:o,even:i}={}){this.name=e,this.style=t,this.first=null!==a&&void 0!==a?a:{},this.last=null!==n&&void 0!==n?n:{},this.odd=null!==o&&void 0!==o?o:{},this.even=null!==i&&void 0!==i?i:{}}withTagStyle(e){const t=e.map(((t,a)=>{const n={};return Object.assign(n,this.style,(a+1)%2===0?this.even:this.odd,0===a?this.first:{},a===e.length-1?this.last:{}),Object.entries(n).map((e=>e.join(": "))).join("; ")}));return[e.map((e=>`%c${e}`)).join(""),t]}}const r=Object.entries({neutral:[["rgb(146,146,146)","white"],["rgb(207,207,207)","black"]],red:[["rgb(232,126,126)","black"],["rgb(255,194,194)","black"]],orange:[["rgb(255,175,118)","black"],["rgb(255,215,196)","black"]],green:[["rgb(87,168,102)","white"],["rgb(200,246,213)","black"]],purple:[["rgb(125,114,253)","white"],["rgb(200,184,255)","black"]],blue:[["rgb(57,145,208)","white"],["rgb(184,215,255)","black"]],yellow:[["rgb(238,194,62)","black"],["rgb(255,238,158)","black"]],black:[["rgb(60,60,60)","white"],["rgb(90,90,90)","white"]]}).reduce(((e,[t,a])=>({...e,[t]:new i(t,{padding:"2px 6px","font-size":"0.7rem"},{odd:{background:a[0][0],color:a[0][1]},even:{background:a[1][0],color:a[1][1]},first:{"padding-left":"10px","border-top-left-radius":"8px","border-bottom-left-radius":"8px"},last:{"padding-right":"10px","border-top-right-radius":"8px","border-bottom-right-radius":"8px","margin-right":"4px"}})})),{});function s(e,t){const a=["log","warn","error","debug","group"],n=new Proxy(e,{get(e,o,i){if("context"===o)return t;if("tag"===o)return l(n,r.neutral);if(a.includes(o)){let e="";const a=[];t.tag_params.forEach((({name:t,tags:n})=>{const o=r[t].withTagStyle(n);e+=o[0],a.push(...o[1])}));const n=Reflect.get(console,o,i);return(...t)=>n(e,...a,...t)}return Reflect.get(e,o,i)}});return n}function l(e,t){const a=function(...a){const n=e!==console?e.context:{message:"",styles:[],tag_params:[]};return n.tag_params.push({name:t.name,tags:a}),s(e,n)};return Object.defineProperties(a,Object.keys(r).reduce(((t,a)=>({...t,[a]:{get(){return l(e,r[a])}}})),{})),a}null!==(o=(n=console).tag)&&void 0!==o||(n.tag=l(console,r.neutral))},b389:function(e,t,a){"use strict";a("a75f")},b3f7:function(e,t,a){const n="Alphabiz",o={name:n,displayName:n,fileName:n,appId:"com.zeeis.alphabiz",snapName:n.toLowerCase(),author:`${n} Team `,developer:`${n} Team`,appIdentifier:"org.zeeis.alphabiz",description:`${n} Blockchain Cryptocurrency Application`,appxPackageIdentityName:n,publisher:"CN=zeeis",publisherDisplayName:`${n} Team`,homepage:"https://alpha.biz",webEditionUrl:"https://web.alpha.biz",upgradeCode:"4d8a65aa-fc5b-421c-94ab-cb722ef737e2",protocol:n.toLowerCase(),shortProtocol:"ab",versionsUrl:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/versions.json",twitterAccount:"@alphabiz_app",register:{mode:"none",list:[]},library:{recommends:{default:["fxpebrsi9ij5pzinwdky","cut44dbbfxjpqka39qix"],"zh-CN":["vs52l0yqtqqpqtw33ycx","cut44dbbfxjpqka39qix"]}},update:a("a51a"),takedown:a("41c7"),theme:{color:{primary:"#d1994b",secondary:"#f3ce90",accent:"#fbbb4a"},cornerLogoStyle:{left:"-72px",top:"-92px",height:"245px"}},dynamicConfig:a("937c"),microsoftStoreProductId:"9PBCCV3MHK04",communities:[{enable:!0,url:"https://github.com/tanshuai/alphabiz",icon:"https://github.githubassets.com/favicons/favicon.svg"}],externalI18n:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/i18n"};console.log("INIT APP CONFIG"),global._app_config_=o,global.LIBDB_NAME=o.name,e.exports=o,a("81e0")(o)},b4bc:function(e,t,a){},bba7:function(e,t,a){},bbb8:function(e,t,a){"use strict";a("8162")},bc42:function(e,t,a){"use strict";a("2d55")},bc7b:function(e,t){e.exports=require("fs")},bd3b:function(e,t,a){"use strict";a("5ccc")},be00:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},be0d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c033:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"ripple",rawName:"v-ripple"}],staticClass:"relative-position follow-btn btn",class:{hovered:e.hovered,followable:e.followable,pending:e.pending,disableFollow:e.disableFollow},on:{mouseover:function(t){e.hovered=!0},mouseleave:function(t){e.hovered=!1},click:e.onClick}},[e.pending?a("q-spinner-dots",{attrs:{size:"18px",thickness:5}}):a("span",{staticClass:"follow-btn-label"},[e._v(e._s(e.followBtnLabel))])],1)},o=[],i=a("5584"),r=a("36a1"),s={name:"LibraryFollowButton",props:{id:String,disableFollow:Boolean},data(){return{hovered:!1}},computed:{pending(){return i["a"].getters.followQueue.includes(this.id)},followable(){return!r["a"].followingChannels.find((e=>e.id===this.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.hovered?this.$t("unfollow"):this.$t("following")}},methods:{async onClick(){if(this.pending)return;if(this.disableFollow)return this.$q.notify("Please wait for loaded");const e=this.id;if(!e)return;if(!r["a"].channelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("cannot_find_channel"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const t=!!this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("unfollow")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>e(!1))).onCancel((()=>e(!0)))}));if(e)return}i["a"].commit("addFollowQueue",e),(t=>{let a=0,n=0,o=0;const s=()=>{clearInterval(n),clearTimeout(a),o&&o(),i["a"].commit("removeFollowQueue",e)};n=setInterval((()=>{this.followable===t?(console.log("Failed to toggle follow",e,t,this.followable),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)):s()}),2e3),o=this.$watch("followable",(e=>{e!==t&&s()})),a=setTimeout((()=>{this.followable===t&&this.$q.notify(this.$t("follow_failed_hint"))}),1e4)})(t),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)}}},l=s,c=(a("93e8"),a("2b5f")),d=a("2a5f"),u=a("4101"),_=a("719b"),p=a("09a4"),m=a.n(p),h=Object(c["a"])(l,n,o,!1,null,"711b4078",null);t["a"]=h.exports;m()(h,"components",{QSpinnerDots:d["a"],QColor:u["a"]}),m()(h,"directives",{Ripple:_["a"]})},c036:function(e,t,a){"use strict";a("b4bc")},c066:function(e,t,a){},c228:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return i}));a("a1c1");var n=a("1c53");(()=>{const e=e=>/^(?!(_|[0-9])+$)(([A-Z0-9]|_)+$)/.test(e),t=e=>/^(?!(_|[0-9])+$)(([a-z0-9]|_)+$)/.test(e),a=e=>/^([A-Z])([A-Za-z0-9]+$)$/.test(e),n=e=>/^([a-z])([A-Za-z0-9]+$)$/.test(e),o=t=>e(t)?t.toLowerCase():n(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase():a(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase().substr(1):t.toLowerCase(),i=e=>t(e)?e.toUpperCase():n(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase():a(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase().substr(1):e.toUpperCase(),r=n=>a(n)?n[0].toLowerCase()+n.substr(1):t(n)?n.replace(/_(\w)/g,((e,t)=>t.toUpperCase())):e(n)?n.toLowerCase().replace(/_(\w)/g,((e,t)=>t.toUpperCase())):n,s=e=>n(e)?e[0].toUpperCase()+e.substr(1):(()=>(e=r(e),e=e[0].toUpperCase()+e.substr(1),e))()})();const o=Object.keys(n["countries"]).reduce(((e,t)=>{const a=n["countries"][t];return e[t]={code:t,name:a.native,normalizedName:a.name,emoji:"TW"===t?"🇼🇫":a.emoji,phones:a.phone.split(",").map((e=>e+"-"+t)),languages:a.languages.map((e=>(e+"-"+t).toLowerCase()))},e}),{}),i=Object.keys(o).reduce(((e,t)=>{const{languages:a,name:n,emoji:i,phones:r}=o[t];return a.forEach((a=>{e[a]={code:t,name:n,emoji:i,phones:r,language:a}})),e}),{})},c294:function(e,t,a){},c49d:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return p})),a.d(t,"d",(function(){return f})),a.d(t,"c",(function(){return b}));a("de6c"),a("a1c1"),a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1");var n=a("5584"),o=a("c248"),i=a.n(o),r=a("5515"),s=a("3aea");const l="59243e4a83edb6386ebb99d6d395df1ca5750162",c=[...new Set(n["a"].getters.settings.trackerList.filter((e=>e.startsWith("ws"))).concat("wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"))];for(const v of["wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce"])c.includes(v)||c.push(v);const d="\n background-color: rgb(137,241,163);\n color: black;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(87,168,102);\n";let u=function(e,...t){if(n["a"].getters.isDevMode)return console.log("%c%s",d,e,...t)};n["a"].watch(((e,t)=>t.isDevMode),(e=>{u=e?console.log.bind(console,"%c%s",d):function(){}}),{immediate:!0});const _=[];function p(e){_.push(e)}u("Init","tracker-peer with trackers",c);const m=()=>"function"===typeof crypto.randomUUID?crypto.randomUUID().replace("-","").substring(0,12):"function"===typeof crypto.getRandomValues?[...crypto.getRandomValues(new Uint8Array(6))].map((e=>e.toString(16).padStart(2,"0"))).join(""):new Array(12).fill().map((()=>Math.floor(16*Math.random()).toString(16))).join(""),h=Buffer.from("-AB0000-"+m());u("peerId",h.toString("hex"));const g=new i.a({infoHash:l,peerId:h,port:8765,intervalMs:3e4,announce:[...c],dht:!0,dhtPort:2e4,tracker:{announce:[...c],getAnnounceOpts:()=>{const e={uploaded:1024,downloaded:1024,left:1024};return e}}}),f=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.stop()},b=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.start()},y=e=>{const t=Object.values(r["d"]).map((e=>{var t;return Object(s["e"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||"")}));try{const a=e.remoteAddress;a&&t.includes(a)&&u("Duplicate peer",a)}catch(a){return u("Duplicate peer",a,e),e.destroy()}_.forEach((t=>t(e)))};g.on("peer",(e=>{"object"===typeof e&&(e._pc&&e._channel?y(e):setTimeout((()=>{e._pc&&e._channel?y(e):e.destroy()}),2e3))})),g.on("dhtAnnounce",((...e)=>{u("dhtAnnounce",...e)}))},c5a5:function(e,t,a){"use strict";a.d(t,"a",(function(){return I}));a("a1c1"),a("0c26"),a("de6c"),a("f200"),a("7a76");var n=a("3fd2"),o=a.n(n);let i;if(o.a.main())i=a("9e8c"),Object.defineProperty(global,"lzma",{get(){return i}});else if(o.a.renderer())i=require("lzma-native"),Object.defineProperty(global,"lzma",{get(){return i}});else{const e=a("6ca2").LZMA;i=new e,Object.defineProperty("undefined"===typeof window?global:window,"lzma",{get(){return i}})}var r=i,s=(a("dc89"),a("2425"),a("fb31")),l=a.n(s),c=a("508e"),d=a.n(c);const u=e=>{const t="magnet:?xt=urn:btih:"+e.hash+"&dn="+(encodeURIComponent(e.name)||e.origin||e.hash).replace(`${s["protocol"]}:///`,"");let a="";if(e.trackers&&(a+=e.trackers.filter((e=>e.length)).map((e=>`&tr=${encodeURIComponent(e)}`)).join("")),e.data)for(const o in e.data){var n;null!==(n=e.data[o])&&void 0!==n&&n.length&&(a+=e.data[o].map((e=>`&${o}=${encodeURIComponent(e)}`)).join(""))}return t+a},_=e=>{var t;const a=new URL(e);if("magnet:"!==a.protocol)throw new Error("Input is not a magnet uri");const n=a.searchParams.get("xt"),o=null===(t=n.match(/[^:]+$/))||void 0===t?void 0:t[0];if(!o)throw new Error("Cannot parse magnet infoHash");const i=a.searchParams.get("dn")||"",r=a.searchParams.getAll("tr").map((e=>{const t=d.a.getIdByTracker(e);return-1!==t?t:e})),s={};return a.searchParams.forEach(((e,t)=>{["xt","dn","tr"].includes(t)||(s[t]||(s[t]=[]),s[t].push(e))})),{protocolType:"01",hash:o,name:i,trackers:r,data:s}};var p={fromObject:u,toObject:_};function m(e){return Buffer.from(e,"utf-8").toString("hex")}function h(e){return Buffer.from(e,"hex").toString("utf-8")}var g={fromObject(e){const{protocolType:t,name:a,hash:n,data:o}=e,i=o.type||"channel";if("02"!==t)return null;const r=l.a.shortProtocol;return`${r}-library://${i}/${decodeURIComponent(a)}/${h(n)}`},toObject(e){if(console.log("lib toObj",e),!e.startsWith(l.a.shortProtocol+"-library://"))return null;const[t,a,n]=e.replace(l.a.shortProtocol+"-library://","").split("/"),o={};return"channel"!==t&&(o.type=t),{protocolType:"02",name:encodeURIComponent(a),hash:m(n),data:o}}},f=a("4d52");const b=l.a.protocol,y=l.a.shortProtocol,v=e=>encodeURIComponent(e.trim().replace(/\s+/g," ")),w=async(e,t)=>{const a=v(t||e.name||`${b}_task`),n=Buffer.from(e.protocolType+e.hash,"hex").toString("base64").replace(/\//g,"_"),o=a.replace(/\s/g,"+").replace(/_/g,"+d;").replace(/\//g,"_").replace(/&/g,"+amp;")+"/"+n,i=[],s=[];for(const r of e.trackers||[])"number"===typeof r?i.push(r.toString(16)):s.push(r);let l=i.map((e=>("0000"+e).slice(-4))).join("");s.length&&(l=l+"&tr="+s.join("&"));for(const r in e.data)Array.isArray(e.data[r])?l=l+"&"+r+"="+e.data[r].join(""):"string"===typeof e.data[r]&&(l=l+"&"+r+"="+e.data[r]);const c=(await r.compress(l,9)).toString("base64");return l=Buffer.from(l).toString("base64"),l.length>1.1*c.length&&(l=c),l.length?b+"://"+o+"&"+l.replace(/\//g,"_"):b+"://"+o},k=async e=>{if(console.log("toObject",e),!e.startsWith(`${b}://`))return null;const t=e.replace(`${b}://`,"").replace(/\/+$/,"").split("&");t.length>2&&console.error("str is invalid alphabiz uri");const[a,n]=t,o=a.lastIndexOf("/");if(-1===o)return null;const i=a.substring(0,o).replace(/\+amp;/g,"&").replace(/_/g,"/").replace(/\+d;/g,"_").replace(/\+/g," ")||"",s=a.substring(o+1),l=Buffer.from(s.replace(/_/g,"/"),"base64").toString("hex");console.log(l,s,n);const c=l.substring(0,2),u=l.substring(2);let _="";try{const e=Buffer.from(n.replace(/_/g,"/"),"base64");console.log("buffer",e);const t=await r.decompress(e);t&&(_=t.toString("base64"))}catch(y){console.log("LZMA decompress failed.",y.message),_=n||""}const p=Buffer.from(_,"base64").toString().split("&"),[m,...h]=p,g=[];if(m.includes("="))h.unshift(m);else for(let r=0;r{if(!S.length)return C.clear(),void(x=!1);const e=S.shift();if(!e||!C.has(e))return $();x=!0;const t=C.get(e);C.delete(e),w(p.toObject(t.url),t.name).then((e=>{"function"===typeof t.cb&&t.cb(null,e),Array.isArray(t.cb)&&t.cb.forEach((t=>{"function"===typeof t&&t(null,e)}))})).catch((e=>{console.error(e),t.cb(e)})).finally((()=>{x=!1,$()}))},T=async(e,t)=>{const{hash:a,url:n,name:o}=e;if(!n)return console.log("error encoding",e),t(new Error(a),n);if(n.startsWith("magnet")){const e=Date.now();if(S.includes(a)){const n=C.get(a);if(n){if(e-n.timestamp<5)return void(Array.isArray(n.cb)?n.cb.push(t):n.cb=[n.cb,t]);"function"===typeof n.cb?n.cb(new Error(`Cannot encode ${n.url}`)):Array.isArray(n.cb)&&n.cb.forEach((e=>{"function"===typeof e&&e(new Error(`Cannot encode ${n.url}`))})),C.delete(a)}else S.splice(S.indexOf(a),1)}return C.set(a,{url:n,timestamp:e,name:o,cb:t}),S.push(a),void(x||$())}if(n.startsWith(y+"-library")){const e=await w(g.toObject(n));return t(null,e)}if(n.startsWith(f["a"].config.prefix)){const e=await w(f["a"].toObject(n));return t(null,e)}return console.log("error encoding",e),t(new Error(a),n)},z=async e=>{const t=await k(e.startsWith(y+":")?e.replace(`${y}://`,`${b}://-/`):e);switch(t.protocolType){case"01":return p.fromObject(t);case"02":return g.fromObject(t);case f["a"].config.type:return f["a"].fromObject(t)}throw console.log(t),new Error(`Unsupported protocol type ${t.protocolType}`)};var P={encode:T,decode:z},A=a("d710");async function I(e){if(e.startsWith(A["protocol"]+"://")||e.startsWith(A["shortProtocol"]+"://")){const t=e.startsWith(A["protocol"]+"://")?e:e.replace(A["shortProtocol"]+"://",A["protocol"]+":///"),a=await P.decode(t);return a}return new Promise(((t,a)=>{P.encode({hash:e,url:e},((e,n)=>{e?a(e):t(n)}))}))}},c5fa:function(e,t,a){},c620:function(e,t,a){"use strict";a.r(t),a.d(t,"wtClient",(function(){return se})),a.d(t,"getTaskInstance",(function(){return ce}));a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("de6c"),a("a1c1");var n=a("4649"),o=a.n(n),i=a("0559"),r=a("0f0c"),s=a("c5a5");a("0c26");const l=a("d6fe"),{resolve:c}=l,{networkInterfaces:d}=a("dd30"),u=e=>{if(!e.ready)return[];const t=e.pieces.length,a=t+128-t%128,n=a/128,o=[];let i=1,r=0;for(let s=0;s=n&&(o.push(i),i=1,r=0);return o},_=e=>{const t=u(e),a=[];let n=0,o=0;for(let i=0;i=8&&(a.push(o),n=0,o=0);return a},p=(e,t)=>{const a=e.pieceLength,n=e.length,o=Math.ceil(n/a),i=t.peerPieces;if(!i.buffer)return{progress:0,buffer:null};let r=0;for(const s of i.buffer){const e=s.toString(2).split("").filter((e=>"1"===e)).length;r+=e}return{progress:r/o,has:r,length:n}},m=["infoHash","name","paused","length","downloaded","uploaded","ready","waiting","progress","isSeeding","upload","token","completed","origin","path","pending","fromPost","postTitle","file","magnetURI","alphabizURI","isAutoUpload","isUploadByFiles","createdTime","completedTime","usedTime"],h=(e,t,a)=>{const n={};var o;(m.forEach((t=>{n[t]=e[t]})),!n.infoHash&&e.magnetURI)&&(n.infoHash=null===(o=e.magnetURI.toLowerCase().match(/:([0-9a-fA-F]{40})/))||void 0===o?void 0:o[1]);if(n.done=e.downloaded>=e.length,n.download=1!==e.progress&&!e.upload,n.upload=e.upload,n.recieved=e.received,n.files=e.files?e.files.map((t=>({name:t.name,path:l.resolve(e.path||"",t.path||t.name),progress:t.progress>0?t.progress:0}))).filter((e=>!e.name.match(/^_____padding_file_(.*)____$/))):[],e.timeRemaining&&(n.timeRemaining=e.timeRemaining),e.metadata&&(n.hasMetadata=!0),e.numPeers&&(n.peersNum=e.numPeers),e.subtitleList&&e.subtitleList.length&&(n.subtitleList=e.subtitleList),"undefined"===typeof t||!a)return n;const i=_(e);e.byteMap&&!i.some(((t,a)=>e.byteMap[a]!==t))||(e.byteMap=i,e.emit("byte-map-change")),n.byteMap=e.byteMap,e.trackerMap?n.trackerList=[...e.trackerMap.values()].map((e=>{const t={...e};return t.url.includes("@6")?t.isIpv6=!0:t.isIpv6=t.url.startsWith("ws")&&t.url.includes("ipv6"),t})).filter((({url:t,status:a})=>{if("error"!==a)return!0;let n=t;t.includes("@6")?n=t.replace("@6",""):n+="@6";const o=e.trackerMap.get(n);return!o||"error"===o.status})):n.trackerList=[];const r=e.client;return n.connections=e.wires.map((n=>{let o=n.remoteAddress;if(!o){const t=e._peers[n.peerId];if(!t||"webrtc"!==t.type)return null;{var i,s,l,c,d;const e=null===(i=t.conn)||void 0===i||null===(s=i._pc)||void 0===s||null===(l=s.currentRemoteDescription)||void 0===l||null===(c=l.sdp)||void 0===c||null===(d=c.match(/c=IN\sIP\d\s(.*)/))||void 0===d?void 0:d[1];if(!e)return n.destroy(),null;o=e}}let u="low";n._uploadThrottle._group===r.throttleGroups.mid&&(u="mid"),n._uploadThrottle._group===r.throttleGroups.high&&(u="high");let _=0,m=0;if(a.has(n._debugId)){const e=a.get(n._debugId);_=(n.downloaded-e.downloaded)/t,_<0&&(_=0),m=(n.uploaded-e.uploaded)/t,m<0&&(m=0)}a.set(n._debugId,{downloaded:n.downloaded,uploaded:n.uploaded});let h=!1;e.byteMap&&n.remote_byte_map&&(h=e.byteMap.some(((e,t)=>{try{const a=e.toString(2).padStart(8,"0"),o=n.remote_byte_map[t].toString(2).padStart(8,"0");for(let e=0;ee)),n.connections.sort(((e,t)=>e.address&&e.address.localeCompare?e.address.localeCompare(t.address):0)),e.verifyStatus&&(n.verifyStatus=e.verifyStatus),e.pieces&&(n.verifiedPieces=e.pieces.reduce(((e,t,a)=>{if(null===t){const t=e[e.length-1];Array.isArray(t)?t[1]===a-1?t[1]=a:e.push(a):t===a-1?e[e.length-1]=[t,a]:e.push(a)}return e}),[])),n},g=()=>{const e=d(),t=new Set;for(const a in e){const n=e[a];n.forEach((e=>{t.add(e.address)}))}return[...t]},f=e=>"string"===typeof e&&e.includes("(")?e.substring(0,e.indexOf("(")).trim():e,b=(e,t)=>{if(!e.discovery||!e.discovery.tracker)return;const a=e.discovery.tracker;if(!a._trackers.find((e=>e.announceUrl===t))&&a._createTracker)try{const e=[4];t.startsWith("http")&&e.push(6);for(const n of e){const e=a._createTracker(t,n);e&&(a._trackers.push(e),e.setInterval(),e.announce(a._defaultAnnounceOpts()))}}catch(n){console.error("addTracker error",n)}},y=(e,t,a)=>{if(!e.discovery||!e.discovery.tracker)return a();const n=e.discovery.tracker._trackers,o=n.findIndex((e=>e.announceUrl===t));if(-1===o)return a();const i=n[o];i&&i.destroy?i.destroy(((...e)=>{const o=n.findIndex((e=>e.announceUrl===t));-1!==o&&n.splice(o,1),"function"===typeof a&&a(...e)})):a()};function v(e){const{appendFile:t}=a("bc7b"),{format:n}=a("05c7"),o=(...e)=>`[${(new Date).toLocaleString()}] ${n(...e)}\n`,i=c(e,"webtorrent.log.log"),r=c(e,"webtorrent.warn.log"),s=c(e,"webtorrent.error.log"),l=function(e){return{...e,log(...a){t(i,o(...a),(()=>{})),e.log.apply(e,a)},warn(...a){t(r,o(...a),(()=>{})),e.warn.apply(e,a)},error(...a){t(s,o(...a),(()=>{})),e.error.apply(e,a)}}}(window.console);window.console=l}var w={useRedirectLogs:v,torrentToJson:h,getLocalIPList:g,getPieceMap:u,parseTrackerWarning:f,addTracker:b,removeTracker:y};a("d4b5"),a("7a76");const{EventEmitter:k}=a("1690"),S=a("3fd2"),{ipcRenderer:C}=S.renderer()?a("1b85"):a("e3c7"),x=a("8b5b"),$=1e7,T=1,z=new Map,P=new Map,A=new Map,I=new Map,q=new Map,O=new Map,E=new Map,D=new Map,j=(e,t)=>{E.has(e)||E.set(e,0),D.has(e)||D.set(e,0);const a=E.get(e)+t;E.set(e,a);const n=Math.floor(a/1e8),o=n-D.get(e);o>0&&(console.log("Request provident payment for",e,"count:",o),C.send("request-provident-payment",{infoHash:e,count:10*o}),D.set(e,n))},N=[],L=new Map,U="undefined"!==typeof localStorage?localStorage.getItem("userInfo"):null,R=U?JSON.parse(U):{user:"",sub:""};console.log("Init user",R);let M=null;const F=e=>{M=e,M.userInfo=R,M.on("request-renew",(e=>C.send("webtorrent-request-renew",e))),M.on("verify-payment",(e=>C.send("webtorrent-verify-payment",e)))};C.on("set-user",((e,t)=>{t||(t=e),console.log("set user",t),R.user=t.user,R.sub=t.sub,"undefined"!==typeof localStorage&&localStorage.setItem("userInfo",JSON.stringify(R)),M.torrents.forEach((e=>{e.wires.forEach((e=>{e._is_alphabiz_peer_&&e.alphabiz_protocol&&e.alphabiz_protocol._sendUserInfo()}))}))}));const B=(e,t)=>{t||(t=e),console.log("Payment info",t);const a=M.get(t.infoHash);if(t.payedSize=t.payed*$/T,A.set(t.id,t),!a||!a.wires.length){if(N.some((e=>e.id===t.id)))return;return N.push(t)}for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSubId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment:JSON.stringify({infoHash:t.infoHash,peerId:t.peerId,subId:R.sub,payed:t.payed,autoRenew:!0,id:t.id})})}};C.on("payment-info",B),C.on("restart-payment",B),C.on("payment-verified",((e,t)=>{t||(t=e);const a=M.get(t.infoHash);if(!a||!a.wires.length)return console.log("tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.subId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._onPaymentVerified({infoHash:t.infoHash,peerId:t.peerId,subId:R.sub,payed:t.payed,autoRenew:!0,id:t.id})}})),C.on("finish-payment",((e,t)=>{const a=M.get(t.infoHash);if(!a||!a.wires.length)return console.log("finish: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_finish:t.transactionId}),n.transactions&&n.transactions.includes(t.transactionId)&&n.transactions.splice(n.transactions.indexOf(t.transactionId),1)}})),C.on("close-payment",((e,t)=>{t||(t=e);const a=M.get(t.infoHash);if(!a||!a.wires.length)return console.log("close: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_close:JSON.stringify({infoHash:t.infoHash,id:t.id})})}}));const W=e=>{if(console.log("To remove",e),!e||!e.infoHash)return;const t=e.infoHash,a=L.get(t);for(let n=0;n{const a="alphabiz_protocol";class n extends k{constructor(e){super(),this._wire=e,this._peerId=null,this._infoHash=t.infoHash,this.isSeeding=t.isSeeding,this.download=t.download,this._user=R.user||"",this._subId=R.sub||"",this.remoteSub="",this.uniqueId="",this._wire._setThrottleGroup=e=>this._setThrottleGroup(e),this.maxUploadSpeed=1e6,this._wire.maxUploadSpeed=1e6,this._initUpload(),this._initDownload()}onHandshake(e,t){this._infoHash=e,this._peerId=t,this._sendUserInfo()}_sendUserInfo(){this._user=R.user||"",this._subId=R.sub||"",this._send({ab_peer:"_ab_"+this._peerId,ab_user:this._user,ab_sub:this._subId,ab_has_meta:t.metadata?1:0}),t.metadata||t.once("metadata",(()=>{this._send({ab_has_meta:1})}))}onExtendedHandshake(e){e.m&&e.m[a]||console.error("Client does not support",a)}_sendByteMap(){t.byteMap&&this._send({ab_byte_map:JSON.stringify(t.byteMap)})}_initDownload(){const e=this._wire,t=t=>{if(Math.random()>.99&&process.memoryUsage().rss/1e9>3&&process.exit(1),this.isSeeding)return;if(!this.remoteSub||!this.uniqueId)return void j(this._infoHash,t);q.get(this.uniqueId)||q.set(this.uniqueId,e.downloaded||0);const a=q.get(this.uniqueId);q.set(this.uniqueId,a+t)};e.on("download",t)}_initUpload(){const e=this._wire,a=t=>{if(!this.remoteSub||!this.uniqueId)return;if(this.remoteSub===this._subId)return;const a=z.get(this.uniqueId)-t;if(isNaN(a))return;const n=L.get(this._infoHash);if(n&&n.length&&(n[0].payedSize-=t,n[0].payedSize<0)){const e=n.shift();C.send("webtorrent-payment-completed",{transactionId:e.id,infoHash:this._infoHash,remoteSub:this.remoteSub})}const o=e.uploadSpeed?e.uploadSpeed():1e6;o>this.maxUploadSpeed&&(this.maxUploadSpeed=1e6*Math.ceil(o/1e6),this._wire.maxUploadSpeed=this.maxUploadSpeed);const i=O.get(this.uniqueId)||[],r=i.reduce(((e,t)=>e+(t.maxUploadSpeed||1e6)),0)||this.maxUploadSpeed;if(P.get(this.uniqueId)&&a<5*r){P.set(this.uniqueId,!1);const e=Math.ceil(r/1e6);console.log("[[wt-ext]] _send ab_renew left < 5*speed",e),this.renew(e<10?10:e)}if(a<=0){if(this._setThrottleGroup("mid"),z.set(this.uniqueId,0),P.get(this.uniqueId)||!P.has(this.uniqueId)){const e=Math.ceil(r/1e6);P.set(this.uniqueId,!1),console.log("[[wt-ext]] _send ab_renew from left<=0",e),this.renew(e<10?10:e)}}else this._setThrottleGroup("high"),z.set(this.uniqueId,a)};e.on("upload",a);const n=()=>{this._wire.transactions&&(C.send("webtorrent-task-done",{infoHash:t.infoHash,name:t.name,payments:this._wire.transactions}),this._send({ab_task_done:this._wire.transactions.join("$")}))},o=()=>this._sendByteMap();e.on("close",(()=>{t.off("done",n),t.off("byte-map-change",o);const a=O.get(this.uniqueId);a&&a.includes(e)&&(console.log("remove same wire"),a.splice(a.indexOf(e),1))})),t.on("done",n),t.on("byte-map-change",o)}_onAbPeer(e,a,n){if(!e.startsWith("_ab_"))return;if(this._remotePeerId=e.substring(4),this._wire._is_alphabiz_peer_=!0,this._wire.ab_peer=e,this._wire.remoteUser=a,this._wire.remoteSub=n,this._wire.transactions=[],this.remoteSub=n,this.uniqueId=n+"#"+this._infoHash,O.has(this.uniqueId)){const e=O.get(this.uniqueId);e.includes(this._wire)||e.push(this._wire)}else O.set(this.uniqueId,[this._wire]);if(I.has(this.uniqueId)||I.set(this.uniqueId,0),I.get(this.uniqueId)>this._wire.downloaded&&I.set(this.uniqueId,this._wire.downloaded),t._has_alphabiz_user_=!0,t.emit("ab_peer",e),this._subId===this.remoteSub)return console.log("[wt-ab-peer] Connected to self"),this._sendByteMap(),void this._setThrottleGroup("high");if(n&&z.get(this.uniqueId)>0?this._onPaymentVerified({infoHash:t.infoHash,subId:n,autoRenew:!0,payed:0},!0):(this._setThrottleGroup("mid"),this.isSeeding&&!z.get(this.uniqueId)&&(this._sendByteMap(),setTimeout((()=>{this.renew()}),1e3))),N.length)for(let t=0;t{this._wire&&!this._wire.destroyed||clearInterval(o),this.isSeeding||"mid"!==this._wire.remoteGroup||this.isSeeding||this._onRenew(this.remoteSub,10)}),5e3)}renew(e=10){this._subId!==this.remoteSub?this._subId?this._send({ab_renew:this._subId,ab_count:e}):console.warn("Cannot get subId"):console.log("[wt-renew] Remote account is same as local")}_setThrottleGroup(t){const a=this._wire._uploadThrottle;if(a&&a._group){if(!e.throttleGroups[t])throw new Error("level_not_found");a._group!==e.throttleGroups[t]&&(console.log("[[wt-ext]] _setThrottleGroup",t),P.set(this.uniqueId,!0),"mid"===t&&a._group===e.throttleGroups.high&&(console.log("Peer dropped back to mid. Send renew request",this._subId,this._infoHash),this.renew(),setTimeout((()=>{a._group!==e.throttleGroups.high&&(console.log("Peer is still in mid. Send renew request",this._subId,this._infoHash),this.renew())}),5e3)),a._group._removeThrottle(a),e.throttleGroups[t]._addThrottle(a),a._group=e.throttleGroups[t],console.log("[[wt-ext]] _send ab_speed_group: ",t),this._send({ab_speed_group:t}))}}_onSpeedGroup(e){console.log("[[wt-ext]] _onSpeedGroup",e),this._wire.remoteGroup=e}_onPaymentReceived(t){e.emit("verify-payment",t)}_onPaymentVerified({infoHash:e,payed:a,id:n}){const o=this.remoteSub;if(console.log("payment verified"),!o||!this.uniqueId)return;if(this._setThrottleGroup("high"),P.set(this.uniqueId,!0),!n||A.has(n))return;const i=a*$/T;if(A.set(n,{infoHash:e,payed:a,autoRenew:!0,id:n,payedSize:i}),e!==t.infoHash)return;if(isNaN(i))return;z.has(this.uniqueId)||z.set(this.uniqueId,0);const r=z.get(this.uniqueId);z.set(this.uniqueId,r+i),L.has(e)||L.set(e,[]);const s=L.get(e);s.push({infoHash:e,subId:o,payedSize:i,id:n,startPosition:this._wire.recieved}),this._send({ab_payment_accepted:n})}_onPaymentAccepted(e){this._wire.transactions.push(e)}_onPaymentCompleted(e){console.log("Completed",e,this.remoteSub),C.send("webtorrent-payment-completed",{transactionId:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),this._wire.transactions.includes(e)&&this._wire.transactions.splice(this._wire.transactions.indexOf(e),1)}_onTaskDone(e){const t=e.split("$").filter((e=>e.length));if(console.log("Remote task done"),t.length)for(const a of t)this._onPaymentCompleted(a);z.delete(this.remoteSub,this._infoHash)}_onPaymentFinished(e){console.log("Finished",e);const a=A.get(e);if(a){const n=q.get(this.uniqueId)||0;I.has(this.uniqueId)||I.set(this.uniqueId,0);const o=I.get(this.uniqueId),i=n-o;i>.9*a.payedSize||t.done||t.downloaded>=.9*t.length?(C.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),I.set(this.uniqueId,o+(i>a.payedSize?a.payedSize:i)),console.log(`Payment ${e} is finished. Payed for ${a.payedSize}. Received ${i}. Done: ${t.done}`),console.log("Update prev-download",o,I.get(this.uniqueId))):(console.log(`Payment ${e} is marked as not-finished. Payed for ${a.payedSize}. Received ${i}`),console.log(`Prev: ${o}. Downloaded: ${n}`))}else C.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash})}_onPaymentClosed(e){console.log("Close",e),W(e)}_onRenew(t,a=10){const n=a&&parseInt(a)?parseInt(a):10;console.log("[[wt-ext]] _onRenew",t,this._remotePeerId,n),e.emit("request-renew",{infoHash:this._infoHash,peerId:this._remotePeerId,payCount:n,subId:t})}onMessage(e){let t;try{t=x.decode(e)}catch(n){return void console.error("cannot decode buf",e)}if(t.ab_has_meta&&(this._wire.remote_has_meta=!0),t.ab_byte_map&&(this._wire.remote_byte_map=JSON.parse(t.ab_byte_map.toString())),t.ab_peer)return this._onAbPeer(t.ab_peer.toString(),t.ab_user&&t.ab_user.toString(),t.ab_sub&&t.ab_sub.toString());if(t.ab_speed_group)return this._onSpeedGroup(t.ab_speed_group.toString());if(t.ab_payment){const e=JSON.parse(t.ab_payment.toString());return console.log("Protocol payment",e),this._onPaymentReceived(e)}return t.ab_payment_completed?this._onPaymentCompleted(t.ab_payment_completed.toString()):t.ab_payment_accepted?this._onPaymentAccepted(t.ab_payment_accepted.toString()):t.ab_payment_finish?this._onPaymentFinished(t.ab_payment_finish.toString()):t.ab_payment_close?this._onPaymentClosed(JSON.parse(t.ab_payment_close.toString())):t.ab_task_done?this._onTaskDone(t.ab_task_done.toString()):t.ab_renew?this._onRenew(t.ab_renew.toString(),null===(a=t.ab_count)||void 0===a?void 0:a.toString()):void 0;var a}_send(e){const t=Object.entries(this._wire.extendedMapping).find((e=>e[1]===a)),n=t&&t[0];n>=0&&this._wire.extended(Number(n),x.encode(e))}onClose(){console.log("onClose",this._wire);this._wire.recieved}}return n.prototype.name=a,n};var V=a("e3c7"),Q=a("5584"),G=a("e38b"),K=a.n(G),Y=a("84f6"),J=a("8750"),Z=a("1926"),X=a("d558"),ee=a("0598");const te=e=>"undefined"!==typeof crypto?Buffer.from(crypto.getRandomValues(new Uint8Array(e))):a("5ae9").randomBytes(e);class ae extends Map{set(e,t){if("object"!==typeof t)return console.error("Not an object",t);super.set(e,Object.assign({url:e},t,{timestamp:Date.now()}))}}const{torrentToJson:ne}=w,oe=a("08ee").announceList.map((e=>e[0])).filter((e=>e.startsWith("wss"))).concat("wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce","wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"),ie=Object(r["a"])("version").replace(/\d*./g,(e=>("0"+e%100).slice(-2))).slice(0,4),re=Buffer.from(`-WW${ie}-${te(9).toString("base64")}`),se=new o.a({peerId:re,maxConns:20,store:K.a});let le=null;const ce=()=>le;if(!Object(X["a"])()&&!Object(ee["default"])()){setInterval((()=>{var e;if(!se.torrents[0])return;const t=se.torrents[0];t.paused||t.done||1===t.progress||null!==(e=t.discovery)&&void 0!==e&&e.tracker&&t.discovery.tracker.update()}),15e3),V["ioServer"].on("updateSettings",(e=>{if(console.log("updateSettings",e),"downloadSpeed"in e){const t=e.downloadSpeed;t>0?se.throttleDownload(t):se.throttleDownload(0)}if("uploadSpeed"in e){const t=e.uploadSpeed;t>0?se.throttleUpload(t):se.throttleUpload(0)}"secureOption"in e&&(console.log("set secure",i["setSecure"]),Object(i["setSecure"])(e.secureOption))})),Object.defineProperty("undefined"===typeof window?global:window,"client",{get(){return se}});const e=()=>"undefined"!==typeof navigator&&!!navigator.serviceWorker;e()?(console.log("registering sw"),navigator.serviceWorker.register("webtorrent.worker.js").then((()=>{const e=()=>{const e=navigator.serviceWorker.controller;e&&"activated"===e.state&&(console.log("[ ServiceWorker ] Change controller",e),se.loadWorker(e))};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.addEventListener("statechange",e),navigator.serviceWorker.addEventListener("controllerchange",(()=>{e(),navigator.serviceWorker.controller.addEventListener("statechange",e)})),console.log("register",navigator.serviceWorker.controller),e()})).catch((e=>{console.error("Error registering sw",e)}))):"undefined"!==typeof navigator&&navigator.serviceWorker&&navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&se.loadWorker(navigator.serviceWorker.controller);const t=new Map;let a=Date.now(),n=1e3;const o=()=>({downloading:[],uploading:[],downloaded:[]}),r=()=>{const e=Date.now();if(n=(e-a)/1e3,a=e,se.torrents[0]){const e=se.torrents[0];e.done||"number"!==typeof e.usedTime||(e.usedTime+=1e3);const a=ne(e,n,t);if(t.has(a.infoHash)&&e.ready){const o=t.get(a.infoHash);0===o.downloaded?a.downloadSpeed=0:a.downloadSpeed=Math.floor((e.downloaded-o.downloaded)/n),0===o.uploaded?a.uploadSpeed=0:a.uploadSpeed=Math.floor((e.uploaded-o.uploaded)/n),a.downloadSpeed<0&&(a.downloadSpeed=0),a.uploadSpeed<0&&(a.uploadSpeed=0),t.set(a.infoHash,{downloaded:e.downloaded,uploaded:e.uploaded})}else a.downloadSpeed=0,a.uploadSpeed=0,t.set(a.infoHash,{downloaded:0,uploaded:0});V["ioServer"].emit("wt-task",a),le=a;const i=o();a.done&&!a.isSeeding&&a.paused?i.downloaded=[a]:a.done||a.isSeeding?i.uploading=[a]:i.downloading=[a],Y["a"].updateTaskList(i)}else le=null,Q["a"].commit("updateABKeys",o())};setInterval(r,1e3),se.on("error",(e=>{console.warn("webtorrent error",e)})),se.on("ready",(()=>{console.log("[webtorrent]","ready"),F(se)}));const l=(e,t)=>{if(console.log("onWire",e),e.use(H(se,t)),"webrtc"===e.type){console.log("onwire",e.remoteAddress,e.peerId);const a=()=>{var n,o,i,r,s;if(e.remoteAddress)return;const l=t._peers[e.peerId];if(!l)return setTimeout(a,1e3);const c=null===(n=l.conn)||void 0===n||null===(o=n._pc)||void 0===o||null===(i=o.currentRemoteDescription)||void 0===i||null===(r=i.sdp)||void 0===r||null===(s=r.match(/c=IN\sIP\d\s(.*)/))||void 0===s?void 0:s[1];if(!c)return setTimeout(a,1e3);e.remoteAddress=c};a()}},c=(e,t)=>{const a="string"===typeof e?se.get(e):e;a&&a.trackerMap&&(a.trackerMap.set(t,{status:"connecting"}),w.addTracker(a,t))},d=(e,t={})=>{e.pending=!1,e.removeAllListeners(),e.setMaxListeners(0),console.log("Add listeners to",e.infoHash||e.token||t.magnetURI),e.on("error",(e=>{console.warn("[wt] error",e)})),e.on("infoHash",(e=>{console.log("got infoHash",e),V["ioServer"].emit("wt-infoHash",e)})),e.on("wire",(t=>l(t,e))),e.on("metadata",(()=>{console.log("Got metadata",e),Object(s["a"])(e.magnetURI).then((t=>{console.log(t),e.alphabizURI=t}))})),e.on("discovery",(()=>{if(console.log("start discovery"),e.trackerMap=new ae,e.discovery._announce.forEach((t=>{if(console.log("Discovered",t),e.trackerMap.set(t,{status:"connecting"}),!t.startsWith("ws")){if(t.match(/(\d{1,3}\.){3}\d{1,3}/))return;e.trackerMap.set(t+"@6",{status:"connecting"})}})),e.discovery.tracker.on("warning",((t,a,n)=>{a&&(6===n&&(a+="@6"),e.trackerMap.set(a,{status:"error",message:w.parseTrackerWarning(t.message)}))})),e.discovery.tracker.on("update",((t,a,n)=>{if(console.log("tracker update",a,t),!a)return console.warn("No emitted url",t);6===n&&(a+="@6"),e.trackerMap.set(a,{status:"updated",info:t})})),t.customTrackers)for(const a of t.customTrackers)c(e,a)}))},u=(e,t)=>{Q["a"].getters.settings.downloadSpeed>0&&se.throttleDownload(Q["a"].getters.settings.downloadSpeed),Q["a"].getters.settings.uploadSpeed>0&&se.throttleUpload(Q["a"].getters.settings.uploadSpeed);const a=t||{};if(a.announce=a.announce||oe,se.torrents&&se.torrents.length)return V["ioServer"].emit("weberror","already_downloading");(e instanceof File||e instanceof FileList)&&console.log("should seed");const n=e instanceof File||e instanceof FileList?se.seed(e,a):se.add(e,a);return n.token=a.token||e,n.origin=a.token||e,n.createdTime=a.createdTime||Date.now(),n.usedTime=a.usedTime||0,a.fromPost&&(n.fromPost=a.fromPost),a.postTitle&&(n.postTitle=a.postTitle),a.name&&(n.name=a.name),d(n,a),r(),n};V["ioServer"].on("wt-add",(async(e,t)=>{if("string"===typeof e&&(e.startsWith("alphabiz:")||e.startsWith("ab:")))return u(await Object(s["a"])(e),t);u(e,t)})),V["ioServer"].on("download_torrent",(async e=>{if(console.log("web download",e),!e.url)return V["ioServer"].emit("weberror","not_supported_in_web_mode");try{const t=await Object(s["a"])(e.url);console.log("converted",t),u(t,{...e,url:t})}catch(t){V["ioServer"].emit("weberror",t.message||t)}})),V["ioServer"].on("wt-pause",(e=>{const t=se.get(e);if(console.log("pause",e,t),!t)return V["ioServer"].emit("weberror","torrent_not_exist");t.paused=!0,t.pause(),t.discovery.tracker.stop();while(t.wires.length){const e=[...t.wires];e.forEach((e=>e.destroy()))}})),V["ioServer"].on("wt-resume",(e=>{const t=se.get(e);if(!t)return V["ioServer"].emit("weberror","torrent_not_exist");t.paused=!1,t.resume(),t.discovery.tracker.start()})),V["ioServer"].on("pause_all",(()=>{se.torrents.forEach((e=>e.destroy((()=>{V["ioServer"].emit("wt-pause",e)}))))})),V["ioServer"].on("wt-delete",(e=>{const t=se.get(e);if(!t)return V["ioServer"].emit("weberror","torrent_not_exist");t.destroy((()=>{V["ioServer"].emit("torrent_deleted",t)}))}));let _=null;const p=({infoHash:e,filepath:t})=>{console.log("[web] Play",e,t);const a=se.get(e);return a?a.ready?(_=a.createServer(),void _.listen(0,(()=>{const t=_.address().port,n={token:a.token,port:t};V["ioServer"].emit("play-server-ready",n);const o=()=>{var t;const n=(null===(t=a.files)||void 0===t?void 0:t.map((e=>{const t=[];for(let n=e._startPiece;nclearInterval(i)))}))):setTimeout((()=>{p({infoHash:e,filepath:t})}),2e3):V["ioServer"].emit("weberror","torrent_not_exist")};V["ioServer"].on("wt-play",p);const m=()=>{_&&(_.destroy&&_.destroy(),_=null,console.log("Destroyed server"))};V["ioServer"].on("wt-stop-server",m),V["ioServer"].on("set_user",(e=>{V["ioServer"].emit("set-user",null,e)})),"undefined"!==typeof document&&document.body.addEventListener("paste",(async e=>{const t=e.clipboardData.files.length?e.clipboardData.files:e.clipboardData.getData("text");let a=t;if(t instanceof FileList){if(t.length>1)return J["a"].create({message:Z["b"].t("web_mode_upload_single"),ok:Z["b"].t("ok")});if(!t[0].size)return J["a"].create({message:Z["b"].t("web_mode_upload_single"),ok:Z["b"].t("ok")});a=t[0]}if("string"===typeof a){if((a.startsWith("ab://")||a.startsWith("alphabiz://"))&&(a=await Object(s["a"])(a).catch((()=>"")),!a.startsWith("magnet")))return J["a"].create({message:Z["b"].t("invalid_download_url"),ok:Z["b"].t("ok")});if(!a.startsWith("magnet"))return}const n=()=>{u(a)};se.torrents[0]?J["a"].create({message:Z["b"].t("remove_old_task_desc"),ok:Z["b"].t("remove_old_task"),cancel:Z["b"].t("cancel")}).onOk((()=>{se.torrents[0].destroy(),se.torrents.splice(0),n()})):J["a"].create({message:Z["b"].t("add")+" "+(a.name||t),ok:Z["b"].t("add"),cancel:Z["b"].t("cancel")}).onOk(n)})),console.log("Init webtorrent events")}},c62a6:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a("ff9b");const o=new n["a"]({data(){return{taskQueue:[]}}})},c65d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c7ce:function(e,t,a){},c905:function(e,t,a){"use strict";a("9d1e")},c9b4:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},ca31:function(e,t,a){},cb96:function(e,t,a){},cbf3:function(e,t,a){"use strict";a("49d6")},cc0c:function(e,t,a){"use strict";a("1da1")},cdb7:function(e,t,a){"use strict";a("7ad0")},ce6c:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.showAppBar?a("q-bar",{staticClass:"application-bar app-draggable"},["mac"===e.env?[a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("div",{staticClass:"absolute-left full-width full-height row flex-center"},[a("div",{staticClass:"text-weight-bold non-selectable"},[e._v(e._s(e.appName))])])]:e._e(),["win","linux"].includes(e.env)?[a("q-img",{staticClass:"application-bar-icon",attrs:{src:e.abIcon,width:"18px",height:"18px"}}),a("div",{staticClass:"application-bar-title q-ml-md q-pr-md non-selectable",staticStyle:{"font-size":"0.8rem"}},[e._v("\n "+e._s(e.appName)+"\n ")]),a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("q-space"),a("div",{staticClass:"full-height flex-center row app-no-draggable",staticStyle:{"pointer-events":"visible","margin-right":"-12px"}},[a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.minimize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1",y1:"6",x2:"11",y2:"6",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.maximize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("polyline",{attrs:{points:"5.5 1.5 10.5 1.5 10.5 6.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("polyline",{attrs:{points:"1.5 5.5 1.5 10.5 6.5 10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button window-close-button",attrs:{unelevated:""},on:{click:e.close}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1.5",y1:"1.5",x2:"10.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("line",{attrs:{x1:"10.5",y1:"1.5",x2:"1.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])])],1)]:e._e()],2):e._e()},o=[],i=(a("de6c"),a("d710"));const r=a("d310").isElectron();var s={name:"ApplicationBar",data(){return{appName:i["appName"],showAppBar:r,showMenu:!1,abIcon:"developer/assets/icon-256.png",env:null,windowControl:null}},created(){if(!r)return;Promise.resolve().then(a.t.bind(null,"1b85",7)).then((({ipcRenderer:e})=>{this.windowControl=t=>e.sendSync("app_window_control",t)}));const e=navigator.userAgent.toLowerCase(),t=/macintosh|mac os x/i.test(e);this.env=t?"mac":"win"},methods:{minimize(){this.windowControl("minimize")},maximize(){this.windowControl(this.windowControl("isMaximized")?"unmaximize":"maximize")},close(){this.windowControl("close")}}},l=s,c=(a("ac09"),a("2b5f")),d=a("85af"),u=a("1043"),_=a("9767"),p=a("990e"),m=a("8a98"),h=a("09a4"),g=a.n(h),f=Object(c["a"])(l,n,o,!1,null,null,null);t["a"]=f.exports;g()(f,"components",{QBar:d["a"],QBtn:u["a"],QImg:_["a"],QSpace:p["a"],QTable:m["a"]})},cea8:function(e,t){e.exports=require("punycode")},cf6e:function(e,t,a){},d176:function(e,t,a){},d1e4:function(e,t,a){"use strict";a("eaf6")},d2e8:function(e,t,a){"use strict";a("053d")},d310:function(e,t,a){"use strict";a.r(t),a.d(t,"localConfigs",(function(){return s})),a.d(t,"deepClone",(function(){return c})),a.d(t,"Bus",(function(){return d["a"]})),a.d(t,"isElectron",(function(){return u["default"]})),a.d(t,"torrentToJson",(function(){return h}));a("de6c");var n=a("3fd2"),o=a.n(n);const i=o.a.renderer(),r=e=>new Promise(((t,n)=>{if(!i)return n(!1),!1;i&&Promise.resolve().then(a.t.bind(null,"1b85",7)).then((a=>a.ipcRenderer.invoke("get-app-settings").then((a=>{a[e]?t(a[e]):n(!1)})).catch(n)))}));var s={getSettingsItem:r};function l(e){if(!e||"object"!==typeof e)return e;const t=arguments[1]||new WeakMap;if(t.has(e))return t.get(e);const a=Array.isArray(e)?[]:{};t.set(e,a);for(const n in e)Object.hasOwnProperty.call(e,n)&&(a[n]=l(e[n],t));return a}var c=l,d=a("c62a6"),u=a("0598");const _=a("d6fe"),p=["infoHash","name","paused","progress","length","downloaded","downloadSpeed","uploaded","uploadSpeed","recieved","ready","token","origin","path","pending"],m=(e,t)=>{const a={};return p.forEach((t=>{a[t]=e[t]})),a.done=e.downloaded>=e.length,a.download=!t,a.upload=e.upload,a.files=e.files?e.files.map((t=>({name:t.name,path:_.resolve(e.path,t.path),progress:t.progress||0}))):[],a};var h=m},d34c:function(e,t,a){},d534:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"image-with-preview full-width"},[a("q-input",{staticClass:"full-width",attrs:{outlined:"","stack-label":"",value:e.value,label:e.label,rules:e.rules,placeholder:"https://example.org/path/to/image.jpg",debounce:500},on:{input:e.emitSrc},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"after",fn:function(){return[a("div",{staticClass:"image-container"},[a("img",{staticClass:"preview-image",class:e.state,attrs:{src:e.realSrc},on:{error:e.emitError,load:e.emitSuccess}}),"error"===e.state?a("q-icon",{attrs:{name:"close",size:"56px",color:"red"}},[a("q-tooltip",[e._v(e._s(e.$t("invalid_image")))])],1):e._e(),"loading"===e.state?a("q-icon",{attrs:{name:"image",size:"56px",color:"green"}},[a("q-tooltip",[e._v(e._s(e.$t("poster")))])],1):e._e()],1)]},proxy:!0}])})],1)},o=[],i={props:{value:String,label:String,rules:{type:Array,default:()=>[]}},data(){return{state:"loading"}},computed:{realSrc(){let e=this.value||"";if(!e.startsWith("http"))return"";while(e.startsWith("http%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);while(e.startsWith("https%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);return e}},methods:{emitSrc(e){this.$emit("input",e)},emitError(){""!==this.value&&(this.$emit("state",2),this.state="error")},emitSuccess(){this.$emit("state",1),this.state="loaded"}},watch:{value(){console.log("src change"),this.$emit("state",0),this.state="loading"}}},r=i,s=(a("c905"),a("2b5f")),l=a("0e45"),c=a("f106"),d=a("cf25"),u=a("09a4"),_=a.n(u),p=Object(s["a"])(r,n,o,!1,null,"70ea5328",null);t["a"]=p.exports;_()(p,"components",{QInput:l["a"],QIcon:c["a"],QTooltip:d["a"]})},d558:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a("dd30");const o=Boolean((()=>{var e;if("undefined"===typeof window)return"mobile"in process.versions||"android"===Object(n["platform"])()||"ios"===Object(n["platform"])()||process.argv.includes("--dev")||process.argv.includes("--capacitor")||void 0;const{Platform:t}=a("d247");return(null===(e=t.is)||void 0===e?void 0:e.capacitor)||void 0})());function i(){return o}},d6fe:function(e,t){e.exports=require("path")},d710:function(e,t,a){const n=a("b3f7"),{default:o}=a("0598");if(o())if(this.require)try{const t=this["require"]("developer/app");console.log("Init from node_modules",process),t.appName=t.name,e.exports={default:t,appName:t.name,...t}}catch(i){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=o()?require("developer/app"):n;t.appName=t.displayName,console.log("APP name:",t.appName),e.exports={default:t,appName:t.displayName,...t}}else e.exports={appName:n.name,...n}},d7df:function(e,t,a){"use strict";a("de6c"),a("d4b5");var n=a("d310"),o=a("e3c7"),i=a("d558"),r=a("9ad5"),s=a.n(r),l=a("a368"),c=a("8a63"),d=a("f680"),u=a("1926");const _=Object(i["a"])(),p=e=>"requestAnimationFrame"in window?requestAnimationFrame(e):setTimeout(e,20),m=[],h=new Map,g=new Map,f={on(e,t){Object(n["isElectron"])()||_?(h.has(e)||h.set(e,[]),h.get(e).push(t),g.has(e)&&(g.get(e).forEach((e=>{t(...e)})),g.delete(e)),_&&"check-network-result"===e&&console.log("Listen on",e,t)):o["ipcRenderer"].on(e,t)},once(e,t){const a=(...n)=>{t(...n),this.off(e,a)};return this.on(e,a)},emit(e,...t){_?m.push({name:e,data:t}):Object(n["isElectron"])()?o["ipcRenderer"].send("_io_send",{name:e,data:t}):o["ipcRenderer"].send(e,...t)},off(e,t){console.log("Off",e);const a=h.get(e);if(!a)return;if(!t)return a.splice(0);const n=a.indexOf(t);-1!==n&&a.splice(t,1)},clear(){console.log("io client clear");for(const e of h.values())e.splice(0)}};if(Object(n["isElectron"])()){const e={resolve:null,async execute(){if(e.resolve)return;const t=new Promise((t=>e.resolve=t));o["ipcRenderer"].send("_io_fetch"),await t,e.resolve=null}},t=async()=>{await e.execute(),setTimeout((()=>p(t)),500)};p(t),o["ipcRenderer"].on("_io_response",(async(t,a)=>{var n;if(!a||!a.length)return null===(n=e.resolve)||void 0===n?void 0:n.call(e);await a.reduce((async(e,{name:t,data:a})=>{await e;const n=JSON.parse(a),o=h.get(t);if(o)o.map((e=>{try{e(...n)}catch(a){console.error(`Error when emitting io event [${t}] ${a}`)}}));else{g.has(t)||g.set(t,[]);const e=g.get(t);e.push(n),e.length>10&&e.splice(0,e.length-10)}}),Promise.resolve()),"function"===typeof e.resolve&&e.resolve()}))}if(_&&"object"===typeof window){const e=(e,t)=>{e.startsWith("ipc")&&(console.log("Got ipc event",e,t),t.unshift(null));const a=e.startsWith("ipc:")?e.substring(4):e,n=h.get(a);if("check-network-result"===a&&console.log("pre",a,n,h.size),h.has(a))n&&n.forEach((e=>e(...t)));else if(g.has(a)){const e=g.get(a);e.push(t),e.length>10&&(e.splice(0,e.length-10),"check-network-result"===a&&console.log("Remove",a,h.size))}else g.set(a,[t])};let t=0;const a=()=>{l["Filesystem"].readFile({path:"service_port",directory:l["Directory"].Documents,encoding:l["Encoding"].UTF8}).then((({data:e})=>{if(!isNaN(parseInt(e))){if(t===parseInt(e))return;t=parseInt(e),console.log("Set port to",t)}}))};a(),setInterval(a,1e4);const n=new Set,o=async()=>{if(!t)return setTimeout(o,500);try{let o=!0,i=()=>{};setTimeout((()=>{o&&(i=d["a"].create({message:u["b"].t("connecting")+"...",position:"bottom-right"}))}),1200);const r=t=>{t&&Array.isArray(t.events)&&t.events.forEach((({name:t,data:a})=>e(t,a)))},l=m.splice(0).map((e=>{const t=JSON.stringify(e).length;if(t>3e6){const t="partials:"+e.name;if(n.has(t))return;n.add(t);let a=0;const o=async e=>{const{data:t}=await s.a.post("http://localhost:3000",{events:[e]},{withCredentials:!1,timeout:5e3}).catch((()=>({})));return r(t),a++,await new Promise((e=>setTimeout(e,100)))};return e.data.reduce((async(e,a,n)=>{if(await e,"object"!==typeof a||JSON.stringify(a).length<3e6)await o({name:t,index:n,data:a}),await new Promise(p);else{let e=Array.isArray(a)?[]:{},i=0;for(const r in a)e[r]=a[r],i+=JSON.stringify(a[r]).length,i>3e6&&(await o({name:t,index:n,data:e}),e=Array.isArray(a)?[]:{},i=0,await new Promise(p));(Array.isArray(a)?e.length:Object.keys(e).length)&&await o({name:t,index:n,data:e})}await new Promise(p)}),Promise.resolve()).then((async()=>{await o({name:t,index:-1}),console.log(`Finished splicing ${t} with ${a} pieces`),n.delete(t)})),null}return e})).filter((e=>e));l.length||l.push("__empty__"),await l.reduce((async(e,n)=>{if(await e,!n)return;const{data:o}=await s.a.post(`http://localhost:${t}`,{events:"__empty__"===n?[]:[n]},{withCredentials:!1,timeout:2e3}).catch((e=>(console.log(`Failed to fetch events. Error: ${e.message||e}`),console.log(m),a(),{})));r(o)}),Promise.resolve()).catch(a),o=!1,i()}catch(i){console.log("Poll error",i)}setTimeout(o,500)};o(),l["App"].addListener("resume",(()=>{console.log("App resume"),setTimeout((()=>{Object(c["c"])(!0)}),500)})),l["App"].addListener("pause",(()=>{console.log("App pause"),Object(c["d"])(!0)})),l["Network"].addListener("networkStatusChange",(e=>{console.log("Network connection type changed to",e.connectionType)}))}t["a"]=f},d7f6:function(e,t,a){},d884:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return o}));a("5584");const n=[{value:"en-US",label:"English"},{value:"zh-CN",label:"简体中文"},{value:"zh-TW",label:"繁體中文"},{value:"de-DE",label:"Hochdeutsch"},{value:"es-ES",label:"español castellano"},{value:"fr-FR",label:"Français standard"},{value:"hi-IN",label:"हिंदी भारत)"},{value:"id-ID",label:"Indonesian (Indonesia)"},{value:"it-IT",label:"Italiano standard"},{value:"ja-JP",label:"日本語 (日本)"},{value:"ko-KR",label:"한국어(대한민국)"},{value:"nl-NL",label:"Standaard Nederlands"},{value:"pl-PL",label:"polski (Polska)"},{value:"pt-PT",label:"português europeu"},{value:"ru-RU",label:"Русский"},{value:"th-TH",label:"ไทย (ประเทศไทย)"},{value:"tr-TR",label:"Türkçe (Türkiye)"}];function o(e){return n.some((t=>t.value===e))}},dcb3:function(e,t,a){},dd30:function(e,t){e.exports=require("os")},df2b:function(e,t,a){},e0e1:function(e,t,a){"use strict";a("571b")},e24e:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},e3c7:function(e,t,a){"use strict";a.r(t),a.d(t,"ipcEvent",(function(){return l})),a.d(t,"ioEvent",(function(){return c})),a.d(t,"ioServer",(function(){return _})),a.d(t,"ipcRenderer",(function(){return p}));a("de6c");var n=a("bd50"),o=a.n(n),i=a("d310"),r=a("d558"),s=a("d7df");const l=new o.a,c=new o.a,d=Object(i["isElectron"])()?a("1b85").ipcRenderer:Object(r["a"])()?{on(e,t){s["a"].on("ipc:"+e,t)},once(e,t){s["a"].once(e,t)},off(e,t){s["a"].off("ipc:"+e,t)},send(e,...t){console.log("ipcSend",e),s["a"].emit("ipc:"+e,...t)}}:{on(e,t){l.on(e,((...e)=>{t(...e)}))},send(e,...t){c.emit(e,...t)}},u=new Map,_={on(e,t){const a=u.has(t)?u.get(t):(...e)=>{t(...e)};u.has(t)||u.set(t,a),c.on(e,a)},emit(e,...t){l.emit(e,...t)},off(e,t){if(!t)return c.off(e);const a=u.get(t)||t;return a?c.off(e,a):void 0}},p=d;console.log("Init api server"),Object(i["isElectron"])()||Object(r["a"])()||(console.log("isElectron",Object(i["isElectron"])()),console.log("isCapacitor",Object(r["a"])()),a("c620"),a("ecef"))},e44e:function(e,t){e.exports=require("assert")},e4a9:function(e){e.exports=JSON.parse('{"lib_index":"Heim","lib_edit":"Veröffentlichen","lib_publish":"Veröffentlichen","lib_explore":"Erkunden","lib_following":"Nachfolgend","lib_favorite":"Lokale Favoriten","lib_local_favorites":"Lokale Favoriten","lib_channel":"Kanal","lib_submit":"Einreichen","lib_from_network":"Verwendung einer dezentralen Datenbank aus dem Netzwerk","welcome_to_lib":"Willkommen in der Medienbibliothek von ${displayName}","register_or_login":"Registrieren/Anmelden","lib_recommend":"Empfehlen","lib_recommend_desc":"Willkommen in der ${displayName}-Bibliothek! Diese Bibliothek nutzt eine dezentrale Datenbank aus dem Netzwerk. Um es nutzen zu können, müssen Sie einigen Kanälen folgen.","follow_any_channel_to_continue":"Folgen Sie einem beliebigen Kanal, um fortzufahren","follow_channels_and_continue":"Folgen Sie den Kanälen {0} und fahren Sie fort","show_more_for_me":"Mehr für mich anzeigen","no_more_recommend":"Nicht mehr zu empfehlen","key":"Schlüssel","create_key":"Schlüssel erstellen","save_key":"Schlüssel speichern","save_key_file":"Möchten Sie Ihren Schlüssel als Datei speichern?","import_key":"Schlüssel importieren","import":"Importieren","invalid_key":"Ungültiger Schlüssel","back_to_top":"Zurück nach oben","search_for_channel":"Suchen Sie nach der Kanal-ID","search_channel_no_result":"Kanal mit der ID {0} kann nicht gefunden werden","please_input_channel_id":"Bitte geben Sie die Kanal-ID ein","welcome_help_text":"Dabei handelt es sich um eine dezentrale Medienbibliothek. Du brauchst\\n um ein Konto für diese Datenbank zu erstellen. Wir werden\\n generiert automatisch einen persönlichen Schlüssel für Sie.\\n Wenn Sie bereits einen Schlüssel besitzen, können Sie ihn auch importieren\\n hier.","welcome_key_text":"Sobald Sie sich angemeldet haben, klicken Sie bitte auf die Schaltfläche [SCHLÜSSEL SPEICHERN].\\n in der rechten unteren Ecke, um Ihren privaten Schlüssel zu speichern.\\n Wenn Sie Ihren Schlüssel verlieren, können Sie sich möglicherweise nicht erneut anmelden.","redirect_to_recommend":"Es scheint, dass Sie keinem Kanal gefolgt sind. Weiterleitung zur Seite [Erkunden].","channel":"Kanal","follow":"Folgen","unfollow":"Nicht mehr folgen","following":"Nachfolgend","share":"Aktie","unfollow_confirm":"Sind Sie sicher, dass Sie diesem Kanal nicht mehr folgen? Alle Beiträge dieses Kanals in Ihrer Chronik werden entfernt.","follow_failed_hint":"Der Vorgang steht im Hintergrund noch aus. Wenn der Vorgang längere Zeit nicht ausgeführt wird, starten Sie die App bitte neu und versuchen Sie es erneut.","block":"Block","unblock":"Entsperren","blocked":"verstopft","block_channel":"Blockieren Sie diesen Kanal","block_channel_confirm":"Wenn Sie den Kanal blockieren, wird er aus Ihrer Timeline entfernt. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","block_creator":"Blockieren Sie den Ersteller dieses Kanals","unblock_creator":"Entsperren Sie den Ersteller dieses Kanals","block_creator_confirm":"Block-Ersteller entfernt alle von diesem Ersteller erstellten Kanäle aus Ihrer Timeline. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","share_url_copied":"Die Freigabe-URL wird in Ihre Zwischenablage kopiert","follow_time":"Folgen Sie der Zeit","update_time":"Updatezeit","search":"Suchen","type":"Typ","added":"Hinzugefügt","click_to_task":"Klicken Sie hier, um zur Aufgabe zu gelangen","lib_already_added":"Sie haben dieses Video bereits hinzugefügt","description":"Beschreibung","poster":"Poster","channel_poster":"Kanalplakat","preview":"Vorschau","creator":"Schöpfer","creator_detail":"Details zum Ersteller","loading_creator":"Erstellerinformationen werden geladen","wait_for_creator_loaded":"Bitte warten Sie, bis die Erstellerinformationen geladen sind.","follower":"Anhänger","followers":"Anhänger","follower_list":"Follower-Liste","user":"Benutzer","channel_title":"Kanaltitel","channel_id":"Kanal ID","post_title":"Titel des Beitrags","post_id":"Beitrags-ID","import_data_from_excel":"Importieren Sie Daten aus Excel","set_excel_keys":"Excel-Tasten festlegen","excel_import_succeded":"Der Excel-Import war erfolgreich","excel_import_success_msg":"{0} Zeilen können hinzugefügt werden, {1} ungültige und {2} doppelte Elemente werden ignoriert","cannot_find_channel":"Kanal kann nicht gefunden werden","cannot_find_posts":"Beiträge können nicht gefunden werden","add_channel":"Kanal hinzufügen","add_post":"Beitrag hinzufügen","edit_channel":"Kanal bearbeiten","channel_setting":"Kanaleinstellung","edit_post":"Beitrag bearbeiten","edit_posts":"Beiträge bearbeiten","channel_detail":"Kanaldetails","remove":"Entfernen","remove_channel":"Kanal entfernen","remove_channel_confirm":"Möchten Sie diesen Beitrag wirklich entfernen? Dies kann nicht wiederhergestellt werden.","remove_post":"Beitrag entfernen","remove_post_confirm":"Möchten Sie diesen Kanal wirklich entfernen? Dies kann nicht wiederhergestellt werden.","preview_mode":"Vorschau Modus","preview_mode_desc":"Dies ist eine Vorschau Ihres Kanals. Alle Filmpreise finden Sie hier.","edit_user_profile":"Benutzerprofil bearbeiten","name":"Spitzname","avatar":"Benutzerbild","no_following":"Keine folgenden Kanäle. Klicken Sie hier, um dorthin zu gelangen","no_recommend":"Keine empfohlenen Kanäle. Klicken Sie hier, um dorthin zu gelangen","first_recomment_msg":"Es kann eine Weile dauern, wenn die App zum ersten Mal gestartet wird.","invalid_image":"Ungültiges Bild","image_not_reachable":"Diese Bild-URL ist nicht erreichbar.","channel_not_found":"Kanal nicht gefunden","cannot_get_channel_info":"Kanalinformationen können nicht abgerufen werden. Dieser Kanal wurde möglicherweise von seinem Ersteller entfernt und ist nicht mehr verfügbar.","validate_error":"Validierungsfehler","validate_user_name_no_space":"Der Benutzername sollte keine Leerzeichen enthalten","validate_url_no_space":"Die URL sollte keine Leerzeichen enthalten","validate_user_name_length":"Der Benutzername sollte eine Länge zwischen {0} und {1} haben","validate_user_desc_length":"Die Benutzerbeschreibung sollte nicht mehr als {0} Zeichen umfassen","validate_user_avatar_url":"Der Benutzer-Avatar sollte eine URL mit weniger als 2048 Zeichen sein","validate_channel_title_length":"Der Kanaltitel sollte eine Länge zwischen 1 und 100 haben","validate_channel_desc_length":"Die Kanalbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_channel_image_url":"Die Kanalvorschau sollte eine URL mit weniger als 2048 Zeichen sein","validate_post_title_length":"Der Beitragstitel sollte eine Länge zwischen 1 und 100 haben","validate_post_desc_length":"Die Beitragsbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_post_image_url":"Das Poster sollte eine URL mit weniger als 2048 Zeichen haben","validate_post_url":"Ungültige ${displayName}-URL","validate_post_url_length":"Die ${displayName}-URL sollte nicht mehr als 2048 Zeichen umfassen","film_rate":"Filmpreis","set_film_rate":"Filmrate einstellen","select_a_rate_before_enter":"Sie müssen einen Filmpreis auswählen, bevor Sie die Medienbibliothek aufrufen.","library_available_rate":"In der Bibliothek verfügbarer Filmpreis","rate_g":"G – Allgemeines Publikum","rate_g_desc":"Alle Altersgruppen zugelassen. Nichts, was Eltern beleidigen würde, wenn Kinder es ansehen.","rate_pg":"PG – Elternberatung empfohlen","rate_pg_desc":"Einige Materialien sind möglicherweise nicht für Kinder geeignet. Eltern werden aufgefordert, „elterliche Anleitung“ zu geben. Kann Material enthalten, das Eltern für ihre kleinen Kinder möglicherweise nicht mögen.","rate_pg_13":"PG-13 – Eltern dringend gewarnt","rate_pg_13_desc":"Einige Inhalte könnten für Kinder unter 13 Jahren ungeeignet sein. Eltern werden dringend gebeten, vorsichtig zu sein. Einige Materialien sind möglicherweise für Jugendliche im Vorschulalter ungeeignet.","rate_r":"R – Eingeschränkt","rate_r_desc":"Personen unter 17 Jahren benötigen die Begleitung eines Elternteils oder eines erwachsenen Erziehungsberechtigten. Enthält etwas Material für Erwachsene. Eltern werden dringend gebeten, mehr über den Film zu erfahren, bevor sie ihre kleinen Kinder mitnehmen.","rate_nc_17":"NC-17 – Nur für Erwachsene","rate_nc_17_desc":"Niemand unter 17 Jahren wird zugelassen. Eindeutig erwachsen. Kinder haben keinen Zutritt.","set_as_private":"Als privat festlegen","hide_in_explore":"Diesen Kanal auf der Erkundungsseite ausblenden","hidden":"Versteckt","select_a_rate":"Bitte wählen Sie einen Filmpreis aus","select_from_tasks":"Wählen Sie aus Aufgaben aus","import_from_magnet":"Import aus Magnet:?...","input_magnet_url":"Eingangsmagnet:? URL","task_title":"Aufgabentitel","set_title":"Titel festlegen","add_to_local_favorites":"Zu lokalen Favoriten hinzufügen","remove_from_local_favorites":"Aus lokalen Favoriten entfernen","removed_favorite":"Favorit entfernt","import_or_export_favorites":"Favoriten importieren/exportieren","export_local_favorites":"Lokale Favoriten als Backup exportieren","import_favorites_file":"Favoritendatei importieren","not_a_favorite_file":"Diese Datei ist keine bevorzugte Sicherungsdatei","connection_status":"Verbindungsstatus","gun_server_list":"Cache-Knoten","custom_nodes":"Benutzerdefinierte Cache-Knoten","custom_nodes_hint":"Benutzerdefinierte Cache-Knoten werden nach dem Neustart der App angewendet","wait_for_reboot":"Warten auf Neustart...({seconds}s)","reboot_now":"Jetzt neustarten","reboot_later":"Später neustarten","peer_list":"Direkte Knoten","server":"Knoten-URL","peer":"Peer","peer_id":"Knoten-ID","connection":"Verbindung","data_source":"Datenquelle","sync":"Synchronisieren","syncing":"Synchronisierung","sync_completed":"Synchronisierung abgeschlossen","got_all_post":"Du hast bereits alle Beiträge erhalten","placeholder_channel_title":"Ihr Kanalname","placeholder_channel_desc":"Beschreibung zu diesem Kanal","placeholder_post_title":"Filmname (Jahr)","placeholder_post_desc":"Beschreibung zu diesem Film","private_channel":"Privater Kanal","creator_blocked":"Ersteller blockiert","go_to_library":"Geh zur Bibliothek?","go_to_library_channel_msg":"Möchten Sie zum Bibliothekskanal {0} gehen?","magnet_does_not_have_name":"Dieser Magnet:? Wenn die URL keinen Namen hat, müssen Sie zuerst einen Beitragstitel hinzufügen.","no_available_post":"Kein Beitrag verfügbar","following_channel_no_post":"Auf allen Ihren folgenden Kanälen sind keine Beiträge verfügbar. Dies kann durch einen Netzwerkfehler verursacht werden. Wenn Sie einigen Kanälen bereits gefolgt sind, werden die Beiträge möglicherweise später geladen.","share_to_library":"In der Bibliothek teilen","quick_start":"Schnellstart","quick_start_desc":"Beginnen Sie mit der Erstellung eines Beitrags mit einer Aufgabe oder Datei","select_file":"Datei aussuchen...","select_folder":"Ordner auswählen...","post_options":"Post-Optionen","channel_options":"Kanaloptionen","create_new_channel":"Neuen Kanal erstellen","use_existed_channel":"Vorhandenen Kanal nutzen","select_existed_channel":"Vorhandenen Kanal auswählen","uploaded_by":"{title} hochgeladen von {name}","created_by":"{title} erstellt von {name}","creating_new_channel":"Neuen Kanal erstellen...","created_new_channel":"Neuer Kanal erstellt","creating_new_post":"Neuer Beitrag wird erstellt...","created_new_post":"Neuer Beitrag erstellt","create_new_post":"Neuen Beitrag erstellen","quick_start_timeout":"{0} Zeitüberschreitung. Dies kann durch einen Netzwerkfehler verursacht werden. Bitte versuchen Sie es später noch einmal.","file_too_large":"Datei zu groß","file_too_large_msg":"Diese Datei ist größer als 4 GB ({size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie fortfahren?","resolving_folder_files":"Ordnerdateien werden aufgelöst...","folder_too_large":"Ordner zu groß","folder_too_large_msg":"Die Dateien in diesem Ordner sind größer als 4 GB (insgesamt {size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie hochladen möchten?","creating_new_task":"Neue Aufgabe erstellen...","cannot_create_task":"Aufgabe kann nicht erstellt werden","cannot_create_task_msg":"Dies kann durch einen Fehler verursacht werden. Wenn die Aufgabe korrekt erstellt wurde, können Sie die Aufgabenliste später überprüfen.","cannot_get_task_name":"Der Aufgabenname kann nicht abgerufen werden. Sie müssen zuerst eines eingeben.","remove_old_task":"Alte Aufgabe entfernen","remove_old_task_desc":"Im Webmodus kann jeweils nur eine Aufgabe erstellt werden. Möchten Sie die alte Aufgabe entfernen?","subtitle_list":"Untertitelliste","optional":"Optional","with_subtitle":"Mit {language} Untertiteln","maximumSubtitleNum_limit":"Die Anzahl der Untertitel hat ihr Maximum erreicht","add_subtitle_url":"Untertitel-Download-Link hinzufügen","cannot_add_subtitle":"Untertitel konnten nicht hinzugefügt werden","cannot_add_subtitle_msg":"Untertitelsprache nicht ausgewählt oder ungültiger Download-Link.","support_subtitle_type":"Es werden nur Untertitel im SRT- und VTT-Format unterstützt.","recommend_opensubtitles":"Es wird empfohlen, den Untertitel-Download-Link oder die Untertitel-ID unter www.opensubtitles.org zu verwenden.","take_down":"Notieren","serious_violation":"Schwerer Verstoß","copyright_disputes":"Urheberrechtsstreitigkeiten","adults_only":"Nur für Erwachsene","takedown_reason":"Grund für die Deaktivierung","takedown_mode":"Takedown-Modus","admins":"Admins","takedown_user":"Deaktiviere diesen Ersteller","takedown_channel":"Deaktiviere diesen Kanal","takedown_post":"Lösche diesen Beitrag","select_takedown_reason":"Wählen Sie den Deaktivierungsgrund aus","takedown_invalid_reason":"Ungültiger Deaktivierungsgrund","takedown_invalid_user_id":"Ungültige Benutzer-Id. Die ID sollte 87 Zeichen umfassen","takedown_invalid_channel_id":"Ungültige Kanal-ID. Die ID sollte 20 Zeichen umfassen","takedown_invalid_post_id":"Ungültige Beitrags-ID. Die ID sollte 20 Zeichen umfassen","takedown_management":"Nehmen Sie das Management ab","users":"Benutzer","channels":"Kanäle","posts":"Beiträge","you":"Du","preset":"Voreingestellt","admin":"Administrator","committee":"Ausschuss","about_takedown_mode":"Über den Takedown-Modus:\\nVoreinstellung: Im Github-Repository konfiguriert. Alle werden aus der Bibliothek entfernt.\\nAdmin: Jeder Admin, für den er stimmt, wird entfernt.\\nAusschuss: Mindestens die Hälfte der Admins, die dafür stimmen, werden abgesetzt.","cannot_edit_preset":"Sie können diese Zeile nicht bearbeiten, da es sich um eine voreingestellte Zeile handelt","cannot_edit_not_vote":"Sie können diese Zeile nicht bearbeiten, da Sie nicht dafür gestimmt haben","remove_vote":"Entferne deine Stimme","post_preload_failed":"Dieser Beitrag konnte nicht vorab geladen werden. Der Download-Link ist möglicherweise veraltet, sodass dieser Beitrag nicht sofort abgespielt werden kann.","about_cache_node":"Über den Cache-Knoten","edit_cache_node":"Cache-Knoten bearbeiten","create_cache_node":"Cache-Knoten erstellen","about_cache_node_desc":"${displayName} verwendet den Gun-Server als Cache-Knoten. Sie können benutzerdefinierte Knoten vorab bearbeiten","learn_how_to_deploy_gun":"Erfahren Sie, wie Sie Ihren eigenen Waffenserver bereitstellen","repeat_add":"Die Aufgabe wurde hinzugefügt. Bitte fügen Sie sie nicht erneut hinzu","upload":"Hochladen","download":"Herunterladen","delete":"Löschen","delete_task":"Aufgabe löschen","delete_confirm_message":"Diese Aufgabe löschen? Dies ist unwiderruflich","also_delete_files":"Löschen Sie auch Dateien","default_delete_files":"Standardmäßig werden heruntergeladene Dateien nach der Entfernungsaufgabe gelöscht","not_now":"Nicht jetzt","delete_autoupload_confirm":"Diese Aufgabe enthält eine Datei, die Sie im Verzeichnis für den automatischen Upload abgelegt haben. Wenn Sie diese Aufgabe löschen, wird auch die Datei gelöscht.","delete_anyway":"Trotzdem löschen","upload_too_many_files":"Laden Sie zu viele Dateien hoch","ask_if_unlimit_upload_amount":"Das Auto-Upload-Verzeichnis enthält zu viele Dateien. Möchten Sie die Begrenzung der Upload-Menge deaktivieren? *Dies kann zu Leistungsproblemen führen","disable_limitation":"Begrenzung deaktivieren","not_length":"Der Betrieb mehrerer Dateien wird derzeit nicht unterstützt. Bitte kooperieren Sie","download_torrent":"Download-Datei","upload_torrent":"Datei hochladen","files":"Dateien","file":"Datei","folder":"Ordner","start_all":"Beginnen Sie alles","pause_all":"Pause all","remove_all":"Alles entfernen","upload_all":"Alles hochladen","clear_history":"Klare Geschichte","pause_all_finish_payments":"Damit sind alle Zahlungen abgeschlossen.","accelerating":"Beschleunigen","link_task":"Link-Aufgabe","torrent_task":"Dateiaufgabe","ok":"OK","cancel":"Stornieren","download_directory_position":"Verzeichnisposition herunterladen","torrent_file":"Aufgabendatei","magnetic_link_incorrect":"Das Linkformat ist falsch","delete_fail":"Fehler beim Löschen","pause":"Pause","paused":"Angehalten","stop_torrent":"Stoppen","seed":"Samen","resume":"Wieder aufnehmen","downloading":"wird heruntergeladen","downloaded":"Heruntergeladen","uploading":"Hochladen","auto_uploading":"Automatisches Hochladen","uploaded":"Hochgeladen","pending":"Warten auf andere Aufgaben","verifying":"Verifizieren","waiting_for_verify":"Warten auf Bestätigung","seeding":"Aussaat","completed":"Vollendet","status":"Status","task_name":"Aufgabennname","size":"Größe","progress":"Fortschritt","sort":"Sortieren","ascending":"Aufsteigend","descending":"Absteigend","file_loading":"Datei wird geladen...","loading":"Wird geladen","unknown_status":"Unbekannt","play_while_downloading":"Spielen...","upload_or_play":"Hochladen / Abspielen","play":"Spielen","ask_if_upload_file":"Datei hochladen?","ask_if_upload_or_play":"Datei hochladen oder abspielen?","torrent_error":"Fehler beim Hinzufügen einer Aufgabe:","no_peers":"Versuchen Sie es mehr als {0} Mal erneut und es ist kein Peer verfügbar","torrent_exists":"Aufgabe ist bereits vorhanden.","show_origin_torrent":"Holen Sie sich die ursprüngliche Aufgabendatei oder URL","show_directory":"Öffnen Sie das Verzeichnis dieses Torrents","task_num":"Aufgaben","total_upload_speed":"Upload-Geschwindigkeit","total_download_speed":"Download-Geschwindigkeit","path_missing":"Fehler: Torrent-Pfad konnte nicht gefunden werden","origin_not_found":"Informationen zur Ursprungsaufgabe können nicht gefunden werden.","text_copied":"Die Magnum-URL wird in Ihre Zwischenablage kopiert","copy_magnet_uri":"Magnet kopieren:? URI","copy_download_uri":"Download-URI kopieren","copy_share_uri":"Freigabe-URI kopieren","uri_copied":"URI wurde erfolgreich in Ihre Zwischenablage kopiert","uri_copy_failed":"URI konnte nicht kopiert werden","more":"Mehr...","toggle_list_mode":"Listenmodus umschalten","comment":"Kommentar","operations":"Operationen","open_directory":"Verzeichnis öffnen","no_downloading_task":"Keine Download-Aufgabe","remove_all_downloading_tasks":"Alle Download-Aufgaben entfernen?","remove_all_upload_tasks":"Alle Upload-Aufgaben entfernen?","remove_autoupload_files":"Entfernen Sie automatisch hochgeladene Dateien","remove_all_history":"Gesamten Verlauf entfernen?","remaining":"Übrig","created_time":"Zeit geschaffen","used_time":"Benötigte Zeit","completed_time":"Abgeschlossene Zeit","yesterday":"Gestern","before_yesterday":"{empty}","earlier":"Früher","miss_file":"Einige Dateien fehlen","delete_miss_file_task":"In {0} fehlen Fome-Dateien.","common_peer":"Gemeinsamer Peer","ab_peer":"${displayName} Peer","ab_peer_verified":"Verifizierter ${displayName}-Peer","ab_peer_available":"${displayName} Peer(s) verfügbar","alphabiz_accelerating":"${displayName} beschleunigt","income":"Einkommen","income_info":"Einkommen (heute/gesamt)","total_income_info":"Einkommen: {0}(heute) / {1}(gesamt)","login_to_see_income":"Melden Sie sich an, um die Einkommensstatistik anzuzeigen","credit_cost":"Kreditkosten","downloaded_by_payment":"Von Payments heruntergeladen","file_not_found":"Diese Datei kann nicht lokal gefunden werden","no_task":"Nicht fragen","no_matched_task":"Keine passende Aufgabe","space_not_enough":"Speicherplatz reicht nicht aus","need_more_space":"Benötigt {0} mehr Speicherplatz, aber auf der aktuellen Festplatte sind {1} frei ({2} reserviert). Aufgaben werden angehalten. Das Vorladen der Bibliothek ist deaktiviert. Sie können es unter [Einstellungen – Erweitert] wieder aktivieren.","seeders":"Sämaschinen","last_update":"Letztes Update","connecting":"Verbinden","connected":"In Verbindung gebracht","request_timed_out":"Zeitüberschreitung der Anforderung","connection_failed":"Verbindung fehlgeschlagen","invalid_download_url":"Ungültige Download-URL","download_link":"Download-Link","empty_files":"Keine Dateien im Verzeichnis","duplicate_task":"Doppelte Aufgabe","duplicate_tracker":"Doppelter Tracker","this_task_not_ready":"Diese Aufgabe ist noch nicht fertig. Wenn Sie diese Aufgabe anhalten, wird sie direkt entfernt.","some_task_not_ready":"Einige Aufgaben sind noch nicht fertig. Wenn Sie diese Aufgaben pausieren, werden sie direkt entfernt.","failed_to_delete_files":"Dateien konnten nicht gelöscht werden","failed_to_delete_files_desc":"Einige Dateien der Aufgabe konnten nicht gelöscht werden. Möglicherweise müssen Sie sie manuell löschen","unknown_error":"Unbekannter Fehler: {0}","more_files_are_not_shown":"({0} weitere Dateien werden aus Leistungsgründen nicht angezeigt)","no_available_file":"Keine verfügbare Datei. Bitte warten Sie, bis die Aufgabe fertig ist.","service_worker_error":"ServiceWorker kann nicht zum Spielen geladen werden. Möglicherweise unterstützt Ihr Browser diese Funktion nicht oder der ServiceWorker ist nicht aktiviert. Möglicherweise müssen Sie diese Seite neu laden und es erneut versuchen.","add_task_first":"Sie müssen zuerst eine Aufgabe hinzufügen.","player_task_time":"Der Spieler braucht zu viele Sekunden, um sich auf das Spiel vorzubereiten. Möglicherweise stimmt etwas mit der Aufgabe nicht.","web_mode_hint":"Der Webmodus von ${displayName} unterstützt nur WebRTC-Peers. Für ein optimales Erlebnis laden Sie bitte die Desktop-App ${displayName} herunter.","web_mode_task_hint":"Klicken Sie auf die Schaltflächen unten, um eine Aufgabe hinzuzufügen. Sie können jeweils nur eine Aufgabe hinzufügen.","save_to_local":"Lokal speichern","save_as_zip":"Als ZIP speichern","creating_save_file":"Speicherdatei wird erstellt...","upload_as_one_directory":"Als ein Verzeichnis hochladen","upload_as_single_files":"Als einzelne Dateien hochladen","web_mode_upload_single":"Sie können im Webmodus nur eine einzelne Datei hochladen","download_success":"Erfolgreich herunterladen","download_fail":"Herunterladen fehlgeschlagen","wait_for_downloaded_to_share":"Bitte warten Sie, bis die Aufgabe heruntergeladen wurde, bevor Sie sie freigeben.","download_with_cellular":"Laden Sie Aufgaben per Mobilfunk herunter","download_with_cellular_desc":"Sie verwenden ein Mobilfunknetz. Für Download-Aufgaben über das Mobilfunknetz können bei Ihrem Mobilfunkanbieter zusätzliche Gebühren anfallen.","download_with_cellular_confirm":"Immer noch mit dem Mobilfunk herunterladen","language":"Sprache","appearance":"Aussehen","darkModeSystem":"System","darkModeLight":"Licht","darkModeDark":"Dunkel","basic_setting":"Basic","hideMenu":"App-Menü ausblenden (nur Windows und Linux)","autoHide":"Fenster automatisch ausblenden","autoStart":"Beim Login öffnen","restore":"Behalten Sie Größe und Position des Fensters beim Verlassen bei","autoStartUnfinished":"Alle nicht erledigten Aufgaben automatisch fortsetzen","default_download_path":"Standardpfad","download_directory":"Verzeichnis herunterladen","upload_directory":"Verzeichnis hochladen","enable_auto_upload":"Aktivieren Sie den automatischen Upload","unlimit_upload_amount":"Unbegrenzte Upload-Menge","unlimit_upload_warning":"Erlauben Sie das Hochladen einer großen Anzahl von Dateien. Dies kann zu Leistungsproblemen führen","start":"Start-up","transport_setting":"Übertragung","upload_limit":"Upload-Limit","download_limit":"Download-Limit","payed_user_share_rate":"Bezahlter Benutzeranteilspreis","unlimited":"Unbegrenzt","limit_input_error":"Die Grenzwertzahl sollte positiv sein","BT_setting":"Aufgabeneinstellungen","saveLinkSeed":"Link als Aufgabendatei speichern","autoDownload":"Link und Inhalt automatisch herunterladen","continuousSeeding":"Setzen Sie die Aussaat fort, bis Sie sie manuell stoppen","seedSharingRate":"Saatverhältnis","seedTime":"Saatzeit (Minuten)","task_manage":"Aufgabenmanagement","maximumDownloadNum":"Maximal aktive Aufgaben","maximumConnectionsNum":"Maximale Verbindung pro Server","range_error":"Der Bereich sollte zwischen {0} und {1} liegen","random":"zufällig","breakpointContinuation":"Weitermachen","automaticSkip":"Download nach dem Hinzufügen der Aufgabe automatisch anzeigen","afterNotification":"Benachrichtigung nach Abschluss des Downloads","deleteConfirm":"Vor dem Löschen der Aufgabe ist keine Bestätigung erforderlich","submit":"Speichern und anwenden","discard":"Verwerfen","reset":"Zurücksetzen","reset_all_settings":"Alle Einstellungen zurücksetzen?","preferences_resetted":"Einstellungen zurückgesetzt","traditional_chinese":"traditionelles Chinesisch","japanese":"japanisch","english":"Englisch","chinese":"Vereinfachtes Chinesisch","advancedSettings":"Fortschrittlich","autoUpdate":"Auto-Update","autoCheckUpdate":"Automatisch nach Updates suchen","proxy":"Stellvertreter","useProxyService":"Proxy aktivieren","trackerService":"Tracker-Server","recommendUse":"Empfohlen","autoUpdateTrackerServiceList":"Aktualisieren Sie die Tracker-Liste jeden Tag automatisch","manualUpdateTracker":"Manuelles Update","manualUpdateSuccess":"Tracker-Server erfolgreich aktualisieren","manualUpdateFail":"Aktualisierung fehlgeschlagen von:","listenPort":"Hören Sie die Häfen","BTlistenPort":"Datenübertragungsport","DHTlistenPort":"Verteilter Hash-Port","protocols":"Kompatible Protokolle","setDefaultClientForFollowingProtocols":"Als Standard-Client für die folgenden Protokolle festlegen","magnetUrl":"Magnet","video_file":"Videodatei","audio_file":"Audiodatei","security":"Sicherheit","impersonateUserAgent":"Schein-Benutzeragent","RPCauthorizationkey":"RPC-Geheimnis","viewDocument":"Sehen Sie sich das RPC Secret-Handbuch an","developer":"Entwickler","applicationLogPath":"App-Protokollpfad","downloadSessionPath":"Sitzungspfad herunterladen","resetDownloadSessionRecord":"Download-Sitzung zurücksetzen","restoreInitialSettings":"Werkseinstellungen zurückgesetzt","preferences_set_successfully":"Einstellungen erfolgreich gespeichert!","preferences_set_fail":"Einstellungen speichern schlägt fehl!","change_not_save":"Änderungen werden nicht gespeichert","discard_all_changes":"Alle Änderungen verwerfen und gehen?","stay_in_page":"Bleiben Sie auf der Seite","disk_usage":"Festplattennutzung","pause_if_less_space":"Pausieren und benachrichtigen, wenn der Speicherplatz weniger als (MB) beträgt","default_video_player":"Standard-Videoplayer","video_cache_time":"Stream-Play-Cache","minutes":"Protokoll","system_default":"Systemfehler","media_player":"Media Player","library_film_rate":"Verfügbarer Filmpreis","library_show_explore":"Seite [Erkunden] anzeigen","library_setting":"Bibliothekseinstellung","library_sync_setting":"Einstellung für die Synchronisierung der Bibliothek","keychain_sync_status":"Synchronisierungsstatus des Schlüsselbunds","sync_with_aws":"Schlüsselbund mit Amazon Web Services synchronisieren","backup_to_local":"Backup in lokaler Datei","enable_sync_with_aws":"Aktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws":"Deaktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws_desc":"Dadurch wird der gespeicherte Schlüssel auf dem Server entfernt. Bitte stellen Sie sicher, dass Sie Ihren Schlüssel bereits exportiert haben.","input_independent_password":"Geben Sie ein unabhängiges Passwort ein","change_independent_password":"Unabhängiges Passwort ändern","password_error":"Passwort-Fehler","password_invalid":"Passwort ungültig","key_existed":"Schlüssel vorhanden","key_not_found":"Schlüssel nicht gefunden","library_recommend":"Bibliothek empfehlen","show_all_channels":"Alle Kanäle auf der Empfehlungsseite der Bibliothek anzeigen","not_logged_in":"Nicht eingeloggt","login_to_continue":"Melden Sie sich an, um fortzufahren","mnemonic_code":"Mnemonischer Code","wordlist":"Wortliste","restore_code":"Aus Code wiederherstellen","generate_code":"Code generieren","export_mnemonic_code":"Mnemonischen Code exportieren","import_mnemonic_code":"Mnemonischen Code importieren","print":"Drucken","save_as_txt":"Als TXT speichern","save_as_pdf":"Als PDF speichern","from_file":"Aus Datei","not_valid_mnemonic_code":"Dies ist kein gültiger mnemonischer Code","cannot_parse_code_as_key":"Dieser mnemonische Code kann nicht als Bibliotheksschlüssel analysiert werden","import_key_hint":"Möchten Sie diesen Schlüssel wirklich importieren? Dadurch wird Ihr alter Schlüssel in der Bibliothek wiederhergestellt.","import_key_confirm":"Ja, importieren Sie es.","library_preload":"Laden Sie Aufgaben aus der Bibliothek vorab","show_preload":"Vorladeaufgaben anzeigen","set_download":"Download-Verzeichnis festlegen","set_download_desc":"Für die macOS App Store-Version befindet sich das Standard-Download-Verzeichnis in der Sandbox der App und wird nach der Deinstallation der App gelöscht. Wenn Sie Ihre Downloaddateien behalten möchten, müssen Sie manuell ein anderes Downloadverzeichnis auswählen.","home":"Heim","home_caption":"Download/Upload und Mediendateien","library":"Bibliothek","library_caption":"Entdecken Sie Medienressourcen","player":"Spieler","player_caption":"Media Player","credits":"Credits","credits_caption":"Überprüfen Sie den Kontostand","account":"Konto","account_caption":"Anmelden/Registrieren/Verwaltung","settings":"Einstellungen","settings_caption":"Einstellungen für App, Player, Konto","development":"Entwicklung","development_caption":"Entwicklermodus für den internen Gebrauch","basic":"Basic","basic_caption":"Grundeinstellungen","advanced":"Fortschrittlich","advanced_caption":"Erweiterte Einstellungen","blockchain":"Geldbörse","blockchain_caption":"${displayName} Dezentrale Geldbörse","internal_notice":"Interne Freigabemitteilung","release_notes":"Versionshinweise","terms_and_conditions":"Geschäftsbedingungen","license_and_listen_notices":"Lizenz- und Listen-Open-Source-Hinweise","close":"Schließen","success":"Erfolg","fail":"Scheitern","account_email_invalid_address":"Ungültige E-Mail-Adresse","account_email_invalid_domain":"Ungültige E-Mail-Domäne","account_email_unknown_status":"Unbekannter E-Mail-Zustellungsstatus","account_email_unavailable_address":"Nicht verfügbare E-Mail-Adresse","account_email_suppressed_address":"Unterdrückte E-Mail-Adresse","account_loading":"Wird geladen...","account_is_required":"ist erforderlich","account_sign_in_your_account":"anmelden","account_username":"Nutzername","account_username_email_phone":"Telefonnummer oder E-Mail","account_password":"Passwort","account_new_password":"Neues Kennwort","account_re_enter_password":"Kennwort erneut eingeben","account_password_not_equal":"Zwei Passwörter sind nicht gleich","account_new_password_same":"Das Passwort ist dasselbe wie das Originalpasswort","account_forgot_your_password":"Haben Sie Ihr Passwort vergessen?","account_reset_password":"Passwort zurücksetzen","account_sign_in":"anmelden","account_signed_in":"Angemeldet","account_sign_up":"Melden Sie sich an","account_find_your_account":"Finde deinen Account","account_enter_your_username":"Geben Sie Ihre Telefonnummer oder E-Mail ein","account_search":"Suchen","account_email_sent_tip":"Eine E-Mail mit einem Bestätigungscode wurde an Ihre E-Mail-Adresse gesendet:","account_phone_sent_tip":"Eine SMS mit einem Bestätigungscode wurde an Ihr Telefon gesendet:","account_email_phone_sent_tip":"E-Mail und SMS mit Bestätigungscode wurden an Ihre E-Mail-Adresse bzw. Ihr Telefon gesendet:","account_software_token_tip":"MFA ist für Ihr Konto aktiviert. Um die Anmeldung abzuschließen, schalten Sie bitte Ihr Gerät ein oder zeigen Sie es an und geben Sie den TOTP ein","account_reset_your_password":"Setze dein Passwort zurück","account_verification_code":"Bestätigungscode","account_resend_code":"Code erneut senden","account_code_has_been_resent":"Der Bestätigungscode wurde erneut gesendet","account_password_has_been_reset":"Das Passwort wurde zurückgesetzt","account_submit":"Einreichen","account_sign_up_your_account":"Registrieren Sie Ihr Konto","account_fill_required_fields":"Füllen Sie unten die erforderlichen Felder aus.","account_fill_optional_fields":"Füllen Sie die optionalen Felder unten aus.","account_email":"Email","account_invitation":"Einladung","account_invitation_code":"Einladungscode","account_i_accept":"Ich akzeptiere","account_license_terms":"die Lizenz und die Bedingungen","account_next":"Nächste","account_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren.","account_verify_fill_optional_fields":"Überprüfen Sie die optionalen Felder und füllen Sie sie aus.","account_nickname":"Spitzname","account_gender":"Geschlecht","account_male":"Männlich","account_female":"Weiblich","account_not_say":"Nicht sagen","account_birthday":"Geburtstag","account_phone_number":"Telefonnummer","account_locale":"Lokal","account_tip_verified":"Verifiziert, Anmelden...","account_verified":"verifiziert","account_unverified":"unbestätigt","account_signed_up":"Angemeldet","account_verify_your_identity":"Bestätigen Sie Ihre Identität","account_finish":"Beenden","account_signed_out":"Abgemeldet","account_change_password":"Kennwort ändern","account_change_email":"Ändern Sie die E-Mail","account_change_phone_number":"Telefonnummer ändern","account_sign_out":"Abmelden","account_current_password":"Aktuelles Passwort","account_re_enter_new_password":"neues Passwort erneut eingeben","account_personal_information":"Information","account_edit":"bearbeiten","account_reset":"zurücksetzen","account_greeting":"Hallo,","account_cancel":"Stornieren","account_change":"ändern","account_not_set":"nicht eingestellt","account_setting":"Einstellung","account_copy_code":"Kopieren Sie den Code","account_account_setting":"Konto","account_task_page":"Kreditaufgabe","account_setting_caption":"Passwort ändern / Informationen bearbeiten","account_security":"Sicherheit","account_want_to_join":"Möchtest du mitmachen?","account_sign_in_now":"anmelden","account_changed":"Geändert","account_clipboard_with_invitation_code":"Einladungscode kopiert","account_clipboard_with_code":"Der Code kopiert","account_invitation_code_dialog_tip":"Sie senden Ihrem Freund eine E-Mail oder SMS mit einem Einladungscode:","account_available":"verfügbar","account_invited":"eingeladen","account_used":"gebraucht","account_invitation_code_sent":"Der Einladungscode wurde gesendet","account_invitation_channel_required":"Füllen Sie mindestens einen Einladungskanal aus","account_no_verification_code":"Sie können den Bestätigungscode nicht erhalten?","account_no_phone_number":"Keine Telefonnummer?","account_sign_up_by_email":"Melden Sie sich per E-Mail an","account_no_email":"Keine Email?","account_sign_up_by_phone_number":"Melden Sie sich per Telefonnummer an","account_no_totp":"Nicht TOTP?","account_tip_no_totp":"Wenn kein TOTP vorhanden ist, richten Sie bitte zuerst TOTP ein","account_setup_totp":"TOTP einrichten","account_contact_information":"Kontaktinformationen","account_delete_account":"Konto löschen","account_deleted":"Gelöscht","account_can_not_mfa":"MFA in Schwierigkeiten?","account_set_mfa_type":"MFA konfigurieren","account_disable_mfa":"Deaktivieren Sie MFA","account_disabled_mfa":"Deaktivierte MFA","account_sms_mfa":"SMS-MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Nicht empfohlen","account_oauth_sign_in_with":"Melden Sie sich mit {provider} an","account_sign_in_failed":"Anmeldung fehlgeschlagen","account_tip_oath_sign_up":"Die E-Mail-Adresse, die dem aktuellen {provider}-Konto entspricht: {email} hat noch kein Konto erstellt","account_tip_confirm_delete_account":"Geben Sie das Passwort des aktuellen Kontos ein, um zu bestätigen, dass Sie das aktuelle Konto löschen möchten. (Gelöschte Konten können nicht wiederhergestellt werden.)","account_tip_config_mfa":"Als sekundäre Authentifizierung können Sie SMS oder ein zeitbasiertes Einmalpasswort (TOTP) verwenden","account_error_can_not_enable_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um MFA zu aktivieren","account_tip_can_not_enable_sms_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um SMS MFA zu aktivieren","account_tip_can_not_enable_totp_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um TOTP MFA zu aktivieren","account_tip_setup_totp":"Verwenden Sie Apps wie Authenticator, um den untenstehenden QR-Code zu scannen, oder kopieren Sie den Code manuell, um ein Sicherheitstoken hinzuzufügen","account_tip_verify_totp":"Überprüfen Sie Ihr TOTP","account_link_your_social_account":"Verknüpfen Sie Ihr soziales Konto","account_unlink_your_social_account":"Soziales Konto entbinden","account_tip_confirm_link":"Sind Sie sicher, dass Sie das Girokonto mit Ihrem {provider}-Konto verknüpfen möchten?","account_tip_confirm_unlink":"Sind Sie sicher, Ihr gebundenes {provider}-Konto zu kündigen?","account_tip_linking":"Bindung...","account_tip_unlinking":"Entbindung...","account_linked":"Gebunden","account_unlinked":"Ungebunden","account_error_can_not_link_to_the_linked_account":"Das aktuelle soziale Konto ist an ein anderes Konto gebunden","account_error_can_not_link_to_the_mismatched_email":"Das aktuelle Konto und die E-Mail-Adresse des sozialen Kontos stimmen nicht überein","account_error_can_not_link_before_email_verified":"Das soziale Konto kann nicht verknüpft werden, da das aktuelle Konto nicht an eine verifizierte E-Mail-Adresse gebunden ist","account_tip_confirm_verify_email_phone":"Soll ein Bestätigungscode an die E-Mail-Adresse und Telefonnummer des aktuellen Kontos gesendet werden, um Ihre Identität zu überprüfen?","account_tip_confirm_verify_phone":"Soll ein Bestätigungscode an die aktuelle Telefonnummer gesendet werden, um Ihre Identität zu überprüfen?","account_error_1_message_60_seconds":"Es kann nur alle 60 Sekunden eine SMS oder E-Mail gesendet werden. Warten Sie weitere {delta} Sekunden","account_error_10_messages_per_day":"Jedes Mobiltelefon oder jede E-Mail kann innerhalb von 24 Stunden nur 10 Nachrichten senden","account_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","Network Error":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","account_error_user_not_exist":"Benutzer existiert nicht","account_error_incorrect_username_or_password":"Falscher Benutzername oder Passwort","account_error_incorrect_original_password":"Falsches Originalpasswort","account_error_incorrect_password":"Falsches Passwort","account_error_username_not_found":"Benutzername nicht gefunden","account_error_can_not_reset_for_no_verified":"Das Passwort für das nicht bestätigte Konto kann nicht zurückgesetzt werden","account_error_invalid_verification_code":"Falscher Bestätigungscode, bitte versuchen Sie es erneut","account_error_expired_verification_code":"Der Bestätigungscode ist abgelaufen. Bitte versuchen Sie es erneut","account_error_password_not_long_enough":"Das Passwort ist nicht lang genug","account_error_attempt_limit_exceeded":"Versuchslimit überschritten. Bitte versuchen Sie es später noch einmal.","account_error_password_attempts_exceeded":"Anzahl der Passwortversuche überschritten.","account_error_invalid_phone_number_format":"Ungültiges Telefonnummernformat","account_error_no_cell_phone_prefix":"Bitte wählen Sie die Vorwahl für die Telefonnummer aus","account_error_username_already_exists":"Der Benutzername existiert bereits","account_error_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren","account_error_inactive_code":"Der Einladungscode ist kein aktivierter Code","account_error_non_existent_code":"Der Einladungscode ist nicht vorhanden","account_error_unexpected":"Unerwarteter Fehler","account_error_can_not_change_email_before_phone_bound":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Telefonnummer gebunden ist","account_error_can_not_change_email_before_unbound_social_account":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Bindung des sozialen Kontos aufgehoben wurde","account_error_can_not_change_phone_before_email_bound":"Die Telefonnummer kann nicht geändert werden, bevor die E-Mail gebunden ist","account_error_can_not_change_email_phone_with_mfa_enabled":"E-Mail-Adresse oder Mobiltelefonnummer können vor der Deaktivierung von MFA nicht geändert werden","account_error_not_supported_yet":"Derzeit nicht unterstützt","account_error_same_email":"Die neue E-Mail-Adresse darf nicht mit der ursprünglichen E-Mail-Adresse identisch sein","account_error_same_phone":"Die neue Telefonnummer darf nicht mit der ursprünglichen Telefonnummer identisch sein","account_error_email_not_exists":"Diese E-Mail Adresse existiert nicht","account_error_email_already_exists":"Ein Konto mit der angegebenen E-Mail-Adresse ist bereits vorhanden.","account_error_phone_already_exists":"Es existiert bereits ein Konto mit der angegebenen Telefonnummer.","account_error_mfa_token_mismatch":"Nichtübereinstimmung des Software-Token-Codes","account_error_recaptcha_not_loaded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_recaptcha_validation_failed":"Die ReCAPTCHA-Validierung ist fehlgeschlagen. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_sign_in_in_progress":"Ausstehender Anmeldeversuch, bereits im Gange","account_field_range":"Beschränken Sie die Eingabe auf {0}-{1} Zeichen","account_field_only_alphanumeric":"Unterstützt nur alphanumerische Zeichen","account_field_only_alphanumeric_and_symbol":"Unterstützt nur alphanumerische Zeichen und Symbole","account_field_only_chinese_alphanumeric_space_underline":"Unterstützt nur alphanumerische Zeichen, Leerzeichen und Unterstriche","account_field_prefix_without_number_space":"Das erste Zeichen darf weder eine Zahl noch ein Leerzeichen sein","account_field_suffix_without_space":"Darf nicht mit einem Leerzeichen enden","account_field_without_repeat_space":"Es können nicht mehrere Leerzeichen hintereinander verwendet werden","account_field_can_not_only_alphanumeric":"Sie können nicht nur Buchstaben oder Zahlen verwenden","account_field_must_have_number_characters":"Muss aus Zahlenzeichen bestehen","account_field_verification_code":"Der Bestätigungscode muss sechsstellig sein","account_field_invitation_code":"Der Einladungscode muss alphanumerisch sein","account_field_phone_number":"Ungültiges Telefonnummernformat","account_invalid_email_format":"ungültiges Email-Format","account_sign_out_confirm":"Möchten Sie sich wirklich abmelden? Dadurch werden alle Aufgaben gestoppt.","account_sign_out_anyway":"Melde dich trotzdem ab","account_signing_out":"Abmelden...","account_request_save_settings":"Einstellungen werden nicht gespeichert. Sie müssen die Änderungen speichern, bevor Sie sich abmelden.","pay":"Zahlen","pay_with_credit":"Bezahlen Sie für die Download-Beschleunigung. Benötigt etwa 0$$$ Guthaben","pay_with_credit_payed":"Beschleunigen. Benötigt noch ca. {0} Guthaben","create_payment":"Zahlung erstellen","pay_target":"Ziel","pay_for_torrent":"Zahlen Sie für {0}","your_subid":"Ihre Sub-ID","your_credits":"Ihre Credits","pay_point_for_data":"Zahlen Sie {0} Punkte für {1} Daten","auto_renew":"Aktivieren Sie die automatische Verlängerung","transaction_details":"Transaktionsdetails","transaction_id":"Ausweis","transaction_payer":"Zahler","transaction_payee":"Zahlungsempfänger","transaction_category":"Kategorie","transaction_changed_amount":"Geänderter Betrag","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Erstellungszeitpunkt","receipt_code":"Empfangscode","transfer_amount":"Überweisungsbetrag","code_the_receipt_code":"Kopieren Sie den untenstehenden Belegcode an den Zahler","fill_the_receipt_code":"Überweisung durch Eingabe des vom Zahlungsempfänger bereitgestellten Zahlungscodes","expense":"Kosten","copied":"Kopiert","transfer":"Überweisen","receive":"Erhalten","copy":"Kopieren","withdraw_fund":"Geld abheben","category_paydata_payer":"Datenkosten","category_paydata_payee":"Dateneinkommen","category_transfer":"Überweisen","category_bonus":"Bonus","category_recharge":"Aufladen","status_pending":"ausstehend","status_completed":"vollendet","status_finish":"beenden","status_failed":"fehlgeschlagen","tip_invalid_receiver":"Ungültiger Empfängercode","tip_invalid_amount":"Der Kreditbetrag sollte eine Gleitkommazahl im Bereich von 0 bis 1.000 sein (die Mindestgenauigkeit beträgt 0,001).","credit_get_more":"Holen Sie sich mehr Credits","credit_no_data":"Keine Daten verfügbar","credit_loading":"Wird geladen...","credit_not_enough_amount":"Nicht genügend Guthaben","credit_amount_not_enough":"Nicht genügend Guthaben","credit_payee_not_exist":"Zahlungsempfänger existiert nicht","credit_invalid_amount":"Ungültiger Kreditbetrag","credit_can_not_transfer_to_yourself":"Kann nicht auf sich selbst übertragen werden","credit_latest":"Neueste","credit_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","add_subtitles":"Untertitel hinzufügen","open_file":"Datei öffnen...","advanced_options":"Erweiterte Optionen","title":"Titel","location":"Standort","subtitle_file":"Untertiteldatei","unsupported_subtitle_type":"Der Dateityp {0} ist kein unterstützter Untertiteltyp","not_default_player":"Der Standard-Videoplayer ist nicht eingestellt","this_is_an_audio_file":"Dies ist eine Audiodatei","the_added_subtitle_already_exists":"Der hinzugefügte Untertitel existiert bereits","stop_stream_player":"Das Streaming-Medium wurde beendet, weil die Aufgabe angehalten oder gelöscht wurde","stop_player":"Der Player wurde beendet, da die Datei gelöscht wurde","playing_timeout_hint":"Wartezeiten sind vorbei. Bitte überprüfen Sie die Aufgabe","autoplay_hint":"Autoplay wird möglicherweise von Ihrem Browser blockiert. Wenn der Player nicht spielt, klicken Sie auf den Bildschirm, um fortzufahren","remove_playing_confirm":"{0} wird noch abgespielt. Wenn Sie es entfernen, wird der Player gestoppt. Möchten Sie es wirklich entfernen?","unsupported_in_browser":"Wird im Browsermodus noch nicht unterstützt","client":"Klient","warning":"Warnung","enable":"Aktivieren","disable":"Deaktivieren","auto":"Auto","encrypt_connection":"Verbindung verschlüsseln","encrypted_connection":"Verschlüsselte Verbindung","non_encrypted_connection":"Unverschlüsselte Verbindung","connected_wires_not_disconnect":"Angeschlossene Leitungen werden nicht getrennt","audio":"Audio-","video":"Video","image":"Bild","subtitle":"Untertitel","zip":"Reißverschluss","text":"Text","unknown":"Unbekannt","add":"Hinzufügen","undo":"Rückgängig machen","backup":"Sicherung","not_default_app":"${displayName} ist nicht Ihre Standard-App für Torrent und Medien. Möchten Sie sie als Standard festlegen?","dont_show_again":"Nicht mehr anzeigen","go_to_settings":"Gehe zu den Einstellungen","about_alphabiz":"Ungefähr ${displayName}","last_check_at":"Letzter Check um","update_channel":"Kanal aktualisieren","check_for_update":"Auf Update überprüfen","checking_for_update":"Suche nach Updates...","no_update_available":"Kein Update verfügbar","update_available":"Update verfügbar","update_now":"Jetzt aktualisieren","update_later":"Später aktualisieren","click_to_update":"Klicken Sie zum Herunterladen und Aktualisieren auf die Schaltfläche JETZT AKTUALISIEREN","update_failed":"Update fehlgeschlagen","update_failed_message":"Beim Aktualisieren ist ein Fehler aufgetreten:","check_shasum_failed":"Die Integrität des Installationsprogramms konnte nicht überprüft werden","downloading_update":"Update wird heruntergeladen...","ready_to_update":"Bereit zum Aktualisieren","restart_to_update":"Update wird heruntergeladen. ${displayName} wird für einen Moment zum Aktualisieren beendet.","already_latest":"Die aktuelle Version ({0}) ist bereits die neueste","update_timeout":"Aktualisierungszeitüberschreitung","no_available_release":"Keine verfügbare Version","no_available_installer":"Kein Installationsprogramm verfügbar","feedback":"Rückmeldung","select_a_type":"Wählen Sie einen Typ aus","category":"Kategorie","select_a_category":"Wählen Sie eine Kategorie","require_title":"Titel ist erforderlich","describe_your_problem":"Beschreiben Sie Ihr Problem","report_a_bug":"Melde einen technischen Fehler","request_a_new_feature":"Fordern Sie eine neue Funktion an","download_or_upload":"Herunterladen Hochladen","others":"Andere","submit_with_system_info":"Mit Systeminformationen einreichen","submit_feedback":"Geben Sie Feedback ab","tweet_us":"Twittern Sie uns","tweet_too_long":"Der Tweet ist zu lang","delete_characters":"Bitte löschen Sie mindestens {0} Zeichen.","rest_characters":"Sie können {0} weitere Zeichen eingeben.","update_alphabiz":"Aktualisieren Sie ${displayName}","current_version":"Aktuelle Version","cancel_update":"Aktualisierung abbrechen","slow_download_speed":"Download zu langsam","slow_download_speed_caption":"Der Download des Installationsprogramms ist jetzt zu langsam. Bitte überprüfen Sie den Netzwerkstatus","update_canceled":"Update abgebrochen","current_version_release_time":"Veröffentlichungszeitpunkt der aktuellen Version","expired_app":"${displayName} Abgelaufen","version_out_of_date":"Version veraltet","have_to_update":"Die Version von ${displayName} ist veraltet. Einige Protokolle oder APIs sind veraltet. Sie müssen ${displayName} aktualisieren, bevor Sie fortfahren können.","exit_alphabiz":"Beenden Sie ${displayName}","exit_and_update":"Beenden und Update anwenden","new_version_hint":"Neue Version ist verfügbar","no_new_version":"Keine neue Version verfügbar","current_is_latest":"Die aktuelle Version ist bereits die neueste","click_to_check_update":"Klicken Sie auf die Schaltfläche [NACH UPDATE PRÜFEN], um nach Updates zu suchen","download_latest_version_from_website":"Bitte besuchen Sie die offizielle Website, um die neueste Version herunterzuladen","to_the_website":"Zur Website","network_diagnotic":"Netzwerkdiagnose","diagnotic":"Diagnose","click_to_check":"Klicken Sie zum Überprüfen","click_to_check_again":"Klicken Sie, um es noch einmal zu überprüfen","checking":"Überprüfung","online":"Online","offline":"Offline","dns_look_up":"DNS-Suche","error":"Fehler","aws_service":"AWS-Service","network_pings":"Netzwerk-Ping","not_found":"Nicht gefunden","packet_loss":"Paketverlust","official_site":"Offizielle Seite","download_test":"Test herunterladen","test_task":"Testaufgabe {0}","download_failed":"Herunterladen fehlgeschlagen","second_spend":"{0} s ausgeben","open_default_player_failed":"Der Standardplayer konnte nicht geöffnet werden","copied_to_clipboard":"In die Zwischenablage kopiert","go_to":"Gehe zu","region_not_available":"Region nicht verfügbar","region_not_available_message":"Entschuldigung! Ihre Region ist für die Nutzung dieser App nicht verfügbar. Diese App wird nach {0} Sekunden beendet","confirm":"Bestätigen","no_available_result":"Kein verfügbares Ergebnis","invalid_password_format":"ungültiges Kennwort Format","invalid_password_format_same":"Das Passwort ist dasselbe wie das Originalpasswort","error_password":"Passwort-Fehler","keychain_setting":"Schlüsselanhänger","setting_description":"Cloud-Speicher: Speichern Sie wichtige Daten in der Cloud.\\nPasswort ändern: Ändern Sie das Passwort für den Medienbibliotheksschlüssel.\\nMnemonik: eine alternative Methode zum Generieren und Wiederherstellen von Schlüsseln.\\nLokalen Schlüssel importieren: Importieren Sie den lokal gespeicherten Schlüssel in die Medienbibliothek.\\nExportschlüssel: Speichert die aktuellen Medienbibliotheksdaten lokal oder in der Cloud.\\nSicherungsschlüssel zur Cloud: Aktualisieren Sie die aktuellen Medienbibliotheksdaten zur Sicherung in die Cloud.","refresh_status":"Update Status","confirm_import_key":"Importschlüssel bestätigen","confirm_update_cloud_key":"Sie haben bereits einen Schlüssel in der Cloud. Durch die Aktualisierung des Schlüssels wird der ursprüngliche Schlüssel überschrieben. Sind Sie sicher, dass Sie den in der Cloud gespeicherten Schlüssel aktualisieren möchten?","export_key_with_cloud":"Geben Sie das unabhängige Passwort ein, das Sie zum Exportieren des in der Cloud gespeicherten Bibliotheksschlüssels festgelegt haben, und sperren Sie die Schlüsseldatei mit dem Entsperrpasswort","store_cloud_key_prompt_password":"Geben Sie ein unabhängiges Passwort ein, um den Bibliotheksschlüssel in der Cloud zu speichern","update_cloud_key_prompt_password":"Legen Sie ein unabhängiges Passwort fest, um den Bibliotheksschlüssel zu verschlüsseln, und aktualisieren Sie ihn dann in der Cloud","enable_cloud_storage_prompt_password":"Legen Sie ein Passwort für den in der Cloud gespeicherten Schlüssel fest, mit dem Sie den Schlüssel aus der Cloud abrufen können","input_unlock_password":"Entsperrkennwort festlegen","export_local_prompt_password":"Bitte legen Sie ein Entsperrkennwort fest, um Ihre Schlüsseldatei zu verschlüsseln. Wir speichern dieses Passwort nicht für Sie. Wenn Sie also Ihr Passwort verlieren, können Sie Ihren Bibliotheksschlüssel nicht entsperren","require_unlock_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","require_independent_password":"Geben Sie das unabhängige Passwort ein, um den Schlüssel in der Cloud zu speichern","import_local_prompt_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","select_encrypt_mode":"Wählen Sie den Verschlüsselungsmodus","update_cloud_key":"Aktualisieren Sie den in der Cloud gespeicherten Schlüssel","backup_to_cloud":"Sichern Sie den Bibliotheksschlüssel in der Cloud","save_local":"Speichern Sie den Bibliotheksschlüssel als lokal verschlüsselte Datei","create_new_key":"Erstellen Sie einen neuen Bibliotheksschlüssel","creating_lib_key":"Bibliotheksschlüssel wird erstellt...","loading_lib_key":"Bibliotheksschlüssel wird geladen...","failed_to_create_lib_key":"Bibliotheksschlüssel konnte nicht erstellt werden","failed_to_load_lib_key":"Bibliotheksschlüssel konnte nicht geladen werden","import_local_key":"Schlüssel lokal importieren","import_lib_key_from_local":"Importieren Sie einen Bibliotheksschlüssel lokal","import_from_cloud":"Importieren Sie den Bibliotheksschlüssel aus der Cloud","create_or_import_key":"Bibliotheksschlüssel erstellen oder importieren","create_or_import_key_desc":"Der Bibliotheksschlüssel ist ein unabhängiger Schlüssel, der zum Abrufen und Veröffentlichen von Inhalten mit einer dezentralen Datenbank verwendet wird.","store_your_lib_key":"Bewahren Sie Ihren Bibliotheksschlüssel auf","export_cloud_key":"Schlüssel aus der Cloud exportieren","export_current_key":"Aktuellen Schlüssel exportieren","change_password":"Kennwort ändern","enable_cloud_storage":"Cloud-Speicher aktivieren","disable_cloud_storage":"Cloud-Speicher deaktivieren","disable_cloud_storage_desc":"Wenn Sie den Cloud-Speicher deaktivieren, wird der in der Cloud gespeicherte Schlüssel entfernt. Bitte stellen Sie sicher, dass der Schlüssel lokal gespeichert ist","sync_at":"Synchronisieren bei: {time}","cloud_storage_enabled":"Schlüsselbund mit {storage} synchronisieren","cloud_storage_disabled":"Cloud-Speicher deaktiviert","saved_locally":"Lokal gespeichert","export_key":"Schlüsseldatei exportieren","cloud_independent_password":"Cloudunabhängiges Passwort","key_file_unlock_password":"Passwort zum Entsperren der Schlüsseldatei","re_enter_unlock_password":"Geben Sie das Entsperrkennwort erneut ein","independent_password_not_enabled":"Das aktuelle Passwort ist das Passwort des Alphabiz-Kontos (es ist kein unabhängiges Passwort festgelegt)","use_cognito_hash":"Verwenden Sie das Passwort für das Alphabiz-Konto","use_independent_password":"Verwenden Sie ein unabhängiges Passwort","keychain_lib":"Bibliotheksschlüssel","loading_keychain_state":"Schlüsselbund wird geladen...","backing_up":"Sichern...","backup_current_key":"Aktuellen Schlüssel in der Cloud sichern","cloud_lib_key_not_existed":"Der Bibliotheksschlüssel ist in der Cloud nicht vorhanden","open_keychain_file":"Öffnen Sie die Schlüsselbunddatei","confirm_open_abk":"Möchten Sie die ABK-Datei öffnen?","use_the_key":"Benutze den Schlüssel","backup_the_key":"Sichern Sie den Schlüssel zur Cloud","keychain_data_does_not_exist":"Schlüsselbunddaten sind nicht vorhanden","timeout of 0ms exceeded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","XhrError":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","payer credit amount is not enough":"Nicht genügend Guthaben","payee does not exist":"Zahlungsempfänger existiert nicht","block_list_manage":"Sperrliste verwalten","blocked_users":"Blockierte Benutzer","blocked_channels":"Blockierte Kanäle","unblock_user":"Nutzer entblockieren","unblock_channel":"Kanal entsperren","no_blocked_user":"Kein blockierter Benutzer","no_blocked_channel":"Kein blockierter Kanal","field_required":"{0} ist erforderlich","setting":"Einstellung","unknown_media":"Unbekannte Medien","settings_button_visible":"Schaltfläche sichtbar","settings_setting":"Einstellung","settings_playback_rate":"Wiedergabegeschwindigkeit","settings_subtitle":"Untertitel","settings_pip":"Pip","settings_fullscreen":"Ganzer Bildschirm","settings_subtitle_options":"Untertiteloptionen","settings_normal":"Normal","settings_italic":"Kursiv","settings_lighter":"Feuerzeug","settings_bolder":"Mutiger","settings_small":"Klein","settings_large":"Groß","about":"Um","services":"Dienstleistungen","hide":"Verstecken","hide_others":"Andere verstecken","show_all":"Zeige alles","quit":"Aufhören","edit":"Bearbeiten","redo":"Wiederholen","cut":"Schneiden","paste":"Paste","select_all":"Wählen Sie Alle","view":"Sicht","reload":"Neu laden","toggle_full_screen":"Vollbild umschalten","toggle_developer_tools":"Entwicklertools umschalten","window":"Fenster","minimize":"Minimieren","bring_all_to_front":"Alles nach vorne bringen","help":"Helfen","github_repo":"Github Repo","issues":"Probleme","learn_more":"Erfahren Sie mehr","learn_spelling":"Lernen Sie Rechtschreibung","lookup_selection":"Suchen Sie nach „{selection}“","search_with_google":"Suchen Sie mit Google","save_as":"Speichern als","save_image":"Bild speichern","save_image_as":"Bild speichern als ...","copy_link":"Link kopieren","save_link_as":"Verknüpfung speichern unter ...","copy_image":"Kopiere das Bild","copy_image_as":"Bild kopieren als ...","copy_image_address":"Bildadresse kopieren","download_complete":"Download abgeschlossen","download_complete_message":"{0} wird heruntergeladen","is_running":"{0} läuft","open":"Öffnen Sie {0}","launch_problem":"Startproblem","ask_clear_data":"Anscheinend haben Sie versucht, {0} zu starten, sind aber mehrmals fehlgeschlagen.\\nMöchten Sie alle App-Daten löschen und später versuchen, sie zu starten?","launch_directly":"Direkt starten","clear_all_data":"Alle Daten löschen","ask_clear_confirm":"Dadurch werden alle Konfigurationen, Protokolle und Benutzerdaten entfernt!\\nDanach müssen Sie {0} möglicherweise erneut starten.\\nMöchten Sie die Daten wirklich löschen?","confirm_launch":"Nein, direkt starten","confirm_clear":"Ja, alle Daten löschen"}')},e75b:function(e,t,a){"use strict";a("7a76"),a("de6c");var n=a("67cf"),o=a("e74d");class i{constructor(e){this.apiName=e}async __call__(e,t,a){const o=await n["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(o.stack){const e=new Error(o.message);throw e.name=o.name,e.stack=o.stack,e}return o}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await o["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}}a("dc69"),a("0c26"),a("a1c1"),a("f18a");var r=a("3334"),s=a("0cdb"),l=a("586d");const c={};class d{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return c[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{c[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),o=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let i;o(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(i||(i={}),i[e]=n)}));const r=n["a"].graphql({query:a,variables:i});return r.name=e,r}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!c[e])throw new Error("operation not found");return c[e]}static async execute(e,t){const a=this.__getOperation(e),o=await n["a"].graphql({query:a,variables:t});if(o.errors)throw new Error(o.errors[0].message);return o.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(c).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class u extends d{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>console.tag.purple("GQL","websocket",...e),{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const _=new Error("The number of retries exceeds the maximum"),p=e=>new Promise((t=>setTimeout(t,e))),m=async e=>{if(c=!0,i>0&&d>i)return console.warn(_),void o().log("failed to reconnect",_);const t=Math.min(r,1e3*Math.pow(2,d));o().log("connect close: ",`waiting for reconnect (${t}ms)`),await p(t),c?(d+=1,o().log(`Attempt to reconnect (${d})`),await e(),d=0,o().log("reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},h=async()=>{const a=e=>{e.some((e=>["Connection closed","Timeout disconnect"].includes(e.message)))?o(["GQL","Websocket"],"Connect Error :171"):o(["GQL","Websocket"],"Connect Error :168",e),m(h)};try{d>=0&&s&&await s();const n=u.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await m(h)}};await h()}}class _{static createSyncDataSubscriber(e,t,a,n=console.error){return new _(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await u.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class p{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=u.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=_.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}u.appendOperations(r),u.appendOperations(s),u.appendOperations(l);const m=new p,h=new p;var g={AwsApiGraphQL:u,createSyncDataSubscriber:_.createSyncDataSubscriber.bind(_),enableUserListener:async e=>await m.enable(e),disableUserListener:()=>m.disable(),addUserListener:(e,t,a)=>m.addListener(e,t,a),removeUserListener:(e,t)=>m.removeListener(e,t),enablePublicListener:async()=>await h.enable("*"),disablePublicListener:()=>h.disable(),addPublicListener:(e,t,a)=>h.addListener(e,t,a),removePublicListener:(e,t)=>h.removeListener(e,t)};t["a"]={Rest:i,GQL:g}},e7ec:function(e,t,a){"use strict";a.r(t);var n={};a.r(n),a.d(n,"createParams",(function(){return fh})),a.d(n,"eventHandler",(function(){return bh}));var o={};a.r(o),a.d(o,"createParams",(function(){return vh})),a.d(o,"eventHandler",(function(){return wh}));var i={};a.r(i),a.d(i,"SubscribeGithubRepo",(function(){return Fg}));a("a1c1"),a("04a1"),a("b576"),a("6b06"),a("0ecc"),a("9910"),a("19f3");var r=a("ff9b"),s=a("2c24"),l=a("b14a"),c=a("1dbb"),d=a("f680"),u=a("8750"),_=a("20c1");r["a"].use(c["a"],{config:{screen:{bodyClasses:!0},notify:{},dark:"auto"},lang:s["a"],iconSet:l["a"],plugins:{Notify:d["a"],Dialog:u["a"],Loading:_["a"]}});var p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"relative-position",attrs:{id:"q-app"}},[a("GlobalRecommend"),a("application-bar"),a("q-scroll-area",{staticClass:"main-area"},[a("router-view"),a("AboutDialog"),a("TaskDialog")],1)],1)},m=[],h=(a("de6c"),a("dc89"),a("2425"),a("1af1"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.dialogVisible,callback:function(t){e.dialogVisible=t},expression:"dialogVisible"}},[a("q-card",{staticStyle:{width:"480px"},attrs:{flat:""}},[e.screen$xs?[a("q-card-section",{staticClass:"q-py-sm flex items-center"},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("about_alphabiz")))]),a("q-space"),a("q-btn",{attrs:{flat:"",icon:"close",round:""},on:{click:e.close}})],1),a("q-separator")]:e._e(),a("q-card-section",{staticClass:"q-px-lg q-pt-lg q-pb-md column justify-center items-center"},[a("q-img",{staticClass:"alphabiz-logo q-mb-sm q-mt-md",attrs:{src:e.primaryIcon,width:"72px",height:"72px"},on:{click:e.clickIcon}}),a("div",{staticClass:"text-h5 text-weight-bold q-py-sm",staticStyle:{height:"100%","line-height":"100%"}},[e._v("\n "+e._s(e.displayName)+"\n ")])],1),a("q-card-section",{staticClass:"about-content q-pt-none text-center"},[a("div",[e.isAlphabizExperimental?a("a",{attrs:{target:"_blank"},on:{click:e.showInternalNotice}},[e._v(e._s(this.$t("internal_notice")))]):e._e()]),a("div",[e._v("v"+e._s(e.appVersion)+" ("),a("a",{attrs:{target:"_blank"},on:{click:e.browserRelease}},[e._v(e._s(this.$t("release_notes")))]),e._v(")")]),a("div",[a("a",{attrs:{target:"_blank"},on:{click:e.showLicenseTermsNotice}},[e._v(e._s(e.$t("account_license_terms")))])])]),a("q-card-section",{staticClass:"q-pt-none flex justify-center items-center"},[a("q-btn",{staticClass:"q-ma-xs q-px-sm",staticStyle:{"min-width":"108px"},attrs:{"no-caps":"","no-wrap":"",dense:"",size:"0.8rem",unelevated:"",color:"general","text-color":"general",label:e.$t("submit_feedback")},on:{click:function(){return e.toggleFeedback(!0)}}}),e.isElectron||e.isCapacitor?[a("q-btn",{staticClass:"q-ma-xs q-px-sm",staticStyle:{"min-width":"108px"},attrs:{"no-caps":"","no-wrap":"",dense:"",size:"0.8rem",unelevated:"",color:"general","text-color":"general",label:e.$t("network_diagnotic")},on:{click:function(){return e.toggleNetworkDiagnotic(!0)}}})]:e._e()],2),e.screen$xs?e._e():[a("q-separator"),a("q-card-section",{staticClass:"flex items-center"},[a("q-space"),a("q-btn",{staticStyle:{width:"108px"},attrs:{color:"general","text-color":"general",dense:"",size:"0.8rem",unelevated:"",label:e.$t("close")},on:{click:e.close}})],1)]],2)],1),a("Feedback",{attrs:{show:e.showFeedback},on:{close:function(){return e.toggleFeedback(!1)}}}),a("NetworkDiagnotic",{attrs:{show:e.showNetworkDiagnotic},on:{close:function(){return e.toggleNetworkDiagnotic(!1)}}})],1)}),g=[],f=a("d310"),b=a("0f0c"),y=a("3fd2"),v=a.n(y),w=a("5584"),k=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{staticClass:"feedback",attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[a("q-card",{staticClass:"feedback-main q-pt-sm"},[a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("feedback")))])]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"q-mb-sm"},[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("select_a_type"))+":")]),a("q-select",{attrs:{options:e.typeOptions,outlined:"",dense:""},model:{value:e.type,callback:function(t){e.type=t},expression:"type"}})],1),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.isTwitter,expression:"!isTwitter"}],staticClass:"q-mb-sm"},[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("select_a_category"))+":")]),a("q-select",{attrs:{options:e.categoryOptions,outlined:"",dense:""},model:{value:e.category,callback:function(t){e.category=t},expression:"category"}})],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{directives:[{name:"show",rawName:"v-show",value:!e.isTwitter,expression:"!isTwitter"}],staticClass:"q-mb-sm"},[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("title"))+" *:")]),a("q-input",{attrs:{outlined:"",dense:"",autofocus:!e.isTwitter,rules:[function(t){return!!t.trim()||e.$t("require_title")}],"lazy-rules":""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.title,callback:function(t){e.title=t},expression:"title"}})],1),a("div",[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("describe_your_problem"))+":")]),a("q-input",{staticClass:"details-input",attrs:{type:"textarea",outlined:"",dense:"","stack-label":"",rules:e.descRules,autofocus:e.isTwitter,label:e.twitterHint},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.details,callback:function(t){e.details=t},expression:"details"}})],1),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.isTwitter,expression:"!isTwitter"}],staticClass:"q-mt-md"},[a("q-checkbox",{attrs:{label:e.$t("submit_with_system_info"),dense:""},model:{value:e.withDevInfo,callback:function(t){e.withDevInfo=t},expression:"withDevInfo"}})],1)]),a("q-card-section",{staticClass:"q-pt-none q-pb-lg flex justify-end"},[a("q-btn",{staticClass:"q-mr-sm",attrs:{unelevated:"",label:e.$t("cancel")},on:{click:e.close}}),a("q-btn",{attrs:{unelevated:"",color:"primary","text-color":"primary",label:e.$t("submit_feedback"),disabled:e.disableSubmit},on:{click:e.submit}})],1)],1)],1)},S=[],C=(a("0c26"),a("0598")),x=a("d558");function $(e){const t=e.shift(),a="| "+t.join(" | ")+" |\n",n=t.reduce((e=>e+" --- |"),"| ")+"\n";return a+n+e.reduce(((e,t)=>e+t.reduce(((e,t,a)=>a?`${e} \`${t}\` |`:`| ${t} |`),"")+"\n"),"")}function T(e,t){return`
${e}\n\n${t}\n
\n\n`}function z({type:e,text:t,version:a,devInfo:n}){const o=n?T("System info",$(n)):"";return`**Issue type**: ${e}\n\n**Describe the bug**:\n\n${t}\n\n`+(a?`---\n\n**App version**: \`${a}\`\n\n`:"")+(o||"(User disabled submitting system info)")}var P=a("47fc");const A=async()=>{if(Object(x["a"])()){const e=await(await Promise.resolve().then(a.bind(null,"a368"))).Device.getInfo();return[["Key","Value"],["Mode","Mobile(Capacitor)"],["Platform",e.platform],["OS",e.operatingSystem+" "+e.osVersion],["Model",e.model],["Manufacturer",e.manufacturer],["Webview version",e.webViewVersion],["isVirtual",e.isVirtual]]}if(!Object(C["default"])()){const e=Object(P["a"])();return[["Key","Value"],["Mode","Web"],["OS",e.os+" "+e.osVersion],["Browser",e.browser+" "+e.browserVersion],["Mobile",e.mobile?"Yes":"No"],["Platform",navigator.platform||"Unknown"],["User-Agent",navigator.userAgent]]}const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"1b85",7));return new Promise((t=>{e.once("dev-info",((e,a)=>{t([["Key","Value"],["Mode","Electron"],["OS",a.osPlatform?a.osPlatform+" "+a.osRelease:"Unknown"],["OS kernel",a.osVer||"Unknown"],["Electron version",a.electronVer||"Unknown"],["Chrome version",a.chromeVer||"Unknown"],["Node version",a.nodeVer||"Unknown"]])})),e.send("dev-info")}))};async function I({type:e,category:t,title:a,details:n,withDevInfo:o=!1}={}){const i=o?await A():null,r=z({type:e,text:n,version:Object(b["a"])("version"),devInfo:i});return{title:`[${t||e}] ${a}`,body:r}}var q=a("d710"),O=a.n(q);const{github:E}=q["update"],D=`https://github.com/${E.username}/${E.repo}/`;function j({title:e,body:t}){const a=new URL("issues/new",D);return a.searchParams.set("title",e),a.searchParams.set("body",t),a.toString()}var N,L=a("aa9c"),U=a("623f"),R=a.n(U);const M="https://twitter.com/intent/tweet?text=",F=q["twitterAccount"].trim()+" ";function B(e){return L["a"].parseTweet(F+e).weightedLength}const W=(null===R.a||void 0===R.a||null===(N=R.a.defaults)||void 0===N?void 0:N.maxWeightedTweetLength)||280;function H(e){return B(e)<=W}function V(e){return e.substring(0,L["a"].parseTweet(e).displayRangeEnd-4)+"..."}function Q(e){let t=F+e;return H(e)||(t=V(t)),`${M}${encodeURIComponent(t)}`}var G={props:{show:Boolean},data(){return{title:"",details:"",withDevInfo:!0,target:"github",type:{value:"Twitter",label:this.$t("tweet_us")},typeOptions:[{value:"Twitter",label:this.$t("tweet_us")},{value:"Bug report",label:this.$t("report_a_bug")},{value:"Feature request",label:this.$t("request_a_new_feature")}],category:{value:"",label:this.$t("select_a_category")},categoryOptions:[{value:"",label:this.$t("select_a_category")},{value:"Download",label:this.$t("download_or_upload")},{value:"Player",label:this.$t("player")},{value:"Account",label:this.$t("account")},{value:"Credits",label:this.$t("credits")},{value:"Settings",label:this.$t("settings")},{value:"Others",label:this.$t("others")}]}},computed:{isTwitter(){return"Twitter"===this.type.value},descRules(){return this.isTwitter?[e=>H(e)||this.$t("tweet_too_long")]:[]},twitterLength(){return this.isTwitter?B(this.details):0},restChars(){return W-this.twitterLength},twitterHint(){return this.restChars<0?this.$t("delete_characters",[Math.abs(this.restChars)]):this.$t("rest_characters",[this.restChars])},disableSubmit(){return this.isTwitter?this.restChars<0||!this.details.trim():!this.title.trim()}},methods:{submitTwitter(){H(this.details)&&(window.open(Q(this.details),"_blank"),this.close())},async submitGithub(){const e=await I({type:this.type.value,category:this.category.value,title:this.title,details:this.details,withDevInfo:this.withDevInfo});let t;switch(this.target){case"github":t=j(e);break}t&&(window.open(t,"_blank"),this.close())},close(){this.$emit("close")},submit(){return this.isTwitter?this.submitTwitter():this.submitGithub()}}},K=G,Y=(a("9e98"),a("2b5f")),J=a("b2aa"),Z=a("e586"),X=a("d7c7"),ee=a("a4ac"),te=a("0e45"),ae=a("7498"),ne=a("1043"),oe=a("09a4"),ie=a.n(oe),re=Object(Y["a"])(K,k,S,!1,null,null,null),se=re.exports;ie()(re,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSelect:ee["a"],QInput:te["a"],QCheckbox:ae["a"],QBtn:ne["a"]});var le=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{staticClass:"diagnotic",attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[a("q-card",{staticClass:"diagnotic-main"},[a("q-card-section",{staticClass:"flex items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bolder"},[e._v(e._s(e.$t("network_diagnotic")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:""}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"row items-center no-wrap full-width",class:{"q-pt-none":!e.screen$xs}},[a("div",{staticClass:"q-mr-md"},[e.isChecking?a("q-avatar",[a("q-circular-progress",{staticStyle:{"margin-left":"-8px"},attrs:{indeterminate:"",color:"positive",size:"md"}})],1):e.isChecked?a("q-avatar",{attrs:{size:"lg",icon:e.isNetworkError?"close":"done",color:e.isNetworkError?"negative":"positive","text-color":e.isNetworkError?"negative":"positive"}}):a("q-avatar",{attrs:{size:"lg",icon:"construction",color:"general","text-color":"general"}})],1),a("div",[e._v(e._s(e.networkStatus))]),a("div",{staticClass:"col-grow row items-center justify-end"},[a("q-btn",{staticStyle:{width:"128px"},attrs:{"no-wrap":"","no-caps":"",unelevated:"",size:"0.8rem",color:"primary",label:e.$t("diagnotic"),disabled:e.isChecking},on:{click:e.checkNetwork}})],1)]),a("q-card-section",{staticClass:"q-px-none q-pt-none"},[e.isOffline?a("div",{staticClass:"offline"},[e._v(e._s(e.$t("offline")))]):a("div",{staticClass:"logs"},[a("q-item",{class:{disabled:"-"===e.dnsStatus.avgTime||e.dnsStatus.isError}},[a("q-item-section",{attrs:{avatar:""}},[e.dnsStatus.isChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):"-"===e.dnsStatus.avgTime?a("q-avatar",{attrs:{size:"lg",icon:"dns",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.dnsStatus.isError?"close":"done",color:e.dnsStatus.isError?"negative":"general","text-color":e.dnsStatus.isError?"negative":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("dns_look_up")))]),e.dnsStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("error")))]):"-"!==e.dnsStatus.avgTime?a("span",{staticClass:"text-primary"},[e._v(e._s(e.dnsStatus.avgTime+" ms"))]):e._e()],1)],1),a("q-expansion-item",{staticClass:"full-width aws",attrs:{disable:!e.awsStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isAwsChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.awsStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isAwsError?"close":"done",color:e.isAwsError?"negative":"general","text-color":e.isAwsError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"account_circle",color:"general","text-color":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("aws_service")))])]},proxy:!0}])},[a("div",{staticClass:"aws-results q-py-md q-px-lg"},e._l(e.awsStatus,(function(t){return a("div",{key:t.name,staticClass:"aws-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.name))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.avgTime?"text-primary":"text-red"},[e._v(e._s(t.avgTime?e.$t("online"):e.$t("offline")))])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.publicPingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPublicChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.publicPingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPublicError?"close":"done",color:e.isPublicError?"negative":"general","text-color":e.isPublicError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"public",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("network_pings")))]),a("small",{staticClass:"q-ml-sm",class:e.isPublicError?"text-red":"text-primary"},[e._v(e._s(e.publicPing))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.publicPingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.privatePingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPrivateChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.privatePingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPrivateError?"close":"done",color:e.isPrivateError?"negative":"general","text-color":e.isPrivateError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"star",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("official_site")))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.privatePingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width",attrs:{disable:e.trackerStatus.success.length+e.trackerStatus.fail.length===0},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isDownloading?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.isDownloadInit?a("q-avatar",{attrs:{size:"lg",icon:"lan",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.isDownloadError?"close":"done",color:e.isDownloadError?"negative":"general","text-color":e.isDownloadError?"negative":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("download_test")))])]},proxy:!0}])},[a("div",{staticClass:"download-results q-px-lg q-py-md"},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTrackerResult,expression:"showTrackerResult"}],staticClass:"trackers"},[a("span",{staticClass:"result-name"},[e._v("Trackers")]),e._v("\n - "+e._s(e.trackerStatus.success.length)+" "+e._s(e.$t("connected"))+"\n ")]),a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTorrentResult,expression:"showTorrentResult"}],staticClass:"torrent"},[a("span",{staticClass:"result-name"},[e._v(e._s(e.$t("test_task",["6.9 MB"])))]),a("span",[e._v(" - ")]),e.torrentStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("download_failed")))]):-1===e.torrentStatus.time?a("span",{staticClass:"text-normal"},[e._v(e._s(e.$t("downloading"))+"...")]):a("span",{staticClass:"text-primary"},[e._v(e._s(e.$t("second_spend",[e.torrentStatus.time])))])])])])],1)]),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],staticClass:"q-px-md q-pb-md q-pt-none",attrs:{align:"right"}},[a("q-btn",{attrs:{unelevated:"",label:e.$t("close")},on:{click:e.close}})],1)],1)],1)},ce=[],de=a("d7df"),ue={props:{show:Boolean},data(){return{isChecked:!1,isChecking:!1,isOnline:!1,networkStatus:this.$t("click_to_check"),dnsStatus:{isChecking:!1,isError:!1,results:[],avgTime:"-"},isPrivateChecking:!1,isPrivateError:!1,privatePingStatus:[],isPublicChecking:!1,isPublicError:!1,publicPing:"",publicPingStatus:[],isAwsChecking:!1,isAwsError:!1,awsStatus:[],trackerStatus:{success:[],fail:[],isChecking:!1,isError:!1},torrentStatus:{isChecking:!1,isError:!1,time:-1}}},computed:{isOffline(){return this.isChecked&&!this.isOnline},showPrivateResult(){return this.privatePingStatus.isChecking||"-"!==this.privatePingStatus.avgTime},isDownloading(){return this.trackerStatus.isChecking||this.torrentStatus.isChecking},isDownloadError(){return this.trackerStatus.isError||this.torrentStatus.isError},isDownloadInit(){return!this.isDownloadError&&!this.trackerStatus.isError&&-1===this.torrentStatus.time},showTrackerResult(){return this.trackerStatus.isChecking||this.trackerStatus.isError||!!this.trackerStatus.success.length},showTorrentResult(){return this.torrentStatus.isChecking||this.torrentStatus.isError||this.torrentStatus.time>-1},isNetworkError(){return this.isChecked&&(!this.isOnline||this.isDownloadError||this.dnsStatus.isError||this.isAwsError||this.privatePingStatus.some((e=>!e.alive))||this.publicPingStatus.every((e=>!e.alive)))}},methods:{initCheck(){this.isChecking=!0,this.dnsStatus={isChecking:!0,isError:!1,results:[],avgTime:"-"},this.isPrivateChecking=!1,this.isPrivateError=!1,this.privatePingStatus=[],this.isPublicChecking=!0,this.publicPing="",this.publicPingStatus=[],this.isPublicError=!1,this.isAwsChecking=!0,this.isAwsError=!1,this.awsStatus=[],this.trackerStatus={success:[],fail:[],isChecking:!0,isError:!1},this.torrentStatus={isChecking:!0,isError:!1,time:-1},this.networkStatus=this.$t("checking")+"..."},checkNetwork(){this.initCheck(),console.log("check"),de["a"].emit("check-network")},onCheckResult(e){switch(e.type){case"isOnline":this.isOnline=e.result;break;case"dnsCheckResult":this.dnsStatus.isChecking=!1,e.result.fail.length?this.dnsStatus.isError=!0:this.dnsStatus.isError=!1,this.dnsStatus.results.splice(0),this.dnsStatus.results.push(...e.result.success,...e.result.fail),this.dnsStatus.avgTime=e.result.avgTime;break;case"publicPingResult":this.isPublicChecking=!0,this.publicPingStatus.push(e.result),e.result.alive||(this.isPublicError=!0);break;case"publicPingEnd":this.isPublicChecking=!1,this.publicPing=e.result;break;case"privatePingResult":this.isPrivateChecking=!0,this.privatePingStatus.push(e.result),e.result.alive||(this.isPrivateError=!0);break;case"privatePingEnd":this.isPrivateChecking=!1;break;case"pingAwsEnd":this.isAwsChecking=!1,this.awsStatus.splice(0),this.awsStatus.push(...e.successServices,...e.errorServices),this.isAwsError=e.error;break;case"trackerCheckResult":"connected"===e.result.result?this.trackerStatus.success.push(e.result.url):this.trackerStatus.fail.push(e.result.url);break;case"trackerCheckEnd":this.trackerStatus.isChecking=!1,this.trackerStatus.success.splice(0),this.trackerStatus.success.push(...e.result.success),this.trackerStatus.fail.splice(0),this.trackerStatus.fail.push(...e.result.fail),e.result.success.length||(this.trackerStatus.isError=!0);break;case"torrentCheckResult":this.torrentStatus.isChecking=!1,this.torrentStatus.isError=e.result.error,this.torrentStatus.time=e.result.time;break}},onCheckEnd(e){console.log("end",e),"isOnline"in e&&(this.isOnline=e.isOnline),this.isChecking=!1,this.isChecked=!0,this.networkStatus=this.$t("click_to_check_again")},close(){this.$emit("close")}},mounted(){de["a"].on("check-network-end",this.onCheckEnd),de["a"].on("check-network-result",this.onCheckResult)},beforeDestroy(){de["a"].off("check-network-end",this.onCheckEnd),de["a"].off("check-network-result",this.onCheckResult)}},_e=ue,pe=(a("88f5"),a("990e")),me=a("fc38"),he=a("9f3e"),ge=a("64e7"),fe=a("b329"),be=a("25fb"),ye=a("79e0"),ve=a("5bbd"),we=a("59ba"),ke=a("a431"),Se=Object(Y["a"])(_e,le,ce,!1,null,"8fee9c62",null),Ce=Se.exports;ie()(Se,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"],QAvatar:he["a"],QCircularProgress:ge["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QExpansionItem:ve["a"],QCardActions:we["a"]}),ie()(Se,"directives",{ClosePopup:ke["a"]});var xe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{persistent:!0,"content-class":{"markdown-dialog":!0,"fullscreen-dialog":e.fullscreen},position:e.fullscreen?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")}}},[a("q-card",{staticClass:"overflow-hidden column no-wrap",staticStyle:{"min-width":"320px","max-width":"720px","min-height":"calc(320px - 64px)","max-height":"calc(100vh - 64px)"},style:{paddingTop:(e.fullscreen&&e.$q.platform.is.electron?30:0)+"px"}},[a("q-card-section",{staticClass:"non-selectable flex justify-start items-center",class:{"q-py-sm":e.fullscreen}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],attrs:{"fab-mini":"",icon:e.isFullscreen?"fullscreen_exit":"fullscreen",unelevated:""},on:{click:function(t){e.isFullscreen=!e.isFullscreen}}}),a("q-btn",{attrs:{"fab-mini":"",icon:"close",unelevated:""},on:{click:e.hide}})],1),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:Object.keys(e.contents).length>1,expression:"Object.keys(contents).length > 1"}],staticClass:"q-py-none",staticStyle:{"margin-top":"-8px"}},[a("q-tabs",{staticStyle:{margin:"0 -16px"},attrs:{dense:"",align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(e,t){return[a("q-tab",{key:t,attrs:{ripple:!1,name:t,label:e.label}})]}))],2)],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none scroll-y",staticStyle:{"max-height":"100%"}},[a("q-tab-panels",{attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(t,n){return[a("q-tab-panel",{key:n,staticClass:"markdown-content",attrs:{name:n},domProps:{innerHTML:e._s(t.markdown)}})]}))],2)],1)],1)],1)},$e=[],Te=a("8e03"),ze=a.n(Te);const Pe={methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}},Ae={data(){return{isFullscreen:!1}},computed:{fullscreen(){return this.screen$xs||this.isFullscreen}}};var Ie={name:"MarkdownDialog",mixins:[Pe,Ae],props:{title:String,markdown:[Array,Object]},data(){return{currentTab:null}},computed:{contents(){const e=new ze.a("commonmark");if(Array.isArray(this.markdown))return{content:{label:"content",markdown:e.render(this.markdown.join("\n"))}};const t={};return Object.entries(this.markdown).forEach((([a,n])=>{t[a]={label:n.label,markdown:e.render(n.markdown.join("\n"))}})),t}},created(){this.currentTab=Object.keys(this.contents)[0]}},qe=Ie,Oe=(a("2cab"),a("74cb")),Ee=a("ec78"),De=a("917f"),je=a("c72d"),Ne=Object(Y["a"])(qe,xe,$e,!1,null,null,null),Le=Ne.exports;ie()(Ne,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QTabs:Oe["a"],QTab:Ee["a"],QSeparator:me["a"],QTabPanels:De["a"],QTabPanel:je["a"]});var Ue={methods:{createMarkdownDialog({title:e,markdown:t}){return this.$q.dialog({component:Le,title:e,markdown:t})}}};function Re({title:e,markdown:t}){return this.$q.dialog({component:Le,title:e,markdown:t})}var Me=["# INTERNAL DEMO ONLY","","1. Your license permits use the Software only for your internal demonstration, test, or evaluation purposes. ","","2. Licensee acknowledges that the Software is confidential in nature and constitutes a trade secret belonging to Licensor.","","3. Public disclosure or distribution of the Software is prohibited.","","4. Note that the Software disables itself on the “time-out” date identified on the SOFTWARE packaging.","",""],Fe=[" GNU GENERAL PUBLIC LICENSE"," Version 2, June 1991",""," Copyright (C) 1989, 1991 Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA"," Everyone is permitted to copy and distribute verbatim copies"," of this license document, but changing it is not allowed.",""," Preamble",""," The licenses for most software are designed to take away your","freedom to share and change it. By contrast, the GNU General Public","License is intended to guarantee your freedom to share and change free","software--to make sure the software is free for all its users. This","General Public License applies to most of the Free Software","Foundation's software and to any other program whose authors commit to","using it. (Some other Free Software Foundation software is covered by","the GNU Lesser General Public License instead.) You can apply it to","your programs, too.",""," When we speak of free software, we are referring to freedom, not","price. Our General Public Licenses are designed to make sure that you","have the freedom to distribute copies of free software (and charge for","this service if you wish), that you receive source code or can get it","if you want it, that you can change the software or use pieces of it","in new free programs; and that you know you can do these things.",""," To protect your rights, we need to make restrictions that forbid","anyone to deny you these rights or to ask you to surrender the rights.","These restrictions translate to certain responsibilities for you if you","distribute copies of the software, or if you modify it.",""," For example, if you distribute copies of such a program, whether","gratis or for a fee, you must give the recipients all the rights that","you have. You must make sure that they, too, receive or can get the","source code. And you must show them these terms so they know their","rights.",""," We protect your rights with two steps: (1) copyright the software, and","(2) offer you this license which gives you legal permission to copy,","distribute and/or modify the software.",""," Also, for each author's protection and ours, we want to make certain","that everyone understands that there is no warranty for this free","software. If the software is modified by someone else and passed on, we","want its recipients to know that what they have is not the original, so","that any problems introduced by others will not reflect on the original","authors' reputations.",""," Finally, any free program is threatened constantly by software","patents. We wish to avoid the danger that redistributors of a free","program will individually obtain patent licenses, in effect making the","program proprietary. To prevent this, we have made it clear that any","patent must be licensed for everyone's free use or not licensed at all.",""," The precise terms and conditions for copying, distribution and","modification follow.",""," GNU GENERAL PUBLIC LICENSE"," TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION",""," 0. This License applies to any program or other work which contains","a notice placed by the copyright holder saying it may be distributed",'under the terms of this General Public License. The "Program", below,','refers to any such program or work, and a "work based on the Program"',"means either the Program or any derivative work under copyright law:","that is to say, a work containing the Program or a portion of it,","either verbatim or with modifications and/or translated into another","language. (Hereinafter, translation is included without limitation in",'the term "modification".) Each licensee is addressed as "you".',"","Activities other than copying, distribution and modification are not","covered by this License; they are outside its scope. The act of","running the Program is not restricted, and the output from the Program","is covered only if its contents constitute a work based on the","Program (independent of having been made by running the Program).","Whether that is true depends on what the Program does.",""," 1. You may copy and distribute verbatim copies of the Program's","source code as you receive it, in any medium, provided that you","conspicuously and appropriately publish on each copy an appropriate","copyright notice and disclaimer of warranty; keep intact all the","notices that refer to this License and to the absence of any warranty;","and give any other recipients of the Program a copy of this License","along with the Program.","","You may charge a fee for the physical act of transferring a copy, and","you may at your option offer warranty protection in exchange for a fee.",""," 2. You may modify your copy or copies of the Program or any portion","of it, thus forming a work based on the Program, and copy and","distribute such modifications or work under the terms of Section 1","above, provided that you also meet all of these conditions:",""," a) You must cause the modified files to carry prominent notices"," stating that you changed the files and the date of any change.",""," b) You must cause any work that you distribute or publish, that in"," whole or in part contains or is derived from the Program or any"," part thereof, to be licensed as a whole at no charge to all third"," parties under the terms of this License.",""," c) If the modified program normally reads commands interactively"," when run, you must cause it, when started running for such"," interactive use in the most ordinary way, to print or display an"," announcement including an appropriate copyright notice and a"," notice that there is no warranty (or else, saying that you provide"," a warranty) and that users may redistribute the program under"," these conditions, and telling the user how to view a copy of this"," License. (Exception: if the Program itself is interactive but"," does not normally print such an announcement, your work based on"," the Program is not required to print an announcement.)","","These requirements apply to the modified work as a whole. If","identifiable sections of that work are not derived from the Program,","and can be reasonably considered independent and separate works in","themselves, then this License, and its terms, do not apply to those","sections when you distribute them as separate works. But when you","distribute the same sections as part of a whole which is a work based","on the Program, the distribution of the whole must be on the terms of","this License, whose permissions for other licensees extend to the","entire whole, and thus to each and every part regardless of who wrote it.","","Thus, it is not the intent of this section to claim rights or contest","your rights to work written entirely by you; rather, the intent is to","exercise the right to control the distribution of derivative or","collective works based on the Program.","","In addition, mere aggregation of another work not based on the Program","with the Program (or with a work based on the Program) on a volume of","a storage or distribution medium does not bring the other work under","the scope of this License.",""," 3. You may copy and distribute the Program (or a work based on it,","under Section 2) in object code or executable form under the terms of","Sections 1 and 2 above provided that you also do one of the following:",""," a) Accompany it with the complete corresponding machine-readable"," source code, which must be distributed under the terms of Sections"," 1 and 2 above on a medium customarily used for software interchange; or,",""," b) Accompany it with a written offer, valid for at least three"," years, to give any third party, for a charge no more than your"," cost of physically performing source distribution, a complete"," machine-readable copy of the corresponding source code, to be"," distributed under the terms of Sections 1 and 2 above on a medium"," customarily used for software interchange; or,",""," c) Accompany it with the information you received as to the offer"," to distribute corresponding source code. (This alternative is"," allowed only for noncommercial distribution and only if you"," received the program in object code or executable form with such"," an offer, in accord with Subsection b above.)","","The source code for a work means the preferred form of the work for","making modifications to it. For an executable work, complete source","code means all the source code for all modules it contains, plus any","associated interface definition files, plus the scripts used to","control compilation and installation of the executable. However, as a","special exception, the source code distributed need not include","anything that is normally distributed (in either source or binary","form) with the major components (compiler, kernel, and so on) of the","operating system on which the executable runs, unless that component","itself accompanies the executable.","","If distribution of executable or object code is made by offering","access to copy from a designated place, then offering equivalent","access to copy the source code from the same place counts as","distribution of the source code, even though third parties are not","compelled to copy the source along with the object code.",""," 4. You may not copy, modify, sublicense, or distribute the Program","except as expressly provided under this License. Any attempt","otherwise to copy, modify, sublicense or distribute the Program is","void, and will automatically terminate your rights under this License.","However, parties who have received copies, or rights, from you under","this License will not have their licenses terminated so long as such","parties remain in full compliance.",""," 5. You are not required to accept this License, since you have not","signed it. However, nothing else grants you permission to modify or","distribute the Program or its derivative works. These actions are","prohibited by law if you do not accept this License. Therefore, by","modifying or distributing the Program (or any work based on the","Program), you indicate your acceptance of this License to do so, and","all its terms and conditions for copying, distributing or modifying","the Program or works based on it.",""," 6. Each time you redistribute the Program (or any work based on the","Program), the recipient automatically receives a license from the","original licensor to copy, distribute or modify the Program subject to","these terms and conditions. You may not impose any further","restrictions on the recipients' exercise of the rights granted herein.","You are not responsible for enforcing compliance by third parties to","this License.",""," 7. If, as a consequence of a court judgment or allegation of patent","infringement or for any other reason (not limited to patent issues),","conditions are imposed on you (whether by court order, agreement or","otherwise) that contradict the conditions of this License, they do not","excuse you from the conditions of this License. If you cannot","distribute so as to satisfy simultaneously your obligations under this","License and any other pertinent obligations, then as a consequence you","may not distribute the Program at all. For example, if a patent","license would not permit royalty-free redistribution of the Program by","all those who receive copies directly or indirectly through you, then","the only way you could satisfy both it and this License would be to","refrain entirely from distribution of the Program.","","If any portion of this section is held invalid or unenforceable under","any particular circumstance, the balance of the section is intended to","apply and the section as a whole is intended to apply in other","circumstances.","","It is not the purpose of this section to induce you to infringe any","patents or other property right claims or to contest validity of any","such claims; this section has the sole purpose of protecting the","integrity of the free software distribution system, which is","implemented by public license practices. Many people have made","generous contributions to the wide range of software distributed","through that system in reliance on consistent application of that","system; it is up to the author/donor to decide if he or she is willing","to distribute software through any other system and a licensee cannot","impose that choice.","","This section is intended to make thoroughly clear what is believed to","be a consequence of the rest of this License.",""," 8. If the distribution and/or use of the Program is restricted in","certain countries either by patents or by copyrighted interfaces, the","original copyright holder who places the Program under this License","may add an explicit geographical distribution limitation excluding","those countries, so that distribution is permitted only in or among","countries not thus excluded. In such case, this License incorporates","the limitation as if written in the body of this License.",""," 9. The Free Software Foundation may publish revised and/or new versions","of the General Public License from time to time. Such new versions will","be similar in spirit to the present version, but may differ in detail to","address new problems or concerns.","","Each version is given a distinguishing version number. If the Program",'specifies a version number of this License which applies to it and "any','later version", you have the option of following the terms and conditions',"either of that version or of any later version published by the Free","Software Foundation. If the Program does not specify a version number of","this License, you may choose any version ever published by the Free Software","Foundation.",""," 10. If you wish to incorporate parts of the Program into other free","programs whose distribution conditions are different, write to the author","to ask for permission. For software which is copyrighted by the Free","Software Foundation, write to the Free Software Foundation; we sometimes","make exceptions for this. Our decision will be guided by the two goals","of preserving the free status of all derivatives of our free software and","of promoting the sharing and reuse of software generally.",""," NO WARRANTY",""," 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY","FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN","OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES",'PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED',"OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF","MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS","TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE","PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,","REPAIR OR CORRECTION.",""," 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING","WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR","REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,","INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING","OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED","TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY","YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER","PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE","POSSIBILITY OF SUCH DAMAGES.",""," END OF TERMS AND CONDITIONS",""," How to Apply These Terms to Your New Programs",""," If you develop a new program, and you want it to be of the greatest","possible use to the public, the best way to achieve this is to make it","free software which everyone can redistribute and change under these terms.",""," To do so, attach the following notices to the program. It is safest","to attach them to the start of each source file to most effectively","convey the exclusion of warranty; and each file should have at least",'the "copyright" line and a pointer to where the full notice is found.',""," "," Copyright (C) ",""," This program is free software; you can redistribute it and/or modify"," it under the terms of the GNU General Public License as published by"," the Free Software Foundation; either version 2 of the License, or"," (at your option) any later version.",""," This program is distributed in the hope that it will be useful,"," but WITHOUT ANY WARRANTY; without even the implied warranty of"," MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"," GNU General Public License for more details.",""," You should have received a copy of the GNU General Public License along"," with this program; if not, write to the Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.","","Also add information on how to contact you by electronic and paper mail.","","If the program is interactive, make it output a short notice like this","when it starts in an interactive mode:",""," Gnomovision version 69, Copyright (C) year name of author"," Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'."," This is free software, and you are welcome to redistribute it"," under certain conditions; type `show c' for details.","","The hypothetical commands `show w' and `show c' should show the appropriate","parts of the General Public License. Of course, the commands you use may","be called something other than `show w' and `show c'; they could even be","mouse-clicks or menu items--whatever suits your program.","","You should also get your employer (if you work as a programmer) or your",'school, if any, to sign a "copyright disclaimer" for the program, if',"necessary. Here is a sample; alter the names:",""," Yoyodyne, Inc., hereby disclaims all copyright interest in the program"," `Gnomovision' (which makes passes at compilers) written by James Hacker.",""," , 1 April 1989"," Ty Coon, President of Vice","","This General Public License does not permit incorporating your program into","proprietary programs. If your program is a subroutine library, you may","consider it more useful to permit linking proprietary applications with the","library. If this is what you want to do, use the GNU Lesser General","Public License instead of this License.",""],Be=["# Terms of Service TESTING","","## 1. Introduction","",'Welcome to Use Alphabiz App (the "App"). The App is operated by Alphabiz Team ("Alphabiz" or "we"). This document – the terms of service – is an agreement between you, the beloved user, and Alphabiz. It\'s referred to as the "Terms" or the "Agreement".',"These Terms govern your use of the App and this App only. The Terms neither relate to any other Alphabiz application, service or property nor your use of any other Alphabiz application, service or property. For example, these Terms don't govern your use of Alphabiz App.","","## 2. Agreement to the Terms","","Terms of service agreements are contracts. That means that this Agreement is a contract between you and Alphabiz for the limited purpose of laying out what our respective rights and obligations are with respect to Alphabiz App.","If there's something in these Terms you don't agree with or don't understand, please don't use the App. By accessing or using the App, you signal your agreement with and consent to the Terms. By accessing or using any Application or Service you also represent that you have the legal authority to accept the Terms on behalf of yourself and any party you represent in connection with your use of any Application or Service.","","Unless otherwise agreed to in writing with Alphabiz, your use of any Application or Service will always be subject to, at a minimum, the terms and conditions set out in this document.","","## 3. DISCLAIMER OF WARRANTIES","","TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ALPHABIZ OFFERS THE APP ON AN AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE APPLICATIONS OR SERVICES, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. ALPHABIZ DOES NOT WARRANT THAT THE FUNCTIONS OR CONTENT CONTAINED ON THE APPLICATION OR SERVICES WILL BE ERROR-FREE, THAT DEFECTS WILL BE CORRECTED, OR THAT ALPHABIZ'S SERVERS ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. ALPHABIZ DOES NOT WARRANT OR MAKE ANY REPRESENTATION REGARDING USE OR THE RESULT OF USE OF THE CONTENT IN TERMS OF ACCURACY, RELIABILITY, OR OTHERWISE.","","## 4. LIMITATION OF LIABILITY","",'EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW AND THEN ONLY TO THAT EXTENT, IN NO EVENT WILL ALPHABIZ, ITS EMPLOYEES, OFFICERS, DIRECTORS, AFFILIATES OR AGENTS ("THE ALPHABIZ PARTIES") BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY INCIDENTAL, DIRECT, INDIRECT, PUNITIVE, ACTUAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY OR OTHER DAMAGES, INCLUDING WITHOUT LIMITATION, LOSS OF REVENUE OR INCOME, LOST PROFITS, PAIN AND SUFFERING, EMOTIONAL DISTRESS, COST OF SUBSTITUTE GOODS OR SERVICES, OR SIMILAR DAMAGES SUFFERED OR INCURRED BY YOU OR ANY THIRD PARTY THAT ARISE IN CONNECTION WITH THE APPLICATIONS OR SERVICES (OR THE TERMINATION THEREOF FOR ANY REASON), EVEN IF THE ALPHABIZ PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.',"","THE ALPHABIZ PARTIES SHALL NOT BE RESPONSIBLE OR LIABLE WHATSOEVER IN ANY MANNER FOR ANY CONTENT POSTED ON THE APP (INCLUDING CLAIMS OF INFRINGEMENT RELATING TO CONTENT POSTED ON THE APPLICATIONS OR SERVICES, FOR YOUR USE OF THE APPLICATIONS AND SERVICES, OR FOR THE CONDUCT OF THIRD PARTIES WHETHER ON THE APPLICATIONS, IN CONNECTION WITH THE SERVICES OR OTHERWISE RELATING TO THE APPLICATIONS OR SERVICES.","","## 5. Reservation of Rights and Ownership","",'Tan Shuai (the "Founder" of Alphabiz) reserves all rights in and to the App, including without limitation all rights in and to the App\'s name, logo, trademark, domain name, and other intellectual property rights.',"","The App is protected by copyright and other intellectual property laws and treaties around the world. Founder owns the title, copyright and other intellectual property rights in the App. The App is licensed, not sold.","","## 6. Indemnification for breach of the Terms","","You agree to indemnify and hold harmless the Alphabiz Parties (defined above) from and against any and all loss, expenses, damages, and costs, including without limitation reasonable attorneys fees, resulting, whether directly or indirectly, from your violation of the Terms.","","## 7. Termination of this Agreement","","These Terms will continue to apply until terminated by the parties in writing, though your right to access and use the App terminates automatically upon your breach of any of these Terms.","The disclaimer of warranties, the limitation of liability and the jurisdiction and applicable law provisions shall survive any termination. The license grants mentioned herein shall continue in effect subject to the terms of the applicable license. Your warranties and indemnification obligations shall survive any termination for one year.","","## 8. Miscellaneous Terms","","If any term or part of the Terms is held to be invalid or unenforceable by any law or regulation or final determination of a competent court or tribunal, that provision will be deemed severable and will not affect the validity and enforceability of any remaining provisions.","","The parties agree that no joint venture, partnership, employment, or agency relationship exists between you and Alphabiz as a result of these Terms or your use of the App.","","These Terms constitute the entire agreement between you and Alphabiz relating to the App and supersede all prior, contemporaneous and future communications (with the exception of future amendments to the Terms as made available by Alphabiz from time to time) between you and Alphabiz. A printed version of the Terms and of any notice given in electronic form shall be admissible in judicial or administrative proceedings based on or relating to the Terms to the same extent and subject to the same conditions as other business documents and records originally generating and maintained in printed form.",""],We={mixins:[Ue],methods:{showInternalNotice(){this.createMarkdownDialog({title:this.$t("internal_notice"),markdown:{internal:{label:"Internal",markdown:Me}}})},showLicenseTermsNotice(){this.createMarkdownDialog({title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:Fe},terms:{label:"Terms",markdown:Be}}})}}};const{github:He}=q["update"],Ve=v.a.renderer();var Qe={name:"AboutDialog",mixins:[We],components:{Feedback:se,NetworkDiagnotic:Ce},data(){return{displayName:q["displayName"],isElectron:Ve,isCapacitor:Object(x["a"])(),iconClickTime:0,dialogVisible:!1,appVersion:Object(b["a"])("version"),loading:!1,primaryIcon:"developer/assets/icon-256.png",showFeedback:!1,showNetworkDiagnotic:!1}},created(){f["Bus"].$on("CALL_ABOUT",(()=>{this.dialogVisible=!0})),f["Bus"].$on("CALL_NETWORK_DIAGNOSTIC",(()=>{this.toggleNetworkDiagnotic(!0)})),Ve&&Promise.resolve().then(a.t.bind(null,"1b85",7)).then((({ipcRenderer:e})=>{e.on("about-dialog",(()=>{this.dialogVisible=!0}))}))},computed:{isAlphabizExperimental(){return"Alphabiz"===q["displayName"]&&(this.appVersion.includes("internal")||this.appVersion.includes("nightly"))}},methods:{close(){this.dialogVisible=!1},browserRelease(){const e=`https://github.com/${He.username}/${He.repo}/releases`;Ve?Promise.resolve().then(a.t.bind(null,"1b85",7)).then((t=>{t.ipcRenderer.send("to_browserurl",e)})):window.open(e,"_blank")},clickIcon(){this.iconClickTime+=1,setTimeout((()=>{this.iconClickTime-=1}),3e3),5===this.iconClickTime&&(console.log("enable!"),Ve?(a("1b85").ipcRenderer.send("enable_devtools"),w["a"].dispatch("fetchSettings")):w["a"].dispatch("set",{disableDevTools:!1}).then((()=>{w["a"].dispatch("fetchSettings")})),this.$q.notify("DevTools is enabled"))},toggleFeedback(e){console.log("toggle",e),this.showFeedback=e},toggleNetworkDiagnotic(e){this.showNetworkDiagnotic=e}}},Ge=Qe,Ke=(a("3c8a"),a("9767")),Ye=a("4101"),Je=Object(Y["a"])(Ge,h,g,!1,null,"e4afc3b8",null),Ze=Je.exports;ie()(Je,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"],QImg:Ke["a"],QColor:Ye["a"]});var Xe=a("4fd2"),et=a("6422"),tt=a("07e8"),at=a("ce6c"),nt=a("c62a6"),ot=a("36a1"),it=a("eb7a"),rt=a("1926"),st=a("61a1"),lt=a("3d18");async function ct(e,t,n){var o,i;if(console.log("drop",e,e.path,(null===e||void 0===e||null===(o=e.path)||void 0===o?void 0:o[0])===document.body),e&&e.path&&(null===e||void 0===e||null===(i=e.path)||void 0===i?void 0:i[0])===document.body)return void console.log("Drop to body");const r=n&&!t.length;if(r&&!n.match(/^(magnet)|(alphabiz):/))return;const s=!r&&t.length>1,l=!r&&!s&&Object(C["default"])()&&a("bc7b").existsSync(t[0].path)?a("bc7b").statSync(t[0].path).isDirectory():!a("d6fe").extname(t[0].path),c=r?"link":s?"file_copy":l?"folder":"insert_drive_file",d=document.createElement("i");d.classList="q-icon material-icons",d.appendChild(document.createTextNode(c)),d.style=`position: fixed; font-size: 36px; transition-duration: 0.5s; opacity: 1;left: ${e.clientX-18}px; top: ${e.clientY-18}px`;const u=document.body.appendChild(d);return new Promise((e=>{setTimeout((()=>{u.style.transform="translateY(24px)"}),50),setTimeout((()=>{u.style.transform+=" scale(4)",u.style.opacity=0,e()}),200),setTimeout((()=>{document.body.removeChild(u)}),1e3)}))}console.log("utils io CLIENT"),console.log("-utils io CLIENT"),de["a"].on("warning",(e=>{d["a"].create({message:e})})),de["a"].on("client_error",(e=>{d["a"].create({message:e})})),de["a"].on("request_unlimit_upload",(()=>{const e=Object(st["b"])();e&&"/settings"!==e.currentRoute.path&&"/advancedSettings"!==e.currentRoute.path&&u["a"].create({title:rt["b"].t("upload_too_many_files"),message:rt["b"].t("ask_if_unlimit_upload_amount"),ok:rt["b"].t("disable_limitation"),cancel:rt["b"].t("not_now")}).onOk((()=>{de["a"].emit("unlimit_upload_amount")}))})),de["a"].on("torrent_error",(({token:e,message:t})=>{const a=Object(st["b"])();a&&"/"===a.currentRoute.path&&d["a"].create({message:rt["b"].t("torrent_error"),caption:[rt["b"].t(t),e].join("\n"),multiLine:!0,timeout:0,closeBtn:rt["b"].t("close")})})),de["a"].on("torrent_seed_error",((e,t)=>{e.missFile&&(console.log(e,t),u["a"].create({title:rt["b"].t("miss_file"),message:rt["b"].t("delete_miss_file_task",[e.name]),ok:rt["b"].t("delete_task"),cancel:rt["b"].t("cancel")}).onOk((()=>{de["a"].emit("delete_torrent",e.infoHash)})))})),de["a"].on("delete-files-failed",((e,t)=>{console.log("delete failed",e,t),u["a"].create({title:rt["b"].t("failed_to_delete_files"),message:rt["b"].t("failed_to_delete_files")})})),de["a"].on("autoupload-start",(()=>{w["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!0)})),de["a"].on("autoupload-complete",(()=>{w["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!1)})),de["a"].on("torrent_exists",(e=>(console.log("exist",e),d["a"].create(rt["b"].t("torrent_exists")+e)))),de["a"].on("stop-server",(()=>{w["a"].dispatch("resetRemotePlay"),w["a"].state.video.currentVideo.shouldReset=!0})),de["a"].on("open-default-player",(async e=>{w["a"].dispatch("resetRemotePlay"),w["a"].dispatch("resetInfoHash"),w["a"].dispatch("currentVideoUrl",""),w["a"].dispatch("currentVideoPath",""),console.log("open-default-player:"+e);const t=it["default"].getPlayer("my-video"),a=w["a"].state.video.currentVideo.pipStatus;if(t&&a)try{console.log("跳转默认播放器,关闭画中画"),t.exitPictureInPicture()}catch(o){}const n=await Object(lt["b"])(w["a"].getters.settings.defaultVideoPlayer,e);!0!==n&&""!==n&&d["a"].create(rt["b"].t("open_default_player_failed"))})),de["a"].on("jump-to-player",(()=>{const e=Object(st["b"])();e&&e.push({name:"Player",params:{action:{type:"play_remote"}}})})),de["a"].on("finish_all_payments_by_infohash",(e=>{if("string"!==typeof e)return console.log(`No info hash to finish ${e}`);const t=w["a"].getters.accountUserInfo.sub;if(!t)return console.log(`Cannot find sub id from ${w["a"].getters.accountUserInfo}`);const a=w["a"].state.credits.expensesTransactions.filter((a=>a.payerId===t&&"FINISH"!==a.status&&a.meta.includes(e)));console.log("Will finish",a),de["a"].emit("finish_all_payments",a)}));var dt=a("8a63"),ut=a("0885"),_t=a("09e8"),pt=a("84f6"),mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[a("q-card",{staticStyle:{width:"400px","max-width":"80vw","overflow-x":"hidden"}},[a("q-card-section",["download"===e.mode?a("q-tabs",{staticClass:"text-primary",attrs:{"no-caps":""},model:{value:e.tab,callback:function(t){e.tab=t},expression:"tab"}},[a("q-tab",{attrs:{name:"url",label:this.$t("link_task")}}),a("q-tab",{attrs:{name:"file",label:this.$t("torrent_task")}})],1):a("div",{staticClass:"upload-title text-primary text-center q-mt-sm q-mb-md text-subtitle2"},[e._v("\n "+e._s(e.$t("upload"))+"\n ")])],1),a("q-card-section",{staticClass:"q-pt-none"},["url"===e.tab&&"download"===e.mode?a("q-input",{staticClass:"url-input q-py-sm",attrs:{dense:"",type:"textarea","input-style":"white-space:nowrap"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}}):e._e(),"file"===e.tab||"upload"===e.mode?a("q-input",{attrs:{readonly:"",type:"text",label:e.$t("file"),value:e.inputFile&&e.inputFile[0]&&e.inputFile[0].name||""}}):e._e(),a("div",{staticClass:"file-selectors"},["file"===e.tab||"upload"===e.mode?a("FileSelector",{attrs:{accept:"download"===e.mode?{extensions:["torrent"]}:null},on:{select:e.onFileSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"note_add",label:e.$t("select_file")}})],1):e._e(),"upload"===e.mode&&e.isElectron?a("FileSelector",{attrs:{directory:""},on:{select:e.onFolderSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"create_new_folder",label:e.$t("select_folder")}})],1):e._e()],1),e.isElectron?a("div",{staticClass:"configuration-variable q-pt-sm"},[a("q-input",{directives:[{name:"show",rawName:"v-show",value:"download"===e.mode&&e.isElectron,expression:"mode === 'download' && isElectron"}],staticStyle:{width:"100%"},attrs:{label:this.$t("download_directory_position")},on:{click:e.selectSavePath},model:{value:e.settings.downloadDirectory,callback:function(t){e.$set(e.settings,"downloadDirectory",t)},expression:"settings.downloadDirectory"}})],1):e._e()],1),a("q-card-actions",{staticClass:"text-primary",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:this.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:"download"===e.mode?this.$t("download"):this.$t("upload")},on:{click:e.submit}})],1)],1)],1)},ht=[],gt=a("bc7b"),ft=a.n(gt),bt=a("d6fe"),yt=a.n(bt),vt=a("9a50"),wt=a("c5a5"),kt=a("3aea"),St=a("aa8a"),Ct=a("a368"),xt=a("908d");const $t=Object(f["isElectron"])()?a("1b85").ipcRenderer:{};var Tt={name:"TaskDialog",inject:["taskQueue"],components:{FileSelector:vt["a"]},data(){const e=w["a"].getters.settings,t={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer};return{isElectron:Object(f["isElectron"])(),isCapacitor:Object(x["a"])(),value:!1,tab:"url",mode:"download",currentTab:"url",setAsDefault:!1,input:"",inputFile:null,onMagnetCloseCallbacks:[],settings:t,libraryDialog:null}},computed:{disableTasks(){return!!w["a"].getters.shouldDisableTasks||!!w["a"].getters.settings.forceLogin&&(!w["a"].getters.accountUserInfo||!w["a"].getters.accountUserInfo.sub)}},methods:{updateSettings(){const e=w["a"].getters.settings;this.settings={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}},show(e,t){"string"===typeof e&&["download","upload"].includes(e)&&(this.mode=e),"string"===typeof t?(this.input=t,this.inputFile=null,this.tab="url"):"object"===typeof t&&null!==t?(this.input="",this.inputFile=t,this.tab="file",console.log("File",t)):(this.input="",this.inputFile=null),this.value=!0,this.$nextTick((()=>{this.updateSettings()}))},hide(){this.value=!1},toggle(){this.value=!this.value},selectFolder(){var e;if(!Object(f["isElectron"])())return null===(e=this.$refs.folderSelector)||void 0===e?void 0:e.click();const t="download"===this.mode?[{name:"Torrent",extensions:["torrent"]}]:[];$t.once("select_file_or_directory",((e,t)=>{if(t&&!t.canceled&&t.filePaths&&t.filePaths.length){const e=ft.a.statSync(t.filePaths[0])?t.filePaths[0]:yt.a.basename(t.filePaths[0]);this.inputFile=[{path:e,name:e}],console.log("select folder",this.inputFile)}else console.log("skip select folder",t)})).send("select_file_or_directory",t)},onFileSelected(e){console.log("Select",e),Array.isArray(e)?this.inputFile=e:e instanceof File?this.inputFile=[e]:console.log("Invalid file",e)},onFolderSelected(e){if(!Array.isArray(e)||!e.length)return console.log("not files");console.log("Select",e),this.inputFile=e},selectSavePath(){Object(f["isElectron"])()&&$t.once("select_directory",((e,t)=>{if(!t||t.canceled||!t.filePaths)return;const a=t.filePaths[0];a&&(this.settings.downloadDirectory=a,this.setAsDefault&&w["a"].dispatch("set",{downloadDirectory:a}))})).send("select_directory")},downloadTorrent(){const e=this.inputFile&&(this.inputFile.path||this.inputFile[0].path);let t=this.input;if(t.includes(q["shortProtocol"]+"://")){let e=0;t=t.replace(new RegExp(`${q["shortProtocol"]}://`,"g"),(()=>e++?`${q["protocol"]}://${q["protocol"]}task-${e}/`:`${q["protocol"]}://${q["protocol"]}task/`))}if("url"===this.tab&&!["magnet",q["protocol"],q["shortProtocol"]].some((e=>t.startsWith(e+":"))))return this.$q.notify(this.$t("invalid_download_url"));de["a"].emit("download_torrent",{type:this.tab,url:t,file:e,token:"url"===this.tab?t:e||t,...this.settings}),this.value=!1,this.input=""},async uploadTorrent(){console.log("Upload torrent",this.inputFile);const e=this.inputFile;if(console.log("n",e.name),Object(x["a"])()&&xt["b"].is.ios){const t=Date.now(),a=this.$q.dialog({message:this.$t("open_file")+"...",persistent:!0,ok:!1,cancel:!1}),n=yt.a.join("Uploads",e.name);console.log("Delete"),await Ct["Filesystem"].mkdir({directory:Ct["Directory"].Documents,path:yt.a.dirname(n),recursive:!0}),await Ct["Filesystem"].deleteFile({path:n,directory:Ct["Directory"].Documents});let o=0;console.log("Start writing",n);const i=new FileReader,r=1e7;let s=0,l=s+r;const c=async t=>{const i=t;o+=i.byteLength,await Ct["Filesystem"].appendFile({path:n,directory:Ct["Directory"].Documents,data:Buffer.from(t).toString("base64")}),a.update({message:this.$t("open_file")+`... (${(o/e.size*100).toFixed(2)}%)`}),s+=r,l+=r,s{if(s>=e.size)return console.log("done");const t=e.slice(s,l);i.readAsArrayBuffer(t)};i.onload=()=>{const e=i.result;c(e)},i.onerror=()=>{console.log("error",i.error.code,i.error.toString(),i.readyState,i.DONE),console.log("codes",i.error.NOT_FOUND_ERR,i.error.SECURITY_ERR,i.error.ABORT_ERR),console.log("file",e.name,e.size),console.log("Cost",Date.now()-t),u()};const u=()=>{a.hide(),this.value=!1,setTimeout((()=>{this.$q.dialog({message:this.$t("file_too_large"),ok:this.$t("ok")})}),500)},_=async()=>{console.log("Cost",Date.now()-t),console.log("Finish writing file",e.name);const{uri:o}=await Ct["Filesystem"].getUri({path:n,directory:Ct["Directory"].Documents});console.log("saved",decodeURI(o.replace("file://",""))),de["a"].emit("seed_torrent",{file:[decodeURI(o.replace("file://",""))],token:e.name,...this.settings}),this.value=!1,setTimeout((()=>{a.hide()}),1e3)};return d()}const t=this.inputFile.path?[this.inputFile.path]:this.inputFile.map((e=>e.path));de["a"].emit("seed_torrent",{file:t,token:t[0],...this.settings}),this.value=!1},submit(){(""!==this.input||this.inputFile)&&("download"===this.mode?this.downloadTorrent():this.uploadTorrent())},onPasteFile(e,t){console.log("on paste file",e);const a=decodeURI(e.replace(/^file:\/\//,""));if(!ft.a.existsSync(a))return console.log("Not exists");const n=a.includes("/")?a.split("/").filter((e=>e)).pop():a;e.endsWith(".torrent")?this.show("download",[t||{path:a,name:n}]):this.$q.dialog({html:!0,title:this.$t("upload"),message:this.$t(`ask_if_upload_file
${a}
`),ok:this.$t("upload"),cancel:this.$t("cancel")}).onOk((()=>{de["a"].emit("seed_torrent",{file:[a],token:a,settings:this.settings})}))},onPasteUrl(e){if(!e.startsWith(q["protocol"]+"://$"))return e.startsWith("magnet:")||e.startsWith(q["protocol"]+":")||e.startsWith(q["shortProtocol"]+":")?void this.show("download",e):console.log("error not magnet",e)},onPasteLibraryUrl(e){if(this.libraryDialog)return;if(!e.startsWith(q["shortProtocol"]+"-library"))return;const[t,a,n]=e.replace(new RegExp(`^${q["shortProtocol"]}-library://`),"").split("/");let o=0;const i=()=>{const r=Object(kt["c"])(n);if(!r)return o||this.$q.notify(this.$t("loading")),o++<5?setTimeout(i,2e3):(console.log("cannot parse",e),void this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}));"channel"===t&&(this.libraryDialog=this.$q.dialog({title:this.$t("go_to_library"),message:this.$t("go_to_library_channel_msg",[decodeURIComponent(a||n)]),ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>{this.$root.$emit("navigate-to"),this.$router.push(r+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",r))),this.libraryDialog=null})).onDismiss((()=>{this.libraryDialog=null})))};ot["a"].whenReady.then(i)},async onPaste(e){if(!Object(f["isElectron"])()&&!Object(x["a"])())return;if(this.value)return;const t=e._ab_payload_;console.log(t);const a=t||e.clipboardData.getData("text")||e.clipboardData.files;if(console.log("onPaste",a),"object"===typeof a&&a.path&&this.onPasteFile(a.path,a),this.disableTasks)return console.log("wait for login to continue",a),this.taskQueue.push({type:"download",file:a});if("function"===typeof e._onClose&&this.onMagnetCloseCallbacks.push(e._onClose),a.startsWith("file://"))return this.onPasteFile(a),e.preventDefault();if(a.startsWith("magnet:"))return this.onPasteUrl(a),e.preventDefault();if([q["protocol"],q["shortProtocol"]].some((e=>a.startsWith(e+":")))){const t=await Object(wt["a"])(a);return t.startsWith("magnet:")?this.onPasteUrl(a):t.startsWith(q["shortProtocol"]+"-library")?this.onPasteLibraryUrl(t):console.warn("unknown url:",t),e.preventDefault()}}},mounted(){this.$root.$off("openTaskDialog"),this.$root.$off("closeTaskDialog"),this.$root.$on("openTaskDialog",((...e)=>{console.log("open task",...e),this.show(...e)})),this.$root.$on("closeTaskDialog",(()=>this.hide())),document.body.addEventListener("paste",this.onPaste)},watch:{value(e){if(e&&"download"===this.mode){if(this.input||this.inputFile&&"file"===this.tab)return;const e=async e=>{if(!e)return;const t=e.trim();if(["magnet",q["protocol"],q["shortProtocol"]].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(wt["a"])(t);if(!e||!e.startsWith("magnet"))return;this.tab="url",this.input=t}};Object(St["a"])().then(e).catch((()=>{console.log("cannot read clipboard")}))}const t=this.onMagnetCloseCallbacks.splice(0);t.forEach((e=>{"function"===typeof e&&e()})),this.input="",this.inputFile=null}}},zt=Tt,Pt=(a("b389"),a("3927")),At=Object(Y["a"])(zt,mt,ht,!1,null,"a418da6e",null),It=At.exports;ie()(At,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QTabs:Oe["a"],QTab:Ee["a"],QInput:te["a"],QFile:Pt["a"],QBtn:ne["a"],QCardActions:we["a"]}),ie()(At,"directives",{ClosePopup:ke["a"]});var qt=a("9efe"),Ot=a("a449"),Et=(a("a749"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"global-recommend-page"},[a("LibraryRecommend",{attrs:{fullscreen:""}})],1)}),Dt=[],jt=a("36a5"),Nt={name:"GlobalRecommend",components:{LibraryRecommend:jt["a"]},data(){return{selected:[]}},computed:{show(){const e="signedIn"===w["a"].state.account.authState;return!!e&&(!!ot["a"].isLoggedIn&&ot["a"].isFirstRegister)}},methods:{},mounted(){}},Lt=Nt,Ut=(a("3669"),Object(Y["a"])(Lt,Et,Dt,!1,null,"67462de2",null)),Rt=Ut.exports,Mt=a("2e22"),Ft=a("d884");console.log("import io CLIENT"),console.log("-import io CLIENT");const{displayName:Bt,protocol:Wt,shortProtocol:Ht}=O.a,Vt=a("d310").isElectron();Vt||console.warn("Warning: Torrent downloader is not impl in browser mode now");const Qt=()=>{const e=async function(e){console.log("[mixinBlockchainUrl] on paste",e,e.clipboardData.getData("text"));const t=e.clipboardData.getData("text");if(![Wt,Ht].some((e=>t.startsWith(e))))return;e.preventDefault();const a=await Object(wt["a"])(t);a.startsWith("ab-blockchain:")&&global.handleAbBlockchain({url:a})};let t;return{mounted(){t=e.bind(this),document.body.addEventListener("paste",t)},beforeDestroy(){document.body.removeEventListener("paste",t)}}},Gt={mixins:[We],created(){this.$amplify.addOnAuthStateChangedListener((()=>{const e=Object(b["a"])("version");process.env.JEST_TEST||-1===e.indexOf("dev")&&"Alphabiz"===Bt&&(e.includes("internal")||e.includes("nightly"))&&setTimeout(this.showInternalNotice.bind(this),100)}),{once:!0})}};let Kt=null;var Yt={name:"App",provide(){return{rootApp:this,io:de["a"],lib:ot["a"],autoRenew:this.autoRenew,path:this.path,taskQueue:this.taskQueue,dp$source:this.dp$source}},components:{GlobalRecommend:Rt,AboutDialog:Ze,TaskDialog:It,ApplicationBar:at["a"]},mixins:[_t["a"],Ot["b"],Qt(),Gt],data(){return{isElectron:Vt,isTestEnv:!1,path:"/library",settings:null,taskQueue:[]}},computed:{shouldQueueTask(){return!!w["a"].getters.settings.forceLogin&&(!w["a"].getters.accountUserInfo||!w["a"].getters.accountUserInfo.sub)},downloadingTorrents(){return pt["a"].taskList.downloading}},methods:{async resolveQueue(){if(0===this.taskQueue.length)return;const e=[],t=[],a=[];let n=null;while(this.taskQueue.length){const o=this.taskQueue.shift();switch(o.type){case"download":o.file.startsWith("file://")?a.push(o.file):t.push(o.file);break;case"upload":e.push(o.files);break;case"uploadOrPlay":n=o.file;break}}console.log(e,t,a,n);for(const o of[...new Set(e)])await this.promptUpload(o);t.length&&await this.promptDownload([...new Set(t)].join("\n")),a.length&&await this.promptDownload([...new Set(a)].join("\n")),n&&this.promptUploadOrPlay(n)},promptDownload(e,t=!1){if(console.log(e,t),!Vt)return;const a=e.startsWith("magnet")||e.startsWith(Wt)||e.startsWith(Ht)||e.startsWith("file://")?e:"file://"+e;if(e.startsWith("file://")&&!ft.a.existsSync(e))return;if(this.shouldQueueTask)return console.log("queue download",e,t),void this.taskQueue.push({type:"download",file:a,isMagnet:t});let n=null;const o=new Promise((e=>{n=e})),i=new DataTransfer;i.setData("text/plain",a);const r=new ClipboardEvent("paste",{clipboardData:i});return console.log("dispatch paste event"),r._ab_payload_=a,r._is_magnet_=t,r._onClose=n,console.log("dispatch event"),document.body.dispatchEvent(r),o},promptUpload(e){if(this.shouldQueueTask)return console.log("queue upload",e),void this.taskQueue.push({type:"upload",files:e});let t=null;const n=new Promise((e=>{t=e}));if(console.log("upload",e),!Vt){const o=()=>{de["a"].emit("wt-add",e[0]),t&&t()},i=a("c620").wtClient;return i.torrents.length?this.$q.dialog({message:this.$t("remove_old_task_desc"),ok:this.$t("remove_old_task"),cancel:this.$t("cancel")}).onOk((()=>{i.torrents[0]?(i.torrents[0].destroy(),i.torrents.splice(0),o()):o()})).onCancel(t):this.$q.dialog({message:this.$t("upload_torrent"),ok:this.$t("upload")}).onOk(o).onCancel(t),n}const o=e.map((e=>e.path||e)),i=o.map((e=>`
${e}
`)).join(""),r={html:!0,style:"white-space:pre-wrap;word-break:break-all",title:this.$t("upload"),message:this.$t("ask_if_upload_file")+"
"+i,ok:this.$t("upload"),cancel:this.$t("cancel")};return o.length>1&&(r.options={type:"radio",model:"single",items:[{label:this.$t("upload_as_single_files"),value:"single"},{label:this.$t("upload_as_one_directory"),value:"directory"}]}),this.$q.dialog(r).onOk((e=>{if(console.log("upload files",e,o),"single"===e)return o.forEach((e=>{de["a"].emit("seed_torrent",{file:[e],token:e,settings:{...this.settings},trackers:w["a"].getters.settings.trackerList||[]})})),void(t&&t());const a=1===o.length?o[0]:"";de["a"].emit("seed_torrent",{file:o,token:a,settings:{...this.settings},trackers:w["a"].getters.settings.trackerList||[]}),t&&t()})).onCancel((()=>{t&&t()})),n},promptUploadOrPlay(e){if(this.shouldQueueTask)return console.log("queue uploadOrPlay",e),void this.taskQueue.push({type:"uploadOrPlay",file:e});console.log(e),this.$q.dialog({title:this.$t("upload_or_play"),message:this.$t("ask_if_upload_or_play"),options:{type:"checkbox",model:[],items:[{label:this.$t("play"),value:"play"},{label:this.$t("upload"),value:"upload"}]},ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((t=>{if(t&&(t.includes("upload")&&de["a"].emit("seed_torrent",{file:[e.path||e],token:Math.random().toString().substring(2),settings:{...this.settings},trackers:w["a"].getters.settings.trackerList||[]}),t.includes("play"))){const t={};if("string"===typeof e){const a={src:"play:///"+encodeURI(e)};console.log("play source"),t.action={type:"play_source",source:a}}else console.log("play file"),t.action={type:"play_file",file:e};this.$router.push({name:"Player",query:{rand:Math.random()},params:t})}}))},getPublicVersion(e){return Object(b["a"])(e)},async onDrop(e){const t=e.dataTransfer.getData("text");if(console.log("drop",e,t),!t&&(!e.dataTransfer.files||!e.dataTransfer.files[0]))return;e.preventDefault();const a=[...e.dataTransfer.files];console.log(a);const n=t&&!a.length;if(await ct(e,a,t),Vt&&a.length){const e=a.some((e=>!ft.a.existsSync(null===e||void 0===e?void 0:e.path)));if(e)return this.$q.notify(this.$t("file_not_found"))}if(n)return this.promptDownload(t,!0);if(1===a.length){var o,i,r,s;if(Object(Xe["a"])((null===(o=a[0])||void 0===o?void 0:o.path)||""))return this.promptUploadOrPlay(a[0]);if(null!==(i=a[0])&&void 0!==i&&null!==(r=i.path)&&void 0!==r&&r.endsWith(".torrent"))return this.promptDownload(null===(s=a[0])||void 0===s?void 0:s.path)}if(a.length>=1){if(!Vt&&(a.length>1||!a[0].size))return this.$q.dialog({message:this.$t("web_mode_upload_single"),ok:this.$t("ok")});this.promptUpload([...a])}},showDisabled(){const e=this.$q.dialog({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[30]),ok:!1,cancel:!1,style:"z-index: 9999"}),t=Date.now();setInterval((()=>{const n=Math.floor((Date.now()-t)/1e3),o=30-n;e.update({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[o<0?0:o]),ok:!1,cancel:!1,style:"z-index: 9999"}),o<0&&a("1b85").ipcRenderer.send("exit-app")}),1e3)},resolveUnfinishPayments(){clearTimeout(Kt),Kt=setTimeout((()=>{const e=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]"),t=w["a"].state.credits.expensesTransactions.filter((t=>"FINISH"!==t.status&&"FAILED"!==t.status&&!e.includes(t.id)));if(!t.length)return console.log("No out-of-date unfinish payments");const a=new Date;a.setDate(a.getDate()-3);const n=t.filter((e=>{const t=new Date(e.createdAt);return t{this.dp$confirm(e.id)}))}),1e4)}},beforeCreate(){if(!this.$route.path.startsWith("/library")){if(new URL(location.href).pathname.startsWith("/oauth_redirect"))return;setTimeout((()=>{console.log(this.$route.path),"/library"!==this.$route.path?this.$router.replace("/library"):console.log("Currently in library page")}),1e3)}if(Vt){const e=a("1b85").ipcRenderer;e.once("redirect-log",((e,t)=>{a.e(11).then(a.bind(null,"44cf")).then((({default:e})=>{console.log("Should redirect to",t),e(t)}))}))}},created(){function e(e){for(const t of e){const e=this.dp$expenseHashMapper[t.infoHash];if(e)for(const t of e){const e=this.dp$expenseTxnDict[t];"PENDING"===e.status?this.dp$cancel(e.id):"COMPLETED"===e.status&&(console.log("dp$confirm from pauseAllDownloading"),this.dp$confirm(e.id))}}}if(qt["a"].enable.call(this),Object(ut["b"])(this),nt["a"].$on("request-sign-out",(()=>{console.log("request sign out");const t=this.$alphabiz.dialog({title:this.$t("account_sign_out"),message:this.$t("account_sign_out_confirm"),ok:this.$t("account_sign_out_anyway"),cancel:this.$t("cancel")}).onOk((async()=>{de["a"].emit("user_logout"),t.hide();const a=this.$q.dialog({progress:!0,message:this.$t("account_signing_out"),persistent:!0,ok:!1});e(w["a"].getters.tasks.downloading),await Object(dt["d"])(!0),await Object(dt["e"])(!0),a.hide(),nt["a"].$emit("confirm-sign-out")}))})),w["a"].dispatch("fetchSettings").then((e=>{if(!e.language)return;this.settings=e,console.log(e.language,this.$route.path);const t=Object(Ft["a"])(e.language)?e.language:"en-US";this.$i18n.locale=t,tt["a"].set({system:"auto",light:!1,dark:!0}[e.darkMode]),de["a"].emit("update_torrent_settings",{uploadLimit:e.uploadSpeed,downloadLimit:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,highLevelRadix:e.payedUserShareRadix,dhtPort:e.DHTlistenPort,torrentPort:e.BTlistenPort})})),Vt){(async()=>{console.log("Get client geoip");const e=global["require"]("geoip-country"),t=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("Failed to get geo for",e.message)}));if(!t)return;const a=e.lookup(t);if(!a)return console.log("Failed to get geo for",t);const n=a.country,o=O.a;"blacklist"===o.register.mode&&o.register.list.includes(n)?(console.log(n,"is in black list",o.register.list),this.showDisabled()):"whitelist"!==o.register.mode||o.register.list.includes(n)?console.log("Geo",n,o.register.list,"available in mode",o.register.mode):(console.log(n,"is not in white list",o.register.list),this.showDisabled())})(),document.body.style.overflowY="hidden";const e=a("1b85").ipcRenderer;e.on("open-file",((e,...t)=>{if(0!==t.length){if(1===t.length){const e=t[0];if(e.endsWith(".torrent")||e.startsWith(Wt+"://")||e.startsWith("magnet"))return this.promptDownload(e);if(e.startsWith(Ht+"://"))return this.promptDownload(e,!0);if(Object(Xe["a"])(e))return this.promptUploadOrPlay(e);if(e.endsWith(".abk"))return this.lib$openABK(e)}return this.promptUpload(t)}})),e.on("ask-for-associate",(()=>{this.$q.notify({message:this.$t("not_default_app"),actions:[{label:this.$t("dont_show_again"),handler:()=>w["a"].dispatch("set",{dontAskForAssociate:!0})},{label:this.$t("go_to_settings"),handler:()=>this.$router.push("/advanceSetting#bind-ports")}]})})),e.on("need-more-space",((e,{need:t,free:a})=>{Object(dt["d"])(!0),w["a"].dispatch("set",{libraryPreload:!1}).then((()=>{w["a"].dispatch("fetchSettings")})),this.$q.dialog({title:this.$t("space_not_enough"),message:this.$t("need_more_space",[Object(et["a"])(t),Object(et["a"])(a),Object(et["a"])(w["a"].getters.settings.minDiskSpace)]),ok:this.$t("ok")})})),e.on("main-process-error",((e,t)=>{console.error("Main process throws error:",t.stack)})),de["a"].once("first_launch",(async()=>{const e=Object(b["a"])("version"),t=localStorage.getItem(`first-launch_${O.a.name}`);if(t===e)return console.log("[First Launch Check] Not first launch");await ot["a"].whenReady,await Mt["a"].methods.initFilmRate(),await new Promise((e=>setTimeout(e,5e3))),this.$q.dialog({title:this.$t("set_download"),message:this.$t("set_download_desc"),ok:this.$t("go_to_settings"),cancel:this.$t("not_now")}).onOk((()=>{this.$router.replace("/basicSetting?highlight=download-directory")})).onDismiss((()=>{console.log("Dismiss"),localStorage.setItem(`first-launch_${O.a.name}`,e)}))})),setTimeout((()=>{e.send("main-window-ready")}),2e3)}},mounted(){w["a"].getters.accountUserInfo&&w["a"].getters.accountUserInfo.sub||de["a"].emit("user_logout"),(process&&process.env.TEST_EMAIL_DOMAIN||document.cookie.includes("TestEnv"))&&(this.isTestEnv=!0,Vt?(a("1b85").ipcRenderer.send("enable_devtools"),w["a"].dispatch("fetchSettings")):w["a"].dispatch("set",{disableDevTools:!1}).then((()=>{w["a"].dispatch("fetchSettings")}))),["dragleave","drop","dragenter","dragover"].forEach((e=>{document.getElementById("q-app").addEventListener(e,(e=>{e.preventDefault()}))})),nt["a"].$on("update-authstate",(e=>{"signedIn"===e&&(console.log("Signed in. Resolve queue."),this.resolveQueue())})),document.body.addEventListener("drop",this.onDrop)},beforeDestroy(){document.body.removeEventListener("drop",this.onDrop)},watch:{isTestEnv(e){window.isTestEnv=e},"$store.state.credits.expensesTransactions"(){this.resolveUnfinishPayments()},"$store.state.account.authState"(e,t){if("signedOut"!==e||t&&"signedIn"!==t||(this.$route.path.includes("/library")&&(this.$root.$emit("navigate-to"),this.$router.push("/library")),w["a"].getters.settings.forceLogin&&this.$amplify.showSignedOutDialog()),"signedIn"===e){if(console.log('dp$address: io.emit("set_user")',this.dp$address),de["a"].emit("set_user",{user:w["a"].state.account.nickname,sub:this.dp$address}),ot["a"].whenReady.then((()=>{console.log("all ready",this.taskQueue)})),w["a"].getters.shouldDisableTasks)return;de["a"].emit("user_login")}},downloadingTorrents(e,t){if("Player"!==this.$route.name&&!this.$route.path.startsWith("/library")&&e.length>t.length){const a=t.map((e=>e.origin||e.infoHash));let n=!1;for(const t of e){const e=t.origin||t.infoHash;if(!a.includes(e)){if(t.fromPost)return;n=!0}}if(n){const e="/downloader?currentTab=downloading";if(this.$router.currentRoute.fullPath===e)return;this.$router.push(e)}}}}},Jt=Yt,Zt=(a("0928"),a("c782")),Xt=Object(Y["a"])(Jt,p,m,!1,null,null,null),ea=Xt.exports;ie()(Xt,"components",{QScrollArea:Zt["a"],QDialog:J["a"],QCard:Z["a"]});var ta=async function(){const e="function"===typeof w["a"]?await Object(w["a"])({Vue:r["a"]}):w["a"],t="function"===typeof st["a"]?await Object(st["a"])({Vue:r["a"],store:e}):st["a"];e.$router=t;const a={router:t,store:e,render:e=>e(ea),el:"#q-app"};return{app:a,store:e,router:t}},aa=a("91ab"),na=a("f4eb"),oa=a.n(na);function ia(e){return oa()(e).luminosity()<.4?oa()("white").fade(.1).string():oa()("black").fade(.3).string()}function ra(e){return oa()(e).luminosity()<.4?oa()(e).saturate(.3).darken(.5).string():oa()(e).desaturate(.3).darken(.5).string()}function sa(e,t){const a=e=>{const a=oa()(t).isDark()?4:3;return oa()(e).contrast(oa()(t))>=a};if(a(e))return e;const n=oa()(e).isDark();let o=oa()(e);return o=n?o.mix(oa()("white"),.3):o.mix(oa()("black"),.3),a(o.string())||(o=o.saturate(.6)),o.string()}function la(e,t=!1){const a={color_page:"#fcfcfc",color_page_darken:"#1f1f1f"};return sa(e,t?a.color_page_darken:a.color_page)}var ca={invokeTextColor:ia,invokeDarkenColor:ra,invokeOnPageColor:la};let da;const ua={mixins:[],render(e){const t=[];return this._injectVars(t),this._injectRules(t),e("style",{attrs:{type:"text/css","data-ab-theme":""}},t.join("\n"))},methods:{_injectVars(e){Object.keys(this.vars$root).length&&e.push(`:root {\n ${Object.entries(this.vars$root).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`),Object.keys(this.vars$light).length&&e.push(`.body--light {\n ${Object.entries(this.vars$light).map((e=>" "+e.join(": ")+";")).join("\n")}\n}`),Object.keys(this.vars$dark).length&&e.push(`.body--dark {\n ${Object.entries(this.vars$dark).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)},_injectRules(e){Object.entries(this.rules$root).forEach((([t,a])=>{e.push(`${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$light).forEach((([t,a])=>{e.push(`.body--light ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$dark).forEach((([t,a])=>{e.push(`.body--dark ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)}))},setVars(e,t=null){const a=null===t?"vars$root":t?"vars$dark":"vars$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[`--${Object(aa["a"])(t)}`]:a})),{}))},setRules(e,t=null){const a=null===t?"rules$root":t?"rules$dark":"rules$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[t]:Object.entries(a).reduce(((e,[t,a])=>({...e,[Object(aa["a"])(t)]:a})),{})})),{}))}},data(){return{vars$root:{},vars$light:{},vars$dark:{},rules$root:{},rules$light:{},rules$dark:{}}}};function _a(){return da||(da=document.createElement("style"),document.head.appendChild(da)),da}let pa;var ma=e=>pa||(ua.mixins.push({created(){this.setupTheme(e)},methods:{setupTheme(e){Object.entries(e).forEach((([e,t])=>{this.setVars({[`q_color_${e}`]:t,[`q_color_on_${e}`]:ca.invokeTextColor(t),[`q_color_txt_${e}`]:ca.invokeOnPageColor(t,!1)},!1),this.setVars({[`q_color_${e}`]:ca.invokeDarkenColor(t),[`q_color_on_${e}`]:ca.invokeTextColor(ca.invokeDarkenColor(t)),[`q_color_txt_${e}`]:ca.invokeOnPageColor(ca.invokeDarkenColor(t),!0)},!0)}));const t=e=>this.setRules({[`.bg-${e}`]:{backgroundColor:`var(--q-color-${e}) !important`,color:`var(--q-color-on-${e})`},[`.text-${e}`]:{color:`var(--q-color-txt-${e}) !important`},[`.bg-${e} .text-${e}`]:{color:`var(--q-color-on-${e}) !important`},[`.bg-${e}.text-${e}`]:{color:`var(--q-color-on-${e}) !important`}});Object.keys(e).forEach(t)}}}),pa=new r["a"](ua),pa.$mount(_a()),{updateTheme(e){var t;null===(t=pa)||void 0===t||t.setupTheme(e)}}),ha=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handlePan,expression:"handlePan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"overflow-hidden",staticStyle:{"max-width":"360px"},style:e.floatingStyle,attrs:{flat:e.inner,bordered:e.inner}},[a("q-card-section",{staticClass:"q-py-xs flex relative-position bg-primary text-primary"},[a("div",[e._v("Theme Editor")]),a("q-space"),e.inner?a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"open_in_new",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("show")}}}):e._e(),e.inner?e._e():a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"close",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-py-xs"},e._l(e.currentColors,(function(t,n){return a("InputColor",{key:n,attrs:{label:n,value:t},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},input:function(t){return e.updateColor(n,t)}}})})),1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-sm flex"},[a("q-space"),a("q-btn",{staticClass:"q-mx-xs",attrs:{label:"Reset",unelevated:"",color:"general","text-color":"general","no-caps":""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:e.reset}})],1)],1)},ga=[],fa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"q-my-sm",attrs:{label:e.label,value:e.value,outlined:"",dense:"",readonly:""},on:{input:function(t){return e.$emit("input",t)}},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("q-icon",{staticClass:"rounded-borders cursor-pointer",style:{backgroundColor:e.value,color:e.textColor,width:"32px",height:"32px",marginLeft:"-8px"},attrs:{name:"colorize"}},[a("q-popup-proxy",{attrs:{cover:"","transition-show":"scale","transition-hide":"scale"}},[a("q-color",{attrs:{value:e.value},on:{input:function(t){return e.$emit("input",t)}}})],1)],1)]},proxy:!0},{key:"after",fn:function(){return[a("div",{staticClass:"flex items-center full-height",staticStyle:{margin:"-4px -8px -4px -2px"}},[a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.value,color:e.ColorUtils.invokeTextColor(e.value),width:"40px",height:"40px"}}),a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.ColorUtils.invokeDarkenColor(e.value),color:e.ColorUtils.invokeTextColor(e.ColorUtils.invokeDarkenColor(e.value)),width:"40px",height:"40px"}})])]},proxy:!0}])})},ba=[],ya={name:"InputColor",props:{label:String,value:String},data(){return{ColorUtils:ca}},computed:{textColor(){return ca.invokeTextColor(this.value)}}},va=ya,wa=a("f106"),ka=a("ff50"),Sa=Object(Y["a"])(va,fa,ba,!1,null,"30ed6541",null),Ca=Sa.exports;ie()(Sa,"components",{QInput:te["a"],QIcon:wa["a"],QPopupProxy:ka["a"],QColor:Ye["a"]});let xa=null;const $a={data(){return{floating$info:null,floating$size:null}},computed:{floatingStyle(){var e,t,a,n;if(this.inner)return{};const o={};this.floating$info?Object.assign(o,{x:this.floating$info.position.left,y:this.floating$info.position.top}):this.floating$size?Object.assign(o,{x:document.body.clientWidth/2-this.floating$size.width/2,y:document.body.clientHeight/2-this.floating$size.height/2}):Object.assign(o,{x:0,y:0});const i=8;return o.y=Math.max(i,Math.min(o.y,document.body.clientHeight-i-(null!==(e=null===(t=this.floating$size)||void 0===t?void 0:t.height)&&void 0!==e?e:0))),o.x=Math.max(i,Math.min(o.x,document.body.clientWidth-i-(null!==(a=null===(n=this.floating$size)||void 0===n?void 0:n.width)&&void 0!==a?a:0))),{position:"fixed",top:o.y+"px",left:o.x+"px"}}},mounted(){const{width:e,height:t}=getComputedStyle(this.$refs.card.$el),a=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e);this.floating$size={width:a(e),height:a(t)}},methods:{handlePan(e){if(!this.inner){if(this.floating$info=this.floating$info||{},e.isFirst){const e=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e),{top:t,left:a}=getComputedStyle(this.$refs.card.$el);Object.assign(this.floating$info,{from:{x:e(a),y:e(t)}})}else e.isFinal;Object.assign(this.floating$info,{position:{top:this.floating$info.from.y+e.offset.y,left:this.floating$info.from.x+e.offset.x}}),this.floating$info=Object.assign({},this.floating$info)}}}},Ta={data(){return xa=xa||Object.assign({},this.$theme.getCurrentTheme()),{currentColors:xa}},methods:{updateColor(e,t){this.currentColors[e]=t,this.$theme.updateTheme({[e]:t})},reset(){Object.assign(this.currentColors,this.$theme.getCurrentTheme()),this.$theme.updateTheme(this.currentColors)}}};var za={name:"ThemeEditor",mixins:[$a,Ta],components:{InputColor:Ca},props:{inner:Boolean}},Pa=za,Aa=a("3a21"),Ia=Object(Y["a"])(Pa,ha,ga,!1,null,null,null),qa=Ia.exports;let Oa;ie()(Ia,"components",{QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"]}),ie()(Ia,"directives",{TouchPan:Aa["a"]});var Ea=({Vue:e})=>{e.component("ThemeEditor",qa);let t=O.a.theme.color;const a=ma(t);e.prototype.$theme={showFloatingEditor:Da,hideFloatingEditor:ja,hasFloatingEditor:()=>!!Oa,updateTheme:e=>a.updateTheme(e),getCurrentTheme:()=>t}};function Da({onClose:e}={}){if(Oa)return;const t=document.createElement("div");document.body.appendChild(t),Oa=new r["a"]({render(t){return t("ThemeEditor",{ref:"editor",on:{close:()=>{ja(),null===e||void 0===e||e()}}})}}).$mount(t)}function ja(){Oa&&(Oa.$destroy(),Oa.$el.remove(),Oa=null)}a("f200"),a("d4b5"),a("7a76"),a("dc69"),a("b37d");var Na=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g({class:["icon","text"].includes(e.buttonType)?"bg-transparent":void 0,attrs:{"no-wrap":"","no-caps":e.noCaps,size:e.size,loading:e.loading,disable:e.value||e.loading,percentage:e.percentage,type:e.type,icon:e.icon,fab:["fab"].includes(e.buttonType),unelevated:!["fab","elevated"].includes(e.buttonType),dense:e.dense,round:["icon"].includes(e.buttonType),label:["icon"].includes(e.buttonType)?void 0:e.label,color:["icon","text"].includes(e.buttonType)?void 0:e.color,textColor:["general","primary","secondary","accent","positive","negative"].includes(e.color)?e.color:""},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])},Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},La=[],Ua={name:"AlphabizButton",props:{buttonType:{type:String,default:"filled"},color:{type:String,default:"general"},size:{type:String,default:"md"},noCaps:{type:Boolean,default:!1},icon:{type:String,default:void 0},dense:Boolean,label:{type:String,default:void 0},value:{type:Boolean,default:!1},immediate:{type:Boolean,default(){return!!this.onClick}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},timeout:{type:Object,default:void 0},onAnimationEnd:{type:Function,default:void 0}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}else this.$emit("click",e)},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t&&t()}return o}}},beforeDestroy(){this.shutdownTimer()}},Ra=Ua,Ma=(a("c036"),a("53ef")),Fa=Object(Y["a"])(Ra,Na,La,!1,null,null,null),Ba=Fa.exports;ie()(Fa,"components",{QBtn:ne["a"],QSpinner:Ma["a"]});var Wa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"alphabiz-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,label:e.label,"use-input":Boolean(e.filter),"input-debounce":"0","input-style":e.enableFilter?"":"display:none"},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}}],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},Ha=[],Va={name:"AlphabizSelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String,Boolean],label:String,itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0}},data(){return{enableFilter:!1,filterValue:""}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid alphabiz-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0,this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.enableFilter=!1,this.filterValue=""},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))}}},Qa=Va,Ga=(a("9344"),a("b121")),Ka=Object(Y["a"])(Qa,Wa,Ha,!1,null,null,null),Ya=Ka.exports;ie()(Ka,"components",{QSelect:ee["a"],QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QItemLabel:ye["a"],QField:Ga["a"]});var Ja=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"wrapper",staticClass:"virtual-scroll-grid-wrapper",on:{scroll:e.handleScroll}},[e._e(),a("div",{ref:"before",staticClass:"virtual-scroll-grid__before"},[e._t("before",null,null,e.getSlotContext())],2),a("div",{ref:"grid",staticClass:"virtual-scroll-grid"},[e._l(e.items,(function(t,a){return e._t("default",null,null,Object.assign(e.getSlotContext(),{item:t,index:e.virtual.from+a}))}))],2),a("div",{ref:"after",staticClass:"virtual-scroll-grid__after"},[e._t("after",null,null,e.getSlotContext())],2)])},Za=[],Xa=a("3387");const en={data(){return{grid:{container_width:void 0,column:void 0,scroll_top:void 0},virtual:{enable:!0,from:0,to:0},go$observer:null,update_enable:!0}},methods:{vs$calc(){const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter,c=Math.max(1,Math.floor((r-this.gutter)/s)),d=Math.floor((r-c*s)/2);let u=0;u+=this.gutter/2,u+=i;const _=Math.max(0,Math.floor((o-u)/l)),p=_*c,m=o-u-_*l,h=Math.ceil((n+m)/l),g=p+h*c,f=Math.min(g,this.itemsSize),b=h+(g>this.itemsSize?-1:0),y=f-p,v=this.itemsSize%c,w=Math.ceil((this.itemsSize-f)/c);let k,S,C,x;if(this.virtual.enable){const e=Math.max(0,_-this.virtualScrollSliceRow),t=Math.max(0,w-this.virtualScrollSliceRow);k=e*l,S=t*l;let a=t*c;a&&v&&(a-=c-v),C=0+e*c,x=this.itemsSize-a}else k=0,S=0,C=0,x=this.itemsSize;return{wrapper:e,grid:a,scroll_top:o,column:c,padding:d,scroll_row_top:_,scope_from:p,scope_to:f,scope_row:b,scope_count:y,scope_mod:v,scroll_row_bottom:w,virtual_padding_top:k,virtual_padding_bottom:S,virtual_from:C,virtual_to:x}},vs$update2(){const{wrapper:e,grid:t,scroll_top:a,column:n,padding:o,scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u,virtual_padding_top:_,virtual_padding_bottom:p,virtual_from:m,virtual_to:h}=this.vs$calc(),g=([e,t])=>this.grid[e]===t||(this.grid[e]=t),f=([e,t])=>this.grid[e]===t||(this.grid[e]=t);Object.entries({scroll_top:a,column:n}).map(g),this.grid._padding!==o&&(this.grid._padding=o,e.style.setProperty("--virtual-scroll-grid-padding",`${o}px`)),Object.entries({scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u}).map(f);const b=0;(this.virtual.to-s<=b||r-this.virtual.from<=b)&&(this.virtual._virtual_padding_top!==_&&(this.virtual._virtual_padding_top=_,t.style.setProperty("--virtual-scroll-offset-top",`${_}px`)),this.virtual._virtual_padding_bottom!==p&&(this.virtual._virtual_padding_bottom=p,t.style.setProperty("--virtual-scroll-offset-bottom",`${p}px`)),this.virtual.from!==m&&(this.virtual.from=m),this.virtual.to!==h&&(this.virtual.to=h))},vs$update(e){const t=()=>{const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter;return{wrapper:e,before:t,grid:a,wrapper_height:n,scroll_top:o,before_height:i,grid_width:r,width_per_item:s,height_per_item:l}},a={on_measure:({grid_width:e,width_per_item:t})=>{const a=Math.max(1,Math.floor((e-this.gutter)/t)),n=Math.floor((e-a*t)/2);return{column:a,padding:n}},on_update:({wrapper:e,column:t,padding:a,scroll_top:n})=>{this.grid.scroll_top=n,this.grid.column=t,e.style.setProperty("--virtual-scroll-grid-padding",`${a}px`)}},n={on_measure:({scroll_top:e,height_per_item:t,wrapper_height:a,before_height:n,column:o})=>{let i=0;i+=this.gutter/2,i+=n;const r=Math.max(0,Math.floor((e-i)/t)),s=r*o,l=e-i-r*t,c=Math.ceil((a+l)/t),d=s+c*o,u=Math.min(d,this.itemsSize),_=c+(d>this.itemsSize?-1:0),p=u-s,m=this.itemsSize%o,h=Math.ceil((this.itemsSize-u)/o);return{scroll_row_top:r,scope_from:s,scope_to:u,scope_row:_,scope_count:p,scope_mod:m,scroll_row_bottom:h}},on_update:e=>{this.grid.scroll_row_top=e.scroll_row_top,this.grid.scope_from=e.scope_from,this.grid.scope_to=e.scope_to,this.grid.scope_row=e.scope_row,this.grid.scope_count=e.scope_count,this.grid.scope_mod=e.scope_mod,this.grid.scroll_row_bottom=e.scroll_row_bottom}},o={on_measure:({scroll_row_top:e,scroll_row_bottom:t,height_per_item:a,column:n,scope_mod:o})=>{if(!this.virtual.enable)return{virtual_padding_top:0,virtual_padding_bottom:0,virtual_from:0,virtual_to:this.itemsSize};e=Math.max(0,e-this.virtualScrollSliceRow),t=Math.max(0,t-this.virtualScrollSliceRow);const i=e*a,r=t*a;let s=t*n;s&&o&&(s-=n-o);const l=0+e*n,c=this.itemsSize-s;return{virtual_padding_top:i,virtual_padding_bottom:r,virtual_from:l,virtual_to:c}},on_update:({grid:e,virtual_padding_top:t,virtual_padding_bottom:a,virtual_from:n,virtual_to:o})=>{e.style.setProperty("--virtual-scroll-offset-top",`${t}px`),e.style.setProperty("--virtual-scroll-offset-bottom",`${a}px`),this.virtual.padding_top=t,this.virtual.padding_bottom=a,this.virtual.from=n,this.virtual.to=o}},i={update_rect:a,update_grid:n,update_virtual:o};e||(e=Object.keys(i));const r=t();r&&(e.forEach((e=>{i[e]&&Object.assign(r,i[e].on_measure(r))})),e.forEach((e=>{i[e]&&i[e].on_update(r)})))},scrollTo(e){this.$refs.wrapper.scrollTop=e}},activated(){this.grid.scroll_top&&this.scrollTo(this.grid.scroll_top),this.update_enable=!0},deactivated(){this.update_enable=!1},mounted(){const e=this.vs$update2,t=Object(Xa["debounce"])((()=>e.call(this)),!0===this.$q.platform.is.ios?120:35,{trailing:!0});this.vs$update=(a,n)=>{this.update_enable&&(n?t.call(this):e.call(this))};const a=this.$refs.wrapper;this.$watch("gutter",(()=>{a.style.setProperty("--virtual-scroll-grid-gutter",`${this.gutter}px`)}),{immediate:!0}),this.$watch("itemWidth",(()=>{a.style.setProperty("--virtual-scroll-grid-item-width",`${this.itemWidth}px`)}),{immediate:!0}),this.$watch("itemHeight",(()=>{a.style.setProperty("--virtual-scroll-grid-item-height",`${this.itemHeight}px`)}),{immediate:!0}),this.go$observer=new ResizeObserver((()=>this.vs$update("go$observer"))),this.go$observer.observe(this.$refs.grid);const n=["gutter","itemsSize","virtualScrollSliceRow","itemWidth","itemHeight"];this.$watch((()=>n.reduce(((e,t)=>({...e,[t]:this[t]})),{})),(()=>this.vs$update("watcher")))},beforeUnmount(){this.go$observer.disconnect()}};var tn={name:"VirtualScrollGrid",mixins:[en],props:{virtualScrollSliceRow:{type:Number,default:30},itemWidth:Number,itemHeight:Number,gutter:{type:Number,default:16},itemsSize:Number,itemsFn:Function},data(){return{items:[]}},methods:{getSlotContext(){return{column:this.grid.column,mod:this.grid.scope_mod,virtual:this.virtual,grid:this.grid}},handleScroll(...e){this.vs$update("scroll",!0),this.$emit("scroll",...e),this.$emit("virtual-scroll",{from:this.virtual.from,to:this.virtual.to})}},mounted(){let e=!0;this.$watch((()=>(e&&(e=!1,this.vs$update("item_init")),this.itemsFn(this.virtual.from,this.virtual.to))),(e=>{this.items=e}),{immediate:!0})}},an=tn,nn=(a("06cd"),Object(Y["a"])(an,Ja,Za,!1,null,null,null)),on=nn.exports,rn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{"no-shake":"","content-class":{"fullscreen-dialog":!e.progress},persistent:!0,position:e.screen$xs&&!e.progress?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.handleEsc.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleEnter.apply(null,arguments)}]}},[a("q-card",{staticClass:"column",style:{position:"relative",minWidth:e.title||e.showActions?"320px":void 0,maxWidth:"400px",maxHeight:"calc(100vh - 64px)"}},[e.title?a("q-card-section",{staticClass:"q-px-md q-pb-none",style:{paddingTop:"20px"}},[e.title?a("div",{staticClass:"text-h6 text-weight-bold non-selectable"},[e._v("\n "+e._s(e.title)+"\n ")]):e._e()]):e._e(),e.message?[a("q-card-section",{staticClass:"q-pb-none"},[a("div",{staticStyle:{"white-space":"pre-line"}},[e._v(e._s(e.message))])])]:e._e(),a("DialogBanner",{attrs:{banner:e.banner}}),a("DialogProgress",{attrs:{progress:e.progress}}),a("DialogList",{attrs:{list:e.list}}),a("DialogOption",{attrs:{options:e.options},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),a("DialogPrompts",{attrs:{prompts:e.prompts},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),e.showActions?a("q-card-actions",{staticClass:"q-px-md q-py-md",attrs:{vertical:""}},e._l(e.buttonAttrs,(function(t,n){return a("q-btn",e._g(e._b({directives:[{name:"show",rawName:"v-show",value:t.show,expression:"attrs.show"}],key:n,on:{keydown:function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;t.stopPropagation()}}},"q-btn",t.props,!1),t.event))})),1):e._e()],2)],1)},sn=[],ln={data(){return{dialog$validResults:{}}},computed:{dialog$validResult(){const e=Object.values(this.dialog$validResults).find((e=>!0!==e));return e||!0}},methods:{dialog$setValid(e,t){this.dialog$validResults={...this.dialog$validResults,[e]:t}}}},cn={data(){return{dialog$argumentGetters:{}}},methods:{dialog$arguments(){const e=Object.keys(this.dialog$argumentGetters).reduce(((e,t)=>(e[t]=this.dialog$argumentGetters[t](this),e)),{});return e},dialog$registerArgument(e,t){this.dialog$argumentGetters[e]=t}}},dn={data(){return{loadingState:null}},methods:{async dialog$useLoadingState(e,t){let a;try{this.loadingState=e;const n=t(this);a=n.then?await n:n}finally{this.loadingState=null}return a}}},un={methods:{dialog$buttonObject(e,t){if(!1===t)return null;const a={color:"general",textColor:"general",label:this.$t(e)},n={};return Object.assign(n,a),"object"===typeof t&&(Object.assign(n,t),"function"===typeof t.label&&(n.label=t.label()),"function"===typeof t.disable&&(n.disable=t.disable())),"function"===typeof t&&(n.handler=t.bind(this)),"string"===typeof t&&(n.label=t),n},async dialog$buttonHandler(e,t){if(!e)return;const a=e.handler;try{if(a){const e=a(this);e&&e.then&&await e}else t&&t()}catch(n){this.$emit("error",n)}},dialog$buttonAttrs(e,t,a){if(!t)return{show:!1};const n={noCaps:!0,noWrap:!0,unelevated:!0};return Object.assign(n,t),n.loading=this.loadingState===e||t.loading,n.disable=!!this.loadingState||t.disable,{show:!!t,props:n,event:{click:a}}}}},_n={props:{actions:Object},computed:{dialog$actionButtons(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=this.dialog$buttonObject(t,this.actions[t]),e)),{}):null},dialog$actionHandlers(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=()=>this.dialog$buttonHandler(this.dialog$actionButtons[t]),e)),{}):null}}},pn={props:{ok:{type:[Boolean,String,Function,Object],default:!0},cancel:{type:[Boolean,String,Function,Object],default:!1}},computed:{buttonOk(){const e=this.dialog$buttonObject("ok",this.ok);return e?(e.disable||(e.disable=!0!==this.dialog$validResult),e):e},buttonCancel(){return this.dialog$buttonObject("cancel",this.cancel)}},methods:{async handleOk(){await this.dialog$buttonHandler(this.buttonOk,(()=>{this.emitOk(this.dialog$arguments()),this.hide()}))},async handleCancel(){await this.dialog$buttonHandler(this.buttonCancel,(()=>{this.hide()}))}}},mn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.banner?a("q-card-section",{staticClass:"q-pb-none overflow-hidden"},[a("q-banner",{staticClass:"bg-general text-general rounded-borders",scopedSlots:e._u([e.objectBanner.avatar?{key:"avatar",fn:function(){return[a("div",{staticClass:"flex items-center",staticStyle:{height:"40px"}},["loading"===e.objectBanner.avatar?a("q-spinner-ios",{staticStyle:{margin:"0.275rem"},attrs:{size:"1.2rem",color:"general"}}):a("q-icon",{attrs:{size:"1.75rem",name:e.objectBanner.avatar}})],1)]},proxy:!0}:null,{key:"default",fn:function(){return[e.objectBanner.title?a("div",{staticClass:"text-bold"},[e._v("\n "+e._s(e.objectBanner.title)+"\n ")]):e._e(),a("div",{staticClass:"ellipsis-3-lines"},[e._v(e._s(e.objectBanner.message))])]},proxy:!0}],null,!0)})],1):e._e()},hn=[],gn={name:"DialogBanner",props:{banner:[String,Object]},computed:{objectBanner(){return this.banner?"string"===typeof this.banner?{message:this.banner}:this.banner:null}}},fn=gn,bn=a("0051"),yn=a("7027"),vn=Object(Y["a"])(fn,mn,hn,!1,null,null,null),wn=vn.exports;ie()(vn,"components",{QCardSection:X["a"],QBanner:bn["a"],QSpinnerIos:yn["a"],QIcon:wa["a"]});var kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.progress?a("q-card-section",{staticClass:"q-pb-md flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),"boolean"!==typeof e.progress?a("div",{staticClass:"q-ml-sm"},["string"===typeof e.progress?[e._v("\n "+e._s(e.progress)+"\n ")]:[a("div",[e._v(e._s(e.progress.title))]),e.progress.caption?a("div",[e._v(e._s(e.progress.caption))]):e._e()]],2):e._e()],1):e._e()},Sn=[],Cn={name:"DialogProgress",props:{progress:[Boolean,String,Object]}},xn=Cn,$n=Object(Y["a"])(xn,kn,Sn,!1,null,"c513ce1e",null),Tn=$n.exports;ie()($n,"components",{QCardSection:X["a"],QSpinnerIos:yn["a"]});var zn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.list?a("q-card-section",{staticClass:"q-pb-none"},[a("q-list",{staticClass:"rounded-borders full-width column items-stretch",attrs:{bordered:"",separator:""}},e._l(e.list.items,(function(t,n){return a("q-item",{key:t.key||n,staticClass:"overflow-hidden"},[a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))]),t.caption?a("q-item-label",{staticClass:"ellipsis-3-lines",attrs:{caption:""}},[e._v(e._s(t.caption))]):e._e()],1)],1)})),1)],1):e._e()},Pn=[],An={name:"DialogList",props:{list:Object}},In=An,qn=a("e7c2"),On=Object(Y["a"])(In,zn,Pn,!1,null,"18c77b6c",null),En=On.exports;ie()(On,"components",{QCardSection:X["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"]});var Dn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelOptions?a("q-card-section",{staticClass:"q-pb-none"},[a("q-option-group",{staticClass:"dialog-option-group",attrs:{options:e.modelOptions.items,type:e.modelOptions.type||"radio"},scopedSlots:e._u([{key:"label",fn:function(t){var n=t.label,o=t.desc,i=t.tooltip;return[a("q-item",{staticClass:"q-pl-xs q-pr-none non-selectable"},[a("q-item-section",[a("q-item-label",[e._v(e._s(n))]),o?a("q-item-label",{staticClass:"ellipsis",attrs:{caption:""}},[e._v(e._s(o))]):e._e()],1),i?a("q-tooltip",{attrs:{"max-width":"320px",anchor:"bottom middle",self:"top middle","transition-show":"jump-down","transition-hide":"jump-up","transition-duration":0,delay:600}},[a("span",{staticStyle:{"font-size":"0.8rem"}},[e._v(e._s(i))])]):e._e()],1)]}}],null,!1,3266841923),model:{value:e.modelOptions.model,callback:function(t){e.$set(e.modelOptions,"model",t)},expression:"modelOptions.model"}})],1):e._e()},jn=[],Nn={name:"DialogOption",props:{options:Object},data(){return{modelOptions:this.options}},computed:{validatedResult(){const e=this.modelOptions.items.find((e=>e.value===this.modelOptions.model));return e?!e.disable||"disabled_option_item":"option_item_not_found"}},beforeMount(){this.modelOptions&&(this.$emit("registerArgument","option",(()=>this.modelOptions.model)),this.$watch("validatedResult",(e=>{this.$emit("setValid","option",e)}),{immediate:!0}))}},Ln=Nn,Un=(a("030c"),a("8128")),Rn=a("cf25"),Mn=a("2b77"),Fn=Object(Y["a"])(Ln,Dn,jn,!1,null,null,null),Bn=Fn.exports;ie()(Fn,"components",{QCardSection:X["a"],QOptionGroup:Un["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QTooltip:Rn["a"],QRadio:Mn["a"]});var Wn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelPrompts?a("q-card-section",{staticClass:"q-pb-none"},[e._l(e.modelPrompts,(function(t){return["tel"===t.type?a("DialogPromptTel",{key:t.key,staticClass:"q-my-sm",attrs:{rules:t.rules||void 0},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}}):a("q-input",{key:t.key,staticClass:"q-my-sm",attrs:{type:"password"!==t.type?t.type:t.hidden?"password":"text",label:t.label,rules:t.rules||void 0,outlined:"",dense:"",autofocus:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[t.icon&&"tel"!==t.type?a("q-icon",{attrs:{name:t.icon}}):e._e()]},proxy:!0},void 0!==t.hidden?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:t.hidden?"visibility_off":"visibility"},on:{click:function(e){t.hidden=!t.hidden}}})]},proxy:!0}:null],null,!0),model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}})]}))],2):e._e()},Hn=[],Vn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("TelInput",{attrs:{"error-message":e.errorMessage},on:{setNotSay:e.setNotSay},scopedSlots:e._u([{key:"selector",fn:function(){return[a("TelSelector",{model:{value:e.selectedOption,callback:function(t){e.selectedOption=t},expression:"selectedOption"}})]},proxy:!0},e.selectedOption.prefixCode?{key:"prefix-code",fn:function(){return[e._v("\n +"+e._s(e.selectedOption.prefixCode)+"\n ")]},proxy:!0}:null],null,!0),model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}})},Qn=[],Gn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"dialog-prompt-tel",attrs:{outlined:"",dense:"",autofocus:"",type:"tel",value:e.value,error:!!e.errorMessage,"error-message":e.errorMessage},on:{input:function(t){return e.$emit("input",t)},keydown:function(t){if(!t.type.indexOf("key")&&8!==t.keyCode)return null;0===e.value.length&&e.$emit("setNotSay")}},scopedSlots:e._u([{key:"before",fn:function(){return[e._t("selector")]},proxy:!0},{key:"prepend",fn:function(){return[e.$slots["prefix-code"]?a("div",{staticClass:"non-selectable",style:e.prefixCodeStyle},[e._t("prefix-code")],2):e._e()]},proxy:!0}],null,!0)})},Kn=[];const Yn={data(){return{prefixCodeStyle:{padding:"6px 0",fontSize:"14px",fontWeight:"400",letterSpacing:"0.00937em",lineHeight:"28px"}}}};var Jn={name:"TelInput",mixins:[Yn],props:{value:String,errorMessage:String}},Zn=Jn,Xn=(a("0102"),Object(Y["a"])(Zn,Gn,Kn,!1,null,null,null)),eo=Xn.exports;ie()(Xn,"components",{QInput:te["a"],QField:Ga["a"]});var to=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g(e._b({attrs:{dense:"",outlined:"",behavior:"menu",options:e.prefixOptions,"option-label":function(){return""},"menu-offset":[0,4],"menu-self":"bottom start","menu-anchor":"top left","transition-show":"jump-down","transition-hide":"jump-up"},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",{staticClass:"non-selectable",style:e.noOptionStyle},[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},{key:"prepend",fn:function(){return[a("div",{staticClass:"non-selectable",style:e.emojiStyle},[e._v(e._s(e.emoji))])]},proxy:!0},{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x non-selectable",style:e.optionStyle},"q-item",n,!1),o),[i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[a("div",{style:e.emojiStyle},[e._v(e._s(i.emoji))])]):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s("not_say"===i.label?e.$t("account_not_say"):i.label)}})],1)],1)]}}]),model:{value:e.prefixModel,callback:function(t){e.prefixModel=t},expression:"prefixModel"}},"q-select",e.filterProps,!1),e.filterEvents))},ao=[],no=a("1c53");const oo=(()=>{const e={TW:e=>{"TW"===e.country_code&&(e.emoji="🇼🇫")}},t=[];return Object.entries(no["countries"]).forEach((([a,n])=>{const o={country_code:a,name:n.name,name_native:n.native,emoji:n.emoji,phone_list:n.phone.split(","),language_list:n.languages};e.TW(o),t.push(o)})),t})(),io=(()=>{const e=[];return oo.forEach((t=>{t.phone_list.forEach((a=>{const n={id:`${t.country_code}-${a}`,country_emoji:t.emoji,country_name:t.name,country_name_native:t.name_native,country_code:t.country_code,phone_number_code:a};e.push(n)}))})),e})(),ro=(()=>{const e={US:(e,t)=>{if("1"===e.phone_number_code)return"US"===e.country_code?-1:"US"===t.country_code?1:0}},t=(t,a)=>{const n=parseInt(t.phone_number_code),o=parseInt(a.phone_number_code);if(n!==o)return n>o?1:-1;let i;return Object.values(e).some((e=>(i=e(t,a),void 0!==i))),void 0===i?0:i},a=io.sort(t);return a})(),so=ro.reduce(((e,t)=>(e[t.id]=t,e)),{}),lo={value:"not_say",label:"not_say",emoji:"🇼🇫"},co=(()=>{const e=Object.values(so).map((e=>({value:e.id,label:`${e.country_name_native} (+${e.phone_number_code})`,emoji:e.country_emoji})));return e.unshift(lo),e})(),uo=e=>e===lo.value?lo:so[e],_o=e=>{const t=e.startsWith("+"),a=/^00/.test(e);let n=null,o=null,i=e;return t?Object.values(so).find((t=>{const a=`+${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})):a&&Object.values(so).find((t=>{const a=`00${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})),{countryCode:n,prefixCode:o,phoneNumber:i}},po={data(){return{emojiStyle:{fontFamily:"Noto Color Emoji",fontSize:"1.22rem",color:"#000"}}}},mo={data(){const e={getInputEl:()=>this.$parent.$parent.$el,observer:new ResizeObserver((()=>{const e=this.mixin$OptionsStyle.getInputEl(),{width:t}=getComputedStyle(e);this.optionStyle={width:`calc(${t} - 8px)`},this.noOptionStyle={width:t}}))};return{mixin$OptionsStyle:e,optionStyle:{},noOptionStyle:{}}},mounted(){this.mixin$OptionsStyle.observer.observe(this.mixin$OptionsStyle.getInputEl())},beforeDestroy(){this.mixin$OptionsStyle.observer.unobserve(this.mixin$OptionsStyle.getInputEl())}},ho={data(){return{isPopupShow:!1,filter:null}},computed:{filterProps(){return{useInput:!0,inputDebounce:"0",inputStyle:this.isPopupShow?void 0:"display:none"}},filterEvents(){return{"popup-show":this.onPopupShow.bind(this),filter:this.onFilter.bind(this),"popup-hide":this.onPopupHide.bind(this)}}},methods:{onFilter(e,t){t((()=>{this.filter=t=>{if(!e)return!0;if("not_say"===t)return!1;const a=uo(t),n=[a.country_code,a.country_name,a.country_name_native,a.phone_number_code];return n.some((t=>t.toLowerCase().includes(e.toLowerCase())))}}))},onPopupShow(){this.isPopupShow=!0,this.$nextTick((()=>{const e=this.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.isPopupShow=!1,this.filter=null,this.mixin$OptionsStyle.getInputEl().focus()}}};var go={name:"TelSelector",mixins:[po,mo,ho],props:{value:Object},data(){return{countryCode:null,prefixCode:null}},computed:{prefixOptions(){let e=Object.assign([],co);return this.filter&&(e=e.filter((e=>this.filter(e.value)))),e},prefixModel:{get(){const{countryCode:e,prefixCode:t}=this.value;return e&&t?`${e}-${t}`:"not_say"},set(e){var t,a;const n=null!==e&&void 0!==e&&e.value?uo(e.value):{};this.$emit("input",{countryCode:null!==(t=n.country_code)&&void 0!==t?t:null,prefixCode:null!==(a=n.phone_number_code)&&void 0!==a?a:null})}},emoji(){const e=uo(this.prefixModel);return e.emoji||e.country_emoji}}},fo=go,bo=(a("3a211"),Object(Y["a"])(fo,to,ao,!1,null,null,null)),yo=bo.exports;ie()(bo,"components",{QSelect:ee["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"]});const vo={watch:{selectedOption(e,t){const a=e=>!(e.countryCode&&e.prefixCode);a(e)&&!a(t)&&(this.inputValue="")}},methods:{setNotSay(){this.selectedOption={countryCode:null,prefixCode:null}}}},wo={data(){return{errorMessage:void 0}},watch:{value(e){const t=e=>{let t;return this.rules.find((a=>(t=a(e),t&&!0!==t))),!0===t?void 0:t},a=t(e.phoneNumber);a?this.errorMessage=a:e.phoneNumber&&!e.prefixCode?this.errorMessage=this.$t("account_error_invalid_phone_number_format"):this.errorMessage=void 0}}};var ko={name:"DialogPromptTel",mixins:[vo,wo],props:{value:{type:Object,required:!0},rules:Array},components:{TelInput:eo,TelSelector:yo},computed:{selectedOption:{get(){return{countryCode:this.value.countryCode,prefixCode:this.value.prefixCode}},set(e){this.$emit("input",{prefixCode:e.prefixCode,countryCode:e.countryCode,phoneNumber:this.value.phoneNumber})}},inputValue:{get(){return this.value.phoneNumber},set(e){const{prefixCode:t,countryCode:a,phoneNumber:n}=_o(e);this.$emit("input",{prefixCode:t||this.value.prefixCode,countryCode:a||this.value.countryCode,phoneNumber:n})}}}},So=ko,Co=Object(Y["a"])(So,Vn,Qn,!1,null,null,null),xo=Co.exports,$o={name:"DialogPrompts",components:{DialogPromptTel:xo},props:{prompts:Object},data(){const e=this.prompts?Object.keys(this.prompts).map((e=>{const t=this.prompts[e];return t.key=e,"password"===t.type&&(t.hidden=!0),t})):null;return{modelPrompts:e}},computed:{validatedResult(){let e;return this.modelPrompts&&this.modelPrompts.filter((e=>!!e.rules)).find((t=>t.rules.some((a=>{const n="tel"===t.type?[t.model.phoneNumber,t.model.prefixCode]:[t.model],o=a(...n);return!0!==o&&(e=o),!!e})))),e=e||!0,e}},watch:{validatedResult(e){this.$emit("setValid","prompts",e)}},beforeMount(){if(this.modelPrompts){const e=()=>this.modelPrompts.reduce(((e,t)=>(e[t.key]=t.model,e)),{});this.$emit("registerArgument","prompts",e),this.$emit("setValid","prompts",this.validatedResult)}}},To=$o,zo=Object(Y["a"])(To,Wn,Hn,!1,null,"21114862",null),Po=zo.exports;ie()(zo,"components",{QCardSection:X["a"],QInput:te["a"],QIcon:wa["a"]});const Ao={methods:{handleEsc(){const e="cancel";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()},handleEnter(){const e="ok";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()}}},Io={props:{contextCallback:Function},created(){this.contextCallback&&this.contextCallback(this)}},qo=e=>({props:e.reduce(((e,t)=>Object.assign(e,t.props)),{})}),Oo={name:"ABDialog",components:{DialogBanner:wn,DialogProgress:Tn,DialogList:En,DialogOption:Bn,DialogPrompts:Po},mixins:[Ao,Io,ln,cn,dn,un,_n,pn,qo([wn,Tn,En,Bn,Po])],props:{title:String,message:String},computed:{showActions(){return this.buttonAttrs&&Object.values(this.buttonAttrs).some((e=>!1!==e.show))},buttonAttrs(){const e=this.dialog$actionButtons?Object.keys(this.dialog$actionButtons).reduce(((e,t)=>(e[t]=[this.dialog$actionButtons[t],this.dialog$actionHandlers[t]],e)),{}):{},t={ok:[this.buttonOk,this.handleOk],...e,cancel:[this.buttonCancel,this.handleCancel]};return Object.keys(t).reduce(((e,a)=>(e[a]=this.dialog$buttonAttrs(a,...t[a]),e)),{})}},methods:{show(){this.$refs.dialog.show()},emitOk(e){this.$emit("ok",e)},hide(){this.$refs.dialog.hide()}}};var Eo=Oo,Do=Eo,jo=Object(Y["a"])(Do,rn,sn,!1,null,null,null),No=jo.exports;ie()(jo,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QCardActions:we["a"],QBtn:ne["a"]});var Lo=e=>{e.component("ABDialog",No),Object.defineProperty(e.prototype,"$alphabiz",{get(){const e={};return e.dialog=e=>Uo.call(this,e),e}})};function Uo(e){const t={},a={};Object.assign(a,e),a.component=No,a.contextCallback=e=>t.vm=e,t.dialog=this.$q.dialog(a),t.dialog.vm=t.vm;const n=e=>{e.promise=t=>new Promise(((a,n)=>{if(e.vm.$on("error",n),t){if("cancel"===t){let t=!1;e.onCancel((()=>t=!0)).onDismiss((()=>a(t)))}else if("ok"===t){let t;e.onOk((e=>e&&(t=e))).onDismiss((()=>a(t)))}}else e.onDismiss(a)}))};return n(t.dialog),t.dialog}var Ro=a("bf73"),Mo=a.n(Ro);function Fo(e){e.directive("show$cfg",Bo())}function Bo(){const e=(e,t,a)=>{const n=a.componentInstance.d$cfg,o=[t.arg,...Object.keys(t.modifiers||{})];let i=o.reduce(((e,t)=>e[t]),n);i=void 0===t.value?i:t.value===i,e.style.display=i?e._cfg$show.display:"none"};return{bind(t,a,n){t._cfg$show={display:t.style.display},e(t,a,n)},update(t,a,n){e(t,a,n)},unbind(e){e.style.display=e._cfg$show.display,delete e._cfg$show}}}var Wo=function(e,{getLocalConfig:t,getRemoteConfigUrl:a}){const n=Go(),{config:o,loadRemoteConfig:i}=Ho({localConfig:t(),remoteConfigUrls:r(a())});function r(e){const t=[`/${n.version}.json`,`/${n.version.split("-")[0]}.json`,"/default.json"];return t.map((t=>e+t))}function s(e,t){const a=new e({data(){return{config:t}}});e.mixin({computed:{d$cfg(){return a.config}}}),Fo(e)}i((e=>{v.a.mas()&&Vo(e.config,{update:{enable:!1}})})),s(e,o)};function Ho(e){const{localConfig:t,remoteConfigUrls:a}=e,n=Vo({},t);let o;n.remoteLoaded=!1,Object.defineProperties(n,{onRemoteConfigLoaded:{value:new Promise((e=>o=e)),configurable:!1,writable:!1,enumerable:!1}});const i=async e=>{const t=await r(a),{config:i}=t;return i.remoteLoaded=!0,await e(t),Vo(n,i),o(t),t};return{config:n,loadRemoteConfig:i};async function r(e){console.log("get from urls",e);const t=[];t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("sources").log(e)));const a=await new Promise((async a=>{let o={},i=null;for(const r of e)try{o=await n(r),i=r;break}catch{t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("not found").log(r)))}i?t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("got").log(i,o))):t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("remote config not found").log())),a({url:i,config:o})}));return console.tag.orange("DynamicConfig","Remote").group(""),t.forEach((e=>e())),console.groupEnd(),a;async function n(e){return await Qo((()=>fetch(e).then((e=>e.json()))),{onRetry(e){console.tag("getRemoteConfig").log("retry",e.count)}})}}}function Vo(e,t){const a=e=>!!e&&"object"===typeof e&&!Array.isArray(e);return Object.entries(t).forEach((([t,n])=>{var o;a(n)?(e[t]=null!==(o=e[t])&&void 0!==o?o:{},Vo(e[t],n)):e[t]=n})),e}async function Qo(e,{onRetry:t}={}){const a=async n=>{try{return n.count&&await(null===t||void 0===t?void 0:t(n)),await e()}catch(o){if(o instanceof TypeError){if(await new Promise((e=>setTimeout(e,1e3))),n.count+=1,n.count>=30)throw o;return await a(n)}throw o}};return await a({count:0})}function Go(){const e={version:Object(b["a"])("version"),buildTime:Object(b["a"])("buildTime")};return e.web=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),e.store=(()=>{const e=Object(b["a"])("packageFormat");return Object(x["a"])()?"capacitor":v.a.mas()?"mac":v.a.windowsStore()?"microsoft":!(!e||"snap"!==e)&&"linux"})(),e}var Ko=e=>{},Yo=a("67cf");a("f18a"),a("7996");const Jo=(...e)=>console.tag.red("VideoJs","player",...e),Zo={Video:{opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",webm:"video/webm",flv:"video/x-flv","3gp":"video/3gpp",m3u8:"application/x-mpegURL",mpd:"application/dash+xml",avi:"video/x-msvideo"},Image:{jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",png:"image/png",svg:"image/svg+xml",webp:"image/webp"},Audio:{m4a:"audio/mp4",mp3:"audio/mpeg",aac:"audio/aac",caf:"audio/x-caf",flac:"audio/flac",oga:"audio/ogg",wav:"audio/wav"}},Xo=(Zo.Video,Zo.Audio,Zo.Image,{mkv:["video/webm","video/mp4"],avi:["video/mp4"]}),ei={MEDIA_ERR_ABORTED:1,MEDIA_ERR_CUSTOM:0,MEDIA_ERR_DECODE:3,MEDIA_ERR_ENCRYPTED:5,MEDIA_ERR_NETWORK:2,MEDIA_ERR_SRC_NOT_SUPPORTED:4};var ti=[ai(),ii({volume:mi},{setVolume:Ci}),ii({isFullscreen:pi},{setFullscreen:Si}),ii({isPiP:_i},{setPiP:ki}),ii({playbackRate:ui},{setPlaybackRate:wi}),ii({poster:di},{setPoster:yi}),ni(),oi()];function ai(){const e={id:ri,currentTime:si,buffered:ci,duration:li,isPaused:hi,isMuted:gi},t={play:fi,pause:bi,seek:vi,mute:xi,stop:$i,destroy:Ti,ctl$on:a,ctl$emit:n};return ii(e,t);function a(e,t){this.on(`controller::${e}`,t)}function n(e){this.trigger(`controller::${e}`)}}function ni(){return ii({isWaiting:a,currentSources:e,loadingState:t},{setSource:n});function e(){const e=()=>{const e=this.currentSources();return e.filter((e=>!!e.src&&!!e.type))};return this.$set(e,["setSource$start","setSource$end","stop$"]),e()}function t(){const e=e=>{if(!e)return!1;if("setSource$start"===e)return!0;if(["setSource$end","error"].includes(e)){const e=this.error();return!!e&&{type:Object.keys(ei).find((t=>ei[t]===e.code)),message:e.message}}};return this.$set(e,["setSource$start","setSource$end","error","stop$"]),e()}function a(){let e=null;return this.on("waiting",(()=>{e&&clearTimeout(e),e=setTimeout((()=>{this.$set(!0)}),100)})),this.on("canplay",(()=>{e&&clearTimeout(e),this.$set(!1)})),this.on("stop$",(()=>{e&&clearTimeout(e),this.$set(!1)})),!1}async function n(...e){const t=e[e.length-1];t instanceof AbortSignal&&e.splice(e.length-1);const a=t instanceof AbortSignal?t:(new AbortController).signal;let n=!1;a.onabort=()=>{n=!0};try{this.trigger("setSource$start"),await new Promise(((t,i)=>{this.ready((()=>{if(n||a.aborted)return console.log("setSource Aborted",a.reason),i("Aborted");console.log("Not aborted",n,a,e[0]),this.one("loadedmetadata",t),this.one("error",i);const r=e.map(o).flat(1);Jo().tag("setSource","sources").log(r),this.src(r)}))}))}finally{this.trigger("setSource$end")}function o(e){var t;const a=[];let n,o;if("object"===typeof e){var i;n=e,o=null!==(i=l(n))&&void 0!==i?i:"mp4"}else{if("string"!==typeof e)return e;var r;n={src:e},o=null!==(r=l(n))&&void 0!==r?r:"mp4",Object.assign(n,{type:`video/${o}`})}n.type&&a.push(n);const s=null!==(t=Zo.Video[o])&&void 0!==t?t:Zo.Video.mp4;return a.some((e=>e.type===s))||d({type:s}),c(o).forEach((e=>d({type:e}))),a;function l(e){if(e.src&&-1!==e.src.lastIndexOf(".")){const t=new URL(e.src);return t.pathname.slice(t.pathname.lastIndexOf(".")+1)}if(e.type){const t=Object.keys(Zo.Video).find((t=>Zo.Video[t]===e.type));if(t)return t}if(e.filename){const t=e.filename.replace(/\\/g,"/").split("/").reverse()[0];if(-1!==t.lastIndexOf("."))return t.slice(t.lastIndexOf(".")+1)}return null}function c(e){if(!Xo[e])return[];const t=Object.values(a).map((e=>e.type));return Xo[e].filter((e=>!t.includes(e)))}function d(e){const t=e=>Object.assign(Object.entries(n).reduce(((e,[t,a])=>({...e,[t]:a})),{}),e),o=t(e);a.push(o)}}}}function oi(){return ii({track:e},{enableTrack:t,disableTrack:a,addTrack:n,removeTrack:o,setTrackOffset:i});function e(){const e=t.call(this);return this.on("track$enable",(()=>{const e=o.call(this),t=e.find((e=>"showing"===e.mode));if(!t)throw new Error("Enabled track not founded");const a=this.$state.track;a.currentTrack=n.call(this,t),a.enable=!0})),this.on("track$disable",(()=>{const e=this.$state.track;e.enable=!1})),this.on("track$add",(()=>a.call(this))),this.on("track$remove",(()=>{a.call(this)})),this.on("stop$",(()=>{var e;a.call(this);const t=this.$state.track;null===(e=t.currentTrack)||void 0===e||e.disable(),t.currentTrack=null,t.enable=!1})),e;function t(){const e={};return e.tracks=o.call(this).map((e=>e.id)),e.offset=0,e.currentTrack=null,e.enable=!1,e}function a(){const e=o.call(this),t=this.$state.track;t.tracks=e.map((e=>e.id))}function n(e){const t=()=>{const e=this.$state.track,n=e.currentTrack;if(!n)return this.off("texttrackchange",t);e.currentTrack.text=a.call(n.get(),e.offset)};return n(t),this.on("texttrackchange",t),{id:e.id,text:a.call(e,0),get:()=>e,disable:()=>{this.off("texttrackchange",t)}};function a(e){if(!this.loaded_)return null;if(0===this.cues.length)return null;const t=this.tech_.currentTime$org()+e,a=[];for(let n=0,o=this.cues.length;n=t&&a.push(e)}return a.map((e=>e.text)).join("")}function n(t){const a=e.tech_;e.tech_.__modified__||(e.tech_=new Proxy(a,{get(e,a,n){return"__modified__"===a||("currentTime$org"===a?Reflect.get(e,"currentTime",n):("currentTime"===a&&t(),Reflect.get(e,a,n)))},set(e,t,a,n){return Reflect.set(e,t,a,n)}}))}}function o(){var e;return Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind))}}function t(e){var t;const a=this.$state.track;if(!e){if(a.enable)return;if(a.currentTrack)e=a.currentTrack.id;else{if(!(a.tracks&&a.tracks.length>0))return;e=a.tracks[0]}}const n=Array.from(null!==(t=this.remoteTextTracks())&&void 0!==t?t:[]).filter((e=>"captions"===e.kind)),o=n.some((t=>t.id===e));if(!o)throw new Error("Track not founded: "+e);n.forEach((t=>{t.mode=t.id===e?"showing":"disabled"})),this.trigger("track$enable")}function a(){var e;const t=this.$state.track;if(!t.currentTrack)return;const a=Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind));a.forEach((e=>e.mode="disabled")),this.trigger("track$disable")}function n({id:e,src:t}){const a=this.$state.track;if(a.tracks.includes(e))return;const n={id:e,src:t,kind:"captions",mode:"disabled"};this.addRemoteTextTrack(n,!0),this.trigger("track$add")}function o(e=null){var n,o;const i=this.$state.track,r=Array.from(null!==(n=this.remoteTextTracks())&&void 0!==n?n:[]).filter((e=>"captions"===e.kind));let s,l=[];if(e){if(!i.tracks.includes(e))return;s=i.currentTrack.id===e,l.push(e)}else s=!0,l.push(...i.tracks);s&&(a.call(this),i.currentTrack.disable(),i.currentTrack=null),l.forEach(d.bind(this));const c=Array.from(null!==(o=this.remoteTextTracks())&&void 0!==o?o:[]).filter((e=>"captions"===e.kind));if(this.trigger("track$remove"),c.length&&s){const e=c[0];console.log("Select first track after remove current",e),t.call(this,e.id)}function d(e){const t=r.find((t=>t.id===e));t&&this.removeRemoteTextTrack(t)}}function i(e){const t=this.$state.track;t.offset=e,this.trigger("texttrackchange")}}function ii(e={},t={}){return{states:e,controls:t}}function ri(){return this.id()}function si(){const e=()=>this.currentTime();return this.$set(e,["timeupdate","stop$"]),e()}function li(){const e=()=>this.duration()||0;return this.$set(e,["durationchange","stop$"]),e()}function ci(){const e=()=>{const e=this.buffered(),t=[];for(let a=0;athis.poster();return this.$set(e,["posterchange","stop$"]),e()}function ui(){const e=()=>this.playbackRate();return this.$set(e,["ratechange"]),e()}function _i(){const e=()=>this.isInPictureInPicture();return this.$set(e,[["enterpictureinpicture","leavepictureinpicture"]]),e()}function pi(){const e=()=>this.isFullscreen();return this.$set(e,["fullscreenchange"]),e()}function mi(){const e=()=>this.volume();return this.$set(e,["volumechange"]),e()}function hi(){const e=()=>this.paused();return this.$set(e,["play","pause","loadstart","loadeddata","stop$"]),e()}function gi(){const e=()=>this.muted();return this.$set(e,["mute$"]),e()}function fi(){console.log("PLAY",this.play,this.muted,this),this.play()}async function bi(){this.pause(),await zi((()=>this.paused()))}function yi(e){this.poster(e)}function vi(e){this.currentTime(e)}function wi(e){this.playbackRate(e)}function ki(e){try{e?this.requestPictureInPicture():this.exitPictureInPicture()}catch(t){console.log("Failed to toggle PiP",e,(null===t||void 0===t?void 0:t.message)||t)}}function Si(e){e?this.requestFullscreen():this.exitFullscreen()}function Ci(e){xi.call(this,!1),this.volume(e)}function xi(e){this.muted(e),this.trigger("mute$")}async function $i(){async function e(){this.reset(),await zi((()=>{const e=this.currentSources().filter((e=>!!e.src&&!!e.type));return e<=0}))}this.isInPictureInPicture()&&this.exitPictureInPicture(),await bi.call(this),await e.call(this),this.trigger("stop$")}function Ti(){this.isInPictureInPicture()&&this.exitPictureInPicture(),this.reset(),this.dispose()}function zi(e,t=100){let a=null;return new Promise((n=>{a=setInterval((()=>{e.call(this)&&(clearInterval(a),a=null,n())}),t)}))}var Pi=e=>{const t=e.reduce(((e,t)=>({...e,...t.states})),{}),a=Object.keys(t),n=Object.entries(t);return{data(){return{states:{}}},created(){this.$watch((()=>this.instance),(e=>{if(!this.instance)return void(this.states=a.map((e=>[e,null])).reduce(((e,[t,a])=>({...e,[t]:a})),{}));const t=n.map((([t,a])=>{const n=Ii({player:e,states:Ai.call(this),name:t});return[t,a.call(n)]})).reduce(((e,[t,a])=>({...e,[t]:a})),{});this.states=t}),{immediate:!0})}}};function Ai(){const e=this;return new Proxy({},{get(t,a,n){return e.states[a]},set(t,a,n,o){return e.states=Object.assign({},e.states,{[a]:n}),!0}})}function Ii({player:e,states:t,name:a}){return new Proxy(e,{get(n,o,i){return"$state"===o?t:"$set"===o?(n,o)=>{o?o.forEach((o=>e.on(o,(()=>t[a]=n(o))))):t[a]=n}:Reflect.get(n,o,i)}})}var qi=e=>{const t=e.reduce(((e,t)=>({...e,...t.controls})),{}),a=e=>function(...t){return this.instance?e.apply(Oi({player:this.instance,states:this.states}),t):null};return{methods:Object.entries(t).map((([e,t])=>[e,a(t)])).reduce(((e,[t,a])=>({...e,[t]:a})),{})}};function Oi({player:e,states:t}){return new Proxy(e,{get(e,a,n){return"$state"===a?t:Reflect.get(e,a,n)}})}function Ei(e={controls:!1,autoplay:!1,preload:"auto",playbackRates:[.5,1,1.5,2]},t=ti){return new r["a"]({data(){let e,t=new Promise((t=>e=t));return t.resolve=e,{instance:null,promiseReady:t}},mixins:[Pi(t),qi(t)],methods:{async initialize(t){if(this.instance)throw new Error("Failed to initialize player.");const a=Object(it["default"])(t,e);await new Promise((e=>a.one("ready",e))),this.instance=a,this.promiseReady.resolve()}}})}var Di={data(){return{}},methods:{createPlayer:Ei}},ji=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player relative-position"},[a("video",{ref:"videoRef",staticClass:"video-js",attrs:{playsinline:"true","webkit-playsinline":"true",tabindex:"-1"}}),a("Controller",{attrs:{player:e.player},scopedSlots:e._u([{key:"header",fn:function(){return[e._t("header")]},proxy:!0},{key:"footer",fn:function(){return[e._t("footer")]},proxy:!0}],null,!0)})],1)},Ni=[],Li=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerLayout",{attrs:{player:e.player},on:{hotkey$focus:e.hotkey$focus},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.showController;return[a("Subtitle",{style:n?{paddingTop:"58px",paddingBottom:"60px"}:{},attrs:{player:e.player,dense:n}}),a("Center",{ref:"centerRef",attrs:{player:e.player}}),a("Header",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("header"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"file_open",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenLocalVideo}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!0,expression:"true"}],attrs:{icon:"settings",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenSetting}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"more_vert",unelevated:"",round:"",size:"0.8rem"}})]},proxy:!0}],null,!0)}),a("Footer",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("footer"),a("VolumeButton",{attrs:{player:e.player}}),a("PlaybackRateButton",{attrs:{player:e.player}}),a("SubtitleButton",{attrs:{player:e.player}}),a("PipButton",{attrs:{player:e.player}}),a("FullscreenButton",{attrs:{player:e.player}})]},proxy:!0}],null,!0)}),a("Setting",{ref:"settingRef",attrs:{player:e.player}})]}}])})},Ui=[],Ri=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"video-js-player__controller absolute-full relative-position",on:{click:e.onVideoClick,dblclick:e.onVideoDoubleClick}},e.mouseEvents),[e.isAudio?a("div",{staticClass:"is-audio-hint absolute-center"},[a("img",{staticClass:"q-mt-xl",attrs:{src:"developer/assets/icon-256.png",alt:""}}),a("p",{staticClass:"text-center text-h5",staticStyle:{"line-height":"24px"}},[a("i",{staticClass:"material-icons",staticStyle:{"vertical-align":"top"}},[e._v("audiotrack")]),e._v("\n "+e._s(e.$t("audio_file"))+"\n ")])]):e._e(),e._t("default",null,null,{showController:e.showController})],2)},Mi=[],Fi={props:{player:Object},mixins:[Bi(),Wi()],computed:{isAudio(){var e,t,a;const n=null===(e=this.player)||void 0===e||null===(t=e.states)||void 0===t||null===(a=t.currentSources)||void 0===a?void 0:a[0];if(!n||!n.filename)return!1;const o=n.filename.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!o||!o[0])return!1;const i=o[0].slice(1);return Object(Xe["b"])(i)}},methods:{onVideoClick(e){const t=e=>e.classList.contains("video-js-player__controller");if(!t(e.target))return;const{isPaused:a,loadingState:n,currentSources:o}=this.player.states;"object"!==typeof n&&o&&0!==o.length&&(a?this.player.play():this.player.pause())},onVideoDoubleClick(e){const t=e=>e.classList.contains("video-js-player__controller");t(e.target)&&this.player&&this.player.setFullscreen(!this.player.states.isFullscreen)}}};function Bi(){return{data(){return{toggle:!1,playerReady:!1}},created(){this.$watch((()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null}),(e=>{e&&e.ready((()=>this.playerReady=!0))}),{immediate:!0})},computed:{showController:{get(){return this.toggle&&this.playerReady},set(e){this.toggle=e}}}}}function Wi(){const e=e=>e.classList.contains("video-js-player__controller");let t=null;return{computed:{mouseEvents(){return{mouseover:n.bind(this),mousemove:o.bind(this),mouseenter:e=>a.call(this,e,!0),mouseleave:e=>a.call(this,e,!1)}}},watch:{showController(){this.$emit("hotkey$focus")}}};function a(e,t){if(t)this.showController=t;else{if(0!==e.which)return;this.showController=t}}function n(a){if(!e(a.target))return clearTimeout(t);t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3)}function o(a){e(a.target)&&(this.showController=!0,t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3))}}var Hi=Fi,Vi=(a("4dbc"),Object(Y["a"])(Hi,Ri,Mi,!1,null,null,null)),Qi=Vi.exports,Gi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-full flex items-stretch no-pointer-events--children non-selectable"},[a("div",{staticClass:"full-width full-height flex items-stretch"},[a("div",{staticClass:"full-width full-height relative-position column justify-end items-center"},[a("div",{staticClass:"relative-position",style:{"min-height":e.subtitlePanelMinHeight+"px"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.trackEnabled&&!!e.currentText,expression:"trackEnabled && !!currentText"}],staticClass:"video-js-player__subtitle",class:[e.player.states.isFullscreen?"fullscreen-subtitle":""]},[e._v("\n "+e._s(e.currentText)+"\n ")])])])])])},Ki=[],Yi={mixins:[Ji()],props:{player:Object,dense:Boolean},computed:{trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},currentText(){var e,t;return null===(e=this.player.states.track)||void 0===e||null===(t=e.currentTrack)||void 0===t?void 0:t.text},subtitlePanelMinHeight(){var e,t,a,n;const o=null!==(e=null===(t=this.player$rects)||void 0===t?void 0:t.container.height)&&void 0!==e?e:0,i=null!==(a=null===(n=this.player$rects)||void 0===n?void 0:n.video.height)&&void 0!==a?a:0;return Math.max(0,Math.round((o-i)/2))}}};function Ji(){let e;return{data(){return{player$rects:{container:{},video:{}}}},mounted(){const t=this.$el;e&&e.disconnect(),e=new ResizeObserver((()=>a.call(this,t))),e.observe(t,{}),setTimeout((()=>a.call(this,t)),200)},beforeDestroy(){e&&e.disconnect()}};function t(e){return e&&e.endsWith("px")?parseInt(e.slice(0,e.length-2)):0}function a(e){const a=e.querySelector("div"),n=e.parentElement.parentElement.querySelector(".video-js>video"),o=getComputedStyle(a),i=getComputedStyle(n);this.player$rects.container.width=t(o.width),this.player$rects.container.height=t(o.height),this.player$rects.video.width=t(i.width),this.player$rects.video.height=t(i.height),this.player$rects=Object.assign({},this.player$rects)}}var Zi=Yi,Xi=(a("d2e8"),Object(Y["a"])(Zi,Gi,Ki,!1,null,null,null)),er=Xi.exports;ie()(Xi,"components",{QItem:fe["a"]});var tr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-center"},[e.dialogData?a("DialogPanel",{attrs:{icon:e.dialogData.icon,message:e.dialogData.message}}):e.playerError?a("ErrorPanel",{attrs:{player:e.player}}):e.playerLoading?a("LoadingPanel",{attrs:{player:e.player}}):e.emptySource?a("OpenButton",{attrs:{player:e.player}}):e.player.states.isPaused?a("PlayButton",{attrs:{player:e.player}}):e._e()],1)},ar=[],nr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{scopedSlots:e._u([e.icon?{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:e.icon}})]},proxy:!0}:null,{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.message)+"\n ")]),e.caption?a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.caption)+"\n ")]):e._e()]},proxy:!0}],null,!0)})},or=[],ir=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"controller:panel overflow-hidden",staticStyle:{"border-radius":"16px"}},[a("q-card-section",{staticClass:"text-center q-pa-md"},[e.$slots.avatar?a("div",{staticClass:"q-ma-sm"},[e._t("avatar")],2):e._e(),a("div",{staticClass:"q-ma-sm"},[e._t("default")],2),e.$slots.action?a("div",{staticClass:"q-mb-xs"},[e._t("action")],2):e._e()])],1)},rr=[],sr={},lr=sr,cr=(a("9992"),Object(Y["a"])(lr,ir,rr,!1,null,"18dfdf92",null)),dr=cr.exports;ie()(cr,"components",{QCard:Z["a"],QCardSection:X["a"]});var ur={components:{CenterPanel:dr},name:"DialogPanel",props:{icon:String,message:String,caption:String,handleOk:Function}},_r=ur,pr=Object(Y["a"])(_r,nr,or,!1,null,null,null),mr=pr.exports;ie()(pr,"components",{QIcon:wa["a"],QBtn:ne["a"]});var hr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"200px","max-width":"600px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:"error"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.type)+"\n ")]),a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.message)+"\n ")])]},proxy:!0},{key:"action",fn:function(){return[a("q-btn",{staticClass:"q-mt-sm",staticStyle:{"min-width":"64px","background-color":"rgba(256,256,256,0.1)"},attrs:{label:e.$t("ok"),"no-caps":"",flat:"",rounded:""},on:{click:e.handleOk}})]},proxy:!0}])})},gr=[],fr={components:{CenterPanel:dr},props:{player:Object},computed:{playerError(){var e,t;const a=this.player.states.loadingState;if(!a||"boolean"===typeof a)return null;const n=null===(e=this.player)||void 0===e||null===(t=e.instance)||void 0===t?void 0:t.languages_,o=this.$i18n.locale.toLowerCase(),i=e=>n&&n[o]&&n[o][e]||e;return{type:i(a.type),message:i(a.message)}}},methods:{async handleOk(){await this.player.stop()}}},br=fr,yr=Object(Y["a"])(br,hr,gr,!1,null,"90e33b2e",null),vr=yr.exports;ie()(yr,"components",{QIcon:wa["a"],QBtn:ne["a"]});var wr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"180px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-spinner-ios",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines",staticStyle:{"min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.$t("loading"))+"\n "),e.isRemotePlay?a("span",[e._v("("+e._s(e.remoteProgress)+")")]):a("span",[e._v("...")])]),e.isRemotePlay?a("div",{staticClass:"remote-status"},[e._v("\n "+e._s(e.remoteDownloaded)+" ( "+e._s(e.remoteDownloadSpeed)+" )\n ")]):e._e()]},proxy:!0}])})},kr=[],Sr={components:{CenterPanel:dr},props:{player:Object},computed:{remoteInfoHash(){var e;return null===(e=w["a"].state.video.currentVideo)||void 0===e?void 0:e.infoHash},isRemotePlay(){return!!this.remoteInfoHash&&w["a"].state.video.currentVideo.remotePlay},remoteTask(){return this.isRemotePlay?pt["a"].taskList.downloading.find((e=>e.infoHash===this.remoteInfoHash)):null},remoteProgress(){return this.isRemotePlay&&this.remoteTask?Object(et["g"])(this.remoteTask.progress):""},remoteDownloadSpeed(){return this.isRemotePlay&&this.remoteTask?Object(et["a"])(this.remoteTask.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s":""},remoteDownloaded(){return this.isRemotePlay&&this.remoteTask?Object(et["a"])(this.remoteTask.downloaded,{byte:!1}):""}}},Cr=Sr,xr=Object(Y["a"])(Cr,wr,kr,!1,null,"0ff02c0c",null),$r=xr.exports;ie()(xr,"components",{QSpinnerIos:yn["a"]});var Tr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("q-btn",{staticClass:"text-white controller:panel",attrs:{size:"2rem",icon:"file_open",unelevated:"",round:""},on:{click:e.openFile}}),a("input",{staticStyle:{display:"none"},attrs:{type:"file","data-cy":"file-input"},on:{input:e.loadVideo}})],1)},zr=[];function Pr({accept:e}){const t=document.createElement("input");return Object.assign(t.style,{position:"fixed",top:"0",left:"0",width:"0",height:"0"}),t.type="file",t.accept=Array.isArray(e)?e.join(","):e,t}function Ar(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a,n;return t(null!==(a=null===(n=e.target)||void 0===n?void 0:n.result)&&void 0!==a?a:"")},a.readAsText(e)})):""}async function Ir(e){const t=document.activeElement;try{document.body.appendChild(e),e.focus(),e.click()}finally{document.body.removeChild(e),t.focus()}const a=await n(e);return console.log("result"),console.tag("file").debug("result",a),a||null;async function n(e){var t,a;const n=await new Promise((t=>e.addEventListener("change",t,{once:!0}))),o=null===n||void 0===n||null===(t=n.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a[0];return console.tag("file").debug("change",o),e.value=null,o}}function qr(){return{readTextFile:Ar,async selectFile({accept:e}={}){const t=Pr({accept:null!==e&&void 0!==e?e:"*"});return Ir(t)}}}var Or=Er;function Er(){const{selectFile:e}=qr(),t={opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",m3u8:"application/x-mpegURL",mpd:"application/dash+xml"};return async()=>{console.log("selectFile");const a=await e({accept:Array.from(new Set([...Object.values(t),...Object.keys(t).map((e=>`.${e}`))]))});return console.log("file",a),a?{src:URL.createObjectURL(a),type:a.type,file:a}:null}}const Dr=Or();var jr={props:{player:Object},methods:{async openFile(){console.log("Open file");const e=await Dr();if(console.log("select local source",e),!e)return;await this.player.setSource(e);const{currentSources:t,loadingState:a}=this.player.states;console.log("Dispatch remotePlay reset"),w["a"].dispatch("resetRemotePlay"),!t||t.length<=0||a||(this.player.ctl$emit("openFile"),this.player.play())},async loadVideo(e){if(console.log("Load video",e),e.target.files[0]){const t={src:URL.createObjectURL(e.target.files[0]),type:e.target.files[0].type,file:e.target.files[0]};console.log("Source",t),await this.player.setSource(t);const{currentSources:a,loadingState:n}=this.player.states;if(console.log(this.player.states),!a||a.length<=0)return;if(n)return;this.player.play()}}}},Nr=jr,Lr=Object(Y["a"])(Nr,Tr,zr,!1,null,"4dd2a6d6",null),Ur=Lr.exports;ie()(Lr,"components",{QBtn:ne["a"]});var Rr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{staticClass:"text-white controller:panel",attrs:{ripple:!1,size:"2rem",icon:e.icon,disable:e.disable,unelevated:"",round:""},on:{click:e.handlePlay}})},Mr=[],Fr={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},Br=Fr,Wr=Object(Y["a"])(Br,Rr,Mr,!1,null,"0e8525b1",null),Hr=Wr.exports;ie()(Wr,"components",{QBtn:ne["a"]});var Vr={mixins:[Qr()],components:{DialogPanel:mr,ErrorPanel:vr,LoadingPanel:$r,OpenButton:Ur,PlayButton:Hr},data(){return{interval:null}},props:{player:Object},computed:{playerError(){const e=this.player.states.loadingState;return e&&"boolean"!==typeof e?e:null},playerLoading(){const{loadingState:e,isWaiting:t}=this.player.states;return!0===e||!!t},emptySource(){const e=this.player.states.currentSources;return!e||e.length<=0}},mounted(){clearInterval(this.interval)},beforeDestroy(){clearInterval(this.interval)}};function Qr(){let e=null;function t(){e&&clearTimeout(e),e=null,this.dialog$data.icon=null,this.dialog$data.message=null}return{data(){return{dialog$data:{icon:null,message:null}}},computed:{dialogData(){const{icon:e,message:t}=this.dialog$data;if(!t)return null;const a={};return a.icon=e,a.message=t,a}},methods:{createDialog({icon:a,message:n,timeout:o}){return e&&clearTimeout(e),e=null,this.dialog$data.icon=a,this.dialog$data.message=n,o&&(e=setTimeout(t.bind(this),o)),t.bind(this)}}}}var Gr=Vr,Kr=Object(Y["a"])(Gr,tr,ar,!1,null,null,null),Yr=Kr.exports,Jr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-top relative-position",staticStyle:{"min-height":"56px"}},[a("div",{staticClass:"controller-top absolute-full overflow-hidden"}),a("div",{staticClass:"relative-position flex no-wrap items-center text-white q-px-md q-pb-sm non-selectable",staticStyle:{"z-index":"1","padding-top":"10px"}},[e.info?[a("q-icon",{staticClass:"q-ml-sm q-mr-sm",attrs:{name:"movie",size:"1.5rem"}}),a("div",{staticClass:"q-my-xs q-mx-sm col-shrink"},[a("div",{staticClass:"text-bold",staticStyle:{"font-size":"0.9rem","line-height":"1.2"}},[e._v(e._s(e.info.title))]),e.info.caption?a("div",{staticClass:"ellipsis",staticStyle:{"max-width":"200px",opacity:"0.6","font-size":"0.7rem","line-height":"1"}},[e._v(e._s(e.info.caption)+"\n ")]):e._e()])]:e._e(),a("q-space"),e._t("right")],2)])},Zr=[],Xr={props:{player:Object},computed:{info(){var e,t;const a=null!==(e=null===(t=this.player.states.currentSources)||void 0===t?void 0:t[0])&&void 0!==e?e:null;if(!a)return null;if(a.filename){const e=a.filename.replace(/\\/g,"/").split("/").reverse()[0];return{title:e.slice(0,e.lastIndexOf(".")),caption:a.filename}}return a.file?{title:a.file.name.slice(0,a.file.name.lastIndexOf(".")),caption:a.file.path}:{title:this.$t("unknown_media"),caption:a.src}}}},es=Xr,ts=Object(Y["a"])(es,Jr,Zr,!1,null,"2ead7b1a",null),as=ts.exports;ie()(ts,"components",{QIcon:wa["a"],QSpace:pe["a"]});var ns=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-bottom relative-position"},[a("div",{staticClass:"controller-bottom full-height full-width absolute-top-left overflow-hidden"}),a("div",{staticClass:"relative-position flex items-center text-white q-px-md q-pb-sm non-selectable no-wrap",staticStyle:{"padding-top":"12px"}},[a("PlayButton",{attrs:{player:e.player}}),a("StopButton",{attrs:{player:e.player}}),a("div",{staticClass:"q-mx-sm q-my-sm text-bold ellipsis",style:{opacity:e.disable?.7:1}},[e._v(e._s(e.timeLabel))]),a("q-space"),e._t("right")],2),a("ProgressBar",{attrs:{player:e.player}})],1)},os=[],is=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar absolute-top q-px-md no-pointer-events",class:e.disable?["video-js-player__progress-bar-disable"]:[]},[a("q-slider",{staticClass:"video-js-player__progress-bar-slider all-pointer-events",attrs:{"disable-keydown":"",min:0,max:1e3*e.duration,"track-color":"transparent","thumb-color":"primary","thumb-size":"12px",dark:"",label:"",dense:"","label-value":e.progressLabel,disable:e.disable},nativeOn:{click:function(t){return e.onClick.apply(null,arguments)}},model:{value:e.progress,callback:function(t){e.progress=t},expression:"progress"}}),e._m(0),e._l(e.player.states.buffered,(function(t,n){var o=t[0],i=t[1];return a("div",{key:n,staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("BufferProgress",{staticStyle:{opacity:"1"},attrs:{start:o/e.player.states.duration||0,end:i/e.player.states.duration||0}})],1)}))],2)},rs=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("div",{staticClass:"video-js-player__progress-bar-buffered-bg"})])}];function ss(){const e=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};let t=0;return{computed:{progress:{get(){return 1e3*this.player.states.currentTime},set(e){this.player.seek(e/1e3)}},animationSpeed(){const e=Math.abs(this.progress-t);return t=this.progress,e>300?0:e},duration(){return this.player.states.duration},progressLabel(){return e(this.progress/1e3)},durationLabel(){return e(this.duration)}}}}var ls=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__buffer-progress relative-position full-width"},[a("div",{staticClass:"absolute full-height",staticStyle:{"border-radius":"4px"},style:{width:100*(e.end-e.start)+"%",left:100*e.start+"%"}})])},cs=[],ds={props:{start:Number,end:Number}},us=ds,_s=(a("d1e4"),Object(Y["a"])(us,ls,cs,!1,null,"4e25daec",null)),ps=_s.exports,ms={mixins:[ss()],components:{BufferProgress:ps},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t}},methods:{onClick(){console.log("[Ctrl] onProgressBarClick"),this.$emit("click"),setTimeout((()=>{this.$el.blur(),document.body.click(),console.log("[Ctrl] Blur")}),200)}}},hs=ms,gs=(a("84cb"),a("f9b5")),fs=Object(Y["a"])(hs,is,rs,!1,null,null,null),bs=fs.exports;ie()(fs,"components",{QSlider:gs["a"]});var ys=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:"",disable:e.disable},on:{click:e.handlePlay}})},vs=[],ws={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},ks=ws,Ss=Object(Y["a"])(ks,ys,vs,!1,null,null,null),Cs=Ss.exports;ie()(Ss,"components",{QBtn:ne["a"]});var xs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"stop",unelevated:"",round:"",disable:e.disable},on:{click:e.handleStop}})},$s=[],Ts={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{async handleStop(){this.player.states.isPiP&&this.player.setPiP(!1),this.player.states.isFullscreen&&this.player.setFullscreen(!1),w["a"].dispatch("resetRemotePlay"),await this.player.stop()}}},zs=Ts,Ps=Object(Y["a"])(zs,xs,$s,!1,null,null,null),As=Ps.exports;ie()(Ps,"components",{QBtn:ne["a"]});var Is={mixins:[ss()],components:{PlayButton:Cs,StopButton:As,ProgressBar:bs},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},timeLabel(){const e=e=>{const t=Math.round(e),a=Math.floor(t/3600),n=Math.floor((t-60*a*60)/60),o=t-(60*a*60+60*n);return(a?[a,n,o]:[n,o]).map((e=>(""+e).padStart(2,"0"))).join(":")};return`${e(this.player.states.currentTime)} / ${e(this.player.states.duration)}`}}},qs=Is,Os=a("526f"),Es=Object(Y["a"])(qs,ns,os,!1,null,null,null),Ds=Es.exports;ie()(Es,"components",{QLinearProgress:Os["a"],QSpace:pe["a"]});var js=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerPage",{attrs:{title:e.$t("settings"),icon:"settings"},model:{value:e.showSetting,callback:function(t){e.showSetting=t},expression:"showSetting"}},[a("q-list",{staticClass:"video-js-player__setting-list",attrs:{dark:"",bordered:"",separator:""}},[a("q-item-label",{staticClass:"q-mx-md q-mt-md",staticStyle:{"font-size":"1.1rem"}},[e._v(e._s(e.$t("settings_subtitle_options")))]),a("SubtitleOptions")],1)],1)},Ns=[],Ls=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.value?a("div",{staticClass:"non-selectable absolute-full video-js-player__page",staticStyle:{"z-index":"1000"}},[a("div",{staticClass:"bg-transparent full-width"},[a("q-toolbar",{staticStyle:{height:"56px"}},[e.icon?a("q-icon",{staticClass:"q-ml-sm",attrs:{name:e.icon,size:"1.5rem"}}):e._e(),a("q-toolbar-title",{staticClass:"text-bold",staticStyle:{"font-size":"1rem","line-height":"1.2"}},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(){return e.$emit("input",!1)}}})],1),a("q-separator",{staticStyle:{"background-color":"rgba(256,256,256,0.2)"},attrs:{size:"0.8px"}})],1),a("q-page",{attrs:{padding:""}},[e._t("default")],2)],1):e._e()},Us=[],Rs={props:{icon:String,title:String,value:Boolean}},Ms=Rs,Fs=(a("5a2f"),a("99c4")),Bs=a("75a3"),Ws=a("9b72"),Hs=Object(Y["a"])(Ms,Ls,Us,!1,null,null,null),Vs=Hs.exports;ie()(Hs,"components",{QToolbar:Fs["a"],QIcon:wa["a"],QToolbarTitle:Bs["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"],QPage:Ws["a"]});var Qs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"overflow-hidden"},[a("q-item-section",{attrs:{side:""}},[a("div",{staticClass:"column",staticStyle:{"align-items":"stretch",gap:"8px"}},[a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontSizeOptions,"toggle-color":"primary"},model:{value:e.fontSize,callback:function(t){e.fontSize=t},expression:"fontSize"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontStyleOptions,"toggle-color":"primary"},model:{value:e.fontStyle,callback:function(t){e.fontStyle=t},expression:"fontStyle"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontWeightOptions,"toggle-color":"primary"},model:{value:e.fontWeight,callback:function(t){e.fontWeight=t},expression:"fontWeight"}})],1)]),a("q-item-section",{staticClass:"bg-grey-9 flex justify-center items-center overflow-hidden relative-position",staticStyle:{padding:"8px","border-radius":"8px"}},[a("div",{staticClass:"absolute-top-right"},[a("q-btn-toggle",{staticClass:"q-ma-xs lorem-ipsum",staticStyle:{"background-color":"rgba(50, 50, 50, 0.6)","border-radius":"4px"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.loremIpsumOptions,"toggle-color":"primary"},model:{value:e.loremIpsumType,callback:function(t){e.loremIpsumType=t},expression:"loremIpsumType"}})],1),a("div",{staticClass:"video-js-player__subtitle ellipsis overflow-hidden col-shrink"},[e._v(e._s(e.loremIpsum))])])],1)},Gs=[],Ks={mixins:[Ys()],name:"SubtitleOptions",inject:["player$settings"],computed:{fontSize:{get(){return this.player$settings.subtitle.size},set(e){this.player$settings.subtitle.size=e}},fontStyle:{get(){return this.player$settings.subtitle.style},set(e){this.player$settings.subtitle.style=e}},fontWeight:{get(){return this.player$settings.subtitle.weight},set(e){this.player$settings.subtitle.weight=e}},fontSizeOptions(){return[{label:this.$t("settings_small"),value:1},{label:this.$t("settings_normal"),value:1.25},{label:this.$t("settings_large"),value:1.7}]},fontStyleOptions(){return[{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_italic"),value:"italic"}]},fontWeightOptions(){return[{label:this.$t("settings_lighter"),value:"lighter"},{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_bolder"),value:"bold"}]}}};function Ys(){const e={EN:"Lorem ipsum dolor sit amet, consectetur adipisicing elit.","简":"朝菌不知晦朔,蟪蛄不知春秋。","繁":"天地不仁,以萬物為芻狗。 聖人不仁,以百姓為芻狗。"};return{data(){return{loremIpsumType:"EN"}},computed:{loremIpsum(){var t;return null!==(t=e[this.loremIpsumType])&&void 0!==t?t:e.EN},loremIpsumOptions(){return Object.keys(e).map((e=>({label:e,value:e})))}}}}var Js=Ks,Zs=(a("3061"),a("834d")),Xs=a("96d7"),el=Object(Y["a"])(Js,Qs,Gs,!1,null,null,null),tl=el.exports;ie()(el,"components",{QItem:fe["a"],QItemSection:be["a"],QBtnToggle:Zs["a"],QBtnGroup:Xs["a"],QBtn:ne["a"]});var al={components:{ControllerPage:Vs,SubtitleOptions:tl},props:{player:Object},data(){return{dev:!1,showSetting:!1}},methods:{show(){this.showSetting=!0}}},nl=al,ol=(a("071f"),Object(Y["a"])(nl,js,Ns,!1,null,null,null)),il=ol.exports;ie()(ol,"components",{QList:qn["a"],QItemLabel:ye["a"],QItem:fe["a"]});var rl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handleMute}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showVolumeCard,expression:"showVolumeCard"}],staticClass:"video-js-player__controller-menu controller-popup__transition absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",height:"140px",padding:"6px!important"}},[a("div",{staticClass:"absolute-bottom q-mb-md text-center text-bold"},[e._v(e._s(e.volume))]),a("q-slider",{staticClass:"video-js-player__volume-slider",staticStyle:{height:"100%"},attrs:{vertical:"",reverse:"","track-size":"40px","thumb-size":"0","track-color":"transparent",min:0,max:100,step:10},model:{value:e.volume,callback:function(t){e.volume=t},expression:"volume"}})],1)],1)])],1)},sl=[];function ll(e,t){return{computed:{mouseEvents(){let a=null;const n=n=>{a&&clearTimeout(a),a=setTimeout((()=>{this[e]=n,a=null}),t)},o=e=>e.classList.contains("video-js-player__controller"),i=(t,a)=>{if(a)this[e]=a;else{if(0!==t.which)return;n(a)}},r=e=>{if(!o(e.target))return clearTimeout(a);n(!1)},s=t=>{if(!o(t.target))return clearTimeout(a);this[e]=!0,n(!1)};return{mouseover:e=>r.call(this,e),mousemove:e=>s.call(this,e),mouseenter:e=>i.call(this,e,!0),mouseleave:e=>i.call(this,e,!1)}}}}}var cl={mixins:[ll("showVolumeCard",100)],props:{player:Object},data(){return{showVolumeCard:!1}},computed:{volume:{get(){return this.player.states.isMuted?0:Math.round(100*this.player.states.volume)},set(e){this.player.setVolume(e/100)}},icon(){return this.player.states.isMuted?"volume_off":"volume_up"}},methods:{handleMute(){this.player.mute(!this.player.states.isMuted)}}},dl=cl,ul=(a("f77d"),a("85c4")),_l=Object(Y["a"])(dl,rl,sl,!1,null,null,null),pl=_l.exports;ie()(_l,"components",{QBtn:ne["a"],QTr:ul["a"],QCard:Z["a"],QSlider:gs["a"]});var ml=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",unelevated:"",round:"",icon:"speed"},on:{click:function(t){e.showPlaybackRateCard=!e.showPlaybackRateCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showPlaybackRateCard,expression:"showPlaybackRateCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("q-btn-toggle",{staticClass:"column video-js-player__controller-btn-toggle",attrs:{"toggle-color":"active",ripple:!1,options:e.playbackRates},model:{value:e.playbackRate,callback:function(t){e.playbackRate=t},expression:"playbackRate"}})],1)],1)])],1)},hl=[],gl={mixins:[ll("showPlaybackRateCard",100)],props:{player:Object},data(){return{showPlaybackRateCard:!1}},computed:{playbackRate:{get(){var e;return null!==(e=this.player.states.playbackRate)&&void 0!==e?e:1},set(e){this.player.setPlaybackRate(e)}},playbackRates(){return[{label:"X2.0",value:2},{label:"X1.5",value:1.5},{label:"X1.0",value:1},{label:"X0.5",value:.5}]},playbackRateLabel(){return this.playbackRates.find((e=>e.value===this.playbackRate)).label}}},fl=gl,bl=(a("5e87"),Object(Y["a"])(fl,ml,hl,!1,null,null,null)),yl=bl.exports;ie()(bl,"components",{QBtn:ne["a"],QTr:ul["a"],QCard:Z["a"],QBtnToggle:Zs["a"]});var vl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{disable:e.disableShowSubtitleCard,size:"0.8rem",unelevated:"",round:"",icon:e.trackEnabled?"subtitles":"subtitles_off"},on:{click:function(){return e.showSubtitleCard=!e.showSubtitleCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showSubtitleCard,expression:"showSubtitleCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"min-width":"200px","border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("div",{staticClass:"row items-center justify-start no-wrap"},[a("div",{staticClass:"text-bold q-ml-sm q-mr-xs ellipsis",staticStyle:{"font-size":"0.8rem",transform:"translateY(0.1rem)"}},[e._v("\n "+e._s(e.$t("subtitle"))+"\n ")]),a("q-space"),a("div",{staticClass:"q-mr-xs overflow-hidden row items-stretch no-wrap",staticStyle:{"background-color":"rgba(256,256,256,0.1)","border-radius":"999px"}},[a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_rewind",unelevated:"",size:"0.6rem",padding:"0 6px 0 10px"},on:{click:function(){return e.handleTrackOffset(!1)}}}),a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_forward",unelevated:"",size:"0.6rem",padding:"0 10px 0 6px"},on:{click:function(){return e.handleTrackOffset(!0)}}})],1),a("q-btn",{staticClass:"q-mr-xs",style:{backgroundColor:e.trackEnabled?"var(--q-color-primary)":"rgba(256,256,256,0.1)"},attrs:{icon:e.trackEnabled?"subtitles":"subtitles_off",round:"",unelevated:"",size:"0.6rem"},on:{click:function(){return(e.trackEnabled?e.handleDisableTrack:e.handleEnableTrack)()}}}),a("q-btn",{staticClass:"q-mr-xs",staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{icon:"add",round:"",unelevated:"",size:"0.6rem"},on:{click:e.handleAddTrack}})],1),e.tracksLoaded&&e.tracksLoaded.length?a("q-list",{staticClass:"q-mt-xs video-js-player__controller-list",staticStyle:{"min-width":"180px","max-width":"200px","font-size":"0.8rem","max-height":"240px","overflow-y":"auto"}},e._l(e.tracksLoaded,(function(t){return a("q-item",{key:t.id,staticStyle:{"padding-right":"0"},attrs:{dense:"",clickable:"",disable:!e.trackEnabled},on:{click:function(){return!t.active&&e.handleEnableTrack(t.id)}}},[a("q-item-section",{staticClass:"q-pr-sm",staticStyle:{"min-width":"24px"},attrs:{avatar:""}},[a("q-badge",{attrs:{rounded:"",color:t.active?e.trackEnabled?"primary":"grey":"transparent"}})],1),a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))])],1),a("q-item-section",{staticStyle:{color:"inherit","padding-left":"4px"},attrs:{side:""}},[a("q-btn",{staticClass:"q-mr-xs",attrs:{icon:"clear",round:"",unelevated:"",size:"0.6rem",disable:!e.trackEnabled},on:{click:function(a){return e.handleRemoveTrack(t.id)}}})],1)],1)})),1):e._e()],1)],1)])],1)},wl=[],kl=Sl;function Sl(){const{selectFile:e,readTextFile:t}=qr(),a={vtt:"text/vtt",srt:"text/srt"};return async()=>{const n=await e({accept:Array.from(new Set([...Object.values(a),...Object.keys(a).map((e=>`.${e}`))]))});if(!n)return null;let o=await t(n);return o?(n.name.endsWith(".srt")&&(o=Cl(o)),{src:URL.createObjectURL(new Blob([o])),id:n.name}):null}}function Cl(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}}const xl=kl();var $l={mixins:[ll("showSubtitleCard",100)],props:{player:Object},data(){return{showSubtitleCard$inner:!1}},computed:{disableShowSubtitleCard(){const{currentSources:e}=this.player.states;return!e||e.length<=0},showSubtitleCard:{get(){return this.showSubtitleCard$inner&&!this.disableShowSubtitleCard},set(e){this.showSubtitleCard$inner=e}},trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},tracksLoaded(){var e,t,a;const n=this.player.states.track;if(!n)return[];const o=null!==(e=n.tracks)&&void 0!==e?e:[],i=null!==(t=null===(a=n.currentTrack)||void 0===a?void 0:a.id)&&void 0!==t?t:null;return o.map((e=>({id:e,label:e,active:e===i})))}},methods:{async handleAddTrack(){const e=await xl();e&&(this.player.addTrack(e),this.player.enableTrack(e.id))},async handleRemoveTrack(e){console.log("Remove track",e),this.player.removeTrack(e)},handleEnableTrack(e=null){const t=this.player.states.track;t&&this.player.enableTrack(e)},handleDisableTrack(){const e=this.player.states.track;e&&e.enable&&this.player.disableTrack()},handleTrackOffset(e){this.player.setTrackOffset(this.player.states.track.offset+(e?.5:-.5))}}},Tl=$l,zl=(a("cc0c"),a("90c4")),Pl=Object(Y["a"])(Tl,vl,wl,!1,null,null,null),Al=Pl.exports;ie()(Pl,"components",{QBtn:ne["a"],QTr:ul["a"],QCard:Z["a"],QSpace:pe["a"],QColor:Ye["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QBadge:zl["a"],QItemLabel:ye["a"]});var Il=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"picture_in_picture_alt",unelevated:"",round:"",disable:e.disable},on:{click:e.handler}})},ql=[],Ol={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{handler(){this.player.setPiP(!this.player.states.isPiP)}}},El=Ol,Dl=Object(Y["a"])(El,Il,ql,!1,null,null,null),jl=Dl.exports;ie()(Dl,"components",{QBtn:ne["a"]});var Nl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handler}})},Ll=[],Ul={props:{player:Object},computed:{icon(){return this.player.states.isFullscreen?"fullscreen_exit":"fullscreen"}},methods:{handler(){this.player.setFullscreen(!this.player.states.isFullscreen)}}},Rl=Ul,Ml=Object(Y["a"])(Rl,Nl,Ll,!1,null,null,null),Fl=Ml.exports;ie()(Ml,"components",{QBtn:ne["a"]});const Bl=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};var Wl=()=>{const e=5,t=.1;return{mixins:[Hl(),ss()],mounted(){this.hotkey$bind([32,179],"play_switch",(()=>{const{currentSources:e,loadingState:t}=this.player.states;!e||e.length<=0||t||(this.player.states.isPaused?this.player.play():this.player.pause())})),this.hotkey$bind(70,"fullscreen_switch",(()=>{this.player.setFullscreen(!this.player.states.isFullscreen)})),this.hotkey$bind([39,176],"forward",(()=>{console.log("[Ctrl] fwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime+e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_forward",message:`${Bl(i)} / ${this.durationLabel}`})})),this.hotkey$bind([37,177],"rewind",(()=>{console.log("[Ctrl] bwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime-e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_rewind",message:`${Bl(i)} / ${this.durationLabel}`})})),this.hotkey$bind(38,"volume_up",(()=>{const e=Math.max(0,Math.min(this.player.states.volume+t,1));this.player.setVolume(e)})),this.hotkey$bind(40,"volume_down",(()=>{const e=Math.max(0,Math.min(this.player.states.volume-t,1));this.player.setVolume(e)})),this.hotkey$bind(190,"track_offset_forward",(()=>{this.player.setTrackOffset(this.player.states.track.offset+.5)})),this.hotkey$bind(188,"track_offset_backward",(()=>{this.player.setTrackOffset(this.player.states.track.offset-.5)})),this.$watch((()=>{var e;return null===(e=this.player.states.track)||void 0===e?void 0:e.offset}),((e,t)=>{void 0!==t&&a.call(this,{icon:"subtitles",message:`${e>0?"+":""}${-1===e.toString().indexOf(".")?e+".0":e}s`})})),this.$watch((()=>this.player.states.volume),((e,t)=>{null!==t&&a.call(this,{icon:"volume_up",message:`${Math.round(100*e)}%`})}))}};function a({icon:e,message:t}){this.$refs.centerRef.createDialog({icon:e,message:t,timeout:1e3})}};function Hl(){const e={};let t;const a=[],n={};return{async mounted(){await this.player.promisePlayerReady,e.player=this.$el.parentNode,e.container=e.player.querySelector(".video-js-player>.video-js"),e.controller=this.$el,e.video=e.player.querySelector(".video-js-player>.video-js>video.vjs-tech"),e.controller.hasAttribute("tabIndex")||e.controller.setAttribute("tabIndex","-1"),e.controller.style.outline="none",t=i.bind(this),document.body.addEventListener("keydown",t)},beforeUnmount(){document.body.removeEventListener("keydown",t)},methods:{hotkey$bind:o,hotkey$focus(){const t=document.activeElement;t===e.player||t===e.container||t===e.controller||t===e.video||e.controller.contains(t)||e.container.focus()}}};function o(e,...t){const o={matcher:null,callback:null};function i(){return"function"===typeof e?e:"number"===typeof e?t=>t.which===e:Array.isArray(e)?t=>e.includes(t.which):null}function r(){let e,a;return 2===t.length?(e=t[0],a=t[1]):"function"===typeof t[0]?(e=null,a=t[0]):(e=t[0],a=null),e&&a&&(n[e]=a),e?()=>n[e]():a?()=>a():null}o.matcher=i(),o.callback=r(),o.matcher&&o.callback&&a.unshift(o)}async function i(t){const n=document.activeElement;if(n===e.player||n===e.container||n===e.controller||n===e.video||n===document.body||e.controller.contains(n)){const e=a.find((e=>e.matcher(t)));if(!e)return console.log("[Ctrl] No hotkey",t);console.log("[Ctrl]",e),await e.callback()}}}const Vl=Or();var Ql={mixins:[Wl(),Gl()],components:{ControllerLayout:Qi,Subtitle:er,Center:Yr,Header:as,Footer:Ds,Setting:il,VolumeButton:pl,PlaybackRateButton:yl,SubtitleButton:Al,PipButton:jl,FullscreenButton:Fl},props:{player:Object},methods:{handleOpenSetting(){this.player.pause(),this.$refs.settingRef.show()},async handleOpenLocalVideo(){console.log("handleOpenLocal");const e=await Vl();if(console.log("source",e),!e)return;await this.player.setSource(e),console.log(this.player.states);const{currentSources:t,loadingState:a}=this.player.states;!t||t.length<=0||a||(console.log(this.player,this.player.play),this.player.play())}}};function Gl(){return{provide(){return{player$settings:this.player$settings}},data(){return{player$settings:{subtitle:{style:"normal",weight:"normal",size:1.25}}}},mounted(){this.$watch((()=>this.player$settings.subtitle.size),(e=>{this.$el.style.setProperty("--subtitle-size",`${e}rem`)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.style),(e=>{this.$el.style.setProperty("--subtitle-style",e)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.weight),(e=>{this.$el.style.setProperty("--subtitle-weight",e)}),{immediate:!0})}}}var Kl=Ql,Yl=Object(Y["a"])(Kl,Li,Ui,!1,null,null,null),Jl=Yl.exports;ie()(Yl,"components",{QBtn:ne["a"]});var Zl={name:"VideoJsPlayer",components:{Controller:Jl},data(){return{player:null}},mixins:[Xl(),ec(),tc()]};function Xl(){const e=e=>e&&e.destroy();return{created(){this.player=this.$videoJs.createPlayer();const e=this.player.play.bind(this);this.player.play=(...t)=>{console.log("[Trigger play]",this.player,this.player.states),e(...t),this.$emit("player-play"),this.player.mute(this.player.states.isMuted)}},mounted(){this.$watch((()=>this.player),(async(a,n)=>{e(n),a&&(await a.initialize(this.$refs.videoRef),t.call(this))}),{immediate:!0})},beforeDestroy(){e(this.player)}};function t(){const e=["openFile"];e.forEach((e=>this.player.ctl$on(e,(()=>this.$emit(e)))))}}function ec(){return{created(){const e=()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null};this.$watch(e,(e=>{if(!e)return;const t=e.contentEl();if(!t)return;const a=t.nextElementSibling;a&&t.appendChild(a)}),{immediate:!0})}}}function tc(){return{methods:{async setSource(...e){await this.player.promiseReady,await this.player.setSource(...e)}}}}var ac=Zl,nc=(a("2163"),Object(Y["a"])(ac,ji,Ni,!1,null,null,null)),oc=nc.exports;window.videojs=it["default"],a("94ce"),a("63f2"),a("2079");var ic=(e,t)=>{const a=new e(Di);e.prototype.$videoJs=a,e.component("VideoJsPlayer",oc)},rc=e=>{const{Vue:t}=e;t.component("AlphabizButton",Ba),t.component("AlphabizSelect",Ya),t.component("VirtualScrollGrid",on),t.use(Lo),t.use(sc,e),t.config.errorHandler=function(e){throw e},t.use(lc),t.use(Ko,{}),t.use(Wo,{getLocalConfig:()=>O.a.dynamicConfig.local,getRemoteConfigUrl:()=>O.a.dynamicConfig.remote.url}),t.mixin({computed:{screen$xs(){return this.$q.screen.height<=600||this.$q.screen.width<=600},isPortrait(){return this.$q.screen.height>this.$q.screen.width}}}),t.use(ic,{})};function sc(e,{store:t}){const n=(...e)=>console.tag.orange("VersionControl",...e),o=()=>t.getters.settings.versionChannel,i=e=>{{const t=a("bc7b"),n=a("d6fe"),o="alphabiz"===process.env.REPO?n.resolve(process.cwd(),"public"):process.resourcesPath,i="version.json",r=t.readFileSync(n.resolve(o,i)),s=JSON.parse(r);return s[e]}},r=e=>{const[t,a,n]=e.split("-");return{version:t,channel:null!==a&&void 0!==a?a:"stable",build:n}},s=e=>{const t=Array.from(e),a=[4,2,2,2,2].reduce(((e,a,n)=>(e[n]=t.splice(0,a).join(""),e)),[]);return new Date(a.splice(0,3).join("-")+" "+a.join(":"))},l=async({wait:e,timeout:t})=>{const a=O.a.versionsUrl,o=async()=>{try{return await(await fetch(a)).json()}catch{return null}},i=async(e,{onTimeout:t,timeout:a})=>{let n,o=!1;return await Promise.race([e.then((e=>{o=!0,n=e})),new Promise((e=>setTimeout(e,a))).then((()=>{o||t&&(n=t())}))]),n},r=(e,{onFailed:t,wait:a})=>{let n=!1;const o=async()=>{let o=await e();while(!o&&!n){if(await new Promise((e=>setTimeout(e,a))),n)break;if(o=await e(),n)break;o||t()}return o},i=o();return i.cancel=()=>n=!0,i},s=r((async()=>await o()),{onFailed(){n().tag("retry").log("retry to fetch versionsInfo")},wait:e}),l=await i(s,{timeout:t,onTimeout(){return n().tag.red("failed").log("failed to fetch versionsInfo"),null}}).finally(s.cancel);return l},c=31536e6,d=1e4,u=new e({data(){return{currentVersion:r(i("version")),buildTime:s(i("buildTime")),versionsInfo:void 0}},computed:{versionState(){if(!Object(f["isElectron"])())return"active";if(void 0===this.versionsInfo)return"pending";if(this.versionsInfo){const e=r(this.versionsInfo.min[o()]),t=Mo.a.gt([e.version,e.build].filter((e=>!!e)).join("-"),[this.currentVersion.version,this.currentVersion.build].filter((e=>!!e)).join("-"));return t?"force_update":"active"}{const e=new Date-this.buildTime;return e>=c?"force_exit":"active"}}},created(){this.$watch("currentVersion",(e=>{n("currentVersion").log(JSON.parse(JSON.stringify(e)))}),{immediate:!0}),this.$watch("versionsInfo",(e=>{n("versionsInfo").log(e?JSON.parse(JSON.stringify(null!==e&&void 0!==e?e:{})):e)}),{immediate:!0}),this.$watch("versionState",(e=>{n("versionState").log(e)}),{immediate:!0});const e=3e3;l({wait:e,timeout:d}).then((e=>this.versionsInfo=e))}});e.mixin({computed:{vc$versionState(){return u.versionState},vc$buildTime(){return u.buildTime}}})}function lc(e){function t(){let e=0;document.addEventListener("touchstart",(e=>{e.touches.length>1&&e.preventDefault()})),document.addEventListener("touchend",(t=>{const a=(new Date).getTime();a-e<=300&&t.preventDefault(),e=a}),!1),document.addEventListener("gesturestart",(e=>e.preventDefault())),document.addEventListener("dblclick",(e=>e.preventDefault()))}function a(){const e=window.innerHeight;document.documentElement.style.setProperty("--viewport-height",`${e}px`)}window.addEventListener("DOMContentLoaded",t),window.addEventListener("resize",a),window.addEventListener("DOMContentLoaded",a)}const cc={account_error_network:["Network error","Network Error"],account_error_attempt_limit_exceeded:["Attempt limit exceeded, please try after some time"],account_error_incorrect_username_or_password:["User does not exist","Incorrect username or password"],account_error_username_not_found:["Username/client id combination not found."],account_error_can_not_reset_for_no_verified:["Cannot reset password for the user as there is no registered/verified email or phone_number"],account_error_invalid_verification_code:["Invalid verification code provided, please try again"],account_error_password_not_long_enough:["Password did not conform with policy: Password not long enough"],account_error_invalid_phone_number_format:["Invalid phone number format"],account_error_no_cell_phone_prefix:["Please select the prefix for the phone number"],account_error_username_already_exists:["User already exists"],account_error_incorrect_password:["Incorrect password"],account_error_you_need_to_accept_license_terms:["you_need_to_accept_license_terms"],account_error_incorrect_original_password:["incorrect_original_password"]},dc={match:e=>Object.values(cc).some((t=>Array.isArray(t)?t.includes(e.message):"object"===typeof t&&Object.keys(t).includes(e.message))),execute(e,t){const a=Object.keys(cc).find((t=>cc[t].some((t=>t.includes(e.message)))));t.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})}};var uc=[dc],_c=(a("e39c"),a("229c"));function pc(e){const t={};return a(),n((()=>{o({handleBatchItem(e){console.log("Analytics.send.batchItem:",e)},handleEndpoint:(e,t)=>{console.log(`Analytics.send: Endpoint(${e})`,t)},handleEvent:(t,a)=>{console.log(`Analytics.send: Event<${a.EventType}>(${t})`,a);const n=e.eventHandlers[a.EventType];n&&n(a,t)}})})),_c["a"].$debug=function(){console.log("Analytics$debug:",{_config:_c["a"]._config,pinpoint:t.pinpoint,pinpointClient:t.pinpointClient})},_c["a"].$context=t,window.Analytics=_c["a"],t;function a(){const e=_c["a"]._pluggables.find((e=>"AWSPinpoint"===e.getProviderName()));Object.assign(t,{pinpoint:e})}function n(e){Object.defineProperty(t.pinpoint,"pinpointClient",{get(){return t.pinpointClient},set(a){t.pinpointClient=a,e(a)}})}function o({handleEndpoint:e,handleEvent:a,handleBatchItem:n}){const o=t.pinpointClient.send;t.pinpointClient.send=async function(){var i;const r=arguments[0].input;r.EndpointId&&e(r.EndpointId,r.EndpointRequest);const s=await t.pinpoint._config.endpointId,l=null===(i=r.EventsRequest)||void 0===i?void 0:i.BatchItem;if(l&&n(l),l&&l[s]){const{Endpoint:e,Events:t}=l[s];Object.entries(t).forEach((([e,t])=>{a(e,t)}))}return await o.apply(this,arguments)}}}var mc=a("36f2"),hc=async(e,{app:t})=>{if(pc({eventHandlers:{"_userauth.sign_up":(e,t)=>{},"_userauth.sign_in":(e,t)=>{},"_userauth.sign_out":(e,t)=>{}}}),process&&process.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))return void _c["a"].configure({disabled:!0});const a=gc();console.log("Analytics.app_data:",a),_c["a"].configure({AWSPinpoint:{endpoint:{attributes:{...Object.entries(a).reduce(((e,[t,a])=>({...e,[t]:[a]})),{})},metrics:void 0}}}),await Promise.all([fc(),bc(t)])};function gc(){var e;const{packageFormat:t,version:n}=i(),o=n.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:O.a.name,app_type:"electron",app_env:"production",app_format:null!==t&&void 0!==t?t:"unknown",app_version:o.version,app_channel:null!==(e=o.channel)&&void 0!==e?e:"stable"};function i(){{const e=a("bc7b"),t=a("d6fe"),n="alphabiz"===process.env.REPO?t.resolve(process.cwd(),"public"):process.resourcesPath,o="version.json",i=e.readFileSync(t.resolve(n,o));return JSON.parse(i)}}}async function fc(){const e=await fetch("https://ipinfo.io/json?token=69cbd72732f325").then((e=>e.json())).catch((()=>null));if(!e)return!1;console.log("Analytics.location:",e);const t={country:e.country};await _c["a"].updateEndpoint({location:t})}async function bc(e){e.router.app.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await _c["a"].updateEndpoint({userId:e.store.state.account.sub})}))}var yc=a("1738"),vc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g(e._b({style:{minWidth:e.minWidth},attrs:{size:"md",align:"around","no-wrap":"",percentage:e.percentage,disable:e.value||e.loading,loading:e.loading,type:e.type,unelevated:!e.shadow,icon:e.icon,label:e.label,color:e.primary?"primary":e.transparent?"transparent":"general","text-color":e.primary?"primary":"general"},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner",{attrs:{color:e.primary?"primary":"general"}})]},proxy:!0}])},"q-btn",Object.assign({},e.bound),!1),Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},wc=[],kc={name:"AmplifyButton",props:{primary:Boolean,immediate:Boolean,shadow:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},minWidth:{type:String,default:"128px"},value:{type:Boolean,default:!1},timeout:{type:Object,default:void 0},icon:{type:String,default:void 0},label:{type:String,default(){return this.icon?void 0:"button"}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},onAnimationEnd:{type:Function,default:void 0},bound:{type:Object,default(){return{}}}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t()}return o}}},beforeDestroy(){this.shutdownTimer()}},Sc=kc,Cc=(a("3c15"),Object(Y["a"])(Sc,vc,wc,!1,null,"6fc70cc6",null)),xc=Cc.exports;ie()(Cc,"components",{QBtn:ne["a"],QSpinner:Ma["a"]});var $c=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{style:Object.assign({},{minWidth:e.minWidth},e.maxWidth?{maxWidth:e.maxWidth}:{},{paddingBottom:e.screen$xs?"calc(44px + 8px)":"8px"}),attrs:{flat:"",bordered:e.bordered}},[e.showCancelCorner?a("amplify-button",{ref:"cornerCancelButton",staticClass:"self-start",staticStyle:{height:"48px"},attrs:{immediate:!0,transparent:!0,icon:"arrow_back","on-click":e.onCancel,"min-width":"64px"},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showTitle,expression:"showTitle"}],staticClass:"q-py-sm",class:e.screen$xs?"q-px-sm":"q-px-md"},[a("div",{staticClass:"text-h6 text-weight-bold q-py-sm non-selectable"},[e._v(e._s(e.title))])]),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showDescription,expression:"showDescription"}],staticClass:"q-pt-none q-pb-sm amplify-card-description",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("description",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-form",{directives:[{name:"show",rawName:"v-show",value:e.showForm,expression:"showForm"}],staticClass:"col-grow",on:{submit:e.handleSubmit}},[a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showContent,expression:"showContent"}],staticClass:"col-grow q-pt-none amplify-card-form",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("default",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:e.showCardActions,expression:"showCardActions"}],staticClass:"q-pt-md q-pb-sm amplify-card-actions",class:e.screen$xs?"q-px-sm":"q-px-md",attrs:{align:"stretch",vertical:""}},[e._t("options",null,{disable:e.disable,setDisable:function(t){return e.disable=t}}),e.showSubmitButton?a("amplify-button",{ref:"submitButton",attrs:{primary:!e.noPrimary,type:"submit",timeout:e.timeout,label:e.submitLabel,"on-click":e.onSubmit,"on-animation-end":e.afterSubmit},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e.showCancelButton?a("amplify-button",{ref:"cancelButton",attrs:{immediate:"",label:e.cancelLabel,"on-click":e.onCancel},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e._t("actions",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2)],1)],1)},Tc=[],zc={name:"AmplifyCard",props:{title:{type:String,default:void 0},bordered:{type:Boolean,default:!1},minWidth:{type:String,default:"320px"},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},afterSubmit:{type:Function,default:void 0},noPrimary:Boolean,hideDescription:Boolean,hideOptions:Boolean,hideActions:Boolean},data(){return{disable:!1}},methods:{async handleSubmit(e){await this.$refs.submitButton.handleButton(e)},handleKeydownEsc(){if(this.disable)return;if(!this.showCancelButton&&!this.showCancelCorner)return;const e=this.showCancelButton?"cancelButton":"cornerCancelButton";this.$refs[e].handleButton(null)}},computed:{showCancelCorner(){return this.cancelable&&this.cornerCancel},showTitle(){return!!this.title},showDescription(){return!this.hideDescription&&(!!this.$slots.description||!!this.$scopedSlots.description)},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!this.hideOptions&&(!!this.$slots.options||!!this.$scopedSlots.options)},showActions(){return!this.hideActions&&(!!this.$slots.actions||!!this.$scopedSlots.actions)},showSubmitButton(){return!!this.onSubmit},showCancelButton(){return this.cancelable&&!this.cornerCancel},showForm(){return this.showContent||this.showCardActions},showCardActions(){return this.showOptions||this.showSubmitButton||this.showCancelButton||this.showActions}}},Pc=zc,Ac=(a("0251"),a("1117")),Ic=Object(Y["a"])(Pc,$c,Tc,!1,null,null,null),qc=Ic.exports;ie()(Ic,"components",{QCard:Z["a"],QCardSection:X["a"],QForm:Ac["a"],QCardActions:we["a"]});var Oc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{"no-shake":"",value:e.value,persistent:"","content-class":{"background-blur":e.blur,"background-mask":e.mask,"fullscreen-dialog":!0}},on:{input:function(t){return e.$emit("input",t)}}},[e.single?a("amplify-card",e._b({attrs:{"hide-description":!e.showDescription,"hide-options":!e.showOptions,"hide-actions":!e.showActions},scopedSlots:e._u([{key:"description",fn:function(t){return[e.showDescription?e._t("description",null,null,t):e._e()]}},{key:"default",fn:function(t){return[e.showContent?e._t("default",null,null,t):e._e()]}},{key:"options",fn:function(t){return[e.showOptions?e._t("options",null,null,t):e._e()]}},{key:"actions",fn:function(t){return[e.showActions?e._t("actions",null,null,t):e._e()]}}],null,!0)},"amplify-card",e.cardProps,!1)):[e._t("default",null,{cardProps:e.cardProps,handleSubmit:e.handleSubmit,handleCancel:e.handleCancel})]],2)},Ec=[],Dc={name:"AmplifyDialog",props:{value:Boolean,blur:Boolean,mask:Boolean,single:{type:Boolean,default:!0},title:{type:String,default:void 0},minWidth:{type:String,default:void 0},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},onClear:{type:Function,default:void 0}},data(){return{disable:!1,close:!1}},watch:{value(e){!e&&this.onClear&&setTimeout((()=>this.onClear()),1e3)}},computed:{cardProps(){const e={};return e.title=this.title,e.minWidth=this.minWidth,e.maxWidth=this.maxWidth,e.cancelable=this.cancelable,e.cornerCancel=this.cornerCancel,e.submitLabel=this.submitLabel,e.cancelLabel=this.cancelLabel,e.timeout=this.timeout,this.onSubmit&&(e.onSubmit=()=>this.handleSubmit(this.onSubmit)),this.cancelable&&(e.onCancel=()=>this.handleCancel(this.onCancel)),e.afterSubmit=()=>this.handleAfterSubmit(),e},showDescription(){return!!this.$slots.description||!!this.$scopedSlots.description},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!!this.$slots.options||!!this.$scopedSlots.options},showActions(){return!!this.$slots.actions||!!this.$scopedSlots.actions}},methods:{async handleSubmit(e){e?this.close=await e():this.closeDialog()},async handleCancel(e){if(e){const t=await e();t&&this.closeDialog()}else this.closeDialog()},handleAfterSubmit(){this.close&&(this.close=!1,this.closeDialog())},closeDialog(){this.$emit("input",!1)}}},jc=Dc,Nc=(a("4d89"),Object(Y["a"])(jc,Oc,Ec,!1,null,null,null)),Lc=Nc.exports;ie()(Nc,"components",{QDialog:J["a"]});var Uc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"amplify-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,"use-input":Boolean(e.filter),"input-debounce":"0","popup-content-style":e.popupWidth,"input-style":e.enableFilter?"":"display:none","virtual-scroll-item-size":"48",hint:e.hint},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n "+e._s(e.$t("no_available_result"))+"\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}},e.hint?{key:"hint",fn:function(){return[e._v(e._s(e.hint))]},proxy:!0}:null],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},Rc=[],Mc={name:"AmplifySelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String],itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0},hint:String},data(){return{enableFilter:!1,filterValue:"",inputWidth:"280"}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid amplify-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e},popupWidth(){return this.inputWidth>292?`width: ${1*this.inputWidth+50}px`:`width: ${this.inputWidth-4}px`}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0;const e=this.$el.firstChild;e.style.width="84.36px",this.$emit("popup-show"),this.$nextTick((()=>{this.$refs.select&&this.$refs.select.showPopup()}))},onPopupHide(){this.enableFilter=!1,this.filterValue="";const e=this.$el.nextSibling,t=this.$el.firstChild;e&&(e.style.display=""),t&&(t.style.width="84.36px"),this.$emit("popup-hide")},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))},getInputWidth(){this.$nextTick((()=>{const e=this.$el.firstChild.offsetParent.childNodes[0];this.inputWidth=e.clientWidth}))}},updated(){this.getInputWidth()}},Fc=Mc,Bc=(a("bbb8"),Object(Y["a"])(Fc,Uc,Rc,!1,null,null,null)),Wc=Bc.exports;ie()(Bc,"components",{QSelect:ee["a"],QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QInput:te["a"],QItemLabel:ye["a"],QField:Ga["a"]});var Hc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-input-wrapper"},[e.isTel&&e.phoneNumberPrefixValue?a("amplify-select",{ref:"select",staticClass:"amplify-input-select",class:{focus:e.focusSelect},attrs:{options:e.phoneNumberPrefixOptions,selectLabelFn:function(){return""},readonly:e.readonly,autofocus:!1,align:e.$el,filter:e.phoneNumberPrefixFilter},on:{"popup-show":function(t){return e.selectFocus(!0)},"popup-hide":function(t){return e.selectFocus(!1)}},model:{value:e.phoneNumberPrefixValue,callback:function(t){e.phoneNumberPrefixValue=t},expression:"phoneNumberPrefixValue"}}):e._e(),a("q-input",{directives:[{name:"show",rawName:"v-show",value:!e.focusSelect,expression:"!focusSelect"}],ref:"input",staticClass:"amplify-input",class:{"amplify-tel-input":e.isTel},attrs:{"lazy-rules":"ondemand",spellcheck:"false",dense:"",outlined:"",readonly:e.readonly,autofocus:e.autofocus,value:e.isTel?e.value[1]:e.value,type:"password"===e.type?e.hidePassword?"password":"text":e.type,label:!e.isTel&&e.label?e.label:void 0,rules:e.rulesCpt,min:e.rangeCpt[0],max:e.rangeCpt[1],"error-message":e.errorMessage,error:Boolean(e.errorMessage),hint:e.hint},on:{input:e.handleInput,keydown:function(t){return t.type.indexOf("key")||8===t.keyCode?e.onPressBack.apply(null,arguments):null},focus:function(t){return e.inputFocus(!0)},blur:function(t){return e.inputFocus(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"prepend",fn:function(){return[e.isTel&&e.value[0]&&e.prefixStart?a("div",{staticClass:"amplify-input-phone-number-prefix"},[e._v("\n +"+e._s(e.value[0])+"\n ")]):e._e(),e.icon&&!e.isTel?a("q-icon",{attrs:{name:e.icon}}):e._e()]},proxy:!0},"password"===e.type?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}:null],null,!0)})],1)},Vc=[],Qc=a("c228");const Gc=(()=>{const e={};Object.values(Qc["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})();var Kc={name:"AmplifyInput",props:{value:[String,Array],readonly:Boolean,autofocus:Boolean,required:{type:[Boolean,String],default:!1},type:{type:String,default:"text"},label:String,icon:String,rules:Array,range:Array,mask:String,errorMessage:String,hint:String},data(){return{focusSelect:!1,hidePassword:!0,prefixStart:!0}},computed:{isTel(){return"tel"===this.type},rulesCpt(){const e=e=>this.requiredRule(e),t=this.rules?this.rules.map((e=>t=>{const a=e(t);return"string"===typeof a?this.$t(a):"object"===typeof a&&Array.isArray(a)?this.$t(...a):a})):null,a=[...this.required?[e]:[],...t||[]];return this.isTel&&a.push((e=>this.phoneNumberRule(e))),a},rangeCpt(){const e={date:["1900-01-01","2099-12-31"]},t=e[this.type]||[void 0,void 0];return this.range&&([void 0,null].includes(this.range[0])||(t[0]=this.range[0]),[void 0,null].includes(this.range[1])||(t[1]=this.range[1])),t},phoneNumberNotSay(){if(this.isTel)return{value:"notSay",label:"notSay",emoji:"🇼🇫"}},phoneNumberPrefixOptions(){if(!this.isTel)return;const e=Object.values(Gc);return e.unshift(this.phoneNumberNotSay),e},phoneNumberPrefixValue:{get(){if(!this.isTel)return;const e=this.value[0],t=this.value[2];return e&&t?`${e}-${t}`:this.phoneNumberNotSay.value},set(e){if(this.isTel)if(e&&e!==this.phoneNumberNotSay.value){const{prefixCode:t,countryCode:a}=Gc[e];let n=this.value[1];n.startsWith("+")&&(n=n.substr(1)),n.startsWith("00")&&(n=n.substr(2)),this.$emit("input",[t,n,a]),localStorage.setItem("def_tel_prefix",`${a}-${t}`)}else this.$emit("input",["",this.value[1],""])}}},methods:{selectFocus(e){this.focusSelect=e},inputFocus(e){var t,a,n,o,i,r;(console.log("On focus input",e),e)?null===(t=this.$refs.select)||void 0===t||null===(a=t.$el)||void 0===a||null===(n=a.classList)||void 0===n||n.add("q-field--highlighted","q-field--focus"):null===(o=this.$refs.select)||void 0===o||null===(i=o.$el)||void 0===i||null===(r=i.classList)||void 0===r||r.remove("q-field--highlighted","q-field--focus")},handleInput(e){this.$refs.input.resetValidation(),this.isTel?this.handlePhoneNumberInput(e):this.$emit("input",e)},requiredRule(e){if(this.isTel)return this.phoneNumberRequiredRule(e);if(e&&e.length>0)return!0;const t="string"===typeof this.required?this.required:this.label;return`${t}${this.$t("account_is_required")}`},phoneNumberRequiredRule(e){const t=e[1];if(t)return!0;{const e="string"===typeof this.required?this.required:this.label;return`${e}${this.$t("account_is_required")}`}},phoneNumberRule(e){const t=e[1];return this.phoneNumberPrefixValue===this.phoneNumberNotSay.value&&t?this.$t("account_error_no_cell_phone_prefix"):(this.phoneNumberPrefixValue===this.phoneNumberNotSay.value||t||(this.phoneNumberPrefixValue=this.phoneNumberNotSay.value),!0)},phoneNumberPrefixFilter(e,t){const a=["normalizedName","nativeName","value"];return a.find((a=>!!t[a]&&t[a].toLowerCase().indexOf(e.toLowerCase())>=0))},handlePhoneNumberInput(e){const t=()=>{if(!e)return this.phoneNumberNotSay;const t=e.startsWith("+"),a=e.startsWith("00"),n=t?"+":a?"00":Array.isArray(this.value)&&this.value[0]?"__":"";return this.phoneNumberPrefixOptions.find((({prefixCode:t})=>e.startsWith(`${n}${t}`)))||null},a=t();if(void 0===a||null===a)this.$emit("input",[this.value[0],e,this.value[2]]);else if(a===this.phoneNumberNotSay)this.$emit("input",[this.value[0],e,this.value[2]]);else{const{prefixCode:t,countryCode:n}=Gc[a.value];let o=e;if(o.startsWith("+")&&(o=o.substr(1)),o.startsWith("00")&&(o=o.substr(2)),o.startsWith(t)&&(o=o.substr(t.length)),this.$emit("input",[t,o,n]),!t||!n)return;localStorage.setItem("def_tel_prefix",`${n}-${t}`)}},onPressBack(e){const t=e.target;if(console.log("press back",JSON.stringify(this.value),t.selectionStart,t.selectionEnd),"email"===t.type)return console.log("Default behavior for email");const a=t.selectionDirection,n=t.selectionStart,o=t.selectionEnd,i=n===o?n-1:n,r=i<0?0:i;if(this.$nextTick((async()=>{await this.$nextTick();try{t.setSelectionRange(r,r,a)}catch(e){console.log(e.message)}})),e.preventDefault(),e.stopPropagation(),this.isTel)this.value[1]=this.value[1].substring(0,n===o?n-1:n)+this.value[1].substring(o),this.handlePhoneNumberInput(this.value[1]);else{const e=this.value.substring(0,n===o?n-1:n)+this.value.substring(o);this.$emit("input",e)}0===n&&0===o&&this.isTel&&this.$emit("onPressBack"),this.isTel&&0===o&&0===this.value[1].length&&this.$emit("input",["","",""])}},updated(){this.prefixStart=!0}},Yc=Kc,Jc=(a("2214"),Object(Y["a"])(Yc,Hc,Vc,!1,null,null,null)),Zc=Jc.exports;function Xc(e){e.component("AmplifyButton",xc),e.component("AmplifyCard",qc),e.component("AmplifyDialog",Lc),e.component("AmplifySelect",Wc),e.component("AmplifyInput",Zc)}ie()(Jc,"components",{QInput:te["a"],QIcon:wa["a"],QField:Ga["a"]});var ed=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-dialog-groups"},[a("SignedOutDialog",{ref:"signedOut"})],1)},td=[],ad=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-signed-out-dialog"},[a("amplify-dialog",{attrs:{single:!1,cornerCancel:!0,"min-width":"320px","max-width":"320px","on-clear":e.onClear,blur:!0,mask:!1},scopedSlots:e._u([{key:"default",fn:function(t){return["test"===e.currentCard?a("OAuth",e._g({ref:"test",attrs:{scope:t}},e.cardEvents)):"oauth"===e.currentCard?a("OAuth",e._g({ref:"oauth",attrs:{scope:t}},e.cardEvents)):"disableMFA"===e.currentCard?a("DisableMFA",e._g({attrs:{scope:t}},e.cardEvents)):"signedOut"===e.$store.state.account.authState?a("SignIn",e._g({attrs:{scope:t}},e.cardEvents)):"forgotPassword"===e.$store.state.account.authState?a("ForgotPassword",e._g({attrs:{scope:t}},e.cardEvents)):"signUp"===e.$store.state.account.authState?a("SignUp",e._g({attrs:{scope:t}},e.cardEvents)):"signInConfirm"===e.$store.state.account.authState?a("SignInConfirm",e._g({attrs:{scope:t}},e.cardEvents)):e._e()]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.value,expression:"value"}],staticClass:"signed-out-actions rounded-borders bg-general text-general row items-center q-py-xs q-px-sm shadow-1"},[e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:e.handleDevClick}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"q-px-md q-py-sm flex items-center"},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",unelevated:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)],1)},nd=[],od=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleSignIn)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_in_your_account"),"submit-label":e.$t("account_sign_in"),timeout:e.timeout,"no-primary":"",cancelable:"PHONE_NUMBER"===this.form.currentMode},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,ref:"sign",refInFor:!0,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:function(t){return e.signInChangeRules()},onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n||e.oauthLoading},on:{click:function(t){!n&&!e.oauthLoading&&e.handleResetPassword()}}},[e._v(e._s(e.$t("account_reset_password")))])])]}},{key:"actions",fn:function(t){var n=t.disable;return[a("amplify-button",{staticStyle:{"margin-top":"8px"},attrs:{immediate:"",primary:"",value:n,"on-click":function(){return e.$store.commit("ACCOUNT_UPDATE_STATE","signUp")},label:e.$t("account_sign_up")}}),a("ABOAuthEntry",{directives:[{name:"show",rawName:"v-show",value:e.d$cfg.oauth.enable&&!e.isMas,expression:"d$cfg.oauth.enable && !isMas"}]})]}}])},"amplify-card",e.scope.cardProps,!1))},id=[],rd=a("7ca3"),sd=a.n(rd);class ld{static without(...e){const t=`^(${e.map((e=>`(?!${e})`)).join("")}.)*$`;return new RegExp(t,"g")}static withoutOnly(...e){const t="^"+e.map((e=>`(?!${e}+$)`)).join("");return new RegExp(t,"g")}static prefixWithout(...e){const t="^"+e.map((e=>`(?!${e})`)).join("");return new RegExp(t,"g")}static suffixWithout(...e){const t=`(??");class cd{static _test(e,t){const a=e.test(t);return e.lastIndex=0,a}static _testAll(e,t){const a=e.map((e=>this._test(e,t)));return!a.includes(!1)}}sd()(cd,"Username",[e=>cd._test(ld.content("0-9","A-Z","a-z"),e)||"account_field_only_alphanumeric",e=>cd._test(ld.range(4,16),e)||["account_field_range",[4,16]],e=>cd._test(ld.prefixWithout("[0-9]"),e)||"account_field_prefix_without_number_space"]),sd()(cd,"Password",[e=>cd._test(ld.content("0-9","A-Z","a-z",ld.CHARACTERS),e)||"account_field_only_alphanumeric_and_symbol",e=>cd._test(ld.range(8,20),e)||["account_field_range",[8,20]],e=>cd._test(/[0-9]/g,e)||"account_field_must_have_number_characters"]),sd()(cd,"PhoneNumber",[e=>cd._test(ld.content("0-9"),e)||"account_field_phone_number",e=>cd._test(ld.range(3,11),e)||["account_field_range",[3,11]]]),sd()(cd,"Nickname",[e=>cd._test(ld.content("0-9","A-Z","a-z","一-龥","\\s","_"),e)||"account_field_only_chinese_alphanumeric_space_underline",e=>cd._test(ld.range(2,15),e)||["account_field_range",[2,15]],e=>cd._test(ld.prefixWithout("[0-9]","[\\s]"),e)||"account_field_prefix_without_number_space",e=>cd._test(ld.suffixWithout("\\s"),e)||"account_field_suffix_without_space",e=>cd._test(ld.WITHOUT_REPEAT_SPACE,e)||"account_field_without_repeat_space"]),sd()(cd,"VerificationCode",[e=>cd._testAll([ld.content("0-9"),ld.range(6)],e)||"account_field_verification_code"]),sd()(cd,"InvitationCode",[e=>cd._test(ld.content("0-9","A-Z","a-z"),e)||"account_field_invitation_code"]),sd()(cd,"TransferReceiver",[e=>{const t="tip_invalid_receiver",a=cd._test(ld.content("0-9","a-f","-"),e);if(!a)return t;const n=e.split("-");return 5!==n.length?t:"8-4-4-4-12"===n.map((e=>e.length)).join("-")||t}]),sd()(cd,"TransferAmount",[e=>cd._test(ld.content("0-9","."),e)||"tip_invalid_amount",e=>""+parseFloat(e)===e||"tip_invalid_amount",e=>parseFloat(e)<=1e3||"tip_invalid_amount",e=>parseFloat(e)>=.001||"tip_invalid_amount",e=>parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)||"tip_invalid_amount"]);class dd{constructor(e,t,a){this._model=t,this.defValue=this._model2value((()=>t?"object"!==typeof t?t:Array.isArray(t)?[...t]:{...t}:t)()),this.type=e,this.attrs=a||{}}get model(){return this._model}set model(e){this._model=e}get bound(){return this.attrs}_model2value(e){return e}_value2model(e){return e}updateModel(e){this.model=this._value2model(e)}get value(){return this._model2value(this.model)}clear(){this.updateModel(this.defValue)}}class ud extends dd{constructor(e,t){super("input",e,t)}}class _d extends dd{static get LOCALE_OPTIONS(){const e=Object.keys(Qc["a"]).sort(((e,t)=>(e=Qc["a"][e].normalizedName[0],t=Qc["a"][t].normalizedName[0],et?1:0))).map((e=>({value:e,emoji:Qc["a"][e].emoji,label:Qc["a"][e].name,normalizedName:Qc["a"][e].normalizedName})));return e}constructor(e,t,a){super("select",e,{...a||{},options:t})}}class pd{constructor(e){this.items=e}updateModel(e){return Object.keys(this.items).forEach((t=>{void 0!==e[t]&&this.items[t].updateModel(e[t])})),this}get formData(){const e={};for(const[t,a]of Object.entries(this.items))e[t]=a.value;return e}setDefault(){return this}clearData(){return Object.values(this.items).forEach((e=>e.clear())),this}get length(){return Object.keys(this.items).length}}var md=a("af04"),hd=a("072b");class gd extends ud{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],SINGIN:[["86","","CN"],{type:"tel",label:"account_username_email_phone",rules:[hd["e"].bind(e)]}]}}constructor(e){super(...gd.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=gd.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class fd extends pd{constructor(e,t){if(super({username:new gd(e),password:new ud("",{type:"password",icon:"lock",label:"account_password"})}),this.assumeData=fd.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=Qc["b"][t])&&void 0!==a?a:Qc["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(fd.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=fd.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a]),this.items.password.clear()}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const e=this.formData.username;this.assume=!1,this.items.username.setMode("GENERAL",e),this.items.password.clear()}get currentMode(){return this.items.username.currentMode}}sd()(fd,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}});var bd={name:"SignIn",props:{scope:Object},data(){return{isMas:v.a.mas(),timeout:{duration:6e4,onTimeout:this.handleTimeout},oauthStatus:null,form:new fd(this,this.$q.lang.getLocale().toLowerCase()),oauthProviders:["Facebook","Google","Github"],signUpMode:"email",prefix:"",countryCode:"",checkPrefix:[[],[]]}},computed:{oauthLoading(){return null!==this.oauthStatus}},methods:{handleResetPassword(){this.$store.commit("ACCOUNT_UPDATE_STATE","forgotPassword")},async handleSignIn(){try{const e=this.form.formData,t=e=>e.indexOf(" ")<0;if(!t(e.username))throw new Error("Incorrect username or password.");return await this.$store.dispatch("ACCOUNT_SIGN_IN",e),qt["a"].record.call(this,e.password),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),md["a"].showPositive("signed_in"),!0}catch(t){const a=t.message;if("SMS_MFA"===a||"SOFTWARE_TOKEN_MFA"===a)this.$store.commit("ACCOUNT_UPDATE_STATE","signInConfirm");else if("User does not exist."===a)md["a"].showNegative("Incorrect username or password."),this.form.assume&&this.form.turnToPhoneNumberMode();else{var e;t.message||(console.log("=====================> error SignIn::handleSignIn <====================="),console.log(t),console.log("=====================> error SignIn::handleSignIn <=====================")),md["a"].showNegative(null!==(e=t.message)&&void 0!==e?e:t)}}},async handleCancel(){if("PHONE_NUMBER"!==this.form.currentMode)return!0;this.form.backToGeneralMode()},handleOAuthSignIn(e){this.$emit("setCurrentCard","oauth",(t=>t.setStatus("pending",e)))},handleTimeout(){md["a"].showNegative("Network error")},signInChangeRules(){if("email"===this.signUpMode&&(this.vm=this.form.items.username.model?this.form.items.username.model:"",Array.isArray(this.vm)&&(this.vm=this.vm[1]||""),this.vm&&/^[0-9]*$/g.test(this.vm)&&(console.log("toPhone",this.vm),this.toPhone()),this.vm.startsWith("+"))){const e=this.vm.substr(1),t=this.checkPrefix[0].indexOf(e),a=this.vm.length;if(-1!==t&&(this.form.items.username.model="1"===e?[e,"","US"]:[e,"",this.checkPrefix[1][t]],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${e}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"),a>4&&/^[0-9]*$/g.test(e))for(const[n,o]of this.checkPrefix[0].entries())if(e.startsWith(o)){const t=o.length,a=e.substr(t);this.form.items.username.model="1"!==o?[o,a,this.checkPrefix[1][n]]:[o,a,"US"],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${o}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber";break}}if("phoneNumber"===this.signUpMode){this.vm=this.form.items.username.model[1]?this.form.items.username.model[1]:"";const e=this.form.items.username.model[2];-1===this.vm.indexOf("@")&&e&&!this.vm.startsWith("+")||(console.log("country",e),this.toEmail()),/^[0-9]*$/g.test(this.vm)||(console.log("not vm",JSON.stringify(this.vm)),this.toEmail())}},toPhone(){console.log("fn:toPhone"),this.form.items.username.model=[this.prefix,this.vm,this.countryCode],this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"},toEmail(){console.log("fn:toEmail",this.vm,typeof this.vm),this.$nextTick((()=>{this.form.items.username.attrs.type="text",this.form.items.username.model=this.vm,console.log(this.form.items.username.model),this.signUpMode="email"}))},defPrefix(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.prefix=t[1],this.countryCode=t[0]}else{const e=(this.$i18n.locale||navigator.language||"").toLowerCase(),t=Object.values(Qc["a"]).find((t=>t.languages.includes(e)));if(t&&t.phones&&t.phones.length){console.log("[Init Prefix] Init with phone",t.phones[0]);const e=t.phones[0].split("-");this.prefix=e[0],this.countryCode=e[1]}else console.log("[Init Prefix] Cannot find language config for",e,t),this.prefix="1",this.countryCode="US"}},prefixArr(){const e=[];Object.values(Qc["a"]).forEach((t=>{const a=t.phones[0].split("-");e.push(a)})),e.sort(((e,t)=>{const a=parseInt(e[0]),n=parseInt(t[0]);return a-n})),e.forEach((e=>{this.checkPrefix[0].push(e[0]),this.checkPrefix[1].push(e[1])}))},onPressBack(){this.toEmail(),console.log(this.form)},getSelection(){const e=this.$refs.sign[0];return e.$el.firstChild.clientWidth}},mounted(){this.defPrefix(),this.prefixArr()}},yd=bd,vd=(a("fc65"),Object(Y["a"])(yd,od,id,!1,null,"6e4f640d",null)),wd=vd.exports,kd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleNecessary,e.handleOptional][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_up_your_account")+" ("+(e.progress+1)+"/2)","submit-label":e.$t(["account_next","account_finish"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_fill_required_fields"),e.description][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable,o=t.setDisable;return[0===e.progress?[a("div",{staticClass:"column q-col-gutter-xs"},[e._l({email:e.necessaryEmailForm,phoneNumber:e.necessaryPhoneNumberForm}[e.signUpMode].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),e.usePhoneNumber?a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t({phoneNumber:"account_no_phone_number",email:"account_no_email"}[e.signUpMode]))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])]):e._e()],2)]:1===e.progress?[e._l(e.verificationForm.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("div",[a("amplify-button",{staticClass:"q-mb-sm q-mt-xs",attrs:{value:n||e.resendTimer>0,"min-width":"100%",label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleResend},on:{input:o}}),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t("account_no_verification_code"))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])])],1),a("div",[e._v("\n "+e._s(e.$t("account_fill_optional_fields"))+"\n "),e._l(e.optionsForm.items,(function(t,o){return["input"===t.type?a("amplify-input",e._b({key:o,staticClass:"q-mb-sm",attrs:{label:e.$t(t.bound.label),readonly:n,hint:"("+e.$t("optional")+")"},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1)):"select"===t.type?a("amplify-select",e._b({key:o,staticClass:"q-mb-sm",attrs:{readonly:n,hint:"("+e.$t("optional")+")",align:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-select",t.bound,!1)):e._e()]}))],2)]:e._e()]}},0===e.progress?{key:"options",fn:function(t){var n=t.disable;return[a("div",{staticClass:"col-grow q-mb-sm row items-center",staticStyle:{"margin-top":"-8px"}},[a("q-checkbox",{attrs:{disable:n,label:e.$t("account_i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"underscore select-none cursor-pointer text-primary",on:{click:function(){return n||e.handleShowLicense()}}},[e._v(e._s(e.$t("account_license_terms"))+"\n ")])],1)]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},Sd=[];function Cd(e){const t=e.appVersion,a=e.userAgent;let n="unknown",o="";const i=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var r in i){var s=i[r];if(s.r.test(a)){n=s.s;break}}switch(/Windows/.test(n)&&(o=/Windows (.*)/.exec(n)[1],n="Windows"),n){case"Mac OS":case"Mac OS X":case"Android":o=/([\\.\\_\d]+)/.exec(a.substring(/(Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/.exec(a).index||12))[1];break;case"iOS":o=/OS (\d+)_(\d+)_?(\d+)?/.exec(t),o=o[1]+"."+o[2]+"."+(0|o[3]);break}return n+(o?" "+o:"")}class xd extends pd{constructor(e){super({email:new ud("",{type:"email",icon:"email",label:"account_email",rules:[hd["a"].bind(e)]}),password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(e)]})})}}class $d extends pd{constructor(e){super({phoneNumber:new ud(["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[hd["e"].bind(e)]}),password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(e)]})})}setDefault(e){var t;const a=null!==(t=Qc["b"][e])&&void 0!==t?t:Qc["b"]["en-us"],[n,o]=a.phones[0].split("-"),i=this.items.phoneNumber;return i.updateModel([n,i.value[1],o]),this}}class Td extends pd{constructor(e){const t=[{value:"notSay",emoji:"🇼🇫",label:e.$t("account_not_say")},..._d.LOCALE_OPTIONS],a=(e,t)=>!!t.normalizedName&&(t.normalizedName.toLowerCase().indexOf(e.toLowerCase())>=0||t.label.toLowerCase().indexOf(e.toLowerCase())>=0);super({nickname:new ud("",{type:"text",icon:"emoji_emotions",label:"account_nickname",rules:[hd["c"].bind(e)]}),gender:new _d("notSay",[{value:"notSay",icon:"elevator",label:e.$t("account_not_say")},{value:"female",icon:"female",label:e.$t("account_female")},{value:"male",icon:"male",label:e.$t("account_male")}]),birthday:new ud("",{type:"date",icon:"cake"}),locale:new _d("notSay",t,{filter:a})})}}var zd={name:"SignUp",mixins:[We],props:{scope:Object},data(){var e,t,a,n;return{resendInterval:null,resendTimer:0,progress:0,necessaryEmailForm:new xd(this),necessaryPhoneNumberForm:new $d(this).setDefault(this.$q.lang.getLocale().toLowerCase()),usePhoneNumber:(null===(e=this.d$cfg)||void 0===e||null===(t=e.account)||void 0===t?void 0:t.phone_number)||!1,signUpMode:null!==(a=this.d$cfg)&&void 0!==a&&null!==(n=a.account)&&void 0!==n&&n.phone_number?"phoneNumber":"email",invitationForm:new pd({invitationCode:new ud("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[hd["b"].bind(this)]})}),accept:!1,verificationForm:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})}),optionsForm:new Td(this),signUpIpAddress:"",defPrefix:[]}},computed:{description(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},watch:{signUpMode(e){const t=()=>{this.necessaryPhoneNumberForm.clearData().setDefault(this.$q.lang.getLocale().toLowerCase())},a=()=>{this.necessaryEmailForm.clearData()};({email:t,phoneNumber:a})[e]()},progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},methods:{handleCancel(){this.progress=-1},async handleNecessary(){if(this.accept)try{if(Object(f["isElectron"])()){const e=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("SignUp - Failed to get geo for",e.message)}));this.signUpIpAddress=e||""}const e=this.__getNecessaryPayload(),t=(()=>{const a=Object(qt["s"])();if(e.email){const o=n(3e4),i=a(e.email);return Promise.race([i,o]).catch((e=>{console.log("sign up error >",e),md["a"].showNegative(e.message)})).finally((()=>{t.off(),o.cancel()})),i}{const e=Promise.resolve();return e.off=()=>{},e}function n(e){let t;const a=new Promise((a=>{t=()=>{clearTimeout(n),a(!1)};const n=setTimeout((()=>{a(!0)}),e)}));return a.cancel=t,a}})();await this.$store.dispatch("ACCOUNT_SIGN_UP_NECESSARY",e).catch((e=>{throw t.off(),e})),this.resendTimer=60,this.progress+=1}catch(e){md["a"].showNegative(e.message)}else md["a"].showNegative("you_need_to_accept_license_terms")},async handleOptional(){try{const{code:e}=this.verificationForm.formData;await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",{code:e,optAttrs:{app_client:JSON.stringify({name:O.a.name,version:Object(b["a"])("version")}),os:Cd(navigator)||"unknown",...this.optionsForm.formData}}),await new Promise((e=>setTimeout(e,3e3))),md["a"].showPositive("signed_up")}catch(e){return md["a"].showNegative(e.message),!1}try{const e=this.$store.state.account.verification.username,t=this.$store.state.account.verification.password;return await this.$store.dispatch("ACCOUNT_SIGN_IN",{username:e,password:t}),this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),!0}catch(e){this.$emit("setCurrentCard","signedOut"),md["a"].showNegative(e.message)}},async handleResend(){try{await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND"),md["a"].showPositive("code_has_been_resent")}catch(e){md["a"].showNegative(e.message)}finally{this.resendTimer=60}},handleSwitchMode(){1===this.progress&&(this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.progress=0),this.signUpMode="email"===this.signUpMode?"phoneNumber":"email"},handleShowLicense(){this.showLicenseTermsNotice(!1)},async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},__getNecessaryPayload(){const e={email:this.necessaryEmailForm,phoneNumber:this.necessaryPhoneNumberForm}[this.signUpMode],t=e.formData,{invitationCode:a}=this.invitationForm.formData,{email:n,phoneNumber:o,password:i}=t,r={};return"email"===this.signUpMode?r.email=n:"phoneNumber"===this.signUpMode&&(r.phoneNumber="+"+o[0]+o[1],r.phoneNumberCountryCode=o[2]),r.password=i,r.invitationCode=a,r.appClient=JSON.stringify({name:O.a.name,version:Object(b["a"])("version")}),r.signUpIpAddress=this.signUpIpAddress,r.os=Cd(navigator)||"unknown",r},onPressBack(e){if(!e)return;const{attrs:t,model:a}=e;t&&"tel"===t.type&&Array.isArray(a)&&(console.log("isTel",a),this.$set(a,0,""),this.$set(a,2,""))}},mounted(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.defPrefix=[t[1],"",t[0]],this.necessaryPhoneNumberForm.items.phoneNumber.model=[...this.defPrefix]}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}},Pd=zd,Ad=(a("7fb7"),Object(Y["a"])(Pd,kd,Sd,!1,null,"8707a8ce",null)),Id=Ad.exports;ie()(Ad,"components",{QCheckbox:ae["a"]});var qd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSearch,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t(["account_find_your_account","account_reset_your_password"][e.progress]),"submit-label":e.$t(["account_search","account_submit"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_enter_your_username"),e.verifyDescription][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l([e.searchForm,e.submitForm][e.progress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:e.onInput,onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1)]}},1===e.progress?{key:"actions",fn:function(t){var n=t.disable,o=t.setDisable;return[a("amplify-button",{attrs:{value:n||e.resendTimer>0,label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleSearch},on:{input:o}})]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},Od=[];const Ed=Object.values((()=>{const e={};Object.values(Qc["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})());class Dd extends ud{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],PHONE_NUMBER:[["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[hd["e"].bind(e)]}]}}constructor(e){super(...Dd.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=Dd.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class jd extends pd{constructor(e,t){if(super({username:new Dd(e)}),this.assumeData=jd.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=Qc["b"][t])&&void 0!==a?a:Qc["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(jd.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=jd.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a])}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const[e,t]=this.items.username.value;console.log("Remove prefix",e,t),this.assume=!1,this.items.username.setMode("GENERAL",t)}get currentMode(){return this.items.username.currentMode}}sd()(jd,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}});var Nd={name:"ForgotPassword",props:{scope:Object},data(){const e=e=>e===this.submitForm.items.password.model||"account_password_not_equal";return{resendInterval:null,resendTimer:0,progress:0,searchForm:new jd(this,this.$q.lang.getLocale().toLowerCase()),submitForm:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]}),password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(this)]}),reEnterPassword:new ud("",{type:"password",icon:"lock",label:"account_re_enter_password",rules:[hd["d"].bind(this),e]})})}},watch:{progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{handleCancel(){0===process&&"PHONE_NUMBER"===this.searchForm.currentMode?this.form.backToGeneralMode():this.progress-=1},async handleSearch(){try{const e=this.searchForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SEND",e.username),this.resendTimer=60,0===this.progress?this.progress+=1:md["a"].showPositive("code_has_been_resent")}catch(e){md["a"].showNegative(e.message),this.searchForm.assume&&this.searchForm.turnToPhoneNumberMode()}},async handleSubmit(){try{const e=this.submitForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SUBMIT",e),md["a"].showPositive("password_has_been_reset"),this.progress=-1}catch(e){md["a"].showNegative(e.message)}},onInput(e){const t=this.searchForm.items.username.currentMode;let a=this.searchForm.items.username.model;if("GENERAL"===t){if(Array.isArray(a)&&(a=a[1]||""),a&&/^\d+$/g.test(a)&&this.searchForm.turnToPhoneNumberMode(),a&&/^\+\d+$/.test(a)){const e=a.substring(1),t=Ed.find((t=>e.startsWith(t.prefixCode)));if(t){const{prefixCode:a,countryCode:n}=t,o=e.replace(a,""),i=[a,o,n];this.searchForm.turnToPhoneNumberMode(),this.$nextTick((()=>{console.log("To Phone With",i),this.searchForm.items.username.updateModel(i)}))}else console.log(`Cannot find ${e} as prefix`)}}else"PHONE_NUMBER"===t&&(a=this.searchForm.items.username.model[1]||"",(a.includes("@")||a.startsWith("+"))&&this.searchForm.backToGeneralMode())},onPressBack(){const e=this.searchForm.items.username.model;if(Array.isArray(e)){const t=e[1]||"";this.$nextTick((()=>{this.searchForm.items.username.updateModel(t)}))}this.searchForm.backToGeneralMode()}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}},Ld=Nd,Ud=Object(Y["a"])(Ld,qd,Od,!1,null,null,null),Rd=Ud.exports,Md=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleVerify)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_verify_your_identity"),"submit-label":e.$t("account_next"),timeout:e.timeout},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s(e.verifyDescription)+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_can_not_mfa"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("account_disable_mfa")))])])]}}])},"amplify-card",e.scope.cardProps,!1))},Fd=[],Bd={name:"SignInConfirm",props:{scope:Object},data(){return{timeout:{duration:6e4,onTimeout:this.handleTimeout},form:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})})}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`,software_token:`${this.$t("account_software_token_tip")}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{async handleVerify(){try{const{code:e}=this.form.formData;return await this.$store.dispatch("ACCOUNT_MFA_SUBMIT",e),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),md["a"].showPositive("signed_in"),!0}catch(e){md["a"].showNegative(e.message),e.message.startsWith("Invalid session for the user")&&this.handleCancel()}},handleDisableMFA(){this.$emit("setCurrentCard","disableMFA")},handleTimeout(){md["a"].showNegative("Network Error")},handleCancel(){this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")}}},Wd=Bd,Hd=(a("2e34"),Object(Y["a"])(Wd,Md,Fd,!1,null,"654a46b2",null)),Vd=Hd.exports,Qd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSend,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_disable_mfa"),"submit-label":e.$t("account_next")},scopedSlots:e._u([{key:"description",fn:function(){return[0===e.progress?a("div",[e._v(e._s(e.$t("account_tip_confirm_verify_email_phone")))]):1===e.progress&&e.verificationData?a("div",[e._v(e._s(e.$t("account_email_phone_sent_tip"))+"\n "),a("div",[e._v(e._s(e.verificationData.email.destination))]),a("div",[e._v(e._s(e.verificationData.phoneNumber.destination))])]):e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[1===e.progress?e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},Gd=[],Kd={name:"DisableMFA",props:{scope:Object},data(){return{progress:0,verificationData:null,form:new pd({emailCode:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]}),phoneCode:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})})}},watch:{progress(e){e<0&&(this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null))}},methods:{async handleSend(){try{const{user:{username:e}}=this.$store.state.account.verification,t=`${this.$store.getters.settings.language}:D`;this.verificationData=await Object(qt["j"])(e,{msgLocale:t}),this.progress+=1}catch(e){md["a"].showNegative(e.message)}},async handleSubmit(){try{const{user:{username:e}}=this.$store.state.account.verification,{emailCode:t,phoneCode:a}=this.form.formData;await Object(qt["w"])(e,t,a),this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),md["a"].showPositive("disabled_mfa"),this.progress=-1}catch(e){md["a"].showNegative(e.message)}},handleCancel(){this.progress=-1}}},Yd=Kd,Jd=Object(Y["a"])(Yd,Qd,Gd,!1,null,null,null),Zd=Jd.exports,Xd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"corner-cancel":!1,"cancel-label":e.$t("account_cancel"),"submit-label":e.$t(["account_next","account_finish"][e.signUpProgress]),"on-submit":"loading"===e.currentTemplate?void 0:"signUp"===e.currentTemplate?function(){return e.scope.handleSubmit([e.handleSignUp,e.handleVerify][e.signUpProgress])}:void e.currentTemplate,"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_oauth_sign_in_with",{provider:e.provider})},scopedSlots:e._u([{key:"description",fn:function(){return["loading"===e.currentTemplate?[a("div",{staticClass:"text-center text-weight-bold text-subtitle1 q-mt-md"},[a("q-spinner",{staticClass:"q-mr-xs q-mb-xs",attrs:{size:"1.25em"}}),a("span",{staticClass:"q-pr-lg"},[e._v(e._s(e.$t("account_loading")))])],1)]:"signUp"===e.currentTemplate?[e.data?a("div",[0===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_tip_oath_sign_up",{provider:e.data.providerName,email:e.data.providerInfo.email}))+"\n ")]):1===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_email_sent_tip"))+e._s(e.data.providerInfo.email)+"\n ")]):e._e()]):e._e()]:e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return["signUp"===e.currentTemplate?e._l([e.signUpForm,e.verificationForm][e.signUpProgress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},eu=[],tu=a("e74d"),au={name:"OAuth",props:{scope:Object},data(){return{provider:null,status:null,data:null,signUpProgress:0,signUpUsername:null,signUpForm:new pd({password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(this)]}),invitationCode:new ud("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[hd["b"].bind(this)]})}),verificationForm:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})})}},computed:{currentTemplate(){return"confirm"===this.status?"confirm":"signUp"===this.status?"signUp":["pending","requesting","success"].includes(this.status)?"loading":void 0}},watch:{status(e){if(!e)return;const t={pending:()=>this.handlePending(),requesting:()=>this.handleRequesting(),success:()=>this.handleSuccess(),signUp:()=>{},confirm:()=>{}};t[e]&&t[e]()}},methods:{async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},setStatus(e,t,a){t&&(this.provider=t),a&&(this.data=a),this.status=e},handleCancel(){this.provider=null,this.status=null,this.data=null,this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null)},async handleSuccess(){await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.provider=null,this.status=null,this.data=null,"signedIn"===this.$store.state.account.authState?(this.$emit("closeDialog"),md["a"].showPositive("signed_in")):(this.$emit("setCurrentCard",null),md["a"].showNegative("sign_in_failed"))},handlePending(){tu["a"].launchOAuth("signedOut",{provider:this.provider})},handleRequesting(){},async handleSignUp(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId}),email:this.data.providerInfo.email},t=await Object(qt["o"])({...e,...this.signUpForm.formData});this.signUpUsername=t.user.username,this.signUpProgress=1}catch(e){md["a"].showNegative(e.message),this.handleCancel()}},async handleVerify(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId})},{code:t}=this.verificationForm.formData;await Object(qt["c"])(this.signUpUsername,t,{},e),this.setStatus("pending")}catch(e){md["a"].showNegative(e.message),this.handleCancel()}},async handleConfirm(){}}},nu=au,ou=Object(Y["a"])(nu,Xd,eu,!1,null,"6bc0e027",null),iu=ou.exports;ie()(ou,"components",{QSpinner:Ma["a"]});var ru=a("39df"),su={name:"SignedOutDialog",components:{OAuth:iu,DisableMFA:Zd,SignInConfirm:Vd,SignIn:wd,ForgotPassword:Rd,SignUp:Id,Development:ru["default"]},data(){return{showDevDialog:!1,currentCard:null,value:!1,languageOptions:Ft["b"]}},computed:{cardEvents(){return{setCurrentCard:this.setCurrentCard,closeDialog:()=>this.value=!1}},_currentCard(){if(this.currentCard)return this.currentCard;const e=["signedOut","forgotPassword","signUp","signInConfirm"];return e.includes(this.$store.state.account.authState)?this.$store.state.account.authState:null},language:{get(){const e=w["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(w["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(f["isElectron"])())){const{ipcRenderer:e}=a("1b85");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}},watch:{_currentCard(e){null===e&&!1!==this.value&&(this.value=!1)}},methods:{showAboutDialog(){f["Bus"].$emit("CALL_ABOUT")},handleDevClick(){this.showDevDialog=!this.showDevDialog},setCurrentCard(e,t){this.currentCard=e,t&&e&&this.$nextTick((()=>t(this.$refs[e]))),t&&!e&&this.$nextTick((()=>t(null)))},async onClear(){this.currentCard=null,console.log("SignedOut Dialog Close: AuthState =>",this.$store.state.account.authState)},show(e){this.value=e}}},lu=su,cu=(a("1cda"),a("a829")),du=a("719b"),uu=Object(Y["a"])(lu,ad,nd,!1,null,null,null),_u=uu.exports;ie()(uu,"components",{QBtn:ne["a"],QTooltip:Rn["a"],QDialog:J["a"],QSpace:pe["a"],QSeparator:me["a"],QMenu:cu["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QColor:Ye["a"]}),ie()(uu,"directives",{Ripple:du["a"],ClosePopup:ke["a"]});const pu={watch:{"$store.state.account.authState"(e,t){this.$ga.send("auth_state_change",{from:t,to:e}),t?("signedIn"===e||"signedOut"===e&&"signedIn"===t)&&this.$emit("auth_state_changed",e):this.$emit("auth_state_changed",e)}},methods:{addOnAuthStateChangedListener(e,{once:t}={}){const a=(...n)=>{t&&this.$off("auth_state_changed",a),e(...n)};return this.$on("auth_state_changed",a),()=>this.$off("auth_state_changed",a)}}},mu={name:"AmplifyDialogGroups",components:{SignedOutDialog:_u},mixins:[pu],mounted(){new URL(location.href).pathname.startsWith("/oauth_redirect")||this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")},methods:{showSignedOut(){this.$refs.signedOut.show(!0)}}};let hu;const gu={install(e,{app:t}){const a="amplify-dialog-groups";if(!document.getElementById(a)){const e=document.createElement("div");e.id=a,document.body.appendChild(e)}const{i18n:n,router:o,store:i}=t;hu=new(e.extend({i18n:n,router:o,store:i,...mu}))({propsData:{}}).$mount("#"+a)},create$amplify(){return{showSignedOutDialog:()=>hu.showSignedOut(),addOnAuthStateChangedListener:(e,t)=>hu.addOnAuthStateChangedListener(e,t)}}};var fu=mu,bu=fu,yu=Object(Y["a"])(bu,ed,td,!1,null,null,null);yu.exports;const vu={async install(e,{app:t}){Xc(e);const a=[gu];Promise.all(a.map((a=>a.install(e,{app:t})))),Object.defineProperty(e.prototype,"$amplify",{get(){const e={},t=t=>{for(const[a,n]of Object.entries(t))e[a]=n};return a.forEach((e=>t(e.create$amplify.apply(this)))),e}})}},wu={aws_project_region:"us-east-1",aws_mobile_analytics_app_id:"4f8fe8282ebf40e4a390c2171e3e45df",aws_mobile_analytics_app_region:"us-east-1",aws_appsync_graphqlEndpoint:"https://ye6kerar5bb65jpjrhlum4gu7q.appsync-api.us-east-1.amazonaws.com/graphql",aws_appsync_region:"us-east-1",aws_appsync_authenticationType:"AMAZON_COGNITO_USER_POOLS",aws_appsync_apiKey:"da2-o7saok2xsbby5nqi2womjyd5ie",aws_cloud_logic_custom:[{name:"ABDevRest",endpoint:"https://6xf9ehebfj.execute-api.us-east-1.amazonaws.com/dev",region:"us-east-1"}],aws_cognito_identity_pool_id:"us-east-1:425781a9-0178-4dbd-b103-1d2e5e210d1a",aws_cognito_region:"us-east-1",aws_user_pools_id:"us-east-1_NbEkBdIqw",aws_user_pools_web_client_id:"1o6c32oh82hjqvd8hfora67lap",oauth:{domain:"ab-domain-dev.auth.us-east-1.amazoncognito.com",scope:["phone","email","openid","profile","aws.cognito.signin.user.admin"],redirectSignIn:"http://localhost:8080/",redirectSignOut:"http://localhost:8080/",responseType:"code"},federationTarget:"COGNITO_USER_POOLS",aws_cognito_login_mechanisms:["EMAIL","PREFERRED_USERNAME","PHONE_NUMBER"],aws_cognito_signup_attributes:[],aws_cognito_mfa_configuration:"OFF",aws_cognito_mfa_types:["SMS"],aws_cognito_password_protection_settings:{passwordPolicyMinLength:8,passwordPolicyCharacters:["REQUIRES_NUMBERS"]},aws_cognito_verification_mechanisms:["EMAIL"],aws_cognito_username_attributes:[],aws_cognito_social_providers:[]};var ku=wu,Su=a("3334"),Cu=a("0cdb"),xu=a("586d");class $u{constructor(){this.events={}}$on(e,t){return this.events[e]=this.events[e]||[],this.events[e].includes(t)||this.events[e].push(t),()=>this.$off(e,t)}$once(e,t){return t.once=!0,this.$on(e,t)}$off(e,t){if(t){if(!this.events[e])return;if(!this.events[e].includes(t))return;const a=this.events[e].indexOf(t);this.events[e].splice(a,1)}else this.events[e]=[]}async $emit(e,...t){if(!this.events[e])return;const a=[].concat(this.events[e]);let n=0;while(n{const n=o[(t+1)%2],i=[`background-color: ${n.bgc}`,`color: ${n.color}`];return i.push("padding: 2px 12px"),0===t&&i.push("border-top-left-radius: 8px","border-bottom-left-radius: 8px"),t===a.length-1&&i.push("border-top-right-radius: 8px","border-bottom-right-radius: 8px"),i.join("; ")})),r=a.map((e=>`%c${e}`)).join("");console[n](r,...i,...t)},Pu={log:{type:"log"},warn:{type:"warn"},error:{type:"error"},red:{styles:[{bgc:"rgb(248,160,160)",color:"black"},{bgc:"rgb(134,12,12)",color:"white"}]},orange:{styles:[{bgc:"rgb(248,191,160)",color:"black"},{bgc:"rgb(175,81,6)",color:"white"}]},green:{styles:[{bgc:"rgb(160,248,161)",color:"black"},{bgc:"rgb(35,154,17)",color:"white"}]},purple:{styles:[{bgc:"rgb(200,184,255)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}]},blue:{styles:[{bgc:"rgb(184,215,255)",color:"black"},{bgc:"rgb(31,107,162)",color:"white"}]},tags:e=>(...t)=>(e.options.tags=e.options.tags||[],e.options.tags.push(...t),Au(e))},Au=e=>new Proxy(e,{get(e,t,a){if("options"===t)return e.options||void 0;if(!Object.keys(Pu).includes(t))return;const n=(...e)=>zu(n.options,...e);return n.options={},Object.assign(n.options,JSON.parse(JSON.stringify(e.options||{}))),"function"===typeof Pu[t]?Pu[t](n):(Object.assign(n.options,Pu[t]),Au(n))}}),Iu=Au(zu);Object.defineProperties(zu,Object.keys(Pu).reduce(((e,t)=>(e[t]={get(){return Iu[t]}},e)),{}));var qu=zu;const Ou={};class Eu{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return Ou[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{Ou[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),n=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let o;n(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(o||(o={}),o[e]=n)}));const i=Yo["a"].graphql({query:a,variables:o});return i.name=e,i}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!Ou[e])throw new Error("operation not found");return Ou[e]}static async execute(e,t){const a=this.__getOperation(e),n=await Yo["a"].graphql({query:a,variables:t});if(n.errors)throw new Error(n.errors[0].message);return n.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(Ou).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class Du extends Eu{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"rgb(166,138,250)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)},{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const u=new Error("The number of retries exceeds the maximum"),_=e=>new Promise((t=>setTimeout(t,e))),p=async e=>{if(c=!0,i>0&&d>i)return console.warn(u),void o(["GQL","Websocket"],"failed to reconnect",u);const t=Math.min(r,1e3*Math.pow(2,d));o(["GQL","Websocket"],"connect close: ",`waiting for reconnect (${t}ms)`),await _(t),c?(d+=1,o(["GQL","Websocket"],`Attempt to reconnect (${d})`),await e(),d=0,o(["GQL","Websocket"],"reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},m=async()=>{const a=(e,t)=>{const a=["AppSync Realtime subscription init error: No current user"],n=["Connection closed","Timeout disconnect"];e.some((e=>a.includes(e.message)))?o(["GQL","Websocket"],"Skip",e):(e.some((e=>n.includes(e.message)))?o(["GQL","Websocket"],"Connect Error"):o(["GQL","Websocket"],"Connect Error: 179",e),p(m))};try{d>=0&&s&&await s();const n=Du.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await p(m)}};await m()}}class ju{static createSyncDataSubscriber(e,t,a,n=console.error){return new ju(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await Du.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class Nu{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=Du.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=ju.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}const Lu=new Nu,Uu=new Nu;var Ru={config({queries:e,mutations:t,subscriptions:a}){Du.appendOperations(e),Du.appendOperations(t),Du.appendOperations(a)},enableUserListener:async e=>await Lu.enable(e),disableUserListener:()=>Lu.disable(),addUserListener:(e,t,a)=>Lu.addListener(e,t,a),removeUserListener:(e,t)=>Lu.removeListener(e,t),enablePublicListener:async()=>await Uu.enable("*"),disablePublicListener:()=>Uu.disable(),addPublicListener:(e,t,a)=>Uu.addListener(e,t,a),removePublicListener:(e,t)=>Uu.removeListener(e,t)};class Mu{constructor(e){this.apiName=e}async __call__(e,t,a){const n=await Yo["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(n.stack){const e=new Error(n.message);throw e.name=n.name,e.stack=n.stack,e}return n}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await tu["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}get endpoint(){return Yo["a"]._options.aws_cloud_logic_custom.find((e=>e.name===this.apiName)).endpoint}}const Fu=new Mu("ABDevRest");var Bu=function(e,t){return u["a"].create({component:{render(a){return a(J["a"],{ref:"dialog",props:{persistent:!0},on:{hide:()=>this.$emit("hide")}},[a(e,t)])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}})},Wu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handleTouchPan,expression:"handleTouchPan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"fixed",staticStyle:{"min-width":"280px"},style:{left:this.left+"px",top:this.top+"px"}},[a("q-card-section",{staticClass:"q-py-none q-pr-none flex"},[a("div",[e._v("Floating")]),a("q-space"),a("q-btn",{staticStyle:{width:"32px","border-radius":"0"},attrs:{icon:"close",flat:"",size:"xs"},on:{click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none"},[e._t("default")],2)],1)},Hu=[];const Vu={data(){return{observer:null,containerRect:null,contentRect:null}},mounted(){let e=!0;this.observer=new ResizeObserver((t=>{for(const e of t)e.target===document.body?this.containerRect=e.contentRect:e.target===this.$refs.card.$el&&(this.contentRect=e.contentRect);e&&(e=!1,this.left=(this.containerRect.width-this.contentRect.width)/2,this.top=(this.containerRect.height-this.contentRect.height)/2),this.updatePosition(this.left,this.top)})),this.observer.observe(document.body),this.observer.observe(this.$refs.card.$el)},beforeDestroy(){this.observer.unobserve(document.body),this.observer.unobserve(this.$refs.card.$el)}};var Qu={name:"Floating",mixins:[Vu],data(){return{left:0,top:0}},methods:{handleTouchPan({delta:e}){this.containerRect&&this.contentRect&&this.updatePosition(this.left+e.x,this.top+e.y)},updatePosition(e,t){const a=8;this.left=Math.max(a,Math.min(e,this.containerRect.width-this.contentRect.width-a)),this.top=Math.max(a,Math.min(t,this.containerRect.height-this.contentRect.height-a))}}},Gu=Qu,Ku=Object(Y["a"])(Gu,Wu,Hu,!1,null,"286e971c",null),Yu=Ku.exports;ie()(Ku,"components",{QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"]}),ie()(Ku,"directives",{TouchPan:Aa["a"]});var Ju=e=>t=>{let a;a=e.utils.createVueInstance({render(e){const n=()=>{a.$destroy(),a.$el.remove(),a=null};return e(Yu,{on:{close:n}},[e(t)])}},!0);const n=document.createElement("div");return document.body.append(n),a.$mount(n),a},Zu={negative(e){return d["a"].create({type:"negative",message:e,position:"bottom-right",timeout:5e3})},positive(e){return d["a"].create({type:"positive",message:e,position:"bottom-right",timeout:5e3})}};const Xu=e=>t=>{Object.entries(t).forEach((([t,a])=>{e.core[t]||(e.core[t]=a.bind(e))}))},e_=({Vue:e,app:t})=>(a,n=!1)=>{if(n){const{i18n:n,router:o,store:i}=t;return new(e.extend({i18n:n,router:o,store:i}))(a)}return new e(a)},t_=e=>{const t=new Map;return a=>{const n=(a,n)=>{Object.defineProperty(e.view,a,{get(){return t.has(a)?t.get(a):n.bind(e)},set(e){if(void 0===e||null===e){var n;if(!t.has(a))return;const e=t.get(a);t.delete(a),null===(n=e.view$destroy)||void 0===n||n.call(e)}else t.set(a,e)}})};Object.entries(a).forEach((([e,t])=>n(e,t)))}},a_=new $u,n_=qu.orange.tags("Account"),o_={config:({queries:e,mutations:t,subscriptions:a})=>Ru.config({queries:e,mutations:t,subscriptions:a}),enable:()=>Ru.enablePublicListener(),disable:()=>Ru.disablePublicListener(),addListener:(...e)=>Ru.addPublicListener(...e),removeListener:(...e)=>Ru.removePublicListener(...e)};var i_=(e,{app:t},a)=>({injectToCore:Xu(a),createVueInstance:e_({Vue:e,app:t}),injectToView:t_(a),emit:(...e)=>a_.$emit(...e),on:(...e)=>a_.$on(...e),off:(...e)=>a_.$off(...e),once:(...e)=>a_.$once(...e),logger:n_,ABDevRest:Fu,sync:o_,showInDialog:Bu,showInFloating:Ju(a),notify:Zu});class r_{static create(e,t){const a=new this(e);return Object.assign(a,t)}constructor(e){this.NAME=e}onCreateCore(e,t,a){return{}}onConfigure(e,t,a){}onCreateStoreMixin(e,t,a){return{}}onRegisterView(e,t,a){return{}}}class s_{constructor(e){this.NAME=e,this[e]={}}get context(){return this[this.NAME]}onConfigure(e){Object.assign(this.context,{config:{},utils:null,core:{},store:null,view:{}}),window.$alphabiz=window.$alphabiz||{},window.$alphabiz[this.NAME]=window.$alphabiz[this.NAME]||this.context}onInstallUtils(e,t){Object.assign(this.context,{utils:i_(e,t,this.context)}),Object.assign(this.context,{$emit:this.context.utils.emit,$on:this.context.utils.on,$once:this.context.utils.once,$off:this.context.utils.off,$logger:this.context.utils.logger})}useExtensions(e,t,a){const n=(e,t)=>t instanceof r_?t:r_.create(e,t),o=Object.entries(e).map((([e,t])=>n(e,t))),i={mixins:[]},r=[e=>this.context.utils.injectToCore(e.onCreateCore(t,a,this.context)),e=>e.onConfigure(t,a,this.context),e=>i.mixins.push(e.onCreateStoreMixin(t,a,this.context)),e=>this.context.utils.injectToView(e.onRegisterView(t,a,this.context))];r.forEach((e=>o.forEach(e))),this.context.store=this.context.utils.createVueInstance(i,!0)}exportAsVuePlugin(){const e=e=>{const t=this.context;Object.defineProperty(e.prototype,this.NAME,{get(){const e=this,a=["$test"],n=new Proxy(t,{get(t,n,o){if(!a.includes(n))return Reflect.get(t,n,o);const i=Reflect.get(t,n,o);return Object.keys(i).reduce(((t,a)=>({...t,[a]:i[a].bind(e)})),{})}});return n}})};return(t,a)=>{this.onConfigure(),e(t),this.onInstallUtils(t,a),this.useExtensions(a.extensions,t,a)}}}var l_={createExtension:r_.create.bind(r_),PluginInstaller:e=>new s_(e)};let c_=!1;var d_={async signInPage(){const e=(e,t)=>{this.$account.view.SignInPage._isVue?this.$account.view.SignInPage.updateCard(e,t):this.$account.view.SignInPage({card:e,props:t})};c_?await e("SignInCard",{}):(c_=!0,this.$watch((()=>this.$account.store.authState),(async t=>{"pending"===t?(await e("LoadingCard",{title:"auth_state.pending"}),await new Promise((e=>setTimeout(e,1e3))),await this.$account.store.tryToSignInCurrentAccount()):"signed_out"===t&&await e("SignInCard",{})}),{immediate:!0}))}},u_=a("35f4"),__=a("02fe"),p_=a.n(__);async function m_({email:e,phone_number:t,phone_number_code:a,password:n},{language:o}){const i={username:Object(u_["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20)().toLowerCase(),password:n,attributes:{},clientMetadata:{}},r=()=>{if(e)Object.assign(i.attributes,{email:e});else{if(!t)throw new Error("Invalid signup params");Object.assign(i.attributes,{phone_number:t,"custom:phone_number_code":a})}Object.assign(i.attributes,{"custom:msg_locale":`${o}:${i.attributes.email?"E":"P"}`})},s=()=>{Object.assign(i.clientMetadata,{})};r(),s();const{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}=await tu["a"].signUp(i),{ABDevRest:p}=this.utils;return await p.postGuest("/account/postSignUp",{sub:l,username:i.username,keychainMetadataHash:p_.a.SHA256(n).toString(),isTestEnv:window.isTestEnv,invitationCode:i.clientMetadata.invitationCode}),{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}}async function h_(e){const{CodeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}=await tu["a"].resendSignUp(e);return{codeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}}async function g_(e,t,{nickname:a,gender:n,birthday:o,locale:i}){const r={};Object.assign(r,{optionalAttributes:JSON.stringify({nickname:a,gender:n,birthday:o,locale:i})}),Object.assign(r,{}),await tu["a"].confirmSignUp(e,t,{clientMetadata:r})}async function f_(e){const{ABDevRest:t}=this.utils,a=await tu["a"].currentAuthenticatedUser();await tu["a"].changePassword(a,e,e),await t.post("/admin/deleteAccount")}var b_={signUp:m_,signUpResend:h_,signUpConfirm:g_,deleteAccount:f_};async function y_(){const e=await tu["a"].currentAuthenticatedUser();return e?0===Object.keys(e).length?null:e:null}async function v_(e,t,{handleConfirm:a}){const n=async()=>{let n;e=e.toLowerCase();try{const a={};await this.$emit("signIn.createClientMetadata",a),n=await tu["a"].signIn(e,t,a)}catch(o){if("UserNotConfirmedException"===o.code)return await a();throw o}if(n.challengeName){const a={};await this.$emit("signIn.createChallengeHandlers",a);const o=a[n.challengeName];if(!o)throw new Error("Unexpected challenge: "+n.challengeName);return await o(e,t,n)}return!0},o=await n();if(o){const{ABDevRest:e}=this.utils;await e.post("/account/postSignIn",{keychainMetadataHash:p_.a.SHA256(t).toString()})}return o}var w_={signIn:v_,getCurrentAuthedUser:y_};async function k_(){await tu["a"].signOut()}var S_={signOut:k_};async function C_(e,t){const{ABDevRest:a}=this.utils,n=await tu["a"].currentAuthenticatedUser();await a.post("/account/changePassword",{username:n.getUsername(),AccessToken:n.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:e,ProposedPassword:t})}async function x_(e,{language:t}){e=e.toLowerCase();const a={msgLocale:`${t}:F`},{CodeDeliveryDetails:{AttributeName:n,Destination:o}}=await tu["a"].forgotPassword(e,a);return{codeDeliveryDetails:{AttributeName:n,Destination:o}}}async function $_(e,{code:t,password:a}){const{ABDevRest:n}=this.utils;await n.postGuest("/account/forgotPasswordSubmit",{ClientId:tu["a"].userPool.getClientId(),ConfirmationCode:t,Password:a,Username:e})}async function T_(e){const t=await tu["a"].currentAuthenticatedUser(),a=["nickname","gender","birthday","locale"];await tu["a"].updateUserAttributes(t,a.reduce(((t,a)=>{const n=e[a];return void 0!==n&&(t[a]=n),t}),{}))}var z_={changePassword:C_,forgotPasswordSend:x_,forgotPasswordSubmit:$_,changeAttributes:T_};let P_=null;async function A_(e,t){const a=`${e}:${t}`;if(P_===a)return;const n=await tu["a"].currentAuthenticatedUser();await tu["a"].updateUserAttributes(n,{"custom:msg_locale":a}),P_=a}async function I_(e,{language:t}){await A_(t,{email:"E",phone_number:"P"}[e]),await tu["a"].verifyCurrentUserAttribute(e)}async function q_(e,t){const{ABDevRest:a}=this.utils,n=await tu["a"].verifyCurrentUserAttributeSubmit(e,t);await a.post("/account/postVerifyAttr",{success:"SUCCESS"===n})}async function O_(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=await tu["a"].currentAuthenticatedUser();e===n.attributes.email?await I_("email",{language:t}):(await A_(t,"E"),await a.post("/account/setVerifyAttr",{email:e}))}async function E_(e,t,{language:a}){const{ABDevRest:n}=this.utils,o=await tu["a"].currentAuthenticatedUser();e&&t&&e===o.attributes.phone_number&&t===o.attributes["custom:phone_number_code"]?await I_("phone_number",{language:a}):(await A_(a,"P"),await n.post("/account/setVerifyAttr",{phone_number:{phoneNumber:e,phoneNumberCountryCode:t}}))}async function D_(e){return await q_("email",e)}async function j_(e){return await q_("phone_number",e)}var N_={verifyFieldSend:I_,verifyFieldSubmit:q_,changeEmailSend:O_,changeEmailSubmit:D_,changePhoneNumberSend:E_,changePhoneNumberSubmit:j_},L_=a("bbb3"),U_=(e,t,a)=>{L_["default"].configure({...t.awsconfig,aws_cognito_mfa_configuration:"OPTIONAL",aws_cognito_mfa_types:["SMS"]}),tu["a"].configure({authenticationFlowType:"CUSTOM_AUTH"}),a.utils.sync.config(t.gql)};function R_(){return this.$store.getters.settings.language}const M_={created(){this.$account.$on("authState.authorized",(async()=>{await this.$account.view.SignInPage.updateCard("LoadingCard",{title:"auth_state.authorized"}),await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")}))}},F_={async onSignIn(){["pending","signed_out"].includes(this.authState)&&(this.authState="authorized",await this.$account.$emit("authState.authorized")),this.authState="signed_in",await this.$account.$emit("authState.signedIn")},async onSignOut(){"signed_in"===this.authState&&(this.authState="sign_out",await this.$account.$emit("authState.signOut")),this.authState="signed_out",await this.$account.$emit("authState.signedOut")}};var B_={mixins:[M_],data(){return{authState:"pending"}},methods:{async signIn(e,t){const a=await this.$account.core.signIn(e,t,{handleConfirm:()=>{throw new Error("UserNotConfirmedException")}});if(a){const e=await this.$account.core.getCurrentAuthedUser();await F_.onSignIn.call(this,e)}return a},async signOut(){await this.$account.core.signOut(),await F_.onSignOut.call(this)},async deleteAccount(e){await this.$account.core.deleteAccount(e),await this.signOut()},async tryToSignInCurrentAccount(){const e=["The user is not authenticated"];let t;try{if(t=await this.$account.core.getCurrentAuthedUser(),!t)throw"user is null"}catch(a){if(e.includes(a))return void await F_.onSignOut.call(this);throw this.$account.$logger.tags("SignInFlow","pending","rejected").warn(a,typeof a),a}await F_.onSignIn.call(this,t)}}},W_={methods:{async signUp({email:e,phone_number:t,phone_number_code:a,password:n},{requireConfirm:o}){const i=await this.$account.core.signUp({email:e,phone_number:t,phone_number_code:a,password:n},{language:R_.call(this)}),r=await o({data:i,resend:async()=>{await this.$account.core.signUpResend(i.user.getUsername())},callback:async(e,t)=>{await this.$account.core.signUpConfirm(i.user.getUsername(),e,t)}});return r}}},H_={methods:{async forgotPassword(e,{requireCode:t}){const a=await this.$account.core.forgotPasswordSend(e,{language:R_.call(this)}),n=await t({data:a,callback:async(t,a)=>{await this.$account.core.forgotPasswordSubmit(e,{code:t,password:a})}});return n},async changePassword(e,t){await this.$account.core.changePassword(e,t)}}},V_={methods:{async changeEmail(e,{requireCode:t}){const a=async()=>{const t=R_.call(this);await this.$account.core.changeEmailSend(e,{language:t})};await a(),await t({resend:async()=>{await a()},callback:async e=>{await this.$account.core.changeEmailSubmit(e)}})},async changePhoneNumber({phone_number:e,phone_number_code:t},{requireCode:a}){const n=async()=>{const a=R_.call(this);await this.$account.core.changePhoneNumberSend(e,t,{language:a})};await n(),await a({resend:async()=>{await n()},callback:async e=>{await this.$account.core.changePhoneNumberSubmit(e)}})}}},Q_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-modal-page"},[a("transition",{attrs:{name:"fade"}},[e.showContent?a("Backdrop"):e._e()],1),e.$scopedSlots.corner?a("div",{staticClass:"container",staticStyle:{"z-index":"7000"}},[a("transition",{attrs:{name:"slide-right"}},[e.showContent?a("Corner",[e._t("corner")],2):e._e()],1)],1):e._e(),a("div",{staticClass:"container flex justify-center items-center",staticStyle:{"z-index":"6000"}},[a("transition",{attrs:{name:"scale"}},[e.showContent?e._t("default"):e._e()],2)],1)],1)},G_=[],K_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-backdrop",class:[e.backdropType]})},Y_=[];const J_={mounted(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)||document.body.classList.add(e)},beforeDestroy(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)&&document.body.classList.remove(e)}};var Z_={name:"Backdrop",mixins:[J_],data(){return{backdropType:"shadow"}}},X_=Z_,ep=(a("55e6"),Object(Y["a"])(X_,K_,Y_,!1,null,null,null)),tp=ep.exports;ie()(ep,"components",{QDialog:J["a"]});var ap=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bg-page text-page absolute-bottom-right shadow-1 rounded-borders q-ma-sm q-py-xs q-px-sm"},[e._t("default")],2)},np=[],op={name:"Corner"},ip=op,rp=Object(Y["a"])(ip,ap,np,!1,null,"4cc4e2b0",null),sp=rp.exports;const lp=300,cp={data(){return{showContent:!1}},mounted(){this.show()},methods:{async hide(){this.showContent=!1,await new Promise((e=>setTimeout(e,lp)))},async show(){this.showContent=!0,await new Promise((e=>setTimeout(e,lp)))}}};var dp={name:"ModalLayout",mixins:[cp],components:{Backdrop:tp,Corner:sp}},up=dp,_p=(a("4ec4"),Object(Y["a"])(up,Q_,G_,!1,null,null,null)),pp=_p.exports,mp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[e._t("default"),a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",unelevated:"",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}})],2)},hp=[],gp={name:"Corner"},fp=gp,bp=Object(Y["a"])(fp,mp,hp,!1,null,null,null),yp=bp.exports;ie()(bp,"components",{QBtn:ne["a"]});var vp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",[a("q-card-section",{staticClass:"flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(" "+e._s(e.title)+" ")])],1)],1)},wp=[],kp={name:"LoadingCard",props:{title:String}},Sp=kp,Cp=Object(Y["a"])(Sp,vp,wp,!1,null,"598e682e",null),xp=Cp.exports;ie()(Cp,"components",{QCard:Z["a"],QCardSection:X["a"],QSpinnerIos:yn["a"]});var $p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"non-selectable q-pt-lg"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_in.sign_in")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}}),a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.password"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}})],1),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",on:{click:function(){return e.$account.view.SignInPage.updateCard("ResetPasswordCard")}}},[e._v(e._s(e.$t("tip.reset_password")))])])]),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.sign_in")},on:{click:e.handleSignIn}},"q-btn",e.loadingProps("sign_in"),!1)),a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.sign_up")},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignUpCard",{initialSignUpMode:"email"})}}},"q-btn",e.loadingProps("sign_up"),!1)),a("ABOAuthEntry")],1)],1)},Tp=[];const zp={sign_in:{sign_in:["Sign In","登录账户","登錄賬戶"]},sign_up:{sign_up:["Sign Up","注册账户","註冊賬戶"],verify:["Identify verification","身份验证","身份驗證"]},reset_password:{find_your_account:["Find your account","找寻你的账户","找尋你的賬戶"],enter_your_username:["Enter your phone number or email","输入你的手机号码或电子邮箱","輸入你的手機號碼或電子郵箱"]},field:{username:["Phone number or email","手机号码或电子邮箱","手機號碼或電子郵箱"],email:["Email","邮箱","郵箱"],phone_number:["Phone Number","手机号码","手機號碼"],password:["Password","密码","密碼"],verification_code:["Verification code","验证码","驗證碼"],license_terms:["the license and terms","服务许可条款","服務許可條款"]},tip:{forgot_your_password:["Forgot your password? ","忘记密码了?","忘記密碼了?"],reset_password:["Reset password","重置密码","重置密碼"],no_email:["No email? ","没有邮箱?","沒有郵箱?"],sign_up_by_email:["Sign up by email","通过邮箱注册","通過郵箱註冊"],no_phone_number:["No phone number? ","没有手机号码?","沒有手機號碼?"],sign_up_by_phone_number:["Sign up by phone number","通过手机注册","通過手機註冊"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],email_sent:["An email with a verification code has been sent to your email address: {email}","一封附带验证码的电子邮件已发送到您的邮箱:{email}","一封附帶驗證碼的電子郵件已發送到您的郵箱:{email}"],can_not_get_code:["Can not get verification code? ","无法获取验证码?","無法獲取驗證碼?"]},action:{resend_code:["Resend code","重发验证码","重發驗證碼"],finish:["Finish","完成","完成"],continue:["Continue","下一步","繼續"],i_accept:["I accept ","我接受","我接受"],sign_in:["Sign In","登录","登錄"],sign_up:["Sign Up","注册","註冊"],search:["Search","查找","查找"]}},Pp=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Ap={messages:Pp(zp)};const Ip={data(){return{hidePassword:!0}}},qp={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Op={name:"SignInCard",i18n:Ap,mixins:[qp,Ip],props:{initial_username:String,initial_password:String},created(){this.initial_username&&(this.username=this.initial_username),this.initial_password&&(this.password=this.initial_password)},mounted(){this.password&&this.username&&this.handleSignIn()},data(){return{username:null,password:null}},methods:{async handleSignIn(){await this.withLoadingWrapper("sign_in",(async()=>{await this.$account.store.signIn(this.username,this.password)}))}}},Ep=Op,Dp=Object(Y["a"])(Ep,$p,Tp,!1,null,null,null),jp=Dp.exports;ie()(Dp,"components",{QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QInput:te["a"],QIcon:wa["a"]});var Np=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.sign_up")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-pt-none"},["email"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.email"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.email,callback:function(t){e.email=t},expression:"email"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}],null,!1,176215e3),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_email"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="phone_number"}}},[e._v(e._s(e.$t("tip.sign_up_by_phone_number")))])])]:"phone_number"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.phone_number"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.phone_number,callback:function(t){e.phone_number=t},expression:"phone_number"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_phone_number"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="email"}}},[e._v(e._s(e.$t("tip.sign_up_by_email")))])])]:e._e()],2),a("q-card-section",{staticClass:"q-py-none row items-center non-selectable"},[a("q-checkbox",{staticStyle:{"margin-left":"-8px"},attrs:{label:e.$t("action.i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"q-ml-xs underscore select-none cursor-pointer text-primary",on:{click:e.showLicenseTerms}},[e._v("\n "+e._s(e.$t("field.license_terms"))+"\n ")])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.continue")},on:{click:function(t){return e.withLoadingWrapper("sign_up",e.handleSignUp)}}},"q-btn",e.loadingProps("sign_up"),!1))],1)],1)},Lp=[],Up=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.verify")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.description))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_get_code"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(){return e.$emit("switchMode","email"===e.signUpMode?"phone_number":"email")}}},[e._v(e._s("email"===e.signUpMode?e.$t("tip.sign_up_by_phone_number"):e.$t("tip.sign_up_by_email")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.finish")},on:{click:function(t){return e.withLoadingWrapper("confirm",e.handleConfirm)}}},"q-btn",e.loadingProps("confirm"),!1))],1)],1)},Rp=[];const Mp={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},Fp={data(){return{showAttributes:!1,attributes:{nickname:null,gender:"not_say",birthday:null,locale:"not_say"}}}};var Bp={name:"SignUpConfirmCard",i18n:Ap,mixins:[Mp,Fp],props:{signUpMode:String,resend:Function,confirm:Function},data(){return{verification_code:null}},computed:{description(){return"email"===this.signUpMode?this.$t("tip.email_sent",{email:"email"}):"phone_number"===this.signUpMode?this.$t("tip.sms_sent",{phone_number:"phone_number"}):void 0}},methods:{async handleResend(){try{await this.resend()}catch(e){}},async handleConfirm(){try{const e=Object.entries(this.attributes).reduce(((e,[t,a])=>a?{...e,[t]:a}:e),{});return await this.confirm(this.verification_code,e)}catch(e){}}}},Wp=Bp,Hp=a("03bd"),Vp=a("abe8"),Qp=Object(Y["a"])(Wp,Up,Rp,!1,null,null,null),Gp=Qp.exports;ie()(Qp,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QToggle:Hp["a"],QTooltip:Rn["a"],QInput:te["a"],QSlideTransition:Vp["a"]});const Kp={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},Yp={data(){return{hidePassword:!0}}},Jp={data(){return{confirmDialog:null}},beforeDestroy(){this.confirmDialog&&this.confirmDialog.hide()},methods:{showConfirmDialog({data:e,resend:t,confirm:a}){this.confirmDialog||(this.confirmDialog=this.$account.utils.showInDialog(Gp,{props:{signUpMode:this.signUpMode,resend:t,confirm:async(...e)=>{await a(...e),this.confirmDialog.hide()}},on:{back:()=>{this.confirmDialog.hide(),this.$account.view.SignInPage.updateCard("SignInCard")},switchMode:e=>{this.confirmDialog.hide(),this.signUpMode=e}}}),this.confirmDialog.onDismiss((()=>this.confirmDialog=null)))}}};var Zp={name:"SignUpCard",i18n:Ap,mixins:[Kp,Jp,Yp],props:{initialSignUpMode:String},data(){return{signUpMode:"email",email:null,phone_number:null,password:null,accept:!1}},created(){this.signUpMode=this.initialSignUpMode},methods:{showLicenseTerms(){this.$account.$emit("signUp.showLicenseTerms")},async handleSignUp(){const e={email:{email:this.email},phone_number:{phone_number:this.phone_number,phone_number_code:this.phone_number_code}}[this.signUpMode];Object.assign(e,{password:this.password});const t=await this.$account.store.signUp(e,{requireConfirm:this.handleSignUpConfirm.bind(this)});t&&this.$account.view.SignInPage.updateCard("SignInCard",{initial_username:{email:this.email,phone_number:this.phone_number}[this.signUpMode],initial_password:this.password})},async handleSignUpConfirm({data:e,resend:t,callback:a}){let n=!1;return this.showConfirmDialog({data:e,resend:t,confirm:async(e,t)=>{await a(e,t),n=!0}}),await new Promise((e=>this.confirmDialog.onDismiss(e))),n}}},Xp=Zp,em=Object(Y["a"])(Xp,Np,Lp,!1,null,null,null),tm=em.exports;ie()(em,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"],QIcon:wa["a"],QCheckbox:ae["a"]}),ie()(em,"directives",{ClosePopup:ke["a"]});var am=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("reset_password.find_your_account")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("reset_password.enter_your_username"))+" ")])])]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",{staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.search")},on:{click:e.handleResetPassword}})],1)],1)},nm=[];const om={data(){return{hidePassword:!0}}};var im={name:"ResetPasswordCard",mixins:[om],i18n:Ap,data(){return{username:null}},methods:{handleResetPassword(){}}},rm=im,sm=Object(Y["a"])(rm,am,nm,!1,null,null,null),lm=sm.exports;ie()(sm,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var cm=async function({card:e,props:t,events:a}){const n={},o={cards:n,corner:yp};this.$on("createSignInPage",_m),await this.$emit("createSignInPage",o);const i=dm("SignInPage",{cards:n,card:e,props:t,events:a,corner:o.corner}),r=this.utils.createVueInstance(i,!0);return r.$mount(um("alphabiz-sign-in-page")),r};function dm(e,{cards:t,card:a,props:n,events:o,corner:i}){const r={beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},methods:{async view$destroy(){await this.$refs.layout.hide(),this.$destroy(),this.$el.remove()}}};return{name:e,mixins:[r],render:s,data(){return{card:a,props:n||{},events:o||{}}},methods:{updateCard(e,t={},a={}){this.card=e,this.props=t,this.events=a}}};function s(e){return e(pp,{ref:"layout",scopedSlots:{corner:()=>e(i),default:()=>e(t[this.card],{props:this.props,on:this.events})}})}}function um(e){return document.getElementById(e)||(()=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t})()}function _m({cards:e}){Object.assign(e,{LoadingCard:xp,SignInCard:jp,SignUpCard:tm,ResetPasswordCard:lm})}a("d176");var pm={SignInPage:cm},mm={onCreateCore(e,t,a){return{...b_,...w_,...S_,...z_,...N_}},onConfigure(e,t,a){U_(e,t,a)},onCreateStoreMixin(e,t,a){return{mixins:[B_,W_,H_,V_]}},onRegisterView(e,t,a){return a.$on("authState.signedIn",(()=>a.view.SignInPage=null)),{...pm}}},hm=a("a071"),gm={onCreateCore(e,t,a){return{}},onConfigure(e,t,a){const n=a;n.$on("signIn.createChallengeHandlers",(t=>{t.CUSTOM_CHALLENGE=async(t,a,n)=>{const o=await e.prototype.$recaptcha("login");if(n=await tu["a"].sendCustomChallengeAnswer(n,o),!n)throw new Error("Network Error");return!0}}));const o=n.$logger.tags("ReCaptcha"),i=async({offLine:e,onLine:t},a)=>{await new Promise((t=>{if(navigator.onLine)t();else{const n=setInterval((()=>{navigator.onLine?(clearInterval(n),t()):e()}),a)}})),t()};i({offLine(){o.log("network offline, retry...")},onLine(){e.use(hm["VueReCaptcha"],{siteKey:"6LeQxGkdAAAAAEU4CVmCtybi8FkBPoX4oy1UnN7Q",loaderOptions:{useRecaptchaNet:!0,autoHideBadge:!0,explicitRenderParameters:{badge:"bottomright"}}}),o.log("loaded")}},3e3)},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}};async function fm(){const e=await tu["a"].currentAuthenticatedUser();return await tu["a"].getPreferredMFA(e)}async function bm(e){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(e))throw new Error("invalid_mfa_type");const t=await tu["a"].currentAuthenticatedUser();await tu["a"].setPreferredMFA(t,e)}async function ym(){const e=await tu["a"].currentAuthenticatedUser();return await tu["a"].setupTOTP(e)}async function vm(e){const t=await tu["a"].currentAuthenticatedUser();await tu["a"].verifyTotpToken(t,e)}async function wm(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=`${t}:D`,{email:o,phoneNumber:i}=await a.postGuest("/account/verifyForDisableMFA",{username:e,metadata:{msgLocale:n}});return{email:{destination:o.Destination},phoneNumber:{destination:i.Destination}}}async function km(e,{emailCode:t,phoneCode:a}){const{ABDevRest:n}=this.utils;e=e.toLowerCase(),await n.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}var Sm={setupTOTP:ym,verifyTotpToken:vm,getMFA:fm,changeMFA:bm,disableMFASend:wm,disableMFASubmit:km};function Cm(){return this.$store.getters.settings.language}const xm=async function(e){const t=()=>this.$account.core.verifyFieldSend("phone_number",{language:Cm.call(this)});await t();const a=await e({resend:()=>t(),callback:async e=>{await this.$account.core.verifyFieldSubmit("phone_number",e)}});return a},$m=async function(e){const t=await e({setup:()=>this.$account.core.setupTOTP(),callback:async e=>{await this.$account.core.verifyTotpToken(e)}});return t};var Tm={methods:{async setNoMfa({requireCodeFromSMS:e,requireCodeFromOTP:t}){const a=this.$account.core.getMFA();if("NOMFA"===a)return!0;let n=!1;if("SMS_MFA"===a)n=await xm.call(this,e);else{if("SOFTWARE_TOKEN_MFA"!==a)throw new Error("invalid_mfa_type");n=await $m.call(this,t)}return!!n&&(await this.$account.core.changeMFA("NOMFA"),!0)},async setSmsMfa({requireCodeFromSMS:e}){const t=this.$account.core.getMFA();if("SMS_MFA"===t)return!0;const a=await xm.call(this,e);return!!a&&(await this.$account.core.changeMFA("SMS_MFA"),!0)},async setOtpMfa({requireCodeFromOTP:e}){const t=this.$account.core.getMFA();if("SOFTWARE_TOKEN_MFA"===t)return!0;const a=await $m.call(this,e);return!!a&&(await this.$account.core.changeMFA("SOFTWARE_TOKEN_MFA"),!0)},async disableMfa(e){const t=await this.$account.core.disableMFASend(e,{language:Cm.call(this)});let a=!1;return await this.$account.$emit("disableMfa.requireCodes",{data:t,submit:async({emailCode:t,phoneCode:n})=>{await this.$account.core.disableMFASubmit(e,{emailCode:t,phoneCode:n}),a=!0}}),a}},created(){const e=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromSMS",{username:a.username,resend:async()=>{a=await tu["a"].signIn(e,t)},submit:async e=>{await tu["a"].confirmSignIn(a,e,"SMS_MFA"),n=!0}}),n},t=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromOTP",{username:a.username,submit:async e=>{await tu["a"].confirmSignIn(a,e,"SOFTWARE_TOKEN_MFA"),n=!0}}),n};this.$account.$on("signIn.createChallengeHandlers",(a=>Object.assign(a,{SMS_MFA:e,SOFTWARE_TOKEN_MFA:t})))}},zm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.sms_sent",{phone_number:"phone_number"})))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},Pm=[];const Am={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Im={name:"RequireCodeFromSMS",mixins:[Am],props:{username:String,resend:Function,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleResend(){try{await this.resend()}catch(e){}},async handleSubmit(){try{return await this.submit(this.verification_code),void this.$emit("back")}catch(e){}}}},qm=Im,Om=Object(Y["a"])(qm,zm,Pm,!1,null,null,null),Em=Om.exports;ie()(Om,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var Dm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.require_otp")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(t){return e.withLoadingWrapper("disable",e.handleDisableMFA)}}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},jm=[];const Nm={verify_your_identity:["Verify your identity","验证您的身份","驗證您的身份"],disable_mfa:{title:["Disable MFA","关闭二级验证","關閉二級驗證"],loading:["Loading...","加载中...","加載中..."]},action:{submit:["Submit","提交","提交"],resend_code:["Resend code","重发验证码","重發驗證碼"],disable_mfa:["Disable MFA","关闭二级验证","關閉二級驗證"]},field:{verification_code:["Verification code","验证码","驗證碼"],email_code:["Email Code","邮箱验证码","郵箱驗證碼"],sms_code:["SMS Code","短信验证码","簡訊驗證碼"]},tip:{require_otp:["MFA is enabled for your account. To finish signing in, please turn on your device and type the TOTP","您的账户已启用安全令牌。要完成登录,请查看您的设备并输入验证码","您的賬戶已啟用安全令牌。要完成登錄,請查看您的設備並輸入驗證碼"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],can_not_mfa:["MFA in trouble? ","无法进行二级验证?","無法進行二級驗證?"],verify_identity_by_codes:["Enter the email verification code and SMS verification code to verify your identity","输入邮件验证码与短信验证码以验证您的身份","輸入郵件驗證碼與簡訊驗證碼以驗證您的身份"]}},Lm=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Um={messages:Lm(Nm)};const Rm={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Mm={name:"RequireCodeFromOTP",i18n:Um,mixins:[Rm],props:{username:String,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleSubmit(){try{await this.submit(this.verification_code),this.$emit("back")}catch(e){}}}},Fm=Mm,Bm=Object(Y["a"])(Fm,Dm,jm,!1,null,null,null),Wm=Bm.exports;ie()(Bm,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var Hm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("disable_mfa.title")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.verify_identity_by_codes")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.email_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.email_code,callback:function(t){e.email_code=t},expression:"email_code"}}),a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.sms_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.sms_code,callback:function(t){e.sms_code=t},expression:"sms_code"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},Vm=[];const Qm={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Gm={name:"RequireCodesForDisableMFA",mixins:[Qm],props:{submit:Function},data(){return{email_code:null,sms_code:null}},methods:{async handleSubmit(){try{await this.submit({emailCode:this.email_code,phoneCode:this.sms_code}),this.$emit("back")}catch(e){}}}},Km=Gm,Ym=Object(Y["a"])(Km,Hm,Vm,!1,null,null,null),Jm=Ym.exports;ie()(Ym,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var Zm={async RequireCodeFromSMS({username:e,resend:t,submit:a}={}){const n=this.utils.showInDialog(Em,{props:{username:e,resend:t,submit:a},on:{back(){n.hide()}}});await new Promise(n.onDismiss)},async RequireCodeFromOTP({username:e,submit:t}){const a=this.utils.showInDialog(Wm,{props:{username:e,submit:t},on:{back(){a.hide()}}});await new Promise(a.onDismiss)},async RequireCodesForDisableMFA({data:e,submit:t}){return await new Promise((e=>{this.view.SignInPage.updateCard("RequireCodesForDisableMFA",{submit:t},{back:e})}))}};const Xm=({cards:e})=>Object.assign(e,{RequireCodesForDisableMFA:Jm});var eh={onCreateCore(e,t,a){return{...Sm}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{...Tm}},onRegisterView(e,t,a){return a.$on("createSignInPage",Xm),a.$on("signIn.requireCodeFromSMS",((...e)=>a.view.RequireCodeFromSMS(...e))),a.$on("signIn.requireCodeFromOTP",((...e)=>a.view.RequireCodeFromOTP(...e))),a.$on("disableMfa.requireCodes",((...e)=>a.view.RequireCodesForDisableMFA(...e))),{...Zm}}},th={onCreateCore(e,t,a){async function n({code:e,email:t,phone:a}){const{ABDevRest:n}=this.utils;t&&(t=t.toLowerCase()),await n.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function o(){const{ABDevRest:e}=this.utils,t=await e.post("/invitation/getCodes");return t}return{inviteCode:n,getInvitationCodes:o}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}},ah={setState:e=>{window.sessionStorage.setItem("oauth_state",e)},getState:()=>{const e=window.sessionStorage.getItem("oauth_state");return window.sessionStorage.removeItem("oauth_state"),e},setPKCE:e=>{window.sessionStorage.setItem("ouath_pkce_key",e)},getPKCE:()=>{const e=window.sessionStorage.getItem("ouath_pkce_key");return window.sessionStorage.removeItem("ouath_pkce_key"),e},clearAll:()=>{window.sessionStorage.removeItem("ouath_pkce_key"),window.sessionStorage.removeItem("oauth_state")}},nh={encode(e){return e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")},decode(e){return e.match(/.{2}/g).map((e=>String.fromCharCode(parseInt(e,16)))).join("")}};const oh="undefined"!==typeof Symbol&&"function"===typeof Symbol.for?Symbol.for("amplify_default"):"@@amplify_default";var ih=(e,t,a)=>{mc["a"].dispatch("auth",{event:e,data:t,message:a},"Auth",oh)},rh={urlSafe:nh,oauthStorage:ah,dispatchAuthEvent:ih};const sh=()=>"electron"===tu["a"]._config.oauth.app_env?"_blank":"_self";var lh=e=>{const t=window.open(e,sh());return t?Promise.resolve(t):Promise.reject()},ch=e=>{let t="",a=e;const n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(;a>0;--a)t+=n[Math.round(Math.random()*(n.length-1))];return t},dh=a("98fd"),uh=a.n(dh),_h=a("b858"),ph=a.n(_h),mh=e=>uh()(e).toString(ph.a).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),hh={urlOpener:lh,generateState:ch,generateChallenge:mh},gh={async pending(e,t={}){let a=!1;return await this.$emit("handleOAuthEvent",e,{...t,next:e=>a=e}),a},cancelled(e){return this.$emit("handleOAuthEvent","cancelled",e)},succeed(e){return this.$emit("handleOAuthEvent","succeed",e)},failed(e,t){return"string"===typeof e&&(e=new Error(e)),this.$emit("handleOAuthEvent","failed",t,e)}};function fh(){const e=hh.generateState(128);rh.oauthStorage.setPKCE(e);const t=hh.generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function bh({event:e,provider_sub:t}){if("account_linked"===e){const e="oauth_account_has_been_connected";await gh.failed.call(this,["oauth_error",e].join("."))}else if("account_unlinked"===e){const e=await gh.pending.call(this,"connecting");if(!e)return;const a=rh.oauthStorage.getState(),n=rh.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils;await o.post("/oauth/connect",{state:a,provider_sub:t,code_verifier:n}),await gh.succeed.call(this)}}var yh=a("d830");function vh(){const e=hh.generateState(128);rh.oauthStorage.setPKCE(e);const t=hh.generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function wh({event:e,state:t,provider:a}){if("account_linked"===e){const e=await gh.pending.call(this,"logging_in");if(!e)return;if(t!==rh.oauthStorage.getState())return;const n=rh.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils,{provider_sub:i}=a,r={state:t,provider_sub:i,code_verifier:n},s=await o.postGuest("/oauth/tokens",r);await kh.call(tu["a"],s),await gh.succeed.call(this)}else if("account_unlinked"===e){const e="can_not_login_unconnected_account";await gh.failed.call(this,["oauth_error",e].join("."))}}async function kh({IdToken:e,AccessToken:t,RefreshToken:a}){const n=new yh["h"]({IdToken:new yh["c"]({IdToken:e}),RefreshToken:new yh["d"]({RefreshToken:a}),AccessToken:new yh["b"]({AccessToken:t})});let o;this._config.identityPoolId&&(o=await this.Credentials.set(n,"session"));const i=this.createCognitoUser(n.getIdToken().decodePayload()["cognito:username"]);return i.setSignInUserSession(n),{currentUser:i,credentials:o}}const Sh={connect:n,login:o};function Ch({provider:e,action:t}){const a=this,{ABDevRest:n}=this.utils,o=a.$logger.tags("OAuthAction","Request"),i=hh.generateState(32);rh.oauthStorage.setState(i);const r=Object.entries({state:i,action:t,identity_provider:e,redirect_uri:`${tu["a"]._oAuthHandler._config.redirectSignIn}v2/`,...Sh[t].createParams.call(this)||{}}).map((e=>e.map(encodeURIComponent).join("="))).join("&"),s=`${n.endpoint}/oauth/request`,l=`${s}?${r}`;o.log(l),hh.urlOpener(l)}async function xh(e,t="electron"){const a=this,n=a.$logger.tags("OAuthAction","Response"),o=Array.from(new URL(e).searchParams.entries()).reduce(((e,[t,a])=>({...e,[t]:a})),{}),{action:i,identity_provider:r}=o;if(!i)return;const s=JSON.parse(o.data);if("web"===t){const e=a.$on("handleOAuthEvent",((t,n,o)=>{var s,l;e(),null===(s=(l=a.view).OAuthFlowRestored)||void 0===s||s.call(l,{action:i,identity_provider:r},{stage:t,data:n,error:o})}))}n.tags(i,r).log(s),await Sh[i].eventHandler.call(this,s)}function $h({initial_stage:e,initial_params:t,stage_restrict:a,handlers:n}){const o=this,i=["cancelled","failed","succeed"];let r,s=null,l=null;const c=e=>r!==e&&(!i.includes(r)&&(!!i.includes(e)||!!a[e]&&!!a[r].includes(e))),d=()=>new Promise((async(a,d)=>{const u=async(e,t,s)=>{if(o.$logger.tags("OAuthEvent",e).log(...s?[s.message,t]:[t]),r=e,i.includes(r)){var c;null===(c=l)||void 0===c||c(),"failed"===r?(n[r]&&await n[r](s,t),d(s)):(n[r]&&await n[r](t),a())}else{if(!n[r])return;const e=await n[r](t);null===t||void 0===t||t.next(e)}};await u(e,...t||[]),l=o.$on("handleOAuthEvent",(async(e,t,a)=>{c(e)&&await u(e,t,a)})),s=e=>u("cancelled",e)}));return{cancel:e=>s(e),promise:()=>d().finally((()=>{var e;return null===(e=l)||void 0===e?void 0:e()}))}}async function Th(){const{ABDevRest:e}=this.utils,t=await e.post("/oauth/providers");return t}async function zh(e){const{ABDevRest:t}=this.utils;await t.post("/oauth/disconnect",{provider_sub:e})}var Ph={queryOAuthProviders:Th,disconnectOAuthProvider:zh,createOAuthFlow:$h,handleOAuthActionResponse:xh,requestOAuthAction:Ch},Ah=(e,{app:t,app_config:a},n)=>{Ih(tu["a"],n,a),qh(e,n,a.protocol,t)};const Ih=(e,t,{protocol:a,web_url:n})=>{t.$logger.tags("AuthWrapper");e._oAuthHandler._urlOpener=(e,t)=>hh.urlOpener(e),e.__proto__._handleAuthResponse=()=>{},e.__proto__.oAuthSignOutRedirect=function(t,a){const n=async()=>{const t=e._oAuthHandler._config.domain,a=e._oAuthHandler._cognitoClientId,n=e._oAuthHandler._config.redirectSignIn,o=`https://${t}/logout?${Object.entries({client_id:a,logout_uri:encodeURIComponent(n)}).map((e=>e.join("="))).join("&")}`;await e._oAuthHandler._urlOpener(o,n)};n(),t()};const o=(()=>({isLocalhost:Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),isElectron:Oh()}))(),i=o.isElectron?2:o.isLocalhost?0:1,r=["http://localhost:8080/oauth/",`https://web.alpha.biz/oauth_redirect/${a}/${encodeURIComponent(n)}/`,`https://web.alpha.biz/oauth_redirect/${a}/app/`][i],s=r;Object.assign(e._config.oauth,{app_env:o.isElectron?"electron":"web",redirectSignIn:r,redirectSignOut:s}),Object.assign(e._oAuthHandler._config,{app_env:o.isElectron?"electron":"web",redirectSignIn:r,redirectSignOut:s})},qh=(e,t,n,o)=>{if(Oh()){const{ipcRenderer:e}=a("1b85");e.on("oauth_event",((e,t)=>{t.startsWith(`${n}://$oauth/v2/`)&&i(t,"electron")}))}else if("/oauth/v2/"===new URL(location.href).pathname){const t=t=>{e.prototype.$amplify.addOnAuthStateChangedListener((()=>{setTimeout((()=>{i(t,"web")}),2e3)}),{once:!0})};t(location.href),o.router.replace("/")}function i(e,a){t.core.handleOAuthActionResponse(e,a)}};function Oh(){return"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof process&&"object"===typeof process.version&&process.version.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron")}var Eh=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"overflow-hidden full-width",style:{display:e.hide?"none":"unset"}},[a("q-separator",{staticClass:"q-my-sm",attrs:{color:"general"}}),a("div",{staticClass:"column items-stretch",staticStyle:{margin:"-4px"}},e._l(e.providersEnabled,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{loading:e.loadingState===n,disable:!!e.loadingState,"no-caps":"","no-wrap":"",icon:t.icon,label:e.$t("oauth_login.sign_in_with",{provider:t.name}),unelevated:"",color:"general","text-color":"general"},on:{click:function(){return e.handleClick(t)}}})})),1)],1)},Dh=[];const jh={oauth_stage:{authorize:["Authorizing","授权中...","授權中..."],logging_in:["Logging in","登陆中...","登入中..."],connecting:["Connecting","关联中...","關聯中..."]},oauth_connect:{connect_to:["Connect to {provider}","关联 {provider} 账号","關聯 {provider} 賬號"],notify:{connected:["{provider} connected","已关联 {provider} 账号","已關聯 {provider} 賬號"]}},oauth_disconnect:{disconnect:["Disconnect {provider}","解除 {provider} 账号关联","解除 {provider} 賬號關聯"],notify:{disconnected:["{provider} disconnected","已解除 {provider} 账号关联","已解除 {provider} 賬號關聯"]}},oauth_login:{sign_in_with:["Sign in with {provider}","通过 {provider} 登录","通過 {provider} 登錄"],notify:{signed_in:["Signed in","登录成功","登錄成功"]}},oauth_error:{can_not_login_unconnected_account:["Can not log in to an unconnected {provider} account","无法登录未关联的 {provider} 账号","無法登錄未關聯的 {provider} 賬號"],oauth_account_has_been_connected:["The {provider} account has been connected","该 {provider} 账号已建立关联","該 {provider} 賬號已建立關聯"]},oauth_unset:["unset","未关联","未關聯"]},Nh=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Lh={messages:Nh(jh)},Uh={getIcon:Rh,useOAuthFlowDialog:Mh};function Rh(e){return{Github:"fab fa-github",Twitter:"fab fa-twitter",Google:"fab fa-google"}[e]}function Mh({title:e,providerName:t}){const a=(a,n)=>({title:this.$t(e,{provider:t}),ok:!1,cancel:n.cancel,banner:{avatar:Rh(t),title:this.$t(`oauth_stage.${a}`,{provider:t})}});let n;const o={updateStage:(e,o)=>{n?n.update({banner:{avatar:Rh(t),title:this.$t(`oauth_stage.${e}`,{provider:t})}}):n=this.$alphabiz.dialog(a(e,o))},hide:()=>{var e;null===(e=n)||void 0===e||e.hide()}};return o}async function Fh(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:n,hide:o}=Uh.useOAuthFlowDialog.call(this,{title:"oauth_login.sign_in_with",providerName:e}),i=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["logging_in"],logging_in:[]},handlers:{authorize:()=>{n("authorize",i),this.$account.core.requestOAuthAction({provider:e,action:"login"})},logging_in:()=>(n("logging_in",i),!0),succeed:async()=>{await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.$q.notify({message:this.$t("oauth_login.notify.signed_in"),type:"positive",position:"bottom-right",timeout:5e3})}}});await i.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(o)}var Bh=Fh;async function Wh(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:n,hide:o}=Uh.useOAuthFlowDialog.call(this,{title:"oauth_connect.connect_to",providerName:e}),i=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["connecting"],connecting:[]},handlers:{authorize:()=>{n("authorize",i),this.$account.core.requestOAuthAction({provider:e,action:"connect"})},connecting:()=>(n("connecting",i),!0),succeed:async()=>{this.$q.notify({message:this.$t("oauth_connect.notify.connected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}}});await i.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(o)}var Hh=Wh,Vh={login:Bh,connect:Hh};var Qh={name:"ABOAuthEntry",i18n:Lh,data(){let e={Github:{name:"Github",icon:"fab fa-github"},Twitter:{name:"Twitter",icon:"fab fa-twitter"}};return{hide:!1,loadingState:null,providers:e}},computed:{providersEnabled(){return Object.keys(this.providers).filter((e=>this.d$cfg.oauth.providers.includes(e))).reduce(((e,t)=>({...e,[t]:this.providers[t]})),{})}},methods:{async handleClick(e){try{this.loadingState=e.name,await Vh.login.call(this,e.name)}finally{this.loadingState=null}}}},Gh=Qh,Kh=Object(Y["a"])(Gh,Eh,Dh,!1,null,"391ab58c",null),Yh=Kh.exports;ie()(Kh,"components",{QSeparator:me["a"],QBtn:ne["a"]});var Jh=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-list",{staticClass:"rounded-borders",attrs:{bordered:"",separator:""}},e._l(e.providerItems,(function(t,n){return a("q-item",{key:n,staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.75rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.providerName))]),t.providerUserId?a("q-item-label",{attrs:{caption:""}},[e._v(e._s(t.providerUserId))]):e._e()],1),Object.keys(t.handlers).length?a("q-item-section",{attrs:{side:""}},[1===Object.keys(t.handlers).length?[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:Object.values(t.handlers)[0].icon,flat:"",round:""},on:{click:function(){return Object.values(t.handlers)[0].click()}}},[a("q-tooltip",{ref:"tooltip",refInFor:!0},[e._v(e._s(Object.values(t.handlers)[0].label))])],1)]:[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:"more_vert",flat:"",round:""}},[a("q-menu",{attrs:{"touch-position":"","auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{staticStyle:{"min-width":"180px"}},[e._l(t.handlers,(function(t,n){return[a("q-item",{key:n,attrs:{clickable:""},on:{click:function(){return t.click()}}},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.5rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)]}))],2)],1)],1)]],2):e._e()],1)})),1)},Zh=[],Xh={name:"OAuthManager",i18n:Lh,data(){return{loadingState:null,loaded:!1,providers:[]}},mounted(){this.queryOAuthProviders().then((()=>this.loaded=!0))},methods:{async queryOAuthProviders(){this.providers=await this.$account.core.queryOAuthProviders()},async disconnectOAuthProvider(e,t){const a=[e,t].join("_");await this.$account.core.disconnectOAuthProvider(a),await this.queryOAuthProviders(),this.$q.notify({message:this.$t("oauth_disconnect.notify.disconnected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}},computed:{providerItems(){const e=(e,t)=>{const a=t=>async()=>{try{this.loadingState=e,await t()}finally{this.loadingState=null}},n={};return t?n.disconnect={icon:"delete",label:this.$t("oauth_disconnect.disconnect",{provider:e}),click:a((()=>this.disconnectOAuthProvider(e,t)))}:n.connect={icon:"add",label:this.$t("oauth_connect.connect_to",{provider:e}),click:a((async()=>{await Vh.connect.call(this,e),await this.queryOAuthProviders()}))},n},t=["Github","Twitter"].filter((e=>this.d$cfg.oauth.providers.includes(e))).map((e=>{var t;return{providerName:e,providerUserId:null===(t=this.providers.find((t=>t.provider_name===e)))||void 0===t?void 0:t.provider_sub.slice(e.length+1)}}));return[...t.map((({providerName:t,providerUserId:a})=>({icon:Uh.getIcon(t),providerName:t,providerUserId:a||this.$t("oauth_unset"),handlers:e(t,a)})))]}}},eg=Xh,tg=Object(Y["a"])(eg,Jh,Zh,!1,null,null,null),ag=tg.exports;ie()(tg,"components",{QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QItemLabel:ye["a"],QBtn:ne["a"],QTooltip:Rn["a"],QMenu:cu["a"]});var ng={OAuthFlowRestored({action:e,identity_provider:t},{stage:a,data:n,error:o}){this.$logger.tags("OAuthFlowRestored",e,a).log(n);const i="OAuthFlowRestored";return this.utils.createVueInstance({i18n:Lh,beforeCreate(){const e=this.$account.view[i];e instanceof Function||this.destroy()},created(){var r;this.$account.view[i]=this,null===(r=Vh[e])||void 0===r||r.call(this,t,{initial_stage:a,initial_params:[n,o]}).finally((()=>{this.destroy()}))},beforeDestroy(){const e=this.$account.view[i];e instanceof Function||(this.$account.view[i]=null)},methods:{destroy(){this.$account.view[i]=null}}},!0)}},og={onCreateCore(e,t,a){return{...Ph}},onConfigure(e,t,n){Ah(e,t,n);const o=t.app.router;o.addRoute({path:"/oauth_redirect/:app_name/:redirect_to/v2",component:()=>a.e(7).then(a.bind(null,"4dfe"))});const i=e=>t=>{const a=e.split("/").slice(1),n=t.split("/").slice(1),o={};if(a.length===n.length){for(let e=0;e{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var kg={messages:wg(vg)},Sg=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"2.8rem",name:e.icon}})],1),a("q-item-section",[a("q-item-label",[a("span",{staticClass:"text-bold non-selectable",staticStyle:{"font-size":"1rem"}},[e._v(e._s(e.title))])]),e.member?a("q-item-label",{attrs:{caption:""}},[e._v("\n "+e._s(e.member)+"\n ")]):e._e(),a("div",{staticClass:"q-mt-sm non-selectable"},[a("div",{staticStyle:{margin:"-4px"}},e._l(e.stages,(function(t){return a("TaskItemStage",{key:t.index,attrs:{status:e.status,stage:t,current_stage:e.current_stage}})})),1)])],1)],1)},Cg=[],xg=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-menu",e._b({attrs:{"auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},"q-menu",e.dropdown?{fit:!0,anchor:"bottom left",self:"top left"}:{touchPosition:!0},!1),[a("q-list",{staticStyle:{"min-width":"200px"}},e._l(e.actions,(function(t,n){return a("q-item",{key:n,attrs:{clickable:""},on:{click:t.handler}},[a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)},$g=[],Tg={name:"ActionMenu",props:{actions:Object,dropdown:{type:Boolean,default:!1}}},zg=Tg,Pg=Object(Y["a"])(zg,xg,$g,!1,null,"336359cc",null),Ag=Pg.exports;ie()(Pg,"components",{QMenu:cu["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"]});var Ig=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-chip",{attrs:{clickable:!0,color:e.stage.color,"text-color":e.stage.color,"icon-right":e.stage.icon,outline:e.stage.index!==e.current_stage}},[a("div",[e._v(e._s(e.stage.index+1)+". "+e._s(e.stage.label))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-down",touchPosition:!1}},[a("q-card",{staticClass:"overflow-hidden non-selectable",staticStyle:{"min-width":"200px","max-width":"320px","max-height":"480px"}},[a("q-card-section",[a("div",{staticClass:"flex items-center no-wrap"},[a("div",{staticClass:"text-h6 text-weight-bold ellipsis"},[e._v(e._s(e.stage.label))]),a("q-badge",{staticClass:"q-ml-xs",attrs:{color:e.stage.color,"text-color":e.stage.color}},[a("div",[e._v(e._s(e.stage.status))])])],1),e.stage.subtitle?a("div",{staticClass:"text-caption"},[e._v(e._s(e.stage.subtitle))]):e._e()]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",[e._v(e._s(e.stage.desc))])]),e.stage.actions&&e.stage.actions.length?a("q-card-section",{staticClass:"q-pt-none column items-end q-pb-sm"},e._l(e.stage.actions,(function(t,n){return a("q-btn",e._b({key:n,staticClass:"q-mb-xs",attrs:{unelevated:"",loading:e.loadingState==="action_"+n},on:{click:function(){return e.loadingWrapper(n,t.handler)}}},"q-btn",t,!1))})),1):e._e()],1)],1)],1)},qg=[],Og={name:"TaskItemStage",i18n:kg,data(){return{loadingState:null}},props:{status:String,stage:Object,current_stage:Number},methods:{async loadingWrapper(e,t){try{this.loadingState=`action_${e}`,await t()}finally{this.loadingState=null}}}},Eg=Og,Dg=a("da23"),jg=Object(Y["a"])(Eg,Ig,qg,!1,null,"02a3e274",null),Ng=jg.exports;ie()(jg,"components",{QChip:Dg["a"],QMenu:cu["a"],QCard:Z["a"],QCardSection:X["a"],QBadge:zl["a"],QIcon:wa["a"],QBtn:ne["a"]});var Lg={name:"TaskItem",i18n:kg,components:{ActionMenu:Ag,TaskItemStage:Ng},props:{id:String,category:String,icon:String,title:String,current_stage:Number,status:String,member:String,stages:Array}},Ug=Lg,Rg=Object(Y["a"])(Ug,Sg,Cg,!1,null,null,null),Mg=Rg.exports;ie()(Rg,"components",{QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QItemLabel:ye["a"],QBtn:ne["a"]});const Fg=function(e){const t={id:"SubscribeGithubRepo",category:"SubscribeGithubRepo",icon:"fab fa-github",title:this.$t("task_github_subscribe_repo.title"),current_stage:0,status:"enabled",member:null,stages:[]},a=(e,t)=>this.$t(`task_github_subscribe_repo.task_stage.${e}`,t);if(t.stages.push({index:0,label:a("connect_to_github.label"),desc:a("connect_to_github.desc")},{index:1,label:a("subscribe_repo.label"),desc:a("subscribe_repo.desc")},{index:2,label:a("subscribe_repo_for.label",{month:1}),desc:a("subscribe_repo_for.desc",{month:1})},{index:3,label:a("subscribe_repo_for.label",{month:3}),desc:a("subscribe_repo_for.desc",{month:3})}),e){const a=JSON.parse(e.metadata);Object.assign(t,{id:e.id,current_stage:a.stage+1,member:e.member,status:e.status})}return t.stages.forEach(((a,n)=>{const o=n===t.current_stage,i=nt.current_stage,s=i?"done":r?null:{succeed:"done",cancelled:"close",failed:"error"}[t.status]||"more_horiz",l=i?"positive":r?"general":{succeed:"positive",cancelled:"negative",failed:"negative"}[t.status]||"positive",c=this.$t("task_panel.stage_status."+(i?"completed":r?"not_started":"in_progress"));if(Object.assign(a,{icon:s,color:l,status:c}),a.actions=a.actions||[],0===n&&a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_connect"),handler:()=>{this.$router.push({name:"AccountSettings"})}}),1!==n||i||a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_subscribe"),handler:()=>{const e="https://github.com/tanshuai/alphabiz";window.open(e,"_blank")}}),[2,3].includes(n)&&t.current_stage>1){const t=JSON.parse(e.metadata);a.subtitle=this.$t("task_github_subscribe_repo.subscribed_at",{time:this.$d(new Date(t.subscribed_at),"YMD"),days:Math.max(0,Math.floor((new Date-new Date(t.subscribed_at))/864e5*10)/10)})}if([1,2,3].includes(n)){var d;const t=JSON.parse(null!==(d=null===e||void 0===e?void 0:e.metadata)&&void 0!==d?d:"{}"),i=o&&(2===n?new Date-new Date(t.subscribed_at)>2592e6:3!==n||new Date-new Date(t.subscribed_at)>7776e6),r={disable:!i,label:this.$t("task_github_subscribe_repo.task_action.get_bonus"),handler:async()=>{try{const t=await this.$account.core.updateGithubTask(e.member);await this.updateTaskList(),console.log(t,e)}catch(t){this.$q.notify({type:"negative",position:"bottom-right",message:t.message})}}};a.actions.push(r)}})),t};var Bg={name:"index",i18n:kg,components:{TaskItem:Mg},data(){return{loadingState:null,taskList:null}},computed:{taskItems(){const e=[];return this.taskList.forEach((t=>{i[t.category]&&"cancelled"!==t.status&&e.push(i[t.category].call(this,t))})),e.some((e=>"SubscribeGithubRepo"===e.category))||e.push(Fg.call(this)),e}},mounted(){this.reloadTaskList()},methods:{async reloadTaskList(){const e=async()=>{try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){throw e}};try{this.loadingState="loading",await e()}finally{this.loadingState=null}},async updateTaskList(){try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){this.$q.notify({type:"negative",position:"bottom-right",message:e.message})}}}},Wg=Bg,Hg=Object(Y["a"])(Wg,bg,yg,!1,null,null,null),Vg=Hg.exports;ie()(Hg,"components",{QPage:Ws["a"],QBtn:ne["a"],QSpinnerIos:yn["a"],QIcon:wa["a"],QList:qn["a"]});var Qg={name:"TaskPage",i18n:kg,components:{Layout:fg,TaskCard:Vg}},Gg=Qg,Kg=Object(Y["a"])(Gg,lg,cg,!1,null,null,null),Yg=Kg.exports;function Jg(e){const t={persistent:!0,transitionShow:"slide-up",transitionHide:"slide-down"};let a;const n=u["a"].create({component:{render(o){return o(J["a"],{ref:"dialog",props:t,on:{hide:()=>this.$emit("hide")}},[o(Object.assign({},e,{mixins:[...e.mixins||[],{beforeCreate(){a=this},methods:{closePopup(){n.hide()}}}]}))])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}});return new Proxy({},{get(e,t){return n[t]?Reflect.get(n,t):Reflect.get(a,t)},set(e,t,o){return n[t]?Reflect.set(n,t,o):Reflect.set(a,t,o)}})}ie()(Kg,"components",{QToolbar:Fs["a"],QToolbarTitle:Bs["a"],QBtn:ne["a"]}),ie()(Kg,"directives",{ClosePopup:ke["a"]});const Zg=function(e){return{beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)}}};let Xg=null;var ef={TaskPage(){Xg=Xg||Zg(Yg.name),Yg.mixins=Array.from(new Set((Yg.mixins||[]).concat(Xg)));Jg(Yg)}},tf={onCreateCore(e,t,a){return{...sg}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return e.component("TaskCard",Vg),{...ef}}};const af=l_.PluginInstaller("$account");Object.assign(af.context,{$test:d_});var nf=af.exportAsVuePlugin();const of={Auth:mm,ReCaptcha:gm,MFA:eh,Invitation:th,OAuth:og,Task:tf};var rf=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",flat:"",color:"negative","text-color":"negative",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}}),e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:function(t){e.showDevDialog=!e.showDevDialog}}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"flex items-center",staticStyle:{padding:"4px 12px"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",flat:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{flat:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)},sf=[];const lf={components:{Development:ru["default"]},data(){return{showDevDialog:!1}}},cf={data(){return{languageOptions:Ft["b"]}},computed:{language:{get(){const e=w["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(w["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(f["isElectron"])())){const{ipcRenderer:e}=a("1b85");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}}};var df={name:"Corner",mixins:[cf,lf],methods:{showAboutDialog(){f["Bus"].$emit("CALL_ABOUT")}}},uf=df,_f=(a("8460"),Object(Y["a"])(uf,rf,sf,!1,null,null,null)),pf=_f.exports;ie()(_f,"components",{QBtn:ne["a"],QTooltip:Rn["a"],QDialog:J["a"],QSpace:pe["a"],QSeparator:me["a"],QMenu:cu["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QColor:Ye["a"]}),ie()(_f,"directives",{Ripple:du["a"],ClosePopup:ke["a"]});var mf=async({Vue:e,app:t,router:a})=>{hf(e,[...uc]),e.use(vu,{app:t}),e.use(nf,{app:t,app_config:{protocol:O.a.protocol,web_url:O.a.webEditionUrl},awsconfig:ku,extensions:of,gql:{queries:Su,mutations:Cu,subscriptions:xu}}),e.use(hc,{app:t}),e.use(yc["b"],{app:t,router:a});const n=e.prototype.$account;n.$on("createSignInPage",(e=>{e.corner=pf})),n.$on("signUp.showLicenseTerms",(()=>{return e.call(n.view.SignInPage);function e(){Re.call(this,{title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:Fe},terms:{label:"Terms",markdown:Be}}})}}))};function hf(e,t){var a;const n=null===(a=e.config)||void 0===a?void 0:a.errorHandler;e.config.errorHandler=function(){const e=t.filter((e=>e.match(...arguments)));if(e.length>0)e.forEach((e=>e.execute(...arguments)));else{if(!n)throw arguments[0];n.apply(this,arguments)}}}var gf=a("7d96"),ff=a("4d52"),bf=a("e75b"),yf=({Vue:e,app:t,router:n})=>{if(e.use(gf["a"],{useComponent:{i18n:t.i18n}}),global.handleAbBlockchain=({url:e,action:t,actionArgs:a})=>{if(e){const n={type:"03",prefix:"ab-blockchain"},o={encode:e=>Buffer.from(e,"utf-8").toString("base64"),decode:e=>Buffer.from(e,"base64").toString("utf-8")},i=e=>{if(!e.startsWith(`${n.prefix}://`))return null;const[t,a]=e.replace(`${n.prefix}://`,"").split("/"),i=JSON.parse(o.decode(a));return{action:t,actionArgs:i}},r=i(e);t=r.action,a=r.actionArgs}if(console.log("ab-blockchain$",t,a),"Blockchain"===n.currentRoute.name){const e=n.currentRoute.matched.find((e=>"Blockchain"===e.name)),o=e.instances.default;o.handleAction(t,a)}else n.push({name:"Blockchain",params:{action:t,action_args:a}})},Object(f["isElectron"])()){const{ipcRenderer:e}=a("1b85");e.on(`${ff["a"].config.prefix}-action`,((e,t,a)=>{global.handleAbBlockchain({action:t,actionArgs:a})}))}Object.defineProperty(global.$blockchain.wallet,"fundAccountWithFaucet",{configurable:!0,get(){return async({address:e,amount:t})=>{const a=new bf["a"].Rest("ABDevRest"),n=await a.post("/development/blockchain/fundAccountWithFaucet",{amount:t,address:e,testToken:"XWZWQFZOZ3"});return n}}}),global.$blockchain.$store.wallet.createCollectionLink=async()=>{const e=async(e,t)=>{const a=(e,t)=>{const a={type:"03",prefix:"ab-blockchain"},n={encode:e=>Buffer.from(e,"utf-8").toString("base64"),decode:e=>Buffer.from(e,"base64").toString("utf-8")},o=n.encode(JSON.stringify(t));return`${a.prefix}://${[e,o].join("/")}`},n=a(e,t);console.log("internalUrl",n);const o=await Object(wt["a"])(n);return o},{account:t}=global.$blockchain.$store;await t.assertAccountAccessible();const a=t.address,n=await e("transfer",{to_address:a});return n}},vf=a("1b85"),wf=a.n(vf);r["a"].prototype.$q.electron=wf.a;const kf="";async function Sf(){const{app:e,store:t,router:a}=await ta();let n=!1;const o=e=>{n=!0;const t=Object(e)===e?a.resolve(e).route.fullPath:e;window.location.href=t},i=window.location.href.replace(window.location.origin,""),s=[Ea,rc,rt["a"],mf,yf];for(let c=0;!1===n&&c{})),n["ipcRenderer"].on("some-api",(()=>{})),n["ioServer"].on("request-provident-payment",(e=>{n["ioServer"].emit("request-provident-payment",e)})),n["ioServer"].on("credit_payment_created",(e=>{n["ioServer"].emit("payment-info",e)})),n["ioServer"].on("restart_payment",(e=>{n["ioServer"].emit("restart-payment",e)})),n["ioServer"].on("payment_verified",(e=>{n["ioServer"].emit("payment-verified",e)})),n["ioServer"].on("webtorrent-request-renew",(e=>{n["ioServer"].emit("request_renew",e)})),n["ioServer"].on("webtorrent-payment-finished",(e=>{n["ioServer"].emit("payment_finished",e)})),n["ioServer"].on("webtorrent-finish-all-payments",(e=>{if(null===e||void 0===e||!e.connections)return console.log("skip unknown tr",e,null===e||void 0===e?void 0:e.connections);const t=e.connections;t.forEach((e=>{e.transactions&&e.transactions.forEach((e=>{console.log("Finish pending",e),n["ioServer"].emit("payment_finished",{id:e})}))}))})),n["ioServer"].on("webtorrent-set-throttle",(e=>{0!==e.code&&n["ioServer"].emit("client_error",e.message)})),n["ioServer"].on("webtorrent-verify-payment",(e=>{n["ioServer"].emit("verify_payment",e)})),n["ioServer"].on("webtorrent-payment-completed",(e=>{n["ioServer"].emit("payment_completed",e)})),n["ioServer"].on("complete_payment",(e=>{n["ioServer"].emit("complete-payment",e)})),n["ioServer"].on("finish_payment",(e=>{n["ioServer"].emit("finish-payment",e)})),n["ioServer"].on("payment_closed",(e=>{n["ioServer"].emit("close-payment",e)})),n["ioServer"].on("set-throttle-group",(e=>{n["ioServer"].emit("set-throttle-group",{...e,peerId:null===e||void 0===e?void 0:e.id})})),n["ioServer"].on("download-and-play",(e=>{console.log("should download and play",e),Object(o["b"])("download",e.url)}))},ee3d:function(e,t){function a(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}a.keys=function(){return[]},a.resolve=a,e.exports=a,a.id="ee3d"},eec3:function(e,t,a){},f157:function(e,t,a){"use strict";a("848e")},f3f7:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f77d:function(e,t,a){"use strict";a("7686")},f7b1:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f7b4:function(e,t){e.exports=require("stream")},f817:function(e,t,a){"use strict";a("9f42")},fb31:function(e,t,a){const{isElectron:n}=a("d310");if(n())if(this.require)try{const t=this["require"]("developer/app");console.log("Init from node_modules",process),t.appName=t.name,e.exports={default:t,appName:t.name,...t}}catch(o){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=n()?require("developer/app"):a("b3f7");t.appName=t.name,console.log("APP name:",t.appName,"production",!0),e.exports={default:t,appName:t.name,...t}}else{const t=a("b3f7");e.exports={appName:t.name,...t}}},fc65:function(e,t,a){"use strict";a("ac84")},fe8f:function(e,t,a){}}); \ No newline at end of file +(function(e){function t(t){for(var n,o,s=t[0],l=t[1],c=t[2],d=0,u=[];d"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof process&&"object"===typeof process.versions&&process.versions.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron"))());function o(){return n}},"05c7":function(e,t){e.exports=require("util")},"0699":function(e){e.exports=JSON.parse('{"lib_index":"Dom","lib_edit":"Publikować","lib_publish":"Publikować","lib_explore":"Badać","lib_following":"Następny","lib_favorite":"Lokalne ulubione","lib_local_favorites":"Lokalne ulubione","lib_channel":"Kanał","lib_submit":"Składać","lib_from_network":"Korzystanie ze zdecentralizowanej bazy danych z sieci","welcome_to_lib":"Witamy w bibliotece multimediów ${displayName}","register_or_login":"Zarejestruj się/Zaloguj się","lib_recommend":"Polecić","lib_recommend_desc":"Witamy w bibliotece ${displayName}! Ta biblioteka korzysta ze zdecentralizowanej bazy danych z sieci. Aby zacząć z niego korzystać, musisz śledzić niektóre kanały.","follow_any_channel_to_continue":"Śledź dowolny kanał, aby kontynuować","follow_channels_and_continue":"Śledź kanały {0} i kontynuuj","show_more_for_me":"Pokaż mi więcej","no_more_recommend":"Nigdy więcej polecam","key":"Klucz","create_key":"Utwórz klucz","save_key":"Zapisz klucz","save_key_file":"Czy chcesz zapisać swój klucz jako plik?","import_key":"Importuj klucz","import":"Import","invalid_key":"Niewłaściwy klucz","back_to_top":"Powrót do góry","search_for_channel":"Wyszukaj identyfikator kanału","search_channel_no_result":"Nie można znaleźć kanału o identyfikatorze {0}","please_input_channel_id":"Wprowadź identyfikator kanału","welcome_help_text":"Jest to zdecentralizowana biblioteka multimediów. Potrzebujesz\\n aby utworzyć konto dla tej bazy danych. Będziemy\\n automatycznie wygenerować klucz osobisty.\\n Jeśli masz już klucz, możesz również zaimportować\\n to tutaj.","welcome_key_text":"Po zalogowaniu kliknij przycisk [ZAPISZ KLUCZ].\\n w prawym dolnym rogu, aby zapisać swój klucz prywatny.\\n Jeśli zgubisz klucz, możesz nie być w stanie zalogować się ponownie.","redirect_to_recommend":"Wygląda na to, że nie śledziłeś żadnego kanału. Przekierowanie do strony [Eksploruj].","channel":"Kanał","follow":"Podążać","unfollow":"Przestań obserwować","following":"Następny","share":"Udział","unfollow_confirm":"Czy na pewno chcesz przestać obserwować ten kanał? Wszystkie posty z tego kanału na Twojej osi czasu zostaną usunięte.","follow_failed_hint":"Operacja nadal oczekuje w tle. Jeśli operacja nie jest wykonywana przez dłuższy czas, uruchom ponownie aplikację i spróbuj ponownie.","block":"Blok","unblock":"Odblokować","blocked":"Zablokowany","block_channel":"Zablokuj ten kanał","block_channel_confirm":"Zablokuj kanał, aby usunąć go z Twojej osi czasu. Listą zablokowanych możesz zarządzać w ustawieniach konta.","block_creator":"Zablokuj twórcę tego kanału","unblock_creator":"Odblokuj twórcę tego kanału","block_creator_confirm":"Zablokuj twórcę usunie z Twojej osi czasu wszystkie kanały utworzone przez tego twórcę. Listą zablokowanych możesz zarządzać w ustawieniach konta.","share_url_copied":"Udostępniony adres URL jest kopiowany do schowka","follow_time":"Podążaj za czasem","update_time":"Czas aktualizacji","search":"Szukaj","type":"Typ","added":"Dodany","click_to_task":"Kliknij, aby przejść do zadania","lib_already_added":"Ten film wideo został już przez Ciebie dodany","description":"Opis","poster":"Plakat","channel_poster":"Plakat kanału","preview":"Zapowiedź","creator":"Twórca","creator_detail":"Szczegóły twórcy","loading_creator":"Ładuję informacje o twórcy","wait_for_creator_loaded":"Poczekaj na załadowanie informacji o twórcy.","follower":"Zwolennik","followers":"Obserwujący","follower_list":"Lista obserwujących","user":"Użytkownik","channel_title":"Tytuł kanału","channel_id":"ID kanału","post_title":"Tytuł posta","post_id":"Identyfikator wpisu","import_data_from_excel":"Importuj dane z Excela","set_excel_keys":"Ustaw klucze Excela","excel_import_succeded":"Importowanie programu Excel powiodło się","excel_import_success_msg":"Wiersze {0} są gotowe do dodania, {1} nieprawidłowe, a {2} zduplikowane elementy są ignorowane","cannot_find_channel":"Nie można znaleźć kanału","cannot_find_posts":"Nie można znaleźć postów","add_channel":"Dodaj kanał","add_post":"Dodaj wpis","edit_channel":"Edytuj kanał","channel_setting":"Ustawienie kanału","edit_post":"Edytuj post","edit_posts":"Edytuj posty","channel_detail":"Szczegóły kanału","remove":"Usunąć","remove_channel":"Usuń kanał","remove_channel_confirm":"Czy na pewno chcesz usunąć ten post? Nie można tego odzyskać.","remove_post":"Usuń wpis","remove_post_confirm":"Czy na pewno chcesz usunąć ten kanał? Nie można tego odzyskać.","preview_mode":"Tryb podglądu","preview_mode_desc":"To jest podgląd Twojego kanału. Wszystkie stawki filmów są pokazane tutaj.","edit_user_profile":"Edytuj profil użytkownika","name":"Przezwisko","avatar":"Awatara","no_following":"Brak następujących kanałów. Kliknij, aby przejść","no_recommend":"Brak polecanych kanałów. Kliknij, aby przejść","first_recomment_msg":"Może to trochę potrwać, jeśli aplikacja jest uruchamiana po raz pierwszy.","invalid_image":"Nieprawidłowy obraz","image_not_reachable":"Ten adres URL obrazu jest nieosiągalny.","channel_not_found":"Nie znaleziono kanału","cannot_get_channel_info":"Nie można uzyskać informacji o kanale. Ten kanał może zostać usunięty przez jego twórcę i nie będzie już dostępny.","validate_error":"Sprawdź błąd","validate_user_name_no_space":"Nazwa użytkownika nie powinna zawierać spacji","validate_url_no_space":"Adres URL nie powinien zawierać spacji","validate_user_name_length":"Nazwa użytkownika powinna mieć długość od {0} do {1}","validate_user_desc_length":"Opis użytkownika nie powinien zawierać więcej niż {0} znaków","validate_user_avatar_url":"Awatar użytkownika powinien być adresem URL o długości mniejszej niż 2048 znaków","validate_channel_title_length":"Tytuł kanału powinien mieć długość od 1 do 100","validate_channel_desc_length":"Opis kanału powinien mieć długość od 10 do 300","validate_channel_image_url":"Podgląd kanału powinien mieć adres URL zawierający mniej niż 2048 znaków","validate_post_title_length":"Tytuł posta powinien mieć długość od 1 do 100","validate_post_desc_length":"Opis posta powinien mieć długość od 10 do 300","validate_post_image_url":"Plakat powinien być adresem URL zawierającym mniej niż 2048 znaków","validate_post_url":"Nieprawidłowy adres URL ${displayName}","validate_post_url_length":"Adres URL ${displayName} nie powinien mieć więcej niż 2048 znaków","film_rate":"Stawka filmowa","set_film_rate":"Ustaw szybkość filmu","select_a_rate_before_enter":"Musisz wybrać szybkość filmu przed wejściem do biblioteki multimediów.","library_available_rate":"Dostępna cena filmu w bibliotece","rate_g":"G – Publiczność ogólna","rate_g_desc":"Wszystkie grupy wiekowe. Nic, co mogłoby urazić rodziców do oglądania przez dzieci.","rate_pg":"PG – Sugerowane wskazówki rodzicielskie","rate_pg_desc":"Niektóre materiały mogą nie być odpowiednie dla dzieci. Rodzice wezwali do udzielania „kierownictwa rodzicielskiego”. Może zawierać materiały, których rodzice mogą nie lubić dla swoich małych dzieci.","rate_pg_13":"PG-13 – Rodzice zdecydowanie przestrozeni","rate_pg_13_desc":"Niektóre materiały mogą być nieodpowiednie dla dzieci poniżej 13 roku życia. Apelujemy do rodziców o ostrożność. Niektóre materiały mogą być nieodpowiednie dla dzieci w wieku przedszkolnym.","rate_r":"R – Ograniczony","rate_r_desc":"Osoby poniżej 17 roku życia wymagają obecności rodzica lub dorosłego opiekuna. Zawiera materiały dla dorosłych. Zachęcamy rodziców do zapoznania się z filmem, zanim zabiorą ze sobą swoje małe dzieci.","rate_nc_17":"NC-17 – Tylko dla dorosłych","rate_nc_17_desc":"Nikt nie ma 17 lat i mniej. Wyraźnie dorosły. Dzieci nie są przyjmowane.","set_as_private":"Ustaw jako prywatne","hide_in_explore":"Ukryj ten kanał na stronie eksploracji","hidden":"Ukryty","select_a_rate":"Wybierz cenę filmu","select_from_tasks":"Wybierz spośród zadań","import_from_magnet":"Importuj z magnesu:?...","input_magnet_url":"Magnes wejściowy:? adres URL","task_title":"Tytuł zadania","set_title":"Ustaw tytuł","add_to_local_favorites":"Dodaj do lokalnych ulubionych","remove_from_local_favorites":"Usuń z lokalnych ulubionych","removed_favorite":"Usunięto ulubione","import_or_export_favorites":"Importuj/eksportuj ulubione","export_local_favorites":"Eksportuj lokalne ulubione jako kopię zapasową","import_favorites_file":"Importuj plik ulubionych","not_a_favorite_file":"Ten plik nie jest ulubionym plikiem kopii zapasowej","connection_status":"Status połączenia","gun_server_list":"Węzły pamięci podręcznej","custom_nodes":"Niestandardowe węzły pamięci podręcznej","custom_nodes_hint":"Niestandardowe węzły pamięci podręcznej zostaną zastosowane po ponownym uruchomieniu aplikacji","wait_for_reboot":"Oczekiwanie na ponowne uruchomienie...({seconds}s)","reboot_now":"Zrestartuj teraz","reboot_later":"Uruchomić komputer ponownie","peer_list":"Węzły bezpośrednie","server":"Adres URL węzła","peer":"Rówieśnik","peer_id":"Identyfikator węzła","connection":"Połączenie","data_source":"Źródło danych","sync":"Synchronizacja","syncing":"Synchronizacja","sync_completed":"Synchronizacja zakończona","got_all_post":"Masz już wszystkie posty","placeholder_channel_title":"Twoja nazwa kanału","placeholder_channel_desc":"Opis tego kanału","placeholder_post_title":"Nazwa filmu (rok)","placeholder_post_desc":"Opis tego filmu","private_channel":"Prywatny kanał","creator_blocked":"Twórca zablokowany","go_to_library":"Idź do biblioteki?","go_to_library_channel_msg":"Czy chcesz przejść do kanału bibliotecznego {0}?","magnet_does_not_have_name":"Ten magnes: ? url nie ma nazwy, musisz najpierw dodać tytuł posta.","no_available_post":"Brak dostępnego wpisu","following_channel_no_post":"Wszystkie Twoje następujące kanały nie mają dostępnych postów. Może to być spowodowane błędem sieci. Jeśli śledziłeś już niektóre kanały, posty mogą zostać załadowane później.","share_to_library":"Udostępnij w bibliotece","quick_start":"Szybki start","quick_start_desc":"Rozpocznij tworzenie wpisu z zadaniem lub plikiem","select_file":"Wybierz plik...","select_folder":"Wybierz katalog...","post_options":"Opcje publikowania","channel_options":"Opcje kanałów","create_new_channel":"Utwórz nowy kanał","use_existed_channel":"Użyj istniejącego kanału","select_existed_channel":"Wybierz istniejący kanał","uploaded_by":"{title} przesłane przez {name}","created_by":"{title} stworzony przez {name}","creating_new_channel":"Tworzę nowy kanał...","created_new_channel":"Utworzono nowy kanał","creating_new_post":"Tworzenie nowego wpisu...","created_new_post":"Utworzono nowy post","create_new_post":"Utwórz nowy wpis","quick_start_timeout":"{0} limit czasu. Może to być spowodowane błędem sieci. Spróbuj ponownie później.","file_too_large":"Plik zbyt duży","file_too_large_msg":"Ten plik jest większy niż 4 GB ({size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz kontynuować?","resolving_folder_files":"Rozwiązywanie plików folderów...","folder_too_large":"Za duży folder","folder_too_large_msg":"Pliki w tym folderze są większe niż 4 GB (łącznie {size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz przesłać?","creating_new_task":"Tworzenie nowego zadania...","cannot_create_task":"Nie można utworzyć zadania","cannot_create_task_msg":"Może to spowodować jakiś błąd. Jeśli zadanie zostało utworzone poprawnie, możesz później sprawdzić listę zadań.","cannot_get_task_name":"Nie można pobrać nazwy zadania. Najpierw musisz wprowadzić jeden.","remove_old_task":"Usuń stare zadanie","remove_old_task_desc":"W trybie internetowym można utworzyć tylko jedno zadanie naraz. Czy chcesz usunąć stare zadanie?","subtitle_list":"Lista napisów","optional":"opcjonalny","with_subtitle":"Z {language} napisami","maximumSubtitleNum_limit":"Liczba napisów osiągnęła maksimum","add_subtitle_url":"Dodaj link do pobrania napisów","cannot_add_subtitle":"Nie udało się dodać napisów","cannot_add_subtitle_msg":"Nie wybrano języka napisów lub nieprawidłowy link do pobrania.","support_subtitle_type":"Obsługiwane są tylko napisy w formacie srt i vtt.","recommend_opensubtitles":"Zaleca się skorzystanie z łącza lub identyfikatora pobierania napisów na stronie www.opensubtitles.org.","take_down":"Zdjąć","serious_violation":"Poważne naruszenie","copyright_disputes":"Spory dotyczące praw autorskich","adults_only":"Tylko dla dorosłych","takedown_reason":"Powód usunięcia","takedown_mode":"Tryb usuwania","admins":"Administratorzy","takedown_user":"Usuń tego twórcę","takedown_channel":"Usuń ten kanał","takedown_post":"Usuń ten post","select_takedown_reason":"Wybierz powód usunięcia","takedown_invalid_reason":"Nieprawidłowy powód usunięcia","takedown_invalid_user_id":"Nieprawidłowy identyfikator użytkownika. Identyfikator powinien zawierać 87 znaków","takedown_invalid_channel_id":"Nieprawidłowy identyfikator kanału. Identyfikator powinien zawierać 20 znaków","takedown_invalid_post_id":"Nieprawidłowy identyfikator posta. Identyfikator powinien zawierać 20 znaków","takedown_management":"Zlikwiduj zarządzanie","users":"Użytkownicy","channels":"Kanały","posts":"Posty","you":"Ty","preset":"Ustawienie wstępne","admin":"Admin","committee":"Komisja","about_takedown_mode":"Informacje o trybie usuwania:\\nUstawienie wstępne: skonfigurowane w repozytorium github. Wszystkie zostaną usunięte z biblioteki.\\nAdministrator: każdy z administratorów, na którego głosował, zostanie usunięty.\\nKomitet: Co najmniej połowa administratorów głosujących na zostanie usunięta.","cannot_edit_preset":"Nie możesz edytować tego wiersza, ponieważ jest to wiersz ustawiony wstępnie","cannot_edit_not_vote":"Nie możesz edytować tego wiersza, ponieważ nie głosowałeś za nim","remove_vote":"Usuń swój głos","post_preload_failed":"Wstępne załadowanie tego posta nie powiodło się. Link do pobrania może być nieaktualny, więc nie można od razu odtworzyć tego wpisu.","about_cache_node":"Informacje o węźle pamięci podręcznej","edit_cache_node":"Edytuj węzeł pamięci podręcznej","create_cache_node":"Utwórz węzeł pamięci podręcznej","about_cache_node_desc":"${displayName} używa serwera Gun jako węzła pamięci podręcznej. Możesz edytować niestandardowe węzły z wyprzedzeniem","learn_how_to_deploy_gun":"Dowiedz się, jak wdrożyć własny serwer broni","repeat_add":"Zadanie zostało dodane, nie dodawaj go ponownie","upload":"Wgrywać","download":"Pobierać","delete":"Usuwać","delete_task":"Usuń zadanie","delete_confirm_message":"Usunąć to zadanie? To jest nieodwołalne","also_delete_files":"Usuń też pliki","default_delete_files":"Domyślnie usuń pobrane pliki po usunięciu zadania","not_now":"Nie teraz","delete_autoupload_confirm":"To zadanie zawiera plik, który umieściłeś w katalogu automatycznego przesyłania. Usuń to zadanie spowoduje również usunięcie pliku.","delete_anyway":"Usuń mimo to","upload_too_many_files":"Prześlij zbyt wiele plików","ask_if_unlimit_upload_amount":"Katalog automatycznego przesyłania zawiera zbyt wiele plików. Czy chcesz wyłączyć ograniczenie kwoty przesyłania? *Może to powodować problemy z wydajnością","disable_limitation":"Wyłącz ograniczenie","not_length":"Operacja na wielu plikach nie jest obecnie obsługiwana, prosimy o współpracę","download_torrent":"Pobieranie pliku","upload_torrent":"Przesyłanie pliku","files":"Akta","file":"Plik","folder":"Teczka","start_all":"Zacznij wszystko","pause_all":"Wstrzymaj wszystko","remove_all":"Usuń wszystko","upload_all":"Prześlij wszystko","clear_history":"Czysta historia","pause_all_finish_payments":"Spowoduje to zakończenie wszystkich płatności.","accelerating":"Przyspieszenie","link_task":"Połącz zadanie","torrent_task":"Zadanie pliku","ok":"OK","cancel":"Anulować","download_directory_position":"Pobierz pozycję katalogu","torrent_file":"plik zadania","magnetic_link_incorrect":"Format linku jest nieprawidłowy","delete_fail":"Usuwanie nie powiodło się","pause":"Pauza","paused":"Wstrzymane","stop_torrent":"Zatrzymywać się","seed":"Nasionko","resume":"Wznawiać","downloading":"Ściąganie","downloaded":"Pobrane","uploading":"Przesyłanie","auto_uploading":"Automatyczne przesyłanie","uploaded":"Załadowany","pending":"Czekam na inne zadania","verifying":"Weryfikacja","waiting_for_verify":"Czekam na weryfikację","seeding":"Wysiew","completed":"Zakończony","status":"Status","task_name":"Nazwa zadania","size":"Rozmiar","progress":"Postęp","sort":"Sortować","ascending":"Rosnąco","descending":"malejąco","file_loading":"Ładowanie pliku...","loading":"Ładowanie","unknown_status":"Nieznany","play_while_downloading":"Grać...","upload_or_play":"Prześlij / Odtwórz","play":"Grać","ask_if_upload_file":"Przesyłanie pliku?","ask_if_upload_or_play":"Przesłać lub odtworzyć plik?","torrent_error":"Błąd podczas dodawania zadania:","no_peers":"Ponów próbę więcej niż {0} i żaden element równorzędny nie jest dostępny","torrent_exists":"Zadanie już istnieje.","show_origin_torrent":"Uzyskaj oryginalny plik zadania lub adres URL","show_directory":"Otwórz katalog tego torrenta","task_num":"Zadania","total_upload_speed":"Prędkość wysyłania","total_download_speed":"Prędkość pobierania","path_missing":"Błąd: nie można znaleźć ścieżki torrenta","origin_not_found":"Nie można znaleźć informacji o zadaniu pochodzenia.","text_copied":"Adres URL Magnum jest kopiowany do schowka","copy_magnet_uri":"Kopiuj magnes:? URI","copy_download_uri":"Skopiuj identyfikator URI pobierania","copy_share_uri":"Skopiuj identyfikator URI udziału","uri_copied":"Identyfikator URI został pomyślnie skopiowany do schowka","uri_copy_failed":"Nie udało się skopiować uri","more":"Więcej...","toggle_list_mode":"Przełącz tryb listy","comment":"komentarz","operations":"Operacje","open_directory":"Otwarty katalog","no_downloading_task":"Brak zadania pobierania","remove_all_downloading_tasks":"Usunąć wszystkie zadania pobierania?","remove_all_upload_tasks":"Usunąć wszystkie zadania przesyłania?","remove_autoupload_files":"Usuń automatycznie przesyłane pliki","remove_all_history":"Usunąć całą historię?","remaining":"Pozostały","created_time":"Stworzony czas","used_time":"Zużyty czas","completed_time":"Ukończony czas","yesterday":"Wczoraj","before_yesterday":"{empty}","earlier":"Wcześniej","miss_file":"Brak niektórych plików","delete_miss_file_task":"Brakuje plików fome w {0}.","common_peer":"Zwykły rówieśnik","ab_peer":"${displayName} rówieśnik","ab_peer_verified":"Zweryfikowany równorzędny ${displayName}","ab_peer_available":"${displayName} równorzędne dostępne","alphabiz_accelerating":"${displayName} przyspiesza","income":"Dochód","income_info":"Dochód (dziś/ogółem)","total_income_info":"Dochód: {0}(dziś) / {1}(łącznie)","login_to_see_income":"Zaloguj się, aby zobaczyć statystyki dochodów","credit_cost":"Koszty kredytu","downloaded_by_payment":"Pobrane przez Payments","file_not_found":"Nie można znaleźć tego pliku w lokalnym","no_task":"Nie pytaj","no_matched_task":"Brak pasującego zadania","space_not_enough":"Niewystarczająca ilość miejsca na dysku","need_more_space":"Potrzebujesz {0} więcej miejsca, ale obecny dysk ma {1} wolnego miejsca ({2} zarezerwowane). Zadania są wstrzymane. Wstępne ładowanie biblioteki jest wyłączone. Możesz ją ponownie włączyć w [Ustawienia - Zaawansowane].","seeders":"Siewniki","last_update":"Ostatnia aktualizacja","connecting":"Złączony","connected":"Połączony","request_timed_out":"Upłynął limit czasu żądania","connection_failed":"Połączenie nieudane","invalid_download_url":"Nieprawidłowy adres URL pobierania","download_link":"link do pobrania","empty_files":"Brak plików w katalogu","duplicate_task":"Zduplikowane zadanie","duplicate_tracker":"Zduplikowany tracker","this_task_not_ready":"To zadanie nie jest gotowe. Wstrzymanie tego zadania spowoduje jego bezpośrednie usunięcie.","some_task_not_ready":"Niektóre zadania nie są gotowe. Wstrzymanie tych zadań spowoduje ich bezpośrednie usunięcie.","failed_to_delete_files":"Nie udało się usunąć plików","failed_to_delete_files_desc":"Nie udało się usunąć niektórych plików zadania. Może być konieczne ich ręczne usunięcie","unknown_error":"Nieznany błąd: {0}","more_files_are_not_shown":"({0} więcej plików nie jest wyświetlanych ze względu na wydajność)","no_available_file":"Brak dostępnego pliku. Poczekaj, aż zadanie będzie gotowe.","service_worker_error":"Nie można załadować ServiceWorkera do gry. Twoja przeglądarka może nie obsługiwać tej funkcji lub ServiceWorker nie jest aktywowany. Może być konieczne ponowne załadowanie tej strony i ponowna próba.","add_task_first":"Najpierw musisz dodać zadanie.","player_task_time":"Zawodnik poświęca zbyt wiele sekund na przygotowanie się do gry. Może być coś nie tak z zadaniem.","web_mode_hint":"Tryb sieciowy ${displayName} obsługuje tylko peery WebRTC. Aby uzyskać najlepsze wrażenia, pobierz aplikację komputerową ${displayName}.","web_mode_task_hint":"Kliknij przyciski poniżej, aby dodać zadanie. Jednorazowo możesz dodać tylko jedno zadanie.","save_to_local":"Zapisz w lokalnym","save_as_zip":"Zapisz jako ZIP","creating_save_file":"Tworzenie pliku zapisu...","upload_as_one_directory":"Prześlij jako jeden katalog","upload_as_single_files":"Prześlij jako pojedyncze pliki","web_mode_upload_single":"W trybie internetowym można przesłać tylko jeden plik","download_success":"Pobierz pomyślnie","download_fail":"Pobieranie nie udane","wait_for_downloaded_to_share":"Przed udostępnieniem poczekaj na pobranie zadania.","download_with_cellular":"Pobieraj zadania za pomocą sieci komórkowej","download_with_cellular_desc":"Korzystasz z sieci komórkowej. Pobieranie zadań za pomocą sieci komórkowej może wiązać się z dodatkowymi opłatami pobieranymi przez operatora.","download_with_cellular_confirm":"Nadal pobieraj przez sieć komórkową","language":"Język","appearance":"Wygląd","darkModeSystem":"System","darkModeLight":"Światło","darkModeDark":"Ciemny","basic_setting":"Podstawowy","hideMenu":"Ukryj menu aplikacji (tylko Windows i Linux)","autoHide":"Automatyczne ukrywanie okna","autoStart":"Otwórz podczas logowania","restore":"Zachowaj rozmiar i położenie okna przy wyjściu","autoStartUnfinished":"Automatycznie wznawiaj wszystkie niedokończone zadania","default_download_path":"Domyślna ścieżka","download_directory":"Pobierz katalog","upload_directory":"Prześlij katalog","enable_auto_upload":"Włącz automatyczne przesyłanie","unlimit_upload_amount":"Nieograniczona kwota przesyłania","unlimit_upload_warning":"Zezwalaj na przesyłanie dużej liczby plików. Może to powodować problemy z wydajnością","start":"Uruchomienie","transport_setting":"Przenoszenie","upload_limit":"Limit przesyłania","download_limit":"Limit pobierania","payed_user_share_rate":"Współczynnik udziału płatnych użytkowników","unlimited":"Nieograniczony","limit_input_error":"Liczba graniczna powinna być dodatnia","BT_setting":"Ustawienia zadań","saveLinkSeed":"Zapisz łącze jako plik zadania","autoDownload":"Automatycznie pobieraj link i treść","continuousSeeding":"Kontynuuj siew aż do ręcznego zatrzymania","seedSharingRate":"Stosunek nasion","seedTime":"Czas wysiewu (minuty)","task_manage":"Zarządzanie zadaniami","maximumDownloadNum":"Maksymalna liczba aktywnych zadań","maximumConnectionsNum":"Maksymalne połączenie na serwer","range_error":"Zakres powinien mieścić się w przedziale od {0} do {1}","random":"losowy","breakpointContinuation":"Kontynuować","automaticSkip":"Automatycznie pokazuj pobieranie po dodaniu zadania","afterNotification":"Powiadomienie po zakończeniu pobierania","deleteConfirm":"Przed usunięciem zadania nie jest wymagane żadne potwierdzenie","submit":"Zapisz i zastosuj","discard":"Wyrzucać","reset":"Resetowanie","reset_all_settings":"Zresetuj wszystkie ustawienia?","preferences_resetted":"Preferencje zresetowane","traditional_chinese":"tradycyjne chińskie","japanese":"język japoński","english":"język angielski","chinese":"Chiński uproszczony","advancedSettings":"Zaawansowany","autoUpdate":"Automatyczna aktualizacja","autoCheckUpdate":"Automatycznie sprawdzaj dostępność aktualizacji","proxy":"Pełnomocnik","useProxyService":"Włącz serwer proxy","trackerService":"Serwery śledzące","recommendUse":"Zalecana","autoUpdateTrackerServiceList":"Codziennie automatycznie aktualizuj listę trackerów","manualUpdateTracker":"Aktualizacja ręczna","manualUpdateSuccess":"Pomyślnie zaktualizuj serwery śledzenia","manualUpdateFail":"Nie udało się zaktualizować z:","listenPort":"Porty nasłuchowe","BTlistenPort":"Port transmisji danych","DHTlistenPort":"Rozproszony port mieszania","protocols":"Kompatybilne protokoły","setDefaultClientForFollowingProtocols":"Ustaw jako domyślnego klienta dla następujących protokołów","magnetUrl":"Magnes","video_file":"Plik wideo","audio_file":"Plik audio","security":"Bezpieczeństwo","impersonateUserAgent":"Makieta agenta użytkownika","RPCauthorizationkey":"Tajemnica RPC","viewDocument":"Wyświetl tajny podręcznik RPC","developer":"Deweloper","applicationLogPath":"Ścieżka dziennika aplikacji","downloadSessionPath":"Pobierz ścieżkę sesji","resetDownloadSessionRecord":"Zresetuj sesję pobierania","restoreInitialSettings":"Przywrócenie ustawień fabrycznych","preferences_set_successfully":"Zapisz preferencje pomyślnie!","preferences_set_fail":"Zapisywanie preferencji nie powiodło się!","change_not_save":"Zmiany nie zapisują się","discard_all_changes":"Odrzucić wszystkie zmiany i wyjść?","stay_in_page":"Pozostań na stronie","disk_usage":"Użycie dysku","pause_if_less_space":"Wstrzymaj i powiadom, jeśli miejsca jest mniej niż (MB)","default_video_player":"Domyślny odtwarzacz wideo","video_cache_time":"Pamięć podręczna odtwarzania strumieniowego","minutes":"minuty","system_default":"Domyślne ustawienie systemowe","media_player":"Odtwarzacz multimedialny","library_film_rate":"Dostępna cena filmu","library_show_explore":"Pokaż stronę [Eksploruj].","library_setting":"Ustawienie biblioteki","library_sync_setting":"Ustawienie synchronizacji biblioteki","keychain_sync_status":"Stan synchronizacji pęku kluczy","sync_with_aws":"Synchronizuj pęku kluczy z Amazon Web Services","backup_to_local":"Kopia zapasowa do pliku lokalnego","enable_sync_with_aws":"Włącz synchronizację z AWS","disable_sync_with_aws":"Wyłącz synchronizację z AWS","disable_sync_with_aws_desc":"Spowoduje to usunięcie zapisanego klucza na serwerze. Upewnij się, że wyeksportowałeś już swój klucz.","input_independent_password":"Wprowadź niezależne hasło","change_independent_password":"Zmień niezależne hasło","password_error":"Błędne hasło","password_invalid":"Hasło jest nieprawidłowe","key_existed":"Klucz istniał","key_not_found":"Klucz nie odnaleziony","library_recommend":"Polecam bibliotekę","show_all_channels":"Pokaż wszystkie kanały na stronie polecania biblioteki","not_logged_in":"Nie zalogowany","login_to_continue":"Zaloguj się, aby kontynuować","mnemonic_code":"Kod mnemoniczny","wordlist":"Lista słów","restore_code":"Przywróć z kodu","generate_code":"Wygeneruj kod","export_mnemonic_code":"Eksportuj kod mnemoniczny","import_mnemonic_code":"Importuj kod mnemoniczny","print":"Wydrukować","save_as_txt":"Zapisz jako txt","save_as_pdf":"Zapisz jako pdf","from_file":"Z pliku","not_valid_mnemonic_code":"To nie jest prawidłowy kod mnemoniczny","cannot_parse_code_as_key":"Nie można przeanalizować tego kodu mnemotechnicznego jako klucza biblioteki","import_key_hint":"Czy na pewno chcesz zaimportować ten klucz? Spowoduje to odzyskanie starego klucza w bibliotece.","import_key_confirm":"Tak, importuj.","library_preload":"Wstępnie ładuj zadania z biblioteki","show_preload":"Pokaż zadania wstępnego ładowania","set_download":"Ustaw katalog pobierania","set_download_desc":"W przypadku wersji macOS App Store domyślny katalog pobierania znajduje się w piaskownicy aplikacji i zostanie usunięty po odinstalowaniu aplikacji. Jeśli chcesz zachować pobrane pliki, musisz ręcznie wybrać inny katalog pobierania.","home":"Dom","home_caption":"Pobieranie/przesyłanie i pliki multimedialne","library":"Biblioteka","library_caption":"Przeglądaj zasoby multimedialne","player":"Gracz","player_caption":"Odtwarzacz multimedialny","credits":"Kredyty","credits_caption":"Sprawdź saldo konta","account":"Konto","account_caption":"Zaloguj się/Zarejestruj się/Zarządzanie","settings":"Ustawienia","settings_caption":"Ustawienia aplikacji, odtwarzacza, konta","development":"Rozwój","development_caption":"Tryb programisty do użytku wewnętrznego","basic":"Podstawowy","basic_caption":"Podstawowe ustawienia","advanced":"Zaawansowany","advanced_caption":"Zaawansowane ustawienia","blockchain":"Portfel","blockchain_caption":"${displayName} Zdecentralizowany portfel","internal_notice":"Wewnętrzne powiadomienie o wydaniu","release_notes":"Informacje o wydaniu","terms_and_conditions":"Regulamin","license_and_listen_notices":"Licencjonuj i słuchaj powiadomień o otwartym kodzie źródłowym","close":"Zamknąć","success":"Powodzenie","fail":"Ponieść porażkę","account_email_invalid_address":"Niepoprawny adres email","account_email_invalid_domain":"Nieprawidłowa domena e-mail","account_email_unknown_status":"Nieznany stan dostarczania wiadomości e-mail","account_email_unavailable_address":"Niedostępny adres e-mail","account_email_suppressed_address":"Ukryty adres e-mail","account_loading":"Ładowanie...","account_is_required":"jest wymagane","account_sign_in_your_account":"Zalogować się","account_username":"Nazwa użytkownika","account_username_email_phone":"Numer telefonu lub e-mail","account_password":"Hasło","account_new_password":"Nowe hasło","account_re_enter_password":"Wprowadź ponownie hasło","account_password_not_equal":"Dwa hasła nie są równe","account_new_password_same":"Hasło jest takie samo jak oryginalne hasło","account_forgot_your_password":"Zapomniałeś hasła?","account_reset_password":"Zresetuj hasło","account_sign_in":"Zalogować się","account_signed_in":"Wpisany","account_sign_up":"Zapisać się","account_find_your_account":"Znajdź swoje konto","account_enter_your_username":"Wpisz swój numer telefonu lub adres e-mail","account_search":"Szukaj","account_email_sent_tip":"E-mail z kodem weryfikacyjnym został wysłany na Twój adres e-mail:","account_phone_sent_tip":"Na Twój telefon została wysłana wiadomość SMS z kodem weryfikacyjnym:","account_email_phone_sent_tip":"E-mail i SMS z kodem weryfikacyjnym zostały wysłane odpowiednio na Twój adres e-mail i telefon:","account_software_token_tip":"Usługa MFA jest włączona na Twoim koncie. Aby zakończyć logowanie, włącz lub wyświetl swoje urządzenie i wpisz TOTP","account_reset_your_password":"Zresetuj swoje hasło","account_verification_code":"Kod weryfikacyjny","account_resend_code":"Wyślij ponownie kod","account_code_has_been_resent":"Kod weryfikacyjny został wysłany ponownie","account_password_has_been_reset":"Hasło zostało zresetowane","account_submit":"Składać","account_sign_up_your_account":"Zarejestruj swoje konto","account_fill_required_fields":"Wypełnij wymagane pola poniżej.","account_fill_optional_fields":"Wypełnij opcjonalne pola poniżej.","account_email":"E-mail","account_invitation":"Zaproszenie","account_invitation_code":"Kod zaproszenia","account_i_accept":"Akceptuję","account_license_terms":"licencja i warunki","account_next":"Następny","account_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki.","account_verify_fill_optional_fields":"Sprawdź i wypełnij opcjonalne pola.","account_nickname":"Przezwisko","account_gender":"Płeć","account_male":"Mężczyzna","account_female":"Kobieta","account_not_say":"Nie mów","account_birthday":"Urodziny","account_phone_number":"Numer telefonu","account_locale":"Lokalny","account_tip_verified":"Zweryfikowano, loguję się...","account_verified":"zweryfikowane","account_unverified":"niesprawdzony","account_signed_up":"Zapisany","account_verify_your_identity":"Zweryfikować Twoją tożsamość","account_finish":"Skończyć","account_signed_out":"Wylogowany","account_change_password":"Zmień hasło","account_change_email":"Zmień adres e-mail","account_change_phone_number":"Zmień numer telefonu","account_sign_out":"Wyloguj się","account_current_password":"Aktualne hasło","account_re_enter_new_password":"Wprowadź ponownie nowe hasło","account_personal_information":"Informacja","account_edit":"edytować","account_reset":"Resetowanie","account_greeting":"Cześć,","account_cancel":"Anulować","account_change":"zmiana","account_not_set":"nie ustawiony","account_setting":"ustawienie","account_copy_code":"skopiuj kod","account_account_setting":"Konto","account_task_page":"Zadanie kredytowe","account_setting_caption":"Zmień hasło / Edytuj informacje","account_security":"Bezpieczeństwo","account_want_to_join":"Chcesz się dołączyć?","account_sign_in_now":"Zalogować się","account_changed":"Zmieniono","account_clipboard_with_invitation_code":"Skopiowano kod zaproszenia","account_clipboard_with_code":"Kod skopiowany","account_invitation_code_dialog_tip":"Wyślesz znajomemu e-mail lub SMS z kodem zaproszenia:","account_available":"dostępny","account_invited":"zaproszony","account_used":"używany","account_invitation_code_sent":"Kod zaproszenia został wysłany","account_invitation_channel_required":"Wypełnij co najmniej jeden kanał zaproszeń","account_no_verification_code":"Nie możesz otrzymać kodu weryfikacyjnego?","account_no_phone_number":"Brak numeru telefonu?","account_sign_up_by_email":"Zarejestruj się przez e-mail","account_no_email":"Brak e-maila?","account_sign_up_by_phone_number":"Zarejestruj się pod numerem telefonu","account_no_totp":"Brak TOTP?","account_tip_no_totp":"Jeśli nie ma TOTP, skonfiguruj najpierw TOTP","account_setup_totp":"Skonfiguruj TOTP","account_contact_information":"Informacje kontaktowe","account_delete_account":"Usuń konto","account_deleted":"Usunięto","account_can_not_mfa":"Kłopoty MSZ?","account_set_mfa_type":"Skonfiguruj usługę MFA","account_disable_mfa":"Wyłącz uwierzytelnianie wieloskładnikowe","account_disabled_mfa":"Wyłączone MSZ","account_sms_mfa":"SMS MSZ","account_totp_mfa":"TOTP MSZ","account_totp":"TOTP","account_not_recommend":"Nie polecane","account_oauth_sign_in_with":"Zaloguj się za pomocą {provider}","account_sign_in_failed":"Nie udało się zalogować","account_tip_oath_sign_up":"E-mail odpowiadający bieżącemu kontu {provider}: {email} nie utworzył jeszcze konta","account_tip_confirm_delete_account":"Wprowadź bieżące hasło do konta, aby potwierdzić, że chcesz usunąć bieżące konto. (Usuniętych kont nie można przywrócić)","account_tip_config_mfa":"Możesz użyć SMS-a lub hasła jednorazowego opartego na czasie (TOTP) jako dodatkowego uwierzytelnienia","account_error_can_not_enable_mfa":"Aby włączyć MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_sms_mfa":"Aby włączyć SMS MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_totp_mfa":"Musisz powiązać swój adres e-mail i numer telefonu komórkowego, aby włączyć TOTP MFA","account_tip_setup_totp":"Użyj aplikacji, takich jak Authenticator, aby zeskanować poniższy kod QR lub skopiuj kod ręcznie, aby dodać token bezpieczeństwa","account_tip_verify_totp":"Sprawdź swój TOTP","account_link_your_social_account":"Powiąż swoje konto społecznościowe","account_unlink_your_social_account":"Odłącz konto społecznościowe","account_tip_confirm_link":"Czy na pewno chcesz powiązać bieżące konto z kontem {provider}?","account_tip_confirm_unlink":"Czy na pewno chcesz anulować powiązane konto {provider}?","account_tip_linking":"wiążący...","account_tip_unlinking":"Rozwiązywanie...","account_linked":"Zobowiązany","account_unlinked":"Nieoprawny","account_error_can_not_link_to_the_linked_account":"Bieżące konto społecznościowe jest powiązane z innym kontem","account_error_can_not_link_to_the_mismatched_email":"Bieżące konto i adres e-mail konta społecznościowego są niespójne","account_error_can_not_link_before_email_verified":"Nie można połączyć konta społecznościowego, ponieważ bieżące konto nie jest powiązane ze zweryfikowanym adresem e-mail","account_tip_confirm_verify_email_phone":"Czy wysłać kod weryfikacyjny na adres e-mail i numer telefonu bieżącego konta, aby zweryfikować swoją tożsamość?","account_tip_confirm_verify_phone":"Czy wysłać kod weryfikacyjny na aktualny numer telefonu, aby zweryfikować swoją tożsamość?","account_error_1_message_60_seconds":"Tylko jeden SMS lub e-mail może zostać wysłany co 60 sekund, poczekaj kolejne {delta} sekund","account_error_10_messages_per_day":"Każdy telefon komórkowy lub e-mail może wysłać tylko 10 wiadomości w ciągu 24 godzin","account_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","Network Error":"Wystąpił problem z siecią, spróbuj ponownie później","account_error_user_not_exist":"użytkownik nie istnieje","account_error_incorrect_username_or_password":"Niepoprawna nazwa użytkownika lub hasło","account_error_incorrect_original_password":"Nieprawidłowe oryginalne hasło","account_error_incorrect_password":"niepoprawne hasło","account_error_username_not_found":"Nazwa użytkownika nie znaleziona","account_error_can_not_reset_for_no_verified":"Nie można zresetować hasła do niezweryfikowanego konta","account_error_invalid_verification_code":"Nieprawidłowy kod weryfikacyjny, spróbuj ponownie","account_error_expired_verification_code":"Kod weryfikacyjny wygasł, spróbuj ponownie","account_error_password_not_long_enough":"Hasło nie jest wystarczająco długie","account_error_attempt_limit_exceeded":"Przekroczono limit prób, spróbuj za jakiś czas.","account_error_password_attempts_exceeded":"Przekroczono liczbę prób podania hasła.","account_error_invalid_phone_number_format":"Nieprawidłowy format numeru telefonu","account_error_no_cell_phone_prefix":"Wybierz prefiks numeru telefonu","account_error_username_already_exists":"Nazwa użytkownika już istnieje","account_error_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki","account_error_inactive_code":"Kod zaproszenia nie jest kodem aktywowanym","account_error_non_existent_code":"Kod zaproszenia nie istnieje","account_error_unexpected":"Niespodziewany błąd","account_error_can_not_change_email_before_phone_bound":"Adres e-mail nie może zostać zmieniony przed powiązaniem numeru telefonu","account_error_can_not_change_email_before_unbound_social_account":"Adresu e-mail nie można zmienić przed usunięciem konta społecznościowego","account_error_can_not_change_phone_before_email_bound":"Numeru telefonu nie można zmienić przed związaniem wiadomości e-mail","account_error_can_not_change_email_phone_with_mfa_enabled":"Nie można zmienić adresu e-mail ani numeru telefonu komórkowego przed wyłączeniem usługi MFA","account_error_not_supported_yet":"Obecnie nie obsługiwane","account_error_same_email":"Nowy adres e-mail nie może być taki sam jak pierwotny adres e-mail","account_error_same_phone":"Nowy numer telefonu nie może być taki sam jak oryginalny numer telefonu","account_error_email_not_exists":"adres E-mail nie istnieje","account_error_email_already_exists":"Konto o podanym adresie e-mail już istnieje.","account_error_phone_already_exists":"Konto o podanym numerze telefonu już istnieje.","account_error_mfa_token_mismatch":"Niezgodność kodu tokena oprogramowania","account_error_recaptcha_not_loaded":"Wystąpił problem z siecią. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_recaptcha_validation_failed":"Weryfikacja ReCAPTCHA nie powiodła się. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_sign_in_in_progress":"Oczekująca próba logowania już trwa","account_field_range":"Ogranicz wprowadzanie znaków {0}-{1}","account_field_only_alphanumeric":"Obsługuje tylko znaki alfanumeryczne","account_field_only_alphanumeric_and_symbol":"Obsługuje tylko znaki alfanumeryczne i symbole","account_field_only_chinese_alphanumeric_space_underline":"Obsługuje tylko znaki alfanumeryczne, spacje i podkreślenia","account_field_prefix_without_number_space":"Pierwszy znak nie może być cyfrą ani spacją","account_field_suffix_without_space":"Nie może kończyć się spacją","account_field_without_repeat_space":"Nie można użyć wielu spacji z rzędu","account_field_can_not_only_alphanumeric":"Nie możesz używać tylko liter lub cyfr","account_field_must_have_number_characters":"Musi zawierać cyfry","account_field_verification_code":"Kod weryfikacyjny musi składać się z sześciu cyfr","account_field_invitation_code":"Kod zaproszenia musi być alfanumeryczny","account_field_phone_number":"Nieprawidłowy format numeru telefonu","account_invalid_email_format":"niewłaściwy format wiadomości email","account_sign_out_confirm":"Czy na pewno chcesz się wylogować? Spowoduje to zatrzymanie wszystkich zadań.","account_sign_out_anyway":"Wyloguj się mimo wszystko","account_signing_out":"Wylogowanie...","account_request_save_settings":"Ustawienia nie są zapisywane. Musisz zapisać zmiany przed wylogowaniem.","pay":"Płacić","pay_with_credit":"Zapłać za przyspieszenie pobierania. Potrzebuje około {0} kredytu","pay_with_credit_payed":"Przyspieszenie. Nadal potrzebuje około {0} kredytu","create_payment":"Utwórz płatność","pay_target":"Cel","pay_for_torrent":"Zapłać za {0}","your_subid":"Twój identyfikator podrzędny","your_credits":"Twoje kredyty","pay_point_for_data":"Zapłać {0} punktu za {1} danych","auto_renew":"Włącz automatyczne odnawianie","transaction_details":"szczegóły transakcji","transaction_id":"ID","transaction_payer":"Płatnik","transaction_payee":"Odbiorca płatności","transaction_category":"Kategoria","transaction_changed_amount":"Zmieniona kwota","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Czas utworzenia","receipt_code":"Kod odbioru","transfer_amount":"Kwota przelewu","code_the_receipt_code":"Skopiuj poniższy kod paragonu do płatnika","fill_the_receipt_code":"Przelew poprzez wpisanie kodu płatności podanego przez odbiorcę","expense":"Koszt","copied":"Skopiowane","transfer":"Przenosić","receive":"Odbierać","copy":"Kopiuj","withdraw_fund":"Wycofaj fundusz","category_paydata_payer":"Koszt danych","category_paydata_payee":"Dochód z danych","category_transfer":"Przenosić","category_bonus":"Premia","category_recharge":"Naładuj","status_pending":"aż do","status_completed":"zakończony","status_finish":"skończyć","status_failed":"przegrany","tip_invalid_receiver":"Nieprawidłowy kod odbiornika","tip_invalid_amount":"Kwota kredytu powinna być liczbą zmiennoprzecinkową z zakresu 0-1000 (minimalna dokładność to 0,001)","credit_get_more":"Zdobądź więcej kredytów","credit_no_data":"Brak dostępnych danych","credit_loading":"Ładowanie...","credit_not_enough_amount":"Za mało kredytów","credit_amount_not_enough":"Za mało kredytów","credit_payee_not_exist":"Odbiorca płatności nie istnieje","credit_invalid_amount":"Nieprawidłowa kwota kredytu","credit_can_not_transfer_to_yourself":"Nie można przenieść na siebie","credit_latest":"Najnowszy","credit_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","add_subtitles":"Dodaj napisy","open_file":"Otwórz plik...","advanced_options":"Zaawansowane opcje","title":"Tytuł","location":"Lokalizacja","subtitle_file":"plik z napisami","unsupported_subtitle_type":"Typ pliku {0} nie jest obsługiwanym typem napisów","not_default_player":"Domyślny odtwarzacz wideo nie jest ustawiony","this_is_an_audio_file":"To jest plik dźwiękowy","the_added_subtitle_already_exists":"Dodane napisy już istnieją","stop_stream_player":"Media strumieniowe zostały przerwane, ponieważ zadanie zostało wstrzymane lub usunięte","stop_player":"Odtwarzacz został zamknięty, ponieważ plik został usunięty","playing_timeout_hint":"Koniec czasu oczekiwania. Proszę sprawdzić zadanie","autoplay_hint":"Autoodtwarzanie może być zablokowane przez Twoją przeglądarkę. Jeśli odtwarzacz nie gra, spróbuj kliknąć ekran, aby kontynuować","remove_playing_confirm":"{0} jest nadal odtwarzane, usunięcie go zatrzyma gracza. Czy na pewno chcesz to usunąć?","unsupported_in_browser":"Nieobsługiwane jeszcze w trybie przeglądarki","client":"Klient","warning":"Ostrzeżenie","enable":"Włączać","disable":"Wyłączyć","auto":"Automatyczny","encrypt_connection":"Szyfruj połączenie","encrypted_connection":"Szyfrowane połączenie","non_encrypted_connection":"Nieszyfrowane połączenie","connected_wires_not_disconnect":"Podłączone przewody nie zostaną odłączone","audio":"audio","video":"wideo","image":"obraz","subtitle":"podtytuł","zip":"zamek błyskawiczny","text":"tekst","unknown":"nieznany","add":"Dodać","undo":"Cofnij","backup":"Kopia zapasowa","not_default_app":"${displayName} nie jest Twoją domyślną aplikacją do obsługi torrentów i multimediów, czy chcesz ją ustawić jako domyślną?","dont_show_again":"Nie pokazuj więcej","go_to_settings":"Przejdź do ustawień","about_alphabiz":"Około ${displayName}","last_check_at":"Ostatnia kontrola o godz","update_channel":"Zaktualizuj kanał","check_for_update":"Sprawdź aktualizacje","checking_for_update":"Sprawdzanie aktualizacji...","no_update_available":"Brak dostępnych aktualizacji","update_available":"Dostępna aktualizacja","update_now":"Aktualizuj teraz","update_later":"Zaktualizuj później","click_to_update":"Kliknij przycisk AKTUALIZUJ TERAZ, aby pobrać i zaktualizować","update_failed":"Aktualizacja nie powiodła się","update_failed_message":"Wystąpił błąd podczas aktualizacji:","check_shasum_failed":"Nie udało się sprawdzić integralności instalatora","downloading_update":"Pobieranie aktualizacji...","ready_to_update":"Gotowy do aktualizacji","restart_to_update":"Aktualizacja jest pobierana. ${displayName} wyjdzie na chwilę w celu aktualizacji.","already_latest":"Obecna wersja ({0}) jest już najnowsza","update_timeout":"Limit czasu aktualizacji","no_available_release":"Brak dostępnej wersji","no_available_installer":"Brak dostępnego instalatora","feedback":"Informacja zwrotna","select_a_type":"Wybierz typ","category":"Kategoria","select_a_category":"Wybierz kategorię","require_title":"Tytuł jest wymagany","describe_your_problem":"Opisz swój problem","report_a_bug":"Zgłoś błąd","request_a_new_feature":"Poproś o nową funkcję","download_or_upload":"Pobierz Prześlij","others":"Inni","submit_with_system_info":"Prześlij z informacjami o systemie","submit_feedback":"Prześlij opinię","tweet_us":"Tweetnij z nami","tweet_too_long":"Tweet jest za długi","delete_characters":"Usuń co najmniej znak(i) {0}","rest_characters":"Możesz wprowadzić {0} więcej znaków","update_alphabiz":"Zaktualizuj ${displayName}","current_version":"Obecna wersja","cancel_update":"Anuluj aktualizację","slow_download_speed":"Pobieranie jest zbyt wolne","slow_download_speed_caption":"Pobieranie instalatora jest teraz zbyt wolne. Sprawdź stan sieci","update_canceled":"Aktualizacja anulowana","current_version_release_time":"Czas wydania aktualnej wersji","expired_app":"${displayName} Wygasł","version_out_of_date":"Wersja nieaktualna","have_to_update":"Wersja ${displayName} jest nieaktualna. Niektóre protokoły lub interfejsy API są przestarzałe. Musisz zaktualizować ${displayName} przed kontynuowaniem.","exit_alphabiz":"Wyjdź ${displayName}","exit_and_update":"Wyjdź i zastosuj aktualizację","new_version_hint":"Dostępna jest nowa wersja","no_new_version":"Brak nowej wersji","current_is_latest":"Obecna wersja jest już najnowsza","click_to_check_update":"Kliknij przycisk [SPRAWDŹ AKTUALIZACJĘ], aby sprawdzić dostępność aktualizacji","download_latest_version_from_website":"Odwiedź oficjalną stronę internetową, aby pobrać najnowszą wersję","to_the_website":"Do strony internetowej","network_diagnotic":"Diagnostyka sieci","diagnotic":"Diagnostyczny","click_to_check":"Kliknij, aby sprawdzić","click_to_check_again":"Kliknij, aby sprawdzić ponownie","checking":"Kontrola","online":"online","offline":"offline","dns_look_up":"Wyszukiwanie DNS","error":"Błąd","aws_service":"Usługa AWS","network_pings":"Ping sieciowy","not_found":"Nie znaleziono","packet_loss":"Utrata pakietów","official_site":"Oficjalna strona","download_test":"Pobierz test","test_task":"Zadanie testowe {0}","download_failed":"Pobieranie nie udane","second_spend":"{0} s wydatków","open_default_player_failed":"Nie udało się otworzyć domyślnego odtwarzacza","copied_to_clipboard":"Skopiowane do schowka","go_to":"Iść do","region_not_available":"Region niedostępny","region_not_available_message":"Przepraszam! Twój region nie umożliwia korzystania z tej aplikacji. Ta aplikacja zostanie zamknięta po {0} sekundach","confirm":"Potwierdzać","no_available_result":"Brak dostępnych wyników","invalid_password_format":"nieprawidłowy format hasła","invalid_password_format_same":"Hasło jest takie samo jak oryginalne hasło","error_password":"Błędne hasło","keychain_setting":"Brelok do kluczy","setting_description":"Przechowywanie w chmurze: zapisuj kluczowe dane w chmurze.\\nZmień hasło: zmiana hasła do klucza biblioteki multimediów.\\nMnemonik: alternatywna metoda generowania i przywracania kluczy.\\nImportuj klucz lokalny: Importuj lokalnie zapisany klucz do biblioteki multimediów.\\nKlucz eksportu: zapisuje bieżące dane biblioteki multimediów w pliku lokalnym lub w chmurze.\\nKopia zapasowa klucza do chmury: zaktualizuj bieżące dane biblioteki multimediów do chmury w celu wykonania kopii zapasowej.","refresh_status":"Stan aktualizacji","confirm_import_key":"Potwierdź klucz importu","confirm_update_cloud_key":"Masz już klucz w chmurze. Aktualizacja klucza spowoduje zastąpienie oryginalnego klucza. Czy na pewno chcesz zaktualizować klucz przechowywany w chmurze","export_key_with_cloud":"Wprowadź niezależne hasło, które ustawiłeś, aby wyeksportować klucz biblioteki przechowywany w chmurze i zablokuj plik klucza hasłem odblokowania","store_cloud_key_prompt_password":"Wprowadź niezależne hasło, aby przechowywać klucz biblioteczny w chmurze","update_cloud_key_prompt_password":"Ustaw niezależne hasło, aby zaszyfrować klucz biblioteki, a następnie zaktualizuj go do chmury","enable_cloud_storage_prompt_password":"Ustaw hasło do klucza przechowywanego w chmurze, za pomocą którego możesz pobrać klucz z chmury","input_unlock_password":"Ustaw hasło odblokowujące","export_local_prompt_password":"Ustaw hasło odblokowujące, aby zaszyfrować plik klucza. Nie zapiszemy dla Ciebie tego hasła, więc jeśli je zgubisz, nie będziesz mógł odblokować swojego klucza bibliotecznego","require_unlock_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","require_independent_password":"Wprowadź niezależne hasło, aby uzyskać klucz przechowywany w chmurze","import_local_prompt_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","select_encrypt_mode":"Wybierz tryb szyfrowania","update_cloud_key":"Zaktualizuj klucz przechowywany w chmurze","backup_to_cloud":"Utwórz kopię zapasową klucza biblioteki w chmurze","save_local":"Zapisz klucz biblioteki jako lokalny zaszyfrowany plik","create_new_key":"Utwórz nowy klucz biblioteki","creating_lib_key":"Tworzę klucz biblioteki...","loading_lib_key":"Ładowanie klucza biblioteki...","failed_to_create_lib_key":"Nie udało się utworzyć klucza biblioteki","failed_to_load_lib_key":"Nie udało się załadować klucza biblioteki","import_local_key":"Importuj klucz lokalnie","import_lib_key_from_local":"Zaimportuj klucz biblioteki lokalnie","import_from_cloud":"Zaimportuj klucz biblioteki z chmury","create_or_import_key":"Utwórz lub zaimportuj klucz biblioteki","create_or_import_key_desc":"Klucz biblioteczny to niezależny klucz używany do pobierania i publikowania treści w zdecentralizowanej bazie danych.","store_your_lib_key":"Przechowuj swój klucz do biblioteki","export_cloud_key":"Eksportuj klucz z chmury","export_current_key":"Eksportuj bieżący klucz","change_password":"Zmień hasło","enable_cloud_storage":"Włącz przechowywanie w chmurze","disable_cloud_storage":"Wyłącz przechowywanie w chmurze","disable_cloud_storage_desc":"Wyłączenie przechowywania w chmurze spowoduje usunięcie klucza zapisanego w chmurze, upewnij się, że klucz jest zapisany lokalnie","sync_at":"Synchronizuj o: {time}","cloud_storage_enabled":"Synchronizuj pęku kluczy z {storage}","cloud_storage_disabled":"Przechowywanie w chmurze wyłączone","saved_locally":"Zapisane lokalnie","export_key":"Eksportuj plik klucza","cloud_independent_password":"Hasło niezależne od chmury","key_file_unlock_password":"Hasło odblokowania pliku klucza","re_enter_unlock_password":"Wprowadź ponownie hasło odblokowujące","independent_password_not_enabled":"Obecne hasło to hasło do konta Alphabiz (nie jest ustawione żadne niezależne hasło)","use_cognito_hash":"Użyj hasła do konta Alphabiz","use_independent_password":"Użyj niezależnego hasła","keychain_lib":"klucz do biblioteki","loading_keychain_state":"Ładowanie pęku kluczy...","backing_up":"Tworzenie kopii zapasowej...","backup_current_key":"Utwórz kopię zapasową bieżącego klucza w chmurze","cloud_lib_key_not_existed":"klucz biblioteki nie istnieje w chmurze","open_keychain_file":"Otwórz plik pęku kluczy","confirm_open_abk":"Czy chcesz otworzyć plik ABK","use_the_key":"Użyj klucza","backup_the_key":"Utwórz kopię zapasową klucza w chmurze","keychain_data_does_not_exist":"Dane pęku kluczy nie istnieją","timeout of 0ms exceeded":"Wystąpił problem z siecią, spróbuj ponownie później","XhrError":"Wystąpił problem z siecią, spróbuj ponownie później","payer credit amount is not enough":"Za mało kredytów","payee does not exist":"Odbiorca płatności nie istnieje","block_list_manage":"Zarządzaj listą zablokowanych","blocked_users":"Zablokowani użytkownicy","blocked_channels":"Zablokowane kanały","unblock_user":"Odblokuj użytkownika","unblock_channel":"Odblokuj kanał","no_blocked_user":"Brak zablokowanego użytkownika","no_blocked_channel":"Brak zablokowanego kanału","field_required":"{0} jest wymagane","setting":"Ustawienie","unknown_media":"Nieznane media","settings_button_visible":"Przycisk widoczny","settings_setting":"Ustawienie","settings_playback_rate":"Szybkość odtwarzania","settings_subtitle":"Podtytuł","settings_pip":"Pypeć","settings_fullscreen":"Pełny ekran","settings_subtitle_options":"Opcje napisów","settings_normal":"Normalna","settings_italic":"italski","settings_lighter":"Zapalniczka","settings_bolder":"Odważniejszy","settings_small":"Mały","settings_large":"Duży","about":"O","services":"Usługi","hide":"Ukrywać","hide_others":"Ukryj inne","show_all":"Pokaż wszystko","quit":"Zrezygnować","edit":"Edytować","redo":"Przerobić","cut":"Cięcie","paste":"Pasta","select_all":"Zaznacz wszystko","view":"Pogląd","reload":"Przeładować","toggle_full_screen":"Przełącz tryb pełnoekranowy","toggle_developer_tools":"Przełącz Narzędzia dla programistów","window":"Okno","minimize":"Zminimalizować","bring_all_to_front":"Przenieś wszystko na wierzch","help":"Pomoc","github_repo":"Repozytorium Github","issues":"Kwestie","learn_more":"Ucz się więcej","learn_spelling":"Naucz się pisowni","lookup_selection":"Wyszukaj „{selection}”","search_with_google":"Szukaj za pomocą Google","save_as":"Zapisz jako","save_image":"Zapisać obraz","save_image_as":"Zapisz obraz jako ...","copy_link":"Skopiuj link","save_link_as":"Zapisz link jako ...","copy_image":"Skopiuj obraz","copy_image_as":"Kopiuj obraz jako...","copy_image_address":"Kopiuj adres obrazu","download_complete":"Pobieranie zakończone","download_complete_message":"{0} jest pobierany","is_running":"{0} działa","open":"Otwórz {0}","launch_problem":"Problem z uruchomieniem","ask_clear_data":"Wygląda na to, że próbujesz uruchomić {0}, ale kilka razy nie powiodło się.\\nCzy chcesz wyczyścić wszystkie dane aplikacji i spróbować uruchomić ją później?","launch_directly":"Uruchom bezpośrednio","clear_all_data":"Wyczyść wszystkie dane","ask_clear_confirm":"Spowoduje to usunięcie wszystkich konfiguracji, dzienników i danych użytkownika!\\nPo tym może być konieczne ponowne uruchomienie {0}.\\nCzy na pewno usunąć dane?","confirm_launch":"Nie, uruchom bezpośrednio","confirm_clear":"Tak, wyczyść wszystkie dane"}')},"06cd":function(e,t,a){"use strict";a("326b")},"06e8":function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return c}));a("d4b5"),a("de6c"),a("7996");var n=a("e75b");const o=new n["a"].Rest("ABDevRest"),i=e=>{let t,a,n,i;const r=()=>!1!==i,s=e=>{t=e.query_type,a=e.query_params||{},n=[],i=void 0},l=()=>o.post("/credit/transaction/query",{query_type:t,query_params:JSON.stringify(a),next_token:i}).then((e=>{var t;n.push(...e.items),i=null!==(t=e.nextToken)&&void 0!==t&&t}));return e&&s(e),{reset:s,getData:()=>n,hasNext:r,fetch:l}},r=n["a"].GQL,s={enable:async e=>await r.enableUserListener(e),disable:async()=>{r.removeUserListener("credits"),r.disableUserListener()},addHandler:(e,t)=>{r.addUserListener("credits",(a=>{void 0!==a[e]&&t(a[e])}))},addHandlers:(e,t)=>{r.addUserListener("credits",(t=>{Object.entries(t).forEach((([t,a])=>{e[t]&&e[t](a)}))}),t)}},l={state:"disabled",resolver:null,async enable({rootState:e,rootGetters:t,dispatch:a}){const n=()=>e.account.sub,o=()=>t.transactions.expenses,i=e=>a("CREDIT_PAY_DATA_CANCEL",{transactionId:e.id}),r=e=>t=>{const a=2592e5;if("PAYDATA"!==t.category)return!1;if(t.payerId!==n())return!1;if("PENDING"!==t.status)return!1;const o=e.getTime()-new Date(t.createdAt).getTime();return!(o<=a)},s=async()=>{const e=o(),t=e.filter(r(new Date));for(const a of t)console.log("TxnCancellation:",a.id),await i(a)};c.state="idle";const l=3e5;while(!["stopping","disabled"].includes(c.state)){let e=l;if("idle"===c.state){c.state="processing";const t=(new Date).getTime();if(await s(),["stopping","disabled"].includes(c.state))break;const a=(new Date).getTime();e-=Math.max(0,Math.min(l,a-t))}if(e&&(c.state="waiting",await new Promise((t=>setTimeout(t,e))),["stopping","disabled"].includes(c.state)))break;c.state="idle"}console.error("TxnCancellation resolver"),c.resolver?c.resolver():console.error("resolver not found")},async disable(){if(["stopping","disabled"].includes(c.state))return;if(["waiting"].includes(c.state))return void(c.state="disabled");const e=new Promise((e=>{c.resolver=()=>{e(),c.resolver=null}}));c.state="stopping",await e,c.state="disabled"}},c=new Proxy(l,{get(e,t,a){return Reflect.get(e,t,a)},set(e,t,a,n){return"state"===t&&console.log("TxnCancellation:",a),Reflect.set(e,t,a,n)}})},"071f":function(e,t,a){"use strict";a("25b9")},"072b":function(e,t,a){"use strict";a.d(t,"c",(function(){return d})),a.d(t,"d",(function(){return u})),a.d(t,"a",(function(){return _})),a.d(t,"e",(function(){return p})),a.d(t,"h",(function(){return m})),a.d(t,"b",(function(){return h})),a.d(t,"g",(function(){return g})),a.d(t,"f",(function(){return f}));a("de6c");const n="`~!@#$%^&*()\\-_=+[\\]\\\\;',./{}|:\"<>?",o=(e,t)=>{const a=new RegExp(`^[${t.join("")}]*$`);return a.test(e)},i=(e,t=1,a=1/0)=>void 0!==e&&("string"===typeof e&&0===e.length||e.length>=t&&e.length<=a),r=e=>!/\s\s/.test(e),s=e=>/[0-9]/g.test(e),l=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`^[^${t.join("")}]`).test(e)),c=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`[^${t.join("")}]$`).test(e)),d=function(e){const t=["0-9","A-Z","a-z","一-龥","\\s","_"];if(!o(e,t))return this.$t("account_field_only_chinese_alphanumeric_space_underline");const[a,n]=[2,15];return i(e,a,n)?l(e,["0-9","\\s"])?c(e,["\\s"])?!!r(e)||this.$t("account_field_without_repeat_space"):this.$t("account_field_suffix_without_space"):this.$t("account_field_prefix_without_number_space"):this.$t("account_field_range",[a,n])},u=function(e){const t=["0-9","A-Z","a-z",n];if(!o(e,t))return this.$t("account_field_only_alphanumeric_and_symbol");const[a,r]=[8,20];return i(e,a,r)?s(e)?void 0:this.$t("account_field_must_have_number_characters"):this.$t("account_field_range",[a,r])},_=function(e){if(!/^([a-zA-Z]|[0-9])(\w|-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(e))return this.$t("account_invalid_email_format")},p=function(e){if(!o(e,["0-9"]))return this.$t("account_field_phone_number");const[t,a]=[3,11];return i(e,t,a)?void 0:this.$t("account_field_range",[t,a])},m=function(e){return o(e,["0-9"])&&i(e,6,6)?void 0:this.$t("account_field_verification_code")},h=function(e){const t=["0-9","A-Z","a-z"];if(!o(e,t))return this.$t("account_field_invitation_code")},g=function(e){const t=["0-9","a-f","-"];return o(e,t)&&"8-4-4-4-12"===e.split("-").map((e=>e.length)).join("-")||this.$t("tip_invalid_receiver")},f=function(e){return/^((\d{1,3}(\.\d{1,3})?)|(1000(\.0{1,3})?))$/.test(e)?[""+parseFloat(e)===e,parseFloat(e)<=1e3,parseFloat(e)>=.001,parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)].some((e=>!e))?this.$t("tip_invalid_amount"):void 0:this.$t("tip_invalid_amount")}},"0742":function(e,t,a){},"0885":function(e,t,a){"use strict";a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));a("7a76"),a("de6c");var n=a("3387"),o=a("f680"),i=a("5584"),r=a("d310"),s=a("1926"),l=a("d7df"),c=a("84f6"),d=a("d558");const u={started:[],toVerify:{},toSubmit:{},toFinish:{},toPause:{}},_={},p=1e7,m="\n background-color: rgb(90,90,90);\n color: white;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(161,161,161);\n",h=()=>{const e={set:e=>global.notified_credit_not_enough_amount=e,get:()=>!!global.notified_credit_not_enough_amount};e.get()||(e.set(!0),o["a"].create({group:"credit_not_enough_amount",message:s["b"].t("credit_not_enough_amount"),type:"negative",position:"bottom-right",timeout:6e3,actions:[{icon:"close",color:"negative",handler:()=>e.set(!1)}]}))};function g(e,t){_[e]=t}function f(e,t=!1){t?(console.log("restart transaction",e),l["a"].emit("restart_payment",e)):l["a"].emit("credit_payment_created",e),u.started.push(e.id)}async function b(e,t=!1,a){console.log("Create payment",e,t);const{infoHash:n,remoteSubId:i,payed:r}=e,l=Date.now().toString();try{const c=await a.dp$request(i,r,{infoHash:n,timestamp:l});f({...e,id:c}),t||o["a"].create(s["b"].t("success"))}catch(c){if(console.log("dp$request failed",c.message),"credit_not_enough_amount"===c.message)return void h();t||o["a"].create(c.message||c)}}function y(e){e.$watch("dp$incomeStatusMapper",((e,t)=>{Object(n["isEqual"])(e,t)||e.PENDING&&e.PENDING.forEach((e=>{u.toVerify[e]&&u.toVerify[e](),u.toSubmit[e]&&u.toSubmit[e]()}))})),e.$watch("dp$expenseStatusMapper",((t,a)=>{Object(n["isEqual"])(t,a)||(t.PENDING&&t.PENDING.forEach((t=>{if(u.started.includes(t))return;const a=e.dp$expenseTxnDict[t],n=JSON.parse(a.meta);console.log("dp$restart from StatusMapper"),f({infoHash:n.infoHash,remoteSubId:a.payeeId,payed:a.amount,autoRenew:!!_[n.infoHash],id:a.id},!0)})),t.COMPLETED&&t.COMPLETED.forEach((e=>{u.toFinish[e]&&u.toFinish[e]()})))})),l["a"].on("verify_payment",(t=>{if(console.log("onVerify",t),void 0===u.toVerify[t.id]){const a=async()=>{u.toVerify[t.id]=!1;const a=e.dp$incomeTxnDict[t.id],n=e=>{throw new Error(`DataPayment(${t.id}) Verify failed: ${e}`)};a.amount!==t.payed&&n("mismatched amount"),l["a"].emit("payment_verified",t)};u.toVerify[t.id]=a}const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.id)&&(u.toVerify[t.id]&&u.toVerify[t.id](),delete u.toVerify[t.id])})),l["a"].on("torrent_metadata",(t=>{var a;l["a"].emit("save_torrent_file",t),g(t,!0);const n=e.dp$expenseHashMapper[t];if(!n)return;const o=null===(a=e.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>n.includes(e)));o&&o.length&&o.forEach((a=>{const n=e.dp$expenseTxnDict[a];console.log("dp$restart from resumeAccelerate"),f({infoHash:t,remoteSubId:n.payeeId,payed:n.amount,autoRenew:_[t],id:n.id},!0)}))})),l["a"].on("request_renew",(t=>{var n;const{subId:o,infoHash:i,peerId:s}=t,l=Object(r["isElectron"])()||Object(d["a"])()?c["a"].allTasks.find((e=>e.infoHash===i)):a("c620").getTaskInstance();if(!l||l.paused||l.done||!l.connections)return;const u=null===(n=l.connections)||void 0===n?void 0:n.find((e=>e.subId===o));if(!u)return;if(!u.hasResource)return void console.log("Remote peer does not have resource. Skip renew.",o,i,s);const _=e.dp$expenseHashMapper[i]||[],m=e.dp$expenseStatusMapper.PENDING||[],h=(null===m||void 0===m?void 0:m.filter((e=>_.includes(e))))||[];if(h.length>10)return console.log("too many pending payments",h);const f=h.filter((t=>{if(!e.dp$expenseTxnDict)return!1;if(e.dp$expenseTxnDict[t]){const a=e.dp$expenseTxnDict[t];return"PENDING"===a.status&&a.payeeId===o}return!1}));if(f.length>3)return console.log(`Too many pending payments for remote subId ${t.subId}`,h);const y=l.length-l.recieved;let v=t.payCount||10;y{console.log("payment completed",t),void 0===u.toSubmit[t.transactionId]&&(u.toSubmit[t.transactionId]=async()=>{u.toSubmit[t.transactionId]=!1,await e.dp$submit(t.transactionId),l["a"].emit("finish_payment",t)});const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.transactionId)&&u.toSubmit[t.transactionId]&&u.toSubmit[t.transactionId]()})),l["a"].on("payment_finished",(t=>{console.log("Finished",t.id),void 0===u.toFinish[t.id]&&(u.toFinish[t.id]=async()=>{u.toFinish[t.id]=!1;try{await e.dp$confirm(t.id);const a=e.dp$expenseTxnDict[t.id];l["a"].emit("payment_closed",{id:a.id,infoHash:JSON.parse(a.meta).infoHash,remoteSub:a.payeeId})}catch(a){console.error("dp$toFinish failed:",a.message)}});const a=e.dp$expenseStatusMapper.COMPLETED;a&&a.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]();const n=e.dp$expenseStatusMapper.PENDING;n&&n.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]()})),l["a"].on("request-provident-payment",(async e=>{console.log("%cRequest provident payment",m,e);try{await i["a"].dispatch("CREDIT_PF_DEPOSIT",{amount:e.count,meta:{infoHash:e.infoHash,timestamp:Date.now().toString()}})}catch(t){"credit_not_enough_amount"===t.message&&h()}}))}t["b"]=y},"0928":function(e,t,a){"use strict";a("7405")},"09e8":function(e,t,a){"use strict";a("d4b5");var n=a("5584");class o{constructor(e){Object.defineProperty(this,"_data",{get(){return e}});const t=()=>{const t=["id","status","payerId","payeeId","amount","meta"],a={};return t.forEach((e=>a[e]=this[e])),Object.defineProperty(a,"_data",{get(){return e}}),a};return t()}get id(){return null}get status(){return null}get payerId(){return null}get payeeId(){return null}get amount(){return null}get meta(){return null}}class i{constructor(e){this.name=e}dp$address(){}dp$credit(){}dp$incomeTxnList(){}dp$expenseTxnList(){}dp$incomeTxnListToday(){}async dp$request(e,t,a){}async dp$cancel(e){}async dp$submit(e,t){}async dp$confirm(e,t){}}a("de6c");const r=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"gainsboro",color:"black"},{bgc:"grey",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)};class s{constructor({parallelCount:e}={}){this.queue=[],this.started=!1,this.parallelCount=e||1}append(...e){return this.queue.push(...e),this}async start(){if(!this.started){this.started=!0;while(this.started)if(this.queue.length>0){const e=this.queue.splice(0,this.parallelCount),t=e=>new Promise((t=>{const a=e();a&&a.then&&a.catch?a.then(t):t()}));await Promise.all(e.map(t))}else await this.wait(3e3)}}stop(){this.started=!1}async wait(e){await new Promise((t=>setTimeout(t,e)))}async promise(e){let t;if(await new Promise((a=>{this.append((()=>e().then(a,(e=>t=e))))})),t)throw t}}const l=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,!["Invalid transaction: status should be PENDING","Invalid transaction: status should be PENDING or COMPLETED","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ConditionalCheckFailed]","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ValidationError]"].includes(e.message)){if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if(["Transaction cancelled, please refer cancellation reasons for specific reasons [None, TransactionConflict]"].includes(e.message))return r("warn",["dp$retry",n,"TransactionConflict",e.code],e.message),!0;if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};class c extends i{constructor(){super("amplify"),this.asyncQueue=new s({parallelCount:1}),this.asyncQueue.start().then((()=>{console.log("dp$asyncQueue: stop")}))}dp$address(){return n["a"].state.account.sub}dp$credit(){return n["a"].state.credits.credit}dp$incomeTxnList(){const e=n["a"].getters.transactions.income.filter((e=>"PAYDATA"===e.category));return e}dp$expenseTxnList(){const e=n["a"].getters.transactions.expenses.filter((e=>"PAYDATA"===e.category));return e}dp$incomeTxnListToday(){const e=n["a"].getters.incomeTodayTransactions.filter((e=>"PAYDATA"===e.category));return e}async dp$request(e,t,a){let o;const i=async()=>{o=await n["a"].dispatch("CREDIT_PAY_DATA_REQUEST",{receiverSub:e,amount:t,meta:a})};return await l(i,5),o.id}async dp$cancel(e){const t=async()=>{await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(t,5)}async dp$submit(e,t){const a=async()=>{t?console.warn("dp$warn: abandoned is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_COMPLETED",{transactionId:e})};await l(a,5)}async dp$confirm(e,t){const a=async()=>{t?console.warn("dp$warn: failed is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(a,5)}}var d=a("7ca3"),u=a.n(d);a("7a76");class _ extends o{__parseStatus(e){const t={0:"PENDING",1:"FINISH",3:"FINISH",4:"COMPLETED",5:"FINISH",6:"FAILED"},a=t[e];if(!a)throw new Error("Unexpected state",e);return a}get id(){return[this._data.publisher,this._data.performer,this._data.index].join("::")}get status(){return this.__parseStatus(this._data.state)}get payerId(){return this._data.publisher}get payeeId(){return this._data.performer}get amount(){return parseInt(this._data.amount)}get meta(){return this._data.meta_data}}const p=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,r("warn",["retryHandler"],e.message),"Out of gas"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("invalid transaction: INSUFFICIENT_BALANCE_FOR_TRANSACTION_FEE"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if("invalid transaction: SEQUENCE_NUMBER_TOO_OLD"===e.message)return r("warn",["dp$retry",n,a,e.code],e.message),!0;if("transaction is rejected: InvalidUpdate - Transaction already in mempool"===e.message)return r("warn",["dp$retry",n,a],e.message),!0;if(e.is_move_error){if("1031"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status was deactivated");if("1281"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status has been changed");throw r("warn",["dp$retry",n,"failed",e.code],e.message),e}if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};let m;class h extends i{constructor(){super("blockchain"),m=window.$blockchain}dp$address(){return m.$store.account.address}dp$credit(){return m.$store.wallet.balance.TestCoin}dp$incomeTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}dp$expenseTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.expensesFilter);return e.map((e=>new _(e)))}dp$incomeTxnListToday(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}async dp$request(e,t,a){const n=async()=>{const n=await m.$store.DataProviding.publishDataProvidingTxn({address:e,amount:t,meta:JSON.stringify(a)}),o=n.getTaskId(),i=[o.publisher,o.performer,o.index].join("::");return i};return await p(n,5)}async dp$cancel(e){const t=async()=>{const t=await m.$store.DataProviding.cancelDataProvidingTxn({txnKey:e});console.log("postTxnCancel >>",t)};await p(t,5)}async dp$submit(e,t){const a=async()=>{const a=await m.$store.DataProviding.submitDataProvidingTxn({txnKey:e,abandoned:t});console.log("postTxnComplete >>",a)};await p(a,5)}async dp$confirm(e,t){const a=async()=>{const a=await m.$store.DataProviding.confirmDataProvidingTxn({txnKey:e,failed:t});console.log("postTxnFinish >>",a)};await p(a,5)}}function g(){const e={},t={},a=b.call(this,{dp$incomeTxnList:"dp$incomeTxnDict",dp$expenseTxnList:"dp$expenseTxnDict"}),n=y.call(this,{dp$incomeStatusMapper:e=>e.status,dp$incomeHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}}),o=y.call(this,{dp$expenseStatusMapper:e=>e.status,dp$expenseHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}});e.updateIncomeData=()=>{a.dp$incomeTxnList(),n("dp$incomeTxnList")},e.updateExpenseData=()=>{a.dp$expenseTxnList(),o("dp$expenseTxnList")};const i=f.call(this,"dp$incomeTxnDict"),r=f.call(this,"dp$expenseTxnDict");e.logIncomeStatus=(e,t)=>i(e,t),e.logExpenseStatus=(e,t)=>r(e,t),this.dp$utils=e}function f(e){const t=(t,a)=>this[e][t]&&r(["dp$status",a||"[payment]","=>",this[e][t].status],t);return(a,n)=>{if(a&&this[e]){if(n)for(const e of Object.keys(n))if(n[e]&&a[e])for(const o of n[e])a[e].includes(o)||t(o,e);if(a.PENDING)for(const e of a.PENDING)n&&n.PENDING&&n.PENDING.includes(e)||t(e)}}}function b(e){const t=(e,t)=>this[e]=t,a=(e,a)=>{const n={};for(const t of this[e])n[t.id]=t;t(a,n)};return Object.entries(e).reduce(((e,[t,n])=>({...e,[t]:()=>a(t,n)})),{})}function y(e){return t=>{const a={};for(const[o,i]of Object.entries(e)){const e={};for(const a of this[t]){const t=i(a);e[t]||(e[t]=[]),e[t].push(a.id)}a[o]=e}const n=(e,t)=>this[e]=t;Object.entries(a).forEach((e=>n(...e)))}}u()(h,"incomeFilter",(e=>m.$store.account.account.address().toShortString()===e.performer)),u()(h,"expensesFilter",(e=>m.$store.account.account.address().toShortString()===e.publisher));const v=[c,h];t["a"]={data(){var e;const t=null!==(e=localStorage.getItem("dataPaymentMixin.mode"))&&void 0!==e?e:"amplify";localStorage.setItem("dataPaymentMixin.mode",t);const a=v.reduce(((e,t)=>{const a=new t;return e[a.name]=a,e}),{});return g.apply(this),{dp$mode:t,dp$interfaces:a,dp$incomeTxnDict:{},dp$incomeStatusMapper:{},dp$incomeHashMapper:{},dp$expenseTxnDict:{},dp$expenseStatusMapper:{},dp$expenseHashMapper:{},dp$source:this}},watch:{dp$mode(e){r(["dp$mode",e]),localStorage.setItem("dataPaymentMixin.mode",e)},dp$incomeTxnList(){this.dp$utils.updateIncomeData()},dp$expenseTxnList(){this.dp$utils.updateExpenseData()}},computed:{dp$credit(){return this.dp$interfaces[this.dp$mode].dp$credit()},dp$address(){return this.dp$interfaces[this.dp$mode].dp$address()},dp$incomeTxnList(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnList()},dp$expenseTxnList(){return this.dp$interfaces[this.dp$mode].dp$expenseTxnList()},dp$incomeTxnListToday(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnListToday()}},methods:{async dp$request(e,t,a){r(["dp$post","request","waiting..."]);const n=await this.dp$interfaces[this.dp$mode].dp$request(e,t,a);return r(["dp$post","request","done"],n),n},async dp$cancel(e){r(["dp$post","cancel","waiting..."],e);const t=await this.dp$interfaces[this.dp$mode].dp$cancel(e);return r(["dp$post","cancel","done"],e),t},async dp$submit(e,t=!1){const a=t?"abandoned":"provided";r(["dp$post","submit",a,"waiting..."],e);const n=await this.dp$interfaces[this.dp$mode].dp$submit(e,t);return r(["dp$post","submit",a,"done"],e),n},async dp$confirm(e,t=!1){const a=t?"failed":"succeeded";r(["dp$post","confirm",a,"waiting..."],e);try{const n=await this.dp$interfaces[this.dp$mode].dp$confirm(e,t);return r(["dp$post","confirm",a,"done"],e),n}catch(o){var n;if(console.warn("Error when confirming transaction",e,o),null!==(n=o.message)&&void 0!==n&&n.includes("payee does not exist")){const t=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]");t.push(e),localStorage.setItem("_transactions_missing_payee_",JSON.stringify(t))}}},__dp$notify__(){const e="amplify"===this.dp$mode?"blockchain":"amplify";this.$q.notify({group:"dp$mode_warning",message:`Current Data Payment Mode: "${this.dp$mode}"`,type:"warning",position:"bottom",timeout:0,actions:[{noCaps:!0,color:"black",label:`Switch to ${e}`,handler:()=>{this.dp$mode=e,location.reload(),a("d310").isElectron()&&a("1b85").ipcRenderer.send("reload-webtorrent-window")}},{noCaps:!0,color:"black",label:"Close"}]})}},created(){this.dp$utils.updateIncomeData(),this.dp$utils.updateExpenseData()}}},"0c2f":function(e,t,a){},"0c70":function(e,t,a){},"0c7a":function(e,t,a){},"0cdb":function(e,t,a){"use strict";a.r(t),a.d(t,"notifyGeneralUpdate",(function(){return n})),a.d(t,"notifyMessage",(function(){return o})),a.d(t,"transfer",(function(){return i})),a.d(t,"notifyCreditChange",(function(){return r})),a.d(t,"generalCommand",(function(){return s})),a.d(t,"createUser",(function(){return l})),a.d(t,"updateUser",(function(){return c})),a.d(t,"deleteUser",(function(){return d})),a.d(t,"createInvitation",(function(){return u})),a.d(t,"updateInvitation",(function(){return _})),a.d(t,"deleteInvitation",(function(){return p})),a.d(t,"createMessageTimer",(function(){return m})),a.d(t,"updateMessageTimer",(function(){return h})),a.d(t,"deleteMessageTimer",(function(){return g})),a.d(t,"createTransaction",(function(){return f})),a.d(t,"updateTransaction",(function(){return b})),a.d(t,"deleteTransaction",(function(){return y})),a.d(t,"createTask",(function(){return v})),a.d(t,"updateTask",(function(){return w})),a.d(t,"deleteTask",(function(){return k})),a.d(t,"createProvidentFund",(function(){return S})),a.d(t,"updateProvidentFund",(function(){return C})),a.d(t,"deleteProvidentFund",(function(){return x}));const n="\n mutation NotifyGeneralUpdate(\n $id: String!\n $channel: String!\n $data: String!\n ) {\n notifyGeneralUpdate(id: $id, channel: $channel, data: $data) {\n id\n channel\n data\n }\n }\n",o="\n mutation NotifyMessage($channel: String!, $data: String!) {\n notifyMessage(channel: $channel, data: $data) {\n channel\n data\n }\n }\n",i="\n mutation Transfer(\n $receiver: String!\n $amount: Int!\n $category: Category!\n $meta: String\n ) {\n transfer(\n receiver: $receiver\n amount: $amount\n category: $category\n meta: $meta\n )\n }\n",r="\n mutation NotifyCreditChange($ownerId: String!, $amount: Int!) {\n notifyCreditChange(ownerId: $ownerId, amount: $amount) {\n ownerId\n amount\n }\n }\n",s="\n mutation GeneralCommand($input: String) {\n generalCommand(input: $input)\n }\n",l="\n mutation CreateUser(\n $input: CreateUserInput!\n $condition: ModelUserConditionInput\n ) {\n createUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",c="\n mutation UpdateUser(\n $input: UpdateUserInput!\n $condition: ModelUserConditionInput\n ) {\n updateUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n mutation DeleteUser(\n $input: DeleteUserInput!\n $condition: ModelUserConditionInput\n ) {\n deleteUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n mutation CreateInvitation(\n $input: CreateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n createInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",_="\n mutation UpdateInvitation(\n $input: UpdateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n updateInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n mutation DeleteInvitation(\n $input: DeleteInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n deleteInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n mutation CreateMessageTimer(\n $input: CreateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n createMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",h="\n mutation UpdateMessageTimer(\n $input: UpdateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n updateMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n mutation DeleteMessageTimer(\n $input: DeleteMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n deleteMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n mutation CreateTransaction(\n $input: CreateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n createTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",b="\n mutation UpdateTransaction(\n $input: UpdateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n updateTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n mutation DeleteTransaction(\n $input: DeleteTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n deleteTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n mutation CreateTask(\n $input: CreateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n createTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n mutation UpdateTask(\n $input: UpdateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n updateTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n mutation DeleteTask(\n $input: DeleteTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n deleteTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n mutation CreateProvidentFund(\n $input: CreateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n createProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",C="\n mutation UpdateProvidentFund(\n $input: UpdateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n updateProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n mutation DeleteProvidentFund(\n $input: DeleteProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n deleteProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},"0d10":function(e,t,a){},"0f0c":function(e,t,a){"use strict";const n=a("bc7b"),o=a("d6fe"),i=e=>{{const t="alphabiz"===process.env.REPO?o.resolve(process.cwd(),"public"):process.resourcesPath,a="version.json",i=n.readFileSync(o.resolve(t,a)),r=JSON.parse(i);return r[e]}};t["a"]=i},"0f74":function(e,t,a){},1:function(e,t){},10:function(e,t){},1081:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"10e1":function(e,t,a){},11:function(e,t){},"111a":function(e){e.exports=JSON.parse('{"lib_index":"Ev","lib_edit":"Yayınla","lib_publish":"Yayınla","lib_explore":"Keşfetmek","lib_following":"Takip etme","lib_favorite":"Yerel Favoriler","lib_local_favorites":"Yerel Favoriler","lib_channel":"Kanal","lib_submit":"Göndermek","lib_from_network":"Ağdan merkezi olmayan veritabanı kullanma","welcome_to_lib":"${displayName} Medya Kitaplığına Hoş Geldiniz","register_or_login":"Kayıt Giriş","lib_recommend":"Tavsiye etmek","lib_recommend_desc":"${displayName} Kitaplığına hoş geldiniz! Bu kitaplık, ağdan merkezi olmayan bir veritabanı kullanır. Kullanmaya başlamak için bazı kanalları takip etmeniz gerekiyor.","follow_any_channel_to_continue":"Devam etmek için herhangi bir kanalı takip edin","follow_channels_and_continue":"{0} kanallarını takip edin ve devam edin","show_more_for_me":"Benim için daha fazlasını göster","no_more_recommend":"Daha fazla tavsiye yok","key":"Anahtar","create_key":"Anahtar oluştur","save_key":"Anahtarı kaydet","save_key_file":"Anahtarınızı dosya olarak kaydetmek istiyor musunuz?","import_key":"Anahtarı içe aktar","import":"İçe aktarmak","invalid_key":"geçersiz anahtar","back_to_top":"Başa dönüş","search_for_channel":"kanal kimliği ara","search_channel_no_result":"{0} kimliğine sahip kanal bulunamıyor","please_input_channel_id":"Lütfen kanal kimliğini girin","welcome_help_text":"Bu merkezi olmayan bir medya kitaplığıdır. ihtiyacın var\\n Bu veritabanı için bir hesap oluşturmak için. Yapacağız\\n sizin için otomatik olarak kişisel bir anahtar oluşturun.\\n Zaten bir anahtarınız varsa, içe aktarabilirsiniz.\\n burada","welcome_key_text":"Oturum açtıktan sonra, lütfen [ANAHTARI KAYDET] düğmesine tıklayın\\n Özel anahtarınızı kaydetmek için sağ alt köşedeki\\n Anahtarınızı kaybederseniz, tekrar giriş yapamayabilirsiniz.","redirect_to_recommend":"Görünüşe göre herhangi bir kanalı takip etmemişsiniz. [Keşfet] sayfasına yönlendiriliyor.","channel":"Kanal","follow":"Takip etmek","unfollow":"takibi bırak","following":"Takip etme","share":"Paylaşmak","unfollow_confirm":"Bu kanalı takip etmeyi bıraktığınızdan emin misiniz? Bu kanalın zaman tünelinizdeki tüm gönderileri kaldırılacak.","follow_failed_hint":"İşlem hala arka planda beklemede. İşlem uzun süre uygulanmadıysa lütfen uygulamayı yeniden başlatıp tekrar deneyin.","block":"Engellemek","unblock":"engeli kaldırmak","blocked":"Engellendi","block_channel":"Bu kanalı engelle","block_channel_confirm":"Engellenen kanal, onu zaman çizelgenizden kaldıracaktır. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","block_creator":"Bu kanalın yaratıcısını engelle","unblock_creator":"Bu kanalı oluşturan kişinin engellemesini kaldırın","block_creator_confirm":"Blok oluşturucu, bu oluşturucu tarafından oluşturulan tüm kanalları zaman çizelgenizden kaldıracak. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","share_url_copied":"Paylaşım URL\'si panonuza kopyalandı","follow_time":"Zamanı takip et","update_time":"Güncelleme zamanı","search":"Aramak","type":"Tip","added":"Katma","click_to_task":"Göreve gitmek için tıklayın","lib_already_added":"Bu videoyu zaten eklediniz","description":"Tanım","poster":"Afiş","channel_poster":"kanal afişi","preview":"Ön izleme","creator":"Yaratıcı","creator_detail":"Yaratıcı ayrıntısı","loading_creator":"Yaratıcı bilgisi yükleniyor","wait_for_creator_loaded":"Lütfen içerik oluşturucu bilgilerinin yüklenmesini bekleyin.","follower":"takipçi","followers":"Takipçiler","follower_list":"takipçi listesi","user":"kullanıcı","channel_title":"Kanal başlığı","channel_id":"Kanal Kimliği","post_title":"Yazı başlığı","post_id":"Posta kimliği","import_data_from_excel":"Excel\'den veri içe aktarma","set_excel_keys":"excel anahtarlarını ayarla","excel_import_succeded":"Excel içe aktarma başarılı oldu","excel_import_success_msg":"{0} satırları eklenmeye hazır, {1} geçersiz ve yinelenen {2} öğeler yoksayılıyor","cannot_find_channel":"kanal bulunamıyor","cannot_find_posts":"gönderiler bulunamıyor","add_channel":"kanal ekle","add_post":"Gönderi ekle","edit_channel":"Kanalı düzenle","channel_setting":"kanal ayarı","edit_post":"Gönderiyi düzenle","edit_posts":"Gönderileri düzenle","channel_detail":"kanal detayı","remove":"Kaldırmak","remove_channel":"Kanalı kaldır","remove_channel_confirm":"Bu yayını kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","remove_post":"Gönderiyi kaldır","remove_post_confirm":"Bu kanalı kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","preview_mode":"Önizleme modu","preview_mode_desc":"Bu, kanalınızın bir önizlemesidir. Tüm film oranları burada gösterilmektedir.","edit_user_profile":"kullanıcı profilini düzenle","name":"Takma ad","avatar":"avatarı","no_following":"Takip edilen kanal yok. Gitmek için tıklayın","no_recommend":"Önerilen kanal yok. Gitmek için tıklayın","first_recomment_msg":"Uygulama ilk kez başlatılıyorsa biraz zaman alabilir.","invalid_image":"geçersiz resim","image_not_reachable":"Bu resim url\'sine ulaşılamıyor.","channel_not_found":"kanal bulunamadı","cannot_get_channel_info":"Kanal bilgisi alınamıyor. Bu kanal, yaratıcısı tarafından kaldırılabilir ve artık kullanılamayabilir.","validate_error":"Doğrulama hatası","validate_user_name_no_space":"Kullanıcı adı boşluk içermemelidir","validate_url_no_space":"URL boşluk içermemelidir","validate_user_name_length":"Kullanıcı adının uzunluğu {0} ile {1} arasında olmalıdır","validate_user_desc_length":"Kullanıcı açıklaması {0} karakterden fazla olmamalıdır","validate_user_avatar_url":"Kullanıcı avatarı, 2048 karakterden az bir url olmalıdır","validate_channel_title_length":"Kanal başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_channel_desc_length":"Kanal açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_channel_image_url":"Kanal önizlemesi, 2048 karakterden az bir URL olmalıdır","validate_post_title_length":"Gönderi başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_post_desc_length":"Gönderi açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_post_image_url":"Poster, 2048 karakterden az bir url olmalıdır","validate_post_url":"Geçersiz ${displayName} URL","validate_post_url_length":"${displayName} URL, 2048 karakterden uzun olmamalıdır","film_rate":"film hızı","set_film_rate":"Film hızını ayarla","select_a_rate_before_enter":"Ortam kitaplığına girmeden önce bir film hızı seçmeniz gerekir.","library_available_rate":"Kitaplık kullanılabilir film oranı","rate_g":"G – Genel İzleyiciler","rate_g_desc":"Her yaştan kabul edildi. Çocuklar tarafından görüntülendiği için ebeveynleri rahatsız edecek hiçbir şey yok.","rate_pg":"PG – Ebeveyn Rehberliği Önerilir","rate_pg_desc":"Bazı materyaller çocuklar için uygun olmayabilir. Ebeveynler \\"ebeveyn rehberliği\\" vermeye çağırdı. Ebeveynlerin küçük çocukları için sevmeyebilecekleri bazı materyaller içerebilir.","rate_pg_13":"PG-13 – Ebeveynler Kesinlikle Dikkatli","rate_pg_13_desc":"Bazı materyaller 13 yaşından küçük çocuklar için uygun olmayabilir. Ebeveynlerin dikkatli olmaları önerilir. Bazı materyaller ergenlik öncesi çocuklar için uygun olmayabilir.","rate_r":"R – Kısıtlı","rate_r_desc":"17 yaş altı, eşlik eden ebeveyn veya yetişkin vasi gerektirir. Bazı yetişkin materyalleri içerir. Ebeveynlerin, küçük çocuklarını yanlarına almadan önce film hakkında daha fazla bilgi edinmeleri isteniyor.","rate_nc_17":"NC-17 – Yalnızca Yetişkinler","rate_nc_17_desc":"17 Yaş ve Altı Kimse Kabul Edilmez. Açıkça yetişkin. Çocuklar kabul edilmemektedir.","set_as_private":"Özel olarak ayarla","hide_in_explore":"Keşfet sayfasında bu kanalı gizle","hidden":"Gizlenmiş","select_a_rate":"Lütfen bir film oranı seçin","select_from_tasks":"Görevler arasından seçim yapın","import_from_magnet":"Mıknatıstan içe aktar:?...","input_magnet_url":"Giriş mıknatısı:? url","task_title":"Görev başlığı","set_title":"Başlığı ayarla","add_to_local_favorites":"Yerel favorilere ekle","remove_from_local_favorites":"Yerel favorilerden kaldır","removed_favorite":"favori kaldırıldı","import_or_export_favorites":"Sık Kullanılanları İçe/Dışa Aktar","export_local_favorites":"Yerel sık kullanılanları yedek olarak dışa aktarın","import_favorites_file":"Sık kullanılanlar dosyasını içe aktar","not_a_favorite_file":"Bu dosya favori bir yedekleme dosyası değil","connection_status":"Bağlantı durumu","gun_server_list":"Önbellek Düğümleri","custom_nodes":"Özel önbellek düğümleri","custom_nodes_hint":"Uygulama yeniden başlatıldıktan sonra özel önbellek düğümleri uygulanacak","wait_for_reboot":"Yeniden başlatma bekleniyor...({seconds}s)","reboot_now":"Şimdi yeniden başlat","reboot_later":"Daha sonra yeniden başlat","peer_list":"Doğrudan Düğümler","server":"Düğüm URL\'si","peer":"Akran","peer_id":"düğüm kimliği","connection":"Bağlantı","data_source":"Veri kaynağı","sync":"senkronize et","syncing":"senkronizasyon","sync_completed":"Senkronizasyon tamamlandı","got_all_post":"Zaten tüm gönderilere sahipsin","placeholder_channel_title":"Kanal Adınız","placeholder_channel_desc":"Bu kanal hakkında açıklama","placeholder_post_title":"Film Adı (Yıl)","placeholder_post_desc":"Bu film hakkında açıklama","private_channel":"Özel kanal","creator_blocked":"Oluşturan engellendi","go_to_library":"Kütüphaneye git?","go_to_library_channel_msg":"{0} kütüphane kanalına gitmek ister misiniz?","magnet_does_not_have_name":"Bu mıknatıs:? url\'nin bir adı yok, önce bir gönderi başlığı eklemeniz gerekiyor.","no_available_post":"Yayın yok","following_channel_no_post":"Takip ettiğiniz kanalların hiçbirinde yayın yok. Bu, ağ hatasından kaynaklanabilir. Halihazırda bazı kanalları takip ettiyseniz, gönderiler daha sonra yüklenebilir.","share_to_library":"Kitaplıkta paylaş","quick_start":"Hızlı başlangıç","quick_start_desc":"Bir görev veya dosya ile gönderi oluşturmaya başlayın","select_file":"Dosya Seç...","select_folder":"Dosya Seç...","post_options":"Gönderi seçenekleri","channel_options":"kanal seçenekleri","create_new_channel":"Yeni kanal oluştur","use_existed_channel":"Mevcut kanalı kullan","select_existed_channel":"Mevcut kanalı seçin","uploaded_by":"{title}, {name} tarafından yüklendi","created_by":"{title}, {name} tarafından oluşturuldu","creating_new_channel":"Yeni kanal oluşturuluyor...","created_new_channel":"Yeni kanal oluşturuldu","creating_new_post":"Yeni gönderi oluşturuluyor...","created_new_post":"Yeni gönderi oluşturuldu","create_new_post":"Yeni gönderi oluştur","quick_start_timeout":"{0} zaman aşımı. Bunun nedeni ağ hatası olabilir. Lütfen daha sonra tekrar deneyiniz.","file_too_large":"Dosya çok büyük","file_too_large_msg":"Bu dosya 4GB\'tan ({size}) daha büyük ve hazırlanması uzun zaman alabilir. Devam edeceğinizden emin misiniz?","resolving_folder_files":"Klasör dosyaları çözümleniyor...","folder_too_large":"Klasör çok büyük","folder_too_large_msg":"Bu klasördeki dosyalar 4GB\'tan büyüktür (toplam {size}) ve hazırlanma görevi uzun sürebilir. Yükleyeceğinizden emin misiniz?","creating_new_task":"Yeni görev oluşturuluyor...","cannot_create_task":"Görev oluşturulamıyor","cannot_create_task_msg":"Bu bazı hatalardan kaynaklanabilir. Görev doğru oluşturulduysa görev listesini daha sonra kontrol edebilirsiniz.","cannot_get_task_name":"Görev adı alınamıyor. Önce bir tane girmeniz gerekiyor.","remove_old_task":"Eski görevi kaldır","remove_old_task_desc":"Web modu aynı anda yalnızca bir görev oluşturabilir. Eski görevi kaldırmak istiyor musunuz?","subtitle_list":"Altyazı listesi","optional":"isteğe bağlı","with_subtitle":"{language} altyazılı","maximumSubtitleNum_limit":"Altyazı sayısı maksimuma ulaştı","add_subtitle_url":"Alt yazı indirme linki ekle","cannot_add_subtitle":"Altyazı eklenemedi","cannot_add_subtitle_msg":"Altyazı dili seçilmemiş veya geçersiz indirme bağlantısı.","support_subtitle_type":"Yalnızca srt ve vtt biçimindeki altyazılar desteklenir.","recommend_opensubtitles":"www.opensubtitles.org adresindeki altyazı indirme bağlantısını veya kimliğini kullanmanız önerilir.","take_down":"Devirmek","serious_violation":"Ciddi İhlal","copyright_disputes":"Telif Hakkı Anlaşmazlıkları","adults_only":"Sadece yetişkinler","takedown_reason":"Yayından kaldırma nedeni","takedown_mode":"Yayından kaldırma modu","admins":"Yöneticiler","takedown_user":"Bu yaratıcıyı yayından kaldır","takedown_channel":"Bu kanalı yayından kaldır","takedown_post":"Bu gönderiyi yayından kaldır","select_takedown_reason":"Yayından kaldırma nedenini seçin","takedown_invalid_reason":"Geçersiz yayından kaldırma nedeni","takedown_invalid_user_id":"Geçersiz kullanıcı kimliği. Kimlik 87 karakter içermelidir","takedown_invalid_channel_id":"Geçersiz kanal kimliği. Kimlik 20 karakter içermelidir","takedown_invalid_post_id":"Geçersiz gönderi kimliği. Kimlik 20 karakter içermelidir","takedown_management":"Yönetimi devirmek","users":"Kullanıcılar","channels":"Kanallar","posts":"Gönderiler","you":"Sen","preset":"ön ayar","admin":"yönetici","committee":"Kurul","about_takedown_mode":"Yayından kaldırma modu hakkında:\\nÖn Ayar: Github deposunda yapılandırılmıştır. Hepsi kütüphaneden kaldırılacak.\\nYönetici: Yöneticilerin oy verdiği herhangi biri kaldırılacaktır.\\nKomite: Adminlerin en az yarısının oyları kaldırılacaktır.","cannot_edit_preset":"Önceden ayarlanmış bir satır olduğu için bu satırı düzenleyemezsiniz.","cannot_edit_not_vote":"Oy vermediğiniz için bu satırı düzenleyemezsiniz.","remove_vote":"Oyunuzu kaldırın","post_preload_failed":"Bu gönderi önceden yüklenemedi. İndirme bağlantısı güncel olmayabilir, bu nedenle bu gönderi hemen oynatılamaz.","about_cache_node":"Önbellek düğümü hakkında","edit_cache_node":"Önbellek düğümünü düzenle","create_cache_node":"Önbellek düğümü oluştur","about_cache_node_desc":"${displayName}, silah sunucusunu önbellek düğümü olarak kullanır. Özel düğümleri önceden düzenleyebilirsiniz","learn_how_to_deploy_gun":"Kendi silah sunucunuzu nasıl konuşlandıracağınızı öğrenin","repeat_add":"Görev eklendi, lütfen tekrar eklemeyin.","upload":"Yüklemek","download":"İndirmek","delete":"Silmek","delete_task":"Görevi sil","delete_confirm_message":"Bu görev silinsin mi? bu geri alınamaz","also_delete_files":"Dosyaları da sil","default_delete_files":"Görevi kaldırdıktan sonra indirilen dosyaları varsayılan olarak sil","not_now":"Şimdi değil","delete_autoupload_confirm":"Bu görev, otomatik yükleme dizinine koyduğunuz dosyayı içerir. Bu görevi sil, dosyayı da siler.","delete_anyway":"Yine de sil","upload_too_many_files":"Çok fazla dosya yükle","ask_if_unlimit_upload_amount":"Otomatik yükleme dizini çok fazla dosya içeriyor. Yükleme miktarı sınırlamasını devre dışı bırakmak istiyor musunuz? *Bu, performans sorununa neden olabilir","disable_limitation":"Sınırlamayı devre dışı bırak","not_length":"Çoklu dosya işlemi şu anda desteklenmiyor, lütfen işbirliği yapın","download_torrent":"Dosyayı indir","upload_torrent":"Dosya yükleme","files":"Dosyalar","file":"Dosya","folder":"Dosya","start_all":"Hepsini başlat","pause_all":"Hepsini durdur","remove_all":"Hepsini kaldır","upload_all":"hepsini yükle","clear_history":"Geçmişi temizle","pause_all_finish_payments":"Bu, tüm ödemeleri tamamlayacaktır.","accelerating":"hızlanma","link_task":"Bağlantı görevi","torrent_task":"Dosya görevi","ok":"TAMAM","cancel":"İptal etmek","download_directory_position":"Dizin konumunu indir","torrent_file":"görev dosyası","magnetic_link_incorrect":"Bağlantı formatı yanlış","delete_fail":"Sil başarısız","pause":"Duraklat","paused":"duraklatıldı","stop_torrent":"Durmak","seed":"Tohum","resume":"Sürdürmek","downloading":"indiriliyor","downloaded":"İndirildi","uploading":"yükleniyor","auto_uploading":"otomatik yükleme","uploaded":"yüklendi","pending":"Diğer görevler için bekleniyor","verifying":"Doğrulanıyor","waiting_for_verify":"doğrulama bekleniyor","seeding":"tohumlama","completed":"Tamamlanmış","status":"Durum","task_name":"Görev adı","size":"Boyut","progress":"İlerlemek","sort":"Düzenlemek","ascending":"artan","descending":"Azalan","file_loading":"Dosya yükleniyor...","loading":"Yükleniyor","unknown_status":"Bilinmeyen","play_while_downloading":"Oynamak...","upload_or_play":"Yükle / Oynat","play":"Oynamak","ask_if_upload_file":"Dosya yükleme?","ask_if_upload_or_play":"Dosya yükle veya oynat?","torrent_error":"Görev eklerken hata oluştu:","no_peers":"{0} defadan fazla yeniden deneyin ve uygun eş yok","torrent_exists":"Görev zaten bulunuyor.","show_origin_torrent":"Orijinal görev dosyasını veya url\'yi alın","show_directory":"Bu torrentin açık dizini","task_num":"Görevler","total_upload_speed":"Yükleme hızı","total_download_speed":"İndirme hızı","path_missing":"Hata: torrent yolu bulunamıyor","origin_not_found":"Kaynak görev bilgisi bulunamıyor.","text_copied":"Magnum url panonuza kopyalandı","copy_magnet_uri":"Kopya mıknatıs:? URI","copy_download_uri":"İndirme URI\'sini kopyala","copy_share_uri":"Paylaşım URI\'sini kopyala","uri_copied":"URI başarıyla panonuza kopyalandı","uri_copy_failed":"uri kopyalanamadı","more":"Daha fazla...","toggle_list_mode":"Liste modunu değiştir","comment":"Yorum","operations":"Operasyonlar","open_directory":"Açık sözlük","no_downloading_task":"İndirme görevi yok","remove_all_downloading_tasks":"Tüm indirme görevleri kaldırılsın mı?","remove_all_upload_tasks":"Tüm yükleme görevleri kaldırılsın mı?","remove_autoupload_files":"Otomatik yükleme dosyalarını kaldır","remove_all_history":"Tüm geçmiş kaldırılsın mı?","remaining":"Geriye kalan","created_time":"Oluşturma zamanı","used_time":"Kullanılan zaman","completed_time":"Tamamlanan süre","yesterday":"Dün","before_yesterday":"{empty}","earlier":"Daha erken","miss_file":"Bazı dosyalar eksik","delete_miss_file_task":"{0} içinde eksik fom dosyaları var.","common_peer":"ortak akran","ab_peer":"${displayName} emsal","ab_peer_verified":"Doğrulanmış ${displayName} emsal","ab_peer_available":"${displayName} emsal(ler) mevcut","alphabiz_accelerating":"${displayName} hızlanıyor","income":"Gelir","income_info":"Gelir(bugün/toplam)","total_income_info":"Gelir: {0}(bugün) / {1}(toplam)","login_to_see_income":"Gelir istatistiklerini görmek için giriş yapın","credit_cost":"Kredi maliyetleri","downloaded_by_payment":"Payments tarafından indirildi","file_not_found":"Bu dosya yerelde bulunamıyor","no_task":"Sorma","no_matched_task":"Eşleşen görev yok","space_not_enough":"Disk alanı yeterli değil","need_more_space":"{0} daha fazla alana ihtiyaç var ancak mevcut diskte {1} boş yer var ({2} ayrılmış). Görevler duraklatıldı. Kitaplık önyüklemesi devre dışı bırakıldı. [Ayarlar - Gelişmiş]\'te yeniden etkinleştirebilirsiniz.","seeders":"mibzerler","last_update":"Son Güncelleme","connecting":"Bağlanıyor","connected":"bağlı","request_timed_out":"İstek zaman aşımına uğradı","connection_failed":"Bağlantı başarısız oldu","invalid_download_url":"Geçersiz indirme URL\'si","download_link":"İndirme: {link","empty_files":"Dizinde dosya yok","duplicate_task":"Yinelenen görev","duplicate_tracker":"Yinelenen izleyici","this_task_not_ready":"Bu görev hazır değil. Bu görevi duraklatmak onu doğrudan kaldıracaktır.","some_task_not_ready":"Bazı görevler hazır değil. Bu görevleri duraklatmak onları doğrudan kaldıracaktır.","failed_to_delete_files":"dosyalar silinemedi","failed_to_delete_files_desc":"Görevin bazı dosyaları silinemedi. Bunları manuel olarak silmeniz gerekebilir","unknown_error":"Bilinmeyen hata: {0}","more_files_are_not_shown":"({0} daha fazla dosya performans nedeniyle gösterilmez)","no_available_file":"Kullanılabilir dosya yok. Lütfen görevin hazır olmasını bekleyin.","service_worker_error":"Oynamak için ServiceWorker yüklenemiyor. Tarayıcınız bu özelliği desteklemiyor olabilir veya ServiceWorker etkinleştirilmemiş olabilir. Bu sayfayı yeniden yükleyip tekrar denemeniz gerekebilir.","add_task_first":"Önce görev eklemeniz gerekir.","player_task_time":"Oyuncunun oyuna hazırlanması çok fazla saniye alıyor. Görevle ilgili bir sorun olabilir.","web_mode_hint":"${displayName} web modu yalnızca WebRTC eşlerini destekler. En iyi deneyim için lütfen ${displayName} Masaüstü Uygulamasını indirin.","web_mode_task_hint":"Bir görev eklemek için aşağıdaki düğmeleri tıklayın. Aynı anda yalnızca bir görev ekleyebilirsiniz.","save_to_local":"Yerele kaydet","save_as_zip":"ZIP olarak kaydet","creating_save_file":"Kayıt dosyası oluşturuluyor...","upload_as_one_directory":"Tek bir dizin olarak yükle","upload_as_single_files":"Tek dosya olarak yükle","web_mode_upload_single":"Web modunda yalnızca tek bir dosya yükleyebilirsiniz.","download_success":"Başarıyla indir","download_fail":"Yükleme başarısız","wait_for_downloaded_to_share":"Lütfen paylaşmadan önce görevin indirilmesini bekleyin.","download_with_cellular":"Görevleri hücresel kullanarak indir","download_with_cellular_desc":"Hücresel ağ kullanıyorsunuz. Hücresel olarak indirme görevleri, operatörünüz tarafından ek ücretler alabilir.","download_with_cellular_confirm":"Hâlâ hücresel olarak indiriliyor","language":"Dil","appearance":"Dış görünüş","darkModeSystem":"sistem","darkModeLight":"Işık","darkModeDark":"Karanlık","basic_setting":"Temel","hideMenu":"Uygulama Menüsünü Gizle (Yalnızca Windows ve Linux)","autoHide":"Pencereyi Otomatik Gizle","autoStart":"Girişte aç","restore":"Çıkışta pencerenin boyutunu ve konumunu koruyun","autoStartUnfinished":"Tüm tamamlanmamış görevleri otomatik olarak devam ettir","default_download_path":"Varsayılan yol","download_directory":"Dizini İndir","upload_directory":"Dizini Yükle","enable_auto_upload":"Otomatik yüklemeyi etkinleştir","unlimit_upload_amount":"Sınırsız yükleme miktarı","unlimit_upload_warning":"Büyük miktarda dosya yüklemeye izin ver. Bu performans sorununa neden olabilir","start":"Başlatmak","transport_setting":"Bulaşma","upload_limit":"yükleme sınırı","download_limit":"İndirme sınırı","payed_user_share_rate":"Ücretli kullanıcı paylaşım oranı","unlimited":"Sınırsız","limit_input_error":"Limit numarası pozitif olmalıdır","BT_setting":"Görev Ayarları","saveLinkSeed":"Bağlantıyı görev dosyası olarak kaydet","autoDownload":"Bağlantıyı ve içeriği otomatik olarak indir","continuousSeeding":"Manuel olarak durdurana kadar tohumlamaya devam edin","seedSharingRate":"Tohum Oranı","seedTime":"Tohum Süresi (dakika)","task_manage":"Görev yönetimi","maximumDownloadNum":"Maksimum aktif görevler","maximumConnectionsNum":"Sunucu başına maksimum bağlantı","range_error":"Aralık, {0} ile {1} arasında olmalıdır","random":"rastgele","breakpointContinuation":"Devam etmek","automaticSkip":"Görev ekledikten sonra indirmeyi otomatik olarak göster","afterNotification":"İndirme tamamlandıktan sonra bildirim","deleteConfirm":"Görevi silmeden önce onay gerekmez","submit":"Kaydet ve Uygula","discard":"At","reset":"Sıfırla","reset_all_settings":"Bütün ayarları sıfırla?","preferences_resetted":"Tercihler sıfırlandı","traditional_chinese":"Geleneksel çince","japanese":"Japonca","english":"İngilizce","chinese":"Basitleştirilmiş Çince","advancedSettings":"Gelişmiş","autoUpdate":"Otomatik güncelleme","autoCheckUpdate":"Güncellemeyi otomatik olarak kontrol et","proxy":"vekil","useProxyService":"Proxy\'yi Etkinleştir","trackerService":"Takip Sunucuları","recommendUse":"Tavsiye edilen","autoUpdateTrackerServiceList":"İzleyici listesini her gün otomatik olarak güncelleyin","manualUpdateTracker":"Elle güncelleme","manualUpdateSuccess":"İzleyici sunucularını başarıyla güncelleyin","manualUpdateFail":"Şu kaynaktan güncelleme başarısız oldu:","listenPort":"Bağlantı Noktalarını Dinle","BTlistenPort":"Veri İletim Portu","DHTlistenPort":"Dağıtılmış Karma Bağlantı Noktası","protocols":"Uyumlu Protokoller","setDefaultClientForFollowingProtocols":"Aşağıdaki protokoller için varsayılan istemci olarak ayarla","magnetUrl":"Mıknatıs","video_file":"Video dosyası","audio_file":"Ses dosyası","security":"Güvenlik","impersonateUserAgent":"Sahte Kullanıcı Aracısı","RPCauthorizationkey":"RPC Sırrı","viewDocument":"RPC Gizli Kılavuzunu Görüntüle","developer":"Geliştirici","applicationLogPath":"Uygulama günlüğü yolu","downloadSessionPath":"Oturum yolunu indir","resetDownloadSessionRecord":"İndirme oturumunu sıfırla","restoreInitialSettings":"Fabrika ayarları","preferences_set_successfully":"Tercihleri ​​başarıyla kaydedin!","preferences_set_fail":"Kaydetme tercihleri ​​başarısız!","change_not_save":"Değişiklikler kaydedilmedi","discard_all_changes":"Tüm değişiklikler silinsin ve çıkılsın mı?","stay_in_page":"sayfada kal","disk_usage":"Disk kullanımı","pause_if_less_space":"Alan (MB)\'den azsa duraklatın ve bildirin","default_video_player":"varsayılan video oynatıcı","video_cache_time":"Akış oynatma önbelleği","minutes":"dakika","system_default":"Sistem varsayılanı","media_player":"Medya oynatıcı","library_film_rate":"Kullanılabilir film hızı","library_show_explore":"[Keşfet] sayfasını göster","library_setting":"Kitaplık ayarı","library_sync_setting":"Kitaplık senkronizasyon ayarı","keychain_sync_status":"Anahtarlık senkronizasyon durumu","sync_with_aws":"Anahtar Zincirini Amazon Web Services ile Senkronize Etme","backup_to_local":"Yerel dosyaya yedekle","enable_sync_with_aws":"AWS ile senkronizasyonu etkinleştirin","disable_sync_with_aws":"AWS ile senkronizasyonu devre dışı bırakın","disable_sync_with_aws_desc":"Bu, sunucuda kayıtlı anahtarı kaldıracaktır. Lütfen anahtarınızı zaten dışa aktardığınızdan emin olun.","input_independent_password":"Bağımsız parola girin","change_independent_password":"Bağımsız şifreyi değiştir","password_error":"Şifre hatası","password_invalid":"Şifre geçersiz","key_existed":"Anahtar mevcuttu","key_not_found":"Anahtar bulunamadı","library_recommend":"Kitaplık tavsiyesi","show_all_channels":"Kitaplık tavsiye sayfasındaki tüm kanalları göster","not_logged_in":"Giriş yapmadınız","login_to_continue":"Devam etmek için giriş yapın","mnemonic_code":"Anımsatıcı kod","wordlist":"Kelime listesi","restore_code":"Koddan geri yükle","generate_code":"Kodunu oluşturun","export_mnemonic_code":"Anımsatıcı kodu dışa aktar","import_mnemonic_code":"Anımsatıcı kodu içe aktar","print":"Yazdır","save_as_txt":"txt olarak kaydet","save_as_pdf":"pdf olarak kaydet","from_file":"Dosyadan","not_valid_mnemonic_code":"Bu geçerli bir anımsatıcı kod değil","cannot_parse_code_as_key":"Bu anımsatıcı kod kitaplık anahtarı olarak ayrıştırılamıyor","import_key_hint":"Bu anahtarı alacağınızdan emin misiniz? Bu, kütüphanedeki eski anahtarınızı kurtaracaktır.","import_key_confirm":"Evet, içe aktarın.","library_preload":"Görevleri kitaplıktan önceden yükle","show_preload":"Ön yükleme görevlerini göster","set_download":"İndirme dizinini ayarla","set_download_desc":"macOS App Store sürümü için, varsayılan indirme dizini Uygulamanın korumalı alanındadır ve uygulama kaldırıldıktan sonra silinecektir. İndirme dosyalarınızı saklamak istiyorsanız, manuel olarak farklı bir indirme dizini seçmeniz gerekir.","home":"Ev","home_caption":"İndirme/Yükleme ve Medya Dosyaları","library":"Kütüphane","library_caption":"Medya kaynaklarını keşfedin","player":"oyuncu","player_caption":"Medya oynatıcı","credits":"Kredi","credits_caption":"Hesap Bakiyesini Kontrol Edin","account":"Hesap","account_caption":"Giriş Yap/Kaydol/Yönetim","settings":"Ayarlar","settings_caption":"Uygulama, Oyuncu, Hesap Ayarları","development":"Gelişim","development_caption":"Dahili Kullanım için Geliştirici Modu","basic":"Temel","basic_caption":"Temel Ayarlar","advanced":"Gelişmiş","advanced_caption":"Gelişmiş Ayarlar","blockchain":"Cüzdan","blockchain_caption":"${displayName} Merkezi Olmayan Cüzdan","internal_notice":"Dahili Yayın Bildirimi","release_notes":"Sürüm notları","terms_and_conditions":"Şartlar ve koşullar","license_and_listen_notices":"Açık Kaynak Lisanslama ve Dinleme Bildirimleri","close":"Kapalı","success":"Başarı","fail":"Hata","account_email_invalid_address":"Geçersiz e-posta adresi","account_email_invalid_domain":"Geçersiz e-posta alanı","account_email_unknown_status":"Bilinmeyen e-posta teslim durumu","account_email_unavailable_address":"Kullanılamayan e-posta adresi","account_email_suppressed_address":"Gizli e-posta adresi","account_loading":"Yükleniyor...","account_is_required":"gereklidir","account_sign_in_your_account":"Kayıt olmak","account_username":"Kullanıcı adı","account_username_email_phone":"Telefon numarası veya e-posta","account_password":"Şifre","account_new_password":"Yeni Şifre","account_re_enter_password":"Şifrenizi tekrar girin","account_password_not_equal":"İki şifre eşit değil","account_new_password_same":"Parola, orijinal parola ile aynıdır","account_forgot_your_password":"Parolanızı mı unuttunuz?","account_reset_password":"Şifreyi yenile","account_sign_in":"Kayıt olmak","account_signed_in":"Giriş yapıldı","account_sign_up":"Üye olmak","account_find_your_account":"Hesabını bul","account_enter_your_username":"Telefon numaranızı veya e-postanızı girin","account_search":"Aramak","account_email_sent_tip":"E-postanıza doğrulama kodu içeren bir e-posta gönderildi:","account_phone_sent_tip":"Telefonunuza doğrulama kodu içeren bir SMS gönderildi:","account_email_phone_sent_tip":"Doğrulama kodunu içeren e-posta ve SMS sırasıyla e-postanıza ve telefonunuza gönderildi:","account_software_token_tip":"Hesabınız için MFA etkinleştirildi. Oturum açmayı tamamlamak için lütfen cihazınızı açın veya görüntüleyin ve TOTP\'yi yazın.","account_reset_your_password":"şifrenizi sıfırlayın","account_verification_code":"Doğrulama kodu","account_resend_code":"Yeniden gönderme kodu","account_code_has_been_resent":"Doğrulama kodu yeniden gönderildi","account_password_has_been_reset":"Şifre sıfırlandı","account_submit":"Göndermek","account_sign_up_your_account":"hesabınızı kaydedin","account_fill_required_fields":"Aşağıda gerekli alanları doldurunuz.","account_fill_optional_fields":"Aşağıdaki isteğe bağlı alanları doldurun.","account_email":"E-posta","account_invitation":"Davet","account_invitation_code":"Davet Kodu","account_i_accept":"Kabul ediyorum","account_license_terms":"lisans ve şartlar","account_next":"Sonraki","account_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir.","account_verify_fill_optional_fields":"İsteğe bağlı alanları doğrulayın ve doldurun.","account_nickname":"Takma ad","account_gender":"Cinsiyet","account_male":"Erkek","account_female":"Dişi","account_not_say":"Söylememek","account_birthday":"Doğum günü","account_phone_number":"Telefon numarası","account_locale":"Yerel","account_tip_verified":"Doğrulandı, Oturum açılıyor...","account_verified":"doğrulandı","account_unverified":"doğrulanmamış","account_signed_up":"kayıt oldu","account_verify_your_identity":"Kimliginizi dogrulayin","account_finish":"Sona ermek","account_signed_out":"Oturum kapatıldı","account_change_password":"Şifre değiştir","account_change_email":"Değişim e-posta","account_change_phone_number":"Telefon numarasını değiştir","account_sign_out":"oturumu Kapat","account_current_password":"Mevcut Şifre","account_re_enter_new_password":"yeni şifreyi tekrar giriniz","account_personal_information":"Bilgi","account_edit":"düzenlemek","account_reset":"Sıfırla","account_greeting":"Merhaba,","account_cancel":"İptal etmek","account_change":"değiştirmek","account_not_set":"ayarlanmadı","account_setting":"ayar","account_copy_code":"kodu kopyala","account_account_setting":"Hesap","account_task_page":"Kredi görevi","account_setting_caption":"Şifreyi Değiştir / Bilgileri Düzenle","account_security":"Güvenlik","account_want_to_join":"Katılmak istiyorum?","account_sign_in_now":"Kayıt olmak","account_changed":"değişti","account_clipboard_with_invitation_code":"Davet kodu kopyalandı","account_clipboard_with_code":"Kod kopyalandı","account_invitation_code_dialog_tip":"Arkadaşınıza bir davet kodu içeren bir e-posta veya kısa mesaj göndereceksiniz:","account_available":"mevcut","account_invited":"davet edildi","account_used":"kullanılmış","account_invitation_code_sent":"Davet kodu gönderildi","account_invitation_channel_required":"En az bir davet kanalını doldurun","account_no_verification_code":"Doğrulama kodu alamıyor musunuz?","account_no_phone_number":"Telefon numarası yok mu?","account_sign_up_by_email":"e-posta ile kaydol","account_no_email":"Email yok?","account_sign_up_by_phone_number":"Telefon numarası ile kaydolun","account_no_totp":"TOTP yok mu?","account_tip_no_totp":"TOTP yoksa, lütfen önce TOTP\'yi kurun","account_setup_totp":"TOTP\'yi kur","account_contact_information":"İletişim bilgileri","account_delete_account":"Hesabı sil","account_deleted":"silindi","account_can_not_mfa":"MFA\'nın başı dertte mi?","account_set_mfa_type":"MFA\'yı yapılandır","account_disable_mfa":"MFA\'yı devre dışı bırak","account_disabled_mfa":"Engelli MFA","account_sms_mfa":"SMS MFA\'sı","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"tavsiye edilmez","account_oauth_sign_in_with":"{provider} ile oturum açın","account_sign_in_failed":"oturum açılamadı","account_tip_oath_sign_up":"Geçerli {provider} hesabına karşılık gelen e-posta: {email} henüz bir hesap oluşturmadı","account_tip_confirm_delete_account":"Cari hesabı silmek istediğinizi onaylamak için cari hesap şifresini girin.(Silinen hesaplar geri yüklenemez)","account_tip_config_mfa":"İkincil kimlik doğrulama olarak SMS veya zamana dayalı tek seferlik parola (TOTP) kullanmayı seçebilirsiniz.","account_error_can_not_enable_mfa":"MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir","account_tip_can_not_enable_sms_mfa":"SMS MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_can_not_enable_totp_mfa":"TOTP MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_setup_totp":"Aşağıdaki QR kodunu taramak için Kimlik Doğrulayıcı gibi uygulamaları kullanın veya bir güvenlik belirteci eklemek için kodu manuel olarak kopyalayın","account_tip_verify_totp":"TOTP\'nizi doğrulayın","account_link_your_social_account":"Sosyal hesabınızı bağlayın","account_unlink_your_social_account":"Sosyal hesabın bağlantısını kaldır","account_tip_confirm_link":"Cari hesabı {provider} hesabınıza bağlamak istediğinizden emin misiniz?","account_tip_confirm_unlink":"Bağlı {provider} hesabınızı iptal etmek istediğinizden emin misiniz?","account_tip_linking":"bağlayıcı...","account_tip_unlinking":"Çözülüyor...","account_linked":"Ciltli","account_unlinked":"bağlanmamış","account_error_can_not_link_to_the_linked_account":"Mevcut sosyal hesap başka bir hesaba bağlı","account_error_can_not_link_to_the_mismatched_email":"Cari hesap ve sosyal hesap e-posta adresi tutarsız","account_error_can_not_link_before_email_verified":"Mevcut hesap doğrulanmış bir e-postaya bağlı olmadığından sosyal hesap bağlanamıyor","account_tip_confirm_verify_email_phone":"Kimliğinizi doğrulamak için cari hesabın e-postasına ve telefon numarasına bir doğrulama kodu göndermek ister misiniz?","account_tip_confirm_verify_phone":"Kimliğinizi doğrulamak için geçerli telefon numarasına bir doğrulama kodu gönderilip gönderilmeyeceği?","account_error_1_message_60_seconds":"Her 60 saniyede yalnızca bir SMS veya e-posta gönderilebilir, bir {delta} saniye daha bekleyin","account_error_10_messages_per_day":"Her cep telefonu veya e-posta 24 saat içinde yalnızca 10 mesaj gönderebilir","account_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","Network Error":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","account_error_user_not_exist":"Kullanıcı yok","account_error_incorrect_username_or_password":"Yanlış kullanıcı adı ya da parola","account_error_incorrect_original_password":"Yanlış orijinal şifre","account_error_incorrect_password":"yanlış parola","account_error_username_not_found":"Kullanıcı adı bulunamadı","account_error_can_not_reset_for_no_verified":"Doğrulanmamış hesabın şifresi sıfırlanamaz","account_error_invalid_verification_code":"Yanlış doğrulama kodu, lütfen tekrar deneyin","account_error_expired_verification_code":"Doğrulama kodunun süresi doldu, lütfen tekrar deneyin","account_error_password_not_long_enough":"Şifre yeterince uzun değil","account_error_attempt_limit_exceeded":"Deneme sınırı aşıldı, lütfen bir süre sonra deneyin.","account_error_password_attempts_exceeded":"Parola girişimleri aşıldı.","account_error_invalid_phone_number_format":"Geçersiz telefon numarası biçimi","account_error_no_cell_phone_prefix":"Lütfen telefon numarası için önek seçin","account_error_username_already_exists":"Bu kullanıcı adı zaten var","account_error_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir","account_error_inactive_code":"Davet kodu etkinleştirilen bir kod değil","account_error_non_existent_code":"Davet kodu mevcut değil","account_error_unexpected":"Beklenmeyen hata","account_error_can_not_change_email_before_phone_bound":"Telefon numarası bağlanmadan e-posta değiştirilemez","account_error_can_not_change_email_before_unbound_social_account":"Sosyal hesabın bağlayıcılığı kaldırılmadan e-posta değiştirilemez","account_error_can_not_change_phone_before_email_bound":"E-posta bağlanmadan telefon numarası değiştirilemez","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA devre dışı bırakılmadan önce e-posta veya cep telefonu numarası değiştirilemez","account_error_not_supported_yet":"Şu anda desteklenmiyor","account_error_same_email":"Yeni e-posta adresi, orijinal e-posta adresiyle aynı olamaz","account_error_same_phone":"Yeni telefon numarası orijinal telefon numarası ile aynı olamaz","account_error_email_not_exists":"e-posta adresi mevcut değil","account_error_email_already_exists":"Belirtilen e-postaya sahip bir hesap zaten var.","account_error_phone_already_exists":"Belirtilen telefon numarasına sahip bir hesap zaten var.","account_error_mfa_token_mismatch":"Yazılım Token Kodu uyuşmazlığı","account_error_recaptcha_not_loaded":"Ağda bir sorun var. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_recaptcha_validation_failed":"ReCAPTCHA doğrulaması başarısız oldu. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_sign_in_in_progress":"Bekleyen oturum açma girişimi zaten devam ediyor","account_field_range":"{0}-{1} karakter girişini sınırlayın","account_field_only_alphanumeric":"Yalnızca alfanümeriği destekler","account_field_only_alphanumeric_and_symbol":"Yalnızca alfasayısal ve sembolleri destekler","account_field_only_chinese_alphanumeric_space_underline":"Yalnızca alfasayısal, boşluk ve alt çizgiyi destekler","account_field_prefix_without_number_space":"İlk karakter sayı veya boşluk olamaz","account_field_suffix_without_space":"boşlukla bitemez","account_field_without_repeat_space":"Art arda birden çok boşluk kullanılamaz","account_field_can_not_only_alphanumeric":"Sadece harf veya rakam kullanamazsınız","account_field_must_have_number_characters":"Sayı karakterleri olmalıdır","account_field_verification_code":"Doğrulama kodu altı haneli olmalıdır","account_field_invitation_code":"Davet kodu alfasayısal olmalıdır","account_field_phone_number":"Geçersiz telefon numarası biçimi","account_invalid_email_format":"Geçersiz e-posta formatı","account_sign_out_confirm":"Oturumu kapatacağınızdan emin misiniz? Bu, tüm görevleri durduracaktır.","account_sign_out_anyway":"Yine de oturumu kapat","account_signing_out":"Oturum kapatılıyor...","account_request_save_settings":"Ayarlar kaydedilmedi. Oturumu kapatmadan önce değişiklikleri kaydetmeniz gerekir.","pay":"Ödemek","pay_with_credit":"Hızlanan indirme için ödeme yapın. Yaklaşık {0} krediye ihtiyacı var","pay_with_credit_payed":"hızlanıyor. Hala yaklaşık {0} krediye ihtiyacı var","create_payment":"Ödeme Oluştur","pay_target":"Hedef","pay_for_torrent":"{0} için ödeme yapın","your_subid":"alt kimliğiniz","your_credits":"Kredileriniz","pay_point_for_data":"{1} verileri için {0} puan ödeyin","auto_renew":"Otomatik yenilemeyi etkinleştir","transaction_details":"ödeme detayları","transaction_id":"İD","transaction_payer":"ödeyen","transaction_payee":"Alacaklı","transaction_category":"Kategori","transaction_changed_amount":"Değiştirilen Tutar","transaction_meta":"Meta","transaction_status":"Durum","transaction_creation_time":"Oluşturma Zamanı","receipt_code":"Fiş Kodu","transfer_amount":"Transfer miktarı","code_the_receipt_code":"Aşağıdaki makbuz kodunu ödeyene kopyalayın","fill_the_receipt_code":"Alacaklı tarafından sağlanan ödeme kodunu doldurarak transfer edin","expense":"gider","copied":"kopyalandı","transfer":"Aktar","receive":"Almak","copy":"Kopyala","withdraw_fund":"Para Çekme","category_paydata_payer":"veri maliyeti","category_paydata_payee":"veri geliri","category_transfer":"Aktar","category_bonus":"Bonus","category_recharge":"şarj et","status_pending":"askıda olması","status_completed":"tamamlanmış","status_finish":"sona ermek","status_failed":"arızalı","tip_invalid_receiver":"Geçersiz alıcı kodu","tip_invalid_amount":"Kredi tutarı 0-1000 aralığında değişken olmalıdır (Minimum kesinlik 0,001\'dir)","credit_get_more":"Daha fazla kredi alın","credit_no_data":"Veri yok","credit_loading":"Yükleniyor...","credit_not_enough_amount":"Yeterli kredi yok","credit_amount_not_enough":"Yeterli kredi yok","credit_payee_not_exist":"Alacaklı mevcut değil","credit_invalid_amount":"Geçersiz kredi tutarı","credit_can_not_transfer_to_yourself":"Kendinize aktaramazsınız","credit_latest":"En sonuncu","credit_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","add_subtitles":"Altyazı Ekle","open_file":"Açık dosya...","advanced_options":"Gelişmiş seçenekler","title":"Başlık","location":"konum","subtitle_file":"altyazı dosyası","unsupported_subtitle_type":"{0} dosya türü desteklenen bir altyazı türü değil","not_default_player":"Varsayılan video oynatıcı ayarlanmamış","this_is_an_audio_file":"Bu bir ses dosyasıdır","the_added_subtitle_already_exists":"Eklenen altyazı zaten var","stop_stream_player":"Akış ortamı, görev duraklatıldığı veya silindiği için sonlandırıldı","stop_player":"Dosya silindiği için oynatıcı sonlandırıldı","playing_timeout_hint":"Bekle zaman aşımına uğradı. Lütfen görevi kontrol edin","autoplay_hint":"Otomatik oynatma, tarayıcınız tarafından engellenebilir. Oyuncu oynamıyorsa devam etmek için ekrana tıklamayı deneyin","remove_playing_confirm":"{0} hala oynuyor, onu kaldırırsanız oyuncu durur. Kaldıracağınızdan emin misiniz?","unsupported_in_browser":"Tarayıcı modunda henüz desteklenmiyor","client":"Müşteri","warning":"Uyarı","enable":"Olanak vermek","disable":"Devre dışı bırakmak","auto":"Oto","encrypt_connection":"Bağlantıyı şifrele","encrypted_connection":"Şifreli bağlantı","non_encrypted_connection":"Şifrelenmemiş bağlantı","connected_wires_not_disconnect":"Bağlı kabloların bağlantısı kesilmeyecek","audio":"ses","video":"video","image":"resim","subtitle":"alt yazı","zip":"zip","text":"metin","unknown":"Bilinmeyen","add":"Eklemek","undo":"Geri alma","backup":"Destek olmak","not_default_app":"${displayName}, torrent ve medya için varsayılan uygulamanız değil, varsayılan olarak ayarlamak istiyor musunuz?","dont_show_again":"tekrar gösterme","go_to_settings":"Ayarlara git","about_alphabiz":"Yaklaşık ${displayName}","last_check_at":"son kontrol","update_channel":"Kanalı güncelle","check_for_update":"Güncellemeleri kontrol ediniz","checking_for_update":"Güncellemeler kontrol ediliyor...","no_update_available":"Güncelleme mevcut değil","update_available":"Güncelleme uygun","update_now":"Şimdi güncelle","update_later":"Sonra güncelle","click_to_update":"İndirmek ve güncellemek için ŞİMDİ GÜNCELLE düğmesine tıklayın","update_failed":"Güncelleme başarısız oldu","update_failed_message":"Güncelleme sırasında bir hata oluştu:","check_shasum_failed":"Yükleyici için bütünlük kontrol edilemedi","downloading_update":"Güncelleme indiriliyor...","ready_to_update":"Güncellemeye hazır","restart_to_update":"Güncelleme indirildi. ${displayName}, birkaç dakikalığına güncelleme için çıkış yapacak.","already_latest":"Geçerli sürüm({0}) zaten en son sürüm","update_timeout":"Güncelleme zaman aşımı","no_available_release":"Kullanılabilir yayın yok","no_available_installer":"Kullanılabilir yükleyici yok","feedback":"Geri bildirim","select_a_type":"bir tür seçin","category":"Kategori","select_a_category":"bir kategori seç","require_title":"Başlık gerekli","describe_your_problem":"problemini açıkla","report_a_bug":"Hata bildir","request_a_new_feature":"Yeni bir özellik talep edin","download_or_upload":"İndirme yükleme","others":"Diğerleri","submit_with_system_info":"Sistem bilgisi ile gönder","submit_feedback":"Geri bildirim gönder","tweet_us":"bize tweet at","tweet_too_long":"Tweet çok uzun","delete_characters":"Lütfen en az {0} karakter(ler)i silin","rest_characters":"{0} daha fazla karakter girebilirsiniz","update_alphabiz":"${displayName} güncelle","current_version":"Şimdiki versiyonu","cancel_update":"Güncellemeyi iptal et","slow_download_speed":"Çok yavaş indir","slow_download_speed_caption":"Yükleyici indirme işlemi artık çok yavaş. Lütfen ağ durumunu kontrol edin","update_canceled":"Güncelleme iptal edildi","current_version_release_time":"Mevcut sürümün çıkış zamanı","expired_app":"${displayName} Süresi Doldu","version_out_of_date":"Versiyon güncel değil","have_to_update":"${displayName} sürümü güncel değil. Bazı protokoller veya API\'ler kullanımdan kaldırılmıştır. Devam etmeden önce ${displayName} güncellemeniz gerekiyor.","exit_alphabiz":"Çıkış ${displayName}","exit_and_update":"Çık ve güncellemeyi uygula","new_version_hint":"Yeni sürüm mevcut","no_new_version":"Yeni sürüm mevcut değil","current_is_latest":"Geçerli sürüm zaten en son sürüm","click_to_check_update":"Güncellemeyi kontrol etmek için [GÜNCELLEMEYİ KONTROL ET] düğmesine tıklayın","download_latest_version_from_website":"En son sürümü indirmek için lütfen resmi web sitesini ziyaret edin","to_the_website":"Web sitesine","network_diagnotic":"Ağ Teşhisi","diagnotic":"Tanı","click_to_check":"Kontrol etmek için tıklayın","click_to_check_again":"Tekrar kontrol etmek için tıklayın","checking":"Kontrol etme","online":"Çevrimiçi","offline":"çevrimdışı","dns_look_up":"DNS araması","error":"Hata","aws_service":"AWS Hizmeti","network_pings":"Ağ Pingi","not_found":"Bulunamadı","packet_loss":"Paket(ler) kaybı","official_site":"Resmi site","download_test":"Testi İndir","test_task":"Test Görevi {0}","download_failed":"Yükleme başarısız","second_spend":"{0} sn harcama","open_default_player_failed":"Varsayılan oynatıcı açılamadı","copied_to_clipboard":"Panoya kopyalandı","go_to":"git","region_not_available":"Bölge mevcut değil","region_not_available_message":"Üzgünüm! Bölgeniz bu uygulamayı kullanmak için uygun değil. Bu uygulama {0} saniye sonra kapanacak","confirm":"Onaylamak","no_available_result":"Kullanılabilir sonuç yok","invalid_password_format":"Geçersiz şifre biçimi","invalid_password_format_same":"Parola, orijinal parola ile aynıdır","error_password":"Şifre hatası","keychain_setting":"anahtarlık","setting_description":"Bulut depolama: Önemli verileri buluta kaydedin.\\nParolayı değiştir: Ortam kitaplığı anahtarının parolasını değiştirin.\\nAnımsatıcı: anahtarları oluşturmak ve geri yüklemek için alternatif bir yöntem.\\nYerel Anahtarı İçe Aktar: Yerel olarak kaydedilen anahtarı medya kitaplığına aktarın.\\nDışa Aktarma Anahtarı: Geçerli ortam kitaplığı verilerini yerele veya buluta kaydeder.\\nAnahtarı buluta yedekle: Mevcut medya kitaplığı verilerini yedekleme için buluta güncelleyin.","refresh_status":"Güncelleme durumu","confirm_import_key":"İçe aktarma anahtarını onaylayın","confirm_update_cloud_key":"Bulutta zaten bir anahtarınız var. Anahtarın güncellenmesi orijinal anahtarın üzerine yazacaktır. Bulutta saklanan anahtarı güncellemek istediğinizden emin misiniz?","export_key_with_cloud":"Bulutta depolanan kitaplık anahtarını dışa aktarmak için belirlediğiniz bağımsız parolayı girin ve kilit açma parolasıyla anahtar dosyasını kilitleyin","store_cloud_key_prompt_password":"Kitaplık anahtarını bulutta depolamak için bağımsız bir parola girin","update_cloud_key_prompt_password":"Kitaplık anahtarını şifrelemek için bağımsız bir parola ayarlayın ve ardından bunu buluta güncelleyin","enable_cloud_storage_prompt_password":"Bulutta depolanan anahtar için, anahtarı buluttan alabileceğiniz bir parola belirleyin","input_unlock_password":"Kilit açma şifresini ayarla","export_local_prompt_password":"Lütfen anahtar dosyanızı şifrelemek için bir kilit açma şifresi ayarlayın. Bu şifreyi sizin için kaydetmeyeceğiz, dolayısıyla şifrenizi kaybederseniz kütüphane anahtarınızın kilidini açamayacaksınız.","require_unlock_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","require_independent_password":"Bulutta depolanan anahtarı almak için bağımsız parolayı girin","import_local_prompt_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","select_encrypt_mode":"Şifreleme modunu seçin","update_cloud_key":"Bulutta depolanan anahtarı güncelleyin","backup_to_cloud":"Kitaplık anahtarını buluta yedekleyin","save_local":"Kitaplık anahtarını yerel şifreli dosya olarak kaydedin","create_new_key":"Yeni bir kitaplık anahtarı oluştur","creating_lib_key":"Kitaplık anahtarı oluşturuluyor...","loading_lib_key":"Kitaplık anahtarı yükleniyor...","failed_to_create_lib_key":"Kitaplık anahtarı oluşturulamadı","failed_to_load_lib_key":"Kitaplık anahtarı yüklenemedi","import_local_key":"Anahtarı yerel olarak içe aktar","import_lib_key_from_local":"Bir kitaplık anahtarını Yerel Olarak İçe Aktar","import_from_cloud":"Kitaplık anahtarını buluttan içe aktarın","create_or_import_key":"Kitaplık anahtarı oluştur veya içe aktar","create_or_import_key_desc":"Kitaplık anahtarı, merkezi olmayan veritabanıyla içerikleri getirmek ve yayınlamak için kullanılan bağımsız bir anahtardır.","store_your_lib_key":"Kitaplık anahtarınızı saklayın","export_cloud_key":"Anahtarı Buluttan Dışa Aktar","export_current_key":"Geçerli Anahtarı Dışa Aktar","change_password":"Şifre değiştir","enable_cloud_storage":"Bulut depolamayı etkinleştir","disable_cloud_storage":"Bulut depolamayı devre dışı bırak","disable_cloud_storage_desc":"Bulut depolamayı devre dışı bırakmak, bulutta kayıtlı anahtarı kaldırır, lütfen anahtarın yerel olarak kaydedildiğinden emin olun","sync_at":"Senkronizasyon: {time}","cloud_storage_enabled":"Anahtar Zincirini {storage} ile senkronize edin","cloud_storage_disabled":"Bulut depolama devre dışı","saved_locally":"Yerel olarak kaydedildi","export_key":"Anahtar dosyasını dışa aktar","cloud_independent_password":"Buluttan bağımsız parola","key_file_unlock_password":"Anahtar dosya kilidini açma şifresi","re_enter_unlock_password":"Kilit açma şifresini tekrar girin","independent_password_not_enabled":"Mevcut şifre Alphabiz hesap şifresidir (bağımsız bir şifre belirlenmemiştir)","use_cognito_hash":"Alphabiz hesabı şifresini kullan","use_independent_password":"Bağımsız şifre kullan","keychain_lib":"kütüphane anahtarı","loading_keychain_state":"Anahtarlık yükleniyor...","backing_up":"Yedekleme...","backup_current_key":"Geçerli anahtarı Bulut\'a yedekle","cloud_lib_key_not_existed":"kitaplık anahtarı Bulut\'ta mevcut değil","open_keychain_file":"Anahtarlık Dosyasını Aç","confirm_open_abk":"ABK dosyasını açmak istiyor musunuz?","use_the_key":"anahtarı kullan","backup_the_key":"Anahtarı buluta yedekleyin","keychain_data_does_not_exist":"Anahtar zinciri verileri mevcut değil","timeout of 0ms exceeded":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","XhrError":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","payer credit amount is not enough":"Yeterli kredi yok","payee does not exist":"Alacaklı mevcut değil","block_list_manage":"Blok listesi yönetimi","blocked_users":"Engellenmiş kullanıcılar","blocked_channels":"Engellenen kanallar","unblock_user":"Kullanıcının engelini kaldır","unblock_channel":"Kanalın engellemesini kaldır","no_blocked_user":"Engellenen kullanıcı yok","no_blocked_channel":"Engellenen kanal yok","field_required":"{0} gereklidir","setting":"Ayar","unknown_media":"Bilinmeyen Medya","settings_button_visible":"Düğme Görünür","settings_setting":"Ayar","settings_playback_rate":"Çalma oranı","settings_subtitle":"Alt yazı","settings_pip":"PiP","settings_fullscreen":"Tam ekran","settings_subtitle_options":"Altyazı Seçenekleri","settings_normal":"Normal","settings_italic":"İtalik","settings_lighter":"Çakmak","settings_bolder":"Daha cesur","settings_small":"Küçük","settings_large":"Büyük","about":"Hakkında","services":"Hizmetler","hide":"Saklamak","hide_others":"Diğerlerini sakla","show_all":"Hepsini Göster ↓","quit":"Çıkış yapmak","edit":"Düzenlemek","redo":"Yeniden yap","cut":"Kesmek","paste":"Yapıştırmak","select_all":"Hepsini seç","view":"Görüş","reload":"Tekrar yükle","toggle_full_screen":"Tam ekrana geç","toggle_developer_tools":"Geliştirici Araçlarını Değiştir","window":"pencere","minimize":"küçültmek","bring_all_to_front":"Hepsini Öne Getir","help":"Yardım","github_repo":"Github Deposu","issues":"Sorunlar","learn_more":"Daha fazla bilgi edin","learn_spelling":"Yazımı Öğrenin","lookup_selection":"Ara \\"{selection}\\"","search_with_google":"Google ile ara","save_as":"Farklı kaydet","save_image":"Resmi Kaydet","save_image_as":"Resmi Farklı Kaydet...","copy_link":"Bağlantıyı kopyala","save_link_as":"Linki farklı kaydet ...","copy_image":"Resmi kopyala","copy_image_as":"Resmi Farklı Kopyala...","copy_image_address":"Resim Adresini Kopyala","download_complete":"İndirme tamamlandı","download_complete_message":"{0} indirildi","is_running":"{0} çalışıyor","open":"{0} aç","launch_problem":"Başlatma sorunu","ask_clear_data":"Görünüşe göre {0} başlatmaya çalışıyorsunuz, ancak birkaç kez başarısız oldunuz.\\nTüm uygulama verilerini temizleyip daha sonra başlatmayı denemek istiyor musunuz?","launch_directly":"Doğrudan başlat","clear_all_data":"Tüm verileri temizle","ask_clear_confirm":"Bu, tüm yapılandırmaları, günlükleri ve kullanıcı verilerini kaldıracaktır!\\nBundan sonra {0}\'ı yeniden başlatmanız gerekebilir.\\nVerileri temizleyeceğinizden emin misiniz?","confirm_launch":"Hayır, doğrudan başlat","confirm_clear":"Evet, tüm verileri temizle"}')},12:function(e,t){},1254:function(e){e.exports=JSON.parse('{"lib_index":"Maison","lib_edit":"Publier","lib_publish":"Publier","lib_explore":"Explorer","lib_following":"Suivant","lib_favorite":"Favoris locaux","lib_local_favorites":"Favoris locaux","lib_channel":"Canaliser","lib_submit":"Soumettre","lib_from_network":"Utilisation d\'une base de données décentralisée à partir du réseau","welcome_to_lib":"Bienvenue à ${displayName} Médiathèque","register_or_login":"Inscription/Connexion","lib_recommend":"Recommander","lib_recommend_desc":"Bienvenue à la bibliothèque ${displayName} ! Cette bibliothèque utilise une base de données décentralisée du réseau. Pour commencer à l\'utiliser, vous devez suivre certains canaux.","follow_any_channel_to_continue":"Suivez n\'importe quelle chaîne pour continuer","follow_channels_and_continue":"Suivez les chaînes {0} et continuez","show_more_for_me":"Afficher plus pour moi","no_more_recommend":"Ne plus recommander","key":"Clé","create_key":"Créer une clé","save_key":"Enregistrer la clé","save_key_file":"Voulez-vous enregistrer votre clé en tant que fichier ?","import_key":"Clé d\'importation","import":"Importer","invalid_key":"Clé non valide","back_to_top":"Retour au sommet","search_for_channel":"Rechercher l\'ID de la chaîne","search_channel_no_result":"Impossible de trouver la chaîne avec l\'identifiant {0}","please_input_channel_id":"Veuillez saisir l\'ID de la chaîne","welcome_help_text":"Il s\'agit d\'une médiathèque décentralisée. Vous avez besoin\\n pour créer un compte pour cette base de données. Nous allons\\n générer automatiquement une clé personnelle pour vous.\\n Si vous avez déjà eu une clé, vous pouvez également importer\\n c\'est ici.","welcome_key_text":"Une fois connecté, veuillez cliquer sur le bouton [ENREGISTRER LA CLÉ]\\n dans le coin inférieur droit pour enregistrer votre clé privée.\\n Si vous perdez votre clé, vous ne pourrez peut-être pas vous reconnecter.","redirect_to_recommend":"Il semble que vous n\'ayez suivi aucune chaîne. Redirection vers la page [Explorer].","channel":"Canaliser","follow":"Suivre","unfollow":"Ne plus suivre","following":"Suivant","share":"Partager","unfollow_confirm":"Êtes-vous sûr de ne plus suivre cette chaîne ? Tous les messages de cette chaîne dans votre journal seront supprimés.","follow_failed_hint":"L\'opération est toujours en attente en arrière-plan. Si l\'opération n\'est pas appliquée pendant une longue période, veuillez redémarrer l\'application et réessayer.","block":"Bloc","unblock":"Débloquer","blocked":"Bloqué","block_channel":"Bloquer cette chaîne","block_channel_confirm":"Bloquer la chaîne la supprimera de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","block_creator":"Bloquer le créateur de cette chaîne","unblock_creator":"Débloquer le créateur de cette chaîne","block_creator_confirm":"Bloquer le créateur supprimera toutes les chaînes créées par ce créateur de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","share_url_copied":"L\'URL de partage est copiée dans votre presse-papiers","follow_time":"Suivre le temps","update_time":"Temps de mise à jour","search":"Recherche","type":"Taper","added":"Ajoutée","click_to_task":"Cliquez pour accéder à la tâche","lib_already_added":"Vous avez déjà ajouté cette vidéo","description":"Description","poster":"Affiche","channel_poster":"Affiche de la chaîne","preview":"Aperçu","creator":"Créateur","creator_detail":"Détail du créateur","loading_creator":"Chargement des informations sur le créateur","wait_for_creator_loaded":"Veuillez attendre que les informations sur le créateur soient chargées.","follower":"Disciple","followers":"Suiveurs","follower_list":"Liste d\'abonnés","user":"Utilisateur","channel_title":"Titre de la chaîne","channel_id":"Identifiant de la chaine","post_title":"Titre de l\'article","post_id":"ID de publication","import_data_from_excel":"Importer des données depuis Excel","set_excel_keys":"Définir les clés Excel","excel_import_succeded":"L\'importation Excel a réussi","excel_import_success_msg":"{0} les lignes sont prêtes à être ajoutées, {1} les éléments invalides et {2} les éléments en double sont ignorés","cannot_find_channel":"Impossible de trouver la chaîne","cannot_find_posts":"Impossible de trouver des messages","add_channel":"Ajouter une chaîne","add_post":"Ajouter un message","edit_channel":"Modifier la chaîne","channel_setting":"Réglage du canal","edit_post":"Modifier le message","edit_posts":"Modifier les messages","channel_detail":"Détail de la chaîne","remove":"Retirer","remove_channel":"Supprimer la chaîne","remove_channel_confirm":"Êtes-vous sûr de supprimer ce message ? Cela ne peut pas être récupéré.","remove_post":"Supprimer le message","remove_post_confirm":"Voulez-vous vraiment supprimer cette chaîne ? Cela ne peut pas être récupéré.","preview_mode":"Mode Aperçu","preview_mode_desc":"Il s\'agit d\'un aperçu de votre chaîne. Tous les tarifs des films sont affichés ici.","edit_user_profile":"Modifier le profil utilisateur","name":"Surnom","avatar":"Avatar","no_following":"Aucune chaîne suivante. Cliquez pour aller","no_recommend":"Aucune chaîne recommandée. Cliquez pour aller","first_recomment_msg":"Cela peut prendre un certain temps si c\'est la première fois que l\'application est lancée.","invalid_image":"Image invalide","image_not_reachable":"Cette URL d\'image n\'est pas accessible.","channel_not_found":"Chaîne introuvable","cannot_get_channel_info":"Impossible d\'obtenir les informations sur la chaîne. Cette chaîne peut être supprimée par son créateur et ne plus être disponible.","validate_error":"Valider l\'erreur","validate_user_name_no_space":"Le nom d\'utilisateur ne doit pas contenir d\'espaces","validate_url_no_space":"L\'URL ne doit pas contenir d\'espaces","validate_user_name_length":"Le nom d\'utilisateur doit avoir une longueur comprise entre {0} et {1}","validate_user_desc_length":"La description de l\'utilisateur ne doit pas dépasser {0} caractères","validate_user_avatar_url":"L\'avatar de l\'utilisateur doit être une URL contenant moins de 2 048 caractères","validate_channel_title_length":"Le titre de la chaîne doit avoir une longueur comprise entre 1 et 100","validate_channel_desc_length":"La description de la chaîne doit avoir une longueur comprise entre 10 et 300","validate_channel_image_url":"L\'aperçu de la chaîne doit être une URL comportant moins de 2 048 caractères","validate_post_title_length":"Le titre du message doit avoir une longueur comprise entre 1 et 100","validate_post_desc_length":"La description du message doit avoir une longueur comprise entre 10 et 300","validate_post_image_url":"L\'affiche doit être une URL contenant moins de 2 048 caractères","validate_post_url":"URL ${displayName} invalide","validate_post_url_length":"${displayName} L\'URL ne doit pas dépasser 2 048 caractères","film_rate":"Tarif des films","set_film_rate":"Définir le taux de film","select_a_rate_before_enter":"Vous devez sélectionner un tarif de film avant d\'entrer dans la médiathèque.","library_available_rate":"Tarif des films disponibles à la bibliothèque","rate_g":"G – Audiences Générales","rate_g_desc":"Tous âges admis. Rien qui offenserait les parents pour le visionnement par les enfants.","rate_pg":"PG - Surveillance parentale suggérée","rate_pg_desc":"Certains matériaux peuvent ne pas convenir aux enfants. Les parents sont invités à donner une \\"orientation parentale\\". Peut contenir du matériel que les parents pourraient ne pas aimer pour leurs jeunes enfants.","rate_pg_13":"PG-13 – Parents fortement mis en garde","rate_pg_13_desc":"Certains contenus peuvent être inappropriés pour les enfants de moins de 13 ans. Les parents sont priés d\'être prudents. Certains contenus peuvent être inappropriés pour les pré-adolescents.","rate_r":"R – Restreint","rate_r_desc":"Les moins de 17 ans doivent être accompagnés d\'un parent ou d\'un tuteur adulte. Contient du matériel pour adultes. Les parents sont invités à en savoir plus sur le film avant d\'emmener leurs jeunes enfants avec eux.","rate_nc_17":"NC-17 – Adultes seulement","rate_nc_17_desc":"Interdit aux 17 ans et moins. Clairement adulte. Les enfants ne sont pas admis.","set_as_private":"Définir comme privé","hide_in_explore":"Masquer cette chaîne dans la page d\'exploration","hidden":"Caché","select_a_rate":"Veuillez sélectionner un tarif de film","select_from_tasks":"Sélectionnez parmi les tâches","import_from_magnet":"Importer depuis l\'aimant : ?...","input_magnet_url":"Aimant d\'entrée : ? URL","task_title":"Titre de la tâche","set_title":"Définir le titre","add_to_local_favorites":"Ajouter aux favoris locaux","remove_from_local_favorites":"Supprimer des favoris locaux","removed_favorite":"Favori supprimé","import_or_export_favorites":"Importer/exporter des favoris","export_local_favorites":"Exporter les favoris locaux en tant que sauvegarde","import_favorites_file":"Importer le fichier de favoris","not_a_favorite_file":"Ce fichier n\'est pas un fichier de sauvegarde favori","connection_status":"Statut de connexion","gun_server_list":"Cache Nodes","custom_nodes":"Nœuds de cache personnalisés","custom_nodes_hint":"Les nœuds de cache personnalisés seront appliqués après le redémarrage de l\'application","wait_for_reboot":"En attente de redémarrage...({seconds}s)","reboot_now":"Redémarrer maintenant","reboot_later":"Redémarrer plus tard","peer_list":"Nœuds directs","server":"URL du nœud","peer":"Pair","peer_id":"ID de nœud","connection":"Connexion","data_source":"La source de données","sync":"Synchroniser","syncing":"Synchronisation","sync_completed":"Synchronisation terminée","got_all_post":"Vous avez déjà tous les messages","placeholder_channel_title":"Nom de votre chaîne","placeholder_channel_desc":"Description de cette chaîne","placeholder_post_title":"Nom du film (année)","placeholder_post_desc":"Description de ce film","private_channel":"Chaîne privée","creator_blocked":"Créateur bloqué","go_to_library":"Aller à la librairie?","go_to_library_channel_msg":"Voulez-vous accéder au canal de la bibliothèque {0} ?","magnet_does_not_have_name":"Cet aimant : ? URL n\'a pas de nom, vous devez d\'abord ajouter un titre de message.","no_available_post":"Aucun poste disponible","following_channel_no_post":"Toutes vos chaînes suivantes n\'ont pas de publication disponible. Cela peut être dû à une erreur de réseau. Si vous avez déjà suivi certaines chaînes, les messages peuvent être chargés plus tard.","share_to_library":"Partager dans la bibliothèque","quick_start":"Démarrage rapide","quick_start_desc":"Commencer à créer une publication avec une tâche ou un fichier","select_file":"Choisir le dossier...","select_folder":"Sélectionner le dossier...","post_options":"Options de publication","channel_options":"Options de chaîne","create_new_channel":"Créer une nouvelle chaîne","use_existed_channel":"Utiliser le canal existant","select_existed_channel":"Sélectionnez une chaîne existante","uploaded_by":"{title} mis en ligne par {name}","created_by":"{title} créé par {name}","creating_new_channel":"Création d\'une nouvelle chaîne...","created_new_channel":"Nouvelle chaîne créée","creating_new_post":"Création d\'un nouveau message...","created_new_post":"Nouveau message créé","create_new_post":"Créer un nouveau message","quick_start_timeout":"{0} délai d\'attente. Cela peut être dû à une erreur de réseau. Veuillez réessayer plus tard.","file_too_large":"Fichier trop large","file_too_large_msg":"Ce fichier fait plus de 4 Go ({size}) et peut prendre beaucoup de temps à préparer. Êtes-vous sûr de continuer ?","resolving_folder_files":"Résolution des fichiers de dossier...","folder_too_large":"Dossier trop volumineux","folder_too_large_msg":"Les fichiers de ce dossier font plus de 4 Go (total {size}) et peuvent prendre beaucoup de temps pour préparer la tâche. Êtes-vous sûr de télécharger ?","creating_new_task":"Création d\'une nouvelle tâche...","cannot_create_task":"Impossible de créer la tâche","cannot_create_task_msg":"Cela peut être dû à une erreur. Si la tâche est créée correctement, vous pouvez vérifier la liste des tâches ultérieurement.","cannot_get_task_name":"Impossible d\'obtenir le nom de la tâche. Vous devez d\'abord en saisir un.","remove_old_task":"Supprimer l\'ancienne tâche","remove_old_task_desc":"Le mode Web ne peut créer qu\'une seule tâche à la fois. Voulez-vous supprimer l\'ancienne tâche ?","subtitle_list":"Liste des sous-titres","optional":"facultatif","with_subtitle":"Avec {language} sous-titres","maximumSubtitleNum_limit":"Le nombre de sous-titres a atteint son maximum","add_subtitle_url":"Ajouter le lien de téléchargement des sous-titres","cannot_add_subtitle":"Impossible d\'ajouter des sous-titres","cannot_add_subtitle_msg":"Langue des sous-titres non sélectionnée ou lien de téléchargement invalide.","support_subtitle_type":"Seuls les sous-titres au format srt et vtt sont pris en charge.","recommend_opensubtitles":"Il est recommandé d\'utiliser le lien ou l\'identifiant de téléchargement des sous-titres sur www.opensubtitles.org.","take_down":"Descendre","serious_violation":"Infraction grave","copyright_disputes":"Litiges de droit d\'auteur","adults_only":"Seulment les adultes","takedown_reason":"Raison du retrait","takedown_mode":"Mode retrait","admins":"Administrateurs","takedown_user":"Retirer ce créateur","takedown_channel":"Retirer cette chaîne","takedown_post":"Retirer ce message","select_takedown_reason":"Sélectionnez la raison du retrait","takedown_invalid_reason":"Motif de retrait non valide","takedown_invalid_user_id":"Identifiant invalide. L\'identifiant doit comprendre 87 caractères","takedown_invalid_channel_id":"ID de chaîne non valide. L\'ID doit inclure 20 caractères","takedown_invalid_post_id":"Identifiant de publication non valide. L\'ID doit inclure 20 caractères","takedown_management":"Gestion des démontages","users":"Utilisateurs","channels":"Chaînes","posts":"Des postes","you":"Toi","preset":"Préréglé","admin":"Administrateur","committee":"Comité","about_takedown_mode":"À propos du mode de retrait :\\nPréréglage : configuré dans le référentiel github. Tous seront supprimés de la bibliothèque.\\nAdmin : tout administrateur qui vote pour sera supprimé.\\nComité : au moins la moitié des administrateurs qui votent pour seront supprimés.","cannot_edit_preset":"Vous ne pouvez pas modifier cette ligne car il s\'agit d\'une ligne prédéfinie","cannot_edit_not_vote":"Vous ne pouvez pas modifier cette ligne puisque vous n\'avez pas voté pour elle","remove_vote":"Supprimer votre vote","post_preload_failed":"Échec du préchargement de ce message. Le lien de téléchargement peut être obsolète, ce message ne peut donc pas être lu immédiatement.","about_cache_node":"À propos du nœud de cache","edit_cache_node":"Edit cache node","create_cache_node":"Créer un nœud de cache","about_cache_node_desc":"${displayName} utilise le serveur gun comme nœud de cache. Vous pouvez modifier les nœuds personnalisés à l\'avance","learn_how_to_deploy_gun":"Apprenez à déployer votre propre serveur d\'armes","repeat_add":"La tâche a été ajoutée, veuillez ne pas l\'ajouter à nouveau","upload":"Télécharger","download":"Télécharger","delete":"Supprimer","delete_task":"Supprimer la tâche","delete_confirm_message":"Supprimer cette tâche ? C\'est irrévocable","also_delete_files":"Supprimer également les fichiers","default_delete_files":"Supprimer par défaut les fichiers téléchargés après la suppression de la tâche","not_now":"Pas maintenant","delete_autoupload_confirm":"Cette tâche contient le fichier que vous avez placé dans le répertoire de téléchargement automatique. Supprimer cette tâche supprimera également le fichier.","delete_anyway":"Supprimer quand même","upload_too_many_files":"Télécharger trop de fichiers","ask_if_unlimit_upload_amount":"Le répertoire de téléchargement automatique contient trop de fichiers. Voulez-vous désactiver la limitation du montant de téléchargement ? *Cela peut entraîner des problèmes de performances","disable_limitation":"Désactiver la limitation","not_length":"L\'opération multi-fichiers n\'est pas prise en charge pour le moment, veuillez coopérer","download_torrent":"Télécharger un fichier","upload_torrent":"Téléverser un fichier","files":"Des dossiers","file":"Déposer","folder":"Dossier","start_all":"Tout commencer","pause_all":"Tout mettre en pause","remove_all":"Enlever tout","upload_all":"Télécharger tout","clear_history":"Histoire claire","pause_all_finish_payments":"Cela terminera tous les paiements.","accelerating":"Accélérer","link_task":"Tâche de liaison","torrent_task":"Tâche de fichier","ok":"D\'ACCORD","cancel":"Annuler","download_directory_position":"Télécharger la position du répertoire","torrent_file":"fichier de tâche","magnetic_link_incorrect":"Le format du lien est incorrect","delete_fail":"Échec de la suppression","pause":"Pause","paused":"En pause","stop_torrent":"Arrêt","seed":"Graine","resume":"CV","downloading":"Téléchargement","downloaded":"Téléchargé","uploading":"Téléchargement","auto_uploading":"Téléchargement automatique","uploaded":"Téléchargé","pending":"En attente d\'autres tâches","verifying":"Vérification","waiting_for_verify":"En attente de vérification","seeding":"Semis","completed":"Complété","status":"Statut","task_name":"Nom de la tâche","size":"Taille","progress":"Progrès","sort":"Trier","ascending":"Ascendant","descending":"Descendant","file_loading":"Chargement du fichier...","loading":"Chargement","unknown_status":"Inconnu","play_while_downloading":"Jouer...","upload_or_play":"Télécharger / Jouer","play":"Jouer","ask_if_upload_file":"Téléverser un fichier?","ask_if_upload_or_play":"Télécharger ou lire un fichier ?","torrent_error":"Erreur lors de l\'ajout de la tâche :","no_peers":"Réessayez plus de {0} fois et aucun pair n\'est disponible","torrent_exists":"La tâche existe déjà.","show_origin_torrent":"Obtenir le fichier ou l\'URL de la tâche d\'origine","show_directory":"Ouvrir le répertoire de ce torrent","task_num":"Tâches","total_upload_speed":"Vitesse de téléchargement","total_download_speed":"Vitesse de téléchargement","path_missing":"Erreur : impossible de trouver le chemin du torrent","origin_not_found":"Impossible de trouver les informations sur la tâche d\'origine.","text_copied":"L\'URL Magnum est copiée dans votre presse-papiers","copy_magnet_uri":"Aimant de copie : ? URI","copy_download_uri":"Copier l\'URI de téléchargement","copy_share_uri":"Copier l\'URI de partage","uri_copied":"L\'URI a été copié avec succès dans votre presse-papiers","uri_copy_failed":"Échec de la copie de l\'URI","more":"Plus...","toggle_list_mode":"Basculer le mode liste","comment":"comment","operations":"Opérations","open_directory":"Ouvrir le répertoire","no_downloading_task":"Aucune tâche de téléchargement","remove_all_downloading_tasks":"Supprimer toutes les tâches de téléchargement ?","remove_all_upload_tasks":"Supprimer toutes les tâches d\'importation ?","remove_autoupload_files":"Supprimer les fichiers de téléchargement automatique","remove_all_history":"Supprimer tout l\'historique ?","remaining":"Restant","created_time":"Temps créé","used_time":"Temps utilisé","completed_time":"Temps terminé","yesterday":"Hier","before_yesterday":"{empty}","earlier":"Plus tôt","miss_file":"Certains fichiers sont manquants","delete_miss_file_task":"Il manque des fichiers dans {0}.","common_peer":"Pair commun","ab_peer":"${displayName} pair","ab_peer_verified":"Pair vérifié ${displayName}","ab_peer_available":"${displayName} homologue(s) disponible(s)","alphabiz_accelerating":"${displayName} accélération","income":"Revenu","income_info":"Revenu(aujourd\'hui/total)","total_income_info":"Revenu : {0}(aujourd\'hui) / {1}(total)","login_to_see_income":"Connectez-vous pour voir les statistiques de revenus","credit_cost":"Frais de crédit","downloaded_by_payment":"Téléchargé par Paiements","file_not_found":"Impossible de trouver ce fichier en local","no_task":"Ne pas demander","no_matched_task":"Aucune tâche correspondante","space_not_enough":"Espace disque insuffisant","need_more_space":"Besoin de {0} plus d\'espace mais le disque actuel a {1} libre ({2} réservé). Les tâches sont mises en pause. Le préchargement de la bibliothèque est désactivé. Vous pouvez le réactiver dans [Paramètres - Avancé].","seeders":"Semoirs","last_update":"Dernière mise à jour","connecting":"De liaison","connected":"Connecté","request_timed_out":"La demande a expiré","connection_failed":"La connexion a échoué","invalid_download_url":"URL de téléchargement invalide","download_link":"lien de téléchargement","empty_files":"Aucun fichier dans le répertoire","duplicate_task":"Tâche en double","duplicate_tracker":"Outil de suivi en double","this_task_not_ready":"Cette tâche n\'est pas prête. Suspendre cette tâche la supprimera directement.","some_task_not_ready":"Certaines tâches ne sont pas prêtes. Suspendre ces tâches les supprimera directement.","failed_to_delete_files":"Échec de la suppression des fichiers","failed_to_delete_files_desc":"Échec de la suppression de certains fichiers de la tâche. Vous devrez peut-être les supprimer manuellement","unknown_error":"Erreur inconnue : {0}","more_files_are_not_shown":"({0} plus de fichiers ne sont pas affichés pour des raisons de performances)","no_available_file":"Aucun fichier disponible. Veuillez attendre que la tâche soit prête.","service_worker_error":"Impossible de charger ServiceWorker pour jouer. Votre navigateur peut ne pas prendre en charge cette fonctionnalité ou le ServiceWorker n\'est pas activé. Vous devrez peut-être recharger cette page et réessayer.","add_task_first":"Vous devez d\'abord ajouter une tâche.","player_task_time":"Le joueur prend trop de secondes pour se préparer à jouer. Il y a peut-être quelque chose qui ne va pas avec la tâche.","web_mode_hint":"Le mode Web de ${displayName} ne prend en charge que les pairs WebRTC. Pour une meilleure expérience, veuillez télécharger l\'application de bureau ${displayName}.","web_mode_task_hint":"Cliquez sur les boutons ci-dessous pour ajouter une tâche. Vous ne pouvez ajouter qu\'une seule tâche à la fois.","save_to_local":"Enregistrer en local","save_as_zip":"Enregistrer au format ZIP","creating_save_file":"Création du fichier de sauvegarde...","upload_as_one_directory":"Télécharger comme un seul répertoire","upload_as_single_files":"Télécharger en tant que fichiers uniques","web_mode_upload_single":"Vous ne pouvez télécharger qu\'un seul fichier en mode Web","download_success":"Télécharger avec succès","download_fail":"Échec du téléchargement","wait_for_downloaded_to_share":"Veuillez attendre que la tâche soit téléchargée avant de partager.","download_with_cellular":"Télécharger des tâches à l\'aide du cellulaire","download_with_cellular_desc":"Vous utilisez le réseau cellulaire. Les tâches de téléchargement avec cellulaire peuvent entraîner des frais supplémentaires par votre opérateur.","download_with_cellular_confirm":"Toujours télécharger avec le cellulaire","language":"Langue","appearance":"Apparence","darkModeSystem":"Système","darkModeLight":"Lumière","darkModeDark":"Sombre","basic_setting":"Basique","hideMenu":"Masquer le menu de l\'application (Windows et Linux uniquement)","autoHide":"Masquer automatiquement la fenêtre","autoStart":"Ouvrir à la connexion","restore":"Conserver la taille et la position de la fenêtre lors de la sortie","autoStartUnfinished":"Reprendre automatiquement toutes les tâches inachevées","default_download_path":"Chemin par défaut","download_directory":"Répertoire de téléchargement","upload_directory":"Répertoire de téléchargement","enable_auto_upload":"Activer le téléchargement automatique","unlimit_upload_amount":"Montant de téléchargement illimité","unlimit_upload_warning":"Autoriser le téléchargement d\'une grande quantité de fichiers. Cela peut causer des problèmes de performances","start":"Démarrer","transport_setting":"Transmission","upload_limit":"Limite de téléchargement","download_limit":"Limite de téléchargement","payed_user_share_rate":"Taux de partage des utilisateurs payants","unlimited":"Illimité","limit_input_error":"Le nombre limite doit être positif","BT_setting":"Paramètres de tâche","saveLinkSeed":"Enregistrer le lien en tant que fichier de tâche","autoDownload":"Télécharger automatiquement le lien et le contenu","continuousSeeding":"Continuez à semer jusqu\'à ce que vous l\'arrêtiez manuellement","seedSharingRate":"Rapport de semences","seedTime":"Temps d\'amorçage (minutes)","task_manage":"Gestion des tâches","maximumDownloadNum":"Tâches actives maximales","maximumConnectionsNum":"Connexion maximale par serveur","range_error":"La plage doit être comprise entre {0} et {1}","random":"aléatoire","breakpointContinuation":"Continuer","automaticSkip":"Afficher automatiquement le téléchargement après l\'ajout d\'une tâche","afterNotification":"Notification une fois le téléchargement terminé","deleteConfirm":"Aucune confirmation n\'est requise avant de supprimer la tâche","submit":"Enregistrer et appliquer","discard":"Jeter","reset":"Réinitialiser","reset_all_settings":"Réinitialiser tous les réglages?","preferences_resetted":"Préférences réinitialisées","traditional_chinese":"chinois traditionnel","japanese":"Japonais","english":"Anglais","chinese":"Chinois simplifié","advancedSettings":"Avancé","autoUpdate":"Mise à jour automatique","autoCheckUpdate":"Vérifier automatiquement la mise à jour","proxy":"Procuration","useProxyService":"Activer le proxy","trackerService":"Serveurs de suivi","recommendUse":"Recommandé","autoUpdateTrackerServiceList":"Mettre à jour automatiquement la liste des trackers tous les jours","manualUpdateTracker":"Mise à jour manuelle","manualUpdateSuccess":"Mise à jour réussie des serveurs de suivi","manualUpdateFail":"Échec de la mise à jour depuis :","listenPort":"Ports d\'écoute","BTlistenPort":"Port de transmission de données","DHTlistenPort":"Port de hachage distribué","protocols":"Protocoles compatibles","setDefaultClientForFollowingProtocols":"Définir comme client par défaut pour les protocoles suivants","magnetUrl":"Aimant","video_file":"Fichier vidéo","audio_file":"Fichier audio","security":"Sécurité","impersonateUserAgent":"Agent utilisateur fictif","RPCauthorizationkey":"Secret RPC","viewDocument":"Afficher le manuel des secrets RPC","developer":"Développeur","applicationLogPath":"Chemin du journal de l\'application","downloadSessionPath":"Télécharger le chemin de la session","resetDownloadSessionRecord":"Réinitialiser la session de téléchargement","restoreInitialSettings":"Retour aux paramètres d\'usine","preferences_set_successfully":"Enregistrez les préférences avec succès !","preferences_set_fail":"Échec de l\'enregistrement des préférences !","change_not_save":"Les modifications ne sont pas enregistrées","discard_all_changes":"Supprimer toutes les modifications et quitter ?","stay_in_page":"Rester à la page","disk_usage":"Utilisation du disque","pause_if_less_space":"Mettre en pause et notifier si l\'espace est inférieur à (Mo)","default_video_player":"Lecteur vidéo par défaut","video_cache_time":"Cache de lecture de flux","minutes":"minutes","system_default":"Défaillance du système","media_player":"Lecteur multimédia","library_film_rate":"Tarif film disponible","library_show_explore":"Afficher la page [Explorer]","library_setting":"Réglage de la bibliothèque","library_sync_setting":"Paramètre de synchronisation de la bibliothèque","keychain_sync_status":"État de synchronisation du trousseau","sync_with_aws":"Synchroniser le trousseau avec Amazon Web Services","backup_to_local":"Sauvegarde dans un fichier local","enable_sync_with_aws":"Activer la synchronisation avec AWS","disable_sync_with_aws":"Désactiver la synchronisation avec AWS","disable_sync_with_aws_desc":"Cela supprimera la clé enregistrée sur le serveur. Veuillez vous assurer que vous avez déjà exporté votre clé.","input_independent_password":"Saisir un mot de passe indépendant","change_independent_password":"Changer le mot de passe indépendant","password_error":"Erreur de mot de passe","password_invalid":"mot de passe invalide","key_existed":"La clé existait","key_not_found":"Clé introuvable","library_recommend":"La bibliothèque recommande","show_all_channels":"Afficher toutes les chaînes dans la page de recommandation de la bibliothèque","not_logged_in":"Pas connecté","login_to_continue":"Connectez-vous pour continuer","mnemonic_code":"Code mnémonique","wordlist":"Liste de mots","restore_code":"Restaurer à partir du code","generate_code":"Générer du code","export_mnemonic_code":"Exporter le code mnémonique","import_mnemonic_code":"Importer le code mnémonique","print":"Imprimer","save_as_txt":"Enregistrer au format txt","save_as_pdf":"Enregistrer au format pdf","from_file":"À partir du fichier","not_valid_mnemonic_code":"Ceci n\'est pas un code mnémonique valide","cannot_parse_code_as_key":"Impossible d\'analyser ce code mnémonique en tant que clé de bibliothèque","import_key_hint":"Êtes-vous sûr d\'importer cette clé ? Cela récupérera votre ancienne clé dans la bibliothèque.","import_key_confirm":"Oui, importez-le.","library_preload":"Précharger les tâches de la bibliothèque","show_preload":"Afficher les tâches de préchargement","set_download":"Définir le répertoire de téléchargement","set_download_desc":"Pour la version macOS App Store, le répertoire de téléchargement par défaut se trouve dans le bac à sable de l\'application et sera supprimé après la désinstallation de l\'application. Si vous souhaitez conserver vos fichiers de téléchargement, vous devez sélectionner manuellement un autre répertoire de téléchargement.","home":"Maison","home_caption":"Téléchargement/téléchargement et fichiers multimédias","library":"Bibliothèque","library_caption":"Explorer les ressources médias","player":"Joueur","player_caption":"Lecteur multimédia","credits":"Crédits","credits_caption":"Vérifier le solde du compte","account":"Compte","account_caption":"Connexion/Inscription/Gestion","settings":"Paramètres","settings_caption":"Paramètres pour l\'application, le lecteur, le compte","development":"Développement","development_caption":"Mode développeur pour usage interne","basic":"Basique","basic_caption":"Paramètres de base","advanced":"Avancé","advanced_caption":"Réglages avancés","blockchain":"Portefeuille","blockchain_caption":"${displayName} Portefeuille décentralisé","internal_notice":"Avis de version interne","release_notes":"Notes de version","terms_and_conditions":"Termes et conditions","license_and_listen_notices":"Avis de licence et d\'écoute Open Source","close":"Fermer","success":"Succès","fail":"Échouer","account_email_invalid_address":"Adresse e-mail invalide","account_email_invalid_domain":"Domaine de messagerie invalide","account_email_unknown_status":"État de livraison des e-mails inconnu","account_email_unavailable_address":"Adresse e-mail indisponible","account_email_suppressed_address":"Adresse e-mail supprimée","account_loading":"Chargement...","account_is_required":"est requis","account_sign_in_your_account":"S\'identifier","account_username":"Nom d\'utilisateur","account_username_email_phone":"Numéro de téléphone ou email","account_password":"Mot de passe","account_new_password":"Nouveau mot de passe","account_re_enter_password":"Entrez à nouveau le mot de passe","account_password_not_equal":"Deux mots de passe ne sont pas égaux","account_new_password_same":"Le mot de passe est le même que le mot de passe d\'origine","account_forgot_your_password":"Mot de passe oublié?","account_reset_password":"Réinitialiser le mot de passe","account_sign_in":"Se connecter","account_signed_in":"Connecté","account_sign_up":"S\'inscrire","account_find_your_account":"Trouvez votre compte","account_enter_your_username":"Entrez votre numéro de téléphone ou email","account_search":"Recherche","account_email_sent_tip":"Un e-mail avec un code de vérification a été envoyé à votre adresse e-mail :","account_phone_sent_tip":"Un SMS avec un code de vérification a été envoyé sur votre téléphone :","account_email_phone_sent_tip":"Un e-mail et un SMS avec le code de vérification ont été envoyés respectivement à votre e-mail et à votre téléphone :","account_software_token_tip":"MFA est activé pour votre compte. Pour terminer la connexion, veuillez allumer ou afficher votre appareil et saisir le TOTP","account_reset_your_password":"réinitialisez votre mot de passe","account_verification_code":"Le code de vérification","account_resend_code":"Renvoyer le code","account_code_has_been_resent":"Le code de vérification a été renvoyé","account_password_has_been_reset":"Le mot de passe a été réinitialisé","account_submit":"Soumettre","account_sign_up_your_account":"Enregistrez votre compte","account_fill_required_fields":"Remplissez les champs obligatoires ci-dessous.","account_fill_optional_fields":"Remplissez les champs optionnels ci-dessous.","account_email":"E-mail","account_invitation":"Invitation","account_invitation_code":"Code d\'invitation","account_i_accept":"J\'accepte","account_license_terms":"la licence et les conditions","account_next":"Suivant","account_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions.","account_verify_fill_optional_fields":"Vérifiez et remplissez les champs optionnels.","account_nickname":"Surnom","account_gender":"Genre","account_male":"Mâle","account_female":"Femelle","account_not_say":"Ne pas dire","account_birthday":"Anniversaire","account_phone_number":"Numéro de téléphone","account_locale":"Locale","account_tip_verified":"Vérifié, Connexion...","account_verified":"vérifié","account_unverified":"non vérifié","account_signed_up":"Signé","account_verify_your_identity":"Vérifiez Votre Identité","account_finish":"Finir","account_signed_out":"Se déconnecter","account_change_password":"Changer le mot de passe","account_change_email":"Changer l\'e-mail","account_change_phone_number":"Changer de numéro de téléphone","account_sign_out":"se déconnecter","account_current_password":"Mot de passe actuel","account_re_enter_new_password":"ré-entrez le nouveau mot de passe","account_personal_information":"Information","account_edit":"modifier","account_reset":"réinitialiser","account_greeting":"Bonjour,","account_cancel":"Annuler","account_change":"changement","account_not_set":"pas encore défini","account_setting":"paramètre","account_copy_code":"copier le code","account_account_setting":"Compte","account_task_page":"Tâche de crédit","account_setting_caption":"Changer le mot de passe / Modifier les informations","account_security":"Sécurité","account_want_to_join":"Vouloirjoindre?","account_sign_in_now":"Se connecter","account_changed":"Modifié","account_clipboard_with_invitation_code":"Code d\'invitation copié","account_clipboard_with_code":"Le code copié","account_invitation_code_dialog_tip":"Vous enverrez à votre ami un e-mail ou un SMS avec un code d\'invitation :","account_available":"disponible","account_invited":"invité","account_used":"utilisé","account_invitation_code_sent":"Le code d\'invitation a été envoyé","account_invitation_channel_required":"Remplissez au moins un canal d\'invitation","account_no_verification_code":"Vous ne pouvez pas recevoir le code de vérification ?","account_no_phone_number":"Pas de numéro de téléphone ?","account_sign_up_by_email":"Inscrivez-vous par email","account_no_email":"Pas d\'e-mail ?","account_sign_up_by_phone_number":"Inscrivez-vous par numéro de téléphone","account_no_totp":"Pas de TOTP ?","account_tip_no_totp":"S\'il n\'y a pas de TOTP, veuillez d\'abord configurer TOTP","account_setup_totp":"Configurer le TOTP","account_contact_information":"Coordonnées","account_delete_account":"Supprimer le compte","account_deleted":"Supprimé","account_can_not_mfa":"MFA en difficulté ?","account_set_mfa_type":"Configurer MFA","account_disable_mfa":"Désactiver MFA","account_disabled_mfa":"MFA désactivé","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Non recommandé","account_oauth_sign_in_with":"Connectez-vous avec {provider}","account_sign_in_failed":"Échec de la connexion","account_tip_oath_sign_up":"L\'email correspondant au compte {provider} actuel : {email} n\'a pas encore créé de compte","account_tip_confirm_delete_account":"Entrez le mot de passe du compte actuel pour confirmer que vous souhaitez supprimer le compte actuel. (Les comptes supprimés ne peuvent pas être restaurés)","account_tip_config_mfa":"Vous pouvez choisir d\'utiliser un SMS ou un mot de passe à usage unique basé sur le temps (TOTP) comme authentification secondaire","account_error_can_not_enable_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer MFA","account_tip_can_not_enable_sms_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer SMS MFA","account_tip_can_not_enable_totp_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer TOTP MFA","account_tip_setup_totp":"Utilisez des applications telles que Authenticator pour scanner le code QR ci-dessous ou copiez le code manuellement pour ajouter un jeton de sécurité","account_tip_verify_totp":"Vérifiez votre TOTP","account_link_your_social_account":"Liez votre compte social","account_unlink_your_social_account":"Dissocier le compte social","account_tip_confirm_link":"Êtes-vous sûr de vouloir lier le compte actuel à votre compte {provider} ?","account_tip_confirm_unlink":"Êtes-vous sûr d\'annuler votre compte lié {provider} ?","account_tip_linking":"obligatoire...","account_tip_unlinking":"Sans engagement...","account_linked":"Bondir","account_unlinked":"Non lié","account_error_can_not_link_to_the_linked_account":"Le compte social actuel est lié à un autre compte","account_error_can_not_link_to_the_mismatched_email":"Le compte actuel et l\'adresse e-mail du compte social sont incohérents","account_error_can_not_link_before_email_verified":"Le compte social ne peut pas être lié car le compte actuel n\'est pas lié à un e-mail vérifié","account_tip_confirm_verify_email_phone":"Voulez-vous envoyer un code de vérification à l\'adresse e-mail et au numéro de téléphone du compte actuel pour vérifier votre identité ?","account_tip_confirm_verify_phone":"Voulez-vous envoyer un code de vérification au numéro de téléphone actuel pour vérifier votre identité ?","account_error_1_message_60_seconds":"Un seul SMS ou e-mail peut être envoyé toutes les 60 secondes, attendez encore {delta} secondes","account_error_10_messages_per_day":"Chaque téléphone mobile ou e-mail ne peut envoyer que 10 messages en 24 heures","account_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","Network Error":"Il y a un problème avec le réseau, veuillez réessayer plus tard","account_error_user_not_exist":"L\'utilisateur n\'existe pas","account_error_incorrect_username_or_password":"identifiant ou mot de passe incorrect","account_error_incorrect_original_password":"Mot de passe d\'origine incorrect","account_error_incorrect_password":"Mot de passe incorrect","account_error_username_not_found":"Nom d\'utilisateur introuvable","account_error_can_not_reset_for_no_verified":"Impossible de réinitialiser le mot de passe pour le compte non vérifié","account_error_invalid_verification_code":"Code de vérification incorrect, veuillez réessayer","account_error_expired_verification_code":"Le code de vérification a expiré, veuillez réessayer","account_error_password_not_long_enough":"Le mot de passe n\'est pas assez long","account_error_attempt_limit_exceeded":"Limite de tentatives dépassée, veuillez réessayer après un certain temps.","account_error_password_attempts_exceeded":"Tentatives de mot de passe dépassées.","account_error_invalid_phone_number_format":"Format de numéro de téléphone invalide","account_error_no_cell_phone_prefix":"Veuillez sélectionner le préfixe du numéro de téléphone","account_error_username_already_exists":"Cet identifiant existe déjà","account_error_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions","account_error_inactive_code":"Le code d\'invitation n\'est pas un code activé","account_error_non_existent_code":"Le code d\'invitation est inexistant","account_error_unexpected":"Erreur inattendue","account_error_can_not_change_email_before_phone_bound":"L\'e-mail ne peut pas être modifié avant que le numéro de téléphone ne soit lié","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail ne peut pas être modifié avant de dissocier le compte social","account_error_can_not_change_phone_before_email_bound":"Le numéro de téléphone ne peut pas être modifié avant que l\'e-mail ne soit lié","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossible de modifier l\'adresse e-mail ou le numéro de téléphone mobile avant de désactiver MFA","account_error_not_supported_yet":"Pas de soutien pour le moment","account_error_same_email":"La nouvelle adresse e-mail ne peut pas être la même que l\'adresse e-mail d\'origine","account_error_same_phone":"Le nouveau numéro de téléphone ne peut pas être le même que le numéro de téléphone d\'origine","account_error_email_not_exists":"L\'adresse e-mail n\'existe pas","account_error_email_already_exists":"Un compte avec l\'adresse e-mail indiquée existe déjà.","account_error_phone_already_exists":"Un compte avec le numéro de téléphone indiqué existe déjà.","account_error_mfa_token_mismatch":"Incompatibilité de code de jeton logiciel","account_error_recaptcha_not_loaded":"Il y a un problème avec le réseau. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_recaptcha_validation_failed":"La validation ReCAPTCHA a échoué. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_sign_in_in_progress":"Tentative de connexion en attente déjà en cours","account_field_range":"Limiter la saisie de {0}-{1} caractères","account_field_only_alphanumeric":"Ne prend en charge que les caractères alphanumériques","account_field_only_alphanumeric_and_symbol":"Ne prend en charge que les caractères alphanumériques et les symboles","account_field_only_chinese_alphanumeric_space_underline":"Ne prend en charge que les caractères alphanumériques, les espaces et les traits de soulignement","account_field_prefix_without_number_space":"Le premier caractère ne peut pas être un chiffre ou un espace","account_field_suffix_without_space":"Ne peut pas se terminer par un espace","account_field_without_repeat_space":"Impossible d\'utiliser plusieurs espaces à la suite","account_field_can_not_only_alphanumeric":"Vous ne pouvez pas simplement utiliser des lettres ou des chiffres","account_field_must_have_number_characters":"Doit contenir des chiffres","account_field_verification_code":"Le code de vérification doit comporter six chiffres","account_field_invitation_code":"Le code d\'invitation doit être alphanumérique","account_field_phone_number":"Format de numéro de téléphone invalide","account_invalid_email_format":"Format d\'email invalide","account_sign_out_confirm":"Êtes-vous sûr de vous déconnecter ? Cela arrêtera toutes les tâches.","account_sign_out_anyway":"Déconnectez-vous quand même","account_signing_out":"Déconnecter...","account_request_save_settings":"Les paramètres ne sont pas enregistrés. Vous devez enregistrer les modifications avant de vous déconnecter.","pay":"Payer","pay_with_credit":"Payez pour l\'accélération du téléchargement. Besoin d\'environ {0} de crédit","pay_with_credit_payed":"Accélération. Encore besoin d\'environ {0} de crédit","create_payment":"Créer un paiement","pay_target":"Cible","pay_for_torrent":"Payer pour {0}","your_subid":"Votre sous-identifiant","your_credits":"Vos crédits","pay_point_for_data":"Payez {0} point pour {1} de données","auto_renew":"Activer le renouvellement automatique","transaction_details":"détails de la transaction","transaction_id":"Identifiant","transaction_payer":"Payer","transaction_payee":"Bénéficiaire","transaction_category":"Catégorie","transaction_changed_amount":"Montant modifié","transaction_meta":"Méta","transaction_status":"Statut","transaction_creation_time":"Temps de creation","receipt_code":"Code de reçu","transfer_amount":"Montant du transfert","code_the_receipt_code":"Copiez le code de reçu ci-dessous au payeur","fill_the_receipt_code":"Virement en renseignant le code de paiement fourni par le bénéficiaire","expense":"Frais","copied":"Copié","transfer":"Transfert","receive":"Recevoir","copy":"Copie","withdraw_fund":"Retirer des fonds","category_paydata_payer":"Coût des données","category_paydata_payee":"Revenu de données","category_transfer":"Transfert","category_bonus":"Prime","category_recharge":"Recharger","status_pending":"en attente","status_completed":"complété","status_finish":"finir","status_failed":"échoué","tip_invalid_receiver":"Code récepteur invalide","tip_invalid_amount":"Le montant du crédit doit être un flottant compris entre 0 et 1 000 (la précision minimale est de 0,001)","credit_get_more":"Obtenez plus de crédits","credit_no_data":"Pas de données disponibles","credit_loading":"Chargement...","credit_not_enough_amount":"Pas assez de crédits","credit_amount_not_enough":"Pas assez de crédits","credit_payee_not_exist":"Le bénéficiaire n\'existe pas","credit_invalid_amount":"Montant du crédit invalide","credit_can_not_transfer_to_yourself":"Impossible de transférer à vous-même","credit_latest":"Dernier","credit_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","add_subtitles":"Ajouter des sous-titres","open_file":"Fichier ouvert...","advanced_options":"Options avancées","title":"Titre","location":"emplacement","subtitle_file":"fichier de sous-titres","unsupported_subtitle_type":"Le type de fichier de {0} n\'est pas un type de sous-titre pris en charge","not_default_player":"Le lecteur vidéo par défaut n\'est pas défini","this_is_an_audio_file":"Ceci est un fichier audio","the_added_subtitle_already_exists":"Le sous-titre ajouté existe déjà","stop_stream_player":"La diffusion multimédia a été interrompue car la tâche a été interrompue ou supprimée","stop_player":"Le lecteur a été fermé car le fichier a été supprimé","playing_timeout_hint":"Délai d\'attente expiré. Veuillez vérifier la tâche","autoplay_hint":"La lecture automatique peut être bloquée par votre navigateur. Si le lecteur ne joue pas, essayez de cliquer sur l\'écran pour continuer","remove_playing_confirm":"{0} est toujours en cours de lecture, supprimez-le pour arrêter le lecteur. Êtes-vous sûr de le supprimer ?","unsupported_in_browser":"Pas encore pris en charge en mode navigateur","client":"Client","warning":"Avertissement","enable":"Activer","disable":"Désactiver","auto":"Auto","encrypt_connection":"Chiffrer la connexion","encrypted_connection":"Connexion cryptée","non_encrypted_connection":"Connexion non cryptée","connected_wires_not_disconnect":"Les fils connectés ne seront pas déconnectés","audio":"l\'audio","video":"vidéo","image":"image","subtitle":"Sous-titre","zip":"zipper","text":"texte","unknown":"inconnu","add":"Ajouter","undo":"annuler","backup":"Sauvegarde","not_default_app":"${displayName} n\'est pas votre application par défaut pour les torrents et les médias, voulez-vous la définir par défaut ?","dont_show_again":"Ne plus afficher","go_to_settings":"Aller aux paramètres","about_alphabiz":"Environ ${displayName}","last_check_at":"Dernière vérification à","update_channel":"Mettre à jour la chaîne","check_for_update":"Vérifier la mise à jour","checking_for_update":"Vérification de la mise à jour...","no_update_available":"Pas de mise a jour disponible","update_available":"Mise à jour disponible","update_now":"Mettez à jour maintenant","update_later":"Mise à jour plus tard","click_to_update":"Cliquez sur le bouton METTRE À JOUR MAINTENANT pour télécharger et mettre à jour","update_failed":"Mise à jour a échoué","update_failed_message":"Une erreur s\'est produite lors de la mise à jour :","check_shasum_failed":"Échec de la vérification de l\'intégrité pour le programme d\'installation","downloading_update":"Téléchargement de la mise à jour...","ready_to_update":"Prêt à mettre à jour","restart_to_update":"La mise à jour est téléchargée. ${displayName} sortira pour mettre à jour pendant quelques instants.","already_latest":"La version actuelle ({0}) est déjà la dernière","update_timeout":"Délai de mise à jour","no_available_release":"Aucune version disponible","no_available_installer":"Aucun programme d\'installation disponible","feedback":"Retour","select_a_type":"Sélectionnez un type","category":"Catégorie","select_a_category":"Choisir une catégorie","require_title":"Le titre est requis","describe_your_problem":"Décrivez votre problème","report_a_bug":"Signaler un bug","request_a_new_feature":"Demander une nouvelle fonctionnalité","download_or_upload":"Téléchargement","others":"Autres","submit_with_system_info":"Soumettre avec les informations système","submit_feedback":"Soumettre des commentaires","tweet_us":"Tweetez-nous","tweet_too_long":"Le tweet est trop long","delete_characters":"Veuillez supprimer au moins {0} caractère(s)","rest_characters":"Vous pouvez saisir {0} plus de caractère(s)","update_alphabiz":"Mettre à jour ${displayName}","current_version":"Version actuelle","cancel_update":"Annuler la mise à jour","slow_download_speed":"Téléchargement trop lent","slow_download_speed_caption":"Le téléchargement du programme d\'installation est trop lent maintenant. Veuillez vérifier l\'état du réseau","update_canceled":"Mise à jour annulée","current_version_release_time":"Date de sortie de la version actuelle","expired_app":"${displayName} Expiré","version_out_of_date":"Version obsolète","have_to_update":"La version de ${displayName} est obsolète. Certains protocoles ou API sont obsolètes. Vous devez mettre à jour ${displayName} avant de continuer.","exit_alphabiz":"Sortie ${displayName}","exit_and_update":"Quitter et appliquer la mise à jour","new_version_hint":"Une nouvelle version est disponible","no_new_version":"Aucune nouvelle version disponible","current_is_latest":"La version actuelle est déjà la plus récente","click_to_check_update":"Cliquez sur le bouton [CHECK FOR UPDATE] pour vérifier la mise à jour","download_latest_version_from_website":"Veuillez visiter le site officiel pour télécharger la dernière version","to_the_website":"Vers le site","network_diagnotic":"Diagnostique réseau","diagnotic":"Diagnostique","click_to_check":"Cliquez pour vérifier","click_to_check_again":"Cliquez pour vérifier à nouveau","checking":"Vérification","online":"En ligne","offline":"Hors ligne","dns_look_up":"Recherche DNS","error":"Erreur","aws_service":"ServicesAWS","network_pings":"Ping réseau","not_found":"Pas trouvé","packet_loss":"Perte de paquet(s)","official_site":"Site officiel","download_test":"Télécharger l\'essai","test_task":"Tâche d\'essai {0}","download_failed":"Échec du téléchargement","second_spend":"{0} dépenses","open_default_player_failed":"Impossible d\'ouvrir le lecteur par défaut","copied_to_clipboard":"Copié dans le presse-papier","go_to":"Aller à","region_not_available":"Région non disponible","region_not_available_message":"Désolé! Votre région n\'est pas disponible pour utiliser cette application. Cette application se fermera après {0} secondes","confirm":"Confirmer","no_available_result":"Aucun résultat disponible","invalid_password_format":"format de mot de passe invalide","invalid_password_format_same":"Le mot de passe est le même que le mot de passe d\'origine","error_password":"Erreur de mot de passe","keychain_setting":"Porte-clés","setting_description":"Stockage dans le cloud : enregistrez les données clés dans le cloud.\\nModifier le mot de passe : modifier le mot de passe de la clé de la bibliothèque multimédia.\\nMnémonique : une méthode alternative pour générer et restaurer des clés.\\nImporter la clé locale : importez la clé enregistrée localement dans la médiathèque.\\nClé d\'exportation : enregistre les données actuelles de la bibliothèque multimédia en local ou dans le cloud.\\nClé de sauvegarde vers le cloud : mettez à jour les données actuelles de la bibliothèque multimédia vers le cloud pour la sauvegarde.","refresh_status":"État de mise à jour","confirm_import_key":"Confirmer la clé d\'importation","confirm_update_cloud_key":"Vous avez déjà une clé dans le cloud. La mise à jour de la clé écrasera la clé d\'origine. Êtes-vous sûr de vouloir mettre à jour la clé stockée dans le cloud","export_key_with_cloud":"Entrez le mot de passe indépendant que vous avez défini pour exporter la clé de bibliothèque stockée dans le cloud et verrouillez le fichier de clé avec le mot de passe de déverrouillage","store_cloud_key_prompt_password":"Entrez un mot de passe indépendant pour stocker la clé de la bibliothèque dans le cloud","update_cloud_key_prompt_password":"Définissez un mot de passe indépendant pour chiffrer la clé de la bibliothèque, puis mettez-la à jour dans le cloud","enable_cloud_storage_prompt_password":"Définissez un mot de passe pour la clé stockée dans le cloud, grâce auquel vous pouvez récupérer la clé depuis le cloud","input_unlock_password":"Définir le mot de passe de déverrouillage","export_local_prompt_password":"Veuillez définir un mot de passe de déverrouillage pour chiffrer votre fichier clé. Nous n\'enregistrerons pas ce mot de passe pour vous, donc si vous perdez votre mot de passe, vous ne pourrez pas déverrouiller votre clé de bibliothèque","require_unlock_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","require_independent_password":"Entrez le mot de passe indépendant pour obtenir la clé stockée dans le cloud","import_local_prompt_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","select_encrypt_mode":"Sélectionnez le mode de cryptage","update_cloud_key":"Mettre à jour la clé stockée dans le cloud","backup_to_cloud":"Sauvegardez la clé de la bibliothèque dans le cloud","save_local":"Enregistrez la clé de la bibliothèque en tant que fichier crypté local","create_new_key":"Créer une nouvelle clé de bibliothèque","creating_lib_key":"Création de la clé de bibliothèque...","loading_lib_key":"Chargement de la clé de bibliothèque...","failed_to_create_lib_key":"Échec de la création de la clé de bibliothèque","failed_to_load_lib_key":"Impossible de charger la clé de la bibliothèque","import_local_key":"Importer la clé localement","import_lib_key_from_local":"Importer une clé de bibliothèque localement","import_from_cloud":"Importer la clé de la bibliothèque depuis le cloud","create_or_import_key":"Créer ou importer une clé de bibliothèque","create_or_import_key_desc":"La clé de bibliothèque est une clé indépendante utilisée pour récupérer et publier du contenu avec une base de données décentralisée.","store_your_lib_key":"Stockez votre clé de bibliothèque","export_cloud_key":"Exporter la clé depuis le cloud","export_current_key":"Exporter la clé actuelle","change_password":"Changer le mot de passe","enable_cloud_storage":"Activer le stockage en nuage","disable_cloud_storage":"Désactiver le stockage cloud","disable_cloud_storage_desc":"Désactiver le stockage dans le cloud supprimera la clé enregistrée dans le cloud, veuillez vous assurer que la clé est enregistrée localement","sync_at":"Synchroniser à : {time}","cloud_storage_enabled":"Synchroniser le trousseau avec {storage}","cloud_storage_disabled":"Stockage cloud désactivé","saved_locally":"Enregistré localement","export_key":"Exporter le fichier clé","cloud_independent_password":"Mot de passe indépendant du cloud","key_file_unlock_password":"Mot de passe de déverrouillage du fichier clé","re_enter_unlock_password":"Entrez à nouveau le mot de passe de déverrouillage","independent_password_not_enabled":"Le mot de passe actuel est le mot de passe du compte Alphabiz (aucun mot de passe indépendant n\'est défini)","use_cognito_hash":"Utiliser le mot de passe du compte Alphabiz","use_independent_password":"Utiliser un mot de passe indépendant","keychain_lib":"clé de la bibliothèque","loading_keychain_state":"Chargement du trousseau...","backing_up":"Sauvegarde...","backup_current_key":"Sauvegarder la clé actuelle sur le Cloud","cloud_lib_key_not_existed":"la clé de bibliothèque n\'existe pas dans le Cloud","open_keychain_file":"Ouvrir le fichier du trousseau","confirm_open_abk":"Voulez-vous ouvrir le fichier ABK","use_the_key":"Utilisez la clé","backup_the_key":"Sauvegardez la clé dans le cloud","keychain_data_does_not_exist":"Les données du trousseau n\'existent pas","timeout of 0ms exceeded":"Il y a un problème avec le réseau, veuillez réessayer plus tard","XhrError":"Il y a un problème avec le réseau, veuillez réessayer plus tard","payer credit amount is not enough":"Pas assez de crédits","payee does not exist":"Le bénéficiaire n\'existe pas","block_list_manage":"Gérer la liste de blocage","blocked_users":"Utilisateurs bloqués","blocked_channels":"Chaînes bloquées","unblock_user":"Débloquer l\'utilisateur","unblock_channel":"Débloquer la chaîne","no_blocked_user":"Aucun utilisateur bloqué","no_blocked_channel":"Aucune chaîne bloquée","field_required":"{0} est requis","setting":"Paramètre","unknown_media":"Média inconnu","settings_button_visible":"Bouton visible","settings_setting":"Paramètre","settings_playback_rate":"Taux de lecture","settings_subtitle":"Sous-titre","settings_pip":"Pépin","settings_fullscreen":"Plein écran","settings_subtitle_options":"Options de sous-titres","settings_normal":"Normale","settings_italic":"Italique","settings_lighter":"Plus léger","settings_bolder":"Plus audacieux","settings_small":"Petit","settings_large":"Grand","about":"À propos","services":"Prestations de service","hide":"Cacher","hide_others":"Masquer les autres","show_all":"Afficher tout","quit":"Arrêter","edit":"Modifier","redo":"Refaire","cut":"Couper","paste":"Pâte","select_all":"Tout sélectionner","view":"Voir","reload":"Recharger","toggle_full_screen":"Basculer en plein écran","toggle_developer_tools":"Basculer les outils de développement","window":"Fenêtre","minimize":"Minimiser","bring_all_to_front":"Amenez tout au premier plan","help":"Aider","github_repo":"Dépôt Github","issues":"Problèmes","learn_more":"Apprendre encore plus","learn_spelling":"Apprendre l\'orthographe","lookup_selection":"Rechercher \\"{selection}\\"","search_with_google":"Rechercher avec Google","save_as":"Enregistrer sous","save_image":"Enregistrer l\'image","save_image_as":"Enregistrer l\'image sous ...","copy_link":"Copier le lien","save_link_as":"Enregistrer le lien sous ...","copy_image":"Copier l\'image","copy_image_as":"Copier l\'image sous...","copy_image_address":"Copier l\'adresse de l\'image","download_complete":"Téléchargement complet","download_complete_message":"{0} est téléchargé","is_running":"{0} est en cours d\'exécution","open":"Ouvert {0}","launch_problem":"Problème de lancement","ask_clear_data":"Il semble que vous essayez de lancer {0} mais que vous avez échoué plusieurs fois.\\nVoulez-vous effacer toutes les données de l\'application et essayer de lancer plus tard ?","launch_directly":"Lancer directement","clear_all_data":"Effacer toutes les données","ask_clear_confirm":"Cela supprimera toutes les configurations, les journaux et les données utilisateur !\\nAprès cela, vous devrez peut-être relancer {0}.\\nVoulez-vous vraiment effacer les données ?","confirm_launch":"Non, lancer directement","confirm_clear":"Oui, effacer toutes les données"}')},1278:function(e,t,a){},13:function(e,t){},1357:function(e,t,a){"use strict";a("5960")},14:function(e,t){},1463:function(e,t,a){"use strict";a("b91a")},15:function(e,t){},16:function(e,t){},1690:function(e,t){e.exports=require("events")},17:function(e,t){},1738:function(e,t,a){"use strict";a.d(t,"a",(function(){return f}));a("0c26"),a("a1c1"),a("f200");var n=a("35f4"),o=a("d710"),i=a.n(o),r=a("0f0c"),s=(a("d4b5"),a("5584"));const l=({measurementId:e,apiSecret:t,clientId:a,name:n,params:o})=>{var i;const r=null===(i=s["a"].state.account)||void 0===i?void 0:i.sub;console.log("Measure",a,r,n,o);const l={client_id:a,events:[{name:n,params:o}]};return r&&(l.user_id=r),fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${e}&api_secret=${t}`,{method:"POST",body:JSON.stringify(l)})};var c=l;const d=Object(n["a"])("0123456789abcdef"),u=d(20),_={session_token:u,appName:i.a.displayName,version:Object(r["a"])("version"),channel:Object(r["a"])("channel"),packageFormat:Object(r["a"])("packageFormat")||"unknown"};class p{constructor(e,t){this.customParams={},this.trackingID=e,this.apiSecret=t,this.uaId=e.replace("G-","UA-").replace(/.$/,(e=>"-"+e)),console.log("Set UniversalAnalytics ID to",this.uaId),this.disabled=!1}config(){this.disabled||(gtag("js",new Date),gtag("config",this.trackingID))}set(e,t){this.disabled||(null!==t?this.customParams[e]=t:delete this.customParams[e])}async get(e){}async getClientId(){return new Promise((e=>gtag("get",this.uaId,"client_id",(t=>{console.log("CLIENT_ID",t),e(t)}))))}async send(e,t={}){if(this.disabled)return;const a=Object.assign({},t,_);return new Promise((async t=>{if(console.log("[GA] send",e,a),location.protocol.startsWith("https"))gtag("event",e,Object.assign(a,{event_callback:()=>{t()}}));else{console.log("Use measurement protocol");const n=await this.getClientId();console.log("Start measure with",n),c({measurementId:this.trackingID,apiSecret:this.apiSecret,clientId:n,name:e,params:a}).then((t=>{console.log("Finish measure",e),204!==t.status&&console.warn(`Warning: expect response code 204 but got ${t.status}: ${t.statusText||"(empty)"}`)})).catch((e=>{console.log("Error sending measure",e)})).finally(t)}}))}disable(){this.disabled=!0}enable(){this.disabled=!1}}var m=p,h=a("47fc");const g={MEASUREMENT_ID:"G-9NE14P89WD",STREAM_ID:"4617180072",API_SECRET:"r7q0lwYuQeSimEJ5JnVFuQ"},f=new m(g.MEASUREMENT_ID,g.API_SECRET);t["b"]=(e,{app:t,router:a})=>{(process&&process.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))&&(console.log("DISABLE GOOGLE ANALYTICS"),f.disable()),f.config(),setTimeout((async()=>{const e=b();console.log("[GA] App Data",e),await f.send("analytics_test_app_data",e)}),1e4);let n=Date.now();f.send("app_launch",{timestamp:n}),a.afterEach(((e,t)=>{if("/"===t.path||e.path===t.path)return;const a=Date.now(),o=a-n;n=a,f.send("app_route",{to:e.path,from:t.path,stayTime:o})})),e.prototype.$ga=f,console.log("Init Google Analytics")};function b(){var e;const t=Object(h["a"])(),{packageFormat:n,version:o}=s(),r=o.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:i.a.name,app_type:"electron",app_env:"production",app_format:null!==n&&void 0!==n?n:"unknown",app_version:r.version,app_channel:null!==(e=r.channel)&&void 0!==e?e:"stable",app_screen:t.screen,app_os:t.os,app_os_version:t.osVersion,app_arch:t.arch};function s(){{const e=a("bc7b"),t=a("d6fe"),n="alphabiz"===process.env.REPO?t.resolve(process.cwd(),"public"):process.resourcesPath,o="version.json",i=e.readFileSync(t.resolve(n,o));return JSON.parse(i)}}}},1761:function(e,t,a){"use strict";a("5d03")},"186c":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},1926:function(e,t,a){"use strict";a.d(t,"b",(function(){return Ae}));a("a1c1"),a("de6c"),a("d4b5"),a("dc89"),a("2425"),a("7a76");var n=a("ff9b"),o=a("4d79"),i=a("d710"),r=a.n(i);const s=r.a.displayName;var l={repeat_add:"任务已添加,请勿重复添加",upload:"上传",download:"下载",delete:"删除",delete_task:"删除任务",delete_confirm_message:"是否删除该任务? 此操作不可恢复",also_delete_files:"同时删除文件",default_delete_files:"删除任务时默认删除已下载的文件",not_now:"暂不处理",delete_autoupload_confirm:"此任务文件位于自动上传文件夹, 删除任务将同时删除对应文件",delete_anyway:"仍要删除",upload_too_many_files:"上传文件过多",ask_if_unlimit_upload_amount:"自动上传文件夹包含过多文件. 是否取消上传数量限制? *此操作可能造成性能问题",disable_limitation:"取消限制",not_length:"暂不支持,多文件操作,请配合",download_torrent:"下载该任务",upload_torrent:"上传该任务",files:"文件",file:"文件",folder:"文件夹",start_all:"全部开始",pause_all:"全部暂停",remove_all:"全部移除",upload_all:"全部上传",clear_history:"清除历史",pause_all_finish_payments:"此操作将完成所有已支付的订单.",accelerating:"加速中",link_task:"链接任务",torrent_task:"文件任务",ok:"好的",cancel:"取消",download_directory_position:"下载目录位置",torrent_file:"任务文件",magnetic_link_incorrect:"链接格式不正确",delete_fail:"删除失败",pause:"暂停",paused:"已暂停",stop_torrent:"结束任务",seed:"上传",resume:"继续",downloading:"下载中",downloaded:"下载完成",uploading:"上传中",auto_uploading:"自动上传中",uploaded:"上传完成",pending:"等待其他任务完成",no_downloading_task:"没有下载中任务",remove_all_downloading_tasks:"是否移除所有下载中任务?",remove_all_upload_tasks:"是否移除所有上传任务?",remove_autoupload_files:"移除所有自动上传任务",remove_all_history:"是否移除历史下载记录?",verifying:"验证文件",waiting_for_verify:"等待验证文件",seeding:"上传中",completed:"已完成",status:"状态",task_name:"任务名",size:"大小",progress:"进度",sort:"排序",ascending:"升序",descending:"降序",file_loading:"文件加载中",loading:"加载中",unknown_status:"未知",play_while_downloading:"边下边播",upload_or_play:"上传 / 播放",play:"播放",ask_if_upload_file:"是否上传文件?",ask_if_upload_or_play:"是否上传/播放文件?",torrent_error:"添加任务时遇到错误:",no_peers:"多次尝试后仍未能与Peers建立连接",torrent_exists:"任务已存在",show_origin_torrent:"显示原始任务文件或链接",show_directory:"打开文件所在位置",task_num:"任务数",total_upload_speed:"上传速度",total_download_speed:"下载速度",path_missing:"Error: 找不到文件位置",origin_not_found:"获取任务信息失败",text_copied:"链接已复制到剪贴板",copy_magnet_uri:"复制链接地址",copy_download_uri:"复制下载链接",copy_share_uri:"复制社交分享链接",uri_copied:"链接已复制至剪贴板",uri_copy_failed:"复制链接失败",more:"更多",toggle_list_mode:"切换显示模式",comment:"评论",operations:"操作",open_directory:"打开所在文件夹",remaining:"剩余时间",created_time:"创建时间",used_time:"用时",completed_time:"完成时间",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分文件缺失.",common_peer:"普通用户",ab_peer:`${s} 用户`,ab_peer_verified:`${s} 注册用户`,ab_peer_available:`${s} peer 可用`,alphabiz_accelerating:`${s} 加速中`,income:"收入",income_info:"收入(今天/总计)",total_income_info:"收入: {0}(今天) / {1}(总计)",login_to_see_income:"登陆以查看收入统计",credit_cost:"积分支出",downloaded_by_payment:"付费下载量",file_not_found:"无法找到本地文件",no_task:"无任务",no_matched_task:"无法找到匹配的任务",space_not_enough:"磁盘空间不足",need_more_space:"需要 {0} 磁盘空间, 磁盘剩余空间为 {1} ({2} 为保留空间). 任务已暂停. 媒体库预加载已禁用. 您可以在[设置 - 进阶设置]中重新启用.",seeders:"做种",last_update:"最后更新",connecting:"连接中",connected:"已连接",request_timed_out:"请求超时",connection_failed:"连接失败",invalid_download_url:"下载链接错误",download_link:"下载链接",empty_files:"文件夹中没有文件",duplicate_task:"重复任务",duplicate_tracker:"重复 tracker",this_task_not_ready:"此任务尚未就绪,暂停该任务将直接移除它",some_task_not_ready:"部分任务尚未就绪,暂停这些任务将直接移除它们",failed_to_delete_files:"删除文件失败",failed_to_delete_files_desc:"无法删除部分任务文件,可能需要手动删除",unknown_error:"未知错误: {0}",more_files_are_not_shown:"(出于性能考虑,{0} 个文件未显示)",no_available_file:"没有可用的文件,请等待任务就绪",service_worker_error:"无法加载 ServiceWorker。您的浏览器可能不支持此特性,或者 ServiceWorker 尚未就绪。请刷新页面后重试。",add_task_first:"请先添加任务",player_task_time:"播放器准备时间过长,请检查任务是否就绪",web_mode_hint:`${s} Web 仅支持 WebRTC 种子。下载 ${s} 桌面版以获得最佳体验。`,web_mode_task_hint:"点击下方链接创建任务。Web 模式同时仅可创建一个任务。",save_to_local:"保存到本地",save_as_zip:"保存为 ZIP",creating_save_file:"正在创建文件...",upload_as_one_directory:"作为一个文件夹上传",upload_as_single_files:"作为单独的文件上传",web_mode_upload_single:"Web 模式下只能上传单个文件",download_success:"下载成功",download_fail:"下载失败",wait_for_downloaded_to_share:"请等待下载完成后进行分享。",download_with_cellular:"使用数据流量下载",download_with_cellular_desc:"您正在使用数据流量,下载时运营商可能会收取额外的费用。",download_with_cellular_confirm:"仍然使用数据流量"},c={language:"语言",appearance:"外观",darkModeSystem:"跟随系统",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基础设置",hideMenu:"隐藏菜单栏(仅支持Windows和Linux)",autoHide:"自动隐藏窗口",start:"启动",autoStart:"开机自动启动",restore:"恢复上次退出时窗口的大小和位置",autoStartUnfinished:"自动开始未完成的任务",default_download_path:"默认下载路径",download_directory:"下载目录",upload_directory:"上传目录",enable_auto_upload:"允许自动上传",unlimit_upload_amount:"不限制上传数量",unlimit_upload_warning:"允许同时上传大量文件. 此选项可能导致性能问题",transport_setting:"传输设置",upload_limit:"上传限速",download_limit:"下载限速",payed_user_share_rate:"付费用户上传比例",unlimited:"不限速",limit_input_error:"限速需为正数",BT_setting:"下载任务设置",saveLinkSeed:"保存链接元数据为任务文件",autoDownload:"自动开始下载链接任务、任务文件",continuousSeeding:"持续上传,直到手动停止",seedSharingRate:"分享率",seedTime:"上传时间(分钟)",task_manage:"任务管理",maximumDownloadNum:"同时下载的最大任务数",maximumConnectionsNum:"每个服务器最大的连接数",range_error:"范围需在{0}-{1}之间",random:"随机",breakpointContinuation:"断点续传",automaticSkip:"新建任务后自动跳转到下载页面",afterNotification:"下载完成后通知",deleteConfirm:"删除任务前无需确认",submit:"保存并应用",discard:"放弃",reset:"重置",reset_all_settings:"重置所有设置?",preferences_resetted:"偏好设置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"进阶设置",autoUpdate:"自动更新",autoCheckUpdate:"自动检查更新",proxy:"代理",useProxyService:"使用代理服务器",trackerService:"Tracker服务器",recommendUse:"推荐使用",autoUpdateTrackerServiceList:"每天自动更新Tracker服务器列表",manualUpdateTracker:"手动更新",manualUpdateSuccess:" Tracker服务器更新成功",manualUpdateFail:"更新以下Tracker服务器失败:",listenPort:"监听端口",BTlistenPort:"数据传输端口",DHTlistenPort:"分布式哈希通讯端口",protocols:"兼容以下协议",setDefaultClientForFollowingProtocols:"设置本软件为以下兼容协议的默认客户端",magnetUrl:"磁力链接",video_file:"视频文件",audio_file:"音频文件",security:"安全性",impersonateUserAgent:"模拟用户代理(UA)",RPCauthorizationkey:"RPC授权密钥",viewDocument:"查看说明文档",developer:"开发者",applicationLogPath:"应用日志路径",downloadSessionPath:"下载会话路径",resetDownloadSessionRecord:"重置下载会话记录",restoreInitialSettings:"恢复初始设置",preferences_set_successfully:"偏好设置成功!",preferences_set_fail:"偏好设置失败!",change_not_save:"修改未保存",discard_all_changes:"是否放弃所有更改?",stay_in_page:"留在此页",disk_usage:"保留磁盘空间",pause_if_less_space:"剩余空间小于此值时暂停并提醒(MB)",default_video_player:"默认视频播放器",video_cache_time:"边下边播缓存时间",minutes:"分钟",system_default:"系统默认",media_player:"媒体播放器",library_film_rate:"可见影片分级",library_show_explore:"显示[探索]页面",library_setting:"媒体库设置",library_sync_setting:"媒体库同步设置",keychain_sync_status:"密钥同步状态",sync_with_aws:"使用 Amazon Web Services 同步密钥",backup_to_local:"保存为本地文件",enable_sync_with_aws:"启用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作将移除保存在云端的密钥,请确保已将密钥保存至本地。",input_independent_password:"输入独立密码",change_independent_password:"修改独立密码",password_error:"密码错误",password_invalid:"密码格式错误",key_existed:"密钥已存在",key_not_found:"密钥不存在",library_recommend:"媒体库推荐",show_all_channels:"在媒体库推荐页显示所有频道",not_logged_in:"尚未登录",login_to_continue:"登陆以继续",mnemonic_code:"助记词",wordlist:"单词表",restore_code:"从助记词恢复",generate_code:"生成助记词",export_mnemonic_code:"导出助记词",import_mnemonic_code:"导入助记词",print:"打印",save_as_txt:"保存为 txt",save_as_pdf:"保存为 pdf",from_file:"从文件导入",not_valid_mnemonic_code:"助记词格式错误",cannot_parse_code_as_key:"无法将此助记词解析为密钥",import_key_hint:"是否确认导入此密钥?此操作将覆盖旧的密钥。",import_key_confirm:"确认导入",library_preload:"媒体库任务预加载",show_preload:"显示预加载任务",set_download:"设置下载文件夹",set_download_desc:"macOS App Store 版本默认保存位置为应用内部沙盒,在应用卸载时会一并删除。为了保留下载文件,您需要手动选择下载位置。"},d={home:"主页",home_caption:"下载/上传媒体文件",library:"媒体库",library_caption:"探索媒体资源",player:"播放器",player_caption:"视频播放",credits:"信用積分",credits_caption:"检查账户积分余额",account:"用户",account_caption:"个人用户配置",settings:"设置",settings_caption:"所有设置项",development:"开发者",development_caption:"应用开发者模式",basic:"主要设置",basic_caption:"主要的设置项",advanced:"进阶设置",advanced_caption:"进阶的设置项",blockchain:"钱包",blockchain_caption:"去中心化钱包",internal_notice:"内部版本声明",release_notes:"发行说明",terms_and_conditions:"条款和章程",license_and_listen_notices:"许可和监听开源说明",close:"关闭",success:"成功",fail:"失败"},u={credits:"信用积分",pay:"支付积分",pay_with_credit:"支付积分加速下载, 预计需要{0}积分",pay_with_credit_payed:"正在加速下载, 预计还需要{0}积分",create_payment:"创建积分订单",pay_target:"支付对象",pay_for_torrent:"为 {0} 支付",your_subid:"用户 subId",your_credits:"当前余额",pay_point_for_data:"支付{0}积分以加速{1}数据",auto_renew:"允许自动续费",transaction_details:"订单明细",transaction_id:"订单编号",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"类型",transaction_changed_amount:"变动金额",transaction_meta:"其他数据",transaction_status:"订单状态",transaction_creation_time:"订单创建时间",receipt_code:"收款码",transfer_amount:"转账金额",code_the_receipt_code:"复制下方收款码给付款人",fill_the_receipt_code:"通过填入收款人提供的收款码进行转账",income:"收入",expense:"支出",copied:"已复制",transfer:"转账",receive:"收款",copy:"复制",withdraw_fund:"提取基金",category_paydata_payer:"数据支付",category_paydata_payee:"数据收入",category_transfer:"个人转账",category_bonus:"系统奖励",category_recharge:"充值",status_pending:"等待中",status_completed:"已传完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"无效的收款码",tip_invalid_amount:"金额应为 0-1000 范围内的数(最小精度为0.001)",credit_get_more:"获得更多积分",credit_no_data:"无可用数据",credit_loading:"加载中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"网络出现异常,请稍后重试","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},_={account_email_invalid_address:"无效的电子邮件地址",account_email_invalid_domain:"无效的电子邮件域",account_email_unknown_status:"未知的邮件发送状态",account_email_unavailable_address:"邮件地址不可用",account_email_suppressed_address:"邮件地址被禁用",account_loading:"加载中...",account_is_required:"不能为空",account_sign_in_your_account:"登录账户",account_username:"用户名",account_username_email_phone:"手机号码或电子邮箱",account_password:"密码",account_new_password:"新密码",account_re_enter_password:"再次输入密码",account_password_not_equal:"输入的两个密码不同。",account_new_password_same:"新密码与原密码相同",account_forgot_your_password:"忘记密码了?",account_reset_password:"重置密码",account_sign_in:"登录",account_signed_in:"登录成功",account_sign_up:"注册",account_find_your_account:"找寻你的账户",account_enter_your_username:"输入你的手机号码或电子邮箱",account_search:"查找",account_email_sent_tip:"一封附带验证码的电子邮件已发送到您的邮箱:",account_phone_sent_tip:"一封附带验证码的短信已发送到您的手机:",account_email_phone_sent_tip:"附带验证码的电子邮件和手机短信已分别发送到您的邮箱和手机:",account_software_token_tip:"您的账户已启用安全令牌。要完成登录,请打开或查看您的设备并输入验证码",account_reset_your_password:"重置账户密码",account_verification_code:"验证码",account_resend_code:"重发验证码",account_code_has_been_resent:"验证码已发送",account_password_has_been_reset:"密码已重置",account_submit:"提交",account_sign_up_your_account:"注册账户",account_fill_required_fields:"填写下方的必填项。",account_fill_optional_fields:"填写下方的选填项。",account_email:"邮箱",account_invitation:"邀请",account_invitation_code:"邀请码",account_i_accept:"我接受",account_license_terms:"服务许可条款",account_next:"下一步",account_you_need_to_accept_license_terms:"请先勾选我接受服务许可条款",account_verify_fill_optional_fields:"验证身份与可选项",account_nickname:"昵称",account_gender:"性别",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手机号码",account_locale:"地区",account_tip_verified:"验证通过,正在登陆...",account_verified:"已验证",account_unverified:"未验证",account_signed_up:"注册成功",account_verify_your_identity:"验证您的身份",account_finish:"完成",account_signed_out:"注销成功",account_change_password:"修改密码",account_change_email:"修改电子邮箱",account_change_phone_number:"修改手机号码",account_sign_out:"注销",account_current_password:"当前密码",account_re_enter_new_password:"再次输入新密码",account_personal_information:"个人信息",account_edit:"编辑",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_not_set:"未设置",account_change:"修改",account_setting:"设置",account_copy_code:"复制代码",account_account_setting:"账户设置",account_task_page:"积分任务",account_setting_caption:"管理你的账户信息",account_security:"安全",account_want_to_join:"登录更精彩",account_sign_in_now:"点击登录",account_changed:"已更改",account_clipboard_with_invitation_code:"已复制邀请码",account_clipboard_with_code:"已复制代码",account_invitation_code_dialog_tip:"你将通过短信或电子邮件的方式发送邀请码:",account_available:"可用",account_invited:"已邀请",account_used:"已使用",account_invitation_code_sent:"邀请码已发送",account_invitation_channel_required:"至少需要填写一项邀请途径",account_no_verification_code:"无法收到验证码?",account_no_phone_number:"没有手机号码?",account_sign_up_by_email:"通过邮箱注册",account_no_email:"没有邮箱?",account_sign_up_by_phone_number:"通过手机注册",account_no_totp:"没有安全令牌?",account_tip_no_totp:"若沒有安全令牌請先設定安全令牌",account_setup_totp:"设置安全令牌",account_contact_information:"联系方式",account_delete_account:"删除账户",account_deleted:"已删除",account_can_not_mfa:"无法进行二级验证?",account_set_mfa_type:"更改二级验证",account_disable_mfa:"关闭二级验证",account_disabled_mfa:"已关闭二级验证",account_sms_mfa:"手机短信验证",account_totp_mfa:"安全令牌验证",account_totp:"安全令牌",account_not_recommend:"不推荐",account_oauth_sign_in_with:"通过 {provider} 登录",account_sign_in_failed:"登录失败",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通过手机短信或安全令牌为账户设置二级验证",account_error_can_not_enable_mfa:"您必须同时绑定邮箱和手机号码,才可以启用二级验证",account_tip_can_not_enable_sms_mfa:"您必须同时绑定邮箱和手机号码,才可以启用短信验证",account_tip_can_not_enable_totp_mfa:"您必须同时绑定邮箱和手机号码,才可以启用安全令牌",account_tip_setup_totp:"使用Authenticator等应用,扫描下方的二维码或手动复制代码来添加安全令牌",account_tip_verify_totp:"验证您的安全令牌",account_link_your_social_account:"绑定您的社交账号",account_unlink_your_social_account:"解除社交账号绑定",account_tip_confirm_link:"确定将当前账号与您的 {provider} 账号进行绑定吗?",account_tip_confirm_unlink:"确定解除您已绑定的 {provider} 账号吗?",account_tip_linking:"正在绑定...",account_tip_unlinking:"解除绑定中...",account_linked:"已绑定",account_unlinked:"已解除绑定",account_error_can_not_link_to_the_linked_account:"当前社交帐号已与其他账号绑定",account_error_can_not_link_to_the_mismatched_email:"当前账号与社交帐号邮箱地址不一致",account_error_can_not_link_before_email_verified:"未绑定邮箱的账户无法绑定社交帐户",account_tip_confirm_verify_email_phone:"是否向当前账户的email和手机号码发送验证码以验证您的身份?",account_tip_confirm_verify_phone:"是否向当前手机号码发送验证码以验证您的身份?",account_error_1_message_60_seconds:"每60秒只能发送一条短信或邮件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手机或电子邮件24小时内只能发送10条信息",account_error_network:"网络出现异常,请稍后重试","Network Error":"网络出现异常,请稍后重试",account_error_user_not_exist:"用户不存在",account_error_incorrect_username_or_password:"用户名或密码错误",account_error_incorrect_original_password:"原密码错误",account_error_incorrect_password:"密码错误",account_error_username_not_found:"找不到该用户名的账户",account_error_can_not_reset_for_no_verified:"账户未进行邮箱验证,无法重置密码",account_error_invalid_verification_code:"验证码错误,请重试",account_error_expired_verification_code:"验证码过期,请重试",account_error_password_not_long_enough:"密码长度不能小于8位",account_error_attempt_limit_exceeded:"尝试次数过多,请稍后重试",account_error_password_attempts_exceeded:"超过密码尝试次数",account_error_invalid_phone_number_format:"手机号码格式不正确",account_error_no_cell_phone_prefix:"请选择手机号前缀",account_error_username_already_exists:"该用户名已存在",account_error_you_need_to_accept_license_terms:"请勾选我接受服务许可条款",account_error_inactive_code:"该邀请码已失效",account_error_non_existent_code:"该邀请码不存在",account_error_unexpected:"未知错误",account_error_can_not_change_email_before_phone_bound:"绑定手机号码前无法更改邮箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帐户绑定前无法更改邮箱",account_error_can_not_change_phone_before_email_bound:"绑定邮箱前无法更改手机号码",account_error_can_not_change_email_phone_with_mfa_enabled:"关闭二级验证前无法更改邮箱或手机号码",account_error_not_supported_yet:"暂不支持",account_error_same_email:"新的邮箱不能与原邮箱相同",account_error_same_phone:"新手机号码不能与原手机号码相同",account_error_email_not_exists:"该邮箱不存在",account_error_email_already_exists:"该邮箱已有账户绑定",account_error_phone_already_exists:"该手机号码已有账户绑定",account_error_mfa_token_mismatch:"安全令牌错误",account_error_recaptcha_not_loaded:"网络出现异常,请重连网络后重启应用重试",account_error_recaptcha_validation_failed:"未通过ReCaptcha验证,请重连网络后重启应用重试",account_error_sign_in_in_progress:"等待登录尝试已在进行中",account_field_range:"字符个数应在{0}-{1}的范围中",account_field_only_alphanumeric:"仅支持字母和数字",account_field_only_alphanumeric_and_symbol:"仅支持字母数字和符号",account_field_only_chinese_alphanumeric_space_underline:"仅支持中英文数字空格下划线",account_field_prefix_without_number_space:"首个字符不能为数字或空格",account_field_suffix_without_space:"不能以空格结尾",account_field_without_repeat_space:"不能连续使用多个空格",account_field_can_not_only_alphanumeric:"不可仅为字母或数字",account_field_must_have_number_characters:"必须包含数字",account_field_verification_code:"验证码必须是六位数数字",account_field_invitation_code:"邀请码必须是字母和数字",account_field_phone_number:"手机号码格式不正确",account_invalid_email_format:"邮箱格式不正确",account_sign_out_confirm:"是否确认注销? 注销后将停止所有任务",account_sign_out_anyway:"仍要注销",account_signing_out:"正在注销...",account_request_save_settings:"设置未保存。在注销前请先保存修改。",invalid_password_format:"密码格式错误",invalid_password_format_same:"新密码与原密码相同",error_password:"密码错误",keychain_setting:"密钥管理",setting_description:"云端储存:将密钥数据保存到云端。\n修改密码:修改媒体库密钥的密码。\n助记词:一种生成和恢复密钥的替代方法。\n导入本地密钥:将本地保存的密钥导入媒体库。\n导出密钥:将当前媒体库数据保存到本地或云端。\n备份密钥到云端:将当前媒体库数据更新到云端进行备份。",refresh_status:"更新状态",confirm_import_key:"确认导入密钥",confirm_update_cloud_key:"你在云端已有密钥,更新密钥将覆盖原有的密钥,确认更新存储在云端的密钥吗",export_key_with_cloud:"输入您所设置的独立密码导出存储在云端的媒体库密钥,并通过解锁密码锁定密钥文件",store_cloud_key_prompt_password:"输入独立密码以存储媒体库密钥到云端",update_cloud_key_prompt_password:"设置独立密码以加密媒体库密钥并更新到云端",enable_cloud_storage_prompt_password:"为存储在云端的密钥设置密码,通过该密码可以从云上取回密钥",input_unlock_password:"设置解锁密码",export_local_prompt_password:"请设置一个解锁密码,该密码用于加密您的密钥文件。我们不会保存此密码,因此若您丢失该密码,密钥文件将无法解锁",require_unlock_password:"该密钥文件已被锁定,请输入解锁密码",require_independent_password:"输入独立密码以获取存储在云端的密钥",import_local_prompt_password:"该密钥文件已被锁定,请输入解锁密码",select_encrypt_mode:"选择加密模式",input_independent_password:"输入独立密码",update_cloud_key:"更新存储在云端的密钥",backup_to_cloud:"将媒体库密钥备份到云端",save_local:"将媒体库密钥保存为本地加密文件",create_new_key:"创建新的媒体库密钥",creating_lib_key:"正在创建媒体库密钥...",loading_lib_key:"正在载入媒体库密钥...",failed_to_create_lib_key:"创建媒体库密钥失败",failed_to_load_lib_key:"载入媒体库密钥失败",import_local_key:"导入本地密钥",import_lib_key_from_local:"从本地导入媒体库密钥",import_from_cloud:"从云端导入媒体库密钥",create_or_import_key:"创建或导入媒体库密钥",create_or_import_key_desc:"媒体库密钥用于与去中心化数据库同步内容。",store_your_lib_key:"存储你的媒体库密钥",export_cloud_key:"导出云端密钥",export_current_key:"导出当前密钥",change_password:"修改密码",enable_cloud_storage:"启用云端存储",disable_cloud_storage:"关闭云端存储",disable_cloud_storage_desc:"关闭云端存储将移除保存在云端的密钥,请确保已将密钥保存在本地",sync_at:"同步于:{time}",keychain_sync_status:"密钥同步状态",cloud_storage_enabled:"使用 {storage} 同步密钥",cloud_storage_disabled:"未启用云端存储",saved_locally:"已保存于本地",export_key:"导出密钥文件",cloud_independent_password:"云端独立密码",key_file_unlock_password:"密钥文件解锁密码",re_enter_unlock_password:"再次输入解锁密码",independent_password_not_enabled:"当前密码为 Alphabiz 账户密码(未设置独立密码)",use_cognito_hash:"使用 Alphabiz 账户密码",use_independent_password:"使用独立密码",keychain_lib:"媒体库密钥",loading_keychain_state:"加载密钥中...",backing_up:"备份中...",backup_current_key:"备份当前密钥到云端",cloud_lib_key_not_existed:"云端媒体库密钥不存在",open_keychain_file:"打开密钥文件",confirm_open_abk:"是否打开ABK文件",use_the_key:"使用该密钥",backup_the_key:"备份该密钥到云端",keychain_data_does_not_exist:"密钥数据不存在","timeout of 0ms exceeded":"网络出现异常,请稍后重试",XhrError:"网络出现异常,请稍后重试"},p={add_subtitles:"添加字幕",open_file:"打开文件...",advanced_options:"高级选项",title:"标题",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默认视频播放器未设置",this_is_an_audio_file:"这是一个音频文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任务被暂停或删除,流媒体播放被终止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超时,请检查任务",autoplay_hint:"自动播放功能可能受浏览器限制,若未开始播放,请手动点击播放器以播放",remove_playing_confirm:"{0} 正在播放中,删除任务将停止播放。是否仍要删除?",subtitle:"字幕",setting:"设置",loading:"加载中",unknown_media:"未知媒体",settings_button_visible:"按钮显示",settings_setting:"设置",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"画中画",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常规",settings_italic:"斜体",settings_lighter:"纤细",settings_bolder:"粗体",settings_small:"较小",settings_large:"较大"},m=a("8097");const h=r.a.displayName;var g={lib_index:"主页",lib_edit:"编辑",lib_publish:"发布",lib_explore:"探索",lib_following:"关注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"频道",lib_submit:"提交",lib_from_network:"使用去中心化数据库,所有数据来源于网络",welcome_to_lib:`欢迎使用 ${h} 媒体库`,register_or_login:"注册/登陆",lib_recommend:"推荐",lib_recommend_desc:`欢迎使用 ${h} 媒体库!本媒体库使用去中心化的数据库,所有数据来源于网络。在开始前,请先关注一些推荐频道。`,follow_any_channel_to_continue:"关注任意频道以继续",follow_channels_and_continue:"关注 {0} 个频道并继续",show_more_for_me:"为我展示更多",no_more_recommend:"没有更多推荐",key:"密钥",create_key:"生成密钥",save_key:"保存密钥",save_key_file:"是否将密钥保存为文件?",import_key:"导入密钥",import:"导入",invalid_key:"密钥格式错误",back_to_top:"回到顶部",search_for_channel:"搜索频道 ID",search_channel_no_result:"找不到 ID 为 {0} 的频道",please_input_channel_id:"请输入频道 ID",welcome_help_text:"\n 这是一个去中心化的媒体库,您需要为此创建一个专用账户,\n 我们将自动为您生成一套密钥。如果您已经拥有密钥了,\n 也可以在此导入密钥".replace(/\s/g,""),welcome_key_text:"\n 当您成功创建账号后,请点击右下角的【保存密钥】按钮导出\n 您的密钥。一旦您丢失密钥,对应的账号将无法找回。".replace(/\s/g,""),redirect_to_recommend:"您似乎没有关注任何频道,即将前往探索页。",channel:"频道",follow:"关注",unfollow:"取消关注",following:"关注中",share:"分享",block:"屏蔽",unblock:"取消屏蔽",blocked:"已屏蔽",block_channel:"屏蔽此频道",block_channel_confirm:"屏蔽频道后,频道的所有内容将从时间线上移除。您可以在账户设置中管理屏蔽列表。",block_creator:"屏蔽此频道的创作者",unblock_creator:"取消屏蔽此频道的创作者",block_creator_confirm:"屏蔽创作者后,该创作者的所有频道将从时间线上移除。您可以在账户设置中管理屏蔽列表",share_url_copied:"分享链接已复制至剪贴板",unfollow_confirm:"是否取消关注?此频道的所有推文将从你的时间线上移除。",follow_failed_hint:"操作仍在后台进行中,请耐心等待。如长时间未完成修改请尝试重启应用。",follow_time:"关注时间",update_time:"更新时间",search:"搜索",type:"类型",added:"已添加",click_to_task:"点击前往对应任务",lib_already_added:"您已添加此视频",description:"描述",poster:"海报",channel_poster:"频道海报",preview:"预览",creator:"创作者",creator_detail:"创作者详情",loading_creator:"正在加载创作者信息",wait_for_creator_loaded:"请等待创作者信息加载完成。",follower:"关注者",followers:"关注者",follower_list:"关注者列表",user:"用户",channel_title:"频道标题",channel_id:"频道 ID",post_title:"推文标题",post_id:"推文 ID",import_data_from_excel:"从 Excel 导入数据",set_excel_keys:"设置excel键",excel_import_succeded:"Excel 导入成功",excel_import_success_msg:"可添加 {0} 条新项目, {1} 条信息不完整及 {2} 条重复项已忽略",cannot_find_channel:"找不到指定频道",cannot_find_posts:"找不到指定视频",add_channel:"添加频道",add_post:"添加推文",edit_channel:"编辑频道",channel_setting:"频道设置",edit_post:"编辑推文",edit_posts:"编辑推文",channel_detail:"频道详情",remove:"移除",remove_channel:"移除频道",remove_channel_confirm:"是否确认移除频道?此操作不可恢复。",remove_post:"移除推文",remove_post_confirm:"是否确认移除推文?此操作不可恢复",preview_mode:"预览模式",preview_mode_desc:"这是频道的预览模式,所有分级的影片均为可见状态。",edit_user_profile:"编辑用户资料",name:"昵称",avatar:"头像",no_following:"没有已关注的频道。点击前往",no_recommend:"没有可推荐的频道。点击前往",first_recomment_msg:"如果您是初次使用,加载时间可能较长",invalid_image:"图片异常",image_not_reachable:"此图片URL不可用",channel_not_found:"找不到频道",cannot_get_channel_info:"无法获取指定的频道信息。该频道可能已被创作者删除而不再可见。",validate_error:"验证错误",validate_user_name_no_space:"用户名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"用户名应为 {0}-{1} 字符",validate_user_desc_length:"用户描述不可多于 {0} 字符",validate_user_avatar_url:"用户头像应为链接且不多于2048字符",validate_channel_title_length:"频道标题应为1-100字符",validate_channel_desc_length:"频道描述应为10-300字符",validate_channel_image_url:"频道预览图应为链接且不多于2048字符",validate_post_title_length:"推文标题应为1-100字符",validate_post_desc_length:"推文描述应为10-300字符",validate_post_image_url:"海报应为链接且不多于2048字符",validate_post_url:`${h} 链接格式错误`,validate_post_url_length:`${h} 链接不可多于2048字符`,film_rate:"影片分级",set_film_rate:"设置影片分级",select_a_rate_before_enter:"您需要设置一个影片分级才可进入媒体库。",library_available_rate:"媒体库可用影片分级",rate_g:"G(大众级)",rate_g_desc:"所有年龄皆可观赏\n此类影片不含或仅含少量会让家长在让儿童观赏时感到被冒犯的内容,无需家长陪同。",rate_pg:"PG(建议家长指导)",rate_pg_desc:"一些内容可能不适合儿童观看\n此类影片包含部分家长可能认为不适合儿童的内容,因此建议家长可同时进行指导。",rate_pg_13:"PG-13(家长特别留意)",rate_pg_13_desc:"一些内容可能不适合13岁以下儿童观看\n此类影片有部分内容对13岁以下儿童不适宜,需要有父母陪同观看。此类影片动作暴力适当,含有少量血腥场面及不雅用语,但也包含可能令人情绪不安的情节。",rate_r:"R(限制级)",rate_r_desc:"未满十七岁人士必须由家长或成年监护人陪同\n此类影片中常有大量血腥暴力、惊悚恐怖、裸露性爱或吸毒场景,且有大量性暗示及不雅用语/ 冒犯性言论等,17岁以下人士必须由父母或者监护陪伴才能观看。",rate_nc_17:"NC-17(只准成人观看)",rate_nc_17_desc:"17岁或以下人士不得观赏\n此类影片其中常有清楚的性爱场面,大量的吸毒或暴力镜头以及脏话等,因此仅适合成人观赏。",set_as_private:"设为私有",hide_in_explore:"在浏览页隐藏此频道",hidden:"已隐藏",select_a_rate:"请选择一个影片分级",select_from_tasks:"从上传任务中选择",import_from_magnet:`从${Object(m["a"])()?"链接":"磁力链接(magnet:?...)"}导入`,input_magnet_url:"输入链接",task_title:"任务标题",set_title:"设为标题",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"从本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"导入/导出收藏",export_local_favorites:"导出收藏文件作为备份",import_favorites_file:"导入备份的收藏",not_a_favorite_file:"此文件并非收藏备份",connection_status:"连接状态",gun_server_list:"缓存节点",custom_nodes:"自定义缓存节点",custom_nodes_hint:"缓存节点将在重启软件后应用",wait_for_reboot:"即将重启软件...({seconds}s)",reboot_now:"立即重启",reboot_later:"稍后重启",peer_list:"节点列表",server:"节点 URL",peer:"节点",peer_id:"节点 ID",connection:"连接",data_source:"数据源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已获取全部推文",placeholder_channel_title:"频道名称",placeholder_channel_desc:"关于此频道的描述",placeholder_post_title:"电影名称 (年份)",placeholder_post_desc:"关于此电影的描述",private_channel:"私有频道",creator_blocked:"已屏蔽创作者",go_to_library:"前往媒体库?",go_to_library_channel_msg:"是否前往媒体库频道 {0}?",magnet_does_not_have_name:"此链接不包含任务名,请输入推文标题后重试。",no_available_post:"无可见推文",following_channel_no_post:"已关注的频道中不含可见的推文。此问题可能由网络错误引起。如果您已关注带有推文的频道,这些推文将在稍后加载完成。",share_to_library:"分享到媒体库",quick_start:"快速开始",quick_start_desc:"选择一个任务或文件快速创建推文",select_file:"选择文件...",select_folder:"选择文件夹...",post_options:"推文选项",channel_options:"频道选项",create_new_channel:"创建新频道",use_existed_channel:"使用已存在的频道",select_existed_channel:"选择一个频道",uploaded_by:"{title} (由 {name} 上传)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在创建新频道...",created_new_channel:"新频道已创建",creating_new_post:"正在创建新推文...",created_new_post:"新推文已创建",create_new_post:"创建推文",quick_start_timeout:"{0}超时。此问题可能由网络错误引起。请稍后再试。",file_too_large:"文件过大",file_too_large_msg:"此文件的大小超过了 4GB ({size}),上传此文件可能需要较长的准备时间,是否仍要上传?",resolving_folder_files:"正在解析文件夹内容...",folder_too_large:"文件夹过大",folder_too_large_msg:"文件夹中的文件大小超过 4GB ({size} 总大小),上传此文件夹可能需要较长的准备时间,是否仍要上传?",creating_new_task:"正在创建新任务...",cannot_create_task:"创建任务异常",cannot_create_task_msg:"创建任务时产生了未知错误。任务可能已被创建,请查看上传列表以确定上传状态。",cannot_get_task_name:"无法获取任务名,请输入推文标题后重试",remove_old_task:"删除旧任务",remove_old_task_desc:"Web 模式仅允许创建一个任务,是否删除旧任务?",subtitle_list:"字幕列表",optional:"可选",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下载链接",maximumSubtitleNum_limit:"字幕数量已达到最大",cannot_add_subtitle:"添加字幕失败",cannot_add_subtitle_msg:"没有选择字幕语言或下载链接无效。",support_subtitle_type:"仅支持srt,vtt格式的字幕。",recommend_opensubtitles:"建议使用www.opensubtitles.org的字幕下载链接或id。",take_down:"下架",serious_violation:"严重违规",copyright_disputes:"版权争议",adults_only:"成人内容",takedown_reason:"下架理由",takedown_mode:"下架模式",admins:"管理员",takedown_user:"下架此创作者",takedown_channel:"下架此频道",takedown_post:"下架此推文",select_takedown_reason:"选择下架理由",takedown_invalid_reason:"下架理由错误",takedown_invalid_user_id:"用户ID错误。ID应为87位字符",takedown_invalid_channel_id:"频道ID错误。ID应为20位字符",takedown_invalid_post_id:"推文ID错误。ID应为20位字符",takedown_management:"下架管理",users:"用户",channels:"频道",posts:"推文",you:"你",preset:"预设",admin:"管理员",committee:"委员会",about_takedown_mode:"模式说明:\n预设:在github添加,所有内容都会移除。\n管理员:任一管理员投票后即会移除。\n委员会:超过半数管理员投票后才会移除。",cannot_edit_preset:"无法编辑此行,因为它是预设内容",cannot_edit_not_vote:"无法编辑此行,因为你未为其投票",remove_vote:"移除你的下架投票",post_preload_failed:"无法预载此推文。下载链接可能已过期,因此无法立即播放。",about_cache_node:"关于缓存节点",edit_cache_node:"编辑缓存节点",create_cache_node:"创建缓存节点",about_cache_node_desc:`${h} 使用 gun 服务器作为缓存节点,您可以在进阶设置中编辑自定义节点。`,learn_how_to_deploy_gun:"查看如何建立自定义节点",library_setting:"媒体库设置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用户",blocked_channels:"已屏蔽的频道",unblock_user:"解除用户屏蔽",unblock_channel:"解除频道屏蔽",no_blocked_user:"没有已屏蔽的用户",no_blocked_channel:"没有已屏蔽的频道",field_required:"{0} 不能为空"};const f=r.a.displayName,b={unsupported_in_browser:"此功能暂不支持浏览器模式",client:"客户端",warning:"警告",enable:"启用",disable:"禁用",auto:"自动",encrypt_connection:"加密连接",encrypted_connection:"已加密的连接",non_encrypted_connection:"未加密的连接",connected_wires_not_disconnect:"已存在的连接不会被断开",audio:"音频",video:"视频",image:"图片",subtitle:"字幕",zip:"压缩文件",text:"文本",unknown:"未知",add:"添加",undo:"撤销",backup:"备份",not_default_app:`${f}不是你的默认应用. 是否设置默认应用?`,dont_show_again:"不再提示",go_to_settings:"前往设置",about_alphabiz:`关于 ${f}`,update_channel:"更新通道",last_check_at:"上次检查更新时间",check_for_update:"检查更新",checking_for_update:"检查更新中...",no_update_available:"没有可用更新",update_available:"更新可用",update_now:"现在更新",update_later:"以后更新",click_to_update:"点击[现在更新]按钮以开始下载更新",update_failed:"更新失败",update_failed_message:"在更新时遇到了一个错误: ",check_shasum_failed:"安装包完整性检查失败",downloading_update:"更新下载中...",ready_to_update:"准备更新",restart_to_update:`更新下载已完成. ${f} 将在数秒后退出以安装更新`,already_latest:"当前版本({0})已是最新",update_timeout:"更新超时",no_available_release:"没有可用的版本",no_available_installer:"没有可用的安装包",feedback:"反馈",select_a_type:"选择一个类型",category:"分类",select_a_category:"选择一个分类",title:"标题",require_title:"请提供标题",describe_your_problem:"描述您遇到的问题",report_a_bug:"报告一个错误(bug)",request_a_new_feature:"请求一个新功能",download_or_upload:"下载/上传",others:"其他",submit_with_system_info:"提交时附带系统信息",submit_feedback:"提交反馈",tweet_us:"发送Twitter",tweet_too_long:"Tweet过长",delete_characters:"请删除{0}个字符",rest_characters:"还能输入{0}个字符",update_alphabiz:`更新 ${f}`,current_version:"当前版本",cancel_update:"取消更新",slow_download_speed:"下载过于缓慢",slow_download_speed_caption:"当前更新包下载过于缓慢,请检查网络状态",update_canceled:"更新已取消",current_version_release_time:"当前版本发布时间",expired_app:`${f} 过期`,version_out_of_date:"版本过旧",have_to_update:`${f} 版本过旧,部分接口或协议已失效。您需要升级 ${f} 才可继续使用。`,exit_alphabiz:`退出 ${f}`,exit_and_update:"退出并应用更新",new_version_hint:"新版本可用",no_new_version:"没有可用的新版本",current_is_latest:"当前版本已是最新版",click_to_check_update:"点击 [检查更新] 按钮以检查更新",download_latest_version_from_website:"请前往官网下载最新版本",to_the_website:"前往官网",network_diagnotic:"网络诊断",diagnotic:"诊断",click_to_check:"点击开始检查",click_to_check_again:"点击再次检查",checking:"检查中",online:"在线",offline:"离线",dns_look_up:"域名解析",error:"错误",aws_service:"AWS 服务",network_pings:"网络 Ping",not_found:"未找到",packet_loss:"丢包率",official_site:"官方网站",download_test:"下载测试",connected:"已连接",test_task:"测试任务 ({0})",download_failed:"下载失败",second_spend:"用时 {0} 秒",open_default_player_failed:"打开默认播放器失败",copied_to_clipboard:"已复制到剪贴板",go_to:"前往",region_not_available:"地区不可用",region_not_available_message:"抱歉,此应用在您的地区不可用。本应用将在{0}秒后退出",confirm:"确认",no_available_result:"无可用结果"};var y={...g,...l,...c,...d,..._,...u,...p,...b};const v=r.a.displayName;var w={repeat_add:"The task has been added, Please do not add it again",upload:"Upload",download:"Download",delete:"Delete",delete_task:"Delete task",delete_confirm_message:"Delete this task? This is irrevocable",also_delete_files:"Also delete files",default_delete_files:"Default delete downloaded files after remove task",not_now:"Not now",delete_autoupload_confirm:"This task contains file you put in auto-upload directory. Delete this task will also delete the file.",delete_anyway:"Delete anyway",upload_too_many_files:"Upload too many files",ask_if_unlimit_upload_amount:"The auto-upload directory contains too many files. Do you want to disable the upload amount limitation? *This may cause performance problem",disable_limitation:"Disable limitation",not_length:"Multi file operation is not supported at present, Please cooperate",download_torrent:"Download file",upload_torrent:"Upload file",files:"Files",file:"File",folder:"Folder",start_all:"Start all",pause_all:"Pause all",remove_all:"Remove all",upload_all:"Upload all",clear_history:"Clear history",pause_all_finish_payments:"This will finish all payments.",accelerating:"Accelerating",link_task:"Link task",torrent_task:"File task",ok:"OK",cancel:"Cancel",download_directory_position:"Download directory position",torrent_file:"task file",magnetic_link_incorrect:"The link format is incorrect",delete_fail:"Delete fail",pause:"Pause",paused:"Paused",stop_torrent:"Stop",seed:"Seed",resume:"Resume",downloading:"Downloading",downloaded:"Downloaded",uploading:"Uploading",auto_uploading:"Auto uploading",uploaded:"Uploaded",pending:"Waiting for other tasks",verifying:"Verifying",waiting_for_verify:"Waiting for verify",seeding:"Seeding",completed:"Completed",status:"Status",task_name:"Task name",size:"Size",progress:"Progress",sort:"Sort",ascending:"Ascending",descending:"Descending",file_loading:"Loading file...",loading:"Loading",unknown_status:"Unknown",play_while_downloading:"Play...",upload_or_play:"Upload / Play",play:"Play",ask_if_upload_file:"Upload file?",ask_if_upload_or_play:"Upload or play file?",torrent_error:"Error when adding task:",no_peers:"Retry for more than {0} times and no peer is available",torrent_exists:"Task already exists.",show_origin_torrent:"Get original task file or url",show_directory:"Open directory of this torrent",task_num:"Tasks",total_upload_speed:"Upload speed",total_download_speed:"Download speed",path_missing:"Error: cannot find torrent path",origin_not_found:"Cannot find origin task info.",text_copied:"Magnum url is copied to your clipboard",copy_magnet_uri:`Copy ${Object(m["a"])()?"link":"magnet:?"} URI`,copy_download_uri:"Copy download URI",copy_share_uri:"Copy share URI",uri_copied:"URI is successfully copied to your clipboard",uri_copy_failed:"Failed to copy uri",more:"More...",toggle_list_mode:"Toggle list mode",comment:"comment",operations:"Operations",open_directory:"Open directory",no_downloading_task:"No downloading task",remove_all_downloading_tasks:"Remove all downloading tasks?",remove_all_upload_tasks:"Remove all upload tasks?",remove_autoupload_files:"Remove auto-upload files",remove_all_history:"Remove all history?",remaining:"Remaining",created_time:"Created time",used_time:"Used time",completed_time:"Completed time",yesterday:"Yesterday",before_yesterday:"{empty}",earlier:"Earlier",miss_file:"Some files are missing",delete_miss_file_task:"There are fome files missing in {0}.",common_peer:"Common peer",ab_peer:`${v} peer`,ab_peer_verified:`Verified ${v} peer`,ab_peer_available:`${v} peer(s) available`,alphabiz_accelerating:`${v} accelerating`,income:"Income",income_info:"Income(today/total)",total_income_info:"Income: {0}(today) / {1}(total)",login_to_see_income:"Login to see income statistics",credit_cost:"Credit costs",downloaded_by_payment:"Downloaded by Payments",file_not_found:"Cannot find this file in local",no_task:"No task",no_matched_task:"No matched task",space_not_enough:"Disk space not enough",need_more_space:"Need {0} more space but current disk has {1} free ({2} reserved). Tasks are paused. Library preload is disabled. You can re-enable it in [Settings - Advanced].",seeders:"Seeders",last_update:"Last update",connecting:"Connecting",connected:"Connected",request_timed_out:"Request timed out",connection_failed:"Connection failed",invalid_download_url:"Invalid download URL",download_link:"download link",empty_files:"No files in directory",duplicate_task:"Duplicate task",duplicate_tracker:"Duplicate tracker",this_task_not_ready:"This task is not ready. Pause this task will directly remove it.",some_task_not_ready:"Some tasks are not ready. Pause these tasks will directly remove them.",failed_to_delete_files:"Failed to delete files",failed_to_delete_files_desc:"Failed to delete some files of the task. You may need to delete them manually",unknown_error:"Unknown error: {0}",more_files_are_not_shown:"({0} more files are not shown for performance reason)",no_available_file:"No available file. Please wait for task ready.",service_worker_error:"Cannot load ServiceWorker for playing. Your browser may not support this feature, or the ServiceWorker is not activated. You may need to reload this page and try again.",add_task_first:"You need to add task first.",player_task_time:"Player takes too many seconds preparing for play. There may be something wrong with the task.",web_mode_hint:`The web mode of ${v} only supports WebRTC peers. For best experience, please download ${v} Desktop App.`,web_mode_task_hint:"Click buttons below to add a task. You can only add one task at one time.",save_to_local:"Save to local",save_as_zip:"Save as ZIP",creating_save_file:"Creating save file...",upload_as_one_directory:"Upload as one directory",upload_as_single_files:"Upload as single files",web_mode_upload_single:"You can only upload a single file in web mode",download_success:"Download successfully",download_fail:"Download failed",wait_for_downloaded_to_share:"Please wait for task downloaded before sharing.",download_with_cellular:"Download tasks using cellular",download_with_cellular_desc:"You are using cellular network. Download tasks with cellular may take additional fees by your carrier.",download_with_cellular_confirm:"Still download with cellular"},k={language:"Language",appearance:"Appearance",darkModeSystem:"System",darkModeLight:"Light",darkModeDark:"Dark",basic_setting:"Basic",hideMenu:"Hide App Menu (Windows & Linux Only)",autoHide:"Auto Hide Window",autoStart:"Open at login",restore:"Keep size and position of the window when exit",autoStartUnfinished:"Automatically resume all unfinished tasks",default_download_path:"Default Path",download_directory:"Download Directory",upload_directory:"Upload Directory",enable_auto_upload:"Enable auto upload",unlimit_upload_amount:"Unlimit upload amount",unlimit_upload_warning:"Allow upload large amount of files. This may cause performance problem",start:"Startup",transport_setting:"Transmission",upload_limit:"Upload limit",download_limit:"Download limit",payed_user_share_rate:"Payed user share rate",unlimited:"Unlimited",limit_input_error:"Limit number should be positive",BT_setting:"Task Settings",saveLinkSeed:"Save link as task file",autoDownload:"Automatically download link and content",continuousSeeding:"Keep seeding until stop it manually",seedSharingRate:"Seed Ratio",seedTime:"Seed Time (minutes)",task_manage:"Task Management",maximumDownloadNum:"Maximum active tasks",maximumConnectionsNum:"Maximum connection per server",range_error:"Range should between {0} and {1}",random:"Random",breakpointContinuation:"Continue",automaticSkip:"Automatically show downloading after adding task",afterNotification:"Notification after download is complete",deleteConfirm:"No confirmation is required before deleting task",submit:"Save & Apply",discard:"Discard",reset:"Reset",reset_all_settings:"Reset all settings?",preferences_resetted:"Preferences resetted",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"Advanced",autoUpdate:"Auto Update",autoCheckUpdate:"Automatically check for update",proxy:"Proxy",useProxyService:"Enable Proxy",trackerService:"Tracker Servers",recommendUse:"Recommended",autoUpdateTrackerServiceList:"Update tracker list every day automatically",manualUpdateTracker:"Manual update",manualUpdateSuccess:"Successfully update tracker servers",manualUpdateFail:"Failed to update from:",listenPort:"Listen Ports",BTlistenPort:"Data Transmission Port",DHTlistenPort:"Distributed Hash Port",protocols:"Compatible Protocols",setDefaultClientForFollowingProtocols:"Set as the default client for the following protocols",magnetUrl:"Magnet",video_file:"Video file",audio_file:"Audio file",security:"Security",impersonateUserAgent:"Mock User-Agent",RPCauthorizationkey:"RPC Secret",viewDocument:"View RPC Secret Manual",developer:"Developer",applicationLogPath:"App log path",downloadSessionPath:"Download session path",resetDownloadSessionRecord:"Reset download session",restoreInitialSettings:"Factory Reset",preferences_set_successfully:"Save preferences successfully!",preferences_set_fail:"Save preferences fail!",change_not_save:"Changes not save",discard_all_changes:"Discard all changes and leave?",stay_in_page:"Stay in page",disk_usage:"Disk usage",pause_if_less_space:"Pause and notify if space is less than (MB)",default_video_player:"Default video player",video_cache_time:"Stream play cache",minutes:"minutes",system_default:"System Default",media_player:"Media Player",library_film_rate:"Available film rate",library_show_explore:"Show [Explore] page",library_setting:"Library setting",library_sync_setting:"Library sync setting",keychain_sync_status:"Keychain sync status",sync_with_aws:"Sync Keychain with Amazon Web Services",backup_to_local:"Backup to local file",enable_sync_with_aws:"Enable sync with AWS",disable_sync_with_aws:"Disable sync with AWS",disable_sync_with_aws_desc:"This will remove saved key in server. Please ensure you have already export your key.",input_independent_password:"Input independent password",change_independent_password:"Change independent password",password_error:"Password error",password_invalid:"Password invalid",key_existed:"Key existed",key_not_found:"Key not found",library_recommend:"Library recommend",show_all_channels:"Show all channels in library recommend page",not_logged_in:"Not logged in",login_to_continue:"Login to continue",mnemonic_code:"Mnemonic code",wordlist:"Wordlist",restore_code:"Restore from code",generate_code:"Generate code",export_mnemonic_code:"Export mnemonic code",import_mnemonic_code:"Import mnemonic code",print:"Print",save_as_txt:"Save as txt",save_as_pdf:"Save as pdf",from_file:"From file",not_valid_mnemonic_code:"This is not a valid mnemonic code",cannot_parse_code_as_key:"Cannot parse this mnemonic code as library key",import_key_hint:"Are you sure to import this key? This will recover your old key in library.",import_key_confirm:"Yes, import it.",library_preload:"Preload tasks from library",show_preload:"Show preload tasks",set_download:"Set download directory",set_download_desc:"For macOS App Store version, the default download directory is in App's sandbox, and will be deleted after app uninstalled. If you want to keep your download files, you need to select a different download directory manually."};const S=r.a.displayName;var C={home:"Home",home_caption:"Download/Upload and Media Files",library:"Library",library_caption:"Explore media resources",player:"Player",player_caption:"Media Player",credits:"Credits",credits_caption:"Check Account Balance",account:"Account",account_caption:"Sign In/Sign Up/Management",settings:"Settings",settings_caption:"Settings for App, Player, Account",development:"Development",development_caption:"Developer Mode for Internal Use",basic:"Basic",basic_caption:"Basic Settings",advanced:"Advanced",advanced_caption:"Advanced Settings",blockchain:"Wallet",blockchain_caption:`${S} Decentralized Wallet`,internal_notice:"Internal Release Notice",release_notes:"Release notes",terms_and_conditions:"Terms and Conditions",license_and_listen_notices:"License and Listen Open Source Notices",close:"Close",success:"Success",fail:"Fail"},x={credits:"Credits",pay:"Pay",pay_with_credit:"Pay for download accelerating. Needs about {0} credit",pay_with_credit_payed:"Accelerating. Still needs about {0} credit",create_payment:"Create Payment",pay_target:"Target",pay_for_torrent:"Pay for {0}",your_subid:"Your subId",your_credits:"Your credits",pay_point_for_data:"Pay {0} point for {1} data",auto_renew:"Enable auto renew",transaction_details:"Transaction Details",transaction_id:"Id",transaction_payer:"Payer",transaction_payee:"Payee",transaction_category:"Category",transaction_changed_amount:"Changed Amount",transaction_meta:"Meta",transaction_status:"Status",transaction_creation_time:"Creation Time",receipt_code:"Receipt Code",transfer_amount:"Transfer Amount",code_the_receipt_code:"Copy the receipt code below to the payer",fill_the_receipt_code:"Transfer by filling in the payment code provided by the payee",income:"Income",expense:"Expense",copied:"Copied",transfer:"Transfer",receive:"Receive",copy:"Copy",withdraw_fund:"Withdraw Fund",category_paydata_payer:"Cost of data",category_paydata_payee:"Income of data",category_transfer:"Transfer",category_bonus:"Bonus",category_recharge:"Recharge",status_pending:"pending",status_completed:"completed",status_finish:"finish",status_failed:"failed",tip_invalid_receiver:"Invalid receiver code",tip_invalid_amount:"Credit amount should be an float in the range 0-1000 (Minimum precision is 0.001)",credit_get_more:"Get more credits",credit_no_data:"No data available",credit_loading:"Loading...",credit_not_enough_amount:"Not enough credits",credit_amount_not_enough:"Not enough credits",credit_payee_not_exist:"Payee does not exist",credit_invalid_amount:"Invalid credit amount",credit_can_not_transfer_to_yourself:"Can not transfer to yourself",credit_latest:"Latest",credit_error_network:"There is a problem with the network, please try again later","payer credit amount is not enough":"Not enough credits","payee does not exist":"Payee does not exist"},$={account_email_invalid_address:"Invalid email address",account_email_invalid_domain:"Invalid email domain",account_email_unknown_status:"Unknown email delivery status",account_email_unavailable_address:"Unavailable email address",account_email_suppressed_address:"Suppressed email address",account_loading:"Loading...",account_is_required:" is required",account_sign_in_your_account:"Sign in",account_username:"Username",account_username_email_phone:"Phone number or email",account_password:"Password",account_new_password:"New password",account_re_enter_password:"Re-enter password",account_password_not_equal:"Two passwords are not equal",account_new_password_same:"The password is the same as the original password",account_forgot_your_password:"Forgot your password? ",account_reset_password:"Reset password",account_sign_in:"Sign in",account_signed_in:"Signed in",account_sign_up:"Sign up",account_find_your_account:"Find your account",account_enter_your_username:"Enter your phone number or email",account_search:"Search",account_email_sent_tip:"An email with a verification code has been sent to your email: ",account_phone_sent_tip:"A SMS with a verification code has been sent to your phone: ",account_email_phone_sent_tip:"Email and SMS with verification code have been sent to your email and phone respectively:",account_software_token_tip:"MFA is enabled for your account. To finish signing in, please turn on or view your device and type the TOTP",account_reset_your_password:"Reset your password",account_verification_code:"Verification code",account_resend_code:"Resend code",account_code_has_been_resent:"Verification code has been resent",account_password_has_been_reset:"Password has been reset",account_submit:"Submit",account_sign_up_your_account:"Sign up your account",account_fill_required_fields:"Fill in the required fields below.",account_fill_optional_fields:"Fill in the optional fields below.",account_email:"Email",account_invitation:"Invitation",account_invitation_code:"Invitation code",account_i_accept:"I accept ",account_license_terms:"the license and terms",account_next:"Next",account_you_need_to_accept_license_terms:"You need to accept the license and terms first.",account_verify_fill_optional_fields:"Verify and fill in optional fields.",account_nickname:"Nickname",account_gender:"Gender",account_male:"Male",account_female:"Female",account_not_say:"Not say",account_birthday:"Birthday",account_phone_number:"Phone number",account_locale:"Locale",account_tip_verified:"Verified, Signing in...",account_verified:"verified",account_unverified:"unverified",account_signed_up:"Signed up",account_verify_your_identity:"Verify your identity",account_finish:"Finish",account_signed_out:"Signed out",account_change_password:"Change password",account_change_email:"Change email",account_change_phone_number:"Change phone number",account_sign_out:"Sign out",account_current_password:"Current password",account_re_enter_new_password:"Re-enter new password",account_personal_information:"Information",account_edit:"edit",account_reset:"reset",account_greeting:"Hello,",account_cancel:"Cancel",account_change:"change",account_not_set:"not set",account_setting:"setting",account_copy_code:"copy the code",account_account_setting:"Account",account_task_page:"Credit task",account_setting_caption:"Change Password / Edit Information",account_security:"Security",account_want_to_join:"Want to Join?",account_sign_in_now:"Sign in",account_changed:"Changed",account_clipboard_with_invitation_code:"Invitation code copied",account_clipboard_with_code:"The Code copied",account_invitation_code_dialog_tip:"You will send your friend an email or text message with an invitation code:",account_available:"available",account_invited:"invited",account_used:"used",account_invitation_code_sent:"Invitation code has been sent",account_invitation_channel_required:"Fill in at least one invitation channel",account_no_verification_code:"Can not receive verification code? ",account_no_phone_number:"No phone number? ",account_sign_up_by_email:"Sign up by email",account_no_email:"No email? ",account_sign_up_by_phone_number:"Sign up by phone number",account_no_totp:"No TOTP? ",account_tip_no_totp:"If there is no TOTP, please setup TOTP first",account_setup_totp:"Setup TOTP",account_contact_information:"Contact information",account_delete_account:"Delete account",account_deleted:"Deleted",account_can_not_mfa:"MFA in trouble? ",account_set_mfa_type:"Config MFA",account_disable_mfa:"Disable MFA",account_disabled_mfa:"Disabled MFA",account_sms_mfa:"SMS MFA",account_totp_mfa:"TOTP MFA",account_totp:"TOTP",account_not_recommend:"Not Recommend",account_oauth_sign_in_with:"Sign in with {provider}",account_sign_in_failed:"Failed to sign in",account_tip_oath_sign_up:"The email corresponding to the current {provider} account: {email} has not yet created an account",account_tip_confirm_delete_account:"Enter the current account password to confirm that you want to delete the current account.(Deleted accounts cannot be restored)",account_tip_config_mfa:"You can choose to use SMS or time-based one-time password (TOTP) as secondary authentication",account_error_can_not_enable_mfa:"You must bind your email address and mobile phone number to enable MFA",account_tip_can_not_enable_sms_mfa:"You must bind your email address and mobile phone number to enable SMS MFA",account_tip_can_not_enable_totp_mfa:"You must bind your email address and mobile phone number to enable TOTP MFA",account_tip_setup_totp:"Use apps such as Authenticator to scan the QR code below or copy the code manually to add a security token",account_tip_verify_totp:"Verify your TOTP",account_link_your_social_account:"Bind your social account",account_unlink_your_social_account:"Unbind social account",account_tip_confirm_link:"Are you sure you want to bind the current account to your {provider} account?",account_tip_confirm_unlink:"Are you sure to cancel your bound {provider} account?",account_tip_linking:"binding...",account_tip_unlinking:"Unbinding...",account_linked:"Bound",account_unlinked:"Unbound",account_error_can_not_link_to_the_linked_account:"The current social account is bound to another account",account_error_can_not_link_to_the_mismatched_email:"The current account and the social account email address are inconsistent",account_error_can_not_link_before_email_verified:"The social account cannot be linked because the current account is not bound to a verified email",account_tip_confirm_verify_email_phone:"Whether to send a verification code to the current account's email and phone number to verify your identity?",account_tip_confirm_verify_phone:"Whether to send a verification code to the current phone number to verify your identity?",account_error_1_message_60_seconds:"Only one SMS or email can be sent every 60 seconds, wait another {delta} seconds",account_error_10_messages_per_day:"Each mobile phone or email can only send 10 messages within 24 hours",account_error_network:"There is a problem with the network, please try again later","Network Error":"There is a problem with the network, please try again later",account_error_user_not_exist:"User does not exist",account_error_incorrect_username_or_password:"Incorrect username or password",account_error_incorrect_original_password:"Incorrect original password",account_error_incorrect_password:"Incorrect password",account_error_username_not_found:"Username not found",account_error_can_not_reset_for_no_verified:"Can not reset password for the unverified account",account_error_invalid_verification_code:"Incorrect verification code, please try again",account_error_expired_verification_code:"Verification code expired, please try again",account_error_password_not_long_enough:"Password is not long enough",account_error_attempt_limit_exceeded:"Attempt limit exceeded, please try after some time.",account_error_password_attempts_exceeded:"Password attempts exceeded.",account_error_invalid_phone_number_format:"Invalid phone number format",account_error_no_cell_phone_prefix:"Please select the prefix for the phone number",account_error_username_already_exists:"The username already exists",account_error_you_need_to_accept_license_terms:"You need to accept the license and terms first",account_error_inactive_code:"The invitation code is not an activated code",account_error_non_existent_code:"The invitation code is non-existent",account_error_unexpected:"Unexpected Error",account_error_can_not_change_email_before_phone_bound:"The email cannot be changed before the phone number is bound",account_error_can_not_change_email_before_unbound_social_account:"The email cannot be changed before unbinding the social account",account_error_can_not_change_phone_before_email_bound:"The phone number cannot be changed before the email is bound",account_error_not_supported_yet:"Not supported yet",account_error_can_not_change_email_phone_with_mfa_enabled:"Cannot change email or mobile phone number before disable MFA",account_error_same_email:"The new email address cannot be the same as the original email address",account_error_same_phone:"The new phone number cannot be the same as the original phone number",account_error_email_not_exists:"Email address does not exist",account_error_email_already_exists:"An account with the given email already exists.",account_error_phone_already_exists:"An account with the given phone number already exists.",account_error_mfa_token_mismatch:"Software Token Code mismatch",account_error_recaptcha_not_loaded:"There is a problem with the network. Please reconnect the network and restart the application to try again.",account_error_recaptcha_validation_failed:"ReCAPTCHA validation failed. Please reconnect the network and restart the application to try again.",account_error_sign_in_in_progress:"Pending sign-in attempt already in progress",account_field_range:"Limit input of {0}-{1} characters",account_field_only_alphanumeric:"Only supports alphanumeric",account_field_only_alphanumeric_and_symbol:"Only supports alphanumeric and symbols",account_field_only_chinese_alphanumeric_space_underline:"Only supports alphanumeric, space, underscore",account_field_prefix_without_number_space:"The first character cannot be a number or a space",account_field_suffix_without_space:"Cannot end with a space",account_field_without_repeat_space:"Cannot use multiple spaces in a row",account_field_can_not_only_alphanumeric:"You can't just use letters or numbers",account_field_must_have_number_characters:"Must have number characters",account_field_verification_code:"Verification code must be six digits",account_field_invitation_code:"Invitation code must be alphanumeric",account_field_phone_number:"Invalid phone number format",account_invalid_email_format:"Invalid email format",account_sign_out_confirm:"Are you sure to sign out? This will stop all tasks.",account_sign_out_anyway:"Sign out anyway",account_signing_out:"Signing out...",account_request_save_settings:"Settings are not saved. You need to save changes before sign out.",invalid_password_format:"Invalid password format",invalid_password_format_same:"The password is the same as the original password",error_password:"Password error",keychain_setting:"Keychain",setting_description:"Cloud storage: Save key data to the cloud.\nChange password: Change the password for the media library key.\nMnemonic: an alternative method for generating and restoring keys.\nImport Local Key: Import the locally saved key into the media library.\nExport Key: Saves the current media library data to the local or cloud.\nBackup key to cloud: Update the current media library data to the cloud for backup.",refresh_status:"Update Status",confirm_import_key:"Confirm import key",confirm_update_cloud_key:"You already have a key in the cloud. Updating the key will overwrite the original key. Are you sure you want to update the key stored in the cloud",export_key_with_cloud:"Enter the independent password you set to export the library key stored in the cloud, and lock the key file by the unlock password",store_cloud_key_prompt_password:"Enter an independent password to store the library key in the cloud",update_cloud_key_prompt_password:"Set an independent password to encrypt the library key then update it to the cloud",enable_cloud_storage_prompt_password:"Set a password for the key stored in the cloud, through which you can retrieve the key from the cloud",input_unlock_password:"Set unlock password",export_local_prompt_password:"Pleasse set an unlock password to encrypt your key file. We will not save this password for you, so if you loss your password, you will be not able to unlock your library key",require_unlock_password:"The key file is locked, please enter the unlock password",require_independent_password:"Enter the independent password to get the key stored in the cloud",import_local_prompt_password:"The key file is locked, please enter the unlock password",select_encrypt_mode:"Select encryption mode",input_independent_password:"Enter independent password",update_cloud_key:"Update the key stored in the cloud",backup_to_cloud:"Backup the library key to the cloud",save_local:"Save the library key as local encrypted file",create_new_key:"Create a new library key",creating_lib_key:"Creating library key...",loading_lib_key:"Loading library key...",failed_to_create_lib_key:"Failed to create library key",failed_to_load_lib_key:"Failed to load library key",import_local_key:"Import key locally",import_lib_key_from_local:"Import a library key Locally",import_from_cloud:"Import the library key from the cloud",create_or_import_key:"Create or import library key",create_or_import_key_desc:"Library key is an independent key used to fetch and publish contents with decentralized database.",store_your_lib_key:"Store your library key",export_cloud_key:"Export Key from Cloud",export_current_key:"Export Current Key",change_password:"Change Password",enable_cloud_storage:"Enable cloud storage",disable_cloud_storage:"Disable cloud storage",disable_cloud_storage_desc:"Disable cloud storage will remove the key saved in the cloud, please ensure the key is saved locally",sync_at:"Sync at: {time}",keychain_sync_status:"Keychain Sync Status",cloud_storage_enabled:"Sync Keychain with {storage}",cloud_storage_disabled:"Cloud storage disabled",saved_locally:"Saved locally",export_key:"Export key file",cloud_independent_password:"Cloud independent password",key_file_unlock_password:"Key file unlock password",re_enter_unlock_password:"Re-enter unlock password",independent_password_not_enabled:"The current password is the Alphabiz account password (no independent password is set)",use_cognito_hash:"Use Alphabiz account password",use_independent_password:"Use independent password",keychain_lib:"library key",loading_keychain_state:"Loading keychain...",backing_up:"Backing up...",backup_current_key:"Backup current key to Cloud",cloud_lib_key_not_existed:"library key does not exist in Cloud",open_keychain_file:"Open Keychain File",confirm_open_abk:"Do you want to open the ABK file",use_the_key:"Use the key",backup_the_key:"Backup the key to the cloud",keychain_data_does_not_exist:"Keychain data does not exist","timeout of 0ms exceeded":"There is a problem with the network, please try again later",XhrError:"There is a problem with the network, please try again later"},T={add_subtitles:"Add Subtitles",open_file:"Open File...",advanced_options:"Advanced options",title:"title",location:"location",subtitle_file:"subtitle file",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"The default video player is not set",this_is_an_audio_file:"This is an audio file",the_added_subtitle_already_exists:"The added subtitle already exists",stop_stream_player:"The streaming media was terminated because the task was paused or deleted",stop_player:"The player was terminated because the file was deleted",playing_timeout_hint:"Wait times out. Please check the task",autoplay_hint:"Autoplay may blocked by your browser. If the player is not playing, try click the screen to continue",remove_playing_confirm:"{0} is still playing, remove it will stop the player. Are you sure to remove it?",subtitle:"Subtitle",setting:"Setting",loading:"Loading",unknown_media:"Unknown Media",settings_button_visible:"Button Visible",settings_setting:"Setting",settings_playback_rate:"Playback Rate",settings_subtitle:"Subtitle",settings_pip:"PiP",settings_fullscreen:"Fullscreen",settings_subtitle_options:"Subtitle Options",settings_normal:"Normal",settings_italic:"Italic",settings_lighter:"Lighter",settings_bolder:"Bolder",settings_small:"Small",settings_large:"Large"};const z=r.a.displayName;var P={lib_index:"Home",lib_edit:"Publish",lib_publish:"Publish",lib_explore:"Explore",lib_following:"Following",lib_favorite:"Local Favorites",lib_local_favorites:"Local Favorites",lib_channel:"Channel",lib_submit:"Submit",lib_from_network:"Using decentralized database from network",welcome_to_lib:`Welcome to ${z} Media Library`,register_or_login:"Register/Login",lib_recommend:"Recommend",lib_recommend_desc:`Welcome to ${z} Library! This library uses decentralized database from network. To start using it, you need to follow some channels.`,follow_any_channel_to_continue:"Follow any channel to continue",follow_channels_and_continue:"Follow {0} channels and continue",show_more_for_me:"Show more for me",no_more_recommend:"No more recommend",key:"Key",create_key:"Create key",save_key:"Save key",save_key_file:"Do you want to save your key as file?",import_key:"Import key",import:"Import",invalid_key:"Invalid key",back_to_top:"Back to top",search_for_channel:"Search for channel ID",search_channel_no_result:"Cannot find channel with ID {0}",please_input_channel_id:"Please input channel ID",welcome_help_text:"\n This is a decentralized media library. You need\n to create an account for this database. We will\n generate a personal key for you automatically.\n If you have already had a key, you can also import\n it here.",welcome_key_text:"\n Once you logged in, please click [SAVE KEY] button\n in the right-bottom corner to save your private key.\n If you loss your key, you may not able to login again.",redirect_to_recommend:"It seems you had not followed any channel. Redirecting to [Explore] page.",channel:"Channel",follow:"Follow",unfollow:"Unfollow",following:"Following",share:"Share",unfollow_confirm:"Are you sure to unfollow this channel? All posts of this channel in your timeline will be removed.",follow_failed_hint:"Operation is still pending in background. If the operation is not applied for a long time, please restart app and try again.",block:"Block",unblock:"Unblock",blocked:"Blocked",block_channel:"Block this channel",block_channel_confirm:"Block channel will remove it from your timeline. You can manage your block list in account setting.",block_creator:"Block the creator of this channel",unblock_creator:"Unblock the creator of this channel",block_creator_confirm:"Block creator will remove all channels created by this creator from your timeline. You can manage your block list in account setting.",share_url_copied:"Share URL is copied to your clipboard",follow_time:"Follow time",update_time:"Update time",search:"Search",type:"Type",added:"Added",click_to_task:"Click to go to task",lib_already_added:"You have already added this video",description:"Description",poster:"Poster",channel_poster:"Channel poster",preview:"Preview",creator:"Creator",creator_detail:"Creator detail",loading_creator:"Loading creator info",wait_for_creator_loaded:"Please wait for creator info loaded.",follower:"Follower",followers:"Followers",follower_list:"Follower list",user:"User",channel_title:"Channel title",channel_id:"Channel ID",post_title:"Post title",post_id:"Post ID",import_data_from_excel:"Import data from excel",set_excel_keys:"Set excel keys",excel_import_succeded:"Excel import succeded",excel_import_success_msg:"{0} rows are ready to add, {1} invalid and {2} duplicated items are ignored",cannot_find_channel:"Cannot find channel",cannot_find_posts:"Cannot find posts",add_channel:"Add channel",add_post:"Add post",edit_channel:"Edit channel",channel_setting:"Channel setting",edit_post:"Edit post",edit_posts:"Edit posts",channel_detail:"Channel detail",remove:"Remove",remove_channel:"Remove channel",remove_channel_confirm:"Are you sure to remove this post? This cannot be recovered.",remove_post:"Remove post",remove_post_confirm:"Are you sure to remove this channel? This cannot be recovered.",preview_mode:"Preview Mode",preview_mode_desc:"This is a preview of your channel. All rates of films are shown here.",edit_user_profile:"Edit user profile",name:"Nickname",avatar:"Avatar",no_following:"No following channels. Click to goto",no_recommend:"No recommend channels. Click to goto",first_recomment_msg:"It may take a while if this is the first time app launched.",invalid_image:"Invalid image",image_not_reachable:"This image url is not reachable.",channel_not_found:"Channel not found",cannot_get_channel_info:"Cannot get channel info. This channel may be removed by its creator and no longer available.",validate_error:"Validate error",validate_user_name_no_space:"User name should not contain spaces",validate_url_no_space:"URL should not contain spaces",validate_user_name_length:"User name should have length between {0} and {1}",validate_user_desc_length:"User description should not be more than {0} characters",validate_user_avatar_url:"User avatar should be url with less than 2048 characters",validate_channel_title_length:"Channel title should have length between 1 and 100",validate_channel_desc_length:"Channel description should have length between 10 and 300",validate_channel_image_url:"Channel preview should be url with less than 2048 characters",validate_post_title_length:"Post title should have length between 1 and 100",validate_post_desc_length:"Post description should have length between 10 and 300",validate_post_image_url:"Poster should be url with less than 2048 characters",validate_post_url:`Invalid ${z} URL`,validate_post_url_length:`${z} URL should not be more than 2048 characters`,film_rate:"Film rate",set_film_rate:"Set film rate",select_a_rate_before_enter:"You need to select a film rate before enter media library.",library_available_rate:"Library available film rate",rate_g:"G – General Audiences",rate_g_desc:"All ages admitted. Nothing that would offend parents for viewing by children.",rate_pg:"PG – Parental Guidance Suggested",rate_pg_desc:'Some material may not be suitable for children. Parents urged to give "parental guidance". May contain some material parents might not like for their young children.',rate_pg_13:"PG-13 – Parents Strongly Cautioned",rate_pg_13_desc:"Some material may be inappropriate for children under 13. Parents are urged to be cautious. Some material may be inappropriate for pre-teenagers.",rate_r:"R – Restricted",rate_r_desc:"Under 17 requires accompanying parent or adult guardian. Contains some adult material. Parents are urged to learn more about the film before taking their young children with them.",rate_nc_17:"NC-17 – Adults Only",rate_nc_17_desc:"No One 17 and Under Admitted. Clearly adult. Children are not admitted.",set_as_private:"Set as private",hide_in_explore:"Hide this channel in explore page",hidden:"Hidden",select_a_rate:"Please select a film rate",select_from_tasks:"Select from tasks",import_from_magnet:`Import from ${Object(m["a"])()?"link":"magnet:?"}...`,input_magnet_url:`Input ${Object(m["a"])()?"link":"magnet:?"} url`,task_title:"Task title",set_title:"Set title",add_to_local_favorites:"Add to local favorites",remove_from_local_favorites:"Remove from local favorites",removed_favorite:"Removed favorite ",import_or_export_favorites:"Import/Export Favorites",export_local_favorites:"Export local favorites as backup",import_favorites_file:"Import favorites file",not_a_favorite_file:"This file is not a favorite backup file",connection_status:"Connection Status",gun_server_list:"Cache Nodes",custom_nodes:"Custom cache nodes",custom_nodes_hint:"Custom cache nodes will be applied after app relaunch",wait_for_reboot:"Waiting for reboot...({seconds}s)",reboot_now:"Reboot now",reboot_later:"Reboot later",peer_list:"Direct Nodes",server:"Node URL",peer:"Peer",peer_id:"Node ID",connection:"Connection",data_source:"Data Source",sync:"Sync",syncing:"Syncing",sync_completed:"Sync completed",got_all_post:"You have already got all posts",placeholder_channel_title:"Your Channel Name",placeholder_channel_desc:"Description about this channel",placeholder_post_title:"Movie Name (Year)",placeholder_post_desc:"Description about this movie",private_channel:"Private channel",creator_blocked:"Creator blocked",go_to_library:"Go to library?",go_to_library_channel_msg:"Do you want to go to the library channel {0}?",magnet_does_not_have_name:`This ${Object(m["a"])()?"link":"magnet:?"} url does not have a name, you need to add a post title first.`,no_available_post:"No available post",following_channel_no_post:"All your following channels do not have available post. This may caused by network error. If you have already followed some channels, the posts may be loaded later.",share_to_library:"Share to library",quick_start:"Quick start",quick_start_desc:"Start creating a post with a task or file",select_file:"Select file...",select_folder:"Select folder...",post_options:"Post options",channel_options:"Channel options",create_new_channel:"Create new channel",use_existed_channel:"Use existed channel",select_existed_channel:"Select existed channel",uploaded_by:"{title} uploaded by {name}",created_by:"{title} created by {name}",creating_new_channel:"Creating new channel...",created_new_channel:"New channel created",creating_new_post:"Creating new post...",created_new_post:"New post created",create_new_post:"Create new post",quick_start_timeout:"{0} timeout. This may be caused by network error. Please try again later.",file_too_large:"File too large",file_too_large_msg:"This file is larger than 4GB ({size}) and may take a long time preparing task. Are you sure to continue?",resolving_folder_files:"Resolving folder files...",folder_too_large:"Folder too large",folder_too_large_msg:"The files in this folder are larger than 4GB ({size} total) and may take a long time preparing task. Are you sure to upload?",creating_new_task:"Creating new task...",cannot_create_task:"Cannot create task",cannot_create_task_msg:"This may cause by some error. If the task is created correctly, you can check for task list later.",cannot_get_task_name:"Cannot get task name. You need to input one first.",remove_old_task:"Remove old task",remove_old_task_desc:"Web mode can only create one task at once. Do you want to remove old task?",subtitle_list:"Subtitle list",optional:"optional",with_subtitle:"With {language} subtitles",maximumSubtitleNum_limit:"The number of subtitles has reached its maximum",add_subtitle_url:"Add subtitle download link",cannot_add_subtitle:"Failed to add subtitles",cannot_add_subtitle_msg:"Subtitle language not selected or invalid download link.",support_subtitle_type:"Only subtitles in srt and vtt format are supported.",recommend_opensubtitles:"It is recommended to use the subtitle download link or id at www.opensubtitles.org.",take_down:"Take down",serious_violation:"Serious Violation",copyright_disputes:"Copyright Disputes",adults_only:"Adults Only",takedown_reason:"Takedown reason",takedown_mode:"Takedown mode",admins:"Admins",takedown_user:"Takedown this creator",takedown_channel:"Takedown this channel",takedown_post:"Takedown this post",select_takedown_reason:"Select takedown reason",takedown_invalid_reason:"Invalid takedown reason",takedown_invalid_user_id:"Invalid user id. Id should include 87 characters",takedown_invalid_channel_id:"Invalid channel id. ID should include 20 characters",takedown_invalid_post_id:"Invalid post id. ID should include 20 characters",takedown_management:"Take down management",users:"Users",channels:"Channels",posts:"Posts",you:"You",preset:"Preset",admin:"Admin",committee:"Committee",about_takedown_mode:"About takedown mode:\nPreset: Configured in github repository. All of them will be removed from library.\nAdmin: Any one of admins votes for will be removed.\nCommittee: At least half of admins vote for will be removed.",cannot_edit_preset:"You cannot edit this row since it is a preset row",cannot_edit_not_vote:"You cannot edit this row since you have not voted for it",remove_vote:"Remove your vote",post_preload_failed:"Failed to preload this post. The download link may be out-of-date, so this post cannot be played immediately.",about_cache_node:"About cache node",edit_cache_node:"Edit cache node",create_cache_node:"Create cache node",about_cache_node_desc:`${r.a.displayName} uses gun server as cache node. You can edit custom nodes in advance setting`,learn_how_to_deploy_gun:"Learn how to deploy your own gun server",library_setting:"Library setting",block_list_manage:"Block list manage",blocked_users:"Blocked users",blocked_channels:"Blocked channels",unblock_user:"Unblock user",unblock_channel:"Unblock channel",no_blocked_user:"No blocked user",no_blocked_channel:"No blocked channel",field_required:"{0} is required"};const A=r.a.displayName,I={unsupported_in_browser:"Not supported in browser mode yet",client:"Client",warning:"Warning",enable:"Enable",disable:"Disable",auto:"Auto",encrypt_connection:"Encrypt connection",encrypted_connection:"Encrypted connection",non_encrypted_connection:"Non-encrypted connection",connected_wires_not_disconnect:"Connected wires will not be disconnected",audio:"audio",video:"video",image:"image",subtitle:"subtitle",zip:"zip",text:"text",unknown:"unknown",add:"Add",undo:"Undo",backup:"Backup",not_default_app:`${A} is not your default app for torrent and media, do you want to set as default?`,dont_show_again:"Don't show again",go_to_settings:"Go to settings",about_alphabiz:`About ${A}`,last_check_at:"Last check at",update_channel:"Update channel",check_for_update:"Check for update",checking_for_update:"Checking for update...",no_update_available:"No update available",update_available:"Update available",update_now:"Update now",update_later:"Update later",click_to_update:"Click UPDATE NOW button to download and update",update_failed:"Update failed",update_failed_message:"An error occured while updating: ",check_shasum_failed:"Failed to check integrity for installer",downloading_update:"Downloading update...",ready_to_update:"Ready to update",restart_to_update:`Update is downloaded. ${A} will exit to update for a few moment.`,already_latest:"Current version({0}) is already latest",update_timeout:"Update timeout",no_available_release:"No available release",no_available_installer:"No available installer",feedback:"Feedback",select_a_type:"Select a type",category:"Category",select_a_category:"Select a category",title:"Title",require_title:"Title is required",describe_your_problem:"Describe your problem",report_a_bug:"Report a bug",request_a_new_feature:"Request a new feature",download_or_upload:"Download/Upload",others:"Others",submit_with_system_info:"Submit with system info",submit_feedback:"Submit feedback",tweet_us:"Tweet us",tweet_too_long:"Tweet is too long",delete_characters:"Please delete at least {0} character(s)",rest_characters:"You can input {0} more character(s)",update_alphabiz:`Update ${A}`,current_version:"Current version",cancel_update:"Cancel update",slow_download_speed:"Download too slow",slow_download_speed_caption:"The installer download is too slow now. Please check the network status",update_canceled:"Update canceled",current_version_release_time:"Release time of current version",expired_app:`${A} Expired`,version_out_of_date:"Version out of date",have_to_update:`The version of ${A} is out of date. Some protocols or APIs are deprecated. You have to update ${A} before continue.`,exit_alphabiz:`Exit ${A}`,exit_and_update:"Exit and apply update",new_version_hint:"New version is available",no_new_version:"No new version available",current_is_latest:"Current version is already latest",click_to_check_update:"Click [CHECK FOR UPDATE] button to check for update",download_latest_version_from_website:"Please visit the official website to download the latest version",to_the_website:"To the website",network_diagnotic:"Network Diagnotic",diagnotic:"Diagnotic",click_to_check:"Click to check",click_to_check_again:"Click to check again",checking:"Checking",online:"Online",offline:"Offline",dns_look_up:"DNS look up",error:"Error",aws_service:"AWS Service",network_pings:"Network Ping",not_found:"Not Found",packet_loss:"Packet(s) loss",official_site:"Official Site",download_test:"Download Test",connected:"Connected",test_task:"Test Task {0}",download_failed:"Download failed",second_spend:"{0} s spend",open_default_player_failed:"Failed to open the default player",copied_to_clipboard:"Copied to clipboard",go_to:"Go to",region_not_available:"Region not available",region_not_available_message:"Sorry! Your region is not available to use this app. This app will quit after {0} seconds",confirm:"Confirm",no_available_result:"No available result"};var q={...P,...w,...k,...C,...$,...x,...T,...I};const O=r.a.displayName;var E={repeat_add:"任務已添加,請勿重複添加",upload:"上傳",download:"下載",delete:"刪除",delete_task:"刪除任務",delete_confirm_message:"是否刪除該任務? 此操作不可恢復",also_delete_files:"同時刪除文檔",default_delete_files:"刪除任務時默認刪除已下載的文件",not_now:"暫不處理",delete_autoupload_confirm:"此任務檔位於自動上傳資料夾, 刪除任務將同時刪除對應檔",delete_anyway:"仍要刪除",upload_too_many_files:"上傳檔過多",ask_if_unlimit_upload_amount:"自動上傳資料夾包含過多檔. 是否取消上傳數量限制? *此操作可能造成性能問題",disable_limitation:"取消限制",not_length:"暫不支持,多檔操作,請配合",download_torrent:"下載該任務",upload_torrent:"上傳該任務",files:"文件",file:"文件",folder:"資料夾",start_all:"全部開始",pause_all:"全部暫停",remove_all:"全部移除",upload_all:"全部上傳",clear_history:"清除歷史",pause_all_finish_payments:"此操作將完成所有已支付的訂單.",accelerating:"加速中",link_task:"連結任務",torrent_task:"文件任務",ok:"好的",cancel:"取消",download_directory_position:"下載目錄位置",torrent_file:"任務檔",magnetic_link_incorrect:"連結格式不正確",delete_fail:"刪除失敗",pause:"暫停",paused:"已暫停",stop_torrent:"結束任務",seed:"上傳",resume:"繼續",downloading:"下載中",downloaded:"下載完成",uploading:"上傳中",auto_uploading:"自動上傳中",uploaded:"上傳完成",pending:"等待其他任務完成",no_downloading_task:"沒有下載中任務",remove_all_downloading_tasks:"是否移除所有下載中任務?",remove_all_upload_tasks:"是否移除所有上傳任務?",remove_autoupload_files:"移除所有自動上傳任務",remove_all_history:"是否移除歷史下載記錄?",verifying:"驗證文件",waiting_for_verify:"等待驗證文件",seeding:"上傳中",completed:"已完成",status:"狀態",task_name:"任務名",size:"大小",progress:"進度",sort:"排序",ascending:"昇冪",descending:"降冪",file_loading:"檔載入中",loading:"載入中",unknown_status:"未知",play_while_downloading:"邊下邊播",upload_or_play:"上傳 / 播放",play:"播放",ask_if_upload_file:"是否上傳檔?",ask_if_upload_or_play:"是否上傳/播放檔?",torrent_error:"添加任務時遇到錯誤:",no_peers:"多次嘗試後仍未能與Peers建立連接",torrent_exists:"任務已存在",show_origin_torrent:"顯示原始任務檔或連結",show_directory:"打開文件所在位置",task_num:"任務數",total_upload_speed:"上傳速度",total_download_speed:"下載速度",path_missing:"Error: 找不到檔位置",origin_not_found:"獲取任務資訊失敗",text_copied:"連結已複製到剪貼板",copy_magnet_uri:"複製連結位址",copy_download_uri:"複製下載連結",copy_share_uri:"複製社交分享連結",uri_copied:"連結已複製至剪貼板",uri_copy_failed:"複製連結失敗",more:"更多",toggle_list_mode:"切換顯示模式",comment:"評論",operations:"操作",open_directory:"打開所在資料夾",remaining:"剩餘時間",created_time:"創建時間",used_time:"用時",completed_time:"完成時間",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分檔缺失.",common_peer:"普通用戶",ab_peer:`${O} 用戶`,ab_peer_verified:`${O} 註冊用戶`,ab_peer_available:`${O} peer 可用`,alphabiz_accelerating:`${O} 加速中`,income:"收入",income_info:"收入(今天/總計)",total_income_info:"收入: {0}(今天) / {1}(總計)",login_to_see_income:"登陸以查看收入統計",credit_cost:"積分支出",downloaded_by_payment:"付費下載量",file_not_found:"無法找到本地檔",no_task:"無任務",no_matched_task:"無法找到匹配的任務",space_not_enough:"磁盤空間不足",need_more_space:"需要 {0} 磁盤空間, 磁盤空間僅剩 {1}, ({2} 為保留空間). 所有任務已暫停. 媒體庫預加載已禁用. 您可以在[設置 - 進階設置]中重新啟用.",seeders:"做種",last_update:"最後更新",connecting:"連接中",connected:"已連接",request_timed_out:"請求超時",connection_failed:"連接失敗",invalid_download_url:"下載鏈接錯誤",download_link:"下载鏈接",empty_files:"目錄中沒有文檔",duplicate_task:"重複任務",duplicate_tracker:"重複 tracker",this_task_not_ready:"此任務尚未就緒,暫停任務將直接刪除該任務",some_task_not_ready:"部分任務尚未就緒,暫停這些任務將直接刪除它們",failed_to_delete_files:"刪除文件失敗",failed_to_delete_files_desc:"無法刪除部分任務文件,可能需要手動刪除",unknown_error:"未知錯誤: {0}",more_files_are_not_shown:"(出於性能考慮,{0} 個文件未顯示",no_available_file:"没有可用的文件,请等待任務就绪",service_worker_error:"無法加載 ServiceWorker。您的瀏覽器可能不支援此特性,或 ServiceWorker 尚未就緒。請刷新頁面後再試",add_task_first:"請先添加任務",player_task_time:"播放器等待時間過長,請檢查任務是否就緒 ",web_mode_hint:`${O} Web 僅支援 WebRTC 種子。下載 ${O} 桌面版以獲得最佳體驗。`,web_mode_task_hint:"點擊下方按鈕創建任務。Web 模式下僅可同時創建一個任務。",save_to_local:"保存到本地",save_as_zip:"保存為 ZIP",creating_save_file:"正在創建文件...",upload_as_one_directory:"作為一個文件夾上傳",upload_as_single_files:"作為單獨的文件上傳",web_mode_upload_single:"Web 模式下只能上傳單個文件",download_success:"下載成功",download_fail:"下載失敗",wait_for_downloaded_to_share:"請等待下載完成後再分享。",download_with_cellular:"使用蜂窩數據下載",download_with_cellular_desc:"您正在使用蜂窩數據,下載時營運商可能會收取額外的費用。",download_with_cellular_confirm:"仍然使用蜂窩數據下載"},D={language:"語言",appearance:"外觀",darkModeSystem:"跟隨系統",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基礎設置",hideMenu:"隱藏功能表欄(僅支援Windows和Linux)",autoHide:"自動隱藏視窗",start:"啟動",autoStart:"開機自動啟動",restore:"恢復上次退出時視窗的大小和位置",autoStartUnfinished:"自動開始未完成的任務",default_download_path:"預設下載路徑",download_directory:"下載目錄",upload_directory:"上傳目錄",enable_auto_upload:"允許自動上傳",unlimit_upload_amount:"不限制上傳數量",unlimit_upload_warning:"允許同時上傳大量檔案,此選項可能導致性能問題",transport_setting:"傳輸設置",upload_limit:"上傳限速",download_limit:"下載限速",payed_user_share_rate:"付費用戶上傳比例",unlimited:"不限速",limit_input_error:"限速需為正數",BT_setting:"下載任務設置",saveLinkSeed:"保存鏈接元數據為任務檔",autoDownload:"自動開始下載鏈接任務、任務檔",continuousSeeding:"持續上傳,直到手動停止",seedSharingRate:"分享率",seedTime:"上傳時間(分鐘)",task_manage:"任務管理",maximumDownloadNum:"同時下載的最大任務數",maximumConnectionsNum:"每個伺服器最大的連接數",range_error:"範圍需在{0}-{1}之間",random:"隨機",breakpointContinuation:"斷點續傳",automaticSkip:"新建任務後自動跳轉到下載頁面",afterNotification:"下載完成後通知",deleteConfirm:"刪除任務前無需確認",submit:"保存並應用",discard:"放棄",reset:"重置",reset_all_settings:"重置所有設置?",preferences_resetted:"偏好設置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"簡體中文",advancedSettings:"進階設置",autoUpdate:"自動更新",autoCheckUpdate:"自動檢查更新",proxy:"代理",useProxyService:"使用代理伺服器",trackerService:"Tracker伺服器",recommendUse:"推薦使用",autoUpdateTrackerServiceList:"每天自動更新Tracker伺服器列表",manualUpdateTracker:"手動更新",manualUpdateSuccess:"Tracker伺服器更新成功",manualUpdateFail:"更新以下Tracker伺服器失敗:",listenPort:"監聽埠",BTlistenPort:"數據傳輸埠",DHTlistenPort:"分散式哈希通訊埠",protocols:"兼容以下協定",setDefaultClientForFollowingProtocols:"設置本軟體為以下相容協定的預設用戶端",magnetUrl:"磁力連結",video_file:"視頻檔",audio_file:"音訊檔",security:"安全性",impersonateUserAgent:"模擬使用者代理(UA)",RPCauthorizationkey:"RPC授權密鑰",viewDocument:"查看說明文檔",developer:"開發者",applicationLogPath:"應用日誌路徑",downloadSessionPath:"下載會話路徑",resetDownloadSessionRecord:"重置下載會話記錄",restoreInitialSettings:"恢復初始設置",preferences_set_successfully:"偏好設置成功!",preferences_set_fail:"偏好設置失敗!",change_not_save:"修改未保存",discard_all_changes:"是否放棄所有更改?",stay_in_page:"留在此頁",disk_usage:"保留磁盘空間",pause_if_less_space:"剩餘空間小於此值時暫停並提醒(MB)",default_video_player:"默認視頻播放機",video_cache_time:"邊下邊播緩存時間",minutes:"分鐘",system_default:"系統預設",media_player:"媒體播放機",library_film_rate:"可見影片分級",library_show_explore:"顯示[探索]頁面",library_setting:"媒體庫設置",library_sync_setting:"媒體庫同步設置",keychain_sync_status:"金鑰同步狀態",sync_with_aws:"使用 Amazon Web Services 同步密鑰",backup_to_local:"保存為本地檔",enable_sync_with_aws:"啟用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作將移除儲存在雲端的金鑰,請確保已將密鑰保存至本地。 ",input_independent_password:"輸入獨立密碼",change_independent_password:"修改獨立密碼",password_error:"密碼錯誤",password_invalid:"密碼格式錯誤",key_existed:"金鑰已存在",key_not_found:"金鑰不存在",library_recommend:"媒體庫推薦",show_all_channels:"在媒體庫推薦頁顯示所有頻道",not_logged_in:"尚未登錄",login_to_continue:"登陸以繼續",mnemonic_code:"助記詞",wordlist:"單詞表",restore_code:"從助記詞恢復",generate_code:"生成助記詞",export_mnemonic_code:"導出助記詞",import_mnemonic_code:"導入助記詞",print:"列印",save_as_txt:"保存為 txt",save_as_pdf:"保存為 pdf",from_file:"從文件導入",not_valid_mnemonic_code:"助記詞格式錯誤",cannot_parse_code_as_key:"無法將此助記詞解析為密鑰",import_key_hint:"是否確認導入此金鑰? 此操作將覆蓋舊的金鑰。 ",import_key_confirm:"確認導入",library_preload:"媒體庫任務預加載",show_preload:"顯示預加載任務",set_download:"設置下載文件夾",set_download_desc:"macOS App Store 版本默認保存位置為應用沙盒,在應用卸載時會一併刪除。為了保留下載文件,您需要手動選擇保存位置。"},j={home:"主頁",home_caption:"下載/上傳媒體文件",library:"媒體庫",library_caption:"探索媒體資源",player:"播放器",player_caption:"視頻播放",credits:"信用積分",credits_caption:"檢查賬戶積分餘額",account:"用戶",account_caption:"個人用戶配置",settings:"設置",settings_caption:"所有設置項",development:"開發者",development_caption:"應用開發者模式",basic:"主要設置",basic_caption:"主要設置項",advanced:"進階設置",advanced_caption:"進階的設置項",blockchain:"錢包",blockchain_caption:"去中心化錢包",internal_notice:"內部版本聲明",release_notes:"發行説明",terms_and_conditions:"條款和章程",license_and_listen_notices:"許可和監聽開源説明",close:"關閉",success:"成功",fail:"失敗"},N={credits:"信用積分",pay:"支付積分",pay_with_credit:"支付積分加速下載, 預計需要{0}積分",pay_with_credit_payed:"正在加速下載, 預計還需要{0}積分",create_payment:"創建積分訂單",pay_target:"支付對象",pay_for_torrent:"為 {0} 支付",your_subid:"用戶 subId",your_credits:"當前餘額",pay_point_for_data:"支付{0}積分以加速{1}數據",auto_renew:"允許自動續費",transaction_details:"訂單明細",transaction_id:"訂單編號",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"類型",transaction_changed_amount:"變動金額",transaction_meta:"其他數據",transaction_status:"訂單狀態",transaction_creation_time:"訂單創建時間",receipt_code:"收款碼",transfer_amount:"轉賬金額",code_the_receipt_code:"複製下方收款碼給付款人",fill_the_receipt_code:"通過填入收款人提供的收款碼進行轉賬",income:"收入",expense:"支出",copied:"已複製",transfer:"轉賬",receive:"收款",copy:"複製",withdraw_fund:"選取基金",category_paydata_payer:"數據支付",category_paydata_payee:"數據收入",category_transfer:"個人轉賬",category_bonus:"系統獎勵",category_recharge:"充值",status_pending:"等待中",status_completed:"已傳完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"無效的收款碼",tip_invalid_amount:"金額應為 0-1000 範圍內的數(最小精度為0.001)",credit_get_more:"獲得更多積分",credit_no_data:"無可用數據",credit_loading:"加載中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"網絡出現異常,請稍後重試","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},L={account_email_invalid_address:"無效的電子郵寄地址",account_email_invalid_domain:"無效的電子郵件域",account_email_unknown_status:"未知的郵件發送狀態",account_email_unavailable_address:"郵寄地址不可用",account_email_suppressed_address:"郵寄地址被禁用",account_loading:"加載中...",account_is_required:"不能為空",account_sign_in_your_account:"登錄賬戶",account_username:"用戶名",account_username_email_phone:"手機號碼或電子郵箱",account_password:"密碼",account_new_password:"新密碼",account_re_enter_password:"再次輸入密碼",account_password_not_equal:"輸入的兩個密碼不同。",account_new_password_same:"新密碼與原密碼相同",account_forgot_your_password:"忘記密碼了?",account_reset_password:"重置密碼",account_sign_in:"登錄",account_signed_in:"登錄成功",account_sign_up:"註冊",account_find_your_account:"找尋你的賬戶",account_enter_your_username:"輸入你的手機號碼或電子郵箱",account_search:"查找",account_email_sent_tip:"一封附帶驗證碼的電子郵件已發送到您的郵箱:",account_phone_sent_tip:"一封附帶驗證碼的短信已發送到您的手機:",account_email_phone_sent_tip:"附帶驗證碼的電子郵件和手機短信已分別發送到您的郵箱和手機:",account_software_token_tip:"您的賬戶已啟用安全令牌。要完成登錄,請打開或查看您的設備並輸入驗證碼",account_reset_your_password:"重置賬戶密碼",account_verification_code:"驗證碼",account_resend_code:"重發驗證碼",account_code_has_been_resent:"驗證碼已發送",account_password_has_been_reset:"密碼已重置",account_submit:"提交",account_sign_up_your_account:"註冊賬戶",account_fill_required_fields:"填寫下方的必填項。",account_fill_optional_fields:"填寫下方的選填項。",account_email:"郵箱",account_invitation:"邀請",account_invitation_code:"邀請碼",account_i_accept:"我接受",account_license_terms:"服務許可條款",account_next:"下一步",account_you_need_to_accept_license_terms:"請先勾選我接受服務許可條款",account_verify_fill_optional_fields:"驗證身份與可選項",account_nickname:"暱稱",account_gender:"性別",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手機號碼",account_locale:"地區",account_tip_verified:"驗證通過,正在登陸…",account_verified:"已驗證",account_unverified:"未驗證",account_signed_up:"註冊成功",account_verify_your_identity:"驗證您的身份",account_finish:"完成",account_signed_out:"註銷成功",account_change_password:"修改密碼",account_change_email:"修改電子郵箱",account_change_phone_number:"修改手機號碼",account_sign_out:"註銷",account_current_password:"當前密碼",account_re_enter_new_password:"再次輸入新密碼",account_personal_information:"個人資訊",account_edit:"編輯",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_change:"更改",account_not_set:"未設置",account_setting:"設置",account_copy_code:"複製程式碼",account_account_setting:"賬戶設置",account_task_page:"積分任務",account_setting_caption:"管理你的賬戶信息",account_security:"安全",account_want_to_join:"登錄更精彩",account_sign_in_now:"點擊登錄",account_changed:"已更改",account_clipboard_with_invitation_code:"已復制邀請碼",account_clipboard_with_code:"已復制程式碼",account_invitation_code_dialog_tip:"你將通過短信或電子郵件的方式發送邀請碼:",account_available:"可用",account_invited:"已邀請",account_used:"已使用",account_invitation_code_sent:"邀請碼已發送",account_invitation_channel_required:"至少需要填寫一項邀請途徑",account_no_verification_code:"無法收到驗證碼?",account_no_phone_number:"沒有手機號碼?",account_sign_up_by_email:"通過郵箱註冊",account_no_email:"沒有郵箱?",account_sign_up_by_phone_number:"通過手機註冊",account_no_totp:"沒有安全令牌?",account_tip_no_totp:"若沒有安全令牌请先設置安全令牌",account_setup_totp:"設置安全令牌",account_contact_information:"聯繫方式",account_delete_account:"删除帳戶",account_deleted:"已删除",account_can_not_mfa:"無法進行二級驗證?",account_set_mfa_type:"更改二級驗證",account_disable_mfa:"關閉二級驗證",account_disabled_mfa:"已關閉二級驗證",account_sms_mfa:"手機短信驗證",account_totp_mfa:"安全令牌驗證",account_totp:"安全令牌",account_not_recommend:"不推薦",account_oauth_sign_in_with:"通過 {provider} 登錄",account_sign_in_failed:"登錄失敗",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通過手機短信或安全令牌為賬戶設置二級驗證",account_error_can_not_enable_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用二級驗證",account_tip_can_not_enable_sms_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用短信驗證",account_tip_can_not_enable_totp_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用安全令牌",account_tip_setup_totp:"使用Authenticator等應用,掃描下方的二維碼或手動複製代碼來添加安全令牌",account_tip_verify_totp:"驗證您的安全令牌",account_link_your_social_account:"綁定您的社交賬號",account_unlink_your_social_account:"解除社交賬號綁定",account_tip_confirm_link:"確定將當前賬號與您的 {provider} 賬號進行綁定嗎?",account_tip_confirm_unlink:"確定解除您已綁定的 {provider} 賬號嗎?",account_tip_linking:"正在綁定...",account_tip_unlinking:"解除綁定中...",account_linked:"已綁定",account_unlinked:"已解除綁定",account_error_can_not_link_to_the_linked_account:"當前社交帳號已與其他賬號綁定",account_error_can_not_link_to_the_mismatched_email:"當前賬號與社交帳號郵箱地址不一致",account_error_can_not_link_before_email_verified:"未綁定郵箱的賬戶無法綁定社交帳戶",account_tip_confirm_verify_email_phone:"是否向當前賬戶的email和手機號碼發送驗證碼以驗證您的身份?",account_tip_confirm_verify_phone:"是否向當前手機號碼發送驗證碼以驗證您的身份?",account_error_1_message_60_seconds:"每60秒只能發送一條簡訊或郵件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手機或電子郵件24小時內只能發送10條資訊",account_error_network:"網絡出現異常,請稍後重試","Network Error":"網絡出現異常,請稍後重試",account_error_user_not_exist:"用戶不存在",account_error_incorrect_username_or_password:"用戶名或密碼錯誤",account_error_incorrect_original_password:"原密碼錯誤",account_error_incorrect_password:"密碼錯誤",account_error_username_not_found:"找不到該用戶名的賬戶",account_error_can_not_reset_for_no_verified:"賬戶未進行郵箱驗證,無法重置密碼",account_error_invalid_verification_code:"驗證碼錯誤,請重試",account_error_expired_verification_code:"驗證碼過期,請重試",account_error_password_not_long_enough:"密碼長度不能小於8位",account_error_attempt_limit_exceeded:"嘗試次數過多,請稍後重試",account_error_password_attempts_exceeded:"超過密碼嘗試次數",account_error_invalid_phone_number_format:"手機號碼格式不正確",account_error_no_cell_phone_prefix:"請選擇手機號前綴",account_error_username_already_exists:"該用戶名已存在",account_error_you_need_to_accept_license_terms:"請勾選我接受服務許可條款",account_error_inactive_code:"該邀請碼已失效",account_error_non_existent_code:"該邀請碼不存在",account_error_unexpected:"未知錯誤",account_error_can_not_change_email_before_phone_bound:"綁定手機號碼前無法更改郵箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帳戶綁定前無法更改郵箱",account_error_can_not_change_phone_before_email_bound:"綁定郵箱前無法更改手機號碼",account_error_can_not_change_email_phone_with_mfa_enabled:"關閉二級驗證前無法更改郵箱或手機號碼",account_error_not_supported_yet:"暫不支持",account_error_same_email:"新的郵箱不能與原郵箱相同",account_error_same_phone:"新手機號碼不能與原手機號碼相同",account_error_email_not_exists:"該郵箱不存在",account_error_email_already_exists:"該郵箱已有帳戶綁定",account_error_phone_already_exists:"該手機號碼已有帳戶綁定",account_error_mfa_token_mismatch:"安全令牌錯誤",account_error_recaptcha_not_loaded:"網絡出現異常,請重連網絡後重啓應用重試",account_error_recaptcha_validation_failed:"未通過ReCaptcha驗證,請重連網絡後重啓應用重試",account_error_sign_in_in_progress:"等待登錄嘗試已在進行中",account_field_range:"字符個數應在{0}-{1}的範圍中",account_field_only_alphanumeric:"僅支持字母和數字",account_field_only_alphanumeric_and_symbol:"僅支持字母數字和符號",account_field_only_chinese_alphanumeric_space_underline:"僅支持中英文數字空格下劃線",account_field_prefix_without_number_space:"首個字符不能為數字或空格",account_field_suffix_without_space:"不能以空格結尾",account_field_without_repeat_space:"不能連續使用多個空格",account_field_can_not_only_alphanumeric:"不可僅為字母或數字",account_field_must_have_number_characters:"必須包含數字",account_field_verification_code:"驗證碼必須是六位數數字",account_field_invitation_code:"邀請碼必須是字母和數字",account_field_phone_number:"手機號碼格式不正確",account_invalid_email_format:"郵箱格式不正確",account_sign_out_confirm:"是否確認註銷? 註銷後將停止所有任務.",account_sign_out_anyway:"仍要註銷",account_signing_out:"正在註銷...",account_request_save_settings:"設置未保存。在註銷前請先保存修改。",invalid_password_format:"密碼格式錯誤",invalid_password_format_same:"新密碼與原密碼相同",error_password:"密碼錯誤",keychain_setting:"密鑰管理",setting_description:"雲端儲存:將金鑰數據保存到雲端。\n修改密碼:修改媒體庫金鑰的密碼。\n助記詞:一種生成和恢復金鑰的替代方法。\n導入本地金鑰:將本地保存的金鑰導入媒體庫。\n匯出金鑰:將當前媒體庫數據保存到本地或雲端。\n備份金鑰到雲端:將當前媒體庫數據更新到雲端進行備份。",refresh_status:"更新狀態",confirm_import_key:"確認導入金鑰",confirm_update_cloud_key:"你在雲端已有金鑰,更新金鑰將覆蓋原有的金鑰,確認更新存儲在雲端的金鑰嗎",export_key_with_cloud:"輸入您所設定的獨立密碼匯出存儲在雲端的媒體庫金鑰,並通過解鎖密碼鎖定密鑰文件",store_cloud_key_prompt_password:"輸入獨立密碼以存儲媒體庫金鑰到雲端",update_cloud_key_prompt_password:"設定獨立密碼以加密媒體庫金鑰並更新到雲端",enable_cloud_storage_prompt_password:"為存儲在雲端的金鑰設置密碼,通過該密碼可以從雲上取回金鑰",input_unlock_password:"設定解鎖密碼",export_local_prompt_password:"請設定一個解鎖密碼,該密碼用於加密您的密鑰文件。我們不會保存此密碼,因此若您丟失該密碼,密鑰文件將無法解鎖。",require_unlock_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",require_independent_password:"輸入獨立密碼以獲取存儲在雲端的金鑰",import_local_prompt_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",select_encrypt_mode:"選擇加密模式",input_independent_password:"輸入獨立秘碼",update_cloud_key:"更新存儲在雲端的金鑰",backup_to_cloud:"將媒體庫金鑰備份到雲端",save_local:"將媒體庫金鑰保存為本地加密檔",create_new_key:"創建新的媒體庫金鑰",creating_lib_key:"正在創建媒體庫金鑰...",loading_lib_key:"正在載入媒體庫金鑰...",failed_to_create_lib_key:"創建媒體庫金鑰失敗",failed_to_load_lib_key:"載入媒體庫金鑰失敗",import_local_key:"導入本地金鑰",import_lib_key_from_local:"從本地導入媒體庫金鑰",import_from_cloud:"從雲端導入媒體庫金鑰",create_or_import_key:"創建或導入媒體庫金鑰",create_or_import_key_desc:"媒體庫金鑰用於与去中心化數據庫同步內容。",store_your_lib_key:"存儲你的媒體庫金鑰",export_cloud_key:"導出雲端密鑰",export_current_key:"導出當前密鑰",change_password:"修改密碼",enable_cloud_storage:"啟用雲端存儲",disable_cloud_storage:"關閉雲端存儲",disable_cloud_storage_desc:"關閉雲端存儲將移除保存在雲端的密鑰,請確保已將密鑰保存在本地",sync_at:"同步於:{time}",keychain_sync_status:"密鑰同步狀態",cloud_storage_enabled:"使用 {storage} 同步密鑰",cloud_storage_disabled:"未啟用雲端存儲",saved_locally:"已保存於本地",export_key:"導出密鑰文件",cloud_independent_password:"雲端獨立密碼",key_file_unlock_password:"密鑰文件解鎖密碼",re_enter_unlock_password:"再次輸入解鎖密碼",independent_password_not_enabled:"當前密碼為 Alphabiz 帳戶密碼(未設定獨立密碼)",use_cognito_hash:"使用 Alphabiz 賬戶密碼",use_independent_password:"使用獨立密碼",keychain_lib:"媒體庫金鑰",loading_keychain_state:"加載密鑰中...",backing_up:"備份中...",backup_current_key:"備份當前金鑰到雲端",cloud_lib_key_not_existed:"雲端媒體庫金鑰不存在",open_keychain_file:"打開金鑰檔案",confirm_open_abk:"是否打開ABK檔案",use_the_key:"使用該金鑰",backup_the_key:"備份該金鑰到雲端",keychain_data_does_not_exist:"金鑰數據不存在","timeout of 0ms exceeded":"網絡出現異常,請稍後重試",XhrError:"網絡出現異常,請稍後重試"},U={add_subtitles:"添加字幕",open_file:"打開文件...",advanced_options:"高級選項",title:"標題",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默認視頻播放器未設置",this_is_an_audio_file:"這是一個音頻文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任務被暫停或刪除,流媒體播放被終止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超時,請檢查任務",autoplay_hint:"自動播放功能可能受瀏覽器限制,若未開始播放,請手動點擊播放器以播放",remove_playing_confirm:"{0} 正在播放中,刪除任務將停止播放。是否仍要刪除?",subtitle:"字幕",setting:"設定",loading:"加載中",unknown_media:"未知媒體",settings_button_visible:"按鈕顯示",settings_setting:"設定",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"畫中畫",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常規",settings_italic:"斜體",settings_lighter:"纖細",settings_bolder:"粗體",settings_small:"較小",settings_large:"較大"};const R=r.a.displayName;var M={lib_index:"主頁",lib_edit:"編輯",lib_publish:"發佈",lib_explore:"探索",lib_following:"關注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"頻道",lib_submit:"提交",lib_from_network:"使用去中心化資料庫,所有數據來源於網路",welcome_to_lib:`歡迎使用 ${R} 媒體庫`,register_or_login:"註冊/登陸",lib_recommend:"推薦",lib_recommend_desc:`歡迎使用 ${R} 媒體庫! 本媒體庫使用去中心化的資料庫,所有數據來源於網路。 在開始前,請先關注一些推薦頻道。`,follow_any_channel_to_continue:"關注任意頻道以繼續",follow_channels_and_continue:"關注 {0} 個頻道並繼續",show_more_for_me:"為我展示更多",no_more_recommend:"沒有更多推薦",key:"金鑰",create_key:"生成金鑰",save_key:"保存金鑰",save_key_file:"是否將金鑰保存為檔案?",import_key:"匯入金鑰",import:"導入",invalid_key:"金鑰格式錯誤",back_to_top:"回到頂部",search_for_channel:"搜索頻道 ID",search_channel_no_result:"找不到 ID 為 {0} 的頻道",please_input_channel_id:"請輸入頻道 ID",welcome_help_text:"\n 這是一個去中心化的媒體庫,您需要為此創建一個專用帳戶,\n 我們將自動為您生成一套金鑰。 如果您已經擁有金鑰了,\n也可以在此導入金鑰".replace(/\s/g,""),welcome_key_text:"\n 當您成功創建帳號后,請點擊右下角的【保存金鑰】按鈕匯出\n您的金鑰。 一旦您丟失金鑰,對應的帳號將無法找回。 ".replace(/\s/g,""),redirect_to_recommend:"您似乎沒有關注任何頻道,即將前往探索頁。 ",channel:"頻道",follow:"關注",unfollow:"取消關注",following:"關注中",share:"分享",block:"遮罩",unblock:"取消遮罩",blocked:"已遮罩",block_channel:"遮罩此頻道",block_channel_confirm:"遮罩頻道後,頻道的所有內容將從時間線上移除。 您可以在帳戶設定中管理遮罩清單。 ",block_creator:"遮罩此頻道的創作者",unblock_creator:"取消遮罩此頻道的創作者",block_creator_confirm:"遮罩創作者後,該創作者的所有頻道將從時間線上移除。 您可以在賬戶設置中管理遮罩清單",share_url_copied:"分享鏈接已複製至剪貼板",unfollow_confirm:"是否取消關注? 此頻道的所有推文將從你的時間線上移除。 ",follow_failed_hint:"操作仍在後台進行中,請耐心等待。如長時間未完成修改請嘗試重啟應用。 ",follow_time:"關注時間",update_time:"更新時間",search:"搜索",type:"類型",added:"已添加",click_to_task:"點擊前往對應任務",lib_already_added:"您已添加此視頻",description:"描述",poster:"海報",channel_poster:"頻道海報",preview:"預覽",creator:"創作者",creator_detail:"創作者詳情",loading_creator:"正在載入創作者資訊",wait_for_creator_loaded:"請等待創作者資訊載入完成。 ",follower:"關注者",followers:"關注者",follower_list:"關注者清單",user:"使用者",channel_title:"頻道標題",channel_id:"頻道 ID",post_title:"推文標題",post_id:"推文 ID",import_data_from_excel:"從 Excel 導入資料",set_excel_keys:"設置excel鍵",excel_import_succeded:"Excel 導入成功",excel_import_success_msg:"可添加 {0} 條新專案, {1} 條資訊不完整及 {2} 條重複項已忽略",cannot_find_channel:"找不到指定頻道",cannot_find_posts:"找不到指定視頻",add_channel:"添加頻道",add_post:"添加推文",edit_channel:"編輯頻道",channel_setting:"頻道設置",edit_post:"編輯推文",edit_posts:"編輯推文",channel_detail:"頻道詳情",remove:"移除",remove_channel:"移除頻道",remove_channel_confirm:"是否確認移除頻道? 此操作不可恢復。 ",remove_post:"移除推文",remove_post_confirm:"是否確認移除推文? 此操作不可恢復",preview_mode:"預覽模式",preview_mode_desc:"這是頻道的預覽模式,所有分級的影片均為可見狀態。 ",edit_user_profile:"編輯使用者資料",name:"昵稱",avatar:"頭像",no_following:"沒有已關注的頻道。 點擊前往",no_recommend:"沒有可推薦的頻道。 點擊前往",first_recomment_msg:"如果您是初次使用,載入時間可能較長",invalid_image:"圖片異常",image_not_reachable:"此圖片URL不可用",channel_not_found:"找不到頻道",cannot_get_channel_info:"無法獲取指定的頻道資訊。 該頻道可能已被創作者刪除而不再可見。 ",validate_error:"驗證錯誤",validate_user_name_no_space:"使用者名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"使用者名應為 {0}-{1} 字元",validate_user_desc_length:"使用者描述不可多於 {0} 字元",validate_user_avatar_url:"使用者頭像應為連結且不多於2048字元",validate_channel_title_length:"頻道標題應為1-100字元",validate_channel_desc_length:"頻道描述應為10-300字元",validate_channel_image_url:"頻道預覽圖應為連結且不多於2048字元",validate_post_title_length:"推文標題應為1-100字元",validate_post_desc_length:"推文描述應為10-300字元",validate_post_image_url:"海報應為連結且不多於2048字元",validate_post_url:`${R} 連結格式錯誤`,validate_post_url_length:`${R} 連結不可多於2048字元`,film_rate:"影片分級",set_film_rate:"設置影片分級",select_a_rate_before_enter:"您需要設置一個影片分級才可進入媒體庫。 ",library_available_rate:"媒體庫可用影片分級",rate_g:"G(大眾級)",rate_g_desc:"所有年齡皆可觀賞\n此類影片不含或僅含少量會讓家長在讓兒童觀賞時感到被冒犯的內容,無需家長陪同。 ",rate_pg:"PG(建議家長指導)",rate_pg_desc:"一些內容可能不適合兒童觀看\n此類影片包含部分家長可能認為不適合兒童的內容,因此建議家長可同時進行指導。 ",rate_pg_13:"PG-13(家長特別留意)",rate_pg_13_desc:"一些內容可能不適合13歲以下兒童觀看\n此類影片有部分內容對 13歲以下兒童不適宜,需要有父母陪同觀看。 此類影片動作暴力適當,含有少量血腥場面及不雅用語,但也包含可能令人情緒不安的情節。 ",rate_r:"R(限制級)",rate_r_desc:"未滿十七歲人士必須由家長或成年監護人陪同\n此類影片中常有大量血腥暴力、驚悚恐怖、裸露性愛或吸毒場景, 且有大量性暗示及不雅用語/ 冒犯性言論等,17歲以下人士必須由父母或者監護陪伴才能觀看。 ",rate_nc_17:"NC-17(只准成人觀看)",rate_nc_17_desc:"17歲或以下人士不得觀賞\n此類影片其中常有清楚的性愛場面,大量的吸毒或暴力鏡頭以及髒話等,因此僅適合成人觀賞。 ",set_as_private:"設為私有",hide_in_explore:"在瀏覽頁隱藏此頻道",hidden:"已隱藏",select_a_rate:"請選擇一個影片分級",select_from_tasks:"從上傳任務中選擇",import_from_magnet:`從${Object(m["a"])()?"連結":"磁力連結(magnet:?...)"}導入`,input_magnet_url:"輸入連結",task_title:"任務標題",set_title:"設為標題",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"從本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"導入/匯出收藏",export_local_favorites:"匯出收藏文件作為備份",import_favorites_file:"導入備份的收藏",not_a_favorite_file:"此文件並非收藏備份",connection_status:"連接狀態",gun_server_list:"緩存節點",custom_nodes:"客製化緩存節點",custom_nodes_hint:"緩存節點將在重啟軟體後應用",wait_for_reboot:"即將重啟軟體...({seconds}s)",reboot_now:"立即重啟",reboot_later:"稍後重啟",peer_list:"節點清單",server:"節點 URL",peer:"節點",peer_id:"節點 ID",connection:"連接",data_source:"數據源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已獲取全部推文",placeholder_channel_title:"頻道名稱",placeholder_channel_desc:"關於此頻道的描述",placeholder_post_title:"電影名稱 (年份)",placeholder_post_desc:"關於此電影的描述",private_channel:"私有頻道",creator_blocked:"已遮罩創作者",go_to_library:"前往媒體庫?",go_to_library_channel_msg:"是否前往媒體庫頻道 {0}?",magnet_does_not_have_name:"此連結不包含任務名,請輸入推文標題后重試。 ",no_available_post:"無可見推文",following_channel_no_post:"已關注的頻道中不含可見的推文。 此問題可能由網路錯誤引起。 如果您已關注帶有推文的頻道,這些推文將在稍後載入完成。 ",share_to_library:"分享到媒體庫",quick_start:"快速開始",quick_start_desc:"選擇一個任務或檔快速創建推文",select_file:"選擇檔...",select_folder:"選擇資料夾...",post_options:"推文選項",channel_options:"頻道選項",create_new_channel:"創建新頻道",use_existed_channel:"使用已存在的頻道",select_existed_channel:"選擇一個頻道",uploaded_by:"{title} (由 {name} 上傳)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在創建新頻道...",created_new_channel:"新頻道已創建",creating_new_post:"正在創建新推文...",created_new_post:"新推文已創建",create_new_post:"創建推文",quick_start_timeout:"{0}超時。此問題可能由網路異常引起。請稍後再試。",file_too_large:"文件過大",file_too_large_msg:"此檔的大小超過了 4GB ({size}),上傳此檔可能需要較長的準備時間,是否仍要上傳? ",resolving_folder_files:"正在解析文件夾內容...",folder_too_large:"資料夾過大",folder_too_large_msg:"資料夾中的檔大小超過 4GB ({size} 總大小),上傳此資料夾可能需要較長的準備時間,是否仍要上傳? ",creating_new_task:"正在創建新任務...",cannot_create_task:"創建任務異常",cannot_create_task_msg:"創建任務時產生了未知錯誤。 任務可能已被創建,請查看上傳清單以確定上傳狀態。 ",cannot_get_task_name:"無法獲取任務名,請輸入推文標題后重試",remove_old_task:"刪除舊任務",remove_old_task_desc:"Web 模式僅允許創建一個任務,是否刪除舊任務? ",subtitle_list:"字幕清單",optional:"可選",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下載連結",maximumSubtitleNum_limit:"字幕數量已達到最大",cannot_add_subtitle:"添加字幕失敗",cannot_add_subtitle_msg:"沒有選擇字幕語言或下載鏈接無效。",support_subtitle_type:"僅支援srt,vtt格式的字幕。",recommend_opensubtitles:"建議使用www.opensubtitles.org的字幕下載鏈接或id。",take_down:"下架",serious_violation:"嚴重違規",copyright_disputes:"版權爭議",adults_only:"成人內容",takedown_reason:"下架原因",takedown_mode:"下架模式",admins:"管理員",takedown_user:"下架此創作者",takedown_channel:"下架此頻道",takedown_post:"下架此推文",select_takedown_reason:"選擇下架原因",takedown_invalid_reason:"下架原因錯誤",takedown_invalid_user_id:"用戶ID錯誤。ID應為87位字符",takedown_invalid_channel_id:"頻道ID錯誤。ID應為20位字符",takedown_invalid_post_id:"推文ID錯誤。ID應為20位字符",takedown_management:"下架管理",users:"用戶",channels:"頻道",posts:"推文",you:"你",preset:"預設",admin:"管理員",committee:"委員會",about_takedown_mode:"模式說明:\n預設:在github添加,所有內容都會從媒體庫移除。\n管理員:任一管理員投票後即會移除。\n委員會:超過半數管理員投票後才會移除。",cannot_edit_preset:"無法編輯此行,因為它是預設內容",cannot_edit_not_vote:"無法編輯此行,因為你未為其投票",remove_vote:"移除你的下架投票",post_preload_failed:"無法預載此推文。下載連結可能已過期,因此無法立即播放。",about_cache_node:"關於緩存節點",edit_cache_node:"編輯緩存節點",create_cache_node:"創建緩存節點",about_cache_node_desc:`${R} 使用 gun 伺服器作為緩存節點,您可以在進階設置中編輯自定義節點。`,learn_how_to_deploy_gun:"查看如何建立自定義節點",library_setting:"媒體庫設置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用戶",blocked_channels:"已屏蔽的頻道",unblock_user:"解除用戶屏蔽",unblock_channel:"解除頻道屏蔽",no_blocked_user:"沒有已屏蔽的用戶",no_blocked_channel:"沒有已屏蔽的頻道",field_required:"{0} 不能為空"};const F=r.a.displayName,B={unsupported_in_browser:"此功能暫不支援瀏覽器模式",client:"客戶端",warning:"警告",enable:"啟用",disable:"禁用",auto:"自動",encrypt_connection:"加密傳輸",encrypted_connection:"已加密的連結",non_encrypted_connection:"未加密的連結",connected_wires_not_disconnect:"已存在的連結不會被斷開",audio:"音頻",video:"視頻",image:"圖片",subtitle:"字幕",zip:"壓縮文件",text:"文本",unknown:"未知",add:"添加",undo:"撤銷",backup:"備份",not_default_app:`${F}不是你的默認應用, 是否設置默認應用?`,dont_show_again:"不再提示",go_to_settings:"前往設置",about_alphabiz:`關於 ${F}`,update_channel:"更新通道",last_check_at:"上次檢查更新時間",check_for_update:"檢查更新",checking_for_update:"檢查更新中...",no_update_available:"沒有可用更新",update_available:"更新可用",update_now:"現在更新",update_later:"以後更新",click_to_update:"點擊[現在更新]按鈕以開始下載更新",update_failed:"更新失敗",update_failed_message:"在更新時遇到了一個錯誤: ",check_shasum_failed:"安裝包完整性檢查失敗",downloading_update:"更新下載中...",ready_to_update:"準備更新",restart_to_update:`更新下載已完成. ${F} 將在數秒後退出以應用更新`,already_latest:"當前版本({0})已是最新",update_timeout:"更新超時",no_available_release:"沒有可能的版本",no_available_installer:"沒有可用的安裝包",feedback:"反饋",select_a_type:"選擇一個類型",category:"分類",select_a_category:"選擇一個分類",title:"標題",require_title:"請提供標題",describe_your_problem:"描述您遇到的問題",report_a_bug:"報告一個錯誤(bug)",request_a_new_feature:"請求一個新功能",download_or_upload:"下載/上傳",others:"其他",submit_with_system_info:"提交時附加系統信息",submit_feedback:"提交反饋",tweet_us:"發送Twitter",tweet_too_long:"Tweet過長",delete_characters:"請刪除{0}個字符",rest_characters:"還能輸入{0}個字符",update_alphabiz:`更新 ${F}`,current_version:"當前版本",cancel_update:"取消更新",slow_download_speed:"下載過於緩慢",slow_download_speed_caption:"當前更新包下載過於緩慢,請檢查網絡狀態",update_canceled:"更新已取消",current_version_release_time:"當前版本發佈時間",expired_app:`${F} 過期`,version_out_of_date:"版本過舊",have_to_update:`${F} 版本過舊,部分接口或協議已失效。您需要升級 ${F} 才可繼續使用。`,exit_alphabiz:`退出 ${F}`,exit_and_update:"退出並應用更新",new_version_hint:"新版本可用",no_new_version:"沒有可用的新版本",current_is_latest:"當前版本已是最新版",click_to_check_update:"點擊 [檢查更新] 按鈕以檢查更新",download_latest_version_from_website:"請前往官網下載最新版本",to_the_website:"前往官網",network_diagnotic:"網路診斷",diagnotic:"診斷",click_to_check:"點擊以開始檢查",click_to_check_again:"點擊以再次檢查",checking:"檢查中",online:"在線",offline:"離線",dns_look_up:"域名解析",error:"錯誤",aws_service:"AWS 服務",network_pings:"網路 Ping",not_found:"未找到",packet_loss:"丟包率",official_site:"官方網站",download_test:"下載測試",connected:"已連結",test_task:"測試任務 ({0})",download_failed:"下載失敗",second_spend:"用時 {0} 秒",open_default_player_failed:"打開默認播放器失敗",copied_to_clipboard:"已複製到剪貼板",go_to:"前往",region_not_available:"地區不可用",region_not_available_message:"抱歉,此應用在您的地區不可用。本應用將在{0}秒後退出。",confirm:"確認",no_available_result:"無可用結果"};var W={...M,...E,...D,...j,...L,...N,...U,...B},H=a("e4a9"),V=a("a282"),Q=a("1254"),G=a("88ba"),K=a("6432"),Y=a("44ce"),J=a("3d2b"),Z=a("68e2"),X=a("5e9a"),ee=a("0699"),te=a("b36c"),ae=a("5d61"),ne=a("4165"),oe=a("111a"),ie=a("45bf"),re=a("186c"),se=a("c65d"),le=a("f3f7"),ce=a("e24e"),de=a("f7b1"),ue=a("1081"),_e=a("2c08"),pe=a("9256"),me=a("be00"),he=a("76b4"),ge=a("e9ac"),fe=a("be0d"),be=a("c9b4"),ye=a("d310");const ve={"zh-CN":y,"en-US":q,"zh-TW":W,"de-DE":H,"es-ES":V,"fr-FR":Q,"hi-IN":G,"id-ID":K,"it-IT":Y,"ja-JP":J,"ko-KR":Z,"nl-NL":X,"pl-PL":ee,"pt-PT":te,"ru-RU":ae,"th-TH":ne,"tr-TR":oe};for(const je in ve){const e=ve[je];for(const t in e)e[t].match(/\${(.+?)}/)&&(e[t]=e[t].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)))}const we={"en-US":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric"},YMDHms:{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}},"zh-CN":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"zh-TW":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"de-DE":ie,"es-ES":re,"fr-FR":se,"hi-IN":le,"id-ID":ce,"it-IT":de,"ja-JP":ue,"ko-KR":_e,"nl-NL":pe,"pl-PL":me,"pt-PT":he,"ru-RU":ge,"th-TH":fe,"tr-TR":be};for(const je in ve)je in we||(we[je]=Object(ye["deepClone"])(we["en-US"]));var ke=a("fe2c"),Se=a("d884"),Ce=a("9ad5"),xe=a.n(Ce),$e=a("5584"),Te=a("d7df");const ze=Se["b"].map((({value:e})=>e));ke["b"].registerHooks(["beforeRouteLeave","beforeRouteEnter"]),n["a"].use(o["a"]);const Pe="undefined"===typeof navigator?"en-US":Se["b"].find((({value:e})=>e===navigator.language))?navigator.language:"en-US";console.log(`[i18n] Default locale: ${Pe}`);const Ae=new o["a"]({locale:Pe,fallbackLocale:"en-US",dateTimeFormats:we,messages:ve,silentTranslationWarn:!0}),Ie={externals:"_i18n_externals_",locale:"_i18n_locale_",trans:"_i18n_translations_",dtf:"_i18n_datetime_"},qe=(e,t,a)=>{if(!e||!e.value)return console.warn(`Failed to add locale ${e}: 'value' is required but not found.`);if("object"!==typeof t||null===t)return console.warn(`Cannot add locale ${e.value}: 'translations' must be object.`);const o=Se["b"].findIndex((t=>t.value===e.value));-1!==o?(console.warn(`Add duplicate language ${e.value} will replace it with new configs`),n["a"].set(Se["b"],o,e)):n["a"].set(Se["b"],Se["b"].length,e);const i=e.value;for(const n in t)t[n].match(/\${(.+?)}/)&&(t[n]=t[n].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)));n["a"].set(ve,i,t),"object"===typeof a&&n["a"].set(we,i,a),console.log("Successfully add new locale",e);const s=[...new Set(JSON.parse(localStorage.getItem(Ie.externals)||"[]"))];if(s.some((e=>e===i))||s.push(i),localStorage.setItem(Ie.externals,JSON.stringify(s)),localStorage.setItem(Ie.locale+i,JSON.stringify(e)),localStorage.setItem(Ie.trans+i,JSON.stringify(t)),a?localStorage.setItem(Ie.dtf+i,JSON.stringify(a)):localStorage.removeItem(Ie.dtf+i),Object(ye["isElectron"])()&&Te["a"].emit("external-locale",{locale:e.value,translations:t}),Ae&&"en-US"===Ae.locale){const e=navigator.languages.map((e=>{const t=e.split("-");if(t.length<=2)return e;const a=t[0],n=t.pop();return[a,n].join("-")}));if(!e.includes(i))return console.log(`User prefer languages ${e.join(",")} does not includes ${i}`);console.log(`Automatically set locale to ${i}`),Ae.locale=i,$e["a"].dispatch("set",{language:i})}},Oe=e=>{const t=Se["b"].find((t=>t.value===e));if(-1===t)return console.warn(`Failed to remove locale ${e}: not found`);Ae&&Ae.locale===e&&(Ae.locale="en-US"),Se["b"].splice(t,1),n["a"].delete(ve,e),n["a"].delete(we,e),console.log("Successfully remove locale",e);const a=JSON.parse(localStorage.getItem(Ie.externals)||"[]");a.includes(e)&&(a.splice(a.indexOf(e),1),localStorage.setItem(Ie.externals,JSON.stringify(a))),localStorage.removeItem(Ie.locale+e),localStorage.removeItem(Ie.trans+e),localStorage.removeItem(Ie.dtf+e)},Ee=async()=>{const e=console.log.bind(console,"[Remote External I18n]");if(!r.a.externalI18n)return e("No external i18n url availabel");try{const t=e=>{let t=r.a.externalI18n;return t.endsWith("/")||(t+="/"),new URL(e,t).href};e(t("locales"));const{data:a}=await xe.a.get(t("locales"));if("string"!==typeof a)throw new Error(`Locale ${a} is not string`);e(`Fetch locales: ${a}`);const n=a.split("\n").map((t=>{const[a,...n]=t.replace(/#.*$/,"").split(" ");let o=n&&n.join(" ");return o||(o=a),a?{value:a,label:o}:(e(`No available locale in ${t}`),null)})).filter((e=>e));if(!n.length)return e(`No available external i18n from ${r.a.externalI18n}`);const o=n.map((async a=>{try{const{data:e}=await xe.a.get(t(`${a.value}/translations.json`)),{data:n}=await xe.a.get(t(`${a.value}/dateTimeFormat.json`)).catch((()=>({})));qe(a,e,n)}catch(n){e(`Failed to get ${a.label} ${a.value} from ${r.a.externalI18n}`)}}));if(await Promise.all(o),!Ae)return;for(const i in Ae.messages)ze.includes(i)||n.find((e=>e.value===i))||(e("Remove locale since external locales file deleted it",i),Oe(i))}catch(t){e(`Failed to get locales from ${r.a.externalI18n} since ${t.message||t}`)}},De=()=>{const e=localStorage.getItem(Ie.externals);if(!e)return console.log("No external i18n available");const t=JSON.parse(e);for(const n of t){const e=localStorage.getItem(Ie.locale+n),t=localStorage.getItem(Ie.trans+n),o=localStorage.getItem(Ie.dtf+n);if(e&&t)try{qe(JSON.parse(e),JSON.parse(t),o?JSON.parse(o):null)}catch(a){console.warn(`Failed to add locale ${n}:`,a.message)}else console.warn(`Failed to get local files for ${n}`,e,t)}};t["a"]=e=>{const{app:t}=e;t.i18n=Ae,new(n["a"].extend({i18n:Ae}))({beforeCreate(){const e=this.$q.notify;this.$q.notify=t=>{const a=e=>{try{const t=Ae.messages[Ae.locale];return Object.keys(t).includes(e)}catch(t){return console.log("Faild @ boot -> i18n",e,Ae.locale,t),!1}};let n;return"string"===typeof t?n=e(a(t)?this.$t(t):t):(a(t.message)&&(t.message=this.$t(t.message,t.i18nData),delete t.i18nData),n=e(t)),n};for(const t in ve){const e={locale:t,translations:ve[t]};Te["a"].emit("external-locale",e)}},created(){De(),Ee(),this.$watch((()=>Ae.locale),(()=>{if(!Ae.messages[Ae.locale]){if(Ae.locale===Ae.fallbackLocale)return console.warn(`Failed to set locale to default[${Ae.fallbackLocale}]`);Ae.locale=Ae.fallbackLocale}}))}})}},"19f3":function(e,t,a){},"1af1":function(e,t){const a={};e.exports=a},"1b85":function(e,t){e.exports=require("electron")},"1b99":function(e,t,a){"use strict";a("244a")},"1cda":function(e,t,a){"use strict";a("058f")},"1da1":function(e,t,a){},2:function(e,t){},2087:function(e,t){e.exports=require("querystring")},2163:function(e,t,a){"use strict";a("e836")},2214:function(e,t,a){"use strict";a("0d10")},2377:function(e,t,a){"use strict";a("d7f6")},"244a":function(e,t,a){},"25b9":function(e,t,a){},"28c4":function(e,t,a){"use strict";a("df2b")},"2c08":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"2cab":function(e,t,a){"use strict";a("4d62")},"2cfd":function(e,t,a){},"2d55":function(e,t,a){},"2e22":function(e,t,a){"use strict";a.d(t,"c",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return g}));a("de6c"),a("f18a");var n=a("5584"),o=a("d310"),i=(a("c49d"),a("36a1")),r=a("1926");const s=e=>new Promise((t=>{const a=setInterval((()=>{const n=e();void 0!==n&&(clearInterval(a),t(n))}),1e3)})),l={data(){return{previewImage:null}},computed:{showPreview:{set(e){this.previewImage=e||null},get(){return!!this.previewImage}}}},c={methods:{async initFilmRate(){const e=e=>{const t=new Date(e);if(!t||!t.valueOf())return;const a=Date.now();return t.setFullYear(t.getFullYear()+7),t.valueOf(){const e={type:"radio",model:"G"};e.items=[{label:r["b"].t("rate_g"),value:"G",tooltip:r["b"].t("rate_g_desc")},{label:r["b"].t("rate_pg"),value:"PG",tooltip:r["b"].t("rate_pg_desc")},{label:r["b"].t("rate_pg_13"),value:"PG-13",tooltip:r["b"].t("rate_pg_13_desc")},{label:r["b"].t("rate_r"),value:"R",tooltip:r["b"].t("rate_r_desc")},{label:r["b"].t("rate_nc_17"),value:"NC-17",tooltip:r["b"].t("rate_nc_17_desc")}];const t=this.$alphabiz.dialog({title:r["b"].t("set_film_rate"),message:r["b"].t("select_a_rate_before_enter"),options:e,ok:r["b"].t("ok")}),a=await t.promise("ok");if(a)return a.option},i=e=>{if(n["a"].dispatch("updateSettings",{libraryRate:e}),Object(o["isElectron"])()){const{ipcRenderer:t}=a("1b85");t.send("set_settings",{libraryRate:e})}localStorage.setItem("set-film-rate",e)};if(localStorage.getItem("set-film-rate"))return;const l=await s((()=>{if(n["a"].getters.accountUserInfo&&n["a"].getters.accountUserInfo.sub)return n["a"].getters.accountUserInfo.birthday||null}));let c=e(l);c||(c=await t()),i(c)}},async activated(){await this.initFilmRate()}},d=(...e)=>console.tag.blue("Channel",...e),u=(...e)=>console.tag.blue("Post",...e),_={data(){return{loader$loadedChannels:{}}},created(){this.$watch("followingChannels",(e=>{let t=!1;Object.keys(this.loader$loadedChannels).forEach((a=>{e.some((e=>e.id===a))||(delete this.loader$loadedChannels[a],t=!0)})),t&&(this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels))}),{immediate:!0,deep:!0})},computed:{loader$toLoadChannels(){const e=this.followingChannels;return console.log(e),e.filter((e=>!(!e.title||!e.id)&&!this.loader$loadedChannels[e.id])).reduce(((e,t)=>(e[t.id]=t,e)),{})}},methods:{async loader$enableChannelsLoader({onLoaded:e},t){const a=async({onChannelLoaded:e,onChannelUpdated:t})=>{const a=Object.values(this.loader$toLoadChannels);await Promise.all(a.map((async a=>{await new Promise((e=>setTimeout(e,Math.round(2e3*Math.random()))));const n=await i["a"].getChannelPostIds(a.id,!0);if(!this.loaderEnabled)return;const o=this.loader$loadedChannels[a.id];o?o.ids=n:this.loader$loadedChannels[a.id]={channel:a,ids:n},this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels),await(o?t:e)(a.id)})))},n=()=>({toLoadCount:Object.keys(this.loader$toLoadChannels).length,loadedCount:Object.keys(this.loader$loadedChannels).length}),o=e=>new Promise((t=>setTimeout(t,e)));let r=!0;while(this.loaderEnabled){const i=n();if(!i.toLoadCount){if(r){e(!0),r=!1;continue}await o(t);continue}if(await a({onChannelLoaded:async e=>{if(!this.loaderEnabled)return;const{loadedCount:t,toLoadCount:a}=n(),o=`${t}/${t+a}`;d("onLoaded",o).log(e)},onChannelUpdated:async e=>{this.loaderEnabled&&d("onUpdated").log(e)}}),!this.loaderEnabled)break;const s=n();s.toLoadCount||(e(r),r=!1,await o(t))}}}},p={data(){return{loader$loadedPosts:{}}},computed:{loader$toLoadPosts(){return Object.values(this.loader$loadedChannels).map((({channel:e,ids:t})=>t.map((t=>({id:t,channelId:e.id}))))).flat(1).reduce(((e,t)=>(this.loader$loadedPosts[t.id]||(e[t.id]=t),e)),{})},loader$toLoadPostIdListSorted(){const e=(e,t)=>e&&t?e.localeCompare(t):0;return Object.values(this.loader$loadedChannels).map((({ids:e})=>e.filter((e=>!this.loader$loadedPosts[e])))).flat(1).sort(e)}},methods:{async loader$loadPosts({count:e},{onPostsLoaded:t}){const a=async e=>{const{id:t,channelId:a}=e,n=this.loader$loadedChannels[a].channel,o=await i["a"].getPostById(a,t,!0);return o?(o.channel=n,o):null},n=e=>this.loader$toLoadPostIdListSorted.length?this.loader$toLoadPostIdListSorted.slice(0,e).map((e=>this.loader$toLoadPosts[e])):null,o=n(e);if(!o)return;const r=await Promise.all(o.map((async e=>{const t=await a(e);return t?{success:!0,post:t}:{success:!1,target:e}}))),s=r.filter((e=>e.success)).map((e=>e.post));return s.length&&(s.forEach((e=>{this.loader$loadedPosts[e.id]=e})),this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts),await t(s)),r},async loader$loadPostsNext({count:e}={}){if(!Object.keys(this.loader$toLoadPosts).length)return;if("loaded"!==this.loaderState)return;this.loaderState="fetching",await new Promise((e=>setTimeout(e,1e3)));const t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};await this.loader$loadPosts({count:e},{onPostsLoaded:t}),this.loaderState="loaded"},async loader$initPostLoader({initialCount:e}={},{onPostsLoaded:t}={}){var a;null!==(a=e)&&void 0!==a||(e=24),t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};const n=e=>new Promise((t=>setTimeout(t,e))),o=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),i=()=>{const{toLoadCount:t,loadedCount:a}=o();return a&&(0===t||a>=e)};let r=!0;while(!i())await this.loader$loadPosts({count:10},{onPostsLoaded:t}),r?r=!1:await n(Math.round(3e3*Math.random()));u().log("loaded")}}},m={mixins:[_,p],data(){return{loaderState:"stopped"}},computed:{loaderEnabled(){return["loading","fetching","loaded","timeout"].includes(this.loaderState)}},created(){this.$watch("loaderState",((e,t)=>{const a={red:["timeout"]},n=Object.keys(a).find((t=>a[t].includes(e))),o=console.tag[n||"blue"]("State"),i={loading:"loading...",timeout:"timeout, maybe network error",fetching:"fetching next post slice",loaded:()=>{const e={loading:"loaded",timeout:"loaded but timeout"};return e[t]}};let r=i[e];"function"===typeof r&&(r=r()),r?o.log(r):o.log()}))},methods:{async enableLoader(){const e=e=>new Promise((t=>setTimeout(t,e))),t=async(t,a,n)=>{let o,i=!1;return await Promise.race([t.then((e=>{i=!0,o=e})),e(a).then((()=>{i||n&&(o=n())}))]),o};if(this.loaderEnabled)return;this.loaderState="loading";const a=6e4,n=async()=>{await new Promise((e=>this.loader$enableChannelsLoader({onLoaded:t=>{d().log(t?"loaded":"updated"),e(!0)}},1e4))),await this.loader$initPostLoader()},o=e=>{this.loaderEnabled&&(this.loaderState=e?"timeout":"loaded")};await t((async()=>{await n(),o(!1)})(),a,(()=>{o(!0)}))},async disableLoader(){this.loaderEnabled&&(this.loaderState="stopped")}}},h={methods:{loader$dialog(){const e=this.$alphabiz.dialog({title:r["b"].t("no_available_post"),message:r["b"].t("following_channel_no_post"),cancel:r["b"].t("cancel"),ok:r["b"].t("lib_explore")});return e.promise("ok").then((e=>{e&&(n["a"].getters.settings.libraryShowExplore||n["a"].dispatch("set",{libraryShowExplore:!0}),this.$root.$emit("navigate-to","/library/explore"),this.$router.push("/library/explore"))})),e}}},g={mixins:[m,h],computed:{loadedPosts(){return this.loader$loadedPosts}},created(){let e;this.$watch("loaderState",(t=>{if("timeout"===t);else{if(!e)return;try{e.hide()}catch(a){}finally{e=null}}}))},async activated(){const e=()=>{const e=Object.values(this.loader$loadedChannels).map((({ids:e})=>e)).flat(1),t=Object.keys(this.loader$loadedPosts).filter((t=>!e.includes(t)));t.forEach((e=>{delete this.loader$loadedPosts[e]})),t.length&&(this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts))};e(),await i["a"].whenReady,this.enableLoader()},deactivated(){this.disableLoader()}}},"2e34":function(e,t,a){"use strict";a("3e69")},"2e69":function(e,t,a){"use strict";a("30c9")},3:function(e,t){},3061:function(e,t,a){"use strict";a("aa59")},"30c9":function(e,t,a){},"326b":function(e,t,a){},3334:function(e,t,a){"use strict";a.r(t),a.d(t,"getCurrentUser",(function(){return n})),a.d(t,"getCurrentExpenses",(function(){return o})),a.d(t,"getCurrentIncome",(function(){return i})),a.d(t,"getTransactionById",(function(){return r})),a.d(t,"getUser",(function(){return s})),a.d(t,"listUsers",(function(){return l})),a.d(t,"getInvitation",(function(){return c})),a.d(t,"listInvitations",(function(){return d})),a.d(t,"queryInvitationsByInviterId",(function(){return u})),a.d(t,"getMessageTimer",(function(){return _})),a.d(t,"listMessageTimers",(function(){return p})),a.d(t,"getTransaction",(function(){return m})),a.d(t,"listTransactions",(function(){return h})),a.d(t,"queryTransactionsByPayerId",(function(){return g})),a.d(t,"queryTransactionsByPayeeId",(function(){return f})),a.d(t,"getTask",(function(){return b})),a.d(t,"listTasks",(function(){return y})),a.d(t,"queryTasksByMember",(function(){return v})),a.d(t,"queryTaskByCategory",(function(){return w})),a.d(t,"getProvidentFund",(function(){return k})),a.d(t,"listProvidentFunds",(function(){return S}));const n="\n query GetCurrentUser {\n getCurrentUser {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",o="\n query GetCurrentExpenses($nextToken: String, $params: String) {\n getCurrentExpenses(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",i="\n query GetCurrentIncome($nextToken: String, $params: String) {\n getCurrentIncome(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",r="\n query GetTransactionById($id: String) {\n getTransactionById(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",s="\n query GetUser($id: ID!) {\n getUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",l="\n query ListUsers(\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n credit\n username\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",c="\n query GetInvitation($id: ID!) {\n getInvitation(id: $id) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",d="\n query ListInvitations(\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listInvitations(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",u="\n query QueryInvitationsByInviterId(\n $inviterId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryInvitationsByInviterId(\n inviterId: $inviterId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",_="\n query GetMessageTimer($id: ID!) {\n getMessageTimer(id: $id) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",p="\n query ListMessageTimers(\n $filter: ModelMessageTimerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listMessageTimers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n times\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n",m="\n query GetTransaction($id: ID!) {\n getTransaction(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",h="\n query ListTransactions(\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTransactions(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",g="\n query QueryTransactionsByPayerId(\n $payerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayerId(\n payerId: $payerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",f="\n query QueryTransactionsByPayeeId(\n $payeeId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayeeId(\n payeeId: $payeeId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",b="\n query GetTask($id: ID!) {\n getTask(id: $id) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n query ListTasks(\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTasks(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",v="\n query QueryTasksByMember(\n $member: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTasksByMember(\n member: $member\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",w="\n query QueryTaskByCategory(\n $category: TaskCategory\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTaskByCategory(\n category: $category\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",k="\n query GetProvidentFund($id: ID!) {\n getProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",S="\n query ListProvidentFunds(\n $filter: ModelProvidentFundFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProvidentFunds(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n amount\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n"},3361:function(e,t,a){},3408:function(e,t,a){"use strict";a("8306")},3669:function(e,t,a){"use strict";a("c7ce")},"36a1":function(e,t,a){"use strict";a.d(t,"a",(function(){return Q}));var n=a("ff9b"),o=a("2d62"),i=a("d7df"),r=a("5515"),s=a("f680"),l=a("5584"),c=a("1926"),d=a("c49d"),u=a("3aea"),_=(a("d4b5"),a("de6c"),a("0598")),p=a("9ad5"),m=a.n(p),h=a("d6fe"),g=a("bc7b"),f=a("d710"),b=a.n(f);const{github:y}=f["update"],v=e=>f["takedown"].admins.includes(e),w="Serious Violation",k="Copyright Disputes",S="Adults Only",C=()=>{const e=Object(_["default"])()?require("developer/take-down.json"):a("9445");return e},x=C(),$=()=>{if(!Object(_["default"])())return null;const{app:e}=a("3be9"),t=e.getPath("userData");if(!t)return null;const n=Object(h["resolve"])(t,"config/take-down.json");return Object(g["existsSync"])(n)?JSON.parse(Object(g["readFileSync"])(n)):null},T=async()=>{const e=`https://raw.githubusercontent.com/${y.username}/${y.repo}/${y.branch}/developer/take-down.json`,{data:t}=await m.a.get(e).catch((()=>({data:null})));return t},z=async()=>{let e=await T();if(console.log("get from remote",e),Object(_["default"])()&&e){const{app:t}=a("3be9"),n=t.getPath("userData");if(!n)return;const o=Object(h["resolve"])(n,"config/take-down.json");Object(g["writeFileSync"])(o,JSON.stringify(e,null,2))}if(e||(e=$(),console.log("get from saved",e)),e&&"object"===typeof e)for(const t in x)x[t].splice(0,x[t].length,...e[t])},P=()=>x,A={users:[],channels:[],posts:[]};let I=!1;const q=()=>A,O=()=>{if(I)return;I=!0;const{admins:e,mode:t}=f["takedown"],a="admin"===t?0:Math.ceil(e.length/2+.5),n=[],i=()=>{console.log("update extra list",n);const e={users:[],channels:[],posts:[]};n.forEach((({id:n,admins:o,reason:i})=>{const[r,s]=n.split("|");if(!r||!s||!e[r])return;const l={id:s,reason:i,admins:o,mode:t,minCount:a};e[r].find((e=>e.id===s))||e[r].push(l)}));for(const t in e)A[t].splice(0,A[t].length,...e[t])},r=()=>{i()},s=(e="",t={})=>{for(const o in t){const i=t[o],r=n.find((e=>e.id===o));if(r)i&&[w,k,S].includes(i)?r.admins.includes(e)||r.admins.push(e):r.admins.includes(e)&&(r.admins.splice(r.admins.indexOf(e),1),0===r.admins.length&&n.splice(n.indexOf(r),1));else{if(!i)continue;if(![w,k,S].includes(i))continue;n.push({id:o,admins:[e],reason:i,minCount:a})}}r()};e.forEach((e=>{console.log("add admin",e),o["v"].user(e).get("takedowns").on((t=>{s(e,t)}))}))};a("7a76"),a("0c26");var E=a("0f0c"),D=a("8097"),j=async()=>{const e=N();console.tag.orange("recommends","urls").log(e);const{data:t,url:a}=await new Promise((async t=>{for(const a of e){const e=await L(a);if(e){t({data:e,url:a});break}}}));return console.tag.orange("recommends","got").log({url:a,data:t}),t};function N(){const e={version:Object(E["a"])("version"),buildTime:Object(E["a"])("buildTime")},t=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),a=[`${f["homepage"]}/recommends/v${e.version}.txt`,`${f["homepage"]}/recommends/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/recommends.txt`,"recommends.txt"];return t?a.splice(1,2):Object(D["a"])()&&a.unshift(`${f["homepage"]}/recommends/store/v${e.version}.txt`,`${f["homepage"]}/recommends/store/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/store/recommends.txt`),Array.from(new Set(a))}async function L(e){const t=async()=>{const t=await fetch(e);if(!t.ok||200!==t.status)return console.tag.orange("recommends","fetch").warn(t.statusText),null;try{const e=await t.text();return U(e)}catch{return null}},a=async n=>{try{return n.count&&console.tag.orange("recommends","fetch:retry",n.count).log(e),await t()}catch(o){if(o instanceof TypeError)return await new Promise((e=>setTimeout(e,1e3))),n.count+=1,await a(n);throw o}};return await a({count:0})}function U(e){if("string"!==typeof e)throw console.tag.orange("recommends","parse").error("Cannot parse data as string",e),new Error("Cannot parse data as string");const t=e.split("\n").map((e=>{var t;return null===(t=e.trim().split(" "))||void 0===t?void 0:t[0]})).filter((e=>e.match(/^[a-z0-9]{20}$/)));return t}var R=a("1738"),M=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};let F=Date.now();i["a"].on("library-db",(e=>M(void 0,void 0,void 0,(function*(){e&&(setTimeout((()=>Object(r["b"])(e)),3e3),setTimeout((()=>Object(r["b"])(e)),3e4),setTimeout((()=>Object(r["b"])(e)),6e4))})))),i["a"].emit("library-db");let B=!1;Object.defineProperty(globalThis,"verb",{get(){return B},set(e){B=e}}),Object.defineProperty(globalThis,"eventBus",{get(){return o["i"]}});const W=["G","PG","PG-13","R","NC-17"];let H=()=>{},V=null;const Q=new n["a"]({data(){return{user:null,ownedChannels:[],ownedChannelInstances:[],ownedChannelMap:new Map,followingChannels:[],showRecommend:!1,recommendPage:0,recommendIdList:[],allChannelList:[],online:!1,onlineStatus:"connecting",gunPeers:[],channelFollowerCount:{},libStatus:"init",whenReady:new Promise((e=>{let t=!1;H=()=>{t||(t=!0,R["a"].send("library_init",{cost:Date.now()-F}),e())}})),search:{text:"",option:{label:"",value:""},options:[]},currentCreator:{name:"",description:"",avatar:"",id:"",channels:[]},currentUserFromGun:null,userData:{},takedownList:{users:[],channels:[],posts:[]},takedownExtraList:{users:[],channels:[],posts:[]},isLibAdmin:!1,isFirstRegister:!1}},computed:{allowAdults(){return"NC-17"===l["a"].state.setting.libraryRate},username(){return this.userData&&"string"===typeof this.userData.name?this.userData.name:"("+c["b"].t("loading")+")"},bannedUsers(){const e=[];return[this.takedownList,this.takedownExtraList].forEach((t=>{t.users.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.channels.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.posts.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{if(t.id){if(e.includes(t.id))return!1;if(e.push(t.id),this.isBannedChannel(t))return!1}return t.title&&(t.creator||t.soul)}))},nonBlockFollowingChannels(){const{blockChannels:e,blockUsers:t}=this.userData;return e&&t?this.followingChannels.filter((a=>!(!a.id||!a.title)&&(!e.includes(a.id)&&!t.includes(a.creator)))):[]},isLoggedIn(){return!!this.user&&("ready"===this.libStatus&&!(!this.user.is||!this.user.is.pub))},sortedChannel(){return this.channelList},filteredChannels(){if(console.log("trigger filter channel"),"channel"!==this.search.option.label)return this.sortedChannel;const e=this.search.text;return this.sortedChannel.filter((t=>{var a;return!!t&&(t.title.toLowerCase().includes(e)||(null===(a=t.id)||void 0===a?void 0:a.includes(e)))}))},recommendChannels(){const e=5,t=this.filteredChannels.length,a=Math.ceil(t/e);while(this.recommendPage>a)this.recommendPage-=a;const n=[],o=this.recommendPage*e;for(let i=0;i<5;i++){const e=o+i;this.filteredChannels[e]&&!this.followingChannels.some((t=>t.id===this.filteredChannels[e].id))&&n.push(this.filteredChannels[e])}return n},addedPostMap(){const e=Object.create(null);for(const t in l["a"].getters.abKeys){const a=l["a"].getters.abKeys[t];a.forEach((a=>{e[a.key]={type:t,infoHash:a.infoHash,playFile:a.playFile}}))}return e}},methods:{register(e,t,a){return M(this,void 0,void 0,(function*(){this.isFirstRegister=!0,yield this.logout();const n=yield Object(o["z"])(e,t,a);return Object(r["c"])(),n}))},login(e){return M(this,void 0,void 0,(function*(){return this.isLibAdmin=!1,this.isLoggedIn?(console.log("should logged out",this.user),Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,console.log("relogin"),this.login(e)):(setTimeout((()=>{!this.followingChannels.length&&this.isLoggedIn&&this.updateFollow()}),1e4),Object(o["w"])(e))}))},logout(){return M(this,void 0,void 0,(function*(){this.isLibAdmin=!1,Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,this.userData={blockChannels:[],blockUsers:[]},this.followingChannels=[],this.ownedChannels=[]}))},prepareData(){var e;return M(this,void 0,void 0,(function*(){if(console.log("prepare data"),this.updateRecommends(),this.user=Object(o["u"])(),this.userData=Object(o["t"])().data,!this.user._||!this.user._.sea)throw new Error("User is not logged in");localStorage.setItem(`library-pair@${o["e"]}`,JSON.stringify(this.user._.sea)),this.isLibAdmin=v(null===(e=this.user.is)||void 0===e?void 0:e.pub),this.$emit("logged-in"),this.libStatus="fetch",yield this.getAllChannels(),this.updateOwn(),console.time("> lib: get private data"),yield this.updateFollow(),console.timeEnd("> lib: get private data"),this.libStatus="ready",H(),O(),this.takedownList=P(),this.takedownExtraList=q(),console.log("Takedown list:",this.takedownList)}))},isBannedChannel(e){return!!this.bannedUsers.includes(e.creator)||!!this.bannedChannels.includes(e.id)},isBannedPost(e){return!!this.bannedPosts.includes(e.id)},isValidRate(e){const t=l["a"].getters.settings.libraryRate,a=W.indexOf(e),n=W.indexOf(t);return a<=n},getAllChannels(){return M(this,void 0,void 0,(function*(){return V||(V=new Promise((e=>M(this,void 0,void 0,(function*(){const t=yield Object(o["k"])();if(t===this.allChannelList)return e();Object(d["a"])("get channel list",t,t.length),this.$set(this,"allChannelList",t),e()})))),V)}))},getRandomChannels(e,t){const a=this.followingChannels.map((e=>e.id)),n=(0===this.recommendIdList.length?this.channelList:this.recommendIdList.map((e=>this.channelList.find((t=>t.id===e))))).filter((e=>e&&!a.includes(e.id))),o=n.filter((e=>!e.hidden&&(!Array.isArray(t)||!t.includes(e.id))));if(0===o.length&&l["a"].getters.settings.libraryShowAllChannels){const e=this.channelList.filter((e=>!e.hidden&&(!!this.recommendIdList.includes(e.id)&&(!Array.isArray(t)||!t.includes(e.id)))));e.length&&o.push(...e)}if(o.length<=e)return o;for(let i=o.length-1;i>0;i--){const e=Math.floor(Math.random()*(i+1));[o[i],o[e]]=[o[e],o[i]]}if(b.a.library.recommends){const e=navigator.language,t=b.a.library.recommends[e]||b.a.library.recommends.default;if(t.length)for(let a=0;a(Object(d["a"])("Created new channel",e.id,e),Q.allChannelList.find((t=>!!t.id&&t.id===e.id))||e.id&&Q.allChannelList.push(e),setTimeout((()=>{Object(o["j"])(e.id).then((e=>{Object(r["c"])()}))}),1e3),e)))):null}))},editChannel(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["f"])(e,t);return Object(r["c"])(),a}))},removeChannel(e){return M(this,void 0,void 0,(function*(){const t=yield Object(o["A"])(e).then((t=>(Object(d["a"])("Removed",t,e),setTimeout((()=>Object(o["A"])(e)),1e3),t)));return Object(r["c"])(),t}))},createPost(e,t){return M(this,void 0,void 0,(function*(){if(!this.isLoggedIn)return null;const a=yield Object(o["b"])(t,e);return Object(r["c"])(),Q.getChannelPosts(t,!1).then((t=>{t.find((t=>!!t.id&&t.id===e.id))||e.id&&t.push(e)})),a}))},addPosts(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["c"])(t,e);return Object(r["c"])(),a}))},editPost(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["g"])(e,t,a);return Object(r["c"])(),n}))},removePost(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["B"])(t,e);return Object(r["c"])(),a}))},getChannelById(e){return Object(o["l"])(e)},getChannelPosts(e,t){return M(this,void 0,void 0,(function*(){return Object(o["o"])(e,t||!1)}))},getChannelPostIds(e,t){return M(this,void 0,void 0,(function*(){return Object(o["q"])(e,t||!1)}))},getPostById(e,t,a){return M(this,void 0,void 0,(function*(){return Object(o["p"])(e,t,a)}))},followChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: follow",e);const t=yield Promise.race([new Promise((t=>{setTimeout((()=>{this.followingChannels.some((t=>t.id===e))?t(null):Object(o["j"])(e).then(t)}),1500)})),Object(o["j"])(e)]);return this.isFirstRegister=!1,Object(r["c"])(),t}))},unfollowChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: unfollow",e);const t=yield Object(o["E"])(e);return Object(r["c"])(),t}))},blockChannel(e){return Object(o["d"])("channel",e)},blockUser(e){return Object(o["d"])("user",e)},unblockChannel(e){return Object(o["D"])("channel",e)},unblockUser(e){return Object(o["D"])("user",e)},takedown(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["C"])(e,t,a);return console.log("Takedown result",n),n}))},setSearchOption(e){this.search.options=e,this.search.text="",e.length&&(this.search.option=e[0])},todo(e){s["a"].create(`Incomplete. info: ${e}`)}},created(){setTimeout((()=>{this.getAllChannels(),this.updateRecommends()}),2e3),z();const e=new Set;console.log("[lib] created"),Object(d["b"])((t=>{e.has(t)||Object(r["a"])(t)}));const t=new Set;setInterval((()=>{var e,a;const n=Object.values(o["v"]._.opt.peers);let i=!1;if(n.length){for(const t of n)if((null===(e=null===t||void 0===t?void 0:t.wire)||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(this.online=!0,this.onlineStatus="connected",i=!0),t.wire instanceof WebSocket){const e={type:"ws",url:t.url,status:(null===(a=t.wire)||void 0===a?void 0:a.readyState)||0},n=this.gunPeers.findIndex((t=>t.url===e.url));-1!==n?this.$set(this.gunPeers,n,e):this.gunPeers.push(e)}this.gunPeers.forEach((e=>{"wrtc"!==e.type&&(n.find((t=>t.url===e.url||t.id===e.url))||this.$set(e,"status",WebSocket.CLOSED))}))}else this.online=!1,"connected"===this.onlineStatus&&(this.onlineStatus="reconnecting");Object.values(r["d"]).forEach((e=>{var t;const a={closed:WebSocket.CLOSED,connected:WebSocket.OPEN,connecting:WebSocket.CONNECTING,disconnected:WebSocket.CLOSED,failed:WebSocket.CLOSED,new:WebSocket.CONNECTING}[e.connectionState];a===WebSocket.OPEN&&(i=!0);const n={type:"wrtc",url:e.id,from:e._from,status:a,statusText:e.connectionState,label:Object(u["f"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||""),syncState:e.syncState,remoteSyncState:e.remoteSyncState,downloaded:e.downloaded,downloadSpeed:e.downloadSpeed,uploaded:e.uploaded,uploadSpeed:e.uploadSpeed},o=this.gunPeers.findIndex((e=>e.url===n.url));-1!==o?this.$set(this.gunPeers,o,n):this.gunPeers.push(n)}));for(let o=0;o0},attrs:{rounded:"",color:"primary",icon:e.selected.length?"star":void 0,label:e.selected.length?e.$t("follow_channels_and_continue",[e.selected.length]):e.$t("follow_any_channel_to_continue"),disable:!e.selected.length},on:{click:e.onFollow}}),a("q-btn",{staticClass:"action-btn q-px-sm q-mr-xl",attrs:{rounded:"",color:"primary",icon:"refresh",label:e.$t("show_more_for_me")},on:{click:e.loadMore}})],1)],2)])},o=[],i=(a("de6c"),a("fb31")),r=a.n(i),s=a("36a1"),l={name:"LibraryRecommend",props:{fullscreen:Boolean},data(){return{initTimer:null,badImage:[],recommends:[],selected:[],lib:s["a"]}},computed:{autoSelectIds(){const e=navigator.language,t=r.a.library.recommends;return t[e]?t[e]:t.default},followings(){return s["a"].followingChannels.map((e=>e.id))},filteredRecommends(){const e=s["a"].recommendIdList.length?this.recommends.filter((e=>s["a"].recommendIdList.includes(e.id))):this.recommends;if(!s["a"].userData)return e;const{blockChannels:t,blockUsers:a}=s["a"].userData;return t&&a?e.filter(((n,o)=>e.findIndex((e=>e.id===n.id))===o&&!t.includes(n.id)&&!a.includes(n.creator))):e}},watch:{filteredRecommends(e){if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}},methods:{async initRecommends(){this.getRecommends(),this.$root.$emit("navigate-to"),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}))},getRecommends(){const e=this.lib.getRandomChannels(5);this.recommends.splice(0,5,...e),0===e.length&&setTimeout((()=>{this.getRecommends()}),2e3)},loadMore(){const e=this.lib.getRandomChannels(6,this.recommends.map((e=>e.id)));if(!e.length)return this.$q.dialog({message:this.$t("no_more_recommend"),ok:this.$t("ok")});this.recommends.push(...e),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}))},select(e){this.selected.includes(e)?this.selected.splice(this.selected.indexOf(e),1):this.selected.push(e)},onFollow(){for(const e of this.selected)s["a"].followChannel(e);this.selected.splice(0),this.autoSelectIds.length&&setTimeout((()=>{for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}),5e3)},onImageError(e){this.badImage.push(e)},onImageLoaded(e){-1!==this.badImage.indexOf(e)&&this.badImage.splice(this.badImage.indexOf(e),1)}},mounted(){const e=()=>{var t;"signedIn"===(null===(t=this.$store.state.account)||void 0===t?void 0:t.authState)?this.initTimer=setTimeout((()=>{this.initRecommends()}),500):this.initTimer=setTimeout(e,1e3)};e()},beforeDestroy(){clearTimeout(this.initTimer)}},c=l,d=(a("7895"),a("2b5f")),u=a("e586"),_=a("d7c7"),p=a("f106"),m=a("1043"),h=a("4101"),g=a("09a4"),f=a.n(g),b=Object(d["a"])(c,n,o,!1,null,"0d732dc4",null);t["a"]=b.exports;f()(b,"components",{QCard:u["a"],QCardSection:_["a"],QIcon:p["a"],QBtn:m["a"],QColor:h["a"]})},"38d2":function(e,t,a){},"39df":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"development-container",class:{large:e.isElectron}},[a("q-card",{attrs:{flat:"",square:""}},[a("q-tabs",{attrs:{align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},e._l(e.tabs,(function(t){return a("q-tab",e._b({key:t.name},"q-tab",t,!1))})),1),a("q-separator"),a("q-tab-panels",{staticClass:"panels",attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[a("q-tab-panel",{attrs:{name:"BasicPanel"}},[a("BasicPanel")],1),a("q-tab-panel",{attrs:{name:"accountInfo"}},[a("account-tab-panel")],1),a("q-tab-panel",{attrs:{name:"amplify"}},[a("amplify-tab-panel")],1),a("q-tab-panel",{attrs:{name:"devInfo"}},[a("dev-info-tab-panel")],1),a("q-tab-panel",{attrs:{name:"capacitorTest"}},[a("CapacitorTest")],1),a("q-tab-panel",{attrs:{name:"urlConvert"}},[a("url-convert")],1),a("q-tab-panel",{attrs:{name:"libraryData"}},[a("library-data")],1),a("q-tab-panel",{attrs:{name:"libraryPreload"}},[a("LibraryPreload")],1),a("q-tab-panel",{attrs:{name:"payment_mode"}},[a("payment-mode")],1),a("q-tab-panel",{attrs:{name:"theme_panel"}},[a("ThemeTabPanel")],1)],1)],1)],1)},o=[],i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"panel"},e._l(e.handlersData,(function(t){var n=t[0],o=t[1];return a("q-btn",e._b({key:n.key,attrs:{"no-caps":"",unelevated:""},on:{click:o}},"q-btn",n,!1))})),1),a("q-separator"),a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v("Dynamic Config")]),a("div",{staticStyle:{"white-space":"pre-wrap"}},[e._v(e._s(JSON.stringify(e.d$cfg,null,2)))])]),a("q-separator"),a("q-card-section")],1)},r=[],s=(a("de6c"),a("a1c1"),a("91ab")),l=a("d310");const c=a("d310").isElectron();var d={name:"BasicPanel",data(){return{handlers:[[{color:"positive",icon:"bug_report"},this.openWebtorrentDevTools],[{color:"positive",icon:"refresh"},this.reloadWebTorrent],[{color:"negative",icon:"delete_forever"},this.delete_config],[{color:"negative",icon:"delete"},this.clearBlockchainConfig],this.getUsersLanguage,this.getVueLocale,this.getLocale]}},computed:{handlersData(){return this.handlers.map((e=>Array.isArray(e)?e:[{},e])).map((([e,t])=>{e=Object.assign({key:t.name.substring(6),label:Object(s["a"])(t.name.substring(6)).replace(/-/g," "),color:"general",textColor:e.color||"general"},e);const a=async()=>{const e=t();e&&e.then&&await e};return[e,a]}))}},methods:{delete_config(){this.$q.electron.ipcRenderer.invoke("deleteConfig").then((e=>{this.$q.notify(e)}))},getLocale(){this.$q.notify(this.$q.lang.getLocale())},getVueLocale(){this.$q.notify(this.$i18n.locale)},getUsersLanguage(){l["localConfigs"].getSettingsItem("language").then((e=>{this.$q.notify({message:e,position:"bottom-right",type:"positive",timeout:3e3})})).catch((()=>{this.$q.notify({message:"未获取到数据项",position:"bottom-right",type:"negative",timeout:3e3})}))},openWebtorrentDevTools(){if(c)return a("1b85").ipcRenderer.send("open-webtorrent-devtools")},reloadWebTorrent(){c&&(a("1b85").ipcRenderer.send("reload-webtorrent-window"),this.$q.notify("WebTorrent window is reloaded"))},async clearBlockchainConfig(){await new Promise((e=>setTimeout(e,2e3))),await window.$blockchain.$store.account.deleteCurrentAccount(),localStorage.removeItem("blockchain.network");const e=window.$blockchain.network.getNetworkConfig();window.$blockchain.network.updateNetworkConfig(e),location.reload()}}},u=d,_=(a("bc42"),a("2b5f")),p=a("1043"),m=a("fc38"),h=a("d7c7"),g=a("09a4"),f=a.n(g),b=Object(_["a"])(u,i,r,!1,null,"60f74c22",null),y=b.exports;f()(b,"components",{QBtn:p["a"],QSeparator:m["a"],QCardSection:h["a"]});var v=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticStyle:{margin:"-4px"}},e._l(e.$account.$test,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{unelevated:"",color:"general","text-color":"general","no-caps":"",label:n,disable:!!e.test$loadingState,loading:e.test$loadingState===n},on:{click:function(a){return e.test$withLoadingState(n,t)}}})})),1),a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-ma-sm"},[a("q-checkbox",{attrs:{label:"isTestEnv"},model:{value:e.isTest,callback:function(t){e.isTest=t},expression:"isTest"}})],1),a("h4",[e._v(e._s(e.$store.state.account.authState))]),"signedIn"===e.$store.state.account.authState?a("div",{staticClass:"row",staticStyle:{margin:"-4px"}},[e._l(e.$store.getters.accountUserInfo,(function(t,n){return[Array.isArray(t)?[a("div",{key:n,staticClass:"col-12 col-lg-6 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden",attrs:{flat:"",bordered:""}},[Array.isArray(t)?a("q-expansion-item",{attrs:{"content-inset-level":.4,label:n}},e._l(t,(function(t,n){return a("div",{key:n},[e._v(e._s(t)+"\n ")])})),0):e._e()],1)],1)]:[a("div",{key:n,staticClass:"col-6 col-sm-3 col-lg-2 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden q-px-md q-py-sm",staticStyle:{"min-height":"66px"},attrs:{flat:"",bordered:""}},[a("div",{staticClass:"text-capitalize",staticStyle:{"font-size":"0.8rem",opacity:"0.8"}},[e._v(e._s(n)+"\n ")]),a("div",{staticClass:"text-weight-bold text-no-wrap ellipsis"},[e._v(e._s(t))])])],1)]]}))],2):e._e(),"signedIn"===e.$store.state.account.authState?[a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-mb-sm"},[a("q-input",{staticStyle:{"max-width":"300px"},attrs:{label:"TestToken",dense:"",outlined:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.testToken,callback:function(t){e.testToken=t},expression:"testToken"}})],1),a("div",[a("alphabiz-button",{attrs:{label:"Add Credits 100","on-click":e.addCredits}})],1)]:e._e()],2)},w=[],k=a("e75b");const S=new k["a"].Rest("ABDevRest");var C={name:"AccountTabPanel",data(){return{test$loadingState:null,testToken:""}},computed:{isTest:{get(){return this.$root.isTestEnv},set(e){this.$root.isTestEnv=e}}},methods:{async test$withLoadingState(e,t){try{this.test$loadingState=e,await t()}finally{this.test$loadingState=null}},async addCredits(){try{const e=await S.post("/development/addCredits",{testToken:this.testToken});console.log(e)}catch(e){this.$q.notify({message:e.message,type:"negative",position:"bottom-right",timeout:5e3})}}}},x=C,$=a("7498"),T=a("e586"),z=a("5bbd"),P=a("0e45"),A=Object(_["a"])(x,v,w,!1,null,"2975ce9d",null),I=A.exports;f()(A,"components",{QBtn:p["a"],QSeparator:m["a"],QCheckbox:$["a"],QCard:T["a"],QExpansionItem:z["a"],QInput:P["a"]});var q=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{margin:"-12px"}},[a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event"},on:{click:e.dispatchPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"send public event"},on:{click:e.sendPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"subscribe public event"},on:{click:e.subscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"unsubscribe public event"},on:{click:e.unsubscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event [legacy]"},on:{click:e.dispatchPublicEventLegacy}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"rest_dev"},on:{click:e.restDev}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"regInfo"},on:{click:e.regInfo}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dialog"},on:{click:e.dialog}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:trigger_event"},on:{click:e.triggerAnalyticsEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:updateEndpoint"},on:{click:e.updateEndpoint}})],1)},O=[],E=(a("d4b5"),a("bc7b")),D=a.n(E),j=a("bbac"),N=a("229c");const L=new k["a"].Rest("ABDevRest"),U={mounted(){N["a"].$debug()},methods:{async updateEndpoint(){const e=await N["a"].updateEndpoint({attributes:{foo:"bar"},immediate:!0});console.log("updateEndpoint:",e)},async triggerAnalyticsEvent(){console.log("triggerAnalyticsEvent:","sending");const e=await N["a"].record({immediate:!0,name:"test_analytics",attributes:{source:"triggerAnalyticsEvent"},metrics:{foobar:Math.floor(1e3*Math.random())}});console.log("triggerAnalyticsEvent:","sent",e)}}};var R={name:"AmplifyTabPanel",mixins:[U],data(){return{currentLoadingState:!1}},methods:{async dispatchPublicEvent(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"9865c315-e778-4de3-8045-1af79eba7fb4",channel:"foo_channel",data:JSON.stringify({a:213123,b:"lorem-server"})});console.log(e)},async dispatchPublicEventLegacy(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"*",channel:"foo_channel-legacy",legacy:!0,data:JSON.stringify({a:213123,b:"lorem-server-legacy"})});console.log(e)},async sendPublicEvent(){},async subscribePublicEvent(){},async unsubscribePublicEvent(){},async dialog(){const e=this.$alphabiz.dialog({title:"Tel",prompts:{tel:{type:"tel",model:{countryCode:null,prefixCode:null,phoneNumber:""}}}}),t=await e.promise("ok");console.log(t)},async restDev(){const e=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},t=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e},a=t(),n=await e(a);if(!n)return;const o=this.$root.$children[0];console.log(n.path),o.lib$openABK(n.path)},async regInfo(){let e=null;const t=[],a=()=>L.post("/development/admin/query",{token:"asdasdasd",type:"reg_info",pagination_token:e});while(e||null===e)await a().then((({data:a})=>{e=a.PaginationToken,t.push(...a.Users),console.log(`queried ${t.length} (+${a.Users.length})`,a.PaginationToken)}));console.log("save users",t);const n=async e=>{const t=e=>{const t={};return t.username=e.Username,t.user_status=e.UserStatus,t.user_create_date=e.UserCreateDate,t.user_last_modified_date=e.UserLastModifiedDate,e.Attributes.forEach((({Name:e,Value:a})=>{t[`attr_${e}`]=a})),t},a=e.map(t),n=(()=>{let e=[];return a.forEach((t=>{const a=Object.keys(t);a.length>e.length&&(e=a)})),e=e.map((e=>({header:e,key:e}))),e})();console.log("columns",n);const o=a.map((e=>{const t=[];return n.forEach((a=>{var n;t.push(null!==(n=e[a.key])&&void 0!==n?n:"null")})),t})),i=await new Promise(((e,t)=>{Object(j["stringify"])(o,{header:!0,columns:n},((a,n)=>{a?t(a):e(n)}))}));return i};n(t).then((e=>{console.log("csv saving...",e),D.a.writeFileSync("./users.csv",e),console.log("done")}))}}},M=R,F=Object(_["a"])(M,q,O,!1,null,null,null),B=F.exports;f()(F,"components",{QSeparator:m["a"],QBtn:p["a"]});var W=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e.devInfo.torrentStore?a("div",{staticClass:"full-width"},[e._v("Torrent Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.torrentStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetTorrent}}),a("pre",[e._v(e._s(e.devInfo.torrentStore))])],1):e._e(),e.devInfo.settingStore?a("div",{staticClass:"full-width"},[e._v("Setting Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.settingStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetSetting}}),a("pre",[e._v(e._s(e.devInfo.settingStore))])],1):e._e(),e._v("\n We are using\n "),e.devInfo.electronVer?a("div",{staticClass:"full-width"},[e._v("Electron "+e._s(e.devInfo.electronVer)+"\n ")]):e._e(),e.devInfo.chromeVer?a("div",{staticClass:"full-width"},[e._v("Chrome "+e._s(e.devInfo.chromeVer)+"\n ")]):e._e(),e.devInfo.nodeVer?a("div",{staticClass:"full-width"},[e._v("Node "+e._s(e.devInfo.nodeVer)+"\n ")]):e._e(),a("div",[e._v("Quasar "+e._s(e.$q.version))]),a("div",[e._v("Vue "+e._s(e.vueVersion))]),a("div",[e._v(" "+e._s(e.$q.platform))]),e.devInfo.isCapacitor?a("div",{staticClass:"is-capacitor"},[e._v("[ Capacitor(Mobile) Mode ]")]):e._e(),e.devInfo.processArgv?a("div",{staticClass:"full-width"},[e._v("Process Argv "+e._s(e.devInfo.processArgv))]):e._e(),a("div",{staticClass:"full-width"},[e._v("Platform info: "+e._s(e.devInfo.platformInfo))]),a("div",{staticClass:"full-width"},[e._v("Location href: "+e._s(e.devInfo.locationHref))]),a("q-btn",{attrs:{color:"primary",icon:"aod",label:"capacitor test"},on:{click:e.testCapacitor}})],1)},H=[],V=a("ff9b"),Q=a("908d"),G=a("d7df"),K=a("d558");const Y=a("d310").isElectron(),J=Y?a("1b85").ipcRenderer:null;var Z={name:"DevInfoTabPanel",data(){return console.log("PLATFORM",Q["b"].is,location),{io:G["a"],devInfo:{torrentStore:"",settingStore:"",platformInfo:Q["b"].is,locationHref:location.href,isCapacitor:Object(K["a"])()}}},methods:{open(e){this.io.emit("show_torrent_file",e)},resetTorrent(){Y&&J.send("reset-torrent")},resetSetting(){this.$store.dispatch("resetSettings").then((e=>{this.$i18n.locale=e.language,this.$q.notify("Reset success")}))},testCapacitor(){fetch("http://localhost:25742",{mode:"cors"}).then((e=>e.json())).then((e=>{console.log("CAPACITOR test success",e),this.$q.dialog({html:!0,message:"
"+JSON.stringify(e,null,2)+"
",ok:!0})})).catch((e=>{console.log("CAPACITOR test failed",e),console.log(e.message),console.log(e.stack),this.$q.dialog({message:e.message||e,ok:!0})}))}},mounted(){Y&&(J.on("dev-info",((e,t)=>{t.torrentStore&&(this.devInfo.torrentStore=t.torrentStore),t.settingStore&&(this.devInfo.settingStore=t.settingStore),t.electronVer&&(this.devInfo.electronVer=t.electronVer),t.chromeVer&&(this.devInfo.chromeVer=t.chromeVer),t.nodeVer&&(this.devInfo.nodeVer=t.nodeVer),t.argv&&(this.devInfo.processArgv=t.argv)})),J.send("dev-info")),this.io.off("notify",this.notify),this.io.on("notify",this.notify)},computed:{vueVersion(){return V["a"].version}}},X=Z,ee=(a("3fc8"),Object(_["a"])(X,W,H,!1,null,"39f109b1",null)),te=ee.exports;f()(ee,"components",{QBtn:p["a"]});var ae=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e._v("\n Alphabiz URL Convert\n "),a("q-input",{staticClass:"q-my-md",attrs:{type:"text",label:"source url"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.url,callback:function(t){e.url=t},expression:"url"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Convert"},on:{click:e.convert}})],1)},ne=[],oe=a("c5a5"),ie={name:"DevInfoTabPanel",data(){return{url:""}},methods:{convert(){Object(oe["a"])(this.url).then((e=>{this.url=e})).catch((e=>{console.error(e)}))}}},re=ie,se=Object(_["a"])(re,ae,ne,!1,null,"19fc1694",null),le=se.exports;f()(se,"components",{QInput:P["a"],QBtn:p["a"]});var ce=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-data"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"text-h6 q-py-md"},[e._v("Media Library Database")]),a("div",{staticClass:"current-lib-status"},[e._v("There are "+e._s(e.entriesCount)+" entries in library")]),a("q-btn",{attrs:{color:"primary",icon:"save",label:"Export"},on:{click:e.saveDb}}),a("FileSelector",{on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",icon:"upload_file",label:"Import"}})],1),a("br"),a("q-btn",{staticClass:"q-mt-md",attrs:{color:"primary",icon:"bug_report",label:"Library Debug Log"},on:{click:function(t){e.showDebugLog=!0}}}),a("q-dialog",{model:{value:e.showDebugLog,callback:function(t){e.showDebugLog=t},expression:"showDebugLog"}},[a("q-card",{staticStyle:{"max-width":"80%"}},[a("q-card-section",[a("DebugLog")],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",color:"primary",icon:"close",label:"Close"}})],1)],1)],1)],1)},de=[],ue=a("2d62"),_e=a("3aea"),pe=a("5515"),me=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"debug-logs row col-12 q-pa-md"},[a("p",{staticClass:"col-12 q-mt-none",staticStyle:{"font-size":"24px"}},[e._v("Debug pannel")]),a("div",{staticClass:"peers col-6 q-pa-sm",staticStyle:{border:"1px solid gainsboro"}},e._l(e.peers,(function(t){return a("div",{key:t.url,staticClass:"peer"},[a("div",{staticClass:"status"},[a("q-badge",{attrs:{label:t.type}}),a("span",{directives:[{name:"show",rawName:"v-show",value:"wrtc"!==t.type,expression:"peer.type !== 'wrtc'"}],class:"connected"===t.status?"text-green":"text-grey"},[e._v("\n [ "+e._s(t.status)+" ]\n ")]),t.from?a("span",{staticClass:"text-green"},[e._v("[ "+e._s(t.from)+" ]")]):e._e(),a("span",[e._v(e._s(t.url))]),t.remoteSyncState?a("q-icon",{attrs:{color:"primary",name:t.stateIcon}},[a("q-tooltip",[a("span",[e._v("Local sync state: "+e._s(t.syncState))]),a("br"),a("span",[e._v("Remote sync state: "+e._s(t.remoteSyncState))])])],1):e._e()],1)])})),0),a("div",{staticClass:"logs col q-px-sm"},[e._v("\n --info--\n "),a("div",{staticClass:"user"},[e._v("User "+e._s(e.userInfo))]),a("div",{staticClass:"channels"},[e._v("Channels("+e._s(e.channels.length)+"): [\n "),e._l(e.channels,(function(t){return a("div",{key:t.id,staticClass:"channel q-ml-sm"},[e._v("\n "+e._s(t.title)+"\n "),a("span",{staticClass:"text-grey"},[e._v("UID: "+e._s(t.id))])])})),e._v("\n ]\n ")],2)])])},he=[],ge=a("36a1"),fe={data(){return{lib:ge["a"]}},computed:{peers(){const e=[];return this.lib.gunPeers.forEach((t=>{let a="";switch(t.status){case WebSocket.CONNECTING:a="connecting";break;case WebSocket.OPEN:a="connected";break;case WebSocket.CLOSED:a="closed";break;case WebSocket.CLOSING:a="closing";break}let n="arrow_downward";"completed"===t.remoteSyncState?n="completed"===t.syncState?"done_all":"arrow_upward":"completed"!==t.syncState&&(n="sync"),e.push({from:t.from,url:t.label||t.url,type:t.type,syncState:t.syncState,remoteSyncState:t.remoteSyncState,stateIcon:n,status:a})})),e},userInfo(){var e;const t=this.lib.user;return`UID: ${null===t||void 0===t||null===(e=t.is)||void 0===e?void 0:e.pub}`},channels(){return this.lib.channelList.map((e=>({title:e.title,id:e.id})))}}},be=fe,ye=(a("28c4"),a("90c4")),ve=a("f106"),we=a("cf25"),ke=Object(_["a"])(be,me,he,!1,null,null,null),Se=ke.exports;f()(ke,"components",{QBadge:ye["a"],QIcon:ve["a"],QTooltip:we["a"]});var Ce=a("d710"),xe=a.n(Ce),$e=a("9a50"),Te={components:{DebugLog:Se,FileSelector:$e["a"]},name:"LibraryData",data(){return{entriesCount:Object.keys(ue["v"]._.graph).length,showDebugLog:!1,countInterval:null}},methods:{parseLib(){},saveDb(){Object(_e["h"])(JSON.stringify({timestamp:Date.now(),graph:ue["v"]._.graph}),`${xe.a.name}-library-${Date.now()}.json`)},importDb(){this.$refs.fileSelector.click()},put(e){Object(pe["b"])(e),this.$q.notify(`Successfully import ${Object.keys(e).length} entries`)},onFileChange(e){e&&Object(_e["g"])(e).then((e=>{const t=JSON.parse(e);if(!t.graph)return this.$q.notify(`This JSON file is not an ${xe.a.name} library db`);Date.now()-t.timestamp>6048e5?this.$q.dialog({title:"DB file too old",message:"This database file is created long time ago and may not be latest. Latest version of data will overwrite this db. Still import it?",ok:"Import anyway",cancel:"No",persistent:!0}).onOk((()=>{this.put(t.graph)})):console.log("Loaded db")}))}},created(){clearInterval(this.countInterval),this.countInterval=setInterval((()=>{this.entriesCount=Object.keys(ue["v"]._.graph).length}),1e3)},beforeDestroy(){clearInterval(this.countInterval)}},ze=Te,Pe=a("b2aa"),Ae=a("59ba"),Ie=a("a431"),qe=Object(_["a"])(ze,ce,de,!1,null,"0442e706",null),Oe=qe.exports;f()(qe,"components",{QBtn:p["a"],QDialog:Pe["a"],QCard:T["a"],QCardSection:h["a"],QCardActions:Ae["a"]}),f()(qe,"directives",{ClosePopup:Ie["a"]});var Ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v("\n Payment Mode\n ")]),a("q-toggle",{model:{value:e.dp$toggle,callback:function(t){e.dp$toggle=t},expression:"dp$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":e.paymentColor,color:e.paymentColor}},[e._v("\n "+e._s(e.paymentLabel)+"\n ")])],1)],1),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Address",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$address))])]},proxy:!0}])}),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Credits",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$credit))])]},proxy:!0}])}),a("q-list",{staticClass:"q-my-md rounded-borders overflow-hidden non-selectable",staticStyle:{width:"640px",border:"1px solid rgba(127,127,127,0.35)"}},[a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:!this.dp$toggle,expression:"!this.dp$toggle"}],attrs:{tag:"label",disable:!this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showCreditPage,disable:!this.dp$toggle,val:"teal",color:"teal"},on:{input:function(t){return e.leftDrawer.showCreditPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Amplify Credits Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1),a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:this.dp$toggle,expression:"this.dp$toggle"}],attrs:{tag:"label",disable:this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showBlockchainPage,disable:this.dp$toggle,val:"orange",color:"orange"},on:{input:function(t){return e.leftDrawer.showBlockchainPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Blockchain Account Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1)],1),!e.dp$toggle&&e.$store.state.credits.providentFund?a("q-toggle",{model:{value:e.pf$toggle,callback:function(t){e.pf$toggle=t},expression:"pf$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":"general",color:"general"}},[e._v("\n ProvidentFund: "+e._s(e.$store.state.credits.providentFund.enable?"Enabled":"Disabled")+"\n ")])],1):e._e()],1)},De=[],je=a("09e8");const Ne={computed:{pf$toggle:{get(){const e=this.$store.state.credits.providentFund;if(!e){const e=localStorage.getItem("credit.providentFund");return!e||JSON.parse(e).enable}return e.enable},set(e){const t=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},e)})();t.enable=e,localStorage.setItem("credit.providentFund",JSON.stringify(t)),this.$store.commit("CREDIT_UPDATE",{"providentFund.enable":e})}}}};var Le={name:"PaymentMode",mixins:[je["a"],Ne],data(){return{changed:!1}},watch:{dp$toggle(e){e?(this.leftDrawer.showCreditPage=!1,this.leftDrawer.showBlockchainPage=!0):(this.leftDrawer.showCreditPage=!0,this.leftDrawer.showBlockchainPage=!1),this.changed=!this.changed,this.changed&&this.showRestartDialog()}},computed:{dp$toggle:{get(){return this.dp$mode?"blockchain"===this.dp$mode:"blockchain"===localStorage.getItem("dataPaymentMixin.mode")},set(e){this.dp$mode=e?"blockchain":"amplify"}},leftDrawer(){const e=this.$route.matched.find((e=>"MainLayout"===e.name)).instances.default;return e.$refs.leftDrawer},paymentLabel(){return this.dp$toggle?"Blockchain-based Service":"Managed Service (Amplify)"},paymentColor(){return this.dp$toggle?"accent":"positive"}},methods:{showRestartDialog(){this.$q.dialog({title:"Change Payment Mode",message:"you should restart application",ok:"Restart",cancel:"Undo"}).onOk((async()=>{a("d310").isElectron()&&a("1b85").ipcRenderer.send("reload-webtorrent-window"),await this.$router.push({name:"Index"}),location.reload()})).onCancel((()=>{this.dp$toggle=!this.dp$toggle}))}}},Ue=Le,Re=a("03bd"),Me=a("b121"),Fe=a("e7c2"),Be=a("b329"),We=a("25fb"),He=a("79e0"),Ve=a("719b"),Qe=Object(_["a"])(Ue,Ee,De,!1,null,"34cd40b6",null),Ge=Qe.exports;f()(Qe,"components",{QToggle:Re["a"],QBadge:ye["a"],QField:Me["a"],QList:Fe["a"],QItem:Be["a"],QItemSection:We["a"],QCheckbox:$["a"],QItemLabel:He["a"]}),f()(Qe,"directives",{Ripple:Ve["a"]});var Ke=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-preload"},[a("q-checkbox",{staticClass:"q-mr-lg",attrs:{value:e.libraryPreload,label:"Enable preload"},on:{input:e.changePreload}}),a("q-checkbox",{directives:[{name:"show",rawName:"v-show",value:e.libraryPreload,expression:"libraryPreload"}],attrs:{value:e.showPreload,label:"Show preload tasks"},on:{input:e.changeShowPreload}}),a("div",{staticClass:"preload-tasks"},e._l(e.preloadTasks,(function(t,n){return a("div",{key:t.abUrl,staticClass:"preload-task q-ma-xs"},[a("div",{staticClass:"task-name q-mr-xs"},[e._v(e._s(n+1)+". "+e._s(t.postTitle||t.torrent&&(t.torrent.postTitle||t.torrent.name)||t.abUrl))]),a("span",{staticClass:"status"},[e._v("Status:\n "),t.failed?a("span",{staticClass:"status-text text-red"},[e._v("Failed")]):t.torrentPath?a("span",{staticClass:"status-text",class:2===t.torrent.preloadStatus?"text-green":""},[e._v("\n "+e._s(2===t.torrent.preloadStatus?"Downloaded":"Downloading")+"\n ")]):a("span",{staticClass:"status-text text-grey"},[e._v("Loading")])]),t.torrent&&2===t.torrent.preloadStatus?a("span",{staticClass:"q-ml-sm"},[a("span",{staticClass:"downloaded"},[e._v("Preload size:")]),a("span",{staticClass:"downloaded-size q-mx-xs"},[e._v(e._s(e.byteToLarger(t.torrent.downloaded)))]),a("q-btn",{attrs:{color:"general","no-caps":"",flat:"",dense:"",size:"xs"},on:{click:function(a){return e.showLocal(t.torrent)}}},[a("q-icon",{attrs:{name:"open_in_new",size:"14px"}}),a("span",{staticClass:"label",staticStyle:{"font-size":"14px"}},[e._v("Local files")])],1)],1):e._e()])})),0)],1)},Ye=[],Je=a("5584"),Ze=a("6422"),Xe={name:"LibraryPreload",data(){return{libraryPreload:Je["a"].state.setting.libraryPreload,showPreload:Je["a"].state.setting.showPreload,preloadTasks:[]}},methods:{byteToLarger(e){return Object(Ze["a"])(e,{gb:!1,byte:!1})},async changePreload(){console.log("change preload"),await Je["a"].dispatch("set",{libraryPreload:!this.libraryPreload}),await Je["a"].dispatch("fetchSettings"),this.libraryPreload=Je["a"].state.setting.libraryPreload},async changeShowPreload(){console.log("change showPreload"),await Je["a"].dispatch("set",{showPreload:!this.showPreload}),await Je["a"].dispatch("fetchSettings"),this.showPreload=Je["a"].state.setting.showPreload},onPreloadTasks(e){this.preloadTasks=e},showLocal(e){G["a"].emit("show_torrent_file",e.path)}},mounted(){console.log("on mounted"),G["a"].on("preload-tasks",this.onPreloadTasks)},beforeDestroy(){console.log("on before destroy"),G["a"].off("preload-tasks",this.onPreloadTasks)}},et=Xe,tt=(a("f817"),Object(_["a"])(et,Ke,Ye,!1,null,"6f92a449",null)),at=tt.exports;f()(tt,"components",{QCheckbox:$["a"],QBtn:p["a"],QIcon:ve["a"]});var nt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"capacitor-test"},[a("q-input",{attrs:{value:e.forceLogin,type:"checkbox",label:"Force Login"},on:{change:e.changeForceLogin}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Network Check"},on:{click:e.checkNetwork}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Homedir Check"},on:{click:e.checkHomedir}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Write to clipboard"},on:{click:e.writeClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Copy from clipboard"},on:{click:e.readClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Crypto"},on:{click:e.checkCrypto}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Simulate wifi/cellular"},on:{click:e.changeNetworkType}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"ReadFile"},on:{click:e.checkReadFile}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"WriteFile"},on:{click:e.checkWriteFile}}),a("div",[a("q-input",{attrs:{type:"text",label:"Filepath"},model:{value:e.filepath,callback:function(t){e.filepath=t},expression:"filepath"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Get file uri"},on:{click:e.getFileUri}})],1),a("div",[a("FollowButton",{attrs:{id:"test",disableFollow:!1}}),a("FileSelector",{on:{select:e.onSelectFile}},[a("q-btn",{attrs:{color:"primary",icon:"folder",label:"File"}})],1)],1),a("div",{staticClass:"debug-logs"},e._l(e.logs,(function(t,n){return a("div",{key:n,staticClass:"log"},[a("span",{staticClass:"log-type"},[e._v(e._s(t.type))]),a("span",{staticClass:"log-value"},[e._v(e._s(t.value))])])})),0)],1)},ot=[],it=a("aa8a"),rt=a("c033"),st=a("a368"),lt=a("a749"),ct={name:"CapacitorCheck",data(){return{logs:[],filepath:"",forceLogin:Je["a"].state.setting.forceLogin,connectionType:"wifi"}},components:{FollowButton:rt["a"],FileSelector:$e["a"]},methods:{log(e,t,...a){this.logs||(this.logs=[]),this.logs.unshift({type:e,value:t}),a.length&&this.logs.unshift({type:e,value:a})},changeForceLogin(e){const t=!this.forceLogin;console.log("vla",e.target.value,this.forceLogin,t),this.forceLogin=t,Je["a"].dispatch("set",{forceLogin:t})},checkHomedir(){G["a"].once("homedir",(e=>this.log("Homedir",e))),G["a"].emit("get-homedir")},checkNetwork(){G["a"].emit("check-network")},onCheckProgress(e){console.log("network check progress",e),this.log(e.type,JSON.stringify(e.result))},onCheckEnd(e){console.log("network check end",e),this.log("isOnline",e.isOnline)},writeClipboard(){const e=Math.random().toString();this.log("Rand string",e),Object(it["b"])(e).then((()=>{this.log("Success",e)})).catch((e=>{this.log("Error",e)}))},async readClipboard(){const e=await Object(it["a"])();e?this.log("Read",e):this.log("Error",e)},onSelectFile(e){this.log("Select file",e,null===e||void 0===e?void 0:e.name,null===e||void 0===e?void 0:e.path,null===e||void 0===e?void 0:e.size)},checkCrypto(){const e=window.crypto;console.log(e),console.log(e.subtle),this.log("subtle",e.subtle),e.subtle&&this.log("digest",typeof e.subtle.digest)},async changeNetworkType(){const e="wifi"===this.connectionType?"cellular":"wifi";Object(lt["a"])({connected:!0,connectionType:e}),await new Promise(setTimeout);const t=await st["Network"].getStatus();this.connectionType=t.connectionType,this.log("Network status",t)},async checkReadFile(){const e=await st["Filesystem"].readFile({path:"some-file.txt",directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8});this.log("Read",e)},async checkWriteFile(){const e=Math.floor(5e4*Math.random())+12e3;await st["Filesystem"].writeFile({path:"some-file.txt",data:e.toString(),directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8}),this.log("Write",e)},async getFileUri(){this.log("Raw",this.filepath);const e=await st["Filesystem"].getUri({path:this.filepath});this.log("URI result",e)}},mounted(){G["a"].on("check-network-result",this.onCheckProgress),G["a"].on("check-network-end",this.onCheckEnd),Object(K["a"])()&&st["Network"].getStatus().then((e=>{this.connectionType=e.connectionType}))},beforeDestroy(){console.log("unmount check"),G["a"].off("check-network-result",this.onCheckProgress),G["a"].off("check-network-end",this.onCheckEnd)},watch:{forceLogin(e){console.log("change",e)}}},dt=ct,ut=(a("b1d8"),Object(_["a"])(dt,nt,ot,!1,null,"a7504d8e",null)),_t=ut.exports;f()(ut,"components",{QInput:P["a"],QBtn:p["a"]});var pt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:!e.floating,expression:"!floating"}]},[a("ThemeEditor",{attrs:{inner:!0},on:{show:e.handleShow}})],1)},mt=[],ht={name:"ThemeTabPanel",data(){return{floating:this.$theme.hasFloatingEditor()}},methods:{handleShow(){this.floating=!0,this.$theme.showFloatingEditor({onClose:()=>{this.floating=!1}})}}},gt=ht,ft=Object(_["a"])(gt,pt,mt,!1,null,null,null),bt=ft.exports,yt={name:"Development",components:{BasicPanel:y,ThemeTabPanel:bt,PaymentMode:Ge,AccountTabPanel:I,AmplifyTabPanel:B,DevInfoTabPanel:te,UrlConvert:le,LibraryData:Oe,LibraryPreload:at,CapacitorTest:_t},data(){const e=[{name:"BasicPanel",icon:"developer_mode",label:"BasicPanel"},{name:"accountInfo",icon:"account_circle",label:"Account Info"},{name:"amplify",icon:"developer_board",label:"Amplify"},{name:"capacitorTest",icon:"app_settings_alt",label:"Capacitor test"},{name:"devInfo",icon:"info",label:"Dev Info"},{name:"urlConvert",icon:"link",label:"Alphabiz URL Convert"},{name:"libraryData",icon:"video_library",label:"Library"},{name:"libraryPreload",icon:"cloud_download",label:"Library Preload"},{name:"payment_mode",icon:"account_balance_wallet",label:"Payment Mode"},{name:"theme_panel",icon:"palette",label:"Theme Panel"}];return{tabs:e,currentTab:e[0].name,isElectron:Object(l["isElectron"])()}}},vt=yt,wt=(a("5bb9"),a("74cb")),kt=a("ec78"),St=a("917f"),Ct=a("c72d"),xt=Object(_["a"])(vt,n,o,!1,null,null,null);t["default"]=xt.exports;f()(xt,"components",{QCard:T["a"],QTabs:wt["a"],QTab:kt["a"],QSeparator:m["a"],QTabPanels:St["a"],QTabPanel:Ct["a"]})},"3a211":function(e,t,a){"use strict";a("10e1")},"3aea":function(e,t,a){"use strict";a.d(t,"h",(function(){return c})),a.d(t,"g",(function(){return d})),a.d(t,"f",(function(){return u})),a.d(t,"e",(function(){return _})),a.d(t,"b",(function(){return h})),a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));var n=a("5584"),o=a("d710"),i=a.n(o),r=a("36a1"),s=a("d558"),l=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};function c(e,t){return l(this,void 0,void 0,(function*(){if(Object(s["a"])()){const{Filesystem:n,Directory:o,Encoding:i,Share:r}=yield Promise.resolve().then(a.bind(null,"a368")),s=yield n.writeFile({path:t,data:e,directory:o.Cache,encoding:i.UTF8});return s.uri?(console.log("Save file result",s),(yield r.canShare()).value&&r.share({files:[s.uri],dialogTitle:"Save"}),s):console.log("Failed to save",t)}const n=new Blob([e]),o=document.createElement("a"),i=URL.createObjectURL(n);o.href=i,o.download=t,document.body.appendChild(o),o.click(),setTimeout((function(){document.body.removeChild(o),window.URL.revokeObjectURL(i)}),0)}))}function d(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve("")}function u(e){var t;const a=(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||"",o=e.match(/m=application\s(\d+)\s(\S+)/),i=(null===o||void 0===o?void 0:o[1])||"0",r=(null===o||void 0===o?void 0:o[2])||"unknown type";return n["a"].getters.isDevMode?`${a}:${i} (${r})`:`${a.substring(0,4)+"*"} (${r})`}function _(e){var t;return(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||""}const p=["?","|","*","!",":",'"',":","<",">","/","/"],m=["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"];function h(e){let t=e.replace(/\s*\/\s*/g,"_").replace(/\s*\\\s*/g,"_").replace(/(\s|\.)+$/,"");for(const n of m)while(t.startsWith(n))t=t.replace(n,"");const a=t.split("");for(let n=0;nt.id===e));if(!t)return null;const a=["id","title","soul"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&");return`/library/channel?${a}`}function f(e){if(!e.startsWith(`${i.a.shortProtocol}`))return null;const[t,a,n]=e.replace(`${i.a.shortProtocol}-library://`,"").split("/");return t&&a&&n?{type:t,title:a,id:n}:null}function b(e){return e?e.replace(/ /g," ").trim():""}},"3b4b":function(e,t,a){"use strict";a("9c3b")},"3c15":function(e,t,a){"use strict";a("eec3")},"3c8a":function(e,t,a){"use strict";a("6755")},"3d18":function(e,t,a){"use strict";a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return g}));a("de6c"),a("a1c1");const n=a("c577"),o=a("bc7b"),{exec:i,spawn:r}=a("6bdd"),s="win32"===process.platform,l="darwin"===process.platform,c=new Map([["VLC Player",{win:"vlc.exe",winRegistry:["VLC.mp4","PlayWithVLC"],drawin:"VLC.app"}],["GOM Player",{win:"GOM.exe",drawin:"GOM Player.app"}],["PotPlayer",{win:"PotPlayerMini64.exe"}],["Kodi",{win:"kodi.exe",drawin:"Kodi.app"}],["KMPlayer",{win:"KMPlayer64.exe",drawin:"KMPlayer.app"}],["SMPlayer",{win:"smplayer.exe",drawin:"SMPlayer.app"}],["MediaMonkey",{win:"MediaMonkey.exe"}],["AllPlayer",{win:"ALLPlayer.exe"}],["5KPlayer",{win:"5KPlayer.exe",drawin:"5KPlayer.app"}],["MPC-HC",{win:"mpc-hc64.exe"}]]),d=async()=>new Promise((e=>{const t=[];if(s){const a={label:"Media Player",value:"Media Player"},i=u();i&&t.push(a);const r=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});r.values(((a,n)=>{if(a)return e(!1);for(let e=0;e{a.win&&new RegExp(a.win).test(n[e].name)&&(o.existsSync(n[e].name)?t.push({label:i,value:i}):console.log("player file does not exist"))}));e(t)}))}else l?o.readdir("/Applications/",((a,n)=>{if(a)return console.error(`error: ${a}`),e(!1);c.forEach(((e,a)=>{e.drawin&&new RegExp(e.drawin).test(n)&&t.push({label:a,value:a})})),e(t)})):e(!1)})),u=()=>{const e=process.arch;let t;return t="x64"===e?"C:\\Program Files\\Windows Media Player\\wmplayer.exe":"C:\\Program Files(x86)\\Windows Media Player\\wmplayer.exe",o.existsSync(t)?t:""},_=async e=>new Promise((t=>{if(s){if("Media Player"===e){const e=u();return t(e||!1)}const a=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});a.values(((a,n)=>{if(a)return t(!1);if(!c.get(e))return t(!1);const i=c.get(e).win;for(let e=0;e{let a;if(s){if(!c.get(e))return;const n=c.get(e).winRegistry;if(!n)return;if("VLC Player"===e){const e=t.slice(2+(t.lastIndexOf(".")-1>>>0));n[0]=`VLC.${e}`,a=[...n]}}return a},m=async e=>new Promise((t=>{if(!e)return t(!1);if(s){const a=new n({hive:n.HKLM,key:`\\SOFTWARE\\Classes\\${e[0]}\\shell\\${e[1]}\\command`});a.values(((e,a)=>{if(e)return t(!1);const n=a[0].value.match(/-(?:-\w+)+/gm);t(n)}))}})),h=async(e,t,a)=>new Promise((n=>{let o,i;s?(o=e,i=a?[...a,t.replace("/","\\")]:[t.replace("/","\\")]):(o="open",i=["-a",e,t]),console.log("openPlayer:",o,i);const l=r(o,[...i]);l.on("error",(e=>{n(!1),console.log(`子进程错误,错误码 ${e}`)})),l.unref(),n(!0)})),g=async(e,t)=>{if("System Default"===e){const{shell:e}=a("1b85");return e.openPath(t).catch((e=>{console.log("openPath err",e)}))}const n=await _(e);let o=!1;if(n){const a=p(e,t);let i;a&&(i=await m(a)),o=await h(n,t,i),console.log("openPlayer:"+o)}return o}},"3d2b":function(e){e.exports=JSON.parse('{"lib_index":"家","lib_edit":"公開","lib_publish":"公開","lib_explore":"探検する","lib_following":"続く","lib_favorite":"地元のお気に入り","lib_local_favorites":"地元のお気に入り","lib_channel":"チャネル","lib_submit":"送信","lib_from_network":"ネットワークから分散データベースを使用する","welcome_to_lib":"${displayName} メディア ライブラリへようこそ","register_or_login":"登録/ログイン","lib_recommend":"推薦する","lib_recommend_desc":"${displayName} ライブラリへようこそ!このライブラリはネットワークからの分散データベースを使用します。使用を開始するには、いくつかのチャネルをフォローする必要があります。","follow_any_channel_to_continue":"続行するには任意のチャンネルをフォローしてください","follow_channels_and_continue":"{0} チャンネルをフォローして続行","show_more_for_me":"もっと見せて","no_more_recommend":"もうお勧めしません","key":"鍵","create_key":"キーの作成","save_key":"キーを保存","save_key_file":"キーをファイルとして保存しますか?","import_key":"インポートキー","import":"輸入","invalid_key":"無効キー","back_to_top":"トップに戻る","search_for_channel":"チャンネルIDを検索","search_channel_no_result":"ID {0} のチャンネルが見つかりません","please_input_channel_id":"チャンネルIDを入力してください","welcome_help_text":"これは分散型メディア ライブラリです。必要です\\n このデータベースのアカウントを作成します。私達はします\\n 個人キーを自動的に生成します。\\n すでにキーを持っている場合は、インポートすることもできます\\n それはここです。","welcome_key_text":"ログインしたら[SAVE KEY]ボタンをクリックしてください。\\n 右下隅にあるをクリックして秘密キーを保存します。\\n キーを紛失した場合、再度ログインできなくなる場合があります。","redirect_to_recommend":"どのチャンネルもフォローしていないようです。 [探索]ページにリダイレクトします。","channel":"チャネル","follow":"従う","unfollow":"フォローを解除する","following":"続く","share":"共有","unfollow_confirm":"このチャンネルのフォローを解除してもよろしいですか?タイムライン内のこのチャンネルの投稿はすべて削除されます。","follow_failed_hint":"操作はバックグラウンドでまだ保留中です。長時間操作が適用されなかった場合は、アプリを再起動して再度お試しください。","block":"ブロック","unblock":"ブロックを解除する","blocked":"ブロックされました","block_channel":"このチャンネルをブロックする","block_channel_confirm":"チャンネルをブロックするとタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","block_creator":"このチャンネルの作成者をブロックする","unblock_creator":"このチャンネルの作成者のブロックを解除する","block_creator_confirm":"クリエイターをブロックすると、このクリエイターが作成したすべてのチャンネルがタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","share_url_copied":"共有 URL がクリップボードにコピーされます","follow_time":"フォロータイム","update_time":"更新時間","search":"検索","type":"タイプ","added":"追加した","click_to_task":"クリックしてタスクに移動します","lib_already_added":"このビデオはすでに追加されています","description":"説明","poster":"ポスター","channel_poster":"チャンネルポスター","preview":"プレビュー","creator":"クリエイター","creator_detail":"クリエイター詳細","loading_creator":"クリエイター情報を読み込み中","wait_for_creator_loaded":"クリエイター情報が読み込まれるまでお待ちください。","follower":"フォロワー","followers":"フォロワー","follower_list":"フォロワーリスト","user":"ユーザー","channel_title":"チャンネルタイトル","channel_id":"チャンネルID","post_title":"記事のタイトル","post_id":"投稿ID","import_data_from_excel":"Excelからデータをインポート","set_excel_keys":"Excelのキーを設定する","excel_import_succeded":"Excelのインポートに成功しました","excel_import_success_msg":"{0} 行は追加する準備ができています。{1} は無効で、{2} の重複項目は無視されます","cannot_find_channel":"チャンネルが見つかりません","cannot_find_posts":"投稿が見つかりません","add_channel":"チャンネルを追加","add_post":"投稿を追加","edit_channel":"チャンネルを編集する","channel_setting":"チャンネル設定","edit_post":"投稿を編集する","edit_posts":"投稿を編集する","channel_detail":"チャンネル詳細","remove":"取り除く","remove_channel":"チャンネルを削除する","remove_channel_confirm":"この投稿を削除してもよろしいですか?これは回復できません。","remove_post":"投稿を削除する","remove_post_confirm":"このチャンネルを削除してもよろしいですか?これは回復できません。","preview_mode":"プレビューモード","preview_mode_desc":"これはチャンネルのプレビューです。映画のすべての料金がここに表示されます。","edit_user_profile":"ユーザープロファイルを編集する","name":"ニックネーム","avatar":"アバター","no_following":"フォローしているチャンネルはありません。クリックして移動","no_recommend":"おすすめチャンネルはありません。クリックして移動","first_recomment_msg":"初めてアプリを起動する場合は、時間がかかる場合があります。","invalid_image":"無効な画像です","image_not_reachable":"この画像の URL にはアクセスできません。","channel_not_found":"チャンネルが見つかりません","cannot_get_channel_info":"チャンネル情報を取得できません。このチャンネルは作成者によって削除され、利用できなくなる可能性があります。","validate_error":"検証エラー","validate_user_name_no_space":"ユーザー名にはスペースを含めないでください","validate_url_no_space":"URL にスペースを含めないでください","validate_user_name_length":"ユーザー名の長さは {0} から {1} の間である必要があります","validate_user_desc_length":"ユーザーの説明は {0} 文字以下にしてください","validate_user_avatar_url":"ユーザーのアバターは 2048 文字未満の URL である必要があります","validate_channel_title_length":"チャンネルタイトルの長さは 1 ~ 100 にする必要があります","validate_channel_desc_length":"チャネルの説明の長さは 10 ~ 300 にする必要があります","validate_channel_image_url":"チャンネル プレビューの URL は 2048 文字未満である必要があります","validate_post_title_length":"投稿タイトルの長さは 1 ~ 100 にする必要があります","validate_post_desc_length":"投稿の説明の長さは 10 ~ 300 にする必要があります","validate_post_image_url":"ポスターの URL は 2048 文字未満である必要があります","validate_post_url":"無効な ${displayName} URL","validate_post_url_length":"${displayName} URL は 2048 文字以下にしてください","film_rate":"フィルムレート","set_film_rate":"フィルムレートを設定する","select_a_rate_before_enter":"メディア ライブラリに入る前に、フィルム レートを選択する必要があります。","library_available_rate":"図書館利用可能なフィルム料金","rate_g":"G – 一般視聴者","rate_g_desc":"すべての年齢層が受け入れられます。お子様が閲覧することで保護者を不快にさせるような内容は一切ありません。","rate_pg":"PG – 保護者による指導の推奨","rate_pg_desc":"一部の教材はお子様には適さない場合があります。保護者らは「保護者指導」を求めた。親が幼い子供にとって好まない内容が含まれる場合があります。","rate_pg_13":"PG-13 – 保護者は強く注意してください","rate_pg_13_desc":"一部のコンテンツは 13 歳未満の子供には不適切である可能性があります。保護者は注意することをお勧めします。内容によっては、10 代未満のお子様には不適切な場合があります。","rate_r":"R – 制限付き","rate_r_desc":"17 歳未満の場合は、親または成人の保護者の同伴が必要です。一部成人向けの内容が含まれております。保護者の方は、小さなお子様を連れて行く前に、この映画について詳しく学ぶことをお勧めします。","rate_nc_17":"NC-17 – 大人限定","rate_nc_17_desc":"17 歳以下は入場できません。明らかに大人っぽい。お子様のご入場はできません。","set_as_private":"プライベートとして設定","hide_in_explore":"探索ページでこのチャンネルを非表示にする","hidden":"隠れた","select_a_rate":"フィルム料金を選択してください","select_from_tasks":"タスクから選択","import_from_magnet":"マグネットからインポート:?...","input_magnet_url":"入力マグネット:? URL","task_title":"タスクのタイトル","set_title":"タイトルを設定する","add_to_local_favorites":"ローカルのお気に入りに追加","remove_from_local_favorites":"ローカルのお気に入りから削除","removed_favorite":"お気に入りを削除しました","import_or_export_favorites":"お気に入りのインポート/エクスポート","export_local_favorites":"ローカルのお気に入りをバックアップとしてエクスポート","import_favorites_file":"お気に入りファイルをインポートする","not_a_favorite_file":"このファイルはお気に入りのバックアップ ファイルではありません","connection_status":"接続ステータス","gun_server_list":"キャッシュノード","custom_nodes":"カスタムキャッシュノード","custom_nodes_hint":"カスタム キャッシュ ノードはアプリの再起動後に適用されます","wait_for_reboot":"再起動を待っています...({seconds}s)","reboot_now":"今すぐ再起動してください","reboot_later":"後で再起動します","peer_list":"ダイレクトノード","server":"ノードURL","peer":"ピア","peer_id":"ノードID","connection":"繋がり","data_source":"情報元","sync":"同期","syncing":"同期中","sync_completed":"同期が完了しました","got_all_post":"すでにすべての投稿を取得しています","placeholder_channel_title":"あなたのチャンネル名","placeholder_channel_desc":"このチャンネルについての説明","placeholder_post_title":"映画名(年)","placeholder_post_desc":"この映画についての説明","private_channel":"プライベートチャンネル","creator_blocked":"クリエイターがブロックされました","go_to_library":"図書館に行きますか?","go_to_library_channel_msg":"ライブラリ チャンネル {0} に行きますか?","magnet_does_not_have_name":"この磁石:? URL には名前がありません。最初に投稿のタイトルを追加する必要があります。","no_available_post":"利用可能なポストがありません","following_channel_no_post":"フォローしているすべてのチャンネルには利用可能な投稿がありません。ネットワークエラーが原因である可能性があります。すでにいくつかのチャンネルをフォローしている場合、投稿は後で読み込まれる可能性があります。","share_to_library":"ライブラリに共有する","quick_start":"クイックスタート","quick_start_desc":"タスクまたはファイルを使用して投稿の作成を開始します","select_file":"ファイルを選ぶ...","select_folder":"フォルダーを選択...","post_options":"投稿オプション","channel_options":"チャンネルオプション","create_new_channel":"新しいチャンネルを作成する","use_existed_channel":"既存のチャネルを使用する","select_existed_channel":"既存のチャンネルを選択","uploaded_by":"{title} が {name} によってアップロードされました","created_by":"{title} 作成者: {name}","creating_new_channel":"新しいチャンネルを作成しています...","created_new_channel":"新しいチャンネルが作成されました","creating_new_post":"新しい投稿を作成しています...","created_new_post":"新しい投稿が作成されました","create_new_post":"新しい投稿を作成する","quick_start_timeout":"{0} タイムアウト。ネットワークエラーが原因である可能性があります。後でもう一度試してください。","file_too_large":"あまりにも大きなファイル","file_too_large_msg":"このファイルは 4GB ({size}) より大きいため、タスクの準備に時間がかかる可能性があります。続けてもよろしいですか?","resolving_folder_files":"フォルダー ファイルを解決しています...","folder_too_large":"フォルダーが大きすぎます","folder_too_large_msg":"このフォルダー内のファイルは 4GB (合計 {size}) を超えており、タスクの準備に時間がかかる可能性があります。アップロードしてもよろしいですか?","creating_new_task":"新しいタスクを作成しています...","cannot_create_task":"タスクを作成できません","cannot_create_task_msg":"何らかの誤差が生じる可能性があります。タスクが正しく作成されていれば、後でタスク リストを確認できます。","cannot_get_task_name":"タスク名を取得できません。最初に 1 つを入力する必要があります。","remove_old_task":"古いタスクを削除する","remove_old_task_desc":"Web モードでは、一度に 1 つのタスクしか作成できません。古いタスクを削除しますか?","subtitle_list":"字幕リスト","optional":"オプション","with_subtitle":"{language} 字幕付き","maximumSubtitleNum_limit":"字幕の数が上限に達しました","add_subtitle_url":"字幕のダウンロードリンクを追加","cannot_add_subtitle":"字幕の追加に失敗しました","cannot_add_subtitle_msg":"字幕言語が選択されていないか、ダウンロード リンクが無効です。","support_subtitle_type":"srt および vtt 形式の字幕のみがサポートされています。","recommend_opensubtitles":"www.opensubtitles.org にある字幕のダウンロード リンクまたは ID を使用することをお勧めします。","take_down":"降ろす","serious_violation":"重大な違反","copyright_disputes":"著作権紛争","adults_only":"大人だけ","takedown_reason":"削除の理由","takedown_mode":"テイクダウンモード","admins":"管理者","takedown_user":"このクリエイターを削除する","takedown_channel":"このチャンネルを削除する","takedown_post":"この投稿を削除する","select_takedown_reason":"削除理由を選択してください","takedown_invalid_reason":"無効な削除理由","takedown_invalid_user_id":"無効なユーザーIDです。 ID には 87 文字を含める必要があります","takedown_invalid_channel_id":"無効なチャンネルIDです。 ID には 20 文字を含める必要があります","takedown_invalid_post_id":"投稿IDが無効です。 ID には 20 文字を含める必要があります","takedown_management":"管理を削除する","users":"ユーザー","channels":"チャンネル","posts":"投稿","you":"あなた","preset":"プリセット","admin":"管理者","committee":"委員会","about_takedown_mode":"テイクダウンモードについて:\\nプリセット: Github リポジトリで設定されます。それらはすべてライブラリから削除されます。\\n管理者: 管理者が投票したいずれかが削除されます。\\n委員会: 管理者投票の少なくとも半数が削除されます。","cannot_edit_preset":"この行はプリセット行であるため編集できません","cannot_edit_not_vote":"この行は投票していないため編集できません","remove_vote":"投票を削除します","post_preload_failed":"この投稿のプリロードに失敗しました。ダウンロード リンクが古い可能性があるため、この投稿はすぐに再生できません。","about_cache_node":"キャッシュノードについて","edit_cache_node":"キャッシュノードの編集","create_cache_node":"キャッシュノードの作成","about_cache_node_desc":"${displayName} はガン サーバーをキャッシュ ノードとして使用します。事前設定でカスタムノードを編集できます","learn_how_to_deploy_gun":"独自のガンサーバーを展開する方法を学ぶ","repeat_add":"タスクが追加されました。再度追加しないでください","upload":"アップロード","download":"ダウンロード","delete":"消去","delete_task":"タスクの削除","delete_confirm_message":"このタスクを削除しますか?これは取り消し不可能です","also_delete_files":"ファイルも削除","default_delete_files":"削除タスク後にダウンロードしたファイルをデフォルトで削除する","not_now":"今はやめろ","delete_autoupload_confirm":"このタスクには、自動アップロード ディレクトリに配置したファイルが含まれています。このタスクを削除すると、ファイルも削除されます。","delete_anyway":"とにかく削除する","upload_too_many_files":"アップロードするファイルが多すぎます","ask_if_unlimit_upload_amount":"自動アップロード ディレクトリに含まれるファイルが多すぎます。アップロード量制限を無効にしますか? ※パフォーマンス上の問題が発生する可能性があります","disable_limitation":"制限を無効にする","not_length":"マルチファイル操作は現在サポートされていません。ご協力ください。","download_torrent":"ダウンロードファイル","upload_torrent":"ファイルをアップロードする","files":"ファイル","file":"ファイル","folder":"フォルダ","start_all":"すべてを開始する","pause_all":"すべて一時停止する","remove_all":"すべて削除する","upload_all":"すべてアップロードする","clear_history":"履歴をクリア","pause_all_finish_payments":"これですべての支払いが完了します。","accelerating":"加速中","link_task":"リンクタスク","torrent_task":"ファイルタスク","ok":"OK","cancel":"キャンセル","download_directory_position":"ダウンロードディレクトリの位置","torrent_file":"タスクファイル","magnetic_link_incorrect":"リンクの形式が正しくありません","delete_fail":"削除失敗","pause":"一時停止","paused":"一時停止中","stop_torrent":"ストップ","seed":"シード","resume":"履歴書","downloading":"ダウンロード中","downloaded":"ダウンロード済み","uploading":"アップロード中","auto_uploading":"自動アップロード","uploaded":"アップロードされました","pending":"他のタスクを待っています","verifying":"検証中","waiting_for_verify":"検証待ち","seeding":"種まき","completed":"完了","status":"スターテス","task_name":"タスク名","size":"サイズ","progress":"進捗","sort":"選別","ascending":"上昇","descending":"降順","file_loading":"ファイルをロード中...","loading":"読み込み中","unknown_status":"未知","play_while_downloading":"遊ぶ...","upload_or_play":"アップロード/再生","play":"遊ぶ","ask_if_upload_file":"ファイルをアップロードする?","ask_if_upload_or_play":"ファイルをアップロードまたは再生しますか?","torrent_error":"タスク追加時のエラー:","no_peers":"{0} 回以上再試行しても使用可能なピアがありません","torrent_exists":"タスクはすでに存在します。","show_origin_torrent":"元のタスク ファイルまたは URL を取得する","show_directory":"この torrent のディレクトリを開く","task_num":"タスク","total_upload_speed":"アップロードの速さ","total_download_speed":"ダウンロード速度","path_missing":"エラー: torrent パスが見つかりません","origin_not_found":"元のタスク情報が見つかりません。","text_copied":"マグナムの URL がクリップボードにコピーされました","copy_magnet_uri":"コピーマグネット:? URI","copy_download_uri":"ダウンロード URI をコピーする","copy_share_uri":"共有URIをコピーする","uri_copied":"URI がクリップボードに正常にコピーされました","uri_copy_failed":"URIのコピーに失敗しました","more":"もっと...","toggle_list_mode":"リストモードの切り替え","comment":"コメント","operations":"オペレーション","open_directory":"ディレクトリを開く","no_downloading_task":"ダウンロードタスクはありません","remove_all_downloading_tasks":"ダウンロードタスクをすべて削除しますか?","remove_all_upload_tasks":"すべてのアップロード タスクを削除しますか?","remove_autoupload_files":"自動アップロードファイルを削除する","remove_all_history":"すべての履歴を削除しますか?","remaining":"残り","created_time":"作成時間","used_time":"使用時間","completed_time":"完了時間","yesterday":"昨日","before_yesterday":"$$$0$$$","earlier":"以前","miss_file":"一部のファイルがありません","delete_miss_file_task":"{0} に欠落しているファイルがあります。","common_peer":"共通ピア","ab_peer":"${displayName} ピア","ab_peer_verified":"確認済み ${displayName} ピア","ab_peer_available":"${displayName} ピアが利用可能","alphabiz_accelerating":"${displayName} 加速","income":"所得","income_info":"収入(今日/合計)","total_income_info":"収入: {0}(今日) / {1}(合計)","login_to_see_income":"ログインして収入統計を確認してください","credit_cost":"信用コスト","downloaded_by_payment":"ペイメントによってダウンロードされました","file_not_found":"このファイルがローカルに見つかりません","no_task":"聞かない","no_matched_task":"一致するタスクがありません","space_not_enough":"ディスク容量が不足しています","need_more_space":"さらに {0} のスペースが必要ですが、現在のディスクには {1} の空き領域があります ({2} は予約されています)。タスクは一時停止されています。ライブラリのプリロードは無効になっています。 [設定 - 詳細]で再度有効にすることができます。","seeders":"シーダー","last_update":"最後の更新","connecting":"接続中","connected":"接続済み","request_timed_out":"リクエストはタイムアウトしました","connection_failed":"接続に失敗しました","invalid_download_url":"無効なダウンロード URL","download_link":"ダウンロードリンク","empty_files":"ディレクトリにファイルがありません","duplicate_task":"タスクの重複","duplicate_tracker":"重複トラッカー","this_task_not_ready":"このタスクは準備ができていません。このタスクを一時停止すると、タスクが直接削除されます。","some_task_not_ready":"一部のタスクは準備ができていません。これらのタスクを一時停止すると、タスクが直接削除されます。","failed_to_delete_files":"ファイルの削除に失敗しました","failed_to_delete_files_desc":"タスクの一部のファイルの削除に失敗しました。手動で削除する必要がある場合があります","unknown_error":"不明なエラー: {0}","more_files_are_not_shown":"(パフォーマンス上の理由から、{0} 以上のファイルは表示されません)","no_available_file":"利用可能なファイルがありません。タスクの準備ができるまでお待ちください。","service_worker_error":"再生のために ServiceWorker をロードできません。お使いのブラウザがこの機能をサポートしていないか、ServiceWorker がアクティブ化されていない可能性があります。このページをリロードして再試行する必要がある場合があります。","add_task_first":"最初にタスクを追加する必要があります。","player_task_time":"プレーヤーはプレイの準備に時間がかかりすぎます。タスクに問題がある可能性があります。","web_mode_hint":"${displayName} の Web モードは WebRTC ピアのみをサポートします。最高のエクスペリエンスを得るには、${displayName} デスクトップ アプリをダウンロードしてください。","web_mode_task_hint":"タスクを追加するには、下のボタンをクリックします。一度に追加できるタスクは 1 つだけです。","save_to_local":"ローカルに保存","save_as_zip":"ZIP 形式で保存","creating_save_file":"保存ファイルを作成しています...","upload_as_one_directory":"1 つのディレクトリとしてアップロードする","upload_as_single_files":"単一ファイルとしてアップロードする","web_mode_upload_single":"Web モードでは 1 つのファイルのみアップロードできます","download_success":"ダウンロードが成功しました","download_fail":"ダウンロードに失敗しました","wait_for_downloaded_to_share":"共有する前に、タスクがダウンロードされるまで待ってください。","download_with_cellular":"携帯電話を使用してタスクをダウンロードする","download_with_cellular_desc":"携帯電話ネットワークを使用しています。携帯電話でタスクをダウンロードすると、携帯通信会社によって追加料金がかかる場合があります。","download_with_cellular_confirm":"携帯電話でもダウンロード可能","language":"言語","appearance":"外観","darkModeSystem":"システム","darkModeLight":"ライト","darkModeDark":"暗い","basic_setting":"基本","hideMenu":"アプリメニューを非表示にする (Windows および Linux のみ)","autoHide":"ウィンドウを自動的に非表示にする","autoStart":"ログイン時に開く","restore":"終了時にウィンドウのサイズと位置を維持する","autoStartUnfinished":"すべての未完了のタスクを自動的に再開します","default_download_path":"デフォルトのパス","download_directory":"ダウンロードディレクトリ","upload_directory":"アップロードディレクトリ","enable_auto_upload":"自動アップロードを有効にする","unlimit_upload_amount":"アップロード量を無制限にする","unlimit_upload_warning":"大量のファイルのアップロードを許可します。これによりパフォーマンスの問題が発生する可能性があります","start":"起動","transport_setting":"伝染 ; 感染","upload_limit":"アップロード制限","download_limit":"ダウンロード制限","payed_user_share_rate":"有料ユーザーシェア率","unlimited":"無制限","limit_input_error":"制限値は正の値である必要があります","BT_setting":"タスクの設定","saveLinkSeed":"リンクをタスクファイルとして保存","autoDownload":"リンクとコンテンツを自動的にダウンロードする","continuousSeeding":"手動で停止するまでシードを継続します","seedSharingRate":"シード率","seedTime":"シード時間 (分)","task_manage":"タスク管理","maximumDownloadNum":"アクティブなタスクの最大数","maximumConnectionsNum":"サーバーあたりの最大接続数","range_error":"範囲は {0} ~ {1} の間でなければなりません","random":"ランダム","breakpointContinuation":"続く","automaticSkip":"タスクを追加した後にダウンロード中を自動的に表示","afterNotification":"ダウンロード完了後の通知","deleteConfirm":"タスクを削除する前に確認は必要ありません","submit":"保存して適用","discard":"破棄","reset":"リセット","reset_all_settings":"すべての設定をリセットしますか?","preferences_resetted":"設定がリセットされました","traditional_chinese":"繁体字中国語","japanese":"日本語","english":"英語","chinese":"簡体字中国語","advancedSettings":"高度な","autoUpdate":"自動更新","autoCheckUpdate":"アップデートを自動的にチェックする","proxy":"プロキシ","useProxyService":"プロキシを有効にする","trackerService":"トラッカーサーバー","recommendUse":"おすすめされた","autoUpdateTrackerServiceList":"トラッカーリストを毎日自動的に更新します","manualUpdateTracker":"手動アップデート","manualUpdateSuccess":"トラッカーサーバーを正常に更新しました","manualUpdateFail":"次からの更新に失敗しました:","listenPort":"リッスンポート","BTlistenPort":"データ送信ポート","DHTlistenPort":"分散ハッシュポート","protocols":"互換性のあるプロトコル","setDefaultClientForFollowingProtocols":"次のプロトコルのデフォルトのクライアントとして設定します","magnetUrl":"磁石","video_file":"ビデオファイル","audio_file":"音声ファイル","security":"安全","impersonateUserAgent":"模擬ユーザーエージェント","RPCauthorizationkey":"RPC シークレット","viewDocument":"RPC シークレット マニュアルを表示する","developer":"デベロッパー","applicationLogPath":"アプリログのパス","downloadSessionPath":"ダウンロードセッションパス","resetDownloadSessionRecord":"ダウンロードセッションをリセットする","restoreInitialSettings":"工場出荷時設定にリセット","preferences_set_successfully":"設定が正常に保存されました。","preferences_set_fail":"設定の保存に失敗しました!","change_not_save":"変更が保存されない","discard_all_changes":"すべての変更を破棄して終了しますか?","stay_in_page":"ページ内に留まる","disk_usage":"ディスクの使用状況","pause_if_less_space":"空き容量が (MB) 未満の場合は一時停止して通知する","default_video_player":"デフォルトのビデオプレーヤー","video_cache_time":"ストリーム再生キャッシュ","minutes":"分","system_default":"システムのデフォルト","media_player":"メディアプレーヤー","library_film_rate":"利用可能なフィルムレート","library_show_explore":"[探索]ページを表示する","library_setting":"ライブラリ設定","library_sync_setting":"ライブラリ同期設定","keychain_sync_status":"キーチェーンの同期ステータス","sync_with_aws":"キーチェーンをアマゾン ウェブ サービスと同期する","backup_to_local":"ローカルファイルへのバックアップ","enable_sync_with_aws":"AWS との同期を有​​効にする","disable_sync_with_aws":"AWS との同期を無効にする","disable_sync_with_aws_desc":"これにより、サーバーに保存されているキーが削除されます。キーをすでにエクスポートしていることを確認してください。","input_independent_password":"独立したパスワードを入力してください","change_independent_password":"独立したパスワードを変更する","password_error":"パスワードエラー","password_invalid":"パスワードが無効です","key_existed":"キーが存在しました","key_not_found":"キーが見つかりません","library_recommend":"図書館のおすすめ","show_all_channels":"ライブラリのおすすめページにすべてのチャンネルを表示する","not_logged_in":"ログインしていない","login_to_continue":"続行するにはログインしてください","mnemonic_code":"ニーモニックコード","wordlist":"単語リスト","restore_code":"コードから復元する","generate_code":"コードを生成する","export_mnemonic_code":"ニーモニックコードのエクスポート","import_mnemonic_code":"ニーモニックコードをインポートする","print":"印刷する","save_as_txt":"txtとして保存","save_as_pdf":"PDFとして保存","from_file":"ファイルから","not_valid_mnemonic_code":"これは有効なニーモニック コードではありません","cannot_parse_code_as_key":"このニーモニック コードをライブラリ キーとして解析できません","import_key_hint":"このキーをインポートしてもよろしいですか?これにより、ライブラリ内の古いキーが回復されます。","import_key_confirm":"はい、インポートします。","library_preload":"ライブラリからタスクをプリロードする","show_preload":"プリロードタスクを表示","set_download":"ダウンロードディレクトリを設定する","set_download_desc":"macOS App Store バージョンの場合、デフォルトのダウンロード ディレクトリはアプリのサンドボックスにあり、アプリのアンインストール後に削除されます。ダウンロード ファイルを保持したい場合は、別のダウンロード ディレクトリを手動で選択する必要があります。","home":"家","home_caption":"ダウンロード/アップロードおよびメディア ファイル","library":"図書館","library_caption":"メディアリソースを調べる","player":"プレーヤー","player_caption":"メディアプレーヤー","credits":"クレジット","credits_caption":"アカウント残高を確認する","account":"アカウント","account_caption":"サインイン/サインアップ/管理","settings":"設定","settings_caption":"アプリ、プレーヤー、アカウントの設定","development":"発達","development_caption":"内部使用のための開発者モード","basic":"基本","basic_caption":"基本設定","advanced":"高度な","advanced_caption":"高度な設定","blockchain":"財布","blockchain_caption":"${displayName} 分散型ウォレット","internal_notice":"内部リリース通知","release_notes":"リリースノート","terms_and_conditions":"規約と条件","license_and_listen_notices":"オープンソースのライセンスとリッスンに関する通知","close":"近い","success":"成功","fail":"失敗","account_email_invalid_address":"無効なメールアドレス","account_email_invalid_domain":"無効なメールドメイン","account_email_unknown_status":"不明なメール配信ステータス","account_email_unavailable_address":"使用できないメールアドレス","account_email_suppressed_address":"抑止されたメールアドレス","account_loading":"読み込み中...","account_is_required":"必要とされている","account_sign_in_your_account":"ログイン","account_username":"ユーザー名","account_username_email_phone":"電話番号またはメールアドレス","account_password":"パスワード","account_new_password":"新しいパスワード","account_re_enter_password":"パスワード再入力","account_password_not_equal":"2 つのパスワードが等しくありません","account_new_password_same":"パスワードは元のパスワードと同じです","account_forgot_your_password":"パスワードをお忘れですか?","account_reset_password":"パスワードを再設定する","account_sign_in":"サインイン","account_signed_in":"サインインしました","account_sign_up":"サインアップ","account_find_your_account":"あなたのアカウントを見つけてください","account_enter_your_username":"電話番号またはメールアドレスを入力してください","account_search":"検索","account_email_sent_tip":"確認コードが記載されたメールがあなたのメールアドレスに送信されました。","account_phone_sent_tip":"確認コードを含む SMS が携帯電話に送信されました。","account_email_phone_sent_tip":"確認コードを含む電子メールと SMS がそれぞれあなたの電子メールと電話に送信されました:","account_software_token_tip":"お使いのアカウントでは MFA が有効になっています。サインインを完了するには、デバイスの電源を入れるか表示して TOTP を入力してください。","account_reset_your_password":"あなたのパスワードをリセット","account_verification_code":"検証コード","account_resend_code":"コードを再送信する","account_code_has_been_resent":"確認コードが再送信されました","account_password_has_been_reset":"パスワードがリセットされました","account_submit":"送信","account_sign_up_your_account":"アカウントにサインアップする","account_fill_required_fields":"以下の必須フィールドに入力します。","account_fill_optional_fields":"以下のオプションのフィールドに入力します。","account_email":"Eメール","account_invitation":"招待","account_invitation_code":"招待コード","account_i_accept":"承諾します","account_license_terms":"ライセンスと規約","account_next":"次","account_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります。","account_verify_fill_optional_fields":"オプションのフィールドを確認して入力します。","account_nickname":"ニックネーム","account_gender":"性別","account_male":"男","account_female":"女性","account_not_say":"言わない","account_birthday":"誕生日","account_phone_number":"電話番号","account_locale":"地元","account_tip_verified":"確認済み、サインイン中...","account_verified":"検証済み","account_unverified":"未確認","account_signed_up":"サインアップ","account_verify_your_identity":"身元を確認する","account_finish":"終了","account_signed_out":"サインアウトしました","account_change_password":"パスワードを変更する","account_change_email":"メールアドレスを変更","account_change_phone_number":"電話番号を変更する","account_sign_out":"サインアウト","account_current_password":"現在のパスワード","account_re_enter_new_password":"新しいパスワードを再入力してください","account_personal_information":"情報","account_edit":"編集","account_reset":"リセット","account_greeting":"こんにちは、","account_cancel":"キャンセル","account_change":"変化","account_not_set":"設定されていません","account_setting":"設定","account_copy_code":"コードをコピーする","account_account_setting":"アカウント","account_task_page":"クレジットタスク","account_setting_caption":"パスワード変更・情報編集","account_security":"安全","account_want_to_join":"参加したいですか?","account_sign_in_now":"ログイン","account_changed":"かわった","account_clipboard_with_invitation_code":"招待コードをコピーしました","account_clipboard_with_code":"コピーされたコード","account_invitation_code_dialog_tip":"招待コードを含む電子メールまたはテキスト メッセージを友達に送信します。","account_available":"利用可能","account_invited":"招待されました","account_used":"使用済み","account_invitation_code_sent":"招待コードが送信されました","account_invitation_channel_required":"少なくとも 1 つの招待チャネルを入力してください","account_no_verification_code":"認証コードが届かないのですが?","account_no_phone_number":"電話番号がありませんか?","account_sign_up_by_email":"メールで登録する","account_no_email":"電子メールがありませんか?","account_sign_up_by_phone_number":"電話番号で登録する","account_no_totp":"TOTPはありませんか?","account_tip_no_totp":"TOTP がない場合は、最初に TOTP を設定してください","account_setup_totp":"TOTPのセットアップ","account_contact_information":"連絡先","account_delete_account":"アカウントを削除する","account_deleted":"削除されました","account_can_not_mfa":"MFA でお困りですか?","account_set_mfa_type":"MFA の構成","account_disable_mfa":"MFA を無効にする","account_disabled_mfa":"無効なMFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"推奨しません","account_oauth_sign_in_with":"{provider} でサインイン","account_sign_in_failed":"サインインに失敗しました","account_tip_oath_sign_up":"現在の {provider} アカウントに対応する電子メール: {email} はまだアカウントを作成していません","account_tip_confirm_delete_account":"現在のアカウントのパスワードを入力して、現在のアカウントの削除を確認します。(削除されたアカウントは復元できません)","account_tip_config_mfa":"二次認証として SMS または時間ベースのワンタイム パスワード (TOTP) を使用することを選択できます。","account_error_can_not_enable_mfa":"MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_sms_mfa":"SMS MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_totp_mfa":"TOTP MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_setup_totp":"Authenticator などのアプリを使用して以下の QR コードをスキャンするか、コードを手動でコピーしてセキュリティ トークンを追加します","account_tip_verify_totp":"TOTP を確認する","account_link_your_social_account":"ソーシャルアカウントをバインドする","account_unlink_your_social_account":"ソーシャルアカウントのバインドを解除する","account_tip_confirm_link":"現在のアカウントを {provider} アカウントにバインドしてもよろしいですか?","account_tip_confirm_unlink":"バインドされた {provider} アカウントをキャンセルしてもよろしいですか?","account_tip_linking":"バインディング...","account_tip_unlinking":"バインドを解除...","account_linked":"バウンド","account_unlinked":"束縛されていない","account_error_can_not_link_to_the_linked_account":"現在のソーシャル アカウントは別のアカウントにバインドされています","account_error_can_not_link_to_the_mismatched_email":"現在のアカウントとソーシャルアカウントのメールアドレスが一致していません","account_error_can_not_link_before_email_verified":"現在のアカウントが確認済みの電子メールにバインドされていないため、ソーシャル アカウントをリンクできません","account_tip_confirm_verify_email_phone":"本人確認のため、現在のアカウントのメールアドレスと電話番号に確認コードを送信するかどうか。","account_tip_confirm_verify_phone":"本人確認のために現在の電話番号に確認コードを送信するかどうか?","account_error_1_message_60_seconds":"60 秒ごとに 1 つの SMS または電子メールのみを送信できます。さらに {delta} 秒待ちます","account_error_10_messages_per_day":"各携帯電話または電子メールで 24 時間以内に送信できるメッセージは 10 件までです","account_error_network":"ネットワークに問題があります。後でもう一度お試しください。","Network Error":"ネットワークに問題があります。後でもう一度お試しください。","account_error_user_not_exist":"ユーザーは存在しません","account_error_incorrect_username_or_password":"ユーザーネームまたはパスワードが違います","account_error_incorrect_original_password":"元のパスワードが間違っています","account_error_incorrect_password":"パスワードが間違っています","account_error_username_not_found":"ユーザー名が見つかりません","account_error_can_not_reset_for_no_verified":"未検証のアカウントのパスワードをリセットできません","account_error_invalid_verification_code":"確認コードが間違っています。もう一度お試しください。","account_error_expired_verification_code":"確認コードの有効期限が切れました。もう一度お試しください。","account_error_password_not_long_enough":"パスワードの長さが足りません","account_error_attempt_limit_exceeded":"試行制限を超えました。しばらくしてからお試しください。","account_error_password_attempts_exceeded":"パスワードの試行回数を超えました。","account_error_invalid_phone_number_format":"電話番号の形式が無効です","account_error_no_cell_phone_prefix":"電話番号のプレフィックスを選択してください","account_error_username_already_exists":"ユーザー名は既に存在します","account_error_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります","account_error_inactive_code":"招待コードは有効化されたコードではありません","account_error_non_existent_code":"招待コードが存在しません","account_error_unexpected":"予期しないエラー","account_error_can_not_change_email_before_phone_bound":"電話番号がバインドされる前に電子メールを変更することはできません","account_error_can_not_change_email_before_unbound_social_account":"ソーシャルアカウントのバインドを解除するまで電子メールを変更することはできません","account_error_can_not_change_phone_before_email_bound":"電子メールがバインドされる前に電話番号を変更することはできません","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA を無効にする前に電子メールまたは携帯電話番号を変更することはできません","account_error_not_supported_yet":"サポートを保留中","account_error_same_email":"新しいメール アドレスは元のメール アドレスと同じにすることはできません","account_error_same_phone":"新しい電話番号を元の電話番号と同じにすることはできません","account_error_email_not_exists":"メールアドレスが存在しません","account_error_email_already_exists":"指定されたメールアドレスを持つアカウントはすでに存在します。","account_error_phone_already_exists":"指定された電話番号を持つアカウントはすでに存在します。","account_error_mfa_token_mismatch":"ソフトウェアトークンコードの不一致","account_error_recaptcha_not_loaded":"ネットワークに問題があります。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_recaptcha_validation_failed":"ReCAPTCHA 検証に失敗しました。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_sign_in_in_progress":"保留中のサインイン試行がすでに進行中です","account_field_range":"{0}-{1} 文字の入力を制限する","account_field_only_alphanumeric":"英数字のみをサポートします","account_field_only_alphanumeric_and_symbol":"英数字と記号のみをサポートします","account_field_only_chinese_alphanumeric_space_underline":"英数字、スペース、アンダースコアのみをサポートします","account_field_prefix_without_number_space":"最初の文字を数字やスペースにすることはできません","account_field_suffix_without_space":"スペースで終わることはできません","account_field_without_repeat_space":"複数のスペースを連続して使用することはできません","account_field_can_not_only_alphanumeric":"文字や数字だけを使用することはできません","account_field_must_have_number_characters":"数字文字が必要です","account_field_verification_code":"認証コードは6桁である必要があります","account_field_invitation_code":"招待コードは英数字である必要があります","account_field_phone_number":"電話番号の形式が無効です","account_invalid_email_format":"無効な電子メール形式","account_sign_out_confirm":"サインアウトしてもよろしいですか?これにより、すべてのタスクが停止します。","account_sign_out_anyway":"とにかくサインアウトしてください","account_signing_out":"サインアウト中...","account_request_save_settings":"設定は保存されません。サインアウトする前に変更を保存する必要があります。","pay":"支払う","pay_with_credit":"ダウンロードの有料化が加速します。約 {0} クレジットが必要です","pay_with_credit_payed":"加速中。 {0} 程度のクレジットがまだ必要です","create_payment":"支払いの作成","pay_target":"目標","pay_for_torrent":"{0} の支払い","your_subid":"あなたのサブID","your_credits":"あなたのクレジット","pay_point_for_data":"{1} データに対して {0} ポイントを支払う","auto_renew":"自動更新を有効にする","transaction_details":"取引詳細","transaction_id":"ID","transaction_payer":"支払者","transaction_payee":"受取人","transaction_category":"カテゴリー","transaction_changed_amount":"変更金額","transaction_meta":"メタ","transaction_status":"スターテス","transaction_creation_time":"作成時間","receipt_code":"受信コード","transfer_amount":"払込金額","code_the_receipt_code":"以下のレシートコードを支払者にコピーしてください","fill_the_receipt_code":"受取人から提供された支払いコードを入力して送金します","expense":"費用","copied":"コピーされました","transfer":"移行","receive":"受け取る","copy":"コピー","withdraw_fund":"資金を引き出す","category_paydata_payer":"データのコスト","category_paydata_payee":"データ収入","category_transfer":"移行","category_bonus":"ボーナス","category_recharge":"リチャージ","status_pending":"保留中","status_completed":"完成した","status_finish":"終了","status_failed":"失敗した","tip_invalid_receiver":"無効な受信機コードです","tip_invalid_amount":"クレジット額は 0 ~ 1000 の範囲の浮動小数点数である必要があります (最小精度は 0.001)。","credit_get_more":"さらにクレジットを取得","credit_no_data":"データなし","credit_loading":"読み込み中...","credit_not_enough_amount":"クレジットが足りません","credit_amount_not_enough":"クレジットが足りません","credit_payee_not_exist":"受取人が存在しません","credit_invalid_amount":"無効なクレジット金額です","credit_can_not_transfer_to_yourself":"自分への転送はできません","credit_latest":"最新","credit_error_network":"ネットワークに問題があります。後でもう一度お試しください。","add_subtitles":"字幕を追加する","open_file":"ファイルを開く...","advanced_options":"高度なオプション","title":"タイトル","location":"位置","subtitle_file":"字幕ファイル","unsupported_subtitle_type":"{0} のファイル タイプはサポートされている字幕タイプではありません","not_default_player":"デフォルトのビデオプレーヤーが設定されていません","this_is_an_audio_file":"これは音声ファイルです","the_added_subtitle_already_exists":"追加されたサブタイトルはすでに存在します","stop_stream_player":"タスクが一時停止または削除されたため、ストリーミング メディアが終了しました","stop_player":"ファイルが削除されたため、プレーヤーは終了しました","playing_timeout_hint":"待ち時間がタイムアウトします。タスクを確認してください","autoplay_hint":"自動再生はブラウザによってブロックされている可能性があります。プレーヤーが再生されていない場合は、画面をクリックして続行してください。","remove_playing_confirm":"{0} はまだ再生中です。削除するとプレーヤーが停止します。本当に削除しますか?","unsupported_in_browser":"ブラウザモードではまだサポートされていません","client":"クライアント","warning":"警告","enable":"有効にする","disable":"無効にする","auto":"自動","encrypt_connection":"接続を暗号化する","encrypted_connection":"暗号化された接続","non_encrypted_connection":"非暗号化接続","connected_wires_not_disconnect":"接続されたワイヤーが切れることはありません","audio":"オーディオ","video":"ビデオ","image":"画像","subtitle":"字幕","zip":"ジップ","text":"文章","unknown":"未知","add":"追加","undo":"元に戻す","backup":"バックアップ","not_default_app":"${displayName} はトレントとメディアのデフォルトのアプリではありません。デフォルトとして設定しますか?","dont_show_again":"二度と表示しないでください","go_to_settings":"設定に移動","about_alphabiz":"${displayName} について","last_check_at":"最終チェック日時","update_channel":"チャンネルを更新する","check_for_update":"更新を確認","checking_for_update":"アップデートをチェックしています...","no_update_available":"利用可能なアップデートはありません","update_available":"利用可能なアップデート","update_now":"今すぐアップデート","update_later":"後で更新","click_to_update":"「今すぐ更新」ボタンをクリックしてダウンロードして更新します","update_failed":"アップデートに失敗しました","update_failed_message":"更新中にエラーが発生しました:","check_shasum_failed":"インストーラーの整合性チェックに失敗しました","downloading_update":"アップデートをダウンロード中...","ready_to_update":"更新の準備ができました","restart_to_update":"アップデートがダウンロードされます。 ${displayName} は更新のためしばらく終了します。","already_latest":"現在のバージョン({0})はすでに最新です","update_timeout":"更新タイムアウト","no_available_release":"利用可能なリリースはありません","no_available_installer":"利用可能なインストーラーがありません","feedback":"フィードバック","select_a_type":"タイプを選択してください","category":"カテゴリー","select_a_category":"カテゴリーを選ぶ","require_title":"タイトルは必須です","describe_your_problem":"問題を説明してください","report_a_bug":"バグを報告","request_a_new_feature":"新しい機能をリクエストする","download_or_upload":"ダウンロードアップロード","others":"その他","submit_with_system_info":"システム情報を含めて送信する","submit_feedback":"フィードバックを送信","tweet_us":"ツイートしてください","tweet_too_long":"ツイートが長すぎます","delete_characters":"少なくとも {0} 文字を削除してください","rest_characters":"さらに {0} 文字を入力できます","update_alphabiz":"${displayName} を更新します","current_version":"現行版","cancel_update":"更新をキャンセルする","slow_download_speed":"ダウンロードが遅すぎる","slow_download_speed_caption":"インストーラーのダウンロードが遅すぎます。ネットワークのステータスを確認してください","update_canceled":"アップデートがキャンセルされました","current_version_release_time":"現在のバージョンのリリース時期","expired_app":"${displayName} 期限切れ","version_out_of_date":"バージョンが古い","have_to_update":"${displayName} のバージョンは古くなっています。一部のプロトコルまたは API は廃止されました。続行する前に ${displayName} を更新する必要があります。","exit_alphabiz":"終了 ${displayName}","exit_and_update":"終了してアップデートを適用する","new_version_hint":"新しいバージョンが利用可能です","no_new_version":"新しいバージョンは利用できません","current_is_latest":"現在のバージョンはすでに最新です","click_to_check_update":"[CHECK FOR UPDATE]ボタンをクリックしてアップデートを確認してください","download_latest_version_from_website":"公式 Web サイトにアクセスして最新バージョンをダウンロードしてください","to_the_website":"ウェブサイトへ","network_diagnotic":"ネットワーク診断","diagnotic":"診断","click_to_check":"クリックして確認してください","click_to_check_again":"クリックして再度確認してください","checking":"チェック中","online":"オンライン","offline":"オフライン","dns_look_up":"DNSルックアップ","error":"エラー","aws_service":"AWSサービス","network_pings":"ネットワークping","not_found":"見つかりません","packet_loss":"パケット損失","official_site":"オフィシャルサイト","download_test":"ダウンロードテスト","test_task":"テスト タスク {0}","download_failed":"ダウンロードに失敗しました","second_spend":"{0} の支出","open_default_player_failed":"デフォルトのプレーヤーを開けませんでした","copied_to_clipboard":"クリップボードにコピーされました","go_to":"に行く","region_not_available":"地域が利用できません","region_not_available_message":"ごめん!お住まいの地域ではこのアプリを使用できません。このアプリは {0} 秒後に終了します","confirm":"確認","no_available_result":"利用可能な結果がありません","invalid_password_format":"無効なパスワード形式です","invalid_password_format_same":"パスワードは元のパスワードと同じです","error_password":"パスワードエラー","keychain_setting":"キーホルダー","setting_description":"クラウドストレージ: 重要なデータをクラウドに保存します。\\nパスワードの変更: メディア ライブラリ キーのパスワードを変更します。\\nニーモニック: キーを生成および復元するための代替方法。\\nローカル キーのインポート: ローカルに保存されたキーをメディア ライブラリにインポートします。\\nエクスポート キー: 現在のメディア ライブラリ データをローカルまたはクラウドに保存します。\\nキーをクラウドにバックアップ: 現在のメディア ライブラリ データをバックアップのためにクラウドに更新します。","refresh_status":"最新状況","confirm_import_key":"インポートキーの確認","confirm_update_cloud_key":"クラウドにはすでにキーがあります。キーを更新すると、元のキーが上書きされます。クラウドに保存されているキーを更新してもよろしいですか?","export_key_with_cloud":"設定した独自のパスワードを入力してクラウドに保存されているライブラリキーをエクスポートし、ロック解除パスワードでキーファイルをロックします","store_cloud_key_prompt_password":"ライブラリキーをクラウドに保存するための独立したパスワードを入力します","update_cloud_key_prompt_password":"独立したパスワードを設定してライブラリキーを暗号化し、クラウドに更新します","enable_cloud_storage_prompt_password":"クラウドに保存されているキーのパスワードを設定します。これにより、クラウドからキーを取得できます。","input_unlock_password":"ロック解除パスワードを設定する","export_local_prompt_password":"キーファイルを暗号化するには、ロック解除パスワードを設定してください。このパスワードは保存されないため、パスワードを紛失するとライブラリ キーのロックを解除できなくなります。","require_unlock_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","require_independent_password":"独立したパスワードを入力して、クラウドに保存されているキーを取得します","import_local_prompt_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","select_encrypt_mode":"暗号化モードの選択","update_cloud_key":"クラウドに保存されているキーを更新する","backup_to_cloud":"ライブラリキーをクラウドにバックアップする","save_local":"ライブラリキーをローカルの暗号化ファイルとして保存します","create_new_key":"新しいライブラリキーを作成する","creating_lib_key":"ライブラリキーを作成しています...","loading_lib_key":"ライブラリキーをロードしています...","failed_to_create_lib_key":"ライブラリキーの作成に失敗しました","failed_to_load_lib_key":"ライブラリキーのロードに失敗しました","import_local_key":"キーをローカルにインポートする","import_lib_key_from_local":"ライブラリキーをローカルにインポートする","import_from_cloud":"クラウドからライブラリキーをインポートする","create_or_import_key":"ライブラリキーを作成またはインポートする","create_or_import_key_desc":"ライブラリ キーは、分散データベースでコンテンツを取得および公開するために使用される独立したキーです。","store_your_lib_key":"ライブラリキーを保管する","export_cloud_key":"クラウドからキーをエクスポート","export_current_key":"現在のキーをエクスポート","change_password":"パスワードを変更する","enable_cloud_storage":"クラウドストレージを有効にする","disable_cloud_storage":"クラウドストレージを無効にする","disable_cloud_storage_desc":"クラウド ストレージを無効にすると、クラウドに保存されているキーが削除されます。キーがローカルに保存されていることを確認してください。","sync_at":"同期先: {time}","cloud_storage_enabled":"キーチェーンを {storage} と同期する","cloud_storage_disabled":"クラウドストレージが無効になっています","saved_locally":"ローカルに保存されました","export_key":"キーファイルのエクスポート","cloud_independent_password":"クラウドに依存しないパスワード","key_file_unlock_password":"キーファイルのロック解除パスワード","re_enter_unlock_password":"ロック解除パスワードを再入力してください","independent_password_not_enabled":"現在のパスワードはAlphabizアカウントのパスワードです(独自のパスワードは設定されていません)","use_cognito_hash":"Alphabiz アカウントのパスワードを使用する","use_independent_password":"独立したパスワードを使用する","keychain_lib":"ライブラリキー","loading_keychain_state":"キーチェーンを読み込んでいます...","backing_up":"バックアップ...","backup_current_key":"現在のキーをクラウドにバックアップする","cloud_lib_key_not_existed":"ライブラリキーがクラウドに存在しません","open_keychain_file":"キーチェーン ファイルを開く","confirm_open_abk":"ABKファイルを開きますか?","use_the_key":"キーを使用する","backup_the_key":"キーをクラウドにバックアップする","keychain_data_does_not_exist":"キーチェーンデータが存在しません","timeout of 0ms exceeded":"ネットワークに問題があります。後でもう一度お試しください。","XhrError":"ネットワークに問題があります。後でもう一度お試しください。","payer credit amount is not enough":"クレジットが足りません","payee does not exist":"受取人が存在しません","block_list_manage":"ブロックリスト管理","blocked_users":"ブロックされたユーザー","blocked_channels":"ブロックされたチャンネル","unblock_user":"ユーザーのブロックを解除する","unblock_channel":"チャンネルのブロックを解除する","no_blocked_user":"ブロックされたユーザーはいません","no_blocked_channel":"ブロックされたチャンネルはありません","field_required":"{0} は必須です","setting":"設定","unknown_media":"不明なメディア","settings_button_visible":"ボタンが表示されます","settings_setting":"設定","settings_playback_rate":"再生速度","settings_subtitle":"字幕","settings_pip":"PiP","settings_fullscreen":"全画面表示","settings_subtitle_options":"字幕オプション","settings_normal":"普通","settings_italic":"イタリック","settings_lighter":"ライター","settings_bolder":"より大胆に","settings_small":"小さい","settings_large":"大きい","about":"について","services":"サービス","hide":"隠れる","hide_others":"他の人を隠す","show_all":"すべて表示する","quit":"やめる","edit":"編集","redo":"やり直し","cut":"切る","paste":"ペースト","select_all":"すべて選択","view":"ビュー","reload":"リロード","toggle_full_screen":"フルスクリーン切り替え","toggle_developer_tools":"開発者ツールの切り替え","window":"窓","minimize":"最小化する","bring_all_to_front":"すべてを前面に出す","help":"ヘルプ","github_repo":"Github リポジトリ","issues":"問題","learn_more":"もっと詳しく知る","learn_spelling":"スペルを学ぶ","lookup_selection":"「{selection}」を調べる","search_with_google":"Googleで検索","save_as":"名前を付けて保存","save_image":"画像を保存","save_image_as":"画像を保存します ...","copy_link":"リンクをコピーする","save_link_as":"リンクを名前を付けて保存 ...","copy_image":"画像をコピー","copy_image_as":"画像をコピー...","copy_image_address":"画像アドレスをコピー","download_complete":"ダウンロード完了","download_complete_message":"{0} がダウンロードされました","is_running":"{0} が実行中です","open":"{0} を開く","launch_problem":"起動の問題","ask_clear_data":"{0} を起動しようとしましたが、数回失敗したようです。\\nすべてのアプリデータをクリアして、後で起動してみますか?","launch_directly":"直接起動","clear_all_data":"すべてのデータをクリア","ask_clear_confirm":"これにより、すべての設定、ログ、ユーザー データが削除されます。\\nこの後、{0} を再度起動する必要がある場合があります。\\nデータを消去してもよろしいですか?","confirm_launch":"いいえ、直接起動します","confirm_clear":"はい、すべてのデータを消去します"}')},"3d7e":function(e,t,a){"use strict";a("b36a")},"3e69":function(e,t,a){},"3fc8":function(e,t,a){"use strict";a("0c2f")},4:function(e,t){},"40fa":function(e,t){e.exports=require("net")},4165:function(e){e.exports=JSON.parse('{"lib_index":"บ้าน","lib_edit":"เผยแพร่","lib_publish":"เผยแพร่","lib_explore":"สำรวจ","lib_following":"กำลังติดตาม","lib_favorite":"รายการโปรดในท้องถิ่น","lib_local_favorites":"รายการโปรดในท้องถิ่น","lib_channel":"ช่อง","lib_submit":"ส่ง","lib_from_network":"การใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย","welcome_to_lib":"ยินดีต้อนรับสู่ห้องสมุดสื่อ ${displayName}","register_or_login":"ลงทะเบียน/เข้าสู่ระบบ","lib_recommend":"แนะนำ","lib_recommend_desc":"ยินดีต้อนรับสู่ ${displayName} ห้องสมุด! ห้องสมุดนี้ใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย ในการเริ่มใช้งาน คุณต้องติดตามบางช่อง","follow_any_channel_to_continue":"ติดตามช่องใดก็ได้เพื่อดำเนินการต่อ","follow_channels_and_continue":"ติดตามช่อง {0} และดำเนินการต่อ","show_more_for_me":"แสดงมากขึ้นสำหรับฉัน","no_more_recommend":"ไม่แนะนำเพิ่มเติม","key":"สำคัญ","create_key":"สร้างคีย์","save_key":"บันทึกคีย์","save_key_file":"คุณต้องการบันทึกรหัสของคุณเป็นไฟล์หรือไม่?","import_key":"นำเข้าคีย์","import":"นำเข้า","invalid_key":"กุญแจนี้ใช้ไม่ได้","back_to_top":"กลับไปด้านบน","search_for_channel":"ค้นหารหัสช่อง","search_channel_no_result":"ไม่พบช่องที่มี ID {0}","please_input_channel_id":"โปรดป้อนรหัสช่อง","welcome_help_text":"นี่คือไลบรารีสื่อที่กระจายอำนาจ คุณต้องการ\\n เพื่อสร้างบัญชีสำหรับฐานข้อมูลนี้ เราจะ\\n สร้างรหัสส่วนตัวให้คุณโดยอัตโนมัติ\\n หากคุณมีรหัสอยู่แล้ว คุณสามารถนำเข้าได้เช่นกัน\\n ที่นี่.","welcome_key_text":"เมื่อคุณเข้าสู่ระบบแล้ว โปรดคลิกปุ่ม [SAVE KEY]\\n ที่มุมล่างขวาเพื่อบันทึกคีย์ส่วนตัวของคุณ\\n หากคุณทำกุญแจหาย คุณอาจไม่สามารถเข้าสู่ระบบได้อีก","redirect_to_recommend":"ดูเหมือนว่าคุณไม่ได้ติดตามช่องใดเลย กำลังเปลี่ยนเส้นทางไปยังหน้า [สำรวจ]","channel":"ช่อง","follow":"ติดตาม","unfollow":"เลิกติดตาม","following":"กำลังติดตาม","share":"แบ่งปัน","unfollow_confirm":"คุณแน่ใจหรือไม่ที่จะเลิกติดตามช่องนี้ โพสต์ทั้งหมดของช่องนี้ในไทม์ไลน์ของคุณจะถูกลบออก","follow_failed_hint":"การดำเนินการยังคงค้างอยู่ในพื้นหลัง หากไม่ได้ใช้การดำเนินการเป็นเวลานาน โปรดรีสตาร์ทแอปแล้วลองอีกครั้ง","block":"ปิดกั้น","unblock":"เลิกบล็อก","blocked":"ถูกบล็อก","block_channel":"บล็อกช่องนี้","block_channel_confirm":"ช่องที่ถูกบล็อกจะลบออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","block_creator":"บล็อกผู้สร้างช่องนี้","unblock_creator":"เลิกบล็อกผู้สร้างช่องนี้","block_creator_confirm":"ผู้สร้างบล็อกจะลบช่องทั้งหมดที่สร้างโดยผู้สร้างรายนี้ออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","share_url_copied":"แบ่งปัน URL จะถูกคัดลอกไปยังคลิปบอร์ดของคุณ","follow_time":"ติดตามเวลา","update_time":"เวลาอัปเดต","search":"ค้นหา","type":"พิมพ์","added":"เพิ่ม","click_to_task":"คลิกเพื่อไปที่งาน","lib_already_added":"คุณได้เพิ่มวิดีโอนี้แล้ว","description":"คำอธิบาย","poster":"โปสเตอร์","channel_poster":"โปสเตอร์ช่อง","preview":"ดูตัวอย่าง","creator":"ผู้สร้าง","creator_detail":"รายละเอียดผู้สร้าง","loading_creator":"กำลังโหลดข้อมูลผู้สร้าง","wait_for_creator_loaded":"โปรดรอสักครู่เพื่อโหลดข้อมูลผู้สร้าง","follower":"ผู้ติดตาม","followers":"ผู้ติดตาม","follower_list":"รายชื่อผู้ติดตาม","user":"ผู้ใช้","channel_title":"ชื่อช่อง","channel_id":"รหัสช่อง","post_title":"ชื่อกระทู้","post_id":"รหัสโพสต์","import_data_from_excel":"นำเข้าข้อมูลจาก excel","set_excel_keys":"ตั้งค่าคีย์ excel","excel_import_succeded":"นำเข้า Excel สำเร็จ","excel_import_success_msg":"{0} แถวพร้อมที่จะเพิ่ม {1} ไม่ถูกต้องและ {2} รายการที่ซ้ำกันจะถูกละเว้น","cannot_find_channel":"ไม่พบช่อง","cannot_find_posts":"ไม่พบโพสต์","add_channel":"เพิ่มช่อง","add_post":"เพิ่มโพสต์","edit_channel":"แก้ไขช่อง","channel_setting":"การตั้งค่าช่อง","edit_post":"แก้ไขโพสต์","edit_posts":"แก้ไขข้อความ","channel_detail":"รายละเอียดช่อง","remove":"ลบ","remove_channel":"ลบช่อง","remove_channel_confirm":"คุณแน่ใจหรือไม่ว่าจะนำโพสต์นี้ออก สิ่งนี้ไม่สามารถกู้คืนได้","remove_post":"ลบโพสต์","remove_post_confirm":"คุณแน่ใจหรือว่าต้องการลบช่องนี้ สิ่งนี้ไม่สามารถกู้คืนได้","preview_mode":"โหมดดูตัวอย่าง","preview_mode_desc":"นี่คือตัวอย่างช่องของคุณ อัตราของภาพยนตร์ทั้งหมดแสดงไว้ที่นี่","edit_user_profile":"แก้ไขโปรไฟล์ผู้ใช้","name":"ชื่อเล่น","avatar":"สัญลักษณ์","no_following":"ไม่มีช่องติดตาม คลิกเพื่อข้ามไป","no_recommend":"ไม่มีช่องแนะนำ คลิกเพื่อข้ามไป","first_recomment_msg":"อาจใช้เวลาสักครู่หากนี่เป็นการเปิดแอปครั้งแรก","invalid_image":"รูปภาพไม่ถูกต้อง","image_not_reachable":"ไม่สามารถเข้าถึง URL รูปภาพนี้ได้","channel_not_found":"ไม่พบช่อง","cannot_get_channel_info":"ไม่สามารถรับข้อมูลช่อง ช่องนี้อาจถูกลบโดยผู้สร้างและไม่สามารถใช้งานได้อีกต่อไป","validate_error":"ตรวจสอบข้อผิดพลาด","validate_user_name_no_space":"ชื่อผู้ใช้ไม่ควรมีช่องว่าง","validate_url_no_space":"URL ไม่ควรมีช่องว่าง","validate_user_name_length":"ชื่อผู้ใช้ควรมีความยาวระหว่าง {0} ถึง {1}","validate_user_desc_length":"คำอธิบายผู้ใช้ไม่ควรเกิน {0} อักขระ","validate_user_avatar_url":"อวาตาร์ของผู้ใช้ควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_channel_title_length":"ชื่อช่องควรมีความยาวระหว่าง 1 ถึง 100","validate_channel_desc_length":"คำอธิบายช่องควรมีความยาวระหว่าง 10 ถึง 300","validate_channel_image_url":"การแสดงตัวอย่างช่องควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_title_length":"ชื่อโพสต์ควรมีความยาวระหว่าง 1 ถึง 100","validate_post_desc_length":"คำอธิบายโพสต์ควรมีความยาวระหว่าง 10 ถึง 300","validate_post_image_url":"โปสเตอร์ควรเป็น url ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_url":"URL ${displayName} ไม่ถูกต้อง","validate_post_url_length":"${displayName} URL ไม่ควรเกิน 2,048 อักขระ","film_rate":"อัตราฟิล์ม","set_film_rate":"กำหนดอัตราภาพยนตร์","select_a_rate_before_enter":"คุณต้องเลือกอัตราภาพยนตร์ก่อนเข้าสู่ไลบรารีสื่อ","library_available_rate":"อัตราภาพยนตร์ที่มีอยู่ในห้องสมุด","rate_g":"G – ผู้ชมทั่วไป","rate_g_desc":"รับทุกวัย ไม่มีอะไรที่จะทำให้ผู้ปกครองขุ่นเคืองเมื่อเด็ก ๆ ดู","rate_pg":"PG – ผู้ปกครองแนะนำ","rate_pg_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสำหรับเด็ก ผู้ปกครองควรให้คำแนะนำแก่ผู้ปกครอง อาจมีเนื้อหาบางอย่างที่ผู้ปกครองอาจไม่ชอบสำหรับเด็กเล็ก","rate_pg_13":"PG-13 – ผู้ปกครองควรระมัดระวังเป็นอย่างยิ่ง","rate_pg_13_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสมสำหรับเด็กอายุต่ำกว่า 13 ปี ผู้ปกครองควรระมัดระวัง เนื้อหาบางอย่างอาจไม่เหมาะสมกับเด็กก่อนวัยรุ่น","rate_r":"R – ถูกจำกัด","rate_r_desc":"อายุต่ำกว่า 17 ปีต้องมีพ่อแม่หรือผู้ปกครองที่เป็นผู้ใหญ่มาด้วย มีเนื้อหาสำหรับผู้ใหญ่ ผู้ปกครองควรเรียนรู้เพิ่มเติมเกี่ยวกับภาพยนตร์ก่อนที่จะพาลูกเล็กไปด้วย","rate_nc_17":"NC-17 – สำหรับผู้ใหญ่เท่านั้น","rate_nc_17_desc":"ห้ามใครอายุต่ำกว่า 17 ปีเข้า ผู้ใหญ่ชัดๆ ไม่อนุญาตให้เด็กเข้าพัก","set_as_private":"ตั้งเป็นส่วนตัว","hide_in_explore":"ซ่อนช่องนี้ในหน้าสำรวจ","hidden":"ที่ซ่อนอยู่","select_a_rate":"กรุณาเลือกอัตราภาพยนตร์","select_from_tasks":"เลือกจากงาน","import_from_magnet":"นำเข้าจากแม่เหล็ก:?...","input_magnet_url":"แม่เหล็กอินพุต:? URL","task_title":"ชื่องาน","set_title":"ตั้งชื่อเรื่อง","add_to_local_favorites":"เพิ่มในรายการโปรดในท้องถิ่น","remove_from_local_favorites":"ลบออกจากรายการโปรดในท้องถิ่น","removed_favorite":"ลบรายการโปรดแล้ว","import_or_export_favorites":"นำเข้า/ส่งออกรายการโปรด","export_local_favorites":"ส่งออกรายการโปรดในเครื่องเป็นข้อมูลสำรอง","import_favorites_file":"นำเข้าไฟล์รายการโปรด","not_a_favorite_file":"ไฟล์นี้ไม่ใช่ไฟล์สำรองข้อมูลโปรด","connection_status":"สถานะการเชื่อมต่อ","gun_server_list":"โหนดแคช","custom_nodes":"โหนดแคชที่กำหนดเอง","custom_nodes_hint":"โหนดแคชที่กำหนดเองจะถูกนำไปใช้หลังจากเปิดแอปใหม่","wait_for_reboot":"กำลังรอการรีบูต...({seconds}s)","reboot_now":"รีบูทเดี๋ยวนี้","reboot_later":"รีบูตในภายหลัง","peer_list":"โหนดโดยตรง","server":"โหนด URL","peer":"เพียร์","peer_id":"รหัสโหนด","connection":"การเชื่อมต่อ","data_source":"แหล่งข้อมูล","sync":"ซิงค์","syncing":"กำลังซิงค์","sync_completed":"ซิงค์เสร็จสมบูรณ์","got_all_post":"คุณได้รับโพสต์ทั้งหมดแล้ว","placeholder_channel_title":"ชื่อช่องของคุณ","placeholder_channel_desc":"คำอธิบายเกี่ยวกับช่องนี้","placeholder_post_title":"ชื่อภาพยนตร์ (ปี)","placeholder_post_desc":"คำอธิบายเกี่ยวกับหนังเรื่องนี้","private_channel":"ช่องส่วนตัว","creator_blocked":"ผู้สร้างบล็อก","go_to_library":"ไปห้องสมุด?","go_to_library_channel_msg":"คุณต้องการไปที่ช่องไลบรารี {0} หรือไม่","magnet_does_not_have_name":"แม่เหล็กนี้:? url ไม่มีชื่อ คุณต้องเพิ่มชื่อโพสต์ก่อน","no_available_post":"ไม่มีโพสต์","following_channel_no_post":"ช่องที่คุณติดตามทั้งหมดไม่มีโพสต์ อาจเกิดจากข้อผิดพลาดของเครือข่าย หากคุณเคยติดตามบางช่องแล้ว โพสต์อาจถูกโหลดในภายหลัง","share_to_library":"แบ่งปันไปที่ห้องสมุด","quick_start":"เริ่มต้นอย่างรวดเร็ว","quick_start_desc":"เริ่มสร้างโพสต์ด้วยงานหรือไฟล์","select_file":"เลือกไฟล์...","select_folder":"เลือกโฟลเดอร์...","post_options":"โพสต์ตัวเลือก","channel_options":"ตัวเลือกช่อง","create_new_channel":"สร้างช่องใหม่","use_existed_channel":"ใช้ช่องทางที่มีอยู่","select_existed_channel":"เลือกช่องที่มีอยู่","uploaded_by":"{title} อัพโหลดโดย {name}","created_by":"{title} สร้างโดย {name}","creating_new_channel":"กำลังสร้างช่องใหม่...","created_new_channel":"สร้างช่องใหม่แล้ว","creating_new_post":"กำลังสร้างโพสต์ใหม่...","created_new_post":"สร้างโพสต์ใหม่แล้ว","create_new_post":"สร้างโพสต์ใหม่","quick_start_timeout":"{0} หมดเวลา อาจเกิดจากข้อผิดพลาดของเครือข่าย กรุณาลองใหม่อีกครั้งในภายหลัง.","file_too_large":"ไฟล์ใหญ่เกินไป","file_too_large_msg":"ไฟล์นี้มีขนาดใหญ่กว่า 4GB ({size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจหรือไม่ว่าจะดำเนินการต่อ","resolving_folder_files":"กำลังแก้ไขไฟล์โฟลเดอร์...","folder_too_large":"โฟลเดอร์ใหญ่เกินไป","folder_too_large_msg":"ไฟล์ในโฟลเดอร์นี้มีขนาดใหญ่กว่า 4GB (รวม {size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจว่าจะอัปโหลดหรือไม่","creating_new_task":"กำลังสร้างงานใหม่...","cannot_create_task":"ไม่สามารถสร้างงาน","cannot_create_task_msg":"ซึ่งอาจเกิดจากข้อผิดพลาดบางอย่าง หากงานถูกสร้างขึ้นอย่างถูกต้อง คุณสามารถตรวจสอบรายการงานได้ในภายหลัง","cannot_get_task_name":"ไม่สามารถรับชื่องาน คุณต้องป้อนข้อมูลก่อน","remove_old_task":"ลบงานเก่า","remove_old_task_desc":"โหมดเว็บสามารถสร้างได้ครั้งละหนึ่งงานเท่านั้น คุณต้องการลบงานเก่าหรือไม่?","subtitle_list":"รายการคำบรรยาย","optional":"ไม่จำเป็น","with_subtitle":"พร้อมคำบรรยาย {language}","maximumSubtitleNum_limit":"จำนวนคำบรรยายถึงขีดสุดแล้ว","add_subtitle_url":"เพิ่มลิงค์ดาวน์โหลดคำบรรยาย","cannot_add_subtitle":"ไม่สามารถเพิ่มคำบรรยาย","cannot_add_subtitle_msg":"ไม่ได้เลือกภาษาคำบรรยายหรือลิงก์ดาวน์โหลดไม่ถูกต้อง","support_subtitle_type":"รองรับคำบรรยายในรูปแบบ srt และ vtt เท่านั้น","recommend_opensubtitles":"ขอแนะนำให้ใช้ลิงค์ดาวน์โหลดคำบรรยายหรือรหัสที่ www.opensubtitles.org","take_down":"ลง","serious_violation":"การละเมิดอย่างร้ายแรง","copyright_disputes":"ข้อพิพาทด้านลิขสิทธิ์","adults_only":"ผู้ใหญ่เท่านั้น","takedown_reason":"เหตุผลในการลบออก","takedown_mode":"โหมดลบออก","admins":"ผู้ดูแลระบบ","takedown_user":"ลบผู้สร้างรายนี้","takedown_channel":"ลบช่องนี้","takedown_post":"ลบโพสต์นี้","select_takedown_reason":"เลือกเหตุผลในการลบออก","takedown_invalid_reason":"เหตุผลในการลบออกไม่ถูกต้อง","takedown_invalid_user_id":"รหัสผู้ใช้ไม่ถูกต้อง รหัสควรมีอักขระ 87 ตัว","takedown_invalid_channel_id":"รหัสช่องไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_invalid_post_id":"รหัสโพสต์ไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_management":"จัดการลง","users":"ผู้ใช้","channels":"ช่อง","posts":"กระทู้","you":"คุณ","preset":"ตั้งค่าล่วงหน้า","admin":"ผู้ดูแลระบบ","committee":"คณะกรรมการ","about_takedown_mode":"เกี่ยวกับโหมดลบออก:\\nตั้งค่าล่วงหน้า: กำหนดค่าในที่เก็บ github พวกเขาทั้งหมดจะถูกลบออกจากห้องสมุด\\nผู้ดูแลระบบ: คนใดคนหนึ่งที่ผู้ดูแลระบบโหวตให้จะถูกลบออก\\nคณะกรรมการ: แอดมินอย่างน้อยครึ่งหนึ่งโหวตให้จะถูกลบออก","cannot_edit_preset":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากเป็นแถวที่กำหนดไว้ล่วงหน้า","cannot_edit_not_vote":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากคุณยังไม่ได้ลงคะแนน","remove_vote":"ลบการลงคะแนนของคุณ","post_preload_failed":"โหลดโพสต์นี้ล่วงหน้าไม่สำเร็จ ลิงก์ดาวน์โหลดอาจล้าสมัย ดังนั้นโพสต์นี้จึงไม่สามารถเล่นได้ทันที","about_cache_node":"เกี่ยวกับโหนดแคช","edit_cache_node":"แก้ไขโหนดแคช","create_cache_node":"สร้างโหนดแคช","about_cache_node_desc":"${displayName} ใช้เซิร์ฟเวอร์ปืนเป็นโหนดแคช คุณสามารถแก้ไขโหนดที่กำหนดเองได้ในการตั้งค่าล่วงหน้า","learn_how_to_deploy_gun":"เรียนรู้วิธีการปรับใช้เซิร์ฟเวอร์ปืนของคุณเอง","repeat_add":"เพิ่มงานแล้ว โปรดอย่าเพิ่มอีกครั้ง","upload":"ที่อัพโหลด","download":"ดาวน์โหลด","delete":"ลบ","delete_task":"ลบงาน","delete_confirm_message":"ลบงานนี้ไหม สิ่งนี้ไม่สามารถเพิกถอนได้","also_delete_files":"ลบไฟล์ด้วย","default_delete_files":"เริ่มต้นลบไฟล์ที่ดาวน์โหลดหลังจากลบงาน","not_now":"ไม่ใช่ตอนนี้","delete_autoupload_confirm":"งานนี้มีไฟล์ที่คุณใส่ไว้ในไดเร็กทอรีอัปโหลดอัตโนมัติ การลบงานนี้จะเป็นการลบไฟล์ด้วย","delete_anyway":"ลบต่อไป","upload_too_many_files":"อัปโหลดไฟล์มากเกินไป","ask_if_unlimit_upload_amount":"ไดเร็กทอรีอัปโหลดอัตโนมัติมีไฟล์มากเกินไป คุณต้องการปิดการจำกัดจำนวนการอัปโหลดหรือไม่ *สิ่งนี้อาจทำให้เกิดปัญหาด้านประสิทธิภาพ","disable_limitation":"ปิดการใช้งานข้อ จำกัด","not_length":"ขณะนี้ยังไม่รองรับการทำงานหลายไฟล์ โปรดให้ความร่วมมือ","download_torrent":"ดาวน์โหลดไฟล์","upload_torrent":"อัพโหลดไฟล์","files":"ไฟล์","file":"ไฟล์","folder":"โฟลเดอร์","start_all":"เริ่มต้นทั้งหมด","pause_all":"หยุดทั้งหมด","remove_all":"ลบทั้งหมด","upload_all":"อัปโหลดทั้งหมด","clear_history":"ล้างประวัติ","pause_all_finish_payments":"การดำเนินการนี้จะเสร็จสิ้นการชำระเงินทั้งหมด","accelerating":"กำลังเร่ง","link_task":"งานเชื่อมโยง","torrent_task":"งานไฟล์","ok":"ตกลง","cancel":"ยกเลิก","download_directory_position":"ดาวน์โหลดตำแหน่งไดเร็กทอรี","torrent_file":"ไฟล์งาน","magnetic_link_incorrect":"รูปแบบลิงค์ไม่ถูกต้อง","delete_fail":"ลบล้มเหลว","pause":"หยุดชั่วคราว","paused":"หยุดชั่วคราว","stop_torrent":"หยุด","seed":"เมล็ดพันธุ์","resume":"ประวัติย่อ","downloading":"กำลังดาวน์โหลด","downloaded":"ดาวน์โหลดแล้ว","uploading":"กำลังอัปโหลด","auto_uploading":"อัปโหลดอัตโนมัติ","uploaded":"อัปโหลดแล้ว","pending":"รองานอื่นๆ","verifying":"กำลังตรวจสอบ","waiting_for_verify":"กำลังรอการตรวจสอบ","seeding":"การเพาะเมล็ด","completed":"สมบูรณ์","status":"สถานะ","task_name":"ชื่องาน","size":"ขนาด","progress":"ความคืบหน้า","sort":"เรียงลำดับ","ascending":"จากน้อยไปมาก","descending":"จากมากไปน้อย","file_loading":"กำลังโหลดไฟล์...","loading":"กำลังโหลด","unknown_status":"ไม่ทราบ","play_while_downloading":"เล่น...","upload_or_play":"อัปโหลด / เล่น","play":"เล่น","ask_if_upload_file":"อัพโหลดไฟล์?","ask_if_upload_or_play":"อัปโหลดหรือเล่นไฟล์?","torrent_error":"เกิดข้อผิดพลาดเมื่อเพิ่มงาน:","no_peers":"ลองใหม่มากกว่า {0} ครั้ง แต่ไม่มีเพียร์","torrent_exists":"งานมีอยู่แล้ว","show_origin_torrent":"รับไฟล์งานหรือ URL ต้นฉบับ","show_directory":"เปิดไดเร็กทอรีของทอร์เรนต์นี้","task_num":"งาน","total_upload_speed":"ความเร็วในการอัปโหลด","total_download_speed":"ความเร็วดาวน์โหลด","path_missing":"ข้อผิดพลาด: ไม่พบเส้นทาง torrent","origin_not_found":"ไม่พบข้อมูลงานต้นทาง","text_copied":"Magnum url ถูกคัดลอกไปยังคลิปบอร์ดของคุณ","copy_magnet_uri":"คัดลอกแม่เหล็ก:? ยูอาร์ไอ","copy_download_uri":"คัดลอก URI ดาวน์โหลด","copy_share_uri":"คัดลอก URI ที่ใช้ร่วมกัน","uri_copied":"คัดลอก URI ไปยังคลิปบอร์ดของคุณเรียบร้อยแล้ว","uri_copy_failed":"คัดลอก uri.dll ไม่สำเร็จ","more":"มากกว่า...","toggle_list_mode":"สลับโหมดรายการ","comment":"ความคิดเห็น","operations":"การดำเนินงาน","open_directory":"เปิดไดเรกทอรี","no_downloading_task":"ไม่มีงานดาวน์โหลด","remove_all_downloading_tasks":"นำงานดาวน์โหลดทั้งหมดออกไหม","remove_all_upload_tasks":"นำงานอัปโหลดทั้งหมดออกไหม","remove_autoupload_files":"ลบไฟล์ที่อัปโหลดอัตโนมัติ","remove_all_history":"นำประวัติทั้งหมดออกไหม","remaining":"ที่เหลืออยู่","created_time":"สร้างเวลา","used_time":"เวลาที่ใช้","completed_time":"ครบเวลา","yesterday":"เมื่อวาน","before_yesterday":"{empty}","earlier":"ก่อนหน้านี้","miss_file":"ไฟล์บางไฟล์หายไป","delete_miss_file_task":"มีไฟล์ fome หายไปใน {0}","common_peer":"เพื่อนทั่วไป","ab_peer":"${displayName} เพื่อน","ab_peer_verified":"ยืนยันแล้ว ${displayName} เพียร์","ab_peer_available":"${displayName} เพียร์ที่มีอยู่","alphabiz_accelerating":"${displayName} เร่ง","income":"รายได้","income_info":"รายได้(วันนี้/ทั้งหมด)","total_income_info":"รายได้: {0}(วันนี้) / {1}(ทั้งหมด)","login_to_see_income":"เข้าสู่ระบบเพื่อดูสถิติรายได้","credit_cost":"ต้นทุนเครดิต","downloaded_by_payment":"ดาวน์โหลดโดยการชำระเงิน","file_not_found":"ไม่พบไฟล์นี้ในเครื่อง","no_task":"ไม่มีงาน","no_matched_task":"ไม่มีงานที่ตรงกัน","space_not_enough":"พื้นที่ดิสก์ไม่เพียงพอ","need_more_space":"ต้องการพื้นที่เพิ่ม {0} แต่ดิสก์ปัจจุบันมี {1} ฟรี (สงวน {2}) งานถูกหยุดชั่วคราว การโหลดไลบรารีล่วงหน้าถูกปิดใช้งาน คุณสามารถเปิดใช้งานอีกครั้งได้ใน [การตั้งค่า - ขั้นสูง]","seeders":"เครื่องหยอดเมล็ด","last_update":"การปรับปรุงครั้งล่าสุด","connecting":"กำลังเชื่อมต่อ","connected":"เชื่อมต่อแล้ว","request_timed_out":"คำขอหมดเวลา","connection_failed":"การเชื่อมต่อล้มเหลว","invalid_download_url":"URL ดาวน์โหลดไม่ถูกต้อง","download_link":"ลิ้งค์ดาวน์โหลด","empty_files":"ไม่มีไฟล์ในไดเรกทอรี","duplicate_task":"งานที่ซ้ำกัน","duplicate_tracker":"ตัวติดตามที่ซ้ำกัน","this_task_not_ready":"งานนี้ไม่พร้อม การหยุดงานนี้ชั่วคราวจะเป็นการลบออกโดยตรง","some_task_not_ready":"งานบางอย่างไม่พร้อม การหยุดงานเหล่านี้จะลบออกโดยตรง","failed_to_delete_files":"ลบไฟล์ไม่สำเร็จ","failed_to_delete_files_desc":"ลบบางไฟล์ของงานไม่สำเร็จ คุณอาจต้องลบออกด้วยตนเอง","unknown_error":"ข้อผิดพลาดที่ไม่รู้จัก: {0}","more_files_are_not_shown":"(ไฟล์เพิ่มเติม ${0} ไม่แสดงเนื่องจากเหตุผลด้านประสิทธิภาพ)","no_available_file":"ไม่มีไฟล์ที่ใช้ได้ กรุณารองานพร้อม","service_worker_error":"ไม่สามารถโหลด ServiceWorker เพื่อเล่นได้ เบราว์เซอร์ของคุณอาจไม่รองรับคุณลักษณะนี้ หรือไม่ได้เปิดใช้งาน ServiceWorker คุณอาจต้องโหลดหน้านี้ใหม่แล้วลองอีกครั้ง","add_task_first":"คุณต้องเพิ่มงานก่อน","player_task_time":"ผู้เล่นใช้เวลาหลายวินาทีในการเตรียมตัวสำหรับการเล่น อาจมีบางอย่างผิดปกติกับงาน","web_mode_hint":"โหมดเว็บของ ${displayName} รองรับเฉพาะ WebRTC เพียร์ เพื่อประสบการณ์ที่ดีที่สุด โปรดดาวน์โหลด ${displayName} Desktop App","web_mode_task_hint":"คลิกปุ่มด้านล่างเพื่อเพิ่มงาน คุณสามารถเพิ่มได้ครั้งละหนึ่งงานเท่านั้น","save_to_local":"บันทึกไปยังท้องถิ่น","save_as_zip":"บันทึกเป็น ZIP","creating_save_file":"กำลังสร้างไฟล์บันทึก...","upload_as_one_directory":"อัปโหลดเป็นไดเร็กทอรีเดียว","upload_as_single_files":"อัปโหลดเป็นไฟล์เดียว","web_mode_upload_single":"คุณสามารถอัปโหลดไฟล์เดียวในโหมดเว็บเท่านั้น","download_success":"ดาวน์โหลดสำเร็จ","download_fail":"การดาวน์โหลดล้มเหลว","wait_for_downloaded_to_share":"โปรดรอให้ดาวน์โหลดงานก่อนแชร์","download_with_cellular":"ดาวน์โหลดงานโดยใช้เซลลูลาร์","download_with_cellular_desc":"คุณกำลังใช้เครือข่ายเซลลูลาร์ การดาวน์โหลดงานด้วยเซลลูลาร์อาจมีค่าธรรมเนียมเพิ่มเติมจากผู้ให้บริการของคุณ","download_with_cellular_confirm":"ยังคงดาวน์โหลดด้วยมือถือ","language":"ภาษา","appearance":"รูปร่าง","darkModeSystem":"ระบบ","darkModeLight":"แสงสว่าง","darkModeDark":"มืด","basic_setting":"ขั้นพื้นฐาน","hideMenu":"ซ่อนเมนูแอพ (Windows & Linux เท่านั้น)","autoHide":"ซ่อนหน้าต่างอัตโนมัติ","autoStart":"เปิดที่เข้าสู่ระบบ","restore":"รักษาขนาดและตำแหน่งของหน้าต่างเมื่อออก","autoStartUnfinished":"ดำเนินงานที่ยังไม่เสร็จทั้งหมดต่อโดยอัตโนมัติ","default_download_path":"เส้นทางเริ่มต้น","download_directory":"ดาวน์โหลดไดเรกทอรี","upload_directory":"อัปโหลดไดเร็กทอรี","enable_auto_upload":"เปิดใช้งานการอัปโหลดอัตโนมัติ","unlimit_upload_amount":"ไม่จำกัดจำนวนอัพโหลด","unlimit_upload_warning":"อนุญาตให้อัปโหลดไฟล์จำนวนมาก ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพ","start":"สตาร์ทอัพ","transport_setting":"การแพร่เชื้อ","upload_limit":"ขีดจำกัดการอัปโหลด","download_limit":"ขีดจำกัดการดาวน์โหลด","payed_user_share_rate":"อัตราส่วนแบ่งของผู้ใช้ที่ชำระเงิน","unlimited":"ไม่ จำกัด","limit_input_error":"จำนวนจำกัดควรเป็นค่าบวก","BT_setting":"การตั้งค่างาน","saveLinkSeed":"บันทึกลิงค์เป็นไฟล์งาน","autoDownload":"ดาวน์โหลดลิงค์และเนื้อหาโดยอัตโนมัติ","continuousSeeding":"เก็บเมล็ดไว้จนกว่าจะหยุดด้วยตนเอง","seedSharingRate":"อัตราส่วนเมล็ด","seedTime":"เวลาเมล็ด (นาที)","task_manage":"การจัดการงาน","maximumDownloadNum":"งานที่ใช้งานสูงสุด","maximumConnectionsNum":"การเชื่อมต่อสูงสุดต่อเซิร์ฟเวอร์","range_error":"ช่วงควรอยู่ระหว่าง {0} ถึง {1}","random":"สุ่ม","breakpointContinuation":"ดำเนินการต่อ","automaticSkip":"แสดงการดาวน์โหลดโดยอัตโนมัติหลังจากเพิ่มงาน","afterNotification":"การแจ้งเตือนหลังจากการดาวน์โหลดเสร็จสิ้น","deleteConfirm":"ไม่จำเป็นต้องมีการยืนยันก่อนที่จะลบงาน","submit":"บันทึกและสมัคร","discard":"ทิ้ง","reset":"รีเซ็ต","reset_all_settings":"รีเซ็ตการตั้งค่าทั้งหมดไหม","preferences_resetted":"รีเซ็ตค่ากำหนดแล้ว","traditional_chinese":"จีนดั้งเดิม","japanese":"ญี่ปุ่น","english":"ภาษาอังกฤษ","chinese":"ภาษาจีนตัวย่อ","advancedSettings":"ขั้นสูง","autoUpdate":"อัปเดตอัตโนมัติ","autoCheckUpdate":"ตรวจสอบการอัปเดตโดยอัตโนมัติ","proxy":"หนังสือมอบฉันทะ","useProxyService":"เปิดใช้งานพร็อกซี","trackerService":"เซิร์ฟเวอร์ติดตาม","recommendUse":"ที่แนะนำ","autoUpdateTrackerServiceList":"อัปเดตรายการติดตามทุกวันโดยอัตโนมัติ","manualUpdateTracker":"อัปเดตด้วยตนเอง","manualUpdateSuccess":"อัปเดตเซิร์ฟเวอร์ตัวติดตามสำเร็จแล้ว","manualUpdateFail":"ไม่สามารถอัปเดตจาก:","listenPort":"ฟังพอร์ต","BTlistenPort":"พอร์ตส่งข้อมูล","DHTlistenPort":"แฮชพอร์ตแบบกระจาย","protocols":"โปรโตคอลที่เข้ากันได้","setDefaultClientForFollowingProtocols":"ตั้งเป็นไคลเอนต์เริ่มต้นสำหรับโปรโตคอลต่อไปนี้","magnetUrl":"แม่เหล็ก","video_file":"ไฟล์วิดีโอ","audio_file":"ไฟล์เสียง","security":"ความปลอดภัย","impersonateUserAgent":"จำลอง User-Agent","RPCauthorizationkey":"ความลับของ RPC","viewDocument":"ดูคู่มือลับ RPC","developer":"นักพัฒนา","applicationLogPath":"เส้นทางบันทึกแอป","downloadSessionPath":"ดาวน์โหลดเส้นทางเซสชัน","resetDownloadSessionRecord":"รีเซ็ตเซสชันการดาวน์โหลด","restoreInitialSettings":"รีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน","preferences_set_successfully":"บันทึกค่ากำหนดเรียบร้อยแล้ว!","preferences_set_fail":"บันทึกค่ากำหนดล้มเหลว!","change_not_save":"ไม่ได้บันทึกการเปลี่ยนแปลง","discard_all_changes":"ยกเลิกการเปลี่ยนแปลงทั้งหมดแล้วออกไหม","stay_in_page":"อยู่ในหน้า","disk_usage":"การใช้ดิสก์","pause_if_less_space":"หยุดชั่วคราวและแจ้งเตือนหากพื้นที่ว่างน้อยกว่า (MB)","default_video_player":"เครื่องเล่นวิดีโอเริ่มต้น","video_cache_time":"แคชการเล่นสตรีม","minutes":"นาที","system_default":"ค่าเริ่มต้นของระบบ","media_player":"เครื่องเล่นสื่อ","library_film_rate":"อัตราฟิล์มที่มีอยู่","library_show_explore":"แสดงหน้า [สำรวจ]","library_setting":"การตั้งค่าห้องสมุด","library_sync_setting":"การตั้งค่าการซิงค์ไลบรารี","keychain_sync_status":"สถานะการซิงค์พวงกุญแจ","sync_with_aws":"ซิงค์พวงกุญแจกับ Amazon Web Services","backup_to_local":"สำรองข้อมูลไปยังไฟล์ในเครื่อง","enable_sync_with_aws":"เปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws":"ปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws_desc":"นี่จะเป็นการลบรหัสที่บันทึกไว้ในเซิร์ฟเวอร์ โปรดตรวจสอบว่าคุณได้ส่งออกคีย์ของคุณแล้ว","input_independent_password":"ป้อนรหัสผ่านอิสระ","change_independent_password":"เปลี่ยนรหัสผ่านอิสระ","password_error":"รหัสผ่านผิดพลาด","password_invalid":"รหัสผ่านไม่ถูกต้อง","key_existed":"มีคีย์อยู่","key_not_found":"ไม่พบคีย์","library_recommend":"ห้องสมุดแนะนำ","show_all_channels":"แสดงช่องทั้งหมดในหน้าแนะนำห้องสมุด","not_logged_in":"ไม่ได้เข้าสู่ระบบ","login_to_continue":"เข้าสู่ระบบเพื่อดำเนินการต่อ","mnemonic_code":"รหัสช่วยในการจำ","wordlist":"รายการคำ","restore_code":"กู้คืนจากรหัส","generate_code":"สร้างรหัส","export_mnemonic_code":"ส่งออกรหัสช่วยจำ","import_mnemonic_code":"นำเข้ารหัสช่วยในการจำ","print":"พิมพ์","save_as_txt":"บันทึกเป็น txt","save_as_pdf":"บันทึกเป็น pdf","from_file":"จากไฟล์","not_valid_mnemonic_code":"นี่ไม่ใช่รหัสช่วยจำที่ถูกต้อง","cannot_parse_code_as_key":"ไม่สามารถแยกวิเคราะห์รหัสช่วยจำนี้เป็นรหัสไลบรารี","import_key_hint":"คุณแน่ใจหรือไม่ที่จะนำเข้าคีย์นี้ นี่จะกู้คืนรหัสเก่าของคุณในห้องสมุด","import_key_confirm":"ใช่ นำเข้าเลย","library_preload":"โหลดงานล่วงหน้าจากห้องสมุด","show_preload":"แสดงงานโหลดล่วงหน้า","set_download":"ตั้งค่าไดเร็กทอรีการดาวน์โหลด","set_download_desc":"สำหรับเวอร์ชัน macOS App Store ไดเร็กทอรีการดาวน์โหลดเริ่มต้นจะอยู่ในแซนด์บ็อกซ์ของแอพ และจะถูกลบหลังจากถอนการติดตั้งแอพ หากคุณต้องการเก็บไฟล์ดาวน์โหลด คุณต้องเลือกไดเร็กทอรีดาวน์โหลดอื่นด้วยตนเอง","home":"บ้าน","home_caption":"ดาวน์โหลด/อัพโหลดและไฟล์มีเดีย","library":"ห้องสมุด","library_caption":"สำรวจทรัพยากรสื่อ","player":"ผู้เล่น","player_caption":"เครื่องเล่นสื่อ","credits":"เครดิต","credits_caption":"ตรวจสอบยอดเงินในบัญชี","account":"บัญชี","account_caption":"ลงชื่อเข้าใช้/ลงทะเบียน/การจัดการ","settings":"การตั้งค่า","settings_caption":"การตั้งค่าสำหรับแอพ ผู้เล่น บัญชี","development":"การพัฒนา","development_caption":"โหมดนักพัฒนาสำหรับการใช้งานภายใน","basic":"ขั้นพื้นฐาน","basic_caption":"การตั้งค่าพื้นฐาน","advanced":"ขั้นสูง","advanced_caption":"ตั้งค่าขั้นสูง","blockchain":"กระเป๋าสตางค์","blockchain_caption":"${displayName} กระเป๋าเงินกระจายอำนาจ","internal_notice":"ประกาศการเผยแพร่ภายใน","release_notes":"บันทึกประจำรุ่น","terms_and_conditions":"ข้อกำหนดและเงื่อนไข","license_and_listen_notices":"ใบอนุญาตและฟังประกาศโอเพ่นซอร์ส","close":"ปิด","success":"ความสำเร็จ","fail":"ล้มเหลว","account_email_invalid_address":"ที่อยู่อีเมลที่ไม่ถูกต้อง","account_email_invalid_domain":"โดเมนอีเมลไม่ถูกต้อง","account_email_unknown_status":"สถานะการส่งอีเมลที่ไม่รู้จัก","account_email_unavailable_address":"ที่อยู่อีเมลไม่พร้อมใช้งาน","account_email_suppressed_address":"ที่อยู่อีเมลที่ถูกระงับ","account_loading":"กำลังโหลด...","account_is_required":"ต้องระบุ","account_sign_in_your_account":"เข้าสู่ระบบ","account_username":"ชื่อผู้ใช้","account_username_email_phone":"เบอร์โทรหรืออีเมล์","account_password":"รหัสผ่าน","account_new_password":"รหัสผ่านใหม่","account_re_enter_password":"ป้อนรหัสผ่านอีกครั้ง","account_password_not_equal":"รหัสผ่านสองรหัสไม่เท่ากัน","account_new_password_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","account_forgot_your_password":"ลืมรหัสผ่านหรือไม่?","account_reset_password":"รีเซ็ตรหัสผ่าน","account_sign_in":"เข้าสู่ระบบ","account_signed_in":"ลงทะเบียนเข้า","account_sign_up":"ลงชื่อ","account_find_your_account":"ค้นหาบัญชีของคุณ","account_enter_your_username":"ป้อนหมายเลขโทรศัพท์หรืออีเมลของคุณ","account_search":"ค้นหา","account_email_sent_tip":"อีเมลพร้อมรหัสยืนยันถูกส่งไปยังอีเมลของคุณแล้ว:","account_phone_sent_tip":"SMS พร้อมรหัสยืนยันถูกส่งไปยังโทรศัพท์ของคุณแล้ว:","account_email_phone_sent_tip":"อีเมลและ SMS พร้อมรหัสยืนยันถูกส่งไปยังอีเมลและโทรศัพท์ของคุณตามลำดับแล้ว:","account_software_token_tip":"MFA เปิดใช้งานสำหรับบัญชีของคุณ หากต้องการลงชื่อเข้าใช้ให้เสร็จสิ้น โปรดเปิดหรือดูอุปกรณ์ของคุณและพิมพ์ TOTP","account_reset_your_password":"รีเซ็ตรหัสผ่านของคุณ","account_verification_code":"รหัสยืนยัน","account_resend_code":"ส่งรหัสอีกครั้ง","account_code_has_been_resent":"ส่งรหัสยืนยันแล้ว","account_password_has_been_reset":"รีเซ็ตรหัสผ่านแล้ว","account_submit":"ส่ง","account_sign_up_your_account":"ลงทะเบียนบัญชีของคุณ","account_fill_required_fields":"กรอกข้อมูลในฟิลด์บังคับด้านล่าง","account_fill_optional_fields":"กรอกข้อมูลในฟิลด์ตัวเลือกด้านล่าง","account_email":"อีเมล","account_invitation":"การเชิญ","account_invitation_code":"รหัสการเชิญ","account_i_accept":"ฉันยอมรับ","account_license_terms":"ใบอนุญาตและเงื่อนไข","account_next":"ต่อไป","account_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_verify_fill_optional_fields":"ตรวจสอบและกรอกข้อมูลในช่องเพิ่มเติม","account_nickname":"ชื่อเล่น","account_gender":"เพศ","account_male":"ชาย","account_female":"หญิง","account_not_say":"ไม่พูด","account_birthday":"วันเกิด","account_phone_number":"หมายเลขโทรศัพท์","account_locale":"ท้องถิ่น","account_tip_verified":"ยืนยันแล้ว กำลังลงชื่อเข้าใช้...","account_verified":"ตรวจสอบแล้ว","account_unverified":"ไม่ได้รับการยืนยัน","account_signed_up":"ลงทะเบียน","account_verify_your_identity":"ยืนยันตัวตนของคุณ","account_finish":"เสร็จ","account_signed_out":"ออกจากระบบ","account_change_password":"เปลี่ยนรหัสผ่าน","account_change_email":"เปลี่ยนอีเมล","account_change_phone_number":"เปลี่ยนหมายเลขโทรศัพท์","account_sign_out":"ออกจากระบบ","account_current_password":"รหัสผ่านปัจจุบัน","account_re_enter_new_password":"ป้อนรหัสผ่านใหม่","account_personal_information":"ข้อมูล","account_edit":"แก้ไข","account_reset":"รีเซ็ต","account_greeting":"สวัสดี,","account_cancel":"ยกเลิก","account_change":"เปลี่ยน","account_not_set":"ไม่ได้ตั้งค่า","account_setting":"การตั้งค่า","account_copy_code":"คัดลอกรหัส","account_account_setting":"บัญชี","account_task_page":"งานสินเชื่อ","account_setting_caption":"เปลี่ยนรหัสผ่าน / แก้ไขข้อมูล","account_security":"ความปลอดภัย","account_want_to_join":"ต้องการเข้าร่วมหรือไม่","account_sign_in_now":"เข้าสู่ระบบ","account_changed":"เปลี่ยน","account_clipboard_with_invitation_code":"คัดลอกรหัสคำเชิญแล้ว","account_clipboard_with_code":"คัดลอกรหัสแล้ว","account_invitation_code_dialog_tip":"คุณจะส่งอีเมลหรือข้อความถึงเพื่อนพร้อมรหัสคำเชิญ:","account_available":"มีอยู่","account_invited":"เชิญ","account_used":"ใช้แล้ว","account_invitation_code_sent":"ส่งรหัสคำเชิญแล้ว","account_invitation_channel_required":"กรอกช่องเชิญอย่างน้อยหนึ่งช่อง","account_no_verification_code":"ไม่สามารถรับรหัสยืนยันได้?","account_no_phone_number":"ไม่มีหมายเลขโทรศัพท์?","account_sign_up_by_email":"ลงทะเบียนทางอีเมล","account_no_email":"ไม่มีอีเมล?","account_sign_up_by_phone_number":"ลงทะเบียนด้วยหมายเลขโทรศัพท์","account_no_totp":"ไม่มีทีโอที?","account_tip_no_totp":"หากไม่มี TOTP ให้ตั้งค่า TOTP ก่อน","account_setup_totp":"ตั้งค่า TOTP","account_contact_information":"ข้อมูลติดต่อ","account_delete_account":"ลบบัญชี","account_deleted":"ลบแล้ว","account_can_not_mfa":"MFA มีปัญหา?","account_set_mfa_type":"กำหนดค่า MFA","account_disable_mfa":"ปิดใช้งาน MFA","account_disabled_mfa":"MFA พิการ","account_sms_mfa":"SMS มฟ","account_totp_mfa":"ทีโอที สพม","account_totp":"ทีโอพี","account_not_recommend":"ไม่แนะนำ","account_oauth_sign_in_with":"ลงชื่อเข้าใช้ด้วย {provider}","account_sign_in_failed":"ลงชื่อเข้าใช้ไม่สำเร็จ","account_tip_oath_sign_up":"อีเมลที่เกี่ยวข้องกับบัญชี {provider} ปัจจุบัน: {email} ยังไม่ได้สร้างบัญชี","account_tip_confirm_delete_account":"ป้อนรหัสผ่านบัญชีปัจจุบันเพื่อยืนยันว่าคุณต้องการลบบัญชีปัจจุบัน (บัญชีที่ถูกลบไม่สามารถกู้คืนได้)","account_tip_config_mfa":"คุณสามารถเลือกใช้ SMS หรือรหัสผ่านครั้งเดียวตามเวลา (TOTP) เป็นการรับรองความถูกต้องรอง","account_error_can_not_enable_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน MFA","account_tip_can_not_enable_sms_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน SMS MFA","account_tip_can_not_enable_totp_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน TOTP MFA","account_tip_setup_totp":"ใช้แอพ เช่น Authenticator เพื่อสแกนรหัส QR ด้านล่างหรือคัดลอกรหัสด้วยตนเองเพื่อเพิ่มโทเค็นความปลอดภัย","account_tip_verify_totp":"ตรวจสอบ TOTP ของคุณ","account_link_your_social_account":"ผูกบัญชีโซเชียลของคุณ","account_unlink_your_social_account":"ยกเลิกการผูกบัญชีโซเชียล","account_tip_confirm_link":"คุณแน่ใจหรือไม่ว่าต้องการผูกบัญชีปัจจุบันกับบัญชี {provider} ของคุณ?","account_tip_confirm_unlink":"แน่ใจไหมว่าจะยกเลิกบัญชี {provider} ที่ผูกไว้","account_tip_linking":"ผูกพัน...","account_tip_unlinking":"ไม่ผูกพัน...","account_linked":"ผูกพัน","account_unlinked":"หลุด","account_error_can_not_link_to_the_linked_account":"บัญชีโซเชียลปัจจุบันเชื่อมโยงกับบัญชีอื่น","account_error_can_not_link_to_the_mismatched_email":"บัญชีปัจจุบันและที่อยู่อีเมลบัญชีโซเชียลไม่สอดคล้องกัน","account_error_can_not_link_before_email_verified":"ไม่สามารถเชื่อมโยงบัญชีโซเชียลได้เนื่องจากบัญชีปัจจุบันไม่ได้เชื่อมโยงกับอีเมลที่ยืนยันแล้ว","account_tip_confirm_verify_email_phone":"จะส่งรหัสยืนยันไปยังอีเมลและหมายเลขโทรศัพท์ของบัญชีปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_tip_confirm_verify_phone":"จะส่งรหัสยืนยันไปยังหมายเลขโทรศัพท์ปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_error_1_message_60_seconds":"สามารถส่ง SMS หรืออีเมลได้เพียง 1 ฉบับทุกๆ 60 วินาที โปรดรออีก {delta} วินาที","account_error_10_messages_per_day":"โทรศัพท์มือถือหรืออีเมลแต่ละเครื่องสามารถส่งข้อความได้ 10 ข้อความภายใน 24 ชั่วโมง","account_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","Network Error":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","account_error_user_not_exist":"ไม่มีผู้ใช้","account_error_incorrect_username_or_password":"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง","account_error_incorrect_original_password":"รหัสผ่านเดิมไม่ถูกต้อง","account_error_incorrect_password":"รหัสผ่านผิดพลาด","account_error_username_not_found":"ไม่พบชื่อผู้ใช้","account_error_can_not_reset_for_no_verified":"ไม่สามารถรีเซ็ตรหัสผ่านสำหรับบัญชีที่ไม่ได้รับการยืนยัน","account_error_invalid_verification_code":"รหัสยืนยันไม่ถูกต้อง โปรดลองอีกครั้ง","account_error_expired_verification_code":"รหัสยืนยันหมดอายุ โปรดลองอีกครั้ง","account_error_password_not_long_enough":"รหัสผ่านยาวไม่พอ","account_error_attempt_limit_exceeded":"เกินขีดจำกัดความพยายาม โปรดลองอีกครั้งในภายหลัง","account_error_password_attempts_exceeded":"เกินความพยายามรหัสผ่าน","account_error_invalid_phone_number_format":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_error_no_cell_phone_prefix":"โปรดเลือกคำนำหน้าสำหรับหมายเลขโทรศัพท์","account_error_username_already_exists":"ชื่อผู้ใช้นี้มีอยู่แล้ว","account_error_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_error_inactive_code":"รหัสเชิญไม่ใช่รหัสเปิดใช้งาน","account_error_non_existent_code":"รหัสเชิญไม่มีอยู่จริง","account_error_unexpected":"ข้อผิดพลาดที่ไม่คาดคิด","account_error_can_not_change_email_before_phone_bound":"เปลี่ยนอีเมลก่อนผูกเบอร์โทรไม่ได้","account_error_can_not_change_email_before_unbound_social_account":"ไม่สามารถเปลี่ยนอีเมลได้ก่อนที่จะยกเลิกการเชื่อมโยงบัญชีโซเชียล","account_error_can_not_change_phone_before_email_bound":"เปลี่ยนเบอร์โทรก่อนอีเมลผูกมัดไม่ได้","account_error_can_not_change_email_phone_with_mfa_enabled":"ไม่สามารถเปลี่ยนอีเมลหรือหมายเลขโทรศัพท์มือถือก่อนปิดใช้งาน MFA","account_error_not_supported_yet":"ไม่รองรับชั่วคราว","account_error_same_email":"ที่อยู่อีเมลใหม่ต้องไม่เหมือนกับที่อยู่อีเมลเดิม","account_error_same_phone":"หมายเลขโทรศัพท์ใหม่ต้องไม่ซ้ำกับหมายเลขโทรศัพท์เดิม","account_error_email_not_exists":"ไม่มีที่อยู่อีเมล","account_error_email_already_exists":"มีบัญชีที่ใช้อีเมลที่ระบุอยู่แล้ว","account_error_phone_already_exists":"มีบัญชีที่ใช้หมายเลขโทรศัพท์ที่ระบุอยู่แล้ว","account_error_mfa_token_mismatch":"รหัสโทเค็นของซอฟต์แวร์ไม่ตรงกัน","account_error_recaptcha_not_loaded":"มีปัญหากับเครือข่าย โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_recaptcha_validation_failed":"การตรวจสอบ ReCAPTCHA ล้มเหลว โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_sign_in_in_progress":"กำลังพยายามลงชื่อเข้าใช้ที่รอดำเนินการอยู่","account_field_range":"จำกัดการป้อนอักขระ {0}-{1} ตัว","account_field_only_alphanumeric":"รองรับเฉพาะตัวอักษรและตัวเลขเท่านั้น","account_field_only_alphanumeric_and_symbol":"รองรับเฉพาะตัวอักษรและตัวเลขและสัญลักษณ์เท่านั้น","account_field_only_chinese_alphanumeric_space_underline":"รองรับเฉพาะตัวอักษร ตัวเลข เว้นวรรค ขีดล่าง","account_field_prefix_without_number_space":"อักขระตัวแรกไม่สามารถเป็นตัวเลขหรือช่องว่างได้","account_field_suffix_without_space":"ไม่สามารถลงท้ายด้วยช่องว่าง","account_field_without_repeat_space":"ไม่สามารถใช้หลายช่องว่างในแถว","account_field_can_not_only_alphanumeric":"คุณไม่สามารถใช้ตัวอักษรหรือตัวเลขได้","account_field_must_have_number_characters":"ต้องมีอักขระตัวเลข","account_field_verification_code":"รหัสยืนยันต้องเป็นตัวเลขหกหลัก","account_field_invitation_code":"รหัสเชิญต้องเป็นตัวอักษรและตัวเลข","account_field_phone_number":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_invalid_email_format":"รูปแบบอีเมลไม่ถูกต้อง","account_sign_out_confirm":"คุณแน่ใจหรือที่จะออกจากระบบ? สิ่งนี้จะหยุดงานทั้งหมด","account_sign_out_anyway":"ออกจากระบบต่อไป","account_signing_out":"กำลังออกจากระบบ...","account_request_save_settings":"ไม่ได้บันทึกการตั้งค่า คุณต้องบันทึกการเปลี่ยนแปลงก่อนออกจากระบบ","pay":"จ่าย","pay_with_credit":"จ่ายสำหรับการเร่งความเร็วการดาวน์โหลด ต้องการเครดิตประมาณ {0}","pay_with_credit_payed":"กำลังเร่ง ยังคงต้องการเครดิตประมาณ {0}","create_payment":"สร้างการชำระเงิน","pay_target":"เป้า","pay_for_torrent":"จ่าย ${0}","your_subid":"รหัสย่อยของคุณ","your_credits":"เครดิตของคุณ","pay_point_for_data":"จ่ายคะแนน {0} สำหรับข้อมูล {1}","auto_renew":"เปิดใช้งานการต่ออายุอัตโนมัติ","transaction_details":"รายละเอียดการทำธุรกรรม","transaction_id":"รหัส","transaction_payer":"ผู้ชำระเงิน","transaction_payee":"ผู้รับเงิน","transaction_category":"หมวดหมู่","transaction_changed_amount":"จำนวนเงินที่เปลี่ยนแปลง","transaction_meta":"เมตา","transaction_status":"สถานะ","transaction_creation_time":"เวลาในการสร้าง","receipt_code":"รหัสใบเสร็จ","transfer_amount":"ยอดโอน","code_the_receipt_code":"คัดลอกรหัสใบเสร็จด้านล่างไปยังผู้ชำระเงิน","fill_the_receipt_code":"โอนเงินโดยกรอกรหัสการชำระเงินที่ผู้รับเงินให้ไว้","expense":"ค่าใช้จ่าย","copied":"คัดลอก","transfer":"โอนย้าย","receive":"รับ","copy":"สำเนา","withdraw_fund":"ถอนเงิน","category_paydata_payer":"ค่าใช้จ่ายของข้อมูล","category_paydata_payee":"รายได้ของข้อมูล","category_transfer":"โอนย้าย","category_bonus":"โบนัส","category_recharge":"เติมเงิน","status_pending":"รอดำเนินการ","status_completed":"สมบูรณ์","status_finish":"เสร็จ","status_failed":"ล้มเหลว","tip_invalid_receiver":"รหัสผู้รับไม่ถูกต้อง","tip_invalid_amount":"จำนวนเครดิตควรเป็นแบบลอยตัวในช่วง 0-1000 (ความแม่นยำขั้นต่ำคือ 0.001)","credit_get_more":"รับเครดิตมากขึ้น","credit_no_data":"ไม่มีข้อมูลที่สามารถใช้ได้","credit_loading":"กำลังโหลด...","credit_not_enough_amount":"เครดิตไม่เพียงพอ","credit_amount_not_enough":"เครดิตไม่เพียงพอ","credit_payee_not_exist":"ไม่มีผู้รับเงิน","credit_invalid_amount":"จำนวนเครดิตไม่ถูกต้อง","credit_can_not_transfer_to_yourself":"ไม่สามารถโอนเป็นของตนเองได้","credit_latest":"ล่าสุด","credit_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","add_subtitles":"เพิ่มคำบรรยาย","open_file":"เปิดไฟล์...","advanced_options":"ตัวเลือกขั้นสูง","title":"ชื่อ","location":"ที่ตั้ง","subtitle_file":"ไฟล์คำบรรยาย","unsupported_subtitle_type":"ประเภทไฟล์ {0} ไม่ใช่ประเภทคำบรรยายที่รองรับ","not_default_player":"ไม่ได้ตั้งค่าเครื่องเล่นวิดีโอเริ่มต้น","this_is_an_audio_file":"นี่คือไฟล์เสียง","the_added_subtitle_already_exists":"มีคำบรรยายที่เพิ่มเข้ามาแล้ว","stop_stream_player":"สื่อการสตรีมถูกยกเลิกเนื่องจากงานถูกหยุดชั่วคราวหรือถูกลบ","stop_player":"เครื่องเล่นถูกยกเลิกเนื่องจากไฟล์ถูกลบ","playing_timeout_hint":"หมดเวลารอ กรุณาตรวจสอบงาน","autoplay_hint":"การเล่นอัตโนมัติอาจถูกบล็อกโดยเบราว์เซอร์ของคุณ หากผู้เล่นไม่ได้เล่น ให้ลองคลิกที่หน้าจอเพื่อดำเนินการต่อ","remove_playing_confirm":"{0} ยังเล่นอยู่ ลบออกจะหยุดเล่น แน่ใจหรือว่าจะเอาออก?","unsupported_in_browser":"ยังไม่รองรับโหมดเบราว์เซอร์","client":"ลูกค้า","warning":"คำเตือน","enable":"เปิดใช้งาน","disable":"ปิดการใช้งาน","auto":"อัตโนมัติ","encrypt_connection":"เข้ารหัสการเชื่อมต่อ","encrypted_connection":"การเชื่อมต่อที่เข้ารหัส","non_encrypted_connection":"การเชื่อมต่อที่ไม่ได้เข้ารหัส","connected_wires_not_disconnect":"สายที่เชื่อมต่อจะไม่ถูกตัดการเชื่อมต่อ","audio":"เสียง","video":"วิดีโอ","image":"ภาพ","subtitle":"คำบรรยาย","zip":"ซิป","text":"ข้อความ","unknown":"ไม่ทราบ","add":"เพิ่ม","undo":"เลิกทำ","backup":"การสำรองข้อมูล","not_default_app":"${displayName} ไม่ใช่แอปเริ่มต้นของคุณสำหรับทอร์เรนต์และสื่อ คุณต้องการตั้งค่าเป็นค่าเริ่มต้นหรือไม่","dont_show_again":"ไม่ต้องแสดงอีก","go_to_settings":"ไปที่การตั้งค่า","about_alphabiz":"ประมาณ ${displayName}","last_check_at":"ตรวจครั้งล่าสุดเมื่อ","update_channel":"อัพเดทช่อง","check_for_update":"ตรวจสอบสำหรับการปรับปรุง","checking_for_update":"กำลังตรวจสอบการอัปเดต...","no_update_available":"ไม่มีการอัพเดท","update_available":"มีการปรับปรุง","update_now":"อัพเดทเลย","update_later":"อัปเดตในภายหลัง","click_to_update":"คลิกปุ่ม UPDATE NOW เพื่อดาวน์โหลดและอัปเดต","update_failed":"การอัพเดทล้มเหลว","update_failed_message":"เกิดข้อผิดพลาดขณะอัปเดต:","check_shasum_failed":"ตรวจสอบความสมบูรณ์ของตัวติดตั้งไม่สำเร็จ","downloading_update":"กำลังดาวน์โหลดอัปเดต...","ready_to_update":"พร้อมอัพเดท","restart_to_update":"ดาวน์โหลดการอัปเดตแล้ว ${displayName} จะออกจากการอัปเดตสักครู่","already_latest":"เวอร์ชันปัจจุบัน ({0}) เป็นเวอร์ชันล่าสุดแล้ว","update_timeout":"หมดเวลาอัปเดต","no_available_release":"ไม่มีรุ่นที่วางจำหน่าย","no_available_installer":"ไม่มีตัวติดตั้งที่ใช้ได้","feedback":"ข้อเสนอแนะ","select_a_type":"เลือกประเภท","category":"หมวดหมู่","select_a_category":"เลือกหมวดหมู่","require_title":"ต้องระบุชื่อเรื่อง","describe_your_problem":"อธิบายปัญหาของคุณ","report_a_bug":"รายงานข้อผิดพลาด","request_a_new_feature":"ขอคุณสมบัติใหม่","download_or_upload":"ดาวน์โหลด/อัพโหลด","others":"คนอื่น","submit_with_system_info":"ส่งพร้อมข้อมูลระบบ","submit_feedback":"ส่งความคิดเห็น","tweet_us":"ทวีตหาเรา","tweet_too_long":"ทวีตยาวเกินไป","delete_characters":"โปรดลบอักขระอย่างน้อย {0} ตัว","rest_characters":"คุณสามารถป้อนอักขระได้อีก {0} ตัว","update_alphabiz":"อัปเดต ${displayName}","current_version":"รุ่นปัจจุบัน","cancel_update":"ยกเลิกการปรับปรุง","slow_download_speed":"ดาวน์โหลดช้าเกินไป","slow_download_speed_caption":"การดาวน์โหลดตัวติดตั้งช้าเกินไปในขณะนี้ กรุณาตรวจสอบสถานะเครือข่าย","update_canceled":"ยกเลิกการอัปเดตแล้ว","current_version_release_time":"เวลาวางจำหน่ายของเวอร์ชันปัจจุบัน","expired_app":"${displayName} หมดอายุ","version_out_of_date":"เวอร์ชันล้าสมัย","have_to_update":"เวอร์ชัน ${displayName} ล้าสมัย โปรโตคอลหรือ API บางอย่างเลิกใช้แล้ว คุณต้องอัปเดต ${displayName} ก่อนดำเนินการต่อ","exit_alphabiz":"ออกจาก ${displayName}","exit_and_update":"ออกและใช้การอัปเดต","new_version_hint":"มีเวอร์ชันใหม่","no_new_version":"ไม่มีเวอร์ชั่นใหม่","current_is_latest":"เวอร์ชันปัจจุบันเป็นเวอร์ชันล่าสุดแล้ว","click_to_check_update":"คลิกปุ่ม [ตรวจสอบการอัปเดต] เพื่อตรวจสอบการอัปเดต","download_latest_version_from_website":"โปรดไปที่เว็บไซต์อย่างเป็นทางการเพื่อดาวน์โหลดเวอร์ชันล่าสุด","to_the_website":"ไปที่เว็บไซต์","network_diagnotic":"การวินิจฉัยเครือข่าย","diagnotic":"การวินิจฉัย","click_to_check":"คลิกเพื่อตรวจสอบ","click_to_check_again":"คลิกเพื่อตรวจสอบอีกครั้ง","checking":"กำลังตรวจสอบ","online":"ออนไลน์","offline":"ออฟไลน์","dns_look_up":"การค้นหา DNS","error":"ข้อผิดพลาด","aws_service":"บริการของ AWS","network_pings":"เครือข่ายปิง","not_found":"ไม่พบ","packet_loss":"การสูญเสียแพ็คเก็ต","official_site":"เว็บไซต์อย่างเป็นทางการ","download_test":"ดาวน์โหลดแบบทดสอบ","test_task":"งานทดสอบ {0}","download_failed":"การดาวน์โหลดล้มเหลว","second_spend":"การใช้จ่าย ${0}","open_default_player_failed":"ไม่สามารถเปิดโปรแกรมเล่นเริ่มต้นได้","copied_to_clipboard":"คัดลอกไปที่คลิปบอร์ดแล้ว","go_to":"ไปที่","region_not_available":"ภูมิภาคไม่พร้อมใช้งาน","region_not_available_message":"ขอโทษ! ภูมิภาคของคุณไม่สามารถใช้แอพนี้ได้ แอปนี้จะออกหลังจาก {0} วินาที","confirm":"ยืนยัน","no_available_result":"ไม่มีผลลัพธ์","invalid_password_format":"รูปแบบรหัสผ่านไม่ถูกต้อง","invalid_password_format_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","error_password":"รหัสผ่านผิดพลาด","keychain_setting":"พวงกุญแจ","setting_description":"ที่เก็บข้อมูลบนคลาวด์: บันทึกข้อมูลสำคัญไปยังคลาวด์\\nเปลี่ยนรหัสผ่าน: เปลี่ยนรหัสผ่านสำหรับคีย์ไลบรารีสื่อ\\nช่วยในการจำ: วิธีอื่นสำหรับการสร้างและกู้คืนคีย์\\nนำเข้ารหัสภายในเครื่อง: นำเข้ารหัสที่บันทึกไว้ในเครื่องไปยังไลบรารีสื่อ\\nคีย์ส่งออก: บันทึกข้อมูลไลบรารีสื่อปัจจุบันลงในเครื่องหรือระบบคลาวด์\\nคีย์สำรองไปยังคลาวด์: อัปเดตข้อมูลไลบรารีสื่อปัจจุบันไปยังคลาวด์เพื่อสำรองข้อมูล","refresh_status":"อัปเดตสถานะ","confirm_import_key":"ยืนยันคีย์นำเข้า","confirm_update_cloud_key":"คุณมีรหัสในระบบคลาวด์แล้ว การอัปเดตคีย์จะเขียนทับคีย์เดิม คุณแน่ใจหรือไม่ว่าต้องการอัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","export_key_with_cloud":"ป้อนรหัสผ่านอิสระที่คุณตั้งไว้เพื่อส่งออกคีย์ไลบรารีที่จัดเก็บไว้ในระบบคลาวด์ และล็อคไฟล์คีย์ด้วยรหัสผ่านปลดล็อค","store_cloud_key_prompt_password":"ป้อนรหัสผ่านอิสระเพื่อจัดเก็บรหัสห้องสมุดในระบบคลาวด์","update_cloud_key_prompt_password":"ตั้งรหัสผ่านอิสระเพื่อเข้ารหัสคีย์ไลบรารี จากนั้นอัปเดตไปยังระบบคลาวด์","enable_cloud_storage_prompt_password":"ตั้งรหัสผ่านสำหรับคีย์ที่จัดเก็บไว้ในคลาวด์ ซึ่งคุณสามารถดึงคีย์จากคลาวด์ได้","input_unlock_password":"ตั้งรหัสผ่านปลดล็อค","export_local_prompt_password":"โปรดตั้งรหัสผ่านปลดล็อคเพื่อเข้ารหัสไฟล์คีย์ของคุณ เราจะไม่บันทึกรหัสผ่านนี้ให้คุณ ดังนั้นหากคุณทำรหัสผ่านหาย คุณจะไม่สามารถปลดล็อกรหัสห้องสมุดของคุณได้","require_unlock_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","require_independent_password":"ป้อนรหัสผ่านอิสระเพื่อรับรหัสที่จัดเก็บไว้ในระบบคลาวด์","import_local_prompt_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","select_encrypt_mode":"เลือกโหมดการเข้ารหัส","update_cloud_key":"อัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","backup_to_cloud":"สำรองคีย์ไลบรารีไปยังระบบคลาวด์","save_local":"บันทึกคีย์ไลบรารีเป็นไฟล์เข้ารหัสในเครื่อง","create_new_key":"สร้างรหัสห้องสมุดใหม่","creating_lib_key":"กำลังสร้างรหัสห้องสมุด...","loading_lib_key":"กำลังโหลดรหัสห้องสมุด...","failed_to_create_lib_key":"สร้างรหัสห้องสมุดไม่สำเร็จ","failed_to_load_lib_key":"โหลดรหัสห้องสมุดไม่สำเร็จ","import_local_key":"นำเข้าคีย์ในเครื่อง","import_lib_key_from_local":"นำเข้าคีย์ไลบรารีในเครื่อง","import_from_cloud":"นำเข้ารหัสห้องสมุดจากระบบคลาวด์","create_or_import_key":"สร้างหรือนำเข้ารหัสห้องสมุด","create_or_import_key_desc":"คีย์ไลบรารีเป็นคีย์อิสระที่ใช้ในการดึงข้อมูลและเผยแพร่เนื้อหาด้วยฐานข้อมูลแบบกระจายอำนาจ","store_your_lib_key":"เก็บรหัสห้องสมุดของคุณ","export_cloud_key":"ส่งออกคีย์จากคลาวด์","export_current_key":"ส่งออกคีย์ปัจจุบัน","change_password":"เปลี่ยนรหัสผ่าน","enable_cloud_storage":"เปิดใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage":"ปิดการใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage_desc":"การปิดใช้ที่เก็บข้อมูลบนคลาวด์จะลบคีย์ที่บันทึกไว้ในคลาวด์ โปรดตรวจสอบให้แน่ใจว่าคีย์นั้นบันทึกไว้ในเครื่อง","sync_at":"ซิงค์ที่: {time}","cloud_storage_enabled":"ซิงค์พวงกุญแจกับ {storage}","cloud_storage_disabled":"ที่เก็บข้อมูลบนคลาวด์ถูกปิดใช้งาน","saved_locally":"บันทึกไว้ในเครื่อง","export_key":"ส่งออกไฟล์คีย์","cloud_independent_password":"รหัสผ่านอิสระบนคลาวด์","key_file_unlock_password":"รหัสผ่านปลดล็อคไฟล์ที่สำคัญ","re_enter_unlock_password":"ป้อนรหัสผ่านปลดล็อคอีกครั้ง","independent_password_not_enabled":"รหัสผ่านปัจจุบันคือรหัสผ่านบัญชี Alphabiz (ไม่ได้ตั้งรหัสผ่านอิสระ)","use_cognito_hash":"ใช้รหัสผ่านบัญชี Alphabiz","use_independent_password":"ใช้รหัสผ่านอิสระ","keychain_lib":"กุญแจห้องสมุด","loading_keychain_state":"กำลังโหลดพวงกุญแจ...","backing_up":"สำรอง...","backup_current_key":"สำรองคีย์ปัจจุบันไปยัง Cloud","cloud_lib_key_not_existed":"รหัสห้องสมุดไม่มีอยู่ในคลาวด์","open_keychain_file":"เปิดไฟล์พวงกุญแจ","confirm_open_abk":"คุณต้องการเปิดไฟล์ ABK หรือไม่","use_the_key":"ใช้กุญแจ","backup_the_key":"สำรองคีย์ไปยังคลาวด์","keychain_data_does_not_exist":"ไม่มีข้อมูลพวงกุญแจ","timeout of 0ms exceeded":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","XhrError":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","payer credit amount is not enough":"เครดิตไม่เพียงพอ","payee does not exist":"ไม่มีผู้รับเงิน","block_list_manage":"จัดการรายการบล็อก","blocked_users":"ผู้ใช้ที่ถูกบล็อก","blocked_channels":"ช่องที่ถูกบล็อก","unblock_user":"ผู้ใช้ยกเลิกการปิดกั้น","unblock_channel":"เลิกบล็อกช่อง","no_blocked_user":"ไม่มีผู้ใช้ที่ถูกบล็อก","no_blocked_channel":"ไม่มีช่องที่ถูกบล็อก","field_required":"จำเป็นต้องมี {0}","setting":"การตั้งค่า","unknown_media":"สื่อที่ไม่รู้จัก","settings_button_visible":"ปุ่มที่มองเห็นได้","settings_setting":"การตั้งค่า","settings_playback_rate":"อัตราการเล่น","settings_subtitle":"คำบรรยาย","settings_pip":"ปี๊บ","settings_fullscreen":"เต็มจอ","settings_subtitle_options":"ตัวเลือกคำบรรยาย","settings_normal":"ปกติ","settings_italic":"ตัวเอียง","settings_lighter":"ไฟแช็ก","settings_bolder":"โดดเด่นยิ่งขึ้น","settings_small":"เล็ก","settings_large":"ใหญ่","about":"เกี่ยวกับ","services":"บริการ","hide":"ซ่อน","hide_others":"ซ่อนอื่น ๆ","show_all":"แสดงทั้งหมด","quit":"ล้มเลิก","edit":"แก้ไข","redo":"ทำซ้ำ","cut":"ตัด","paste":"แปะ","select_all":"เลือกทั้งหมด","view":"ดู","reload":"โหลดใหม่","toggle_full_screen":"สลับโหมดเต็มหน้าจอ","toggle_developer_tools":"สลับเครื่องมือสำหรับนักพัฒนา","window":"หน้าต่าง","minimize":"ย่อเล็กสุด","bring_all_to_front":"นำทั้งหมดมาไว้ข้างหน้า","help":"ช่วย","github_repo":"Github Repo","issues":"ปัญหา","learn_more":"เรียนรู้เพิ่มเติม","learn_spelling":"เรียนรู้การสะกดคำ","lookup_selection":"ค้นหา \\"{selection}\\"","search_with_google":"ค้นหาด้วย Google","save_as":"บันทึกเป็น","save_image":"บันทึกภาพ","save_image_as":"บันทึกภาพเป็น ...","copy_link":"คัดลอกลิงค์","save_link_as":"บันทึกลิงค์เป็น ...","copy_image":"คัดลอกรูปภาพ","copy_image_as":"คัดลอกรูปภาพเป็น ...","copy_image_address":"คัดลอกที่อยู่รูปภาพ","download_complete":"ดาวน์โหลดเสร็จสิ้น","download_complete_message":"ดาวน์โหลด {0} แล้ว","is_running":"{0} กำลังดำเนินการ","open":"เปิด {0}","launch_problem":"ปัญหาการเปิดตัว","ask_clear_data":"ดูเหมือนว่าคุณกำลังพยายามเปิด {0} แต่ล้มเหลวหลายครั้ง\\nคุณต้องการล้างข้อมูลแอปทั้งหมดแล้วลองเปิดใช้งานในภายหลังหรือไม่","launch_directly":"เปิดตัวโดยตรง","clear_all_data":"ล้างข้อมูลทั้งหมด","ask_clear_confirm":"การดำเนินการนี้จะลบการกำหนดค่า บันทึก และข้อมูลผู้ใช้ทั้งหมด!\\nหลังจากนี้ คุณอาจต้องเปิดใช้ {0} อีกครั้ง\\nคุณแน่ใจว่าจะล้างข้อมูลหรือไม่","confirm_launch":"ไม่ เปิดใช้โดยตรง","confirm_clear":"ใช่ ล้างข้อมูลทั้งหมด"}')},"41c7":function(e,t){e.exports={mode:"committee",admins:["FQi3UfsB5zY7SSfLMPdl9Fdh7_EeM4og0ZGivp4tfJU.yXhvCAmmUz1Pw9-Iwhf9hpo9-H4WDHwezzRAGE5Oipk","an_id_of_admin","an_id_of_other_admin"]}},"44ce":function(e){e.exports=JSON.parse('{"lib_index":"Casa","lib_edit":"Pubblicare","lib_publish":"Pubblicare","lib_explore":"Esplorare","lib_following":"Seguente","lib_favorite":"Preferiti locali","lib_local_favorites":"Preferiti locali","lib_channel":"Canale","lib_submit":"Invia","lib_from_network":"Utilizzo di database decentralizzati dalla rete","welcome_to_lib":"Benvenuto nella libreria multimediale ${displayName}","register_or_login":"Registrati/Accedi","lib_recommend":"Consiglia","lib_recommend_desc":"Benvenuto nella libreria ${displayName}! Questa libreria utilizza un database decentralizzato dalla rete. Per iniziare a usarlo, devi seguire alcuni canali.","follow_any_channel_to_continue":"Segui qualsiasi canale per continuare","follow_channels_and_continue":"Segui i canali {0} e continua","show_more_for_me":"Mostra di più per me","no_more_recommend":"Non più raccomandare","key":"Chiave","create_key":"Crea chiave","save_key":"Salva chiave","save_key_file":"Vuoi salvare la tua chiave come file?","import_key":"Chiave di importazione","import":"Importare","invalid_key":"Chiave non valida","back_to_top":"Torna in cima","search_for_channel":"Cerca ID canale","search_channel_no_result":"Impossibile trovare il canale con ID {0}","please_input_channel_id":"Inserisci l\'ID del canale","welcome_help_text":"Questa è una libreria multimediale decentralizzata. Hai bisogno\\n per creare un account per questo database. Noi\\n generare automaticamente una chiave personale per te.\\n Se hai già avuto una chiave, puoi anche importare\\n qui.","welcome_key_text":"Una volta effettuato l\'accesso, fare clic sul pulsante [SALVA CHIAVE].\\n nell\'angolo in basso a destra per salvare la tua chiave privata.\\n Se perdi la tua chiave, potresti non essere in grado di accedere nuovamente.","redirect_to_recommend":"Sembra che tu non abbia seguito nessun canale. Reindirizzamento alla pagina [Esplora].","channel":"Canale","follow":"Seguire","unfollow":"Smetti di seguire","following":"Seguente","share":"Condividere","unfollow_confirm":"Sei sicuro di smettere di seguire questo canale? Tutti i post di questo canale nella tua cronologia verranno rimossi.","follow_failed_hint":"L\'operazione è ancora in sospeso in background. Se l\'operazione non viene applicata per molto tempo, riavviare l\'app e riprovare.","block":"Bloccare","unblock":"Sbloccare","blocked":"Bloccato","block_channel":"Blocca questo canale","block_channel_confirm":"Blocca il canale lo rimuoverà dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","block_creator":"Blocca il creatore di questo canale","unblock_creator":"Sblocca il creatore di questo canale","block_creator_confirm":"Blocca creatore rimuoverà tutti i canali creati da questo creatore dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","share_url_copied":"L\'URL di condivisione viene copiato negli appunti","follow_time":"Segui il tempo","update_time":"Tempo di aggiornamento","search":"Ricerca","type":"Tipo","added":"Aggiunto","click_to_task":"Fare clic per andare all\'attività","lib_already_added":"Hai già aggiunto questo video","description":"Descrizione","poster":"Manifesto","channel_poster":"Manifesto del canale","preview":"Anteprima","creator":"Creatore","creator_detail":"Dettaglio del creatore","loading_creator":"Caricamento delle informazioni sull\'autore","wait_for_creator_loaded":"Attendi il caricamento delle informazioni sul creatore.","follower":"Seguace","followers":"Seguaci","follower_list":"Elenco seguaci","user":"Utente","channel_title":"Titolo del canale","channel_id":"Canale ID","post_title":"Titolo del post","post_id":"Post ID","import_data_from_excel":"Importa dati da excel","set_excel_keys":"Imposta chiavi excel","excel_import_succeded":"L\'importazione di Excel è riuscita","excel_import_success_msg":"{0} le righe sono pronte per essere aggiunte, {1} non valide e {2} gli elementi duplicati vengono ignorati","cannot_find_channel":"Impossibile trovare il canale","cannot_find_posts":"Impossibile trovare i post","add_channel":"Aggiungi canale","add_post":"Aggiungi post","edit_channel":"Modifica canale","channel_setting":"Impostazione del canale","edit_post":"Modifica post","edit_posts":"Modifica post","channel_detail":"Dettaglio del canale","remove":"Rimuovere","remove_channel":"Rimuovi canale","remove_channel_confirm":"Sei sicuro di rimuovere questo post? Questo non può essere recuperato.","remove_post":"Rimuovi messaggio","remove_post_confirm":"Sei sicuro di rimuovere questo canale? Questo non può essere recuperato.","preview_mode":"Modalità anteprima","preview_mode_desc":"Questa è un\'anteprima del tuo canale. Tutte le tariffe dei film sono mostrate qui.","edit_user_profile":"Modifica profilo utente","name":"Soprannome","avatar":"Avatar","no_following":"Nessun canale successivo. Clicca per andare a","no_recommend":"Nessun canale consigliato. Clicca per andare a","first_recomment_msg":"Potrebbe volerci un po\' se questa è la prima volta che l\'app viene avviata.","invalid_image":"Immagine non valida","image_not_reachable":"L\'URL di questa immagine non è raggiungibile.","channel_not_found":"Canale non trovato","cannot_get_channel_info":"Impossibile ottenere informazioni sul canale. Questo canale potrebbe essere rimosso dal suo creatore e non essere più disponibile.","validate_error":"Convalida errore","validate_user_name_no_space":"Il nome utente non deve contenere spazi","validate_url_no_space":"L\'URL non deve contenere spazi","validate_user_name_length":"Il nome utente deve avere una lunghezza compresa tra {0} e {1}","validate_user_desc_length":"La descrizione dell\'utente non deve contenere più di {0} caratteri","validate_user_avatar_url":"L\'avatar dell\'utente deve essere un URL con meno di 2048 caratteri","validate_channel_title_length":"Il titolo del canale deve avere una lunghezza compresa tra 1 e 100","validate_channel_desc_length":"La descrizione del canale deve avere una lunghezza compresa tra 10 e 300","validate_channel_image_url":"L\'anteprima del canale deve essere un URL con meno di 2048 caratteri","validate_post_title_length":"Il titolo del post deve avere una lunghezza compresa tra 1 e 100","validate_post_desc_length":"La descrizione del post dovrebbe avere una lunghezza compresa tra 10 e 300","validate_post_image_url":"Il poster deve essere un URL con meno di 2048 caratteri","validate_post_url":"URL ${displayName} non valido","validate_post_url_length":"${displayName} L\'URL non deve superare i 2048 caratteri","film_rate":"Tasso di film","set_film_rate":"Imposta la velocità del film","select_a_rate_before_enter":"È necessario selezionare una tariffa film prima di accedere alla libreria multimediale.","library_available_rate":"Tasso di film disponibile in biblioteca","rate_g":"G – Udienze generali","rate_g_desc":"Ammesse tutte le età. Niente che possa offendere i genitori per la visione da parte dei bambini.","rate_pg":"PG - Suggerimenti per la guida dei genitori","rate_pg_desc":"Alcuni materiali potrebbero non essere adatti ai bambini. I genitori hanno esortato a dare \\"una guida dei genitori\\". Può contenere del materiale che i genitori potrebbero non gradire per i loro figli piccoli.","rate_pg_13":"PG-13 – Genitori fortemente avvertiti","rate_pg_13_desc":"Alcuni materiali potrebbero essere inappropriati per i bambini sotto i 13 anni. I genitori sono invitati a essere cauti. Alcuni materiali potrebbero non essere adatti ai preadolescenti.","rate_r":"R – Limitato","rate_r_desc":"I minori di 17 anni richiedono un genitore accompagnatore o un tutore adulto. Contiene del materiale per adulti. I genitori sono invitati a saperne di più sul film prima di portare con sé i loro figli piccoli.","rate_nc_17":"NC-17 – Solo per adulti","rate_nc_17_desc":"Nessuno sotto i 17 anni ammesso. Chiaramente adulto. I bambini non sono ammessi.","set_as_private":"Imposta come privato","hide_in_explore":"Nascondi questo canale nella pagina Esplora","hidden":"Nascosto","select_a_rate":"Seleziona una tariffa per il film","select_from_tasks":"Seleziona dalle attività","import_from_magnet":"Importazione da magnete:?...","input_magnet_url":"Magnete di ingresso:? URL","task_title":"Titolo dell\'attività","set_title":"Imposta titolo","add_to_local_favorites":"Aggiungi ai preferiti locali","remove_from_local_favorites":"Rimuovi dai preferiti locali","removed_favorite":"Preferito rimosso","import_or_export_favorites":"Importa/esporta preferiti","export_local_favorites":"Esporta i preferiti locali come backup","import_favorites_file":"Importa il file dei preferiti","not_a_favorite_file":"Questo file non è un file di backup preferito","connection_status":"Stato della connessione","gun_server_list":"Nodi di cache","custom_nodes":"Nodi di cache personalizzati","custom_nodes_hint":"I nodi di cache personalizzati verranno applicati dopo il riavvio dell\'app","wait_for_reboot":"In attesa di riavvio...({seconds}s)","reboot_now":"Riavvia ora","reboot_later":"Riavvia in seguito","peer_list":"Nodi diretti","server":"URL del nodo","peer":"Pari","peer_id":"ID nodo","connection":"Connessione","data_source":"Fonte di dati","sync":"Sincronizza","syncing":"Sincronizzazione","sync_completed":"Sincronizzazione completata","got_all_post":"Hai già tutti i post","placeholder_channel_title":"Il nome del tuo canale","placeholder_channel_desc":"Descrizione di questo canale","placeholder_post_title":"Nome film (anno)","placeholder_post_desc":"Descrizione di questo film","private_channel":"Canale privato","creator_blocked":"Creatore bloccato","go_to_library":"Vai in biblioteca?","go_to_library_channel_msg":"Vuoi andare al canale della biblioteca {0}?","magnet_does_not_have_name":"Questo magnete:? url non ha un nome, devi prima aggiungere un titolo al post.","no_available_post":"Nessun post disponibile","following_channel_no_post":"Tutti i tuoi canali seguenti non hanno post disponibili. Ciò potrebbe essere causato da un errore di rete. Se hai già seguito alcuni canali, i post potrebbero essere caricati in seguito.","share_to_library":"Condividi nella libreria","quick_start":"Avvio rapido","quick_start_desc":"Inizia a creare un post con un\'attività o un file","select_file":"Seleziona il file...","select_folder":"Seleziona cartella...","post_options":"Posta opzioni","channel_options":"Opzioni canale","create_new_channel":"Crea nuovo canale","use_existed_channel":"Usa canale esistente","select_existed_channel":"Seleziona il canale esistente","uploaded_by":"{title} caricato da {name}","created_by":"{title} creato da {name}","creating_new_channel":"Creazione nuovo canale...","created_new_channel":"Nuovo canale creato","creating_new_post":"Creazione nuovo post...","created_new_post":"Nuovo post creato","create_new_post":"Crea nuovo post","quick_start_timeout":"{0} timeout. Ciò potrebbe essere causato da un errore di rete. Per favore riprova più tardi.","file_too_large":"File troppo grande","file_too_large_msg":"Questo file è più grande di 4 GB ({size}) e potrebbe richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di continuare?","resolving_folder_files":"Risoluzione dei file delle cartelle...","folder_too_large":"Cartella troppo grande","folder_too_large_msg":"I file in questa cartella sono più grandi di 4 GB ({size} in totale) e potrebbero richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di caricare?","creating_new_task":"Creazione nuova attività...","cannot_create_task":"Impossibile creare l\'attività","cannot_create_task_msg":"Questo può causare qualche errore. Se l\'attività è stata creata correttamente, puoi controllare l\'elenco delle attività in un secondo momento.","cannot_get_task_name":"Impossibile ottenere il nome dell\'attività. Devi prima inserirne uno.","remove_old_task":"Rimuovi la vecchia attività","remove_old_task_desc":"La modalità Web può creare solo un\'attività alla volta. Vuoi rimuovere la vecchia attività?","subtitle_list":"Elenco dei sottotitoli","optional":"opzionale","with_subtitle":"Con sottotitoli {language}","maximumSubtitleNum_limit":"Il numero di sottotitoli ha raggiunto il massimo","add_subtitle_url":"Aggiungi il link per il download dei sottotitoli","cannot_add_subtitle":"Impossibile aggiungere i sottotitoli","cannot_add_subtitle_msg":"Lingua dei sottotitoli non selezionata o collegamento per il download non valido.","support_subtitle_type":"Sono supportati solo i sottotitoli in formato srt e vtt.","recommend_opensubtitles":"Si consiglia di utilizzare il collegamento o l\'ID per il download dei sottotitoli su www.opensubtitles.org.","take_down":"Prendere nota","serious_violation":"Violazione grave","copyright_disputes":"Controversie sul copyright","adults_only":"Solo adulti","takedown_reason":"Motivo della rimozione","takedown_mode":"Modalità abbattimento","admins":"Amministratori","takedown_user":"Rimuovi questo creatore","takedown_channel":"Rimuovi questo canale","takedown_post":"Rimuovi questo post","select_takedown_reason":"Seleziona il motivo della rimozione","takedown_invalid_reason":"Motivo della rimozione non valido","takedown_invalid_user_id":"ID utente non valido. L\'ID deve includere 87 caratteri","takedown_invalid_channel_id":"ID canale non valido. L\'ID deve includere 20 caratteri","takedown_invalid_post_id":"ID post non valido. L\'ID deve includere 20 caratteri","takedown_management":"Abbatti la gestione","users":"Utenti","channels":"Canali","posts":"Messaggi","you":"Voi","preset":"Preimpostato","admin":"Amministratore","committee":"Comitato","about_takedown_mode":"Informazioni sulla modalità di rimozione:\\nPredefinito: configurato nel repository github. Verranno tutti rimossi dalla libreria.\\nAmministratore: tutti i voti degli amministratori verranno rimossi.\\nComitato: almeno la metà degli amministratori che votano a favore verrà rimossa.","cannot_edit_preset":"Non puoi modificare questa riga poiché è una riga preimpostata","cannot_edit_not_vote":"Non puoi modificare questa riga perché non l\'hai votata","remove_vote":"Rimuovi il tuo voto","post_preload_failed":"Impossibile precaricare questo post. Il link per il download potrebbe non essere aggiornato, quindi questo post non può essere riprodotto immediatamente.","about_cache_node":"Informazioni sul nodo della cache","edit_cache_node":"Modifica il nodo della cache","create_cache_node":"Crea nodo cache","about_cache_node_desc":"${displayName} utilizza il server della pistola come nodo della cache. È possibile modificare i nodi personalizzati nelle impostazioni anticipate","learn_how_to_deploy_gun":"Scopri come distribuire il tuo server di armi","repeat_add":"L\'attività è stata aggiunta, non aggiungerla di nuovo","upload":"Caricamento","download":"Scaricamento","delete":"Eliminare","delete_task":"Elimina attività","delete_confirm_message":"Eliminare questa attività? Questo è irrevocabile","also_delete_files":"Elimina anche i file","default_delete_files":"Per impostazione predefinita, elimina i file scaricati dopo aver rimosso l\'attività","not_now":"Non adesso","delete_autoupload_confirm":"Questa attività contiene il file inserito nella directory di caricamento automatico. Elimina questa attività eliminerà anche il file.","delete_anyway":"Elimina comunque","upload_too_many_files":"Carica troppi file","ask_if_unlimit_upload_amount":"La directory di caricamento automatico contiene troppi file. Vuoi disabilitare la limitazione della quantità di upload? *Ciò potrebbe causare problemi di prestazioni","disable_limitation":"Disabilita limitazione","not_length":"L\'operazione su più file non è attualmente supportata, si prega di collaborare","download_torrent":"Download file","upload_torrent":"Caricare un file","files":"File","file":"File","folder":"Cartella","start_all":"Inizia tutto","pause_all":"Metti in pausa tutto","remove_all":"Rimuovi tutto","upload_all":"Carica tutto","clear_history":"Cancellare la cronologia","pause_all_finish_payments":"Questo terminerà tutti i pagamenti.","accelerating":"Accelerando","link_task":"Attività di collegamento","torrent_task":"Attività di archiviazione","ok":"OK","cancel":"Annulla","download_directory_position":"Scarica la posizione della directory","torrent_file":"file di attività","magnetic_link_incorrect":"Il formato del collegamento non è corretto","delete_fail":"Elimina fallita","pause":"Pausa","paused":"In pausa","stop_torrent":"Fermare","seed":"Seme","resume":"Riprendere","downloading":"Download","downloaded":"Scaricato","uploading":"Caricamento in corso","auto_uploading":"Caricamento automatico","uploaded":"Caricato","pending":"In attesa di altri compiti","verifying":"Verifica","waiting_for_verify":"In attesa di verifica","seeding":"Semina","completed":"Completato","status":"Stato","task_name":"Nome dell\'attività","size":"Misurare","progress":"Progresso","sort":"Ordinare","ascending":"Ascendente","descending":"Discendente","file_loading":"Caricamento file...","loading":"Caricamento","unknown_status":"Sconosciuto","play_while_downloading":"Giocare...","upload_or_play":"Carica / Riproduci","play":"Giocare","ask_if_upload_file":"Caricare un file?","ask_if_upload_or_play":"Caricare o riprodurre file?","torrent_error":"Errore durante l\'aggiunta dell\'attività:","no_peers":"Riprova per più di {0} volte e nessun peer è disponibile","torrent_exists":"L\'attività esiste già.","show_origin_torrent":"Ottieni il file o l\'URL dell\'attività originale","show_directory":"Apri la directory di questo torrent","task_num":"Compiti","total_upload_speed":"Velocità di caricamento","total_download_speed":"Velocità di download","path_missing":"Errore: impossibile trovare il percorso del torrent","origin_not_found":"Impossibile trovare le informazioni sull\'attività di origine.","text_copied":"L\'URL Magnum viene copiato negli appunti","copy_magnet_uri":"Copia magnete:? URI","copy_download_uri":"Copia l\'URI di download","copy_share_uri":"Copia l\'URI di condivisione","uri_copied":"L\'URI è stato copiato con successo negli appunti","uri_copy_failed":"Impossibile copiare l\'URI","more":"Di più...","toggle_list_mode":"Attiva/disattiva la modalità elenco","comment":"commento","operations":"Operazioni","open_directory":"Apri rubrica","no_downloading_task":"Nessuna attività di download","remove_all_downloading_tasks":"Rimuovere tutte le attività di download?","remove_all_upload_tasks":"Rimuovere tutte le attività di caricamento?","remove_autoupload_files":"Rimuovi i file di caricamento automatico","remove_all_history":"Rimuovere tutta la cronologia?","remaining":"Residuo","created_time":"Tempo creato","used_time":"Tempo utilizzato","completed_time":"Tempo completato","yesterday":"Ieri","before_yesterday":"{empty}","earlier":"Prima","miss_file":"Mancano alcuni file","delete_miss_file_task":"Ci sono file fome mancanti in {0}.","common_peer":"Pari comune","ab_peer":"${displayName} peer","ab_peer_verified":"Peer ${displayName} verificato","ab_peer_available":"${displayName} peer disponibili","alphabiz_accelerating":"${displayName} in accelerazione","income":"Reddito","income_info":"Reddito(oggi/totale)","total_income_info":"Entrate: {0}(oggi) / {1}(totale)","login_to_see_income":"Accedi per vedere le statistiche sul reddito","credit_cost":"Costi del credito","downloaded_by_payment":"Scaricato da Payments","file_not_found":"Impossibile trovare questo file in locale","no_task":"Non chiedere","no_matched_task":"Nessuna attività corrispondente","space_not_enough":"Lo spazio su disco non è sufficiente","need_more_space":"Hai bisogno di {0} di spazio in più ma il disco corrente ha {1} liberi ({2} riservati). Le attività sono sospese. Il precaricamento della libreria è disabilitato. Puoi riattivarlo in [Impostazioni - Avanzate].","seeders":"Seminatrici","last_update":"Ultimo aggiornamento","connecting":"Collegamento","connected":"Collegato","request_timed_out":"Tempo scaduto per la richiesta","connection_failed":"Connessione fallita","invalid_download_url":"URL di download non valido","download_link":"Link per scaricare","empty_files":"Nessun file nella directory","duplicate_task":"Compito duplicato","duplicate_tracker":"Tracker duplicato","this_task_not_ready":"Questa attività non è pronta. Metti in pausa questa attività la rimuoverà direttamente.","some_task_not_ready":"Alcune attività non sono pronte. Mettere in pausa queste attività le rimuoverà direttamente.","failed_to_delete_files":"Impossibile eliminare i file","failed_to_delete_files_desc":"Impossibile eliminare alcuni file dell\'attività. Potrebbe essere necessario eliminarli manualmente","unknown_error":"Errore sconosciuto: {0}","more_files_are_not_shown":"({0} altri file non vengono visualizzati per motivi di prestazioni)","no_available_file":"Nessun file disponibile. Attendere che l\'attività sia pronta.","service_worker_error":"Impossibile caricare ServiceWorker per giocare. Il tuo browser potrebbe non supportare questa funzione o ServiceWorker non è attivato. Potrebbe essere necessario ricaricare questa pagina e riprovare.","add_task_first":"Devi prima aggiungere l\'attività.","player_task_time":"Il giocatore impiega troppi secondi a prepararsi per il gioco. Potrebbe esserci qualcosa di sbagliato nell\'attività.","web_mode_hint":"La modalità web di ${displayName} supporta solo peer WebRTC. Per un\'esperienza migliore, scarica l\'app desktop ${displayName}.","web_mode_task_hint":"Fai clic sui pulsanti sottostanti per aggiungere un\'attività. Puoi aggiungere solo un\'attività alla volta.","save_to_local":"Salva in locale","save_as_zip":"Salva come CAP","creating_save_file":"Creazione del file di salvataggio...","upload_as_one_directory":"Carica come un\'unica directory","upload_as_single_files":"Carica come file singoli","web_mode_upload_single":"Puoi caricare un solo file in modalità web","download_success":"Scarica con successo","download_fail":"Scaricamento fallito","wait_for_downloaded_to_share":"Attendere il download dell\'attività prima di condividerla.","download_with_cellular":"Scarica le attività utilizzando il cellulare","download_with_cellular_desc":"Stai utilizzando una rete cellulare. Le attività di download con cellulare potrebbero richiedere costi aggiuntivi da parte del tuo operatore.","download_with_cellular_confirm":"Scarica ancora con il cellulare","language":"Lingua","appearance":"Aspetto","darkModeSystem":"Sistema","darkModeLight":"Leggero","darkModeDark":"Buio","basic_setting":"Di base","hideMenu":"Nascondi menu app (solo Windows e Linux)","autoHide":"Nascondi automaticamente la finestra","autoStart":"Apri al login","restore":"Mantieni le dimensioni e la posizione della finestra quando esci","autoStartUnfinished":"Riprendi automaticamente tutte le attività non completate","default_download_path":"Percorso predefinito","download_directory":"Scarica Rubrica","upload_directory":"Carica directory","enable_auto_upload":"Abilita il caricamento automatico","unlimit_upload_amount":"Quantità di caricamento illimitata","unlimit_upload_warning":"Consenti il ​​caricamento di grandi quantità di file. Ciò potrebbe causare problemi di prestazioni","start":"Avviare","transport_setting":"Trasmissione","upload_limit":"Limite di caricamento","download_limit":"Limite di download","payed_user_share_rate":"Tasso di condivisione degli utenti a pagamento","unlimited":"Illimitato","limit_input_error":"Il numero limite deve essere positivo","BT_setting":"Impostazioni attività","saveLinkSeed":"Salva collegamento come file attività","autoDownload":"Scarica automaticamente link e contenuti","continuousSeeding":"Continua a seminare finché non lo interrompi manualmente","seedSharingRate":"Rapporto seme","seedTime":"Tempo di semina (minuti)","task_manage":"Gestione dei compiti","maximumDownloadNum":"Attività attive massime","maximumConnectionsNum":"Connessione massima per server","range_error":"L\'intervallo dovrebbe essere compreso tra {0} e {1}","random":"casuale","breakpointContinuation":"Continua","automaticSkip":"Mostra automaticamente il download dopo aver aggiunto l\'attività","afterNotification":"Notifica dopo il completamento del download","deleteConfirm":"Non è richiesta alcuna conferma prima di eliminare l\'attività","submit":"Salva e applica","discard":"Scartare","reset":"Ripristina","reset_all_settings":"Resettare tutte le impostazioni?","preferences_resetted":"Preferenze ripristinate","traditional_chinese":"cinese tradizionale","japanese":"giapponese","english":"Inglese","chinese":"Cinese semplificato","advancedSettings":"Avanzate","autoUpdate":"Auto Update","autoCheckUpdate":"Controlla automaticamente l\'aggiornamento","proxy":"Delega","useProxyService":"Abilita proxy","trackerService":"Server di monitoraggio","recommendUse":"Consigliato","autoUpdateTrackerServiceList":"Aggiorna automaticamente l\'elenco dei tracker ogni giorno","manualUpdateTracker":"Aggiornamento manuale","manualUpdateSuccess":"Aggiorna correttamente i server del tracker","manualUpdateFail":"Impossibile aggiornare da:","listenPort":"Ascolta Porti","BTlistenPort":"Porta di trasmissione dati","DHTlistenPort":"Porta hash distribuita","protocols":"Protocolli compatibili","setDefaultClientForFollowingProtocols":"Imposta come client predefinito per i seguenti protocolli","magnetUrl":"Magnete","video_file":"File video","audio_file":"Fascicolo audio","security":"Sicurezza","impersonateUserAgent":"Agente utente fittizio","RPCauthorizationkey":"Segreto RPC","viewDocument":"Visualizza il manuale segreto RPC","developer":"Sviluppatore","applicationLogPath":"Percorso del registro dell\'app","downloadSessionPath":"Scarica il percorso della sessione","resetDownloadSessionRecord":"Reimposta sessione di download","restoreInitialSettings":"Ripristino delle impostazioni di fabbrica","preferences_set_successfully":"Salva le preferenze con successo!","preferences_set_fail":"Il salvataggio delle preferenze fallisce!","change_not_save":"Modifiche non salvate","discard_all_changes":"Annullare tutte le modifiche e andarsene?","stay_in_page":"Rimani nella pagina","disk_usage":"Uso del disco","pause_if_less_space":"Metti in pausa e notifica se lo spazio è inferiore a (MB)","default_video_player":"Lettore video predefinito","video_cache_time":"Cache di riproduzione in streaming","minutes":"minuti","system_default":"Default del sistema","media_player":"Media Player","library_film_rate":"Tasso di film disponibile","library_show_explore":"Mostra la pagina [Esplora].","library_setting":"Impostazione della libreria","library_sync_setting":"Impostazione della sincronizzazione della libreria","keychain_sync_status":"Stato di sincronizzazione del portachiavi","sync_with_aws":"Sincronizza il portachiavi con Amazon Web Services","backup_to_local":"Backup su file locale","enable_sync_with_aws":"Abilita la sincronizzazione con AWS","disable_sync_with_aws":"Disabilita la sincronizzazione con AWS","disable_sync_with_aws_desc":"Questo rimuoverà la chiave salvata nel server. Assicurati di aver già esportato la tua chiave.","input_independent_password":"Immettere una password indipendente","change_independent_password":"Cambia password indipendente","password_error":"Password errata","password_invalid":"password non valida","key_existed":"La chiave esisteva","key_not_found":"Chiave non trovata","library_recommend":"Libreria consigliata","show_all_channels":"Mostra tutti i canali nella pagina dei consigli della biblioteca","not_logged_in":"Accesso non effettuato","login_to_continue":"Accedi per continuare","mnemonic_code":"Codice mnemonico","wordlist":"Elenco di parole","restore_code":"Ripristina da codice","generate_code":"Genera codice","export_mnemonic_code":"Esporta codice mnemonico","import_mnemonic_code":"Importa il codice mnemonico","print":"Stampa","save_as_txt":"Salva come txt","save_as_pdf":"Salva come pdf","from_file":"Dal file","not_valid_mnemonic_code":"Questo non è un codice mnemonico valido","cannot_parse_code_as_key":"Impossibile analizzare questo codice mnemonico come chiave di libreria","import_key_hint":"Sei sicuro di importare questa chiave? Questo ripristinerà la tua vecchia chiave nella libreria.","import_key_confirm":"Sì, importalo.","library_preload":"Precarica le attività dalla libreria","show_preload":"Mostra le attività di precarico","set_download":"Imposta la directory di download","set_download_desc":"Per la versione macOS App Store, la directory di download predefinita si trova nella sandbox dell\'app e verrà eliminata dopo la disinstallazione dell\'app. Se desideri conservare i file di download, devi selezionare manualmente una directory di download diversa.","home":"Casa","home_caption":"Download/caricamento e file multimediali","library":"Biblioteca","library_caption":"Esplora le risorse multimediali","player":"Giocatore","player_caption":"Media Player","credits":"Crediti","credits_caption":"Controlla il saldo del conto","account":"Account","account_caption":"Accedi/Registrati/Gestisci","settings":"Impostazioni","settings_caption":"Impostazioni per app, lettore, account","development":"Sviluppo","development_caption":"Modalità sviluppatore per uso interno","basic":"Di base","basic_caption":"Impostazioni di base","advanced":"Avanzate","advanced_caption":"Impostazioni avanzate","blockchain":"Portafoglio","blockchain_caption":"${displayName} Portafoglio decentralizzato","internal_notice":"Avviso di rilascio interno","release_notes":"Note di rilascio","terms_and_conditions":"Termini e Condizioni","license_and_listen_notices":"Licenza e ascolto Avvisi open source","close":"Vicino","success":"Successo","fail":"Fallire","account_email_invalid_address":"indirizzo email non valido","account_email_invalid_domain":"Dominio e-mail non valido","account_email_unknown_status":"Stato di recapito email sconosciuto","account_email_unavailable_address":"Indirizzo email non disponibile","account_email_suppressed_address":"Indirizzo email soppresso","account_loading":"Caricamento...","account_is_required":"è obbligatorio","account_sign_in_your_account":"Registrazione","account_username":"Nome utente","account_username_email_phone":"Numero di telefono o e-mail","account_password":"Parola d\'ordine","account_new_password":"Nuova password","account_re_enter_password":"Reinserire la password","account_password_not_equal":"Due password non sono uguali","account_new_password_same":"La password è la stessa della password originale","account_forgot_your_password":"Hai dimenticato la password?","account_reset_password":"Resetta la password","account_sign_in":"Registrazione","account_signed_in":"Registrato in","account_sign_up":"Iscrizione","account_find_your_account":"Trova il tuo account","account_enter_your_username":"Inserisci il tuo numero di telefono o email","account_search":"Ricerca","account_email_sent_tip":"Un\'email con un codice di verifica è stata inviata alla tua email:","account_phone_sent_tip":"Un SMS con un codice di verifica è stato inviato al tuo telefono:","account_email_phone_sent_tip":"L\'e-mail e l\'SMS con il codice di verifica sono stati inviati rispettivamente alla tua e-mail e al tuo telefono:","account_software_token_tip":"MFA è abilitato per il tuo account. Per terminare l\'accesso, accendi o visualizza il tuo dispositivo e digita il TOTP","account_reset_your_password":"reimposta la tua password","account_verification_code":"Codice di verifica","account_resend_code":"Codice di rispedizione","account_code_has_been_resent":"Il codice di verifica è stato inviato di nuovo","account_password_has_been_reset":"La password è stata reimpostata","account_submit":"Invia","account_sign_up_your_account":"Registra il tuo account","account_fill_required_fields":"Compila i campi richiesti di seguito.","account_fill_optional_fields":"Compila i campi facoltativi di seguito.","account_email":"E-mail","account_invitation":"Invito","account_invitation_code":"Codice invito","account_i_accept":"Accetto","account_license_terms":"la licenza e le condizioni","account_next":"Prossimo","account_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini.","account_verify_fill_optional_fields":"Verifica e compila i campi facoltativi.","account_nickname":"Soprannome","account_gender":"Genere","account_male":"Maschio","account_female":"Femmina","account_not_say":"Non dire","account_birthday":"Compleanno","account_phone_number":"Numero di telefono","account_locale":"Locale","account_tip_verified":"Verificato, accesso...","account_verified":"verificato","account_unverified":"non verificato","account_signed_up":"Iscritto","account_verify_your_identity":"Verifica la tua identità","account_finish":"Fine","account_signed_out":"Disconnesso","account_change_password":"Cambiare la password","account_change_email":"Cambia email","account_change_phone_number":"Cambia numero di telefono","account_sign_out":"disconnessione","account_current_password":"Password attuale","account_re_enter_new_password":"Reinserire la nuova password","account_personal_information":"Informazione","account_edit":"modificare","account_reset":"Ripristina","account_greeting":"Ciao,","account_cancel":"Annulla","account_change":"modifica","account_not_set":"non impostato","account_setting":"collocamento","account_copy_code":"copiare il codice","account_account_setting":"Account","account_task_page":"Attività di credito","account_setting_caption":"Cambia password / Modifica informazioni","account_security":"Sicurezza","account_want_to_join":"Voglio aderire?","account_sign_in_now":"Registrazione","account_changed":"Cambiato","account_clipboard_with_invitation_code":"Codice invito copiato","account_clipboard_with_code":"Il Codice copiato","account_invitation_code_dialog_tip":"Invierai al tuo amico un\'e-mail o un messaggio di testo con un codice di invito:","account_available":"disponibile","account_invited":"invitato","account_used":"usato","account_invitation_code_sent":"Il codice di invito è stato inviato","account_invitation_channel_required":"Compila almeno un canale di invito","account_no_verification_code":"Non riesci a ricevere il codice di verifica?","account_no_phone_number":"Nessun numero di telefono?","account_sign_up_by_email":"Iscriviti tramite e-mail","account_no_email":"Nessuna e-mail?","account_sign_up_by_phone_number":"Iscriviti per numero di telefono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se non è presente TOTP, impostare prima TOTP","account_setup_totp":"Imposta TOTP","account_contact_information":"Informazioni sui contatti","account_delete_account":"Eliminare l\'account","account_deleted":"Eliminato","account_can_not_mfa":"MFA nei guai?","account_set_mfa_type":"Configurazione MFA","account_disable_mfa":"Disabilita l\'autenticazione a più fattori","account_disabled_mfa":"AMF disabilitato","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOP","account_not_recommend":"Non consigliato","account_oauth_sign_in_with":"Accedi con {provider}","account_sign_in_failed":"Impossibile accedere","account_tip_oath_sign_up":"L\'e-mail corrispondente all\'attuale account {provider}: {email} non ha ancora creato un account","account_tip_confirm_delete_account":"Immettere la password dell\'account corrente per confermare che si desidera eliminare l\'account corrente. (Gli account eliminati non possono essere ripristinati)","account_tip_config_mfa":"Puoi scegliere di utilizzare SMS o password monouso basata sul tempo (TOTP) come autenticazione secondaria","account_error_can_not_enable_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'MFA","account_tip_can_not_enable_sms_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'autenticazione a più fattori SMS","account_tip_can_not_enable_totp_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare TOTP MFA","account_tip_setup_totp":"Usa app come Authenticator per scansionare il codice QR qui sotto o copia il codice manualmente per aggiungere un token di sicurezza","account_tip_verify_totp":"Verifica il tuo TOTP","account_link_your_social_account":"Associa il tuo account social","account_unlink_your_social_account":"Scollega account social","account_tip_confirm_link":"Sei sicuro di voler associare l\'account corrente al tuo account {provider}?","account_tip_confirm_unlink":"Sei sicuro di cancellare il tuo account {provider} associato?","account_tip_linking":"legame...","account_tip_unlinking":"Non vincolante...","account_linked":"Limite","account_unlinked":"Non legato","account_error_can_not_link_to_the_linked_account":"L\'attuale account social è associato a un altro account","account_error_can_not_link_to_the_mismatched_email":"L\'account corrente e l\'indirizzo email dell\'account social non sono coerenti","account_error_can_not_link_before_email_verified":"L\'account social non può essere collegato perché l\'account corrente non è associato a un\'e-mail verificata","account_tip_confirm_verify_email_phone":"Se inviare un codice di verifica all\'e-mail e al numero di telefono dell\'account corrente per verificare la tua identità?","account_tip_confirm_verify_phone":"Se inviare un codice di verifica al numero di telefono corrente per verificare la tua identità?","account_error_1_message_60_seconds":"È possibile inviare un solo SMS o e-mail ogni 60 secondi, attendere altri {delta} secondi","account_error_10_messages_per_day":"Ogni telefono cellulare o e-mail può inviare solo 10 messaggi entro 24 ore","account_error_network":"Si è verificato un problema con la rete, riprova più tardi","Network Error":"Si è verificato un problema con la rete, riprova più tardi","account_error_user_not_exist":"l\'utente non esiste","account_error_incorrect_username_or_password":"nome utente o password errati","account_error_incorrect_original_password":"Password originale errata","account_error_incorrect_password":"password errata","account_error_username_not_found":"Nome utente non trovato","account_error_can_not_reset_for_no_verified":"Impossibile reimpostare la password per l\'account non verificato","account_error_invalid_verification_code":"Codice di verifica errato, riprova","account_error_expired_verification_code":"Codice di verifica scaduto, riprova","account_error_password_not_long_enough":"La password non è abbastanza lunga","account_error_attempt_limit_exceeded":"Limite di tentativi superato, riprova dopo un po\' di tempo.","account_error_password_attempts_exceeded":"Tentativi password superati.","account_error_invalid_phone_number_format":"Formato del numero di telefono non valido","account_error_no_cell_phone_prefix":"Seleziona il prefisso per il numero di telefono","account_error_username_already_exists":"Il nome utente esiste già","account_error_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini","account_error_inactive_code":"Il codice di invito non è un codice attivato","account_error_non_existent_code":"Il codice di invito è inesistente","account_error_unexpected":"Errore inaspettato","account_error_can_not_change_email_before_phone_bound":"L\'e-mail non può essere modificata prima che il numero di telefono sia associato","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail non può essere modificata prima di annullare l\'associazione dell\'account social","account_error_can_not_change_phone_before_email_bound":"Il numero di telefono non può essere modificato prima che l\'e-mail sia vincolata","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossibile modificare l\'e-mail o il numero di cellulare prima di disabilitare l\'MFA","account_error_not_supported_yet":"Attualmente non supportato","account_error_same_email":"Il nuovo indirizzo email non può essere uguale all\'indirizzo email originale","account_error_same_phone":"Il nuovo numero di telefono non può essere uguale al numero di telefono originale","account_error_email_not_exists":"L\'indirizzo email non esiste","account_error_email_already_exists":"Esiste già un account con l\'indirizzo email indicato.","account_error_phone_already_exists":"Esiste già un account con il numero di telefono indicato.","account_error_mfa_token_mismatch":"Codice token software non corrispondente","account_error_recaptcha_not_loaded":"C\'è un problema con la rete. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_recaptcha_validation_failed":"Convalida ReCAPTCHA non riuscita. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_sign_in_in_progress":"Tentativo di accesso in sospeso già in corso","account_field_range":"Limita l\'immissione di {0}-{1} caratteri","account_field_only_alphanumeric":"Supporta solo caratteri alfanumerici","account_field_only_alphanumeric_and_symbol":"Supporta solo caratteri alfanumerici e simboli","account_field_only_chinese_alphanumeric_space_underline":"Supporta solo caratteri alfanumerici, spazio, trattino basso","account_field_prefix_without_number_space":"Il primo carattere non può essere un numero o uno spazio","account_field_suffix_without_space":"Non può terminare con uno spazio","account_field_without_repeat_space":"Non è possibile utilizzare più spazi di seguito","account_field_can_not_only_alphanumeric":"Non puoi usare solo lettere o numeri","account_field_must_have_number_characters":"Deve contenere caratteri numerici","account_field_verification_code":"Il codice di verifica deve essere di sei cifre","account_field_invitation_code":"Il codice di invito deve essere alfanumerico","account_field_phone_number":"Formato del numero di telefono non valido","account_invalid_email_format":"formato email non valido","account_sign_out_confirm":"Sei sicuro di uscire? Questo interromperà tutte le attività.","account_sign_out_anyway":"Esci comunque","account_signing_out":"Uscita...","account_request_save_settings":"Le impostazioni non vengono salvate. Devi salvare le modifiche prima di uscire.","pay":"Paga","pay_with_credit":"Paga per l\'accelerazione del download. Ha bisogno di circa {0} di credito","pay_with_credit_payed":"Accelerando. Ha ancora bisogno di circa {0} di credito","create_payment":"Crea pagamento","pay_target":"Bersaglio","pay_for_torrent":"Paga per {0}","your_subid":"Il tuo ID secondario","your_credits":"I tuoi crediti","pay_point_for_data":"Paga {0} punto per dati {1}","auto_renew":"Abilita il rinnovo automatico","transaction_details":"Dettagli di Transazione","transaction_id":"Id","transaction_payer":"Pagatore","transaction_payee":"Beneficiario","transaction_category":"Categoria","transaction_changed_amount":"Importo modificato","transaction_meta":"Meta","transaction_status":"Stato","transaction_creation_time":"Tempo di creazione","receipt_code":"Codice scontrino","transfer_amount":"Importo del trasferimento","code_the_receipt_code":"Copia il codice della ricevuta qui sotto per il pagatore","fill_the_receipt_code":"Bonifico compilando il codice di pagamento fornito dal beneficiario","expense":"Spese","copied":"Copiato","transfer":"Trasferimento","receive":"Ricevere","copy":"copia","withdraw_fund":"Ritiro del Fondo","category_paydata_payer":"Costo dei dati","category_paydata_payee":"Entrata di dati","category_transfer":"Trasferimento","category_bonus":"Bonus","category_recharge":"Ricaricare","status_pending":"in attesa di","status_completed":"completato","status_finish":"fine","status_failed":"fallito","tip_invalid_receiver":"Codice ricevitore non valido","tip_invalid_amount":"L\'importo del credito deve essere un float compreso tra 0 e 1000 (la precisione minima è 0,001)","credit_get_more":"Ottieni più crediti","credit_no_data":"Nessun dato disponibile","credit_loading":"Caricamento...","credit_not_enough_amount":"Crediti insufficienti","credit_amount_not_enough":"Crediti insufficienti","credit_payee_not_exist":"Il beneficiario non esiste","credit_invalid_amount":"Importo del credito non valido","credit_can_not_transfer_to_yourself":"Impossibile trasferire a te stesso","credit_latest":"Ultimo","credit_error_network":"Si è verificato un problema con la rete, riprova più tardi","add_subtitles":"Aggiungi sottotitoli","open_file":"Apri il file...","advanced_options":"Opzioni avanzate","title":"Titolo","location":"posizione","subtitle_file":"file di sottotitoli","unsupported_subtitle_type":"Il tipo di file {0} non è un tipo di sottotitoli supportato","not_default_player":"Il lettore video predefinito non è impostato","this_is_an_audio_file":"Questo è un file audio","the_added_subtitle_already_exists":"Il sottotitolo aggiunto esiste già","stop_stream_player":"Lo streaming multimediale è stato interrotto perché l\'attività è stata sospesa o eliminata","stop_player":"Il lettore è stato chiuso perché il file è stato eliminato","playing_timeout_hint":"I tempi di attesa sono scaduti. Si prega di controllare l\'attività","autoplay_hint":"La riproduzione automatica potrebbe essere bloccata dal tuo browser. Se il giocatore non sta giocando, prova a fare clic sullo schermo per continuare","remove_playing_confirm":"{0} è ancora in riproduzione, rimuoverlo fermerà il giocatore. Sei sicuro di rimuoverlo?","unsupported_in_browser":"Non ancora supportato in modalità browser","client":"Cliente","warning":"Avvertimento","enable":"Abilitare","disable":"disattivare","auto":"Auto","encrypt_connection":"Crittografare la connessione","encrypted_connection":"Connessione crittografata","non_encrypted_connection":"Connessione non crittografata","connected_wires_not_disconnect":"I cavi collegati non verranno scollegati","audio":"Audio","video":"video","image":"Immagine","subtitle":"sottotitolo","zip":"cerniera lampo","text":"testo","unknown":"sconosciuto","add":"Aggiungere","undo":"Disfare","backup":"Backup","not_default_app":"${displayName} non è la tua app predefinita per torrent e media, vuoi impostarla come predefinita?","dont_show_again":"Non mostrare più","go_to_settings":"Vai alle impostazioni","about_alphabiz":"Circa ${displayName}","last_check_at":"Ultimo controllo alle","update_channel":"Aggiorna canale","check_for_update":"Ricerca aggiornamenti","checking_for_update":"Controllo dell\'aggiornamento...","no_update_available":"Nessun aggiornamento disponibile","update_available":"Aggiornamento disponibile","update_now":"Aggiorna ora","update_later":"Aggiorna dopo","click_to_update":"Fare clic sul pulsante AGGIORNA ORA per scaricare e aggiornare","update_failed":"Aggiornamento non riuscito","update_failed_message":"Si è verificato un errore durante l\'aggiornamento:","check_shasum_failed":"Impossibile controllare l\'integrità per il programma di installazione","downloading_update":"Download dell\'aggiornamento...","ready_to_update":"Pronto per l\'aggiornamento","restart_to_update":"L\'aggiornamento viene scaricato. ${displayName} uscirà per aggiornarsi per qualche istante.","already_latest":"La versione corrente ({0}) è già l\'ultima","update_timeout":"Timeout di aggiornamento","no_available_release":"Nessuna versione disponibile","no_available_installer":"Nessun programma di installazione disponibile","feedback":"Feedback","select_a_type":"Seleziona un tipo","category":"Categoria","select_a_category":"Seleziona una categoria","require_title":"Il titolo è obbligatorio","describe_your_problem":"Descrivi il tuo problema","report_a_bug":"Segnalare un bug","request_a_new_feature":"Richiedi una nuova funzionalità","download_or_upload":"Scaricare caricare","others":"Altri","submit_with_system_info":"Invia con informazioni di sistema","submit_feedback":"Invia feedback","tweet_us":"Twittaci","tweet_too_long":"Il tweet è troppo lungo","delete_characters":"Elimina almeno {0} caratteri","rest_characters":"Puoi inserire {0} più caratteri","update_alphabiz":"Aggiorna ${displayName}","current_version":"Versione attuale","cancel_update":"Annulla Aggiornamento","slow_download_speed":"Download troppo lento","slow_download_speed_caption":"Il download del programma di installazione è troppo lento ora. Controlla lo stato della rete","update_canceled":"Aggiornamento annullato","current_version_release_time":"Tempo di rilascio della versione corrente","expired_app":"${displayName} Scaduto","version_out_of_date":"Versione obsoleta","have_to_update":"La versione di ${displayName} non è aggiornata. Alcuni protocolli o API sono obsoleti. Devi aggiornare ${displayName} prima di continuare.","exit_alphabiz":"Esci ${displayName}","exit_and_update":"Esci e applica l\'aggiornamento","new_version_hint":"La nuova versione è disponibile","no_new_version":"Nessuna nuova versione disponibile","current_is_latest":"La versione attuale è già l\'ultima","click_to_check_update":"Fare clic sul pulsante [VERIFICA AGGIORNAMENTI] per verificare la presenza di aggiornamenti","download_latest_version_from_website":"Visitare il sito Web ufficiale per scaricare l\'ultima versione","to_the_website":"Al sito web","network_diagnotic":"Diagnostica di rete","diagnotic":"Diagnostico","click_to_check":"Fare clic per verificare","click_to_check_again":"Fare clic per controllare di nuovo","checking":"Controllo","online":"in linea","offline":"disconnesso","dns_look_up":"Ricerca DNS","error":"Errore","aws_service":"Servizio AWS","network_pings":"Ping di rete","not_found":"Non trovato","packet_loss":"Perdita di pacchetti","official_site":"Sito ufficiale","download_test":"Scarica Prova","test_task":"Compito di prova {0}","download_failed":"Scaricamento fallito","second_spend":"{0} s spendere","open_default_player_failed":"Impossibile aprire il lettore predefinito","copied_to_clipboard":"Copiato negli appunti","go_to":"Vai a","region_not_available":"Regione non disponibile","region_not_available_message":"Scusa! La tua regione non è disponibile per utilizzare questa app. Questa app si chiuderà dopo {0} secondi","confirm":"Confermare","no_available_result":"Nessun risultato disponibile","invalid_password_format":"formato della password invalido","invalid_password_format_same":"La password è la stessa della password originale","error_password":"Password errata","keychain_setting":"Portachiavi","setting_description":"Archiviazione cloud: salva i dati chiave nel cloud.\\nModifica password: consente di modificare la password per la chiave del catalogo multimediale.\\nMnemonico: un metodo alternativo per generare e ripristinare le chiavi.\\nImporta chiave locale: importa la chiave salvata localmente nel catalogo multimediale.\\nChiave di esportazione: salva i dati della libreria multimediale corrente in locale o nel cloud.\\nChiave di backup su cloud: aggiorna i dati della libreria multimediale corrente sul cloud per il backup.","refresh_status":"Aggiorna stato","confirm_import_key":"Conferma la chiave di importazione","confirm_update_cloud_key":"Hai già una chiave nel cloud. L\'aggiornamento della chiave sovrascriverà la chiave originale. Sei sicuro di voler aggiornare la chiave archiviata nel cloud?","export_key_with_cloud":"Immettere la password indipendente impostata per esportare la chiave della libreria archiviata nel cloud e bloccare il file della chiave con la password di sblocco","store_cloud_key_prompt_password":"Immettere una password indipendente per archiviare la chiave della libreria nel cloud","update_cloud_key_prompt_password":"Imposta una password indipendente per crittografare la chiave della libreria, quindi aggiornala nel cloud","enable_cloud_storage_prompt_password":"Imposta una password per la chiave memorizzata nel cloud, attraverso la quale puoi recuperare la chiave dal cloud","input_unlock_password":"Imposta la password di sblocco","export_local_prompt_password":"Si prega di impostare una password di sblocco per crittografare il file chiave. Non salveremo questa password per te, quindi se perdi la password, non sarai in grado di sbloccare la tua chiave della biblioteca","require_unlock_password":"Il file chiave è bloccato, inserisci la password di sblocco","require_independent_password":"Inserisci la password indipendente per ottenere la chiave memorizzata nel cloud","import_local_prompt_password":"Il file chiave è bloccato, inserisci la password di sblocco","select_encrypt_mode":"Seleziona la modalità di crittografia","update_cloud_key":"Aggiorna la chiave archiviata nel cloud","backup_to_cloud":"Eseguire il backup della chiave della libreria nel cloud","save_local":"Salva la chiave della libreria come file crittografato locale","create_new_key":"Crea una nuova chiave di libreria","creating_lib_key":"Creazione della chiave della libreria...","loading_lib_key":"Caricamento della chiave della libreria...","failed_to_create_lib_key":"Impossibile creare la chiave della libreria","failed_to_load_lib_key":"Impossibile caricare la chiave della libreria","import_local_key":"Importa la chiave localmente","import_lib_key_from_local":"Importa una chiave di libreria in locale","import_from_cloud":"Importa la chiave della libreria dal cloud","create_or_import_key":"Crea o importa la chiave della libreria","create_or_import_key_desc":"La chiave della libreria è una chiave indipendente utilizzata per recuperare e pubblicare contenuti con un database decentralizzato.","store_your_lib_key":"Memorizza la chiave della libreria","export_cloud_key":"Esporta chiave dal cloud","export_current_key":"Esporta chiave corrente","change_password":"Cambiare la password","enable_cloud_storage":"Abilita l\'archiviazione cloud","disable_cloud_storage":"Disabilita l\'archiviazione cloud","disable_cloud_storage_desc":"Disabilitare l\'archiviazione cloud rimuoverà la chiave salvata nel cloud, assicurati che la chiave sia salvata localmente","sync_at":"Sincronizza a: {time}","cloud_storage_enabled":"Sincronizza il portachiavi con {storage}","cloud_storage_disabled":"Archiviazione cloud disattivata","saved_locally":"Salvato localmente","export_key":"Esporta file chiave","cloud_independent_password":"Password indipendente dal cloud","key_file_unlock_password":"Password di sblocco del file chiave","re_enter_unlock_password":"Reinserire la password di sblocco","independent_password_not_enabled":"La password corrente è la password dell\'account Alphabiz (non è impostata alcuna password indipendente)","use_cognito_hash":"Usa la password dell\'account Alphabiz","use_independent_password":"Usa una password indipendente","keychain_lib":"chiave della biblioteca","loading_keychain_state":"Caricamento portachiavi...","backing_up":"Backup in corso...","backup_current_key":"Esegui il backup della chiave corrente su Cloud","cloud_lib_key_not_existed":"la chiave della libreria non esiste in Cloud","open_keychain_file":"Apri file portachiavi","confirm_open_abk":"Vuoi aprire il file ABK","use_the_key":"Usa la chiave","backup_the_key":"Eseguire il backup della chiave nel cloud","keychain_data_does_not_exist":"I dati del portachiavi non esistono","timeout of 0ms exceeded":"Si è verificato un problema con la rete, riprova più tardi","XhrError":"Si è verificato un problema con la rete, riprova più tardi","payer credit amount is not enough":"Crediti insufficienti","payee does not exist":"Il beneficiario non esiste","block_list_manage":"Gestione elenco blocchi","blocked_users":"Utenti bloccati","blocked_channels":"Canali bloccati","unblock_user":"Sblocca utente","unblock_channel":"Sblocca canale","no_blocked_user":"Nessun utente bloccato","no_blocked_channel":"Nessun canale bloccato","field_required":"{0} è obbligatorio","setting":"Collocamento","unknown_media":"Media sconosciuti","settings_button_visible":"Pulsante visibile","settings_setting":"Collocamento","settings_playback_rate":"Velocità di riproduzione","settings_subtitle":"Sottotitolo","settings_pip":"PiP","settings_fullscreen":"A schermo intero","settings_subtitle_options":"Opzioni sottotitoli","settings_normal":"Normale","settings_italic":"Corsivo","settings_lighter":"Accendino","settings_bolder":"Più audace","settings_small":"Piccolo","settings_large":"Grande","about":"Di","services":"Servizi","hide":"Nascondere","hide_others":"Nascondi altri","show_all":"Mostra tutto","quit":"Esentato","edit":"Modificare","redo":"Rifare","cut":"Taglio","paste":"Impasto","select_all":"Seleziona tutto","view":"Visualizzazione","reload":"Ricaricare","toggle_full_screen":"Passare a schermo intero","toggle_developer_tools":"Attiva/disattiva Strumenti per sviluppatori","window":"Finestra","minimize":"Minimizzare","bring_all_to_front":"Porta tutto in primo piano","help":"Aiuto","github_repo":"Github Repo","issues":"Problemi","learn_more":"Saperne di più","learn_spelling":"Impara l\'ortografia","lookup_selection":"Cerca \\"{selection}\\"","search_with_google":"Cerca con Google","save_as":"Salva come","save_image":"Salva immagine","save_image_as":"Salva l\'immagine come ...","copy_link":"Copia link","save_link_as":"Salva collegamento come ...","copy_image":"Copia l\'immagine","copy_image_as":"Copia immagine come...","copy_image_address":"Copia l\'indirizzo dell\'immagine","download_complete":"Download completato","download_complete_message":"{0} viene scaricato","is_running":"{0} è in esecuzione","open":"Apri {0}","launch_problem":"Problema di avvio","ask_clear_data":"Sembra che tu stia tentando di avviare {0} ma non ci sei riuscito più volte.\\nVuoi cancellare tutti i dati dell\'app e provare ad avviarla più tardi?","launch_directly":"Avvia direttamente","clear_all_data":"Cancella tutti i dati","ask_clear_confirm":"Questo rimuoverà tutte le configurazioni, i registri e i dati utente!\\nDopo questo potrebbe essere necessario lanciare di nuovo {0}.\\nSei sicuro di cancellare i dati?","confirm_launch":"No, avvia direttamente","confirm_clear":"Sì, cancella tutti i dati"}')},4544:function(e,t,a){},"45bf":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"47fc":function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));a("a1c1");const n=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"macOS",r:/Mac OS X/},{s:"UNIX",r:/UNIX/}];let o="unknown",i=()=>{};const r=new Promise((e=>i=e));function s(){const e="Unknown";let t=e;if(screen){const e=screen.width||"",a=screen.height||"";t=e+" x "+a}const a=navigator.appVersion,i=navigator.userAgent;let s,l,c,d=navigator.appName,u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10);-1!==(l=i.indexOf("Opera"))&&(d="Opera",u=i.substring(l+6),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))),-1!==(l=i.indexOf("Electron"))?(d="Electron",u=i.substring(l+9)):-1!==(l=i.indexOf("OPR"))?(d="Opera",u=i.substring(l+4)):-1!==(l=i.indexOf("Edge"))?(d="Microsoft Legacy Edge",u=i.substring(l+5)):-1!==(l=i.indexOf("Edg"))?(d="Microsoft Edge",u=i.substring(l+4)):-1!==(l=i.indexOf("MSIE"))?(d="Microsoft Internet Explorer",u=i.substring(l+5)):-1!==(l=i.indexOf("Chrome"))?(d="Chrome",u=i.substring(l+7)):-1!==(l=i.indexOf("Safari"))?(d="Safari",u=i.substring(l+7),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))):-1!==(l=i.indexOf("Firefox"))?(d="Firefox",u=i.substring(l+8)):-1!==i.indexOf("Trident/")?(d="Microsoft Internet Explorer",u=i.substring(i.indexOf("rv:")+3)):(s=i.lastIndexOf(" ")+1)<(l=i.lastIndexOf("/"))&&(d=i.substring(s,l),u=i.substring(l+1),d.toLowerCase()===d.toUpperCase()&&(d=navigator.appName)),-1!==(c=u.indexOf(";"))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(" "))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(")"))&&(u=u.substring(0,c)),_=parseInt(""+u,10),isNaN(_)&&(u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10));const p=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(a),m=navigator.cookieEnabled;let h=e;for(const o in n){const e=n[o];if(e.r.test(i)){h=e.s;break}}let g=e;switch(/Windows/.test(h)&&(g=/Windows (.*)/.exec(h)[1],h="Windows"),h){case"macOS":case"Android":g=/(?:Android|Mac OS|Mac OS X|MacIntel) ([._\d]+)/.exec(i)[1],g=g.replace(/_/g,".");break;case"iOS":g=/OS (\d+)_(\d+)_?(\d+)?/.exec(a),g=g[1]+"."+g[2]+"."+(g[3]||0);break}console.log("getSystemInfo");const f={screen:t,os:h,browser:d,osVersion:g,browserVersion:u,browserMajorVersion:_,mobile:p,cookies:m,arch:o};return r.then((()=>{f.arch=o})),f}"userAgentData"in navigator&&(console.log("Init userAgentData"),navigator.userAgentData.getHighEntropyValues(["architecture","bitness"]).then((({architecture:e,bitness:t})=>{console.log("Navigator userAgentData",e,t),"string"===typeof e&&(o=e),"string"===typeof t&&(o.includes("arm")?o+=t:o+="_"+t),i(o)})))},"49d6":function(e,t,a){},"4b8c":function(e,t,a){"use strict";a("80f4")},"4d52":function(e,t,a){"use strict";a("d4b5"),a("de6c"),a("a1c1"),a("7a76");var n=a("fb31");const o={type:"03",prefix:n["shortProtocol"]+"-blockchain"},i={encode:e=>Buffer.from(e,"utf-8").toString("hex"),decode:e=>Buffer.from(e,"hex").toString("utf-8")},r={encode:e=>Buffer.from(e,"utf-8").toString("base64"),decode:e=>Buffer.from(e,"base64").toString("utf-8")},s={stringifyProtocolObject(e){const t=JSON.parse(i.decode(e.hash)),a=e.data,n={to_address:t.to_address,coin_type:a.coin_type,amount:a.amount,expiration:a.expiration},o=r.encode(JSON.stringify(n));return[t.action,o].join("/")},parseProtocolObject(e){const t=`Transfer to ${e.to_address.substr(2,10)}`,a=JSON.stringify({action:"transfer",to_address:e.to_address}),n={};return["coin_type","amount","expiration"].forEach((t=>{n[t]=e[t]})),{name:t,id:a,data:n}}},l={transfer:s},c=e=>{if(!e.startsWith(`${o.prefix}://`))return null;const[t,a]=e.replace(`${o.prefix}://`,"").split("/");if(!l[t])throw new Error("Unexpected action: "+t);const n=JSON.parse(r.decode(a));return{action:t,actionArgs:n}},d=(e,t)=>{const a=r.encode(JSON.stringify(t));return`${o.prefix}://${[e,a].join("/")}`};t["a"]={config:o,parseAction:c,stringifyAction:d,fromObject(e){if(e.protocolType!==o.type)return null;const{action:t}=JSON.parse(i.decode(e.hash));if(!l[t])throw new Error("Unexpected action: "+t);return`${o.prefix}://${l[t].stringifyProtocolObject(e)}`},toObject(e){const{action:t,actionArgs:a}=c(e),{name:n,id:r,data:s}=l[t].parseProtocolObject(a);return{protocolType:o.type,name:encodeURIComponent(n),hash:i.encode(r),data:s}}}},"4d62":function(e,t,a){},"4d89":function(e,t,a){"use strict";a("c294")},"4dbc":function(e,t,a){"use strict";a("fe8f")},"4eaf":function(e,t,a){},"4ec4":function(e,t,a){"use strict";a("cb96")},"4fd2":function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return d}));a("de6c"),a("a1c1");const n=a("d310").isElectron(),o=new Map,i=e=>{if(!n)return!1;if("string"!==typeof e)return!1;if(o.has(e))return o.get(e);const t=a("bc7b");return!!t.existsSync(e)&&(o.set(e,t.statSync(e).isDirectory()),o.get(e))},r=["mp3","wav","aac","flac","m4a","wma"],s=["mp4","mkv","flv","avi","mov","wmv","rmvb","flv","webm"],l=e=>r.includes(e),c=e=>s.includes(e);function d(e){const t=e.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!t)return!1;const a=t[0].slice(1);if(!a.length)return!1;const n=r.includes(a.toLowerCase())||s.includes(a.toLowerCase());return!!n&&!i(e)}},5:function(e,t){},"508e":function(e,t){const a=["udp://open.tracker.cl:1337/announce","udp://tracker.opentrackr.org:1337/announce","udp://9.rarbg.com:2810/announce","udp://tracker.openbittorrent.com:6969/announce","udp://exodus.desync.com:6969/announce","udp://www.torrent.eu.org:451/announce","udp://tracker1.bt.moack.co.kr:80/announce","udp://tracker.zerobytes.xyz:1337/announce","udp://tracker.torrent.eu.org:451/announce","udp://tracker.theoks.net:6969/announce","udp://tracker.srv00.com:6969/announce","udp://tracker.pomf.se:80/announce","udp://tracker.ololosh.space:6969/announce","udp://tracker.monitorit4.me:6969/announce","udp://tracker.moeking.me:6969/announce","udp://tracker.lelux.fi:6969/announce","udp://tracker.jordan.im:6969/announce","udp://tracker-udp.gbitt.info:80/announce","udp://retracker.sevstar.net:2710/announce","udp://retracker.netbynet.ru:2710/announce","udp://186.10.181.71:1337/announce","udp://93.158.213.92:1337/announce","udp://151.80.120.113:2810/announce","udp://45.154.253.6:6969/announce","udp://208.83.20.20:6969/announce","udp://91.216.110.52:451/announce","udp://156.234.201.18:80/announce","udp://62.210.217.207:1337/announce","udp://89.234.156.205:451/announce","udp://209.141.59.16:6969/announce","udp://62.109.31.95:6969/announce","udp://65.108.63.133:80/announce","udp://93.104.214.40:6969/announce","udp://163.172.170.127:6969/announce","udp://95.217.161.135:6969/announce","udp://213.108.105.23:6969/announce","udp://109.72.83.209:80/announce","udp://78.30.254.12:2710/announce","udp://212.1.226.176:2710/announce","udp://tracker.leechers-paradise.org:6969","udp://tracker.coppersurfer.tk:6969","udp://tracker.opentrackr.org:1337","udp://explodie.org:6969","udp://tracker.empire-js.us:1337","wss://tracker.btorrent.xyz","wss://tracker.openwebtorrent.com"],n=e=>a.indexOf(e),o=e=>a[e];e.exports={getTrackerById:o,getIdByTracker:n,trackerList:a}},"50de":function(e,t,a){"use strict";a("bba7")},"512b":function(e,t,a){},"525c":function(e,t,a){},"536e":function(e,t,a){"use strict";a("a5d3")},5415:function(e,t,a){"use strict";a("512b")},5515:function(e,t,a){"use strict";a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"b",(function(){return v}));a("de6c"),a("d4b5"),a("4db2"),a("a1c1");var n=a("2d62"),o=a("d7df"),i=a("d710");function r(){const e=navigator.userAgent.toLowerCase();return e.includes("android")||e.includes("ios")||e.includes("iphone")}var s=a("c49d");const l=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100),c=(e="",t={})=>{if(e.startsWith("ab-")||e.startsWith(i["appName"].toLowerCase()))return!1;if(!e.startsWith("~"))return!0;if(e.startsWith("~@"))return 42!==e.length;const a=e.split("/");if(1===a.length){const[e,n]=a[0].split(".");if(!e||!n)return!0;if(e.length<40||n.length<40)return!0;const o=Object.keys(t);return o.some((e=>!["_","alias","auth","pub","epub","profile","follow","channels","blockChannels","blockUsers","takedowns"].includes(e)))}const n=a[1];if(!["follow","profile","channels","takedowns"].includes(n))return!0;const o=a[2]?[a[2]]:Object.keys(t);return"profile"===n?o.some((e=>!["_","#",">","avatar","description","name","id","blockChannels","blockUsers"].includes(e))):"follow"===n?o.some((e=>!(!e.match(/[^.]{43}\.[^.]{43}/)||e.includes("channels")))):Object.values(t).some((e=>"string"===typeof e&&e.includes("data:image")))},d=(e,t)=>{for(const r in t){const e=t[r];if("string"===typeof e&&e.includes("data:image"))return[]}const a=[],n=t._;if(!n||!n["#"]||!n[">"])return[];let o={[e]:{_:{"#":n["#"],">":{}}}},i=0;for(const r in t){if("_"===r)continue;const s=t[r];if("string"===typeof s&&s.includes("data:image"))return[];o[e][r]=s,i+=(JSON.stringify(s).length||0)+r.length,o[e]._[">"][r]=n[">"][r],i>1e4&&(a.push(o),i=0,o={[e]:{_:{"#":n["#"],">":{}}}})}return Object.keys(o).length&&a.push(o),a},u=(e,t,a)=>{if(e[t]){const n=e[t];e[t]=(...e)=>{n(...e),a(...e)}}else e[t]=a},_={timer:null,pending:!1,last:Date.now(),lastSize:0},p=async()=>{if(_.pending)return;const e=n["v"]._.graph;console.time("saveGraph"),_.pending=!0,_.last=Date.now();const t=Object.keys(e);if(_.lastSize>t.length)return console.log("Skip saving library");_.lastSize=t.length,console.log("start sending splice graph",t.length);let a=Object.create(null);o["a"].emit("save-library-db-start");for(const n of t){const t=e[n];if(!t)continue;if(c(n,t))continue;a[n]=t;const i=JSON.stringify(a);i.length>5e4&&(await new Promise((e=>l((()=>{o["a"].emit("save-library-db-partial",a),e()})))),a=Object.create(null))}Object.keys(a).length&&o["a"].emit("save-library-db-partial",a),l((()=>{o["a"].emit("save-library-db-end"),_.pending=!1,_.last=Date.now(),Object(s["a"])("Save partials",(new Date).toLocaleString()),console.timeEnd("saveGraph")}))},m=()=>{if(clearTimeout(_.timer),Date.now()-_.last>6e5)return p();_.timer=setTimeout(p,6e4)},h={};Object.defineProperty(window,"wrtcPeers",{get(){return h}}),Object.defineProperty(window,"saveGraph",{get(){return m}});let g=null;const f=async e=>{const t=g;return g=new Promise((a=>{const n=()=>{const t=e();t instanceof Promise?t.then(a):l((()=>a(t)))};t instanceof Promise?t.then(n):n()})),g};function b(e){const t=r()?2:5;if(Object.keys(h).length>t)return Object(s["d"])(),void(e._destroy&&e._destroy(null,(()=>{})));const a=e.wire;if(!a)return;const o=n["v"]._.root;if(e.syncState="waiting",e.remoteSyncState="waiting",h[e.id]&&"open"===h[e.id].wire.readyState)return;h[e.id]=e;let i=!1;e.downloaded=0,e.uploaded=0,e.downloadSpeed=0,e.uploadSpeed=0;const l={time:Date.now(),downloaded:0,uploaded:0},_=setInterval((()=>{if(i)return clearInterval(_);const t=Date.now(),a=t-l.time;e.downloadSpeed=Math.floor((e.downloaded-l.downloaded)/a*1e3),e.uploadSpeed=Math.floor((e.uploaded-l.uploaded)/a*1e3),l.time=t,l.downloaded=e.downloaded,l.uploaded=e.uploaded}),1e3),p=async(t="")=>(a.bufferedAmount>a.bufferedAmountLowThreshold&&await new Promise((e=>{a.onbufferedamountlow=e})),f((()=>{"open"===a.readyState?(e.uploaded+=t.length,a.send(t)):i=!0}))),g=()=>{if(!o.graph)return setTimeout(g,5e3);let e=-1;for(const a in o.graph){var t;const n=o.graph[a],i=null===n||void 0===n||null===(t=n._)||void 0===t?void 0:t[">"];i&&i>e&&(e=i)}p("ABINFO"+JSON.stringify({timestamp:e}))};g(),e.lastUpdate=-1,e.syncTimer=null;const b=async()=>{if(i)return;if(e.syncTimer&&clearTimeout(e.syncTimer),!o.graph)return void(e.syncTimer=setTimeout(b,5e3));e.syncState="syncing";const t=Object.keys(o.graph);for(let e=t.length-1;e>0;e--){const a=Math.floor(Math.random()*(e+1));[t[e],t[a]]=[t[a],t[e]]}let n=Object.create(null);const r=Date.now();let l=0,u=0;for(const m of t){if("open"!==a.readyState){"connecting"!==a.readyState&&(delete h[e.id],i=!0,e.close(),e._destroy&&e._destroy(null,(()=>{})),Object.keys(h).length<5&&Object(s["c"])());break}l++;const t=o.graph[m];if(!t)continue;if(t._&&t._[">"]){const a=Object.values(t._[">"]);if(a.every((t=>t5e4){const e=d(m,t);if(!e.length)continue;window.verb&&Object(s["a"])("SPLICES",e,JSON.stringify(t).length);for(const t of e)await p("ABSYNC"+JSON.stringify(t)),u++;continue}n[m]=t;const r="ABSYNC"+JSON.stringify(n);if(r.length>5e4&&(await p(r),u++,n=Object.create(null)),i)return}Object.keys(n).length&&u++,u&&(e.lastUpdate=r,m(),Object(s["a"])("Synced",l,"items to",e.id));const _=Object.keys(n).length?JSON.stringify(n):"{}",g="ABSYNC!"+_;"open"===a.readyState&&p(g),e.syncState="completed",e.syncTimer=setTimeout(b,1e4)};return u(a,"onclose",(function(){i=!0,delete h[e.id],clearTimeout(e.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(a,"onerror",(function(){i=!0,delete h[e.id],clearTimeout(e.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(a,"onmessage",(function(t){if(!t)return;let a=t.data;if("string"!==typeof a&&(a instanceof ArrayBuffer?a=Buffer.from(a).toString("utf-8"):(Object(s["a"])("unknown data",typeof a,a),a=a.toString())),a)if(a.startsWith("ABSYNC")){e.downloaded+=a.length,a.startsWith("ABSYNC!")?(e.remoteSyncState="completed",m()):e.remoteSyncState="syncing";try{if("ABSYNC!{}"===a)return;const e=JSON.parse(a.replace(/ABSYNC(!?)/,"")),t={put:e,_:function(){},$:n["v"]};f((()=>o.on.put(t)))}catch(i){Object(s["a"])("put error",i,a)}}else if(a.startsWith("ABINFO")){const t=JSON.parse(a.substring(6));t.timestamp&&(e.lastUpdate=t.timestamp,b())}})),u(e,"ondatachannel",(function(e){const t=e.channel;t.onmessage=a.onmessage,t.onopen=a.onopen,t.onclose=a.onclose})),e}function y(e){if(h[e.id])return;const t=e._pc;return t.id=e.id,t.wire=e._channel,t._from="tracker",e.on("error",(e=>window.verb&&Object(s["a"])("peer error",e))),t._destroy=()=>{e._destroy&&e._destroy(null,(()=>{}))},b(t)}n["v"]._.opt.onWrtcPeer=function(e){return e._from="gun",b(e)};t["a"]=y;async function v(e){let t=Object.create(null),a=0;const o=Object.keys(e);for(const i of o)if(a++,t[i]=e[i],a>300||a===o.length){const e={...t},i={put:e,_:function(){},$:n["v"]};if(await f((()=>n["v"]._.root.on.put(i))),a===o.length){for(const e in h)h[e].lastUpdate=-1;Object(s["a"])(`Put ${o.length} items from local db`)}else await new Promise((e=>l(e)));t=Object.create(null)}}setInterval((()=>{Object.keys(h).length>=5||n["v"]._.opt&&"function"===typeof n["v"]._.opt.announce&&n["v"]._.opt.announce()}),6e4)},5584:function(e,t,a){"use strict";var n=a("ff9b"),o=a("358c"),i=(a("de6c"),a("3387")),r=a.n(i);function s(e,t,a){const o=a?e=>e[a]:e=>e;for(const r of t){const t=e.findIndex((e=>o(e)===o(r)));-1===t?e.push(r):"object"===typeof r?Array.isArray(r)?s(e[t],r):Object(i["isEqual"])(e[t],r)||n["a"].set(e,t,r):n["a"].set(e,t,r)}for(let n=0;no(t)===o(e[n])))||e.splice(n--,1);return e}const l={tasksCount:{downloading:0,uploading:0,downloaded:0},abKeys:{},uploadingTasks:[],shouldDisableTasks:!1,uploadingLoading:!1,updatingTaskList:!1},c=new n["a"]({data(){return{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0}}}),d={DOWNLOADER_UPDATE_DOWNLOADING_TASK_COUNT(e,t){e.tasksCount.downloading=t},DOWNLOADER_UPDATE_UPLOADING_TASK_COUNT(e,t){e.tasksCount.uploading=t},DOWNLOADER_UPDATE_DOWNLOADED_TASK_COUNT(e,t){e.tasksCount.downloaded=t},DOWNLOADER_SET_UPLOADING_LOADING(e,t){e.uploadingLoading=t},updateTaskCount(e,t){Object.assign(e.tasksCount,t)},changeDisableTasks(e,t){e.shouldDisableTasks=t},updateABKeys(e,t){for(const a in t){const n=t[a],o=e.abKeys[a];o?e.abKeys[a]=[...s(o,n,"key")]:e.abKeys=t}},updateUploading(e,t){console.log("updateUploading",t),s(e.uploadingTasks,t,"abUrl")},setUpdatingTasks(e,t){e.updatingTaskList=t},updateTaskInfo(e,t){n["a"].set(c,t.type,t.info)},updateTasks(e,t){const{uploadingTasks:a,tasksCount:n,abKeyObj:o}=t;s(e.uploadingTasks,a,"abUrl");for(const i in n)e.tasksCount[i]=n[i];for(const i in o){const t=o[i],a=e.abKeys[i];a?s(a,t,"key"):e.abKeys=o}}},u={},_={taskCount(e){return e.tasksCount},getDownloadingTaskCount(e){return e.tasksCount.downloading},getUploadingTaskCount(e){return e.tasksCount.uploading},getDownloadedTaskCount(e){return e.tasksCount.downloaded},shouldDisableTasks(e){return e.shouldDisableTasks},isUploadingLoading(e){return e.uploadingLoading},abKeys(e){return e.abKeys},uploading(e){return e.uploadingTasks},tasks(){return c.$data},allTasks(){return[...c.downloading,...c.uploading,...c.downloaded]}},p={namespaced:!1,state:l,mutations:d,actions:u,getters:_};var m=p,h=a("d310"),g=a("8a63"),f=a("9efe"),b=a("e74d"),y=a("e75b"),v=a("d7df"),w=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const k=new y["a"].Rest("ABDevRest"),S=()=>w(void 0,void 0,void 0,(function*(){const e=window.$blockchain.$store.account;if(yield e.initCurrentAccount(),e.account)return;const t=yield e.createNewAccount();yield t.confirm(),yield e.recoveryAccount({key:t.toPrivateKeyObject().privateKeyHex}),console.log("The blockchain account has been created automatically: ",t)})),C=()=>w(void 0,void 0,void 0,(function*(){"blockchain"===localStorage.getItem("dataPaymentMixin.mode")&&(yield S())})),x=e=>{var t,a;return{sub:e.attributes.sub,username:e.username,signingTime:e.attributes["custom:signing_time"],signingIpAddress:e.attributes["custom:signing_ip_address"],lastLoginTime:e.attributes["custom:last_login_time"],lastIpAddress:e.attributes["custom:last_ip_address"],accountLevel:e.attributes["custom:account_level"],msgLocale:e.attributes["custom:msg_locale"],nickname:e.attributes.nickname,gender:e.attributes.gender,birthday:e.attributes.birthdate,locale:e.attributes.locale,email:e.attributes.email,phoneNumber:e.attributes.phone_number,phoneNumberCountryCode:e.attributes["custom:phone_number_code"],emailVerified:e.attributes.email_verified,phoneNumberVerified:e.attributes.phone_number_verified,invitationCode:null===(t=e.dynamo_attrs)||void 0===t?void 0:t.invitation_code,identities:JSON.parse(null!==(a=e.attributes.identities)&&void 0!==a?a:"[]")}},$=["sub","username","email","emailVerified","phoneNumber","phoneNumberCountryCode","phoneNumberVerified","signingTime","signingIpAddress","lastLoginTime","lastIpAddress","accountLevel","msgLocale","invitationCode","identities"],T=["nickname","gender","birthday","locale"],z=Object.assign(Object.assign({authState:null},[...$,...T].reduce(((e,t)=>(e[t]=void 0,e)),{})),{verification:null,preferredMFA:null}),P={ACCOUNT_UPDATE_INFO(e,t){Object.keys(t).forEach((a=>{const n=a;if(void 0!==t[n])e[n]=t[n];else{const t={gender:"notSay",locale:"notSay"};e[n]=t[n]||""}}))},ACCOUNT_CLEAR_INFO(e){[...$,...T].forEach((t=>{e[t]=void 0}))},ACCOUNT_UPDATE_STATE(e,t){if(e.verification&&["forgotPassword","signUpConfirm","signInConfirm","signUp"].includes(e.authState)&&(e.verification=null),e.authState=t,h["Bus"].$emit("update-authstate",t),"signedIn"!==e.authState)return console.log("Skip not sign in",t);console.log("authState:",e.authState),v["a"].emit("user_login","store - account_update_state"),Object(g["a"])()},ACCOUNT_UPDATE_VERIFICATION(e,t){t?(e.verification||(e.verification={}),Object.assign(e.verification,t)):e.verification=null},ACCOUNT_SET_MFA_TYPE(e,t){e.preferredMFA=t}},A={ACCOUNT_UPDATE_INFO({commit:e}){return w(this,void 0,void 0,(function*(){const t=yield Object(f["f"])();return e("ACCOUNT_UPDATE_INFO",x(t)),b["a"].currentAuthenticatedUser().then((e=>b["a"].getPreferredMFA(e))).then((t=>e("ACCOUNT_SET_MFA_TYPE",t))),{message:"success"}}))},ACCOUNT_REDIRECT_TO_INDEX({dispatch:e,commit:t,state:a}){return w(this,void 0,void 0,(function*(){const n=()=>w(this,void 0,void 0,(function*(){yield Promise.all([C(),e("CREDIT_INIT_DATA")]),t("ACCOUNT_UPDATE_STATE","signedIn")})),o=()=>w(this,void 0,void 0,(function*(){yield Promise.all([e("CREDIT_CLEAR_DATA")]),t("ACCOUNT_UPDATE_STATE","signedOut")}));try{const t=yield Object(f["e"])(!1).catch((e=>(console.warn("debug#859: fetchAuthUser"),console.log(e),null)));if(!t)return yield o();yield e("ACCOUNT_UPDATE_INFO"),"signedIn"!==a.authState?yield n():(console.warn("debug#859: state.authState"),console.log(a.authState))}catch(i){console.error('failed to "ACCOUNT_REDIRECT_TO_INDEX"'),console.warn("debug#859: state.authState"),console.log(i),yield o()}}))},ACCOUNT_SIGN_IN({commit:e,dispatch:t},{username:a,password:n}){return w(this,void 0,void 0,(function*(){const o=yield Object(f["l"])(a,n).catch((e=>e));if(o){if("SMS_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"phone_number",mfaType:o.message,destination:o.destination,user:o.user}),o;if("SOFTWARE_TOKEN_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"software_token",mfaType:o.message,user:o.user}),o;if("UserNotConfirmedException"===o.code){e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n});const i=yield t("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND");throw"success"===i.message?new Error(o.code):i}throw o}return e("ACCOUNT_CLEAR_INFO"),yield t("ACCOUNT_UPDATE_INFO"),yield Promise.all([C(),t("CREDIT_INIT_DATA")]),{message:"success"}}))},ACCOUNT_SIGN_OUT({commit:e,dispatch:t}){return w(this,void 0,void 0,(function*(){yield Object(f["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_DELETE_USER({commit:e,dispatch:t},{password:a}){return w(this,void 0,void 0,(function*(){yield Object(f["x"])(a),yield Object(f["d"])(),yield Object(f["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_SET_MFA_TYPE({dispatch:e,commit:t,state:a},n){return w(this,void 0,void 0,(function*(){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(n))throw new Error("Illegal mfa type");const e=yield b["a"].currentAuthenticatedUser();yield b["a"].setPreferredMFA(e,n);const a=yield b["a"].getPreferredMFA(e);t("ACCOUNT_SET_MFA_TYPE",a)}))},ACCOUNT_MFA_RESEND({dispatch:e,commit:t,state:a}){return w(this,void 0,void 0,(function*(){const n=a.verification.username,o=a.verification.password,i=yield e("ACCOUNT_SIGN_IN",{username:n,password:o}).catch((e=>e));if(!i)throw new Error("Unexpected Error");"SMS_MFA"===i.message?t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"phone_number",mfaType:i.message,destination:i.destination,user:i.user}):"SOFTWARE_TOKEN_MFA"===i.message&&t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"software_token",mfaType:i.message,user:i.user})}))},ACCOUNT_MFA_SUBMIT({state:e,commit:t,dispatch:a},n){return w(this,void 0,void 0,(function*(){const o=e.verification.user,i=e.verification.mfaType;yield Object(f["m"])(o,i,n),t("ACCOUNT_CLEAR_INFO"),yield a("ACCOUNT_UPDATE_INFO"),yield a("CREDIT_INIT_DATA")}))},ACCOUNT_CHANGE_ATTRIBUTES({dispatch:e},t){return w(this,void 0,void 0,(function*(){yield Object(f["b"])(t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_UNLINK_OAUTH({dispatch:e,state:t},a){return w(this,void 0,void 0,(function*(){if(t.identities.length<=0)throw new Error("Not oauth provider existed");const n=t.identities.find((e=>e.providerName===a));if(!n)throw new Error("Can not found oauth provider: "+a);yield Object(f["r"])(a,n.userId),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PASSWORD({commit:e},{oldPassword:t,newPassword:a}){return w(this,void 0,void 0,(function*(){const e=yield b["a"].currentAuthenticatedUser();yield k.post("/account/changePassword",{username:e.getUsername(),AccessToken:e.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:t,ProposedPassword:a})}))},ACCOUNT_FORGOT_PASSWORD_SEND({state:e,commit:t,rootGetters:a},n){return w(this,void 0,void 0,(function*(){const e=a.settings.language,o=yield Object(f["g"])(n,{msgLocale:`${e}:F`});return t("ACCOUNT_UPDATE_VERIFICATION",{username:n,type:o.CodeDeliveryDetails.AttributeName,destination:o.CodeDeliveryDetails.Destination}),{message:"success"}}))},ACCOUNT_FORGOT_PASSWORD_SUBMIT({commit:e,state:t},{code:a,password:n}){return w(this,void 0,void 0,(function*(){yield k.postGuest("/account/forgotPasswordSubmit",{ClientId:b["a"].userPool.getClientId(),ConfirmationCode:a,Password:n,Username:t.verification.username})}))},ACCOUNT_SIGN_UP_NECESSARY({rootGetters:e,commit:t},a){return w(this,void 0,void 0,(function*(){if(!a.email&&!a.phoneNumber)throw new Error("Email or Phone Number must be fill when signing up.");const n=e.settings.language;a.msgLocale=`${n}:${a.email?"E":"P"}`;const o=yield Object(f["o"])(a);return t("ACCOUNT_UPDATE_VERIFICATION",{username:o.user.username,password:a.password,type:o.codeDeliveryDetails.AttributeName,destination:{email:a.email,phone_number:a.phoneNumber}[o.codeDeliveryDetails.AttributeName]}),{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND({state:e,commit:t}){return w(this,void 0,void 0,(function*(){const t=e.verification.username;yield Object(f["i"])(t);return{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT({commit:e,state:t},{code:a,optAttrs:n}){return w(this,void 0,void 0,(function*(){try{yield Object(f["c"])(t.verification.username,a,n)}catch(e){if(console.warn("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",e),e instanceof Error&&!["User cannot be confirmed. Current status is CONFIRMED","User is already confirmed"].includes(e.message))throw e}return{message:"success"}}))},ACCOUNT_INVITE_CODE({commit:e,dispatch:t},{code:a,contactEmail:n,contactPhone:o}){return w(this,void 0,void 0,(function*(){return yield Object(f["h"])(a,n,o),yield t("ACCOUNT_UPDATE_INFO"),{message:"success"}}))},ACCOUNT_CHANGE_EMAIL_SEND({rootGetters:e,dispatch:t},a){return w(this,void 0,void 0,(function*(){const n=e.settings.language;return z.msgLocale===`${n}:E`||(yield Object(f["k"])(n,"E")),a&&a===z.email?yield Object(f["t"])("email"):yield Object(f["u"])("email",a),yield t("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_EMAIL_SUBMIT({dispatch:e},t){return w(this,void 0,void 0,(function*(){return yield Object(f["v"])("email",t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SEND({rootGetters:e,state:t,dispatch:a},{phoneNumber:n,phoneNumberCountryCode:o}){return w(this,void 0,void 0,(function*(){const i=e.settings.language;return t.msgLocale===`${i}:P`||(yield Object(f["k"])(i,"P")),n&&o&&n===t.phoneNumber&&o===t.phoneNumberCountryCode?yield Object(f["t"])("phone_number"):yield Object(f["u"])("phone_number",n,o),yield a("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SUBMIT({dispatch:e},t){return w(this,void 0,void 0,(function*(){return yield Object(f["v"])("phone_number",t),yield e("ACCOUNT_UPDATE_INFO")}))}},I={accountUserInfo(e,t){const a={};return Object.assign(a,t.accountUserOptionalInfo),a.preferredMFA=e.preferredMFA,Object.assign(a,t.accountUserReadonlyInfo),a},accountUserReadonlyInfo(){return $.reduce(((e,t)=>(e[t]=z[t],e)),{})},accountUserOptionalInfo(e){return T.reduce(((t,a)=>(t[a]=e[a],t)),{})}},q={namespaced:!1,state:z,mutations:P,actions:A,getters:I};var O=q,E=a("06e8"),D=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const j=new y["a"].Rest("ABDevRest"),N={Mutations:{CREDIT_SET_INIT_STATE:"CREDIT_SET_INIT_STATE",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_UPDATE:"CREDIT_UPDATE",CREDIT_UPDATE_TXN:"CREDIT_UPDATE_TXN",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION",CREDIT_UPDATE_USER:"CREDIT_UPDATE_USER",CREDIT_UPDATE_EXPENSES:"CREDIT_UPDATE_EXPENSES",CREDIT_UPDATE_INCOME_TODAY:"CREDIT_UPDATE_INCOME_TODAY",CREDIT_UPDATE_TOKEN:"CREDIT_UPDATE_TOKEN",CREDIT_UPDATE_INCOME:"CREDIT_UPDATE_INCOME"},Actions:{CREDIT_INIT_DATA:"CREDIT_INIT_DATA",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_TRANSFER:"CREDIT_TRANSFER",CREDIT_FETCH_TRANSACTION:"CREDIT_FETCH_TRANSACTION",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION"}},L=["credit"];var U,R;(function(e){e["TRANSFER"]="TRANSFER",e["PAYDATA"]="PAYDATA",e["RECHARGE"]="RECHARGE",e["BONUS"]="BONUS"})(U||(U={})),function(e){e["PENDING"]="PENDING",e["FAILED"]="FAILED",e["FINISH"]="FINISH",e["COMPLETED"]="COMPLETED"}(R||(R={}));const M=Object.assign({isModuleInit:0,incomeTransactions:[],expensesTransactions:[],incomeTodayTransactions:[],providentFund:null},L.reduce(((e,t)=>(e[t]=void 0,e)),{})),F={CREDIT_SET_INIT_STATE(e,t){e.isModuleInit=t},CREDIT_CLEAR_DATA(e){e.providentFund=null,L.forEach((t=>e[t]=void 0)),e.expensesTransactions=[],e.incomeTransactions=[],e.incomeTodayTransactions=[]},CREDIT_UPDATE(e,t){const a=e=>{const t={};for(const[a,n]of Object.entries(e)){let e=t;if(-1===a.indexOf("."))e[a]=n;else{const t=a.split(".");for(let a=0;aObject.keys(e).forEach((a=>{void 0!==t[a]&&(e[a]=t[a])}));let n=e.incomeTransactions.find((e=>e.id===t.id));if(n){if(a(n,t),n=e.incomeTodayTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}else{if(n=e.expensesTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}},CREDIT_UPDATE_USER(e,t){for(const[a,n]of Object.entries(t))L.includes(a)&&(e[a]=n)},CREDIT_UPDATE_INCOME(e,t){e.incomeTransactions=t},CREDIT_UPDATE_EXPENSES(e,t){e.expensesTransactions=t},CREDIT_UPDATE_INCOME_TODAY(e,t){e.incomeTodayTransactions=t}},B={CREDIT_TRANSFER({dispatch:e},{receiverSub:t,amount:a,meta:n}){return D(this,void 0,void 0,(function*(){const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>M.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield j.post("/credit/transfer",{receiverSub:t,amount:a,meta:n})}))},CREDIT_PAY_DATA_REQUEST({dispatch:e,state:t},{receiverSub:a,amount:n,meta:o}){return D(this,void 0,void 0,(function*(){if(n=Math.min(Number.parseInt(n),1e6),n>=t.credit)throw new Error("credit_not_enough_amount");return yield j.post("/dataProviding/request",{receiverSub:a,amount:n,meta:JSON.stringify(o)})}))},CREDIT_PAY_DATA_COMPLETED({dispatch:e},{transactionId:t}){return D(this,void 0,void 0,(function*(){return yield j.post("/dataProviding/complete",{transactionId:t})}))},CREDIT_PAY_DATA_FINISH({dispatch:e,rootState:t},{transactionId:a}){return D(this,void 0,void 0,(function*(){const e=window.localStorage.getItem("transaction_to_finish"),n=e?JSON.parse(e):{},o=n[t.account.sub]||[],i=o.map(((e,t)=>()=>D(this,void 0,void 0,(function*(){try{yield j.post("/dataProviding/finish",{transactionId:e}),delete o[t]}catch(a){a instanceof Error&&"Network Error"!==a.message&&delete o[t]}}))));i.push((()=>D(this,void 0,void 0,(function*(){try{yield j.post("/dataProviding/finish",{transactionId:a})}catch(e){if(!(e instanceof Error&&"Network Error"===e.message))throw e;o.push(a)}}))));try{yield Promise.all(i.map((e=>e())))}finally{n[t.account.sub]=o.filter((e=>null!==e)),window.localStorage.setItem("transaction_to_finish",JSON.stringify(n))}}))},CREDIT_PAY_DATA_CANCEL({dispatch:e},{transactionId:t}){return D(this,void 0,void 0,(function*(){return yield j.post("/dataProviding/cancel",{transactionId:t})}))},CREDIT_PF_DEPOSIT({commit:e,state:t},{amount:a,meta:n}){return D(this,void 0,void 0,(function*(){if(!t.providentFund||!1===t.providentFund.enable)return;const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>=t.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield j.post("/providentFund/deposit",{amount:a,meta:n})}))},CREDIT_PF_WITHDRAW(){return D(this,void 0,void 0,(function*(){return yield j.post("/providentFund/withdraw")}))},CREDIT_INIT_DATA({state:e,commit:t,dispatch:a,rootState:n,rootGetters:o}){return D(this,void 0,void 0,(function*(){if(e.isModuleInit)return;t(N.Mutations.CREDIT_SET_INIT_STATE,1),yield E["b"].enable(n.account.sub);const i=()=>D(this,void 0,void 0,(function*(){const e=y["a"].GQL.AwsApiGraphQL.injectAllOperations({}),a=()=>D(this,void 0,void 0,(function*(){const a=yield e.getUser(n.account.sub);t(N.Mutations.CREDIT_UPDATE,{credit:a.credit})})),o=()=>D(this,void 0,void 0,(function*(){const a=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},localStorage.setItem("credit.providentFund",JSON.stringify(e)),e)})(),o=yield e.getProvidentFund(n.account.sub);a.value=(null===o||void 0===o?void 0:o.amount)||0,t(N.Mutations.CREDIT_UPDATE,{providentFund:a})}));yield Promise.all([a(),o()]);const i=e=>new Promise((t=>{const a=Object(E["c"])({query_type:"income"});(()=>{D(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),r=e=>new Promise((t=>{const a=Object(E["c"])({query_type:"expense"});(()=>{D(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),s=e=>new Promise((t=>{const a=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[n,o]=a(),i=Object(E["c"])({query_type:"income",query_params:{createdAt:{oldest:n.toISOString(),latest:o.toISOString()}}});(()=>{D(this,void 0,void 0,(function*(){while(i.hasNext())yield i.fetch(),e(i.getData());t()}))})()}));Promise.all([i((e=>t(N.Mutations.CREDIT_UPDATE,{incomeTransactions:Object.values(e)}))),r((e=>t(N.Mutations.CREDIT_UPDATE,{expensesTransactions:Object.values(e)}))),s((e=>t(N.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:Object.values(e)})))])}));yield i(),E["b"].addHandlers({credit_changed:a=>{var n;return t(N.Mutations.CREDIT_UPDATE,{credit:(null!==(n=e.credit)&&void 0!==n?n:0)+a})},dp_expense_txn:a=>{const n=e.expensesTransactions.find((e=>e.id===a.id));n?t(N.Mutations.CREDIT_UPDATE_TXN,a):t(N.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]})},dp_income_txn:a=>{const n=e.incomeTransactions.find((e=>e.id===a.id));n?t(N.Mutations.CREDIT_UPDATE_TXN,a):t(N.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]});const o=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[i,r]=o();if(i.getTime()new Date(a.createdAt).getTime()){const n=e.incomeTodayTransactions.find((e=>e.id===a.id));n?t(N.Mutations.CREDIT_UPDATE_TXN,a):t(N.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:[...e.incomeTodayTransactions,a]})}},pf_value_changed:a=>{var n,o;return t(N.Mutations.CREDIT_UPDATE,{"providentFund.value":(null!==(o=null===(n=e.providentFund)||void 0===n?void 0:n.value)&&void 0!==o?o:0)+a})},pf_deposit_txn:a=>t(N.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]}),pf_withdraw_txn:a=>t(N.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]})},i),E["a"].enable({rootState:n,rootGetters:o,dispatch:a}),t(N.Mutations.CREDIT_SET_INIT_STATE,2)}))},CREDIT_CLEAR_DATA({commit:e,state:t}){return D(this,void 0,void 0,(function*(){2===t.isModuleInit&&(e(N.Mutations.CREDIT_SET_INIT_STATE,1),yield E["b"].disable(),yield E["a"].disable(),e(N.Mutations.CREDIT_CLEAR_DATA),e(N.Mutations.CREDIT_SET_INIT_STATE,0),console.log("credit data cleared"))}))}},W={transactions(e){const{incomeTransactions:t,expensesTransactions:a}=e;return{income:t,expenses:a}},incomeTodayTransactions(e){return e.incomeTodayTransactions}},H={namespaced:!1,state:M,mutations:F,actions:B,getters:W};var V=H,Q=a("508e"),G=a.n(Q),K=a("fb31"),Y=a.n(K),J={hideMenu:!0,autoHide:!1,language:"en-US",darkMode:"system",defaultVideoPlayer:Y.a.fileName,videoCacheTime:1,autoLaunch:!1,restore:!0,autoStartUnfinished:!0,seedSharingRate:!0,seedTime:!1,maximumDownloadNum:5,maximumConnectionsNum:20,saveLinkSeed:!1,unlimited:!0,continuousSeeding:!0,breakpointContinuation:!1,autoJumpToDownload:!0,notifyAfterDownloaded:!1,deleteConfirm:!1,defaultDeleteFiles:!1,uploadSpeed:-1,downloadSpeed:-1,payedUserShareRate:.7,downloadDirectory:"",autoUpload:!1,uploadDirectory:"",unlimitUploadAmount:!1,autoCheckUpdate:!0,useProxyService:!0,trackerSource:[{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt",label:"ngosang_best",cdn:!1},{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt",label:"ngosang_best_ip",cdn:!1}],trackerList:G.a.trackerList,autoUpdateTrackerServiceList:!0,trackerLastUpdateTime:"",listenPort:!1,BTlistenPort:21303,DHTlistenPort:26701,secureOption:"auto",bindMagnetUrl:!1,bindTorrentFile:!1,bindVideoFile:!1,bindVideoExts:{mp4:!1,mkv:!1,avi:!1,mov:!1,wmv:!1,rmvb:!1,flv:!1,webm:!1},bindAudioExts:{mp3:!1,wav:!1,aac:!1,flac:!1,m4a:!1,wma:!1},bindAudioFile:!1,dontAskForAssociate:!1,dontAskForPlayer:!1,userAgent:"",RPCauthorizationkey:"",versionChannel:"stable",githubPAT:"",lastUpdateCheckTime:Date.now(),disableDevTools:!0,minDiskSpace:512e6,autoDownload:!0,forceLogin:!0,libraryShowExplore:"remote",libraryRate:"G",libraryShowAllChannels:!1,libraryPreload:!0,showPreload:!1,downloadWithCellular:!1},Z=a("3fd2"),X=a.n(Z),ee=a("0f0c"),te=a("908d"),ae=a("d558"),ne=a("d710"),oe=a.n(ne),ie=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const re=Object(ee["a"])("version"),se=!re.match(/(internal|web)-dev$/),le=X.a.renderer(),ce=`${oe.a.name}_settings`,de=ge(),ue={UPDATE_SETTINGS(e,t){Object.assign(e,t),localStorage.setItem(ce,JSON.stringify(e))}},_e={updateSettings({commit:e},t){e("UPDATE_SETTINGS",t)},fetchSettings({dispatch:e}){return ie(this,void 0,void 0,(function*(){if(Object(ae["a"])())return new Promise((t=>{const a=localStorage.getItem(ce),o={};o&&(Object.assign(o,JSON.parse(a)),t(JSON.parse(a))),v["a"].once("fetch-settings",(a=>ie(this,void 0,void 0,(function*(){yield e("updateSettings",a),console.log("Fetch from server");for(const e in a)n["a"].set(o,e,a[e]);t(o)})))),v["a"].emit("fetch-settings")}));if(!le){const t=localStorage.getItem(ce),a=ge();return t||(te["b"].is.capacitor&&(a.forceLogin=!1),console.log("\n\n\n\n\n\n\n\n\n\n\n\nset web settings:",a)),yield e("updateSettings",a),a}const t=yield Promise.resolve().then(a.t.bind(null,"1b85",7)).then((e=>e.ipcRenderer.invoke("get-app-settings")));return yield e("updateSettings",t),t}))},set({dispatch:e,state:t},n){return ie(this,void 0,void 0,(function*(){if(Object(i["isEmpty"])(n))return;if(yield e("updateSettings",n),!le)return v["a"].emit("updateSettings",n);const{ipcRenderer:t}=yield Promise.resolve().then(a.t.bind(null,"1b85",7));console.log("set settings");const o=new Promise((e=>{t.once("set_settings_success",((t,a)=>{e(a)}))}));return t.send("set_settings",n),o}))},resetSettings({commit:e,dispatch:t}){if(le)return new Promise((t=>ie(this,void 0,void 0,(function*(){const{ipcRenderer:n}=yield Promise.resolve().then(a.t.bind(null,"1b85",7));n.once("reset_settings",((a,n)=>{console.log(n),e("UPDATE_SETTINGS",n),t(n)})),n.send("reset_settings")}))));{const t=Object(i["cloneDeep"])(J);return e("UPDATE_SETTINGGS",t),t}}},pe={settings(e){return e},isDevMode(e){return!e.disableDevTools||!se}},me={namespaced:!1,state:de,mutations:ue,actions:_e,getters:pe};var he=me;function ge(){const e=Object(i["cloneDeep"])(J),t=`${oe.a.name}_settings`,a="undefined"===typeof localStorage?null:localStorage.getItem(t);if(a){const t=JSON.parse(a);Object.assign(e,t)}return e}const fe={currentVideo:{pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0}},be={CURRENT_VIDEO_URL_MUTATION(e,t){e.currentVideo.url=t},CURRENT_VIDEO_PATH_MUTATION(e,t){e.currentVideo.path=t},CURRENT_VIDEO_SUBTITLE_LIST_MUTATION(e,t){e.currentVideo.subtitleList=t},CURRENT_VIDEO_CURRENT_TIME_MUTATION(e,t){e.currentVideo.currentTime=t},UPDATE_VIDEO_STATUS_MUTATION(e,t){e.currentVideo.status=t},UPDATE_VIDEO_PIP_STATUS_MUTATION(e,t){e.currentVideo.pipStatus=t},UPDATE_VIDEO_UPDATE_PLAYER_MUTATION(e,t){e.currentVideo.updatePlayer=t},SET_REMOTE_PLAY(e,t){e.currentVideo.infoHash=t,e.currentVideo.remotePlay=!0},RESET_INFOHASH(e){e.currentVideo.infoHash=""},RESET_REMOTE_PLAY(e){e.currentVideo.remotePlay=!1},RESET_PLAYER(){fe.currentVideo={pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0,subtitleList:[]}}},ye={currentVideoUrl({commit:e},t){e("CURRENT_VIDEO_URL_MUTATION",t)},currentVideoPath({commit:e},t){e("CURRENT_VIDEO_PATH_MUTATION",t)},currentVideoSubtitleList({commit:e},t){e("CURRENT_VIDEO_SUBTITLE_LIST_MUTATION",t)},currentVideoCurrentTime({commit:e},t){e("CURRENT_VIDEO_CURRENT_TIME_MUTATION",t)},updateVideoStatus({commit:e},t){e("UPDATE_VIDEO_STATUS_MUTATION",t)},updateVideoPIPStatus({commit:e},t){e("UPDATE_VIDEO_PIP_STATUS_MUTATION",t)},updatePlayer({commit:e},t){e("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",t)},remotePlay({commit:e},t){e("SET_REMOTE_PLAY",t)},resetInfoHash({commit:e}){e("RESET_INFOHASH")},resetRemotePlay({commit:e}){e("RESET_REMOTE_PLAY")},resetPlayer({commit:e}){e("RESET_PLAYER")}},ve={video(){return fe.currentVideo.url}},we={namespaced:!1,state:fe,mutations:be,actions:ye,getters:ve};var ke=we,Se=a("9572"),Ce=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const xe=new y["a"].Rest("ABDevRest"),$e={currentRoute:"/library",user:{id:"",name:"",description:"",avatar:""},userLoggedIn:!1,keychainState:{keychainData:{},unset:!0,hash:"",timestamps:{metadata:0},lib:null},followQueue:[]},Te={updateRoute(e,t){e.currentRoute=t},setUser(e,t){e.user=t},setKeychainState(e,t){Object.assign(e.keychainState,t)},addFollowQueue(e,t){e.followQueue.includes(t)||e.followQueue.push(t)},removeFollowQueue(e,t){while(e.followQueue.includes(t))e.followQueue.splice(e.followQueue.indexOf(t),1)}},ze=()=>Ce(void 0,void 0,void 0,(function*(){const e=()=>Ce(void 0,void 0,void 0,(function*(){const t=yield b["a"].currentUserInfo();return t&&t.attributes?t.attributes:yield e()}));return yield e()})),Pe={syncKeychainState({state:e,commit:t}){return Ce(this,void 0,void 0,(function*(){const a=()=>Ce(this,void 0,void 0,(function*(){const e=yield ze();let{"custom:key_metadata":t,"custom:key_lib":a}=e;return t=t?JSON.parse(t):{unset:!0,timestamps:{}},{metadata:t,lib:a}})),n=yield a();if(n){const e=e=>{if(!e.lib)return null;if(e.lib.startsWith("{"))return JSON.parse(e.lib);throw new Error("Failed to parseLib")};t("setKeychainState",{keychainData:n,unset:n.metadata.unset,hash:n.metadata.hash||"",timestamps:n.metadata.timestamps||{},lib:e(n)})}return e.keychainState}))},changeKeychainPassword(e,{oldPassword:t,password:a}){return Ce(this,void 0,void 0,(function*(){if(!t&&!a)throw Error("Invalid arguments");let e;t||(e="from_cognito"),a||(e="to_cognito"),yield xe.post("/keychain/changePassword",{password:t?Se["a"].digestPassword(t):void 0,newPassword:a?Se["a"].digestPassword(a):void 0,type:e})}))},getKeychainCloud({state:e,commit:t,dispatch:a},{password:n,mode:o,keyName:i}){return Ce(this,void 0,void 0,(function*(){const e=()=>Ce(this,void 0,void 0,(function*(){if(!["lib"].includes(i))throw new Error("invalid_keychain_keyname");const e=yield ze().then((e=>!!e[`custom:key_${i}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>Ce(this,void 0,void 0,(function*(){if("cognito_hash"===o){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===o){if(!n)throw new Error("keychain_password_not_found");return Se["a"].digestPassword(n)}throw new Error("invalid_keychain_mode")})))(),r=yield xe.post("/keychain/getKeychain",{password:t,keyName:i});if(!r)throw new Error("password_error");if(["epriv","epub","priv","pub"].some((e=>!r[e])))throw new Error("invalid_key");return console.log("getKeychainFromCloud:",r),r}))},createKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:o,mode:i,keyName:r}){return Ce(this,void 0,void 0,(function*(){const e=()=>Ce(this,void 0,void 0,(function*(){if(!["lib"].includes(r))throw new Error("invalid_keychain_keyname");const e=yield ze().then((e=>!!e[`custom:key_${r}`]));if(e)throw new Error("keychain_data_existed")}));yield e();const t=yield(()=>Ce(this,void 0,void 0,(function*(){if("cognito_hash"===i){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===i){if(!o)throw new Error("keychain_password_not_found");return Se["a"].digestPassword(o)}throw new Error("invalid_keychain_mode")})))();yield xe.post("/keychain/enableLibKey",Object.assign(Object.assign(Object.assign({},"cognito_hash"===i?{}:{password:t}),"cognito_hash"===i?{type:"cognito"}:{}),{keyName:r,keyData:JSON.stringify(n)})).catch(console.log)}))},updateKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:o,mode:i,keyName:r}){return Ce(this,void 0,void 0,(function*(){const e=()=>Ce(this,void 0,void 0,(function*(){if(!["lib"].includes(r))throw new Error("invalid_keychain_keyname");const e=yield ze().then((e=>!!e[`custom:key_${r}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>Ce(this,void 0,void 0,(function*(){if("cognito_hash"===i){const e=yield a("syncKeychainState");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===i){if(!o)throw new Error("keychain_password_not_found");return Se["a"].digestPassword(o)}throw new Error("invalid_keychain_mode")})))();yield xe.post("/keychain/updateKeychain",Object.assign(Object.assign(Object.assign({},"cognito_hash"===i?{}:{password:t}),"cognito_hash"===i?{type:"cognito"}:{}),{keyName:r,keyData:JSON.stringify(n)}))}))},disableKeychainCloud(e){return Ce(this,void 0,void 0,(function*(){yield xe.post("/keychain/disableKeychain")}))}};Object.defineProperty("undefined"===typeof window?global:window,"rest",{get(){return xe}});const Ae={libraryRoute(e){return e.currentRoute},libraryUser(){return $e.user},keychainState(){return $e.keychainState},followQueue(e){return e.followQueue}},Ie={namespaced:!1,state:$e,mutations:Te,actions:Pe,getters:Ae};var qe=Ie,Oe={downloader:m,account:O,credits:V,setting:he,video:ke,library:qe},Ee=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};n["a"].use(o["a"]);const De=new o["a"].Store({modules:Oe,strict:!1});t["a"]=De;Object.defineProperty(global,"vuex",{get(){return De}});const je=e=>["us"].includes(e.toLowerCase());if(Object(h["isElectron"])()){const{ipcRenderer:e}=a("1b85");e.on("app-init",(()=>Ee(void 0,void 0,void 0,(function*(){const e=global["require"]("geoip-country"),t=yield(yield fetch("https://api.ipify.org")).text(),a=e.lookup(t);a&&(console.log("Init user with ip",t,a),je(a.country)&&(console.log(`User country: ${a.country}. Enable secure.'`),De.dispatch("set",{secureOption:"enable"})))}))))}},"55e6":function(e,t,a){"use strict";a("0336")},"571b":function(e,t,a){},"572d":function(e,t){e.exports=require("url")},"586d":function(e,t,a){"use strict";a.r(t),a.d(t,"onGeneralUpdate",(function(){return n})),a.d(t,"onMessage",(function(){return o})),a.d(t,"onUpdateUserFromId",(function(){return i})),a.d(t,"onCreditChange",(function(){return r})),a.d(t,"onUpdateExpensesFromId",(function(){return s})),a.d(t,"onUpdateIncomeFromId",(function(){return l})),a.d(t,"onCreateUser",(function(){return c})),a.d(t,"onUpdateUser",(function(){return d})),a.d(t,"onDeleteUser",(function(){return u})),a.d(t,"onCreateInvitation",(function(){return _})),a.d(t,"onUpdateInvitation",(function(){return p})),a.d(t,"onDeleteInvitation",(function(){return m})),a.d(t,"onCreateMessageTimer",(function(){return h})),a.d(t,"onUpdateMessageTimer",(function(){return g})),a.d(t,"onDeleteMessageTimer",(function(){return f})),a.d(t,"onCreateTransaction",(function(){return b})),a.d(t,"onUpdateTransaction",(function(){return y})),a.d(t,"onDeleteTransaction",(function(){return v})),a.d(t,"onCreateTask",(function(){return w})),a.d(t,"onUpdateTask",(function(){return k})),a.d(t,"onDeleteTask",(function(){return S})),a.d(t,"onCreateProvidentFund",(function(){return C})),a.d(t,"onUpdateProvidentFund",(function(){return x})),a.d(t,"onDeleteProvidentFund",(function(){return $}));const n="\n subscription OnGeneralUpdate($id: String!) {\n onGeneralUpdate(id: $id) {\n id\n channel\n data\n }\n }\n",o="\n subscription OnMessage($channel: String!, $params: String) {\n onMessage(channel: $channel, params: $params) {\n channel\n data\n }\n }\n",i="\n subscription OnUpdateUserFromId($id: String!) {\n onUpdateUserFromId(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",r="\n subscription OnCreditChange($ownerId: String!) {\n onCreditChange(ownerId: $ownerId) {\n ownerId\n amount\n }\n }\n",s="\n subscription OnUpdateExpensesFromId($payerId: String!) {\n onUpdateExpensesFromId(payerId: $payerId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",l="\n subscription OnUpdateIncomeFromId($payeeId: String!) {\n onUpdateIncomeFromId(payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",c="\n subscription OnCreateUser($id: String) {\n onCreateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n subscription OnUpdateUser($id: String) {\n onUpdateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n subscription OnDeleteUser($id: String) {\n onDeleteUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",_="\n subscription OnCreateInvitation($inviterId: String) {\n onCreateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n subscription OnUpdateInvitation($inviterId: String) {\n onUpdateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n subscription OnDeleteInvitation($inviterId: String) {\n onDeleteInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",h="\n subscription OnCreateMessageTimer {\n onCreateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n subscription OnUpdateMessageTimer {\n onUpdateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n subscription OnDeleteMessageTimer {\n onDeleteMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",b="\n subscription OnCreateTransaction($payerId: String, $payeeId: String) {\n onCreateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n subscription OnUpdateTransaction($payerId: String, $payeeId: String) {\n onUpdateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n subscription OnDeleteTransaction($payerId: String, $payeeId: String) {\n onDeleteTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n subscription OnCreateTask {\n onCreateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n subscription OnUpdateTask {\n onUpdateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n subscription OnDeleteTask {\n onDeleteTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",C="\n subscription OnCreateProvidentFund($id: String) {\n onCreateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n subscription OnUpdateProvidentFund($id: String) {\n onUpdateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",$="\n subscription OnDeleteProvidentFund($id: String) {\n onDeleteProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},5960:function(e,t,a){},5984:function(e,t,a){},"5a2f":function(e,t,a){"use strict";a("7447")},"5ab7":function(e,t,a){"use strict";a("3361")},"5ae9":function(e,t){e.exports=require("crypto")},"5bb9":function(e,t,a){"use strict";a("cf6e")},"5ccc":function(e,t,a){},"5d03":function(e,t,a){},"5d61":function(e){e.exports=JSON.parse('{"lib_index":"Дом","lib_edit":"Публиковать","lib_publish":"Публиковать","lib_explore":"Исследовать","lib_following":"Следующий","lib_favorite":"Местные избранные","lib_local_favorites":"Местные избранные","lib_channel":"Канал","lib_submit":"Представлять на рассмотрение","lib_from_network":"Использование децентрализованной базы данных из сети","welcome_to_lib":"Добро пожаловать в ${displayName} Медиатеку","register_or_login":"Регистрация Войти","lib_recommend":"Рекомендовать","lib_recommend_desc":"Добро пожаловать в библиотеку ${displayName}! Эта библиотека использует децентрализованную базу данных из сети. Чтобы начать использовать его, вам нужно следить за некоторыми каналами.","follow_any_channel_to_continue":"Подпишитесь на любой канал, чтобы продолжить","follow_channels_and_continue":"Следите за каналами {0} и продолжайте","show_more_for_me":"Показать больше для меня","no_more_recommend":"Больше не рекомендую","key":"Ключ","create_key":"Создать ключ","save_key":"Сохранить ключ","save_key_file":"Вы хотите сохранить свой ключ в виде файла?","import_key":"Ключ импорта","import":"Импортировать","invalid_key":"Неправильный ключ","back_to_top":"Наверх","search_for_channel":"Поиск идентификатора канала","search_channel_no_result":"Не удается найти канал с идентификатором {0}","please_input_channel_id":"Пожалуйста, введите идентификатор канала","welcome_help_text":"Это децентрализованная медиатека. Тебе нужно\\n создать учетную запись для этой базы данных. Мы будем\\n автоматически сгенерирует для вас персональный ключ.\\n Если у вас уже есть ключ, вы также можете импортировать\\n это здесь.","welcome_key_text":"После входа в систему нажмите кнопку [СОХРАНИТЬ КЛЮЧ].\\n в правом нижнем углу, чтобы сохранить закрытый ключ.\\n Если вы потеряете свой ключ, вы не сможете снова войти в систему.","redirect_to_recommend":"Кажется, вы не следили за каким-либо каналом. Перенаправление на страницу [Обзор].","channel":"Канал","follow":"Следовать","unfollow":"Отписаться","following":"Следующий","share":"Делиться","unfollow_confirm":"Вы уверены, что хотите отписаться от этого канала? Все сообщения этого канала в вашей хронике будут удалены.","follow_failed_hint":"Операция все еще выполняется в фоновом режиме. Если операция не применяется в течение длительного времени, перезапустите приложение и повторите попытку.","block":"Блокировать","unblock":"Разблокировать","blocked":"Заблокировано","block_channel":"Заблокировать этот канал","block_channel_confirm":"Заблокировать канал удалит его из вашей временной шкалы. Вы можете управлять своим черным списком в настройках учетной записи.","block_creator":"Заблокировать создателя этого канала","unblock_creator":"Разблокировать создателя этого канала","block_creator_confirm":"Создатель блока удалит все каналы, созданные этим создателем, из вашей хроники. Вы можете управлять своим черным списком в настройках учетной записи.","share_url_copied":"URL-адрес общего доступа скопирован в буфер обмена","follow_time":"Следите за временем","update_time":"Время обновления","search":"Поиск","type":"Тип","added":"Добавлен","click_to_task":"Нажмите, чтобы перейти к задаче","lib_already_added":"Вы уже добавили это видео","description":"Описание","poster":"Плакат","channel_poster":"Афиша канала","preview":"Предварительный просмотр","creator":"Создатель","creator_detail":"Сведения о создателе","loading_creator":"Загрузка информации о создателе","wait_for_creator_loaded":"Подождите, пока загрузится информация о создателе.","follower":"Последователь","followers":"Последователи","follower_list":"Список подписчиков","user":"Пользователь","channel_title":"Название канала","channel_id":"Идентификатор канала","post_title":"Заголовок поста","post_id":"Идентификатор сообщения","import_data_from_excel":"Импортировать данные из excel","set_excel_keys":"Установить клавиши Excel","excel_import_succeded":"Импорт Excel выполнен успешно","excel_import_success_msg":"Строки {0} готовы к добавлению, {1} недействительны, а повторяющиеся элементы {2} игнорируются.","cannot_find_channel":"Не могу найти канал","cannot_find_posts":"Не могу найти сообщения","add_channel":"Добавить канал","add_post":"Добавить сообщение","edit_channel":"Изменить канал","channel_setting":"Настройка канала","edit_post":"Редактировать пост","edit_posts":"Редактировать сообщения","channel_detail":"Сведения о канале","remove":"Удалять","remove_channel":"Удалить канал","remove_channel_confirm":"Вы уверены, что хотите удалить этот пост? Это не может быть восстановлено.","remove_post":"Удалить сообщение","remove_post_confirm":"Вы уверены, что хотите удалить этот канал? Это не может быть восстановлено.","preview_mode":"Режим предварительного просмотра","preview_mode_desc":"Это предварительный просмотр вашего канала. Здесь показаны все рейтинги фильмов.","edit_user_profile":"Изменить профиль пользователя","name":"Псевдоним","avatar":"Аватар","no_following":"Нет следующих каналов. Нажмите, чтобы перейти","no_recommend":"Нет рекомендуемых каналов. Нажмите, чтобы перейти","first_recomment_msg":"Это может занять некоторое время, если это первое приложение, которое запускается.","invalid_image":"Недопустимое изображение","image_not_reachable":"URL этого изображения недоступен.","channel_not_found":"Канал не найден","cannot_get_channel_info":"Не могу получить информацию о канале. Этот канал может быть удален его создателем и больше недоступен.","validate_error":"Подтвердить ошибку","validate_user_name_no_space":"Имя пользователя не должно содержать пробелов","validate_url_no_space":"URL не должен содержать пробелов","validate_user_name_length":"Имя пользователя должно иметь длину от {0} до {1}.","validate_user_desc_length":"Описание пользователя не должно превышать {0} символов.","validate_user_avatar_url":"Аватар пользователя должен быть URL длиной менее 2048 символов.","validate_channel_title_length":"Название канала должно иметь длину от 1 до 100.","validate_channel_desc_length":"Описание канала должно иметь длину от 10 до 300","validate_channel_image_url":"URL-адрес предварительного просмотра канала должен содержать менее 2048 символов.","validate_post_title_length":"Заголовок сообщения должен иметь длину от 1 до 100.","validate_post_desc_length":"Описание поста должно иметь длину от 10 до 300","validate_post_image_url":"Плакат должен быть URL-адресом, содержащим менее 2048 символов.","validate_post_url":"Недействительный URL-адрес ${displayName}","validate_post_url_length":"${displayName} Длина URL не должна превышать 2048 символов.","film_rate":"Скорость фильма","set_film_rate":"Установить скорость фильма","select_a_rate_before_enter":"Перед входом в медиатеку необходимо выбрать скорость фильма.","library_available_rate":"Доступная в библиотеке скорость фильма","rate_g":"G – обычная аудитория","rate_g_desc":"Допускаются все возрасты. Ничего, что могло бы обидеть родителей за просмотр детьми.","rate_pg":"PG – рекомендуется родительский контроль","rate_pg_desc":"Некоторые материалы могут не подходить для детей. Родителей призвали дать «родительское руководство». Может содержать некоторые материалы, которые родителям могут не понравиться для их маленьких детей.","rate_pg_13":"PG-13 – Родители строго предупреждены","rate_pg_13_desc":"Некоторые материалы могут быть неприемлемы для детей младше 13 лет. Родителям настоятельно рекомендуется быть осторожными. Некоторые материалы могут быть неподходящими для подростков.","rate_r":"R - Ограничено","rate_r_desc":"До 17 лет требуется сопровождающий родитель или взрослый опекун. Содержит материалы для взрослых. Родителям настоятельно рекомендуется узнать больше о фильме, прежде чем брать с собой маленьких детей.","rate_nc_17":"NC-17 – Только для взрослых","rate_nc_17_desc":"Никто в возрасте 17 лет и младше не допускается. Явно взрослый. Дети не допускаются.","set_as_private":"Установить как личное","hide_in_explore":"Скрыть этот канал на странице исследования","hidden":"Скрытый","select_a_rate":"Пожалуйста, выберите рейтинг фильма","select_from_tasks":"Выбрать из задач","import_from_magnet":"Импорт из магнита:?...","input_magnet_url":"Входной магнит:? URL","task_title":"Название задачи","set_title":"Установить заголовок","add_to_local_favorites":"Добавить в избранное","remove_from_local_favorites":"Удалить из местных избранных","removed_favorite":"Удалено из избранного","import_or_export_favorites":"Импорт/экспорт избранного","export_local_favorites":"Экспорт локального избранного в качестве резервной копии","import_favorites_file":"Импорт файла избранного","not_a_favorite_file":"Этот файл не является любимым файлом резервной копии","connection_status":"Состояние подключения","gun_server_list":"Узлы кэша","custom_nodes":"Пользовательские узлы кэша","custom_nodes_hint":"Пользовательские узлы кэша будут применены после перезапуска приложения.","wait_for_reboot":"Ожидание перезагрузки...({seconds}s)","reboot_now":"Перезагрузить сейчас","reboot_later":"Перезагрузить позже","peer_list":"Прямые узлы","server":"URL-адрес узла","peer":"Вглядеться","peer_id":"Идентификатор узла","connection":"Связь","data_source":"Источник данных","sync":"Синхронизировать","syncing":"Синхронизации","sync_completed":"Синхронизация завершена","got_all_post":"Вы уже получили все сообщения","placeholder_channel_title":"Название вашего канала","placeholder_channel_desc":"Описание этого канала","placeholder_post_title":"Название фильма (год)","placeholder_post_desc":"Описание этого фильма","private_channel":"Частный канал","creator_blocked":"Создатель заблокирован","go_to_library":"Идти в библиотеку?","go_to_library_channel_msg":"Хотите перейти на библиотечный канал {0}?","magnet_does_not_have_name":"Этот магнит:? URL-адрес не имеет имени, вам нужно сначала добавить заголовок сообщения.","no_available_post":"Нет доступной записи","following_channel_no_post":"На всех ваших следующих каналах нет доступных сообщений. Это может быть вызвано сетевой ошибкой. Если вы уже подписались на некоторые каналы, сообщения могут быть загружены позже.","share_to_library":"Поделиться в библиотеке","quick_start":"Быстрый старт","quick_start_desc":"Начните создавать пост с заданием или файлом","select_file":"Выберите файл...","select_folder":"Выберите папку...","post_options":"Параметры публикации","channel_options":"Параметры канала","create_new_channel":"Создать новый канал","use_existed_channel":"Использовать существующий канал","select_existed_channel":"Выберите существующий канал","uploaded_by":"{title} загружено пользователем {name}","created_by":"{title} создано {name}","creating_new_channel":"Создание нового канала...","created_new_channel":"Создан новый канал","creating_new_post":"Создание нового поста...","created_new_post":"Создан новый пост","create_new_post":"Создать новый пост","quick_start_timeout":"{0} тайм-аут. Это может быть вызвано сетевой ошибкой. Пожалуйста, повторите попытку позже.","file_too_large":"Файл слишком большой","file_too_large_msg":"Размер этого файла превышает 4 ГБ ({size}), и его подготовка может занять много времени. Вы уверены, что хотите продолжить?","resolving_folder_files":"Разрешение файлов папки...","folder_too_large":"Папка слишком большая","folder_too_large_msg":"Размер файлов в этой папке превышает 4 ГБ (всего {size}), поэтому подготовка задачи может занять много времени. Вы уверены, что загрузите?","creating_new_task":"Создание новой задачи...","cannot_create_task":"Не могу создать задачу","cannot_create_task_msg":"Это может быть вызвано некоторой ошибкой. Если задача создана правильно, вы можете проверить список задач позже.","cannot_get_task_name":"Не удается получить имя задачи. Сначала вам нужно ввести один.","remove_old_task":"Удалить старую задачу","remove_old_task_desc":"В веб-режиме можно создать только одну задачу за раз. Удалить старую задачу?","subtitle_list":"Список субтитров","optional":"необязательный","with_subtitle":"С субтитрами {language}","maximumSubtitleNum_limit":"Количество субтитров достигло своего максимума","add_subtitle_url":"Добавьте ссылку на скачивание субтитров","cannot_add_subtitle":"Не удалось добавить субтитры","cannot_add_subtitle_msg":"Не выбран язык субтитров или недействительная ссылка для скачивания.","support_subtitle_type":"Поддерживаются только субтитры в формате srt и vtt.","recommend_opensubtitles":"Рекомендуется использовать ссылку или идентификатор загрузки субтитров на www.opensubtitles.org.","take_down":"Снять","serious_violation":"Серьезное нарушение","copyright_disputes":"Споры об авторских правах","adults_only":"Только для взрослых","takedown_reason":"Причина удаления","takedown_mode":"Режим тейкдауна","admins":"Админы","takedown_user":"Удалить этого автора","takedown_channel":"Удалить этот канал","takedown_post":"Удалить этот пост","select_takedown_reason":"Выберите причину удаления","takedown_invalid_reason":"Неверная причина удаления","takedown_invalid_user_id":"Недопустимый идентификатор пользователя. Идентификатор должен содержать 87 символов.","takedown_invalid_channel_id":"Недопустимый идентификатор канала. ID должен содержать 20 символов.","takedown_invalid_post_id":"Неверный идентификатор сообщения. ID должен содержать 20 символов.","takedown_management":"Снять управление","users":"Пользователи","channels":"каналы","posts":"Сообщения","you":"Ты","preset":"Предустановка","admin":"Администратор","committee":"комитет","about_takedown_mode":"О режиме удаления:\\nПредустановка: настроена в репозитории github. Все они будут удалены из библиотеки.\\nАдминистратор: Любой из админов, за которого проголосовали, будет удален.\\nКомитет: Не менее половины админов проголосовали за удаление.","cannot_edit_preset":"Вы не можете редактировать эту строку, так как это предустановленная строка.","cannot_edit_not_vote":"Вы не можете редактировать эту строку, так как вы не проголосовали за нее","remove_vote":"Удалить свой голос","post_preload_failed":"Не удалось предварительно загрузить это сообщение. Ссылка для скачивания может быть устаревшей, поэтому этот пост нельзя воспроизвести сразу.","about_cache_node":"Об узле кеша","edit_cache_node":"Изменить узел кеша","create_cache_node":"Создать кеш-узел","about_cache_node_desc":"${displayName} использует пушечный сервер в качестве кеш-узла. Вы можете редактировать пользовательские узлы в предварительной настройке","learn_how_to_deploy_gun":"Узнайте, как развернуть собственный оружейный сервер","repeat_add":"Задача добавлена, больше не добавляйте","upload":"Загрузить","download":"Скачать","delete":"Удалить","delete_task":"Удалить задачу","delete_confirm_message":"Удалить эту задачу? Это необратимо","also_delete_files":"Также удалить файлы","default_delete_files":"Удаление загруженных файлов по умолчанию после удаления задачи","not_now":"Не сейчас","delete_autoupload_confirm":"Эта задача содержит файл, который вы поместили в каталог автозагрузки. Удаление этой задачи также приведет к удалению файла.","delete_anyway":"Все равно удалить","upload_too_many_files":"Загрузить слишком много файлов","ask_if_unlimit_upload_amount":"Каталог автозагрузки содержит слишком много файлов. Вы хотите отключить ограничение суммы загрузки? * Это может вызвать проблемы с производительностью","disable_limitation":"Отключить ограничение","not_length":"Работа с несколькими файлами в настоящее время не поддерживается. Пожалуйста, сотрудничайте","download_torrent":"Загрузить файл","upload_torrent":"Загрузить файл","files":"Файлы","file":"Файл","folder":"Папка","start_all":"Начать все","pause_all":"Приостановить все","remove_all":"Убрать все","upload_all":"Загрузить все","clear_history":"Чистая история","pause_all_finish_payments":"На этом все платежи закончатся.","accelerating":"Ускорение","link_task":"Связать задачу","torrent_task":"Файловая задача","ok":"ХОРОШО","cancel":"Отмена","download_directory_position":"Загрузить положение каталога","torrent_file":"файл задачи","magnetic_link_incorrect":"Неверный формат ссылки","delete_fail":"Удалить не удалось","pause":"Пауза","paused":"Приостановлено","stop_torrent":"Останавливаться","seed":"Семя","resume":"Резюме","downloading":"Загрузка","downloaded":"Скачано","uploading":"Загрузка","auto_uploading":"Автоматическая загрузка","uploaded":"Загружено","pending":"Жду других задач","verifying":"Проверка","waiting_for_verify":"Ожидание проверки","seeding":"Посев","completed":"Завершенный","status":"Положение дел","task_name":"Название задачи","size":"Размер","progress":"Прогресс","sort":"Сортировать","ascending":"Восходящий","descending":"По убыванию","file_loading":"Загрузка файла...","loading":"Загрузка","unknown_status":"Неизвестный","play_while_downloading":"Играть...","upload_or_play":"Загрузить / Воспроизвести","play":"Играть","ask_if_upload_file":"Загрузить файл?","ask_if_upload_or_play":"Загрузить или воспроизвести файл?","torrent_error":"Ошибка при добавлении задачи:","no_peers":"Повторите попытку более {0} раз, и нет доступных одноранговых узлов","torrent_exists":"Задача уже существует.","show_origin_torrent":"Получить исходный файл задачи или URL-адрес","show_directory":"Открыть каталог этого торрента","task_num":"Задания","total_upload_speed":"Скорость загрузки","total_download_speed":"Скорость загрузки","path_missing":"Ошибка: не удается найти торрент-путь","origin_not_found":"Не удается найти информацию об исходной задаче.","text_copied":"URL Magnum скопирован в буфер обмена","copy_magnet_uri":"Копировать магнит:? URI","copy_download_uri":"Скопировать URI загрузки","copy_share_uri":"Скопировать общий URI","uri_copied":"URI успешно скопирован в буфер обмена","uri_copy_failed":"Не удалось скопировать uri","more":"Более...","toggle_list_mode":"Переключить режим списка","comment":"комментарий","operations":"Операции","open_directory":"Открыть каталог","no_downloading_task":"Нет задачи загрузки","remove_all_downloading_tasks":"Удалить все задачи загрузки?","remove_all_upload_tasks":"Удалить все задачи загрузки?","remove_autoupload_files":"Убрать автозагрузку файлов","remove_all_history":"Удалить всю историю?","remaining":"Оставшийся","created_time":"Время создания","used_time":"Использованное время","completed_time":"Завершенное время","yesterday":"Вчера","before_yesterday":"{empty}","earlier":"Ранее","miss_file":"Некоторые файлы отсутствуют","delete_miss_file_task":"Отсутствуют файлы fome в {0}.","common_peer":"Общий пир","ab_peer":"${displayName} коллега","ab_peer_verified":"Подтвержденный партнер ${displayName}","ab_peer_available":"${displayName} доступный пир(ы)","alphabiz_accelerating":"${displayName} ускорение","income":"Доход","income_info":"Доход(сегодня/всего)","total_income_info":"Доход: {0}(сегодня) / {1}(всего)","login_to_see_income":"Войдите, чтобы увидеть статистику доходов","credit_cost":"Стоимость кредита","downloaded_by_payment":"Скачано платежами","file_not_found":"Не удается найти этот файл в локальной","no_task":"Не спрашивай","no_matched_task":"Нет подходящей задачи","space_not_enough":"Недостаточно места на диске","need_more_space":"Требуется больше места на {0}, но на текущем диске свободно {1} (зарезервировано {2}). Задачи приостановлены. Предварительная загрузка библиотеки отключена. Вы можете снова включить его в [Настройки - Дополнительные].","seeders":"Сеялки","last_update":"Последнее обновление","connecting":"Подключение","connected":"Связанный","request_timed_out":"Истекло время запроса","connection_failed":"Ошибка подключения","invalid_download_url":"Неверный URL-адрес загрузки","download_link":"ссылка для скачивания","empty_files":"Нет файлов в каталоге","duplicate_task":"Дублировать задачу","duplicate_tracker":"Дублирующий трекер","this_task_not_ready":"Эта задача не готова. Приостановка этой задачи приведет к ее непосредственному удалению.","some_task_not_ready":"Некоторые задачи не готовы. Приостановка этих задач приведет к их непосредственному удалению.","failed_to_delete_files":"Не удалось удалить файлы","failed_to_delete_files_desc":"Не удалось удалить некоторые файлы задания. Возможно, вам придется удалить их вручную","unknown_error":"Неизвестная ошибка: {0}","more_files_are_not_shown":"({0} дополнительные файлы не отображаются из соображений производительности)","no_available_file":"Нет доступного файла. Пожалуйста, дождитесь готовности задачи.","service_worker_error":"Не удается загрузить ServiceWorker для игры. Возможно, ваш браузер не поддерживает эту функцию, или ServiceWorker не активирован. Возможно, вам придется перезагрузить эту страницу и повторить попытку.","add_task_first":"Сначала нужно добавить задачу.","player_task_time":"Игрок слишком долго готовится к игре. Возможно, что-то не так с заданием.","web_mode_hint":"Веб-режим ${displayName} поддерживает только одноранговые узлы WebRTC. Для получения наилучших результатов загрузите настольное приложение ${displayName}.","web_mode_task_hint":"Нажмите кнопки ниже, чтобы добавить задачу. Вы можете добавить только одну задачу за один раз.","save_to_local":"Сохранить в локальном","save_as_zip":"Сохранить как ZIP","creating_save_file":"Создание файла сохранения...","upload_as_one_directory":"Загрузить как один каталог","upload_as_single_files":"Загружать отдельными файлами","web_mode_upload_single":"Вы можете загрузить только один файл в веб-режиме","download_success":"Скачать успешно","download_fail":"Загрузка не удалась","wait_for_downloaded_to_share":"Пожалуйста, дождитесь загрузки задания, прежде чем делиться им.","download_with_cellular":"Скачивайте задания с помощью сотовой связи","download_with_cellular_desc":"Вы используете сотовую сеть. Загрузка задач с помощью сотовой связи может взимать дополнительную плату с вашего оператора связи.","download_with_cellular_confirm":"Еще скачать с сотовой связи","language":"Язык","appearance":"Появление","darkModeSystem":"Система","darkModeLight":"Свет","darkModeDark":"Темный","basic_setting":"Базовый","hideMenu":"Скрыть меню приложений (только для Windows и Linux)","autoHide":"Автоматическое скрытие окна","autoStart":"Открыть при входе","restore":"Сохранять размер и положение окна при выходе","autoStartUnfinished":"Автоматически возобновлять все незавершенные задачи","default_download_path":"Путь по умолчанию","download_directory":"Скачать каталог","upload_directory":"Загрузить каталог","enable_auto_upload":"Включить автоматическую загрузку","unlimit_upload_amount":"Неограниченная сумма загрузки","unlimit_upload_warning":"Разрешить загружать большое количество файлов. Это может вызвать проблемы с производительностью","start":"Запускать","transport_setting":"Передача инфекции","upload_limit":"Лимит загрузки","download_limit":"Лимит загрузки","payed_user_share_rate":"Доля оплаченных пользователей","unlimited":"Неограниченный","limit_input_error":"Число лимита должно быть положительным","BT_setting":"Параметры задачи","saveLinkSeed":"Сохранить ссылку как файл задачи","autoDownload":"Автоматически загружать ссылку и контент","continuousSeeding":"Продолжайте заполнение, пока не остановите его вручную","seedSharingRate":"Соотношение семян","seedTime":"Начальное время (минуты)","task_manage":"Управление задачами","maximumDownloadNum":"Максимальное количество активных задач","maximumConnectionsNum":"Максимальное количество подключений на сервер","range_error":"Диапазон должен быть между {0} и {1}.","random":"случайный","breakpointContinuation":"Продолжать","automaticSkip":"Автоматически показывать загрузку после добавления задачи","afterNotification":"Уведомление после завершения загрузки","deleteConfirm":"Перед удалением задачи не требуется подтверждение","submit":"Сохранить и применить","discard":"Отказаться","reset":"Перезагрузить","reset_all_settings":"Сбросить все настройки?","preferences_resetted":"Настройки сброшены","traditional_chinese":"традиционный китайский","japanese":"Японский","english":"Английский","chinese":"Упрощенный китайский","advancedSettings":"Передовой","autoUpdate":"Автоматическое обновление","autoCheckUpdate":"Автоматически проверять наличие обновлений","proxy":"Прокси","useProxyService":"Включить прокси","trackerService":"Трекерные серверы","recommendUse":"рекомендуемые","autoUpdateTrackerServiceList":"Автоматически обновлять список трекеров каждый день","manualUpdateTracker":"Ручное обновление","manualUpdateSuccess":"Успешно обновить серверы отслеживания","manualUpdateFail":"Не удалось обновить с:","listenPort":"Прослушивание портов","BTlistenPort":"Порт передачи данных","DHTlistenPort":"Распределенный хэш-порт","protocols":"Совместимые протоколы","setDefaultClientForFollowingProtocols":"Установить в качестве клиента по умолчанию для следующих протоколов","magnetUrl":"Магнит","video_file":"Видеофайл","audio_file":"Аудиофайл","security":"Безопасность","impersonateUserAgent":"Имитация пользовательского агента","RPCauthorizationkey":"Секрет RPC","viewDocument":"Посмотреть секретное руководство RPC","developer":"Разработчик","applicationLogPath":"Путь к журналу приложения","downloadSessionPath":"Скачать путь сеанса","resetDownloadSessionRecord":"Сбросить сеанс загрузки","restoreInitialSettings":"Сброс к заводским настройкам","preferences_set_successfully":"Сохраните настройки успешно!","preferences_set_fail":"Не удалось сохранить настройки!","change_not_save":"Изменения не сохраняются","discard_all_changes":"Отменить все изменения и уйти?","stay_in_page":"Оставайтесь на странице","disk_usage":"Использование диска","pause_if_less_space":"Пауза и уведомление, если места меньше (МБ)","default_video_player":"Видеопроигрыватель по умолчанию","video_cache_time":"Кэш потокового воспроизведения","minutes":"минуты","system_default":"Системные установки по умолчанию","media_player":"Медиа плеер","library_film_rate":"Доступная скорость фильма","library_show_explore":"Показать страницу [Исследовать]","library_setting":"Настройка библиотеки","library_sync_setting":"Настройка синхронизации библиотеки","keychain_sync_status":"Статус синхронизации связки ключей","sync_with_aws":"Синхронизируйте связку ключей с Amazon Web Services","backup_to_local":"Резервное копирование в локальный файл","enable_sync_with_aws":"Включить синхронизацию с AWS","disable_sync_with_aws":"Отключить синхронизацию с AWS","disable_sync_with_aws_desc":"Это удалит сохраненный ключ на сервере. Пожалуйста, убедитесь, что вы уже экспортировали свой ключ.","input_independent_password":"Введите независимый пароль","change_independent_password":"Изменить независимый пароль","password_error":"Ошибка пароля","password_invalid":"Неверный пароль","key_existed":"Ключ существовал","key_not_found":"Ключ не найден","library_recommend":"Библиотека рекомендует","show_all_channels":"Показать все каналы на странице рекомендаций библиотеки","not_logged_in":"Не вошел","login_to_continue":"Войдите, чтобы продолжить","mnemonic_code":"Мнемонический код","wordlist":"Список слов","restore_code":"Восстановить из кода","generate_code":"Сгенерировать код","export_mnemonic_code":"Экспорт мнемонического кода","import_mnemonic_code":"Импорт мнемонического кода","print":"Распечатать","save_as_txt":"Сохранить как текст","save_as_pdf":"Сохранить как PDF","from_file":"Из файла","not_valid_mnemonic_code":"Это неверный мнемонический код.","cannot_parse_code_as_key":"Не удается разобрать этот мнемонический код как библиотечный ключ","import_key_hint":"Вы уверены, что хотите импортировать этот ключ? Это восстановит ваш старый ключ в библиотеке.","import_key_confirm":"Да, импортировать.","library_preload":"Предварительно загрузить задачи из библиотеки","show_preload":"Показать задачи предварительной загрузки","set_download":"Установить каталог загрузки","set_download_desc":"Для версии App Store для macOS каталог загрузки по умолчанию находится в песочнице приложения и будет удален после удаления приложения. Если вы хотите сохранить загруженные файлы, вам нужно выбрать другой каталог загрузки вручную.","home":"Дом","home_caption":"Загрузка/выгрузка и медиафайлы","library":"Библиотека","library_caption":"Исследуйте медиа-ресурсы","player":"Игрок","player_caption":"Медиа плеер","credits":"Кредиты","credits_caption":"Проверить баланс счета","account":"Счет","account_caption":"Войти/Зарегистрироваться/Управление","settings":"Настройки","settings_caption":"Настройки для приложения, плеера, учетной записи","development":"Разработка","development_caption":"Режим разработчика для внутреннего использования","basic":"Базовый","basic_caption":"Базовые настройки","advanced":"Передовой","advanced_caption":"Расширенные настройки","blockchain":"Кошелек","blockchain_caption":"${displayName} Децентрализованный кошелек","internal_notice":"Уведомление о внутреннем выпуске","release_notes":"Примечания к выпуску","terms_and_conditions":"Условия и положения","license_and_listen_notices":"Лицензия и прослушивание уведомлений с открытым исходным кодом","close":"Закрывать","success":"Успех","fail":"Неудача","account_email_invalid_address":"Неверный адрес электронной почты","account_email_invalid_domain":"Недействительный домен электронной почты","account_email_unknown_status":"Неизвестный статус доставки электронной почты","account_email_unavailable_address":"Недоступный адрес электронной почты","account_email_suppressed_address":"Заблокированный адрес электронной почты","account_loading":"Загрузка...","account_is_required":"требуется","account_sign_in_your_account":"Войти","account_username":"Имя пользователя","account_username_email_phone":"Номер телефона или электронная почта","account_password":"Пароль","account_new_password":"Новый пароль","account_re_enter_password":"Повторно введите пароль","account_password_not_equal":"Два пароля не равны","account_new_password_same":"Пароль такой же, как исходный пароль","account_forgot_your_password":"Забыли пароль?","account_reset_password":"Сброс пароля","account_sign_in":"Войти","account_signed_in":"Вошел","account_sign_up":"Зарегистрироваться","account_find_your_account":"Найти ваш аккаунт","account_enter_your_username":"Введите свой номер телефона или адрес электронной почты","account_search":"Поиск","account_email_sent_tip":"На вашу электронную почту отправлено письмо с кодом подтверждения:","account_phone_sent_tip":"На ваш телефон отправлено SMS с кодом подтверждения:","account_email_phone_sent_tip":"Электронное письмо и SMS с кодом подтверждения были отправлены на ваш адрес электронной почты и телефон соответственно:","account_software_token_tip":"Для вашей учетной записи включена функция MFA. Чтобы завершить вход, включите или просмотрите свое устройство и введите TOTP.","account_reset_your_password":"Сбросить пароль","account_verification_code":"Проверочный код","account_resend_code":"Отправить код еще раз","account_code_has_been_resent":"Код подтверждения отправлен повторно","account_password_has_been_reset":"Пароль был сброшен","account_submit":"Представлять на рассмотрение","account_sign_up_your_account":"Зарегистрируйтесь","account_fill_required_fields":"Заполните необходимые поля ниже.","account_fill_optional_fields":"Заполните необязательные поля ниже.","account_email":"Электронная почта","account_invitation":"Приглашение","account_invitation_code":"Код приглашения","account_i_accept":"Я принимаю","account_license_terms":"лицензия и условия","account_next":"Следующий","account_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия.","account_verify_fill_optional_fields":"Проверьте и заполните необязательные поля.","account_nickname":"Псевдоним","account_gender":"Пол","account_male":"Мужской","account_female":"Женский","account_not_say":"Не сказать","account_birthday":"День рождения","account_phone_number":"Номер телефона","account_locale":"Местный","account_tip_verified":"Подтверждено, вход...","account_verified":"проверено","account_unverified":"непроверенный","account_signed_up":"Подписали","account_verify_your_identity":"Подтвердите вашу личность","account_finish":"Заканчивать","account_signed_out":"Вышел","account_change_password":"Изменить пароль","account_change_email":"Изменить e-mail","account_change_phone_number":"Изменить номер телефона","account_sign_out":"выход","account_current_password":"Текущий пароль","account_re_enter_new_password":"Повторно введите новый пароль","account_personal_information":"Информация","account_edit":"редактировать","account_reset":"перезагрузить","account_greeting":"Привет,","account_cancel":"Отмена","account_change":"изменять","account_not_set":"не задано","account_setting":"параметр","account_copy_code":"скопируйте код","account_account_setting":"Счет","account_task_page":"Кредитная задача","account_setting_caption":"Изменить пароль/редактировать информацию","account_security":"Безопасность","account_want_to_join":"Хочу присоединиться?","account_sign_in_now":"Войти","account_changed":"Измененный","account_clipboard_with_invitation_code":"Код приглашения скопирован","account_clipboard_with_code":"Код скопирован","account_invitation_code_dialog_tip":"Вы отправите другу электронное письмо или текстовое сообщение с кодом приглашения:","account_available":"доступный","account_invited":"приглашенный","account_used":"использовал","account_invitation_code_sent":"Пригласительный код отправлен","account_invitation_channel_required":"Заполните хотя бы один канал приглашения","account_no_verification_code":"Не можете получить код подтверждения?","account_no_phone_number":"Нет номера телефона?","account_sign_up_by_email":"Зарегистрироваться по электронной почте","account_no_email":"Нет электронной почты?","account_sign_up_by_phone_number":"Запись по номеру телефона","account_no_totp":"Нет ТОТП?","account_tip_no_totp":"Если нет TOTP, сначала настройте TOTP","account_setup_totp":"Настройка ТОТП","account_contact_information":"Контактная информация","account_delete_account":"Удалить аккаунт","account_deleted":"Удалено","account_can_not_mfa":"МИД в беде?","account_set_mfa_type":"Конфигурация многофакторной идентификации","account_disable_mfa":"Отключить многофакторную идентификацию","account_disabled_mfa":"Отключено многофакторной идентификации","account_sms_mfa":"СМС МФА","account_totp_mfa":"ТОТП МИД","account_totp":"ТОТП","account_not_recommend":"Не рекомендую","account_oauth_sign_in_with":"Войти с помощью {provider}","account_sign_in_failed":"Не удалось войти","account_tip_oath_sign_up":"Адрес электронной почты, соответствующий текущей учетной записи {provider}: {email} еще не создал учетную запись","account_tip_confirm_delete_account":"Введите пароль текущей учетной записи, чтобы подтвердить, что вы хотите удалить текущую учетную запись. (Удаленные учетные записи не могут быть восстановлены)","account_tip_config_mfa":"Вы можете использовать SMS или одноразовый пароль на основе времени (TOTP) в качестве вторичной аутентификации.","account_error_can_not_enable_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить MFA","account_tip_can_not_enable_sms_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить SMS MFA","account_tip_can_not_enable_totp_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить TOTP MFA.","account_tip_setup_totp":"Используйте приложения, такие как Authenticator, для сканирования приведенного ниже QR-кода или скопируйте код вручную, чтобы добавить токен безопасности.","account_tip_verify_totp":"Подтвердите свой TOTP","account_link_your_social_account":"Привяжите свой социальный аккаунт","account_unlink_your_social_account":"Отвязать социальный аккаунт","account_tip_confirm_link":"Вы уверены, что хотите привязать текущую учетную запись к своей учетной записи {provider}?","account_tip_confirm_unlink":"Вы уверены, что хотите отменить привязанную учетную запись {provider}?","account_tip_linking":"связывание...","account_tip_unlinking":"Отвязка...","account_linked":"Граница","account_unlinked":"Свободный","account_error_can_not_link_to_the_linked_account":"Текущая социальная учетная запись привязана к другой учетной записи","account_error_can_not_link_to_the_mismatched_email":"Текущая учетная запись и адрес электронной почты социальной учетной записи несовместимы","account_error_can_not_link_before_email_verified":"Невозможно связать социальную учетную запись, поскольку текущая учетная запись не привязана к подтвержденному адресу электронной почты.","account_tip_confirm_verify_email_phone":"Нужно ли отправлять код подтверждения на адрес электронной почты и номер телефона текущей учетной записи для подтверждения вашей личности?","account_tip_confirm_verify_phone":"Нужно ли отправлять код подтверждения на текущий номер телефона для подтверждения личности?","account_error_1_message_60_seconds":"Каждые 60 секунд можно отправлять только одно SMS или электронное письмо, подождите еще {delta} секунд","account_error_10_messages_per_day":"Каждый мобильный телефон или адрес электронной почты может отправлять только 10 сообщений в течение 24 часов.","account_error_network":"Возникла проблема с сетью, повторите попытку позже","Network Error":"Возникла проблема с сетью, повторите попытку позже","account_error_user_not_exist":"Пользователь не существует","account_error_incorrect_username_or_password":"Неверное имя пользователя или пароль","account_error_incorrect_original_password":"Неверный исходный пароль","account_error_incorrect_password":"неверный пароль","account_error_username_not_found":"Имя пользователя не найдено","account_error_can_not_reset_for_no_verified":"Невозможно сбросить пароль для неподтвержденной учетной записи","account_error_invalid_verification_code":"Неверный проверочный код, попробуйте еще раз","account_error_expired_verification_code":"Срок действия кода подтверждения истек, попробуйте еще раз","account_error_password_not_long_enough":"Пароль недостаточно длинный","account_error_attempt_limit_exceeded":"Превышен лимит попыток, попробуйте через некоторое время.","account_error_password_attempts_exceeded":"Превышено количество попыток ввода пароля.","account_error_invalid_phone_number_format":"Неверный формат номера телефона","account_error_no_cell_phone_prefix":"Пожалуйста, выберите префикс для номера телефона","account_error_username_already_exists":"Имя пользователя уже существует","account_error_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия","account_error_inactive_code":"Код приглашения не является активированным кодом","account_error_non_existent_code":"Код приглашения не существует","account_error_unexpected":"Неожиданная ошибка","account_error_can_not_change_email_before_phone_bound":"Электронная почта не может быть изменена до привязки номера телефона","account_error_can_not_change_email_before_unbound_social_account":"Электронная почта не может быть изменена до отвязки социальной учетной записи","account_error_can_not_change_phone_before_email_bound":"Номер телефона нельзя изменить, пока электронная почта не будет привязана","account_error_can_not_change_email_phone_with_mfa_enabled":"Невозможно изменить адрес электронной почты или номер мобильного телефона до отключения MFA","account_error_not_supported_yet":"Временно не поддерживается","account_error_same_email":"Новый адрес электронной почты не может совпадать с исходным адресом электронной почты.","account_error_same_phone":"Новый номер телефона не может совпадать с исходным номером телефона.","account_error_email_not_exists":"Адрес электронной почты не существует","account_error_email_already_exists":"Учетная запись с указанным адресом электронной почты уже существует.","account_error_phone_already_exists":"Учетная запись с указанным номером телефона уже существует.","account_error_mfa_token_mismatch":"Несоответствие кода программного токена","account_error_recaptcha_not_loaded":"Есть проблема с сетью. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_recaptcha_validation_failed":"Ошибка проверки ReCAPTCHA. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_sign_in_in_progress":"Ожидающая попытка входа уже выполняется","account_field_range":"Ограничьте ввод {0}-{1} символов","account_field_only_alphanumeric":"Поддерживает только буквенно-цифровые","account_field_only_alphanumeric_and_symbol":"Поддерживает только буквенно-цифровые и символы","account_field_only_chinese_alphanumeric_space_underline":"Поддерживает только буквы, цифры, пробел, подчеркивание","account_field_prefix_without_number_space":"Первый символ не может быть цифрой или пробелом","account_field_suffix_without_space":"Не может заканчиваться пробелом","account_field_without_repeat_space":"Нельзя использовать несколько пробелов подряд","account_field_can_not_only_alphanumeric":"Вы не можете просто использовать буквы или цифры","account_field_must_have_number_characters":"Должен содержать числовые символы","account_field_verification_code":"Код подтверждения должен состоять из шести цифр.","account_field_invitation_code":"Код приглашения должен быть буквенно-цифровым","account_field_phone_number":"Неверный формат номера телефона","account_invalid_email_format":"Неверный формат электронной почты","account_sign_out_confirm":"Вы уверены, что хотите выйти? Это остановит все задачи.","account_sign_out_anyway":"Выйти в любом случае","account_signing_out":"Выписка...","account_request_save_settings":"Настройки не сохраняются. Перед выходом необходимо сохранить изменения.","pay":"Платить","pay_with_credit":"Плата за ускорение скачивания. Нужно около {0} кредита","pay_with_credit_payed":"Ускорение. Все еще требуется около {0} кредита","create_payment":"Создать платеж","pay_target":"Цель","pay_for_torrent":"Оплатить {0}","your_subid":"Ваш субидентификатор","your_credits":"Ваши кредиты","pay_point_for_data":"Заплатите {0} баллов за {1} данных","auto_renew":"Включить автоматическое продление","transaction_details":"Детали транзакции","transaction_id":"Идентификатор","transaction_payer":"Плательщик","transaction_payee":"Получатель платежа","transaction_category":"Категория","transaction_changed_amount":"Изменена сумма","transaction_meta":"Мета","transaction_status":"Положение дел","transaction_creation_time":"Время создания","receipt_code":"Код получения","transfer_amount":"Сумма перевода","code_the_receipt_code":"Скопируйте код квитанции ниже плательщику","fill_the_receipt_code":"Перевод путем заполнения кода платежа, предоставленного получателем платежа","expense":"Расход","copied":"Скопировано","transfer":"Передача","receive":"Получать","copy":"Копировать","withdraw_fund":"Вывод средств","category_paydata_payer":"Стоимость данных","category_paydata_payee":"Доход от данных","category_transfer":"Передача","category_bonus":"Бонус","category_recharge":"Перезарядка","status_pending":"в ожидании","status_completed":"завершенный","status_finish":"заканчивать","status_failed":"неуспешный","tip_invalid_receiver":"Неверный код получателя","tip_invalid_amount":"Сумма кредита должна быть числом с плавающей запятой в диапазоне 0-1000 (минимальная точность 0,001).","credit_get_more":"Получите больше кредитов","credit_no_data":"Данные недоступны","credit_loading":"Загрузка...","credit_not_enough_amount":"Недостаточно кредитов","credit_amount_not_enough":"Недостаточно кредитов","credit_payee_not_exist":"Плательщик не существует","credit_invalid_amount":"Неверная сумма кредита","credit_can_not_transfer_to_yourself":"Не могу перевести на себя","credit_latest":"Последний","credit_error_network":"Возникла проблема с сетью, повторите попытку позже","add_subtitles":"Добавить субтитры","open_file":"Открыть файл...","advanced_options":"Расширенные настройки","title":"Заголовок","location":"расположение","subtitle_file":"файл субтитров","unsupported_subtitle_type":"Тип файла {0} не является поддерживаемым типом субтитров.","not_default_player":"Видеоплеер по умолчанию не установлен","this_is_an_audio_file":"это аудиофайл","the_added_subtitle_already_exists":"Добавленный субтитр уже существует","stop_stream_player":"Потоковое мультимедиа было прекращено, потому что задача была приостановлена ​​или удалена","stop_player":"Работа плеера была завершена, так как файл был удален","playing_timeout_hint":"Время ожидания истекло. Пожалуйста, проверьте задание","autoplay_hint":"Автозапуск может быть заблокирован вашим браузером. Если плеер не играет, попробуйте нажать на экран, чтобы продолжить","remove_playing_confirm":"{0} все еще воспроизводится, удалите его, чтобы остановить проигрыватель. Вы уверены, что хотите удалить его?","unsupported_in_browser":"Пока не поддерживается в режиме браузера","client":"Клиент","warning":"Предупреждение","enable":"Давать возможность","disable":"Запрещать","auto":"Авто","encrypt_connection":"Зашифровать соединение","encrypted_connection":"Зашифрованное соединение","non_encrypted_connection":"Незашифрованное соединение","connected_wires_not_disconnect":"Подключенные провода не будут отсоединены","audio":"аудио","video":"видео","image":"изображение","subtitle":"подзаголовок","zip":"молния","text":"текст","unknown":"неизвестный","add":"Добавлять","undo":"Отменить","backup":"Резервное копирование","not_default_app":"${displayName} не является вашим приложением по умолчанию для торрентов и мультимедиа, вы хотите установить его по умолчанию?","dont_show_again":"Больше не показывать","go_to_settings":"Перейдите в настройки","about_alphabiz":"Около ${displayName}","last_check_at":"Последняя проверка в","update_channel":"Обновить канал","check_for_update":"Проверить обновления","checking_for_update":"Проверка обновлений...","no_update_available":"Нет доступных обновлений","update_available":"Доступно обновление","update_now":"Обновить сейчас","update_later":"Обновить позже","click_to_update":"Нажмите кнопку ОБНОВИТЬ СЕЙЧАС, чтобы загрузить и обновить","update_failed":"Не удалось обновить","update_failed_message":"При обновлении произошла ошибка:","check_shasum_failed":"Не удалось проверить целостность установщика","downloading_update":"Загрузка обновления...","ready_to_update":"Готов к обновлению","restart_to_update":"Обновление скачивается. ${displayName} на некоторое время выйдет из режима обновления.","already_latest":"Текущая версия ({0}) уже является последней","update_timeout":"Время ожидания обновления","no_available_release":"Нет доступных выпусков","no_available_installer":"Нет доступного установщика","feedback":"Обратная связь","select_a_type":"Выберите тип","category":"Категория","select_a_category":"Выберите категорию","require_title":"Требуется заголовок","describe_your_problem":"Опишите вашу проблему","report_a_bug":"Сообщить об ошибке","request_a_new_feature":"Запросить новую функцию","download_or_upload":"Загрузка выгрузка","others":"Другие","submit_with_system_info":"Отправить с информацией о системе","submit_feedback":"Отправить отзыв","tweet_us":"Напишите нам","tweet_too_long":"Твит слишком длинный","delete_characters":"Удалите как минимум {0} символов.","rest_characters":"Вы можете ввести еще {0} символов","update_alphabiz":"Обновить ${displayName}","current_version":"Текущая версия","cancel_update":"Отменить обновление","slow_download_speed":"Загрузка слишком медленная","slow_download_speed_caption":"Загрузка установщика теперь слишком медленная. Пожалуйста, проверьте состояние сети","update_canceled":"Обновление отменено","current_version_release_time":"Время выпуска текущей версии","expired_app":"${displayName} Просрочено","version_out_of_date":"Версия устарела","have_to_update":"Версия ${displayName} устарела. Некоторые протоколы или API устарели. Вы должны обновить ${displayName}, прежде чем продолжить.","exit_alphabiz":"Выход ${displayName}","exit_and_update":"Выйти и применить обновление","new_version_hint":"Доступна новая версия","no_new_version":"Нет новой версии","current_is_latest":"Текущая версия уже является последней","click_to_check_update":"Нажмите кнопку [ПРОВЕРИТЬ ОБНОВЛЕНИЕ], чтобы проверить наличие обновлений.","download_latest_version_from_website":"Пожалуйста, посетите официальный сайт, чтобы загрузить последнюю версию","to_the_website":"На сайт","network_diagnotic":"Диагностика сети","diagnotic":"Диагностика","click_to_check":"Нажмите, чтобы проверить","click_to_check_again":"Нажмите, чтобы проверить еще раз","checking":"Проверка","online":"В сети","offline":"Не в сети","dns_look_up":"DNS-поиск","error":"Ошибка","aws_service":"Сервис AWS","network_pings":"Сетевой пинг","not_found":"Не найдено","packet_loss":"Потеря пакетов","official_site":"Официальный сайт","download_test":"Скачать тест","test_task":"Тестовое задание {0}","download_failed":"Загрузка не удалась","second_spend":"{0} потрачено","open_default_player_failed":"Не удалось открыть проигрыватель по умолчанию","copied_to_clipboard":"Скопировано в буфер обмена","go_to":"Идти к","region_not_available":"Регион недоступен","region_not_available_message":"Извини! Ваш регион недоступен для использования этого приложения. Это приложение будет закрыто через {0} секунд","confirm":"Подтверждать","no_available_result":"Нет доступных результатов","invalid_password_format":"Неверный формат пароля","invalid_password_format_same":"Пароль такой же, как исходный пароль","error_password":"Ошибка пароля","keychain_setting":"Брелок","setting_description":"Облачное хранилище: Сохраняйте ключевые данные в облаке.\\nИзменить пароль: изменить пароль для ключа библиотеки мультимедиа.\\nМнемоника: альтернативный метод генерации и восстановления ключей.\\nИмпортировать локальный ключ: Импорт локально сохраненного ключа в медиатеку.\\nКлюч экспорта: сохраняет текущие данные медиатеки в локальном хранилище или в облаке.\\nКлюч резервного копирования в облако: обновите данные текущей медиатеки в облаке для резервного копирования.","refresh_status":"Обновить состояние","confirm_import_key":"Подтвердить ключ импорта","confirm_update_cloud_key":"У вас уже есть ключ в облаке. Обновление ключа перезапишет исходный ключ. Вы уверены, что хотите обновить ключ, хранящийся в облаке?","export_key_with_cloud":"Введите независимый пароль, который вы установили для экспорта ключа библиотеки, хранящегося в облаке, и заблокируйте файл ключа с помощью пароля разблокировки.","store_cloud_key_prompt_password":"Введите независимый пароль для хранения ключа библиотеки в облаке","update_cloud_key_prompt_password":"Установите независимый пароль для шифрования ключа библиотеки, а затем обновите его в облаке.","enable_cloud_storage_prompt_password":"Установите пароль для ключа, хранящегося в облаке, с помощью которого вы сможете получить ключ из облака","input_unlock_password":"Установить пароль разблокировки","export_local_prompt_password":"Пожалуйста, установите пароль разблокировки, чтобы зашифровать файл ключа. Мы не сохраним этот пароль для вас, поэтому, если вы потеряете свой пароль, вы не сможете разблокировать ключ библиотеки.","require_unlock_password":"Файл ключа заблокирован, введите пароль разблокировки","require_independent_password":"Введите независимый пароль, чтобы получить ключ, хранящийся в облаке.","import_local_prompt_password":"Файл ключа заблокирован, введите пароль разблокировки","select_encrypt_mode":"Выберите режим шифрования","update_cloud_key":"Обновите ключ, хранящийся в облаке","backup_to_cloud":"Резервное копирование ключа библиотеки в облако","save_local":"Сохраните ключ библиотеки как локальный зашифрованный файл.","create_new_key":"Создайте новый ключ библиотеки","creating_lib_key":"Создание ключа библиотеки...","loading_lib_key":"Загрузка ключа библиотеки...","failed_to_create_lib_key":"Не удалось создать ключ библиотеки","failed_to_load_lib_key":"Не удалось загрузить ключ библиотеки","import_local_key":"Импортировать ключ локально","import_lib_key_from_local":"Импортировать библиотечный ключ локально","import_from_cloud":"Импортировать ключ библиотеки из облака","create_or_import_key":"Создать или импортировать библиотечный ключ","create_or_import_key_desc":"Библиотечный ключ — это независимый ключ, используемый для извлечения и публикации содержимого в децентрализованной базе данных.","store_your_lib_key":"Сохраните ключ библиотеки","export_cloud_key":"Экспорт ключа из облака","export_current_key":"Экспорт текущего ключа","change_password":"Изменить пароль","enable_cloud_storage":"Включить облачное хранилище","disable_cloud_storage":"Отключить облачное хранилище","disable_cloud_storage_desc":"Отключение облачного хранилища приведет к удалению ключа, сохраненного в облаке, убедитесь, что ключ сохранен локально.","sync_at":"Синхронизировать по адресу: {time}","cloud_storage_enabled":"Синхронизировать связку ключей с {storage}","cloud_storage_disabled":"Облачное хранилище отключено","saved_locally":"Сохранено локально","export_key":"Экспорт файла ключа","cloud_independent_password":"Независимый от облака пароль","key_file_unlock_password":"Пароль разблокировки файла ключа","re_enter_unlock_password":"Повторно введите пароль разблокировки","independent_password_not_enabled":"Текущий пароль — это пароль учетной записи Alphabiz (независимый пароль не установлен)","use_cognito_hash":"Использовать пароль учетной записи Alphabiz","use_independent_password":"Используйте независимый пароль","keychain_lib":"ключ библиотеки","loading_keychain_state":"Загрузка связки ключей...","backing_up":"Резервное копирование...","backup_current_key":"Резервное копирование текущего ключа в облако","cloud_lib_key_not_existed":"ключ библиотеки не существует в облаке","open_keychain_file":"Открыть файл связки ключей","confirm_open_abk":"Вы хотите открыть файл ABK?","use_the_key":"Используйте ключ","backup_the_key":"Резервное копирование ключа в облако","keychain_data_does_not_exist":"Данные связки ключей не существуют","timeout of 0ms exceeded":"Возникла проблема с сетью, повторите попытку позже","XhrError":"Возникла проблема с сетью, повторите попытку позже","payer credit amount is not enough":"Недостаточно кредитов","payee does not exist":"Плательщик не существует","block_list_manage":"Управление черным списком","blocked_users":"Заблокированные пользователи","blocked_channels":"Заблокированные каналы","unblock_user":"Разблокировать пользователя","unblock_channel":"Разблокировать канал","no_blocked_user":"Нет заблокированных пользователей","no_blocked_channel":"Нет заблокированного канала","field_required":"{0} требуется","setting":"Параметр","unknown_media":"Неизвестные СМИ","settings_button_visible":"Кнопка видна","settings_setting":"Параметр","settings_playback_rate":"Скорость воспроизведения","settings_subtitle":"Подзаголовок","settings_pip":"Картинка в картинке","settings_fullscreen":"Полноэкранный","settings_subtitle_options":"Параметры субтитров","settings_normal":"Нормальный","settings_italic":"Курсив","settings_lighter":"Более легкий","settings_bolder":"Смелее","settings_small":"Маленький","settings_large":"Большой","about":"О","services":"Услуги","hide":"Скрывать","hide_others":"Скрыть другие","show_all":"Показать все","quit":"Покидать","edit":"Редактировать","redo":"Повторить","cut":"Резать","paste":"Вставить","select_all":"Выбрать все","view":"Вид","reload":"Перезагрузить","toggle_full_screen":"Включить полноэкранный режим","toggle_developer_tools":"Переключить инструменты разработчика","window":"Окно","minimize":"Минимизировать","bring_all_to_front":"Вывести всех на передний план","help":"Помощь","github_repo":"Репозиторий Github","issues":"Проблемы","learn_more":"Узнать больше","learn_spelling":"Учиться правописанию","lookup_selection":"Посмотрите вверх \\"{selection}\\"","search_with_google":"Поиск с помощью Google","save_as":"Сохранить как","save_image":"Сохранить изображение","save_image_as":"Сохранить изображение как ...","copy_link":"Копировать ссылку","save_link_as":"Сохранить ссылку как ...","copy_image":"Копировать изображение","copy_image_as":"Копировать изображение как...","copy_image_address":"Копировать адрес изображения","download_complete":"Загрузка завершена","download_complete_message":"{0} скачивается","is_running":"{0} выполняется","open":"Открыть {0}","launch_problem":"Проблема с запуском","ask_clear_data":"Кажется, вы пытаетесь запустить {0}, но это несколько раз не удалось.\\nВы хотите очистить все данные приложения и попробовать запустить его позже?","launch_directly":"Запустить напрямую","clear_all_data":"Удалить все данные","ask_clear_confirm":"Это удалит все конфиги, логи и пользовательские данные!\\nПосле этого вам может понадобиться снова запустить {0}.\\nВы уверены, что хотите очистить данные?","confirm_launch":"Нет, запустить напрямую","confirm_clear":"Да, удалить все данные"}')},"5e05":function(e,t){e.exports=require("https")},"5e65":function(e,t,a){},"5e6d":function(e,t,a){},"5e87":function(e,t,a){"use strict";a("8fd4")},"5e95":function(e,t,a){"use strict";a("0c7a")},"5e9a":function(e){e.exports=JSON.parse('{"lib_index":"Thuis","lib_edit":"Publiceren","lib_publish":"Publiceren","lib_explore":"Ontdekken","lib_following":"Als vervolg op","lib_favorite":"Lokale favorieten","lib_local_favorites":"Lokale favorieten","lib_channel":"Kanaal","lib_submit":"Indienen","lib_from_network":"Gebruik van gedecentraliseerde database van netwerk","welcome_to_lib":"Welkom bij ${displayName} Mediabibliotheek","register_or_login":"Registreren/Inloggen","lib_recommend":"Aanbevelen","lib_recommend_desc":"Welkom bij ${displayName} Bibliotheek! Deze bibliotheek maakt gebruik van een gedecentraliseerde database van het netwerk. Om het te gaan gebruiken, moet je enkele kanalen volgen.","follow_any_channel_to_continue":"Volg een willekeurig kanaal om door te gaan","follow_channels_and_continue":"Volg {0} kanalen en ga verder","show_more_for_me":"Laat meer zien voor mij","no_more_recommend":"Niet meer aanbevelen","key":"Sleutel","create_key":"Sleutel maken","save_key":"Bewaar sleutel","save_key_file":"Wilt u uw sleutel opslaan als bestand?","import_key":"Sleutel importeren","import":"Importeren","invalid_key":"Ongeldige sleutel","back_to_top":"Terug naar boven","search_for_channel":"Zoek naar kanaal-ID","search_channel_no_result":"Kan kanaal met ID {0} niet vinden","please_input_channel_id":"Voer de kanaal-ID in","welcome_help_text":"Dit is een gedecentraliseerde mediabibliotheek. Jij hebt nodig\\n om een ​​account aan te maken voor deze database. Wij zullen\\n automatisch een persoonlijke sleutel voor u genereren.\\n Als u al een sleutel heeft gehad, kunt u ook importeren\\n het hier.","welcome_key_text":"Nadat u bent ingelogd, klikt u op de knop [SLEUTEL OPSLAAN].\\n in de rechterbenedenhoek om uw privésleutel op te slaan.\\n Als u uw sleutel kwijtraakt, kunt u mogelijk niet meer inloggen.","redirect_to_recommend":"Het lijkt erop dat je geen enkel kanaal hebt gevolgd. Omleiding naar de pagina [Verkennen].","channel":"Kanaal","follow":"Volgen","unfollow":"Ontvolgen","following":"Als vervolg op","share":"Deel","unfollow_confirm":"Weet je zeker dat je dit kanaal niet meer wilt volgen? Alle berichten van dit kanaal in je tijdlijn worden verwijderd.","follow_failed_hint":"De bewerking is nog steeds in behandeling op de achtergrond. Als de bewerking lange tijd niet wordt toegepast, start u de app opnieuw en probeert u het opnieuw.","block":"Blok","unblock":"Deblokkeren","blocked":"Geblokkeerd","block_channel":"Blokkeer dit kanaal","block_channel_confirm":"Door kanaal te blokkeren wordt het van je tijdlijn verwijderd. U kunt uw blokkeerlijst beheren in de accountinstellingen.","block_creator":"Blokkeer de maker van dit kanaal","unblock_creator":"Deblokkeer de maker van dit kanaal","block_creator_confirm":"De maker van het blok verwijdert alle kanalen die door deze maker zijn gemaakt van je tijdlijn. U kunt uw blokkeerlijst beheren in de accountinstellingen.","share_url_copied":"Share-URL wordt gekopieerd naar uw klembord","follow_time":"Volg de tijd","update_time":"Update tijd","search":"Zoekopdracht","type":"Type","added":"Toegevoegd","click_to_task":"Klik om naar de taak te gaan","lib_already_added":"Je hebt deze video al toegevoegd","description":"Beschrijving","poster":"Poster","channel_poster":"Kanaalposter","preview":"Voorbeeld","creator":"Schepper","creator_detail":"Creator-detail","loading_creator":"Informatie over maker laden","wait_for_creator_loaded":"Wacht tot de informatie over de maker is geladen.","follower":"Volgeling","followers":"Volgers","follower_list":"Lijst met volgers","user":"Gebruiker","channel_title":"Kanaal titel","channel_id":"Kanaal Nr","post_title":"Titel posten","post_id":"Post-ID","import_data_from_excel":"Importeer gegevens uit Excel","set_excel_keys":"Excel-sleutels instellen","excel_import_succeded":"Excel-import gelukt","excel_import_success_msg":"{0} rijen zijn klaar om toe te voegen, {1} ongeldige en {2} gedupliceerde items worden genegeerd","cannot_find_channel":"Kan zender niet vinden","cannot_find_posts":"Kan berichten niet vinden","add_channel":"Kanaal toevoegen","add_post":"Bericht toevoegen","edit_channel":"Kanaal bewerken","channel_setting":"Kanaal instelling","edit_post":"Bericht bewerken","edit_posts":"Berichten bewerken","channel_detail":"Kanaaldetail","remove":"Verwijderen","remove_channel":"Kanaal verwijderen","remove_channel_confirm":"Weet je zeker dat je dit bericht wilt verwijderen? Dit kan niet worden hersteld.","remove_post":"Bericht verwijderen","remove_post_confirm":"Weet je zeker dat je dit kanaal wilt verwijderen? Dit kan niet worden hersteld.","preview_mode":"Preview-modus","preview_mode_desc":"Dit is een voorbeeld van je kanaal. Alle tarieven van films worden hier getoond.","edit_user_profile":"Gebruikersprofiel bewerken","name":"Bijnaam","avatar":"Avatar","no_following":"Geen volgende kanalen. Klik om te gaan","no_recommend":"Geen aanbevolen kanalen. Klik om te gaan","first_recomment_msg":"Het kan even duren als dit de eerste keer is dat de app wordt gelanceerd.","invalid_image":"Ongeldige afbeelding","image_not_reachable":"Deze afbeeldings-URL is niet bereikbaar.","channel_not_found":"Kanaal niet gevonden","cannot_get_channel_info":"Kan kanaalinfo niet ophalen. Dit kanaal kan door de maker worden verwijderd en is niet langer beschikbaar.","validate_error":"Fout valideren","validate_user_name_no_space":"Gebruikersnaam mag geen spaties bevatten","validate_url_no_space":"URL mag geen spaties bevatten","validate_user_name_length":"De gebruikersnaam moet een lengte hebben tussen {0} en {1}","validate_user_desc_length":"De gebruikersbeschrijving mag niet langer zijn dan {0} tekens","validate_user_avatar_url":"Gebruikersavatar moet een URL zijn met minder dan 2048 tekens","validate_channel_title_length":"De kanaaltitel moet een lengte hebben tussen 1 en 100","validate_channel_desc_length":"De kanaalbeschrijving moet een lengte hebben tussen 10 en 300","validate_channel_image_url":"Kanaalvoorbeeld moet een URL zijn met minder dan 2048 tekens","validate_post_title_length":"De titel van het bericht moet een lengte hebben tussen 1 en 100","validate_post_desc_length":"De berichtbeschrijving moet een lengte hebben tussen 10 en 300","validate_post_image_url":"Poster moet een URL zijn met minder dan 2048 tekens","validate_post_url":"Ongeldige URL ${displayName}","validate_post_url_length":"${displayName} URL mag niet langer zijn dan 2048 tekens","film_rate":"Film tarief","set_film_rate":"Filmsnelheid instellen","select_a_rate_before_enter":"U moet een filmsnelheid selecteren voordat u naar de mediabibliotheek gaat.","library_available_rate":"Bibliotheek beschikbaar filmtarief","rate_g":"G – Algemeen publiek","rate_g_desc":"Alle leeftijden toegelaten. Niets dat ouders zou beledigen voor het bekijken door kinderen.","rate_pg":"PG - Ouderlijk toezicht voorgesteld","rate_pg_desc":"Sommige materialen zijn mogelijk niet geschikt voor kinderen. Ouders worden aangespoord om \\"ouderlijke begeleiding\\" te geven. Kan materiaal bevatten dat ouders misschien niet leuk vinden voor hun jonge kinderen.","rate_pg_13":"PG-13 – Ouders sterk gewaarschuwd","rate_pg_13_desc":"Sommige materialen kunnen ongeschikt zijn voor kinderen onder de 13 jaar. Ouders worden dringend verzocht voorzichtig te zijn. Sommige materialen zijn mogelijk niet geschikt voor pre-tieners.","rate_r":"R - Beperkt","rate_r_desc":"Onder de 17 jaar is een begeleidende ouder of volwassen voogd vereist. Bevat wat materiaal voor volwassenen. Ouders worden dringend verzocht meer over de film te weten te komen voordat ze hun jonge kinderen meenemen.","rate_nc_17":"NC-17 - Alleen volwassenen","rate_nc_17_desc":"Niemand van 17 jaar en jonger toegelaten. Duidelijk volwassen. Kinderen worden niet toegelaten.","set_as_private":"Instellen als privé","hide_in_explore":"Verberg dit kanaal op de verkenningspagina","hidden":"Verborgen","select_a_rate":"Selecteer een filmtarief","select_from_tasks":"Kies uit taken","import_from_magnet":"Importeren van magneet:?...","input_magnet_url":"Ingangsmagneet:? url","task_title":"Taak titel","set_title":"Titel instellen","add_to_local_favorites":"Toevoegen aan lokale favorieten","remove_from_local_favorites":"Verwijderen uit lokale favorieten","removed_favorite":"Favoriet verwijderd","import_or_export_favorites":"Favorieten importeren/exporteren","export_local_favorites":"Exporteer lokale favorieten als back-up","import_favorites_file":"Favorietenbestand importeren","not_a_favorite_file":"Dit bestand is geen favoriet back-upbestand","connection_status":"Verbindingsstatus","gun_server_list":"Cache-knooppunten","custom_nodes":"Aangepaste cacheknooppunten","custom_nodes_hint":"Aangepaste cacheknooppunten worden toegepast nadat de app opnieuw is gestart","wait_for_reboot":"Wachten op opnieuw opstarten...({seconds}s)","reboot_now":"Herstart nu","reboot_later":"Start later opnieuw op","peer_list":"Directe knooppunten","server":"Knooppunt-URL","peer":"Gelijke","peer_id":"Knooppunt-ID","connection":"Verbinding","data_source":"Databron","sync":"Synchroniseren","syncing":"synchroniseren","sync_completed":"Synchronisatie voltooid","got_all_post":"Je hebt al alle berichten","placeholder_channel_title":"Je kanaalnaam","placeholder_channel_desc":"Beschrijving over dit kanaal","placeholder_post_title":"Filmnaam (jaar)","placeholder_post_desc":"Beschrijving over deze film","private_channel":"Privé kanaal","creator_blocked":"Maker geblokkeerd","go_to_library":"Ga naar de bibliotheek?","go_to_library_channel_msg":"Wil je naar het bibliotheekkanaal {0}?","magnet_does_not_have_name":"Deze magneet:? url heeft geen naam, je moet eerst een berichttitel toevoegen.","no_available_post":"Geen beschikbaar bericht","following_channel_no_post":"Al je volgende kanalen hebben geen beschikbare post. Dit kan worden veroorzaakt door een netwerkfout. Als je al enkele kanalen hebt gevolgd, kunnen de berichten later worden geladen.","share_to_library":"Delen met bibliotheek","quick_start":"Snelle start","quick_start_desc":"Begin met het maken van een bericht met een taak of bestand","select_file":"Selecteer bestand...","select_folder":"Selecteer map...","post_options":"Plaats opties","channel_options":"Kanaal opties","create_new_channel":"Nieuw kanaal maken","use_existed_channel":"Gebruik bestaand kanaal","select_existed_channel":"Selecteer bestaand kanaal","uploaded_by":"{title} geüpload door {name}","created_by":"{title} gemaakt door {name}","creating_new_channel":"Nieuw kanaal maken...","created_new_channel":"Nieuw kanaal gemaakt","creating_new_post":"Nieuw bericht maken...","created_new_post":"Nieuw bericht gemaakt","create_new_post":"Nieuw bericht maken","quick_start_timeout":"{0} time-out. Dit kan worden veroorzaakt door een netwerkfout. Probeer het later opnieuw.","file_too_large":"Bestand te groot","file_too_large_msg":"Dit bestand is groter dan 4 GB ({size}) en kan een lange voorbereidingstijd in beslag nemen. Weet je zeker dat je door wilt gaan?","resolving_folder_files":"Mapbestanden oplossen...","folder_too_large":"Map te groot","folder_too_large_msg":"De bestanden in deze map zijn groter dan 4 GB ({size} totaal) en het kan een lange voorbereidingstijd kosten. Weet je zeker dat je wilt uploaden?","creating_new_task":"Nieuwe taak maken...","cannot_create_task":"Kan taak niet maken","cannot_create_task_msg":"Dit kan een fout veroorzaken. Als de taak correct is gemaakt, kunt u later controleren op de takenlijst.","cannot_get_task_name":"Kan de taaknaam niet ophalen. U moet er eerst een invoeren.","remove_old_task":"Verwijder oude taak","remove_old_task_desc":"De webmodus kan slechts één taak tegelijk maken. Wilt u de oude taak verwijderen?","subtitle_list":"Ondertitel lijst","optional":"optioneel","with_subtitle":"Met {language} ondertitels","maximumSubtitleNum_limit":"Het aantal ondertitels heeft zijn maximum bereikt","add_subtitle_url":"Downloadlink voor ondertiteling toevoegen","cannot_add_subtitle":"Het toevoegen van ondertitels is mislukt","cannot_add_subtitle_msg":"Ondertitelingstaal niet geselecteerd of ongeldige downloadlink.","support_subtitle_type":"Alleen ondertitels in srt- en vtt-indeling worden ondersteund.","recommend_opensubtitles":"Het wordt aanbevolen om de downloadlink of id voor ondertitels te gebruiken op www.opensubtitles.org.","take_down":"Neerhalen","serious_violation":"Ernstige overtreding","copyright_disputes":"Geschillen over auteursrechten","adults_only":"Alleen volwassenen","takedown_reason":"Reden voor verwijdering","takedown_mode":"Takedown-modus","admins":"Beheerders","takedown_user":"Schakel deze maker uit","takedown_channel":"Verwijder dit kanaal","takedown_post":"Verwijder dit bericht","select_takedown_reason":"Selecteer de verwijderingsreden","takedown_invalid_reason":"Ongeldige verwijderingsreden","takedown_invalid_user_id":"Ongeldige gebruikersnaam. ID moet 87 tekens bevatten","takedown_invalid_channel_id":"Ongeldige kanaal-ID. ID moet 20 tekens bevatten","takedown_invalid_post_id":"Ongeldige post-ID. ID moet 20 tekens bevatten","takedown_management":"Beheer afschaffen","users":"Gebruikers","channels":"Kanalen","posts":"Berichten","you":"Jij","preset":"Vooraf ingesteld","admin":"beheerder","committee":"Commissie","about_takedown_mode":"Over de takedown-modus:\\nVoorinstelling: geconfigureerd in github-repository. Ze worden allemaal uit de bibliotheek verwijderd.\\nAdmin: Elke stem van een admin wordt verwijderd.\\nCommissie: Minstens de helft van de admins die op stemmen, wordt verwijderd.","cannot_edit_preset":"U kunt deze rij niet bewerken omdat het een vooraf ingestelde rij is","cannot_edit_not_vote":"Je kunt deze rij niet bewerken omdat je er niet op hebt gestemd","remove_vote":"Verwijder uw stem","post_preload_failed":"Kan dit bericht niet vooraf laden. De downloadlink is mogelijk verouderd, dus dit bericht kan niet onmiddellijk worden afgespeeld.","about_cache_node":"Over cacheknooppunt","edit_cache_node":"Cacheknooppunt bewerken","create_cache_node":"Cacheknooppunt maken","about_cache_node_desc":"${displayName} gebruikt de wapenserver als cacheknooppunt. U kunt aangepaste knooppunten vooraf instellen","learn_how_to_deploy_gun":"Leer hoe u uw eigen wapenserver kunt inzetten","repeat_add":"De taak is toegevoegd. Voeg deze niet opnieuw toe","upload":"Uploaden","download":"Downloaden","delete":"Verwijderen","delete_task":"Taak verwijderen","delete_confirm_message":"Deze taak verwijderen? Dit is onherroepelijk","also_delete_files":"Verwijder ook bestanden","default_delete_files":"Verwijder standaard gedownloade bestanden na verwijdertaak","not_now":"Niet nu","delete_autoupload_confirm":"Deze taak bevat het bestand dat u in de map voor automatisch uploaden hebt geplaatst. Als u deze taak verwijdert, wordt het bestand ook verwijderd.","delete_anyway":"Hoe dan ook verwijderen","upload_too_many_files":"Upload te veel bestanden","ask_if_unlimit_upload_amount":"De map voor automatisch uploaden bevat te veel bestanden. Wilt u de beperking van het uploadbedrag uitschakelen? *Dit kan prestatieproblemen veroorzaken","disable_limitation":"Beperking uitschakelen","not_length":"Werken met meerdere bestanden wordt momenteel niet ondersteund. Werk alstublieft mee","download_torrent":"Download bestand","upload_torrent":"Upload bestand","files":"Bestanden","file":"Bestand","folder":"Map","start_all":"Begin allemaal","pause_all":"Pauzeer alles","remove_all":"Verwijder alles","upload_all":"Alles uploaden","clear_history":"Geschiedenis wissen","pause_all_finish_payments":"Hiermee worden alle betalingen voltooid.","accelerating":"Versnellen","link_task":"Koppel taak","torrent_task":"Dossier taak","ok":"OK","cancel":"Annuleren","download_directory_position":"Directory positie downloaden","torrent_file":"taak bestand","magnetic_link_incorrect":"Het linkformaat is onjuist","delete_fail":"Verwijderen mislukt","pause":"Pauze","paused":"Gepauzeerd","stop_torrent":"Stop","seed":"Zaad","resume":"Cv","downloading":"downloaden","downloaded":"gedownload","uploading":"Uploaden","auto_uploading":"Auto uploading","uploaded":"Geüpload","pending":"Wachten op andere taken","verifying":"Verifiëren","waiting_for_verify":"Wachten op verificatie","seeding":"Zaaien","completed":"Voltooid","status":"Toestand","task_name":"Opdrachtnaam","size":"Maat","progress":"Voortgang","sort":"Soort","ascending":"Oplopend","descending":"Aflopend","file_loading":"Bestand laden...","loading":"Bezig met laden","unknown_status":"Onbekend","play_while_downloading":"Toneelstuk...","upload_or_play":"Uploaden / afspelen","play":"Toneelstuk","ask_if_upload_file":"Upload bestand?","ask_if_upload_or_play":"Bestand uploaden of afspelen?","torrent_error":"Fout bij het toevoegen van taak:","no_peers":"Probeer het meer dan {0} keer opnieuw en er is geen peer beschikbaar","torrent_exists":"Taak bestaat al.","show_origin_torrent":"Haal het originele taakbestand of de url op","show_directory":"Open directory van deze torrent","task_num":"Taken","total_upload_speed":"Upload snelheid","total_download_speed":"Download snelheid","path_missing":"Fout: kan het torrent-pad niet vinden","origin_not_found":"Kan informatie over oorspronkelijke taak niet vinden.","text_copied":"De Magnum-URL wordt naar uw klembord gekopieerd","copy_magnet_uri":"Magneet kopiëren:? URI","copy_download_uri":"Download-URI kopiëren","copy_share_uri":"Deel-URI kopiëren","uri_copied":"URI is met succes naar uw klembord gekopieerd","uri_copy_failed":"Kopiëren van uri is mislukt","more":"Meer...","toggle_list_mode":"Schakel de lijstmodus in","comment":"opmerking","operations":"Activiteiten","open_directory":"Adresboek openen","no_downloading_task":"Geen downloadtaak","remove_all_downloading_tasks":"Alle downloadtaken verwijderen?","remove_all_upload_tasks":"Alle uploadtaken verwijderen?","remove_autoupload_files":"Verwijder automatisch geüploade bestanden","remove_all_history":"Alle geschiedenis verwijderen?","remaining":"Overig","created_time":"Gecreëerde tijd","used_time":"Gebruikte tijd","completed_time":"Voltooide tijd","yesterday":"Gisteren","before_yesterday":"{empty}","earlier":"Eerder","miss_file":"Er ontbreken enkele bestanden","delete_miss_file_task":"Er ontbreken enkele bestanden in {0}.","common_peer":"Gemeenschappelijke collega","ab_peer":"${displayName} collega","ab_peer_verified":"Geverifieerd ${displayName} peer","ab_peer_available":"${displayName} peer(s) beschikbaar","alphabiz_accelerating":"${displayName} versnellen","income":"Inkomen","income_info":"Inkomen (vandaag/totaal)","total_income_info":"Inkomen: {0}(vandaag) / {1}(totaal)","login_to_see_income":"Log in om inkomensstatistieken te bekijken","credit_cost":"Krediet kosten","downloaded_by_payment":"Gedownload door betalingen","file_not_found":"Kan dit bestand niet vinden in lokaal","no_task":"Niet vragen","no_matched_task":"Geen overeenkomende taak","space_not_enough":"Schijfruimte niet genoeg","need_more_space":"Heb {0} meer ruimte nodig, maar de huidige schijf heeft {1} vrij ({2} gereserveerd). Taken zijn gepauzeerd. Bibliotheek vooraf laden is uitgeschakeld. U kunt het opnieuw inschakelen in [Instellingen - Geavanceerd].","seeders":"Zaaimachines","last_update":"Laatste update","connecting":"Verbinden","connected":"Verbonden","request_timed_out":"Verzoek verlopen","connection_failed":"Verbinding mislukt","invalid_download_url":"Ongeldige download-URL","download_link":"download link","empty_files":"Geen bestanden in map","duplicate_task":"Dubbele taak","duplicate_tracker":"Dubbele tracker","this_task_not_ready":"Deze taak is niet gereed. Pauzeer deze taak om deze direct te verwijderen.","some_task_not_ready":"Sommige taken zijn nog niet klaar. Pauzeer deze taken om ze direct te verwijderen.","failed_to_delete_files":"Kan bestanden niet verwijderen","failed_to_delete_files_desc":"Kan sommige bestanden van de taak niet verwijderen. Mogelijk moet u ze handmatig verwijderen","unknown_error":"Onbekende fout: {0}","more_files_are_not_shown":"({0} meer bestanden worden niet weergegeven om prestatieredenen)","no_available_file":"Geen beschikbaar bestand. Wacht tot de taak gereed is.","service_worker_error":"Kan ServiceWorker niet laden om te spelen. Uw browser ondersteunt deze functie mogelijk niet of de ServiceWorker is niet geactiveerd. Mogelijk moet u deze pagina opnieuw laden en het opnieuw proberen.","add_task_first":"U moet eerst een taak toevoegen.","player_task_time":"De speler heeft te veel seconden nodig om zich voor te bereiden op het spel. Er kan iets mis zijn met de taak.","web_mode_hint":"De webmodus van ${displayName} ondersteunt alleen WebRTC-peers. Download voor de beste ervaring ${displayName} Desktop-app.","web_mode_task_hint":"Klik op onderstaande knoppen om een ​​taak toe te voegen. U kunt slechts één taak tegelijk toevoegen.","save_to_local":"Opslaan in lokaal","save_as_zip":"Opslaan als ZIP","creating_save_file":"Opslaan bestand maken...","upload_as_one_directory":"Uploaden als één map","upload_as_single_files":"Uploaden als afzonderlijke bestanden","web_mode_upload_single":"U kunt slechts één bestand uploaden in de webmodus","download_success":"Succesvol downloaden","download_fail":"Download mislukt","wait_for_downloaded_to_share":"Wacht tot de taak is gedownload voordat u deze deelt.","download_with_cellular":"Taken downloaden met mobiel","download_with_cellular_desc":"U gebruikt een mobiel netwerk. Downloadtaken met mobiel kunnen extra kosten in rekening brengen door uw provider.","download_with_cellular_confirm":"Nog steeds downloaden met mobiel","language":"Taal","appearance":"Verschijning","darkModeSystem":"Systeem","darkModeLight":"Licht","darkModeDark":"Donker","basic_setting":"Eenvoudig","hideMenu":"App-menu verbergen (alleen Windows en Linux)","autoHide":"Venster automatisch verbergen","autoStart":"Openen bij inloggen","restore":"Houd grootte en positie van het raam bij het verlaten","autoStartUnfinished":"Hervat automatisch alle onvoltooide taken","default_download_path":"Standaardpad","download_directory":"Directory downloaden","upload_directory":"Directory uploaden","enable_auto_upload":"Automatisch uploaden inschakelen","unlimit_upload_amount":"Onbeperkt uploadbedrag","unlimit_upload_warning":"Sta het uploaden van een groot aantal bestanden toe. Dit kan prestatieproblemen veroorzaken","start":"Beginnen","transport_setting":"Overdragen","upload_limit":"Uploadlimiet","download_limit":"Downloadlimiet","payed_user_share_rate":"Betaald gebruikerspercentage","unlimited":"Onbeperkt","limit_input_error":"Het limietnummer moet positief zijn","BT_setting":"Taak instellingen","saveLinkSeed":"Link opslaan als taakbestand","autoDownload":"Link en inhoud automatisch downloaden","continuousSeeding":"Blijf zaaien tot het handmatig stopt","seedSharingRate":"Zaad verhouding","seedTime":"Zaaitijd (minuten)","task_manage":"Taak beheer","maximumDownloadNum":"Maximaal actieve taken","maximumConnectionsNum":"Maximale verbinding per server","range_error":"Het bereik moet liggen tussen {0} en {1}","random":"willekeurig","breakpointContinuation":"Doorgaan","automaticSkip":"Laat automatisch downloaden zien na het toevoegen van een taak","afterNotification":"Melding nadat het downloaden is voltooid","deleteConfirm":"Er is geen bevestiging vereist voordat de taak wordt verwijderd","submit":"Opslaan en toepassen","discard":"Weggooien","reset":"Resetten","reset_all_settings":"Alle instellingen resetten?","preferences_resetted":"Voorkeuren gereset","traditional_chinese":"traditioneel Chinees","japanese":"Japans","english":"Engels","chinese":"Vereenvoudigd Chinees","advancedSettings":"Geavanceerd","autoUpdate":"Auto Update","autoCheckUpdate":"Automatisch controleren op updates","proxy":"Volmacht","useProxyService":"Proxy inschakelen","trackerService":"Tracker-servers","recommendUse":"Aanbevolen","autoUpdateTrackerServiceList":"Update de trackerlijst elke dag automatisch","manualUpdateTracker":"Handmatige update","manualUpdateSuccess":"Trackerservers succesvol bijwerken","manualUpdateFail":"Kan niet updaten van:","listenPort":"Luister poorten","BTlistenPort":"Poort voor gegevensoverdracht","DHTlistenPort":"Gedistribueerde hashpoort","protocols":"Compatibele protocollen","setDefaultClientForFollowingProtocols":"Instellen als de standaardclient voor de volgende protocollen","magnetUrl":"Magneet","video_file":"Video bestand","audio_file":"Geluidsbestand","security":"Beveiliging","impersonateUserAgent":"Onechte user-agent","RPCauthorizationkey":"RPC-geheim","viewDocument":"Bekijk de RPC Secret-handleiding","developer":"Ontwikkelaar","applicationLogPath":"App-logboekpad","downloadSessionPath":"Sessiepad downloaden","resetDownloadSessionRecord":"Reset downloadsessie","restoreInitialSettings":"Fabrieksinstellingen","preferences_set_successfully":"Bewaar voorkeuren succesvol!","preferences_set_fail":"Voorkeuren opslaan mislukt!","change_not_save":"Wijzigingen worden niet opgeslagen","discard_all_changes":"Alle wijzigingen negeren en vertrekken?","stay_in_page":"Blijf op de pagina","disk_usage":"Schijfgebruik","pause_if_less_space":"Pauzeren en melden als er minder ruimte is dan (MB)","default_video_player":"Standaard videospeler","video_cache_time":"Stream afspeelcache","minutes":"minuten","system_default":"Systeemfout","media_player":"Mediaspeler","library_film_rate":"Beschikbaar filmtarief","library_show_explore":"Toon [Verkennen] pagina","library_setting":"Bibliotheek instelling","library_sync_setting":"Instelling bibliotheeksynchronisatie","keychain_sync_status":"Synchronisatiestatus van sleutelhanger","sync_with_aws":"Synchroniseer sleutelhanger met Amazon Web Services","backup_to_local":"Back-up naar lokaal bestand","enable_sync_with_aws":"Schakel synchronisatie met AWS in","disable_sync_with_aws":"Schakel synchronisatie met AWS uit","disable_sync_with_aws_desc":"Hiermee wordt de opgeslagen sleutel op de server verwijderd. Zorg ervoor dat u uw sleutel al heeft geëxporteerd.","input_independent_password":"Voer een onafhankelijk wachtwoord in","change_independent_password":"Wijzig onafhankelijk wachtwoord","password_error":"Verkeerd wachtwoord","password_invalid":"Wachtwoord fout","key_existed":"Sleutel bestond","key_not_found":"Sleutel niet gevonden","library_recommend":"Bibliotheek aanbevelen","show_all_channels":"Toon alle kanalen op de aanbevelingspagina van de bibliotheek","not_logged_in":"Niet ingelogd","login_to_continue":"Log in om verder te gaan","mnemonic_code":"Mnemonische code","wordlist":"Woordenlijst","restore_code":"Herstellen vanuit code","generate_code":"Code genereren","export_mnemonic_code":"Export geheugensteuntje code","import_mnemonic_code":"Mnemocode importeren","print":"Afdrukken","save_as_txt":"Opslaan als txt","save_as_pdf":"Opslaan als pdf","from_file":"Van bestand","not_valid_mnemonic_code":"Dit is geen geldige geheugensteuncode","cannot_parse_code_as_key":"Kan deze geheugensteuncode niet ontleden als bibliotheeksleutel","import_key_hint":"Weet u zeker dat u deze sleutel wilt importeren? Hiermee wordt uw oude sleutel in de bibliotheek hersteld.","import_key_confirm":"Ja, importeer het.","library_preload":"Taken vooraf laden vanuit de bibliotheek","show_preload":"Vooraf geladen taken weergeven","set_download":"Downloadmap instellen","set_download_desc":"Voor de macOS App Store-versie bevindt de standaard downloadmap zich in de sandbox van de app en wordt deze verwijderd nadat de app is verwijderd. Als u uw downloadbestanden wilt behouden, moet u handmatig een andere downloaddirectory selecteren.","home":"Thuis","home_caption":"Downloaden/uploaden en mediabestanden","library":"Bibliotheek","library_caption":"Verken mediabronnen","player":"Speler","player_caption":"Mediaspeler","credits":"Credits","credits_caption":"Accountsaldo controleren","account":"Rekening","account_caption":"Aanmelden/Aanmelden/Beheer","settings":"Instellingen","settings_caption":"Instellingen voor app, speler, account","development":"Ontwikkeling","development_caption":"Ontwikkelaarsmodus voor intern gebruik","basic":"Eenvoudig","basic_caption":"Basis instellingen","advanced":"Geavanceerd","advanced_caption":"Geavanceerde instellingen","blockchain":"Portemonnee","blockchain_caption":"${displayName} Gedecentraliseerde portemonnee","internal_notice":"Interne vrijgavemelding","release_notes":"Release-opmerkingen","terms_and_conditions":"Voorwaarden","license_and_listen_notices":"Licentie en Luister Open Source Kennisgevingen","close":"Dichtbij","success":"Succes","fail":"Mislukking","account_email_invalid_address":"Ongeldig e-mailadres","account_email_invalid_domain":"Ongeldig e-maildomein","account_email_unknown_status":"Onbekende status van e-mailbezorging","account_email_unavailable_address":"E-mailadres niet beschikbaar","account_email_suppressed_address":"Onderdrukt e-mailadres","account_loading":"Bezig met laden...","account_is_required":"Is benodigd","account_sign_in_your_account":"Aanmelden","account_username":"Gebruikersnaam","account_username_email_phone":"Telefoonnummer of e-mail","account_password":"Wachtwoord","account_new_password":"Nieuw paswoord","account_re_enter_password":"Geef het wachtwoord opnieuw in","account_password_not_equal":"Twee wachtwoorden zijn niet gelijk","account_new_password_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","account_forgot_your_password":"Je wachtwoord vergeten?","account_reset_password":"Wachtwoord opnieuw instellen","account_sign_in":"Aanmelden","account_signed_in":"Ingelogd","account_sign_up":"Aanmelden","account_find_your_account":"Vind je account","account_enter_your_username":"Voer uw telefoonnummer of e-mailadres in","account_search":"Zoekopdracht","account_email_sent_tip":"Er is een e-mail met een verificatiecode naar uw e-mailadres verzonden:","account_phone_sent_tip":"Er is een sms met een verificatiecode naar je telefoon gestuurd:","account_email_phone_sent_tip":"E-mail en sms met verificatiecode zijn respectievelijk naar uw e-mail en telefoon verzonden:","account_software_token_tip":"MFA is ingeschakeld voor uw account. Om het inloggen te voltooien, schakelt u uw apparaat in of bekijkt u het en typt u de TOTP","account_reset_your_password":"Stel je wachtwoord opnieuw in","account_verification_code":"Verificatie code","account_resend_code":"Code nogmaals versturen","account_code_has_been_resent":"Verificatiecode is opnieuw verzonden","account_password_has_been_reset":"Wachtwoord is gereset","account_submit":"Indienen","account_sign_up_your_account":"Registreer uw account","account_fill_required_fields":"Vul hieronder de verplichte velden in.","account_fill_optional_fields":"Vul onderstaande optionele velden in.","account_email":"E-mail","account_invitation":"Uitnodiging","account_invitation_code":"Uitnodigingscode","account_i_accept":"ik aanvaard","account_license_terms":"de licentie en voorwaarden","account_next":"Volgende","account_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren.","account_verify_fill_optional_fields":"Controleer en vul optionele velden in.","account_nickname":"Bijnaam","account_gender":"Geslacht","account_male":"Mannelijk","account_female":"Vrouwelijk","account_not_say":"Niet zeggen","account_birthday":"Verjaardag","account_phone_number":"Telefoonnummer","account_locale":"Lokaal","account_tip_verified":"Geverifieerd, aanmelden...","account_verified":"geverifieerd","account_unverified":"niet geverifieerd","account_signed_up":"Ingeschreven","account_verify_your_identity":"Verifieer uw identiteit","account_finish":"Finish","account_signed_out":"Uitgelogd","account_change_password":"Verander wachtwoord","account_change_email":"E-mailadres wijzigen","account_change_phone_number":"Wijzig telefoonnummer","account_sign_out":"Afmelden","account_current_password":"Huidig ​​wachtwoord","account_re_enter_new_password":"voer nieuw wachtwoord opnieuw in","account_personal_information":"Informatie","account_edit":"bewerking","account_reset":"resetten","account_greeting":"Hallo,","account_cancel":"Annuleren","account_change":"wijziging","account_not_set":"niet ingesteld","account_setting":"instelling","account_copy_code":"kopieer de code","account_account_setting":"Rekening","account_task_page":"Krediet taak","account_setting_caption":"Wijzig wachtwoord / bewerk informatie","account_security":"Beveiliging","account_want_to_join":"Wil je meedoen?","account_sign_in_now":"Aanmelden","account_changed":"gewijzigd","account_clipboard_with_invitation_code":"Uitnodigingscode gekopieerd","account_clipboard_with_code":"De code gekopieerd","account_invitation_code_dialog_tip":"Je stuurt je vriend een e-mail of sms met een uitnodigingscode:","account_available":"beschikbaar","account_invited":"uitgenodigd","account_used":"gebruikt","account_invitation_code_sent":"Uitnodigingscode is verzonden","account_invitation_channel_required":"Vul minimaal één uitnodigingskanaal in","account_no_verification_code":"Verificatiecode niet ontvangen?","account_no_phone_number":"Geen telefoonnummer?","account_sign_up_by_email":"Aanmelden per e-mail","account_no_email":"Geen e-mail?","account_sign_up_by_phone_number":"Aanmelden via telefoonnummer","account_no_totp":"Geen TOTP?","account_tip_no_totp":"Als er geen TOTP is, stel dan eerst TOTP in","account_setup_totp":"Stel TOTP in","account_contact_information":"Contactgegevens","account_delete_account":"Account verwijderen","account_deleted":"verwijderd","account_can_not_mfa":"MFB in de problemen?","account_set_mfa_type":"MFA configureren","account_disable_mfa":"MFA uitschakelen","account_disabled_mfa":"MFA uitgeschakeld","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFB","account_totp":"TOTP","account_not_recommend":"Niet aan te raden","account_oauth_sign_in_with":"Log in met {provider}","account_sign_in_failed":"Inloggen mislukt","account_tip_oath_sign_up":"Het e-mailadres dat overeenkomt met het huidige {provider}-account: {email} heeft nog geen account aangemaakt","account_tip_confirm_delete_account":"Voer het huidige accountwachtwoord in om te bevestigen dat u het huidige account wilt verwijderen. (Verwijderde accounts kunnen niet worden hersteld)","account_tip_config_mfa":"U kunt ervoor kiezen om SMS of op tijd gebaseerd eenmalig wachtwoord (TOTP) als secundaire authenticatie te gebruiken","account_error_can_not_enable_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om MFA in te schakelen","account_tip_can_not_enable_sms_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om SMS MFA in te schakelen","account_tip_can_not_enable_totp_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om TOTP MFA in te schakelen","account_tip_setup_totp":"Gebruik apps zoals Authenticator om onderstaande QR-code te scannen of kopieer de code handmatig om een ​​security token toe te voegen","account_tip_verify_totp":"Controleer uw TOTP","account_link_your_social_account":"Bind uw sociale account","account_unlink_your_social_account":"Ontkoppel sociaal account","account_tip_confirm_link":"Weet u zeker dat u de lopende rekening aan uw {provider}-rekening wilt binden?","account_tip_confirm_unlink":"Weet u zeker dat u uw gebonden {provider}-account wilt annuleren?","account_tip_linking":"verbindend...","account_tip_unlinking":"Ontbinden...","account_linked":"Gebonden","account_unlinked":"Ongebonden","account_error_can_not_link_to_the_linked_account":"Het huidige sociale account is gekoppeld aan een ander account","account_error_can_not_link_to_the_mismatched_email":"Het huidige account en het e-mailadres van het sociale account zijn niet consistent","account_error_can_not_link_before_email_verified":"Het sociale account kan niet worden gekoppeld omdat het huidige account niet is gebonden aan een geverifieerde e-mail","account_tip_confirm_verify_email_phone":"Of u een verificatiecode naar het e-mailadres en telefoonnummer van het huidige account moet sturen om uw identiteit te verifiëren?","account_tip_confirm_verify_phone":"Of u een verificatiecode naar het huidige telefoonnummer moet sturen om uw identiteit te verifiëren?","account_error_1_message_60_seconds":"Er kan slechts één sms of e-mail per 60 seconden worden verzonden, wacht nog eens {delta} seconden","account_error_10_messages_per_day":"Elke mobiele telefoon of e-mail kan maximaal 10 berichten binnen 24 uur verzenden","account_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","Network Error":"Er is een probleem met het netwerk, probeer het later opnieuw","account_error_user_not_exist":"Gebruiker bestaat niet","account_error_incorrect_username_or_password":"foute gebruikersnaam of wachtwoord","account_error_incorrect_original_password":"Onjuist origineel wachtwoord","account_error_incorrect_password":"Incorrect wachtwoord","account_error_username_not_found":"gebruikersnaam niet gevonden","account_error_can_not_reset_for_no_verified":"Kan het wachtwoord voor het niet-geverifieerde account niet resetten","account_error_invalid_verification_code":"Onjuiste verificatiecode, probeer het opnieuw","account_error_expired_verification_code":"Verificatiecode is verlopen, probeer het opnieuw","account_error_password_not_long_enough":"Wachtwoord is niet lang genoeg","account_error_attempt_limit_exceeded":"Pogingslimiet overschreden, probeer het na enige tijd opnieuw.","account_error_password_attempts_exceeded":"Wachtwoordpogingen overschreden.","account_error_invalid_phone_number_format":"Ongeldig telefoonnummerformaat","account_error_no_cell_phone_prefix":"Selecteer het voorvoegsel voor het telefoonnummer","account_error_username_already_exists":"De gebruikersnaam bestaat al","account_error_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren","account_error_inactive_code":"De uitnodigingscode is geen geactiveerde code","account_error_non_existent_code":"De uitnodigingscode bestaat niet","account_error_unexpected":"Onverwachte fout","account_error_can_not_change_email_before_phone_bound":"Het e-mailadres kan niet worden gewijzigd voordat het telefoonnummer is gebonden","account_error_can_not_change_email_before_unbound_social_account":"De e-mail kan niet worden gewijzigd voordat het sociale account is losgekoppeld","account_error_can_not_change_phone_before_email_bound":"Het telefoonnummer kan niet worden gewijzigd voordat de e-mail is gebonden","account_error_can_not_change_email_phone_with_mfa_enabled":"Kan e-mailadres of mobiel telefoonnummer niet wijzigen voordat MFA is uitgeschakeld","account_error_not_supported_yet":"Momenteel niet ondersteund","account_error_same_email":"Het nieuwe e-mailadres mag niet hetzelfde zijn als het oorspronkelijke e-mailadres","account_error_same_phone":"Het nieuwe telefoonnummer kan niet hetzelfde zijn als het oorspronkelijke telefoonnummer","account_error_email_not_exists":"Email adres bestaat niet","account_error_email_already_exists":"Er bestaat al een account met het opgegeven e-mailadres.","account_error_phone_already_exists":"Er bestaat al een account met het opgegeven telefoonnummer.","account_error_mfa_token_mismatch":"Softwaretokencode komt niet overeen","account_error_recaptcha_not_loaded":"Er is een probleem met het netwerk. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_recaptcha_validation_failed":"ReCAPTCHA-validatie mislukt. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_sign_in_in_progress":"Aanmeldingspoging in behandeling is al bezig","account_field_range":"Beperk de invoer van {0}-{1} tekens","account_field_only_alphanumeric":"Ondersteunt alleen alfanumeriek","account_field_only_alphanumeric_and_symbol":"Ondersteunt alleen alfanumeriek en symbolen","account_field_only_chinese_alphanumeric_space_underline":"Ondersteunt alleen alfanumeriek, spatie, underscore","account_field_prefix_without_number_space":"Het eerste teken mag geen cijfer of spatie zijn","account_field_suffix_without_space":"Kan niet eindigen op een spatie","account_field_without_repeat_space":"Kan niet meerdere spaties achter elkaar gebruiken","account_field_can_not_only_alphanumeric":"U kunt niet alleen letters of cijfers gebruiken","account_field_must_have_number_characters":"Moet cijfertekens hebben","account_field_verification_code":"De verificatiecode moet uit zes cijfers bestaan","account_field_invitation_code":"Uitnodigingscode moet alfanumeriek zijn","account_field_phone_number":"Ongeldig telefoonnummerformaat","account_invalid_email_format":"ongeldige email formaat","account_sign_out_confirm":"Weet u zeker dat u zich wilt afmelden? Hierdoor worden alle taken stopgezet.","account_sign_out_anyway":"Meld je toch af","account_signing_out":"Uitloggen...","account_request_save_settings":"Instellingen worden niet opgeslagen. U moet de wijzigingen opslaan voordat u zich afmeldt.","pay":"Betalen","pay_with_credit":"Betalen voor het versnellen van downloaden. Heeft ongeveer {0} tegoed nodig","pay_with_credit_payed":"Versnellen. Heeft nog ongeveer {0} tegoed nodig","create_payment":"Betaling aanmaken","pay_target":"Doel","pay_for_torrent":"Betaal voor {0}","your_subid":"Uw subID","your_credits":"Uw tegoeden","pay_point_for_data":"Betaal {0} punt voor {1} data","auto_renew":"Automatisch verlengen inschakelen","transaction_details":"transactie details","transaction_id":"ID kaart","transaction_payer":"Betaler","transaction_payee":"Begunstigde","transaction_category":"Categorie","transaction_changed_amount":"Gewijzigd bedrag","transaction_meta":"Meta","transaction_status":"Toestand","transaction_creation_time":"Creatie tijd","receipt_code":"Ontvangstcode","transfer_amount":"Bedrag overmaken","code_the_receipt_code":"Kopieer onderstaande boncode naar de betaler","fill_the_receipt_code":"Maak over door de door de begunstigde verstrekte betaalcode in te vullen","expense":"Kosten","copied":"Gekopieerd","transfer":"Overdracht","receive":"Ontvangen","copy":"Kopiëren","withdraw_fund":"Fonds opnemen","category_paydata_payer":"Kosten van gegevens","category_paydata_payee":"Inkomsten van gegevens","category_transfer":"Overdracht","category_bonus":"Bonus","category_recharge":"Opladen","status_pending":"in behandeling","status_completed":"voltooid","status_finish":"finish","status_failed":"mislukt","tip_invalid_receiver":"Ongeldige ontvangercode","tip_invalid_amount":"Het kredietbedrag moet een float zijn in het bereik van 0-1000 (minimale precisie is 0,001)","credit_get_more":"Krijg meer kredieten","credit_no_data":"Geen gegevens beschikbaar","credit_loading":"Bezig met laden...","credit_not_enough_amount":"Niet genoeg tegoeden","credit_amount_not_enough":"Niet genoeg tegoeden","credit_payee_not_exist":"Begunstigde bestaat niet","credit_invalid_amount":"Ongeldig tegoedbedrag","credit_can_not_transfer_to_yourself":"Kan niet naar jezelf overdragen","credit_latest":"Laatste","credit_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","add_subtitles":"Ondertiteling toevoegen","open_file":"Open bestand...","advanced_options":"Geavanceerde mogelijkheden","title":"Titel","location":"plaats","subtitle_file":"ondertitel bestand","unsupported_subtitle_type":"Het bestandstype {0} is geen ondersteund ondertitelingstype","not_default_player":"De standaard videospeler is niet ingesteld","this_is_an_audio_file":"Dit is een audiobestand","the_added_subtitle_already_exists":"De toegevoegde ondertitel bestaat al","stop_stream_player":"De streaming media is beëindigd omdat de taak is onderbroken of verwijderd","stop_player":"De speler is beëindigd omdat het bestand is verwijderd","playing_timeout_hint":"Wacht tijden uit. Controleer de taak","autoplay_hint":"Autoplay kan worden geblokkeerd door uw browser. Als de speler niet speelt, klik dan op het scherm om door te gaan","remove_playing_confirm":"{0} speelt nog steeds, verwijder het om de speler te stoppen. Weet je zeker dat je het wilt verwijderen?","unsupported_in_browser":"Nog niet ondersteund in browsermodus","client":"Cliënt","warning":"Waarschuwing","enable":"Inschakelen","disable":"Uitzetten","auto":"Auto","encrypt_connection":"Versleutel de verbinding","encrypted_connection":"Versleutelde verbinding","non_encrypted_connection":"Niet-versleutelde verbinding","connected_wires_not_disconnect":"Aangesloten draden worden niet losgekoppeld","audio":"geluid","video":"video","image":"afbeelding","subtitle":"ondertitel","zip":"ritssluiting","text":"tekst","unknown":"onbekend","add":"Toevoegen","undo":"Ongedaan maken","backup":"Back-up","not_default_app":"${displayName} is niet je standaard app voor torrent en media, wil je deze als standaard instellen?","dont_show_again":"Niet meer laten zien","go_to_settings":"Ga naar Instellingen","about_alphabiz":"Over ${displayName}","last_check_at":"Laatste controle om","update_channel":"Kanaal bijwerken","check_for_update":"Controleer op updates","checking_for_update":"Controleren op updates...","no_update_available":"Geen update beschikbaar","update_available":"Update beschikbaar","update_now":"Update nu","update_later":"Later bijwerken","click_to_update":"Klik op de knop NU UPDATEN om te downloaden en bij te werken","update_failed":"Update mislukt","update_failed_message":"Er is een fout opgetreden tijdens het updaten:","check_shasum_failed":"Kan de integriteit van het installatieprogramma niet controleren","downloading_update":"Update downloaden...","ready_to_update":"Klaar om te updaten","restart_to_update":"Update wordt gedownload. ${displayName} wordt afgesloten om even bij te werken.","already_latest":"De huidige versie ({0}) is al de laatste","update_timeout":"Time-out bijwerken","no_available_release":"Geen beschikbare uitgave","no_available_installer":"Geen beschikbaar installatieprogramma","feedback":"Feedback","select_a_type":"Selecteer een soort","category":"Categorie","select_a_category":"Kies een categorie","require_title":"Titel is vereist","describe_your_problem":"Beschrijf uw probleem","report_a_bug":"Meld een fout","request_a_new_feature":"Vraag een nieuwe functie aan","download_or_upload":"Downloaden uploaden","others":"Anderen","submit_with_system_info":"Dien in met systeeminfo","submit_feedback":"Feedback verzenden","tweet_us":"Tweet ons","tweet_too_long":"Tweet is te lang","delete_characters":"Verwijder ten minste {0} karakter(s)","rest_characters":"U kunt {0} meer teken(s) invoeren","update_alphabiz":"Bijwerken ${displayName}","current_version":"Huidige versie","cancel_update":"Update annuleren","slow_download_speed":"Te langzaam downloaden","slow_download_speed_caption":"Het downloaden van het installatieprogramma is nu te traag. Controleer de netwerkstatus","update_canceled":"Update geannuleerd","current_version_release_time":"Releasetijd van de huidige versie","expired_app":"${displayName} Verlopen","version_out_of_date":"Versie verouderd","have_to_update":"De versie van ${displayName} is verouderd. Sommige protocollen of API\'s zijn verouderd. U moet ${displayName} updaten voordat u doorgaat.","exit_alphabiz":"Uitgang ${displayName}","exit_and_update":"Sluit af en pas de update toe","new_version_hint":"Nieuwe versie is beschikbaar","no_new_version":"Geen nieuwe versie beschikbaar","current_is_latest":"De huidige versie is al de nieuwste","click_to_check_update":"Klik op de knop [CHECK FOR UPDATE] om te controleren op updates","download_latest_version_from_website":"Bezoek de officiële website om de nieuwste versie te downloaden","to_the_website":"Naar de website","network_diagnotic":"Netwerk diagnose","diagnotic":"Diagnostisch","click_to_check":"Klik om te controleren","click_to_check_again":"Klik om opnieuw te controleren","checking":"Controleren","online":"Online","offline":"offline","dns_look_up":"DNS-zoekopdracht","error":"Fout","aws_service":"AWS-service","network_pings":"Netwerkping","not_found":"Niet gevonden","packet_loss":"Pakket(ten) verloren","official_site":"Officiële site","download_test":"Test downloaden","test_task":"Testtaak {0}","download_failed":"Download mislukt","second_spend":"{0} s uitgeven","open_default_player_failed":"Kan de standaardspeler niet openen","copied_to_clipboard":"Gekopieerd naar het klembord","go_to":"Ga naar","region_not_available":"Regio niet beschikbaar","region_not_available_message":"Sorry! Uw regio is niet beschikbaar om deze app te gebruiken. Deze app stopt na {0} seconden","confirm":"Bevestigen","no_available_result":"Geen beschikbaar resultaat","invalid_password_format":"ongeldig wachtwoord formaat","invalid_password_format_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","error_password":"Verkeerd wachtwoord","keychain_setting":"Sleutelhanger","setting_description":"Cloudopslag: sla belangrijke gegevens op in de cloud.\\nWachtwoord wijzigen: Wijzig het wachtwoord voor de mediabibliotheeksleutel.\\nMnemonic: een alternatieve methode voor het genereren en herstellen van sleutels.\\nLokale sleutel importeren: importeer de lokaal opgeslagen sleutel in de mediabibliotheek.\\nExportsleutel: Slaat de huidige mediabibliotheekgegevens op naar de lokale of cloud.\\nBack-upsleutel naar cloud: werk de huidige mediabibliotheekgegevens bij naar de cloud voor back-up.","refresh_status":"Status bijwerken","confirm_import_key":"Bevestig de importsleutel","confirm_update_cloud_key":"Je hebt al een sleutel in de cloud. Als u de sleutel bijwerkt, wordt de originele sleutel overschreven. Weet u zeker dat u de in de cloud opgeslagen sleutel wilt bijwerken","export_key_with_cloud":"Voer het onafhankelijke wachtwoord in dat u hebt ingesteld om de bibliotheeksleutel die in de cloud is opgeslagen te exporteren en vergrendel het sleutelbestand met het ontgrendelingswachtwoord","store_cloud_key_prompt_password":"Voer een onafhankelijk wachtwoord in om de bibliotheeksleutel in de cloud op te slaan","update_cloud_key_prompt_password":"Stel een onafhankelijk wachtwoord in om de bibliotheeksleutel te coderen en update deze vervolgens naar de cloud","enable_cloud_storage_prompt_password":"Stel een wachtwoord in voor de sleutel die in de cloud is opgeslagen, waarmee u de sleutel uit de cloud kunt ophalen","input_unlock_password":"Stel het ontgrendelingswachtwoord in","export_local_prompt_password":"Stel een ontgrendelingswachtwoord in om uw sleutelbestand te versleutelen. We slaan dit wachtwoord niet voor u op, dus als u uw wachtwoord kwijtraakt, kunt u uw bibliotheeksleutel niet ontgrendelen","require_unlock_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","require_independent_password":"Voer het onafhankelijke wachtwoord in om de sleutel in de cloud op te slaan","import_local_prompt_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","select_encrypt_mode":"Selecteer de coderingsmodus","update_cloud_key":"Werk de sleutel bij die in de cloud is opgeslagen","backup_to_cloud":"Maak een back-up van de bibliotheeksleutel naar de cloud","save_local":"Sla de bibliotheeksleutel op als lokaal gecodeerd bestand","create_new_key":"Maak een nieuwe bibliotheeksleutel aan","creating_lib_key":"Bibliotheeksleutel maken...","loading_lib_key":"Bibliotheeksleutel laden...","failed_to_create_lib_key":"Kan bibliotheeksleutel niet maken","failed_to_load_lib_key":"Kan bibliotheeksleutel niet laden","import_local_key":"Sleutel lokaal importeren","import_lib_key_from_local":"Importeer lokaal een bibliotheeksleutel","import_from_cloud":"Importeer de bibliotheeksleutel uit de cloud","create_or_import_key":"Bibliotheeksleutel maken of importeren","create_or_import_key_desc":"Bibliotheeksleutel is een onafhankelijke sleutel die wordt gebruikt om inhoud op te halen en te publiceren met een gedecentraliseerde database.","store_your_lib_key":"Bewaar uw bibliotheeksleutel","export_cloud_key":"Sleutel exporteren vanuit de cloud","export_current_key":"Exporteer huidige sleutel","change_password":"Verander wachtwoord","enable_cloud_storage":"Schakel cloudopslag in","disable_cloud_storage":"Schakel cloudopslag uit","disable_cloud_storage_desc":"Als u cloudopslag uitschakelt, wordt de in de cloud opgeslagen sleutel verwijderd. Zorg ervoor dat de sleutel lokaal wordt opgeslagen","sync_at":"Synchroniseren op: {time}","cloud_storage_enabled":"Synchroniseer sleutelhanger met {storage}","cloud_storage_disabled":"Cloudopslag uitgeschakeld","saved_locally":"Lokaal opgeslagen","export_key":"Sleutelbestand exporteren","cloud_independent_password":"Cloudonafhankelijk wachtwoord","key_file_unlock_password":"Sleutelbestand ontgrendelingswachtwoord","re_enter_unlock_password":"Voer het ontgrendelingswachtwoord opnieuw in","independent_password_not_enabled":"Het huidige wachtwoord is het wachtwoord van het Alphabiz-account (er is geen onafhankelijk wachtwoord ingesteld)","use_cognito_hash":"Gebruik het wachtwoord van het Alphabiz-account","use_independent_password":"Gebruik onafhankelijk wachtwoord","keychain_lib":"bibliotheek sleutel","loading_keychain_state":"Sleutelhanger laden...","backing_up":"Ondersteunen...","backup_current_key":"Maak een back-up van de huidige sleutel naar de cloud","cloud_lib_key_not_existed":"bibliotheeksleutel bestaat niet in Cloud","open_keychain_file":"Open Sleutelhangerbestand","confirm_open_abk":"Wilt u het ABK-bestand openen","use_the_key":"Gebruik de sleutel","backup_the_key":"Maak een back-up van de sleutel naar de cloud","keychain_data_does_not_exist":"Sleutelhangergegevens bestaan ​​niet","timeout of 0ms exceeded":"Er is een probleem met het netwerk, probeer het later opnieuw","XhrError":"Er is een probleem met het netwerk, probeer het later opnieuw","payer credit amount is not enough":"Niet genoeg tegoeden","payee does not exist":"Begunstigde bestaat niet","block_list_manage":"Blokkeerlijst beheren","blocked_users":"Geblokkeerde gebruikers","blocked_channels":"Geblokkeerde kanalen","unblock_user":"Deblokkeer gebruiker","unblock_channel":"Kanaal deblokkeren","no_blocked_user":"Geen geblokkeerde gebruiker","no_blocked_channel":"Geen geblokkeerd kanaal","field_required":"{0} is vereist","setting":"Instelling","unknown_media":"Onbekende media","settings_button_visible":"Knop zichtbaar","settings_setting":"Instelling","settings_playback_rate":"Afspeelsnelheid","settings_subtitle":"Ondertitel","settings_pip":"Pip","settings_fullscreen":"Volledig scherm","settings_subtitle_options":"Ondertitel opties","settings_normal":"Normaal","settings_italic":"Cursief","settings_lighter":"Aansteker","settings_bolder":"Bolder","settings_small":"Klein","settings_large":"Groot","about":"Over","services":"Diensten","hide":"Verbergen","hide_others":"Verberg anderen","show_all":"Toon alles","quit":"Ontslag nemen","edit":"Bewerking","redo":"Opnieuw doen","cut":"Snee","paste":"Plakken","select_all":"Selecteer alles","view":"Weergave","reload":"Herladen","toggle_full_screen":"Volledig scherm activeren","toggle_developer_tools":"Schakel ontwikkelaarstools in","window":"Raam","minimize":"Minimaliseren","bring_all_to_front":"Breng alles naar voren","help":"Hulp","github_repo":"Github-opslagplaats","issues":"Problemen","learn_more":"Kom meer te weten","learn_spelling":"Leer spelling","lookup_selection":"Zoek \\"{selection}\\" op","search_with_google":"Zoek met Google","save_as":"Opslaan als","save_image":"Afbeelding opslaan","save_image_as":"Sla afbeelding op als ...","copy_link":"Kopieer link","save_link_as":"Link opslaan als ...","copy_image":"Kopieer afbeelding","copy_image_as":"Afbeelding kopiëren als...","copy_image_address":"Kopieer afbeeldingsadres","download_complete":"Download compleet","download_complete_message":"{0} wordt gedownload","is_running":"{0} is actief","open":"{0} openen","launch_problem":"Start probleem","ask_clear_data":"Het lijkt erop dat je {0} probeert te starten, maar meerdere keren is mislukt.\\nWilt u alle app-gegevens wissen en later proberen te starten?","launch_directly":"Start direct","clear_all_data":"Wis alle gegevens","ask_clear_confirm":"Hiermee worden alle configuraties, logs en gebruikersgegevens verwijderd!\\nHierna moet u mogelijk {0} opnieuw starten.\\nWeet u zeker dat u gegevens wilt wissen?","confirm_launch":"Nee, start direct","confirm_clear":"Ja, wis alle gegevens"}')},6:function(e,t){},"603c":function(e,t,a){},"61a1":function(e,t,a){"use strict";a.d(t,"b",(function(){return Ai}));var n=a("ff9b"),o=a("fe87"),i=(a("de6c"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-container",class:{larger:!e.isElectron}},[a("q-toolbar",{staticClass:"library-header q-py-sm flex",staticStyle:{"flex-wrap":"nowrap","max-height":"57px"}},[e.lib.search.options.length?[e.$q.screen.xs?a("q-btn",{attrs:{unelevated:"",round:"",icon:"search"}},[a("q-menu",[a("q-card",{staticClass:"q-pa-md"},[a("q-select",{staticClass:"q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}}),a("q-input",{attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})],1)],1)],1):a("q-input",{staticStyle:{width:"320px"},attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"before",fn:function(){return[a("q-select",{staticStyle:{"min-width":"120px"},attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}})]},proxy:!0},{key:"append",fn:function(){return[a("q-icon",{attrs:{name:"search"}})]},proxy:!0}],null,!1,311008788),model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})]:e._e(),a("q-space"),a("div",{staticClass:"header-bar-status text-grey q-my-sm q-ml-xs flex no-wrap items-center text-right overflow-hidden"},[a("div",{staticClass:"from-network-hint",staticStyle:{"flex-shrink":"1"}},[e._v(e._s(e.$t("lib_from_network")))]),a("q-badge",{staticClass:"connection-status cursor-pointer q-ml-xs",attrs:{"text-color":"white",color:e.statusColor},on:{click:function(t){e.peerDialog=!0}}},[e.lib.online?a("q-icon",{staticClass:"status-icon",attrs:{name:"flash_on"}}):e._e(),a("span",{staticClass:"status-label"},[e._v(e._s(e.statusLabel))])],1)],1)],2),a("div",{staticClass:"library-view"},[a("transition",{attrs:{name:"slide",mode:"out-in"}},[a("keep-alive",{attrs:{exclude:"LibraryChannel,LibraryRecommend"}},[e.isLoggedIn?e.showRecommend?a("Recommend"):a("router-view"):a("Login")],1)],1)],1),a("ConnectionStatus",{model:{value:e.peerDialog,callback:function(t){e.peerDialog=t},expression:"peerDialog"}})],1)}),r=[],s=(a("a1c1"),a("36a1")),l=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"login-container"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".abk"},on:{change:e.onFileChange}}),a("q-dialog",{model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[a("q-card",[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("import_key")))]),a("q-input",{staticStyle:{width:"480px"},attrs:{type:"text",label:e.$t("key")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.userKey,callback:function(t){e.userKey=t},expression:"userKey"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{attrs:{flat:"",label:e.$t("import"),color:"primary"},on:{click:e.importKey}})],1)],1)],1),a("Loading",{attrs:{value:!0}})],1)},c=[],d=(a("e39c"),a("5584")),u=a("35f4"),_=a("3aea"),p=a("2d62"),m=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showLoading,expression:"showLoading"}],staticClass:"non-selectable",class:["absolute-top-left","full-width","full-height"].concat(["column","justify-center","items-center"],["bg-page","text-page"])},[a("div",{staticClass:"items-center"},[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])])},h=[],g=a("a449");const f=()=>{let e;return{data(){return{keychainLoadingState:!1,keychain:g["a"]}},watch:{"keychain.loading"(t){e&&clearTimeout(e),t?e=setTimeout((()=>{this.keychainLoadingState=!0}),500):this.keychainLoadingState=!1}}}};var b={name:"Loading",mixins:[f()],props:{value:Boolean},computed:{showLoading(){const e="signedOut"===this.$store.state.account.authState;return this.value&&!this.keychainLoadingState&&!e}},methods:{onChange(){this.$emit("change",!this.value)}}},y=b,v=(a("9fe7"),a("2b5f")),w=a("53ef"),k=a("09a4"),S=a.n(k),C=Object(v["a"])(y,m,h,!1,null,"1f47903d",null),x=C.exports;S()(C,"components",{QSpinner:w["a"]});const $=Object(u["a"])("abcdefg",5),T=Object(u["a"])("0123456789abcdef",40);var z={data(){return{username:"",password:"",nickname:"",description:"",avatar:"",userKey:"",showImport:!1}},components:{Loading:x},computed:{showLoading(){const e=this.$store.state.account.authState;return null===e}},methods:{validate(){if(!this.nickname){const e=d["a"].getters.accountUserInfo.nickname;this.nickname=e||this.username.substring(0,12)}return!0},showImportDialog(){this.$refs.fileSelector.click()},onFileChange(e){var t,a;null!==e&&void 0!==e&&null!==(t=e.target)&&void 0!==t&&null!==(a=t.files)&&void 0!==a&&a[0]&&Object(_["g"])(e.target.files[0]).then((e=>{if(!e)return this.$q.notify("Cannot read key pair from this file");this.userKey=e,this.importKey()}))},onReset(){this.username=$()+T(35),this.password=T(),this.nickname="",this.description=""},async onSubmit(){const e=this.validate();if("string"===typeof e)return this.$q.dialog({message:e});console.log(this.username,this.password,this.nickname),s["a"].register(this.username,this.password,{name:this.nickname,description:this.description,avatar:this.avatar}).then((()=>{const e=Object(p["t"])();if(console.log(e,s["a"].user),e._&&e._.sea){const t=e._.sea,{epub:a,pub:n,epriv:o,priv:i}=t;if(!a||!n||!o||!i)return;const r=[a,n,o,i].join(":");this.$q.dialog({title:this.$t("save_key"),message:this.$t("save_key_file"),ok:this.$t("save_key"),cancel:this.$t("cancel")}).onOk((()=>{var t,a;Object(_["h"])(r,`${(null===(t=e.data)||void 0===t?void 0:t.name)||(null===(a=s["a"].userData)||void 0===a?void 0:a.name)||"user"}.abk`)})).onDismiss((()=>{s["a"].prepareData()}))}}))},autoCreate(){this.onReset(),this.onSubmit()},importKey(){if(s["a"].isLoggedIn)return;console.log(this.userKey);const[e,t,a,n]=this.userKey.split(":");if(!e||!t||!a||!n)return this.$q.notify(this.$t("invalid_key"));s["a"].login({epub:e,pub:t,epriv:a,priv:n}).then(s["a"].prepareData)}},created(){this.onReset(),s["a"].$on("logged-in",(()=>{const e=[this.username,this.password].join(":");console.log("Logged in",e),this.$emit("login")}))}},P=z,A=(a("86d7"),a("1043")),I=a("b2aa"),q=a("e586"),O=a("d7c7"),E=a("0e45"),D=a("59ba"),j=Object(v["a"])(P,l,c,!1,null,"6a9c1d57",null),N=j.exports;S()(j,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]});var L=a("36a5"),U=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.value,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:function(t){return e.$emit("input",t)}}},[a("q-card",{staticClass:"peer-dialog-card"},[a("q-card-section",{staticClass:"row items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-bold peers-title"},[e._v(e._s(e.$t("connection_status")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{unelevated:"",round:"",icon:"close"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}],staticClass:"q-mb-sm"}),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area gun-server-list"},[a("div",{staticClass:"servers-title q-ml-sm q-mb-sm row items-center"},[a("div",{staticClass:"text-h6 q-mr-sm"},[e._v(e._s(e.$t("gun_server_list")))]),a("q-btn",{attrs:{flat:"",unelevated:"",rounded:"",dense:"",icon:"help_outline"},on:{click:e.showServerHelp}},[a("q-tooltip",[e._v(e._s(e.$t("about_cache_node")))])],1),a("q-space"),a("q-btn",{attrs:{unelevated:"",round:"",icon:"add"},on:{click:e.createCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("create_cache_node")))])],1),a("q-btn",{attrs:{unelevated:"",round:"",icon:"edit"},on:{click:e.editCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("edit_cache_node")))])],1)],1),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("server")))])])]),a("tbody",e._l(e.wsPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left",class:"text-"+e.statusColorMap[t.status]},[e._v(e._s(e.statusTextMap[t.status]))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))])])})),0)])],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area wrtc-peer-list"},[a("div",{staticClass:"peers-title q-ml-sm q-mb-sm text-h6"},[e._v(e._s(e.$t("peer_list")))]),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"}),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("peer_id")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("connection")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("data_source")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("download")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("upload")))])])]),a("tbody",[e.wrtcPeers&&Object.keys(e.wrtcPeers).length?e._l(e.wrtcPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left"},[a("q-icon",{attrs:{name:e.getPeerStatusIcon(t),color:"primary"}},[a("q-tooltip",[e._v(e._s(e.getPeerStatusTooltip(t)))])],1)],1),a("td",{staticClass:"text-left"},[e._v(e._s(e.getPeerId(t)))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.label))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.from))]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.downloaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.downloadSpeed))+" / s")]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.uploaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.uploadSpeed))+" / s")])])})):a("tr",{staticClass:"q-pa-md"},[a("td",{staticClass:"full-width text-center",attrs:{colspan:"8"}},[e._v("\n "+e._s(e.$t("credit_no_data"))+"\n ")])])],2)])],1)])],1)],1)},R=[],M=a("6422"),F={name:"LibraryConnectionStatus",props:{value:Boolean},data(){return{}},computed:{statusTextMap(){return{[WebSocket.CLOSED]:this.$t("offline"),[WebSocket.OPEN]:this.$t("connected"),[WebSocket.CONNECTING]:this.$t("connecting"),[WebSocket.CLOSING]:this.$t("offline")}},statusColorMap(){return{[WebSocket.CLOSED]:"red",[WebSocket.OPEN]:"green",[WebSocket.CONNECTING]:"none",[WebSocket.CLOSING]:"red"}},wsPeers(){return s["a"].gunPeers.filter((e=>"ws"===e.type))},wrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type))}},methods:{getPeerId(e){if("tracker"!==e.from)return e.url;let t=parseInt(e.url.substring(20),16),a="",n=0;while(t>0)n=t%62,t=Math.floor(t/62),a+=n<36?n.toString(36):(n-26).toString(36).toUpperCase();return a.substring(0,9)},getPeerStatusIcon(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?"import_export":"arrow_upward":"syncing"===e.remoteSyncState?"arrow_downward":"completed"===e.syncState?"completed"===e.remoteSyncState?"done_all":"done":"settings_ethernet"},getPeerStatusTooltip(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?this.$t("syncing"):this.$t("uploading"):"syncing"===e.remoteSyncState?this.$t("downloading"):"completed"===e.syncState?"completed"===e.remoteSyncState?this.$t("sync_completed"):this.$t("uploaded"):this.$t("connecting")},byteToLarger(e){return Object(M["a"])(e,{byte:!1,gb:!1})},showServerHelp(){this.$alphabiz.dialog({title:this.$t("about_cache_node"),message:this.$t("about_cache_node_desc"),cancel:!0,ok:{label:this.$t("go_to_settings"),handler:e=>{this.$emit("input",!1),setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300),e.hide()}}})},async createCacheNode(){window.open("https://alpha.biz/blog/how-to-deploy-a-gun-server/","_blank")},editCacheNode(){setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300)}}},B=F,W=(a("9f3a"),a("990e")),H=a("fc38"),V=a("cf25"),Q=a("3714"),G=a("f106"),K=a("a431"),Y=Object(v["a"])(B,U,R,!1,null,"54be07de",null),J=Y.exports;S()(Y,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QTooltip:V["a"],QMarkupTable:Q["a"],QIcon:G["a"]}),S()(Y,"directives",{ClosePopup:K["a"]});var Z=a("d7df"),X=a("d310"),ee=a("3fd2"),te=a.n(ee),ae=(a("d4b5"),a("0598")),ne=a("f680"),oe=a("1926");console.log("===",oe["b"]);const ie={_store:null,store:{favorites:[],ids:[]},_preNotify:null,_init(){if(Object(ae["default"])()){const e=a("f4b7");this._store=new e({name:"favorite",defaults:{favorites:[]}}),this.store=this._store.store}else{const e="ab-local-favorites",t=localStorage.getItem(e);this.store=t?JSON.parse(t):{favorites:[],ids:[]};const a=this.store;this._store={get(e){return console.log("get",e,a),a[e]},set(t,n){console.log("set",t,n,a),a[t]=n,localStorage.setItem(e,JSON.stringify(a))},clear(){console.log("clear"),localStorage.removeItem(e),ie._init()}}}this.store.ids=this.store.favorites.map((e=>e.id))},set(e){for(const t of e)this.add(t)},add(e){if(this.store.ids.find((t=>t===e.id)))return;e.timestamp||(e.timestamp=Date.now());let t=0;for(const a of this.store.favorites){if(!(a.timestamp>e.timestamp))break;t++}this.store.favorites.splice(t,0,e),this.store.ids.splice(t,0,e.id),this._store.set("favorites",this.store.favorites)},remove(e,t){const a="string"===typeof e?e:e.id,n=this.store.ids.findIndex((e=>e===a));if(-1===n)return;const[o]=this.store.favorites.splice(n,1);if(this.store.ids.splice(n,1),this._store.set("favorites",this.store.favorites),!o)return;const i=ne["a"].create({message:oe["b"].t("removed_favorite")+o.title,group:!1,actions:[{label:oe["b"].t("undo"),handler(){ie.add(o),t&&t(o)}}]});this._preNotify&&this._preNotify(),this._preNotify=i},list(){return this.store.favorites.sort(((e,t)=>t.timestamp-e.timestamp))},isFavorite(e){return this.store.ids.includes(e)},clear(){this._store.clear(),this.store.favorites.splice(0),this.store.ids.splice(0),this._store.set("favorites",this.store.favorites)}};ie._init();var re=ie,se={name:"Library",mixins:[g["d"]],components:{Login:N,Recommend:L["a"],ConnectionStatus:J},data(){return{breadcrumbs:[{label:this.$t("library"),icon:"video_library",to:"/library"}],peerDialog:!1,isElectron:Object(X["isElectron"])(),lib:s["a"]}},computed:{showRecommend(){return!!s["a"].isLoggedIn&&(!this.isVisitable(this.$route.fullPath)&&(s["a"].followingChannels.length?!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus:!s["a"].isFirstRegister))},currentView(){const e=this.$route.path.replace(/^\//,"").split("/");return e},hasWrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type)).length},statusColor(){if(this.hasWrtcPeers)return"green";if(!s["a"].online)return"red";switch(s["a"].onlineStatus){case"connected":return"green";case"connecting":return"yellow";case"reconnecting":return"yellow";default:return"red"}},statusLabel(){if(this.hasWrtcPeers)return this.$t("connected");if(!s["a"].online)return this.$t("offline");switch(s["a"].onlineStatus){case"connected":return this.$t("connected");case"connecting":return this.$t("connecting");case"reconnecting":return this.$t("connecting");default:return this.$t("unknown")}},isLoggedIn(){return this.lib.isLoggedIn}},methods:{isVisitable(e){return e.startsWith("/library/edit")||e.includes("preview=1")||e.includes("fromLink=1")||e.startsWith("/library/takedown")},getIcon(e){switch(e){case"following":return"star";case"explore":return"travel_explore";case"edit":return"edit_note"}return"list"}},beforeCreate(){if(te.a.mas()){const e=localStorage.getItem("__mas_library_user__");e||(console.log("clear store since no old user"),re.clear()),s["a"].whenReady.then((()=>{var t;s["a"].user&&null!==(t=s["a"].user.is)&&void 0!==t&&t.pub&&(e&&e!==s["a"].user.is.pub&&(console.log("clear store since user changed",e,s["a"].user.is.pub),re.clear()),localStorage.setItem("__mas_library_user__",s["a"].user.is.pub))}))}},mounted(){Z["a"].on("open-library",(e=>{console.log("open library url:",e);const t=Object(_["d"])(e);if(!t||!t.id)return;let a=0;const n=()=>{const e=Object(_["c"])(t.id);e?(console.log("go library",e),this.$root.$emit("navigate-to"),this.$router.push(e+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",e)))):(console.log("cannot get id from channel list",t.id,e),a||this.$q.notify(this.$t("loading")),a++<5?setTimeout(n,2e3):this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))};s["a"].whenReady.then(n)}))},watch:{"lib.libStatus":{handler(e){"ready"===e&&console.log("> library ready <")},immediate:!0},showRecommend(e){if(e){if(console.log("Show recommend. Redirect to library index"),"/library"===this.$route.path)return;this.$router.replace("/library")}}},beforeRouteUpdate(e,t,a){if(!e.path.startsWith("/library"))return a();const n=()=>!s["a"].isLoggedIn||!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus;if(n()){if("/library/"===e.path||"/library"===e.path)return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to")}));if(this.isVisitable(e.fullPath))return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to",e.path)}));a()}else a()}},le=se,ce=(a("899b5"),a("7285"),a("99c4")),de=a("a829"),ue=a("a4ac"),_e=a("90c4"),pe=a("c6f0"),me=Object(v["a"])(le,i,r,!1,null,"203f2a72",null),he=me.exports;S()(me,"components",{QToolbar:ce["a"],QBtn:A["a"],QMenu:de["a"],QCard:q["a"],QSelect:ue["a"],QInput:E["a"],QIcon:G["a"],QSpace:W["a"],QBadge:_e["a"],QBreadcrumbs:pe["a"]});var ge=a("d558"),fe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-explore"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{followable:"",post:n,disableFollow:e.loadingNext},on:{preview:e.showPreviewImage,follow:e.follow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.mod,o=t.column;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.shouldLoading(t,Math.max(Math.ceil(10/o),2)*o+(n?o-n:0))},expression:"(entry) => shouldLoading(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px - env(safe-area-inset-bottom) - env(safe-area-inset-top))"}},[e.searchFilteredPosts.length||e.loadingPosts||!e.loadedAll?e.loadedAll&&!e.loadingPosts?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):[a("div",[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{directives:[{name:"show",rawName:"v-show",value:!e.loadingPosts||e.filteredPosts.length,expression:"!loadingPosts || filteredPosts.length"}],attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),e.allPosts.length||e.loadingPosts?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToFollowing}},[a("q-tooltip",[e._v(e._s(e.$t("no_recommend"))+" "+e._s(e.$t("lib_following")))])],1)],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPosts&&!e.filteredPosts.length}})],1)},be=[],ye=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"intersection",rawName:"v-intersection",value:{handler:e.triggerPreload,threshold:0},expression:"{ handler: triggerPreload, threshold: 0 }"}],staticClass:"post-card overflow-hidden relative-position column no-wrap",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},on:{mouseenter:function(){return e.onCardHover(!0)},mouseleave:function(){return e.onCardHover(!1)}}},[a("img",{staticClass:"absolute-top-left",staticStyle:{filter:"blur(24px)",transform:"scale(1.25)",opacity:"0.08"},attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}),e.post.channel?a("div",[e.hideChannel?e._e():a("q-card-section",{staticClass:"post-channel-info no-wrap overflow-hidden row items-center"},[a("div",{staticClass:"channel cursor-pointer row items-center no-wrap",on:{click:e.toChannelPage}},[a("q-avatar",{staticClass:"shadow-2",staticStyle:{background:"#282828"},attrs:{size:"18"}},[e.isLoadedChannelImage?a("img",{attrs:{src:e.post.channel.image},on:{error:e.onChannelAvatarError,load:e.onChannelAvatarLoaded}}):e._e(),e.isLoadedChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"30px"}})],1),a("div",{staticClass:"channel-title q-ml-md ellipsis-2-lines",attrs:{title:e.post.channel.title}},[e._v("\n "+e._s(e.post.channel.title||e.$t("loading"))+"\n ")]),e.post.channel.hidden?a("span",{staticClass:"hidden-info text-grey q-ml-xs"},[e._v("("+e._s(e.$t("private_channel"))+")")]):e._e()],1),a("q-space"),a("FollowButton",{attrs:{id:e.post.channel.id,disableFollow:e.disableFollow}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:!e.hideChannel,expression:"!hideChannel"}],staticStyle:{margin:"0 -4px"}})],1):e._e(),a("q-card-section",{staticClass:"post-info q-pa-none overflow-hidden",class:e.$q.screen.width>=790?["row","no-wrap","justify-start","items-stretch"]:["column","no-wrap","justify-start","items-center"],style:{maxHeight:e.$q.screen.width>=790?"calc(16px * 2 + 360px)":"unset",flexGrow:1}},[a("div",{staticClass:"image",class:e.$q.screen.width>=790?["q-pa-md"]:["q-pa-sm"]},[a("div",{staticClass:"image-container row justify-center items-center"},[e.allowClickImage?a("img",{attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}):e._e(),e.allowClickImage?e._e():a("q-icon",{attrs:{size:"80px",name:"video_file",color:"general"}})],1)]),a("div",{staticClass:"overflow-hidden full-width flex-grow column no-wrap q-pb-md",style:{marginLeft:e.$q.screen.width>=790?"-8px !important":"0"}},[a("div",{staticClass:"desc-main q-pa-sm"},[a("div",{staticClass:"text-bold desc-title row overflow-hidden full-width no-wrap items-center"},[a("div",{staticClass:"post-title q-mr-sm overflow-hidden",attrs:{title:e.post.title}},[a("div",{staticClass:"text-no-wrap ellipsis"},[e._v(e._s(e.post.title))])]),a("q-space"),a("q-btn",{staticClass:"favorite-icon block",attrs:{dense:"",flat:"",color:"primary","text-color":"primary",round:"",icon:e.isFavorite?"star":"star_border"},on:{click:e.setFavorite}},[a("q-tooltip",[e._v(e._s(e.isFavorite?e.$t("remove_from_local_favorites"):e.$t("add_to_local_favorites")))])],1),e.post.channel?a("q-btn",{staticClass:"block",attrs:{dense:"",flat:"",round:"",icon:"more_vert"}},[a("q-menu",[a("q-list",{staticStyle:{"min-width":"100px"}},[a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.follow}},[a("q-item-section",[e._v("\n "+e._s(e.followable?e.$t("follow"):e.$t("unfollow"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.share}},[a("q-item-section",[e._v("\n "+e._s(e.$t("share"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockChannel}},[a("q-item-section",[e._v("\n "+e._s(e.isBlocked?e.$t("unblock"):e.$t("block"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockUser}},[a("q-item-section",[e._v(e._s(e.isBlockedUser?e.$t("unblock_creator"):e.$t("block_creator")))])],1),e.lib.isLibAdmin?[a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.takedownPost}},[a("q-item-section",[e._v(e._s(e.$t("takedown_post")))])],1)]:e._e()],2)],1)],1):e._e()],1),a("div",{staticClass:"text-subtitle2 q-mt-xs text-grey desc-time"},[a("span",[e._v(e._s(new Date(e.post.timestamp).toLocaleString()))]),a("q-badge",{staticClass:"q-ml-md bg-primary text-primary"},[e._v("\n "+e._s(e.post.rate||"G")+"\n "),a("q-tooltip",e._l(e.getRateText(e.post.rate).split("\n"),(function(t,n){return a("div",{key:n,staticClass:"rate-tip"},[e._v(e._s(t)+"\n ")])})),0)],1),e.subtitleLang?a("q-btn",{staticClass:"q-ml-sm",attrs:{dense:"",flat:"",size:"xs"}},[a("q-icon",{staticStyle:{"font-size":"22px"},attrs:{name:"subtitles"}}),a("q-tooltip",[e._v(e._s(e.$t("with_subtitle",{language:e.subtitleLang})))])],1):e._e()],1)]),a("div",{staticClass:"overflow-auto q-pa-sm",staticStyle:{"flex-grow":"1","flex-shrink":"1"}},[a("div",{staticClass:"full-width overflow-hidden"},e._l((e.post.description||"").split("\n"),(function(t,n){return a("div",{key:n,staticClass:"desc-para"},[e._v(e._s(t)+"\n ")])})),0)]),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.hideButtons,expression:"!hideButtons"}],staticClass:"text-center post-buttons q-pt-sm"},[e.post.abUrl||e.backAbUrl?a("div",{staticClass:"download-btns"},[e.addedStatus?a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"",flat:"",ripple:!1,"text-color":"primary",color:"primary"},on:{click:e.toTaskInfo}},[a("span",{staticClass:"action-button-content"},[a("q-tooltip",[e._v(e._s(e.$t("lib_already_added"))),a("br"),e._v(e._s(e.$t("click_to_task")))]),a("q-icon",{attrs:{name:"downloading"===e.addedStatus?"download":"done"}}),e._v("\n "+e._s("downloading"===e.addedStatus?e.$t("downloading"):e.$t("completed"))+"\n ")],1)]):a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.download}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("download")}},[a("q-icon",{attrs:{name:"download"}}),e._v(e._s(e.$t("download"))+"\n ")],1)]),e.playFile||e.preloadFailed?!e.playFile&&e.preloadFailed?a("q-btn",{staticClass:"q-ml-sm q-px-sm cursor-inherit",attrs:{unelevated:"",dense:"",flat:"",ripple:!1,"text-color":"primary",color:"primary"}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-tooltip",[e._v(e._s(e.$t("post_preload_failed")))]),a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm",attrs:{unelevated:"",dense:"","text-color":"primary",color:"primary"},on:{click:e.play}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play")}},[a("q-icon",{attrs:{name:"play_arrow"}}),e._v(e._s(e.$t("play"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.triggerPlay}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)])],1):a("div",{staticClass:"no-ab-url"},[a("q-btn",{attrs:{unelevated:"",dense:"",disable:"",label:e.$t("loading")}})],1)])])]),e.screen$xs?a("div",{staticClass:"dialog-actions"},[a("q-separator"),a("q-card-section",{staticClass:"flex q-py-sm"},[a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",label:e.$t("cancel"),color:"general","text-color":"general",unelevated:""}})],1)],1):e._e()],1)},ve=[],we=a("a11f"),ke=a("fc3a"),Se=a("c5a5");a("0c26");const{languages:Ce}=a("1c53"),xe="https://www.opensubtitles.org/subtitleserve/sub/";function $e(){const e=["en","zh","es","fr","de","ru","pt"],t=[],a=[];return Object.entries(Ce).forEach((([n,o])=>{const i={label:`${o.native}(${n})`,value:n,name:o.name};e.includes(n)?a.push(i):t.push(i)})),[...a,...t]}function Te(e){let t="";for(const a of e)(a.lang||a.url)&&(t&&(t+="%%%"),t=t+a.lang+"%%"+a.url);return t}function ze(e){const t=[];if(!e||""===e)return t;let a;a=e.includes("%%%")?e.split("%%%"):[e];for(const n of a){const e=n.split("%%");t.push({lang:e[0],url:e[1]})}return t}function Pe(e){let t=e,a="";if(!Array.isArray(e)&&"string"!==typeof e)return a;"string"===typeof e&&(t=ze(e));for(const n of t)a.includes(n.lang)||(a&&(a+="、"),a+=n.lang);return a}async function Ae(e){const t=a("9ad5");let n=e.trim();return/^\d+$/.test(n)&&(n=`${xe}${n}`),console.log(`requestSubtitleUrl: [${n}]`),!!n.startsWith("http")&&new Promise((e=>{t({method:"get",url:n,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"},responseType:"stream"}).then((t=>{console.log("succ",t.status),e(!0)})).catch((t=>{var a,n;console.log("err",(null===(a=t.response)||void 0===a?void 0:a.status)||t.response||t),429===(null===(n=t.response)||void 0===n?void 0:n.status)&&e(!0),e(!1)}))}))}function Ie(e){return/^\d+$/.test(e)}function qe(e){return Ie(e)?xe+e:e}var Oe=a("c033"),Ee=a("d710"),De=a.n(Ee);const je=n["a"].observable([]);Z["a"].on("preload-failed",(e=>{console.log("preload failed",e),je.includes(e)||(je.push(e),console.log(je))})),Z["a"].on("preload-done",(e=>{console.log("preload done",e),je.includes(e)&&je.splice(je.indexOf(e),1)}));const Ne="requestIdleCallback"in window?requestIdleCallback:e=>setTimeout(e,100);async function Le({url:e,postTitle:t}){if(!je.includes(e))return new Promise((a=>{Ne((()=>{Z["a"].emit("preload-task",{url:e,postTitle:t}),a()}))}))}const Ue=document.querySelector("#q-app"),Re=e=>new Promise((t=>setTimeout(t,e)));var Me={name:"PostCard",inject:["rootApp","io"],components:{FollowButton:Oe["a"]},props:{post:{type:Object,required:!0},hideChannel:{type:Boolean},hideButtons:{type:Boolean},disableFollow:{type:Boolean}},data(){return{scrollRoot:Ue,postCardHover:!1,allowClickImage:!0,animating:!1,followBtnHover:!1,pending:!1,favoriteNotifyFns:[],backAbUrl:"",isLoadedChannelImage:!0,isFavorite:re.isFavorite(this.post.id),lib:s["a"],preloadTriggered:!1,notAvailable:je}},computed:{followable(){return!s["a"].followingChannels.find((e=>{var t;return e.id===(null===(t=this.post.channel)||void 0===t?void 0:t.id)}))},isBlocked(){var e,t;return null===(e=s["a"].userData.blockChannels)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.id)},isBlockedUser(){var e,t;return null===(e=s["a"].userData.blockUsers)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.creator)},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHover?this.$t("unfollow"):this.$t("following")},abKey(){const e=this.post.abUrl||this.backAbUrl;return e?Object(we["a"])(e.includes("://")?e:decodeURIComponent(e)):""},addedStatus(){var e;return(null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.type)||!1},shortChannelTitle(){return this.post.channel&&this.post.channel.title?this.post.channel.title.length>12?this.post.channel.title.substring(0,10)+"...":this.post.channel.title:""},playFile(){var e;return null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.playFile},settings(){var e,t;const a=(null===(e=this.post)||void 0===e||null===(t=e._)||void 0===t?void 0:t["#"])||this.post.soul,n=d["a"].state.setting,o={downloadDirectory:n.downloadDirectory,uploadSpeed:n.uploadSpeed,downloadSpeed:n.downloadSpeed,maximumDownloadNum:n.maximumDownloadNum,maximumConnectionsNum:n.maximumConnectionsNum,payedUserShareRadix:n.payedUserShareRadix,trackers:n.trackerList||[],postTitle:Object(_["b"])(this.post.title)};return a&&(o.fromPost=a),o},subtitleLang(){return Pe(this.post.subtitleList)},preloadFailed(){return this.notAvailable.includes(this.post.abUrl||this.backAbUrl)}},methods:{onCardHover(e){this.postCardHover=e},getRateText(e="G"){switch(e){case"G":return this.$t("rate_g_desc");case"PG":return this.$t("rate_pg_desc");case"PG-13":return this.$t("rate_pg_13_desc");case"R":return this.$t("rate_r_desc");case"NC-17":return this.$t("rate_nc_17_desc")}return this.$t("rate_g_desc")},confirm(e,t={ok:"",cancel:"",message:""}){const a={title:e,ok:t.ok||this.$t("ok"),cancel:t.cancel||this.$t("cancel")};return t.message&&(a.message=t.message),new Promise((e=>{this.$q.dialog(a).onOk((()=>e(!0))).onDismiss((()=>e(!1)))}))},popupImage(){console.log("popup",this.allowClickImage),this.allowClickImage&&this.$emit("preview",this.post.image)},async playAnimation(e,t="#downloading"){if(this.animating)return;this.animating=!0;const a=document.querySelector(t),n=a?a.getBoundingClientRect():{x:0,y:e.clientY,width:0,height:0},o={left:e.clientX-36+"px",top:e.clientY-36+"px"},i={left:n.x+n.width/3-36+"px",top:n.y+n.height/2-36+"px"},r=document.createElement("i");r.classList.add("q-icon","material-icons","text-primary"),r.innerHTML="video_file",r.style.position="absolute",r.style.fontSize="72px",r.style.left=o.left,r.style.top=o.top,r.style.opacity=0,r.style.transform="scale(2.5)",r.style.transition="0.4s ease",document.body.appendChild(r),await Re(0),r.style.opacity=1,r.style.transform="scale(1)",await Re(500),r.style.transition="1s ease",r.style.left=i.left,r.style.top=i.top,r.style.transform="scale(0.5)",r.style.opacity=0,await Re(600),this.animating=!1,document.body.removeChild(r)},async triggerPlay(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);if(!Object(X["isElectron"])()&&!Object(ge["a"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task")+"?",{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.playAnimation(e,"#drawer-player"),await Re(600);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;if(this.io.emit("download-and-play",{type:"magnet",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings}),Object(X["isElectron"])()||Object(ge["a"])()){var i;const e=await Object(Se["a"])(o);if(!e)return;const t=null===(i=e.match(/([0-9a-fA-F]{40})/))||void 0===i?void 0:i[1];t&&d["a"].dispatch("remotePlay",t)}else{const{default:e}=a("7d7c"),{wtClient:t}=a("c620"),n=setInterval((()=>{t.torrents.length&&(clearInterval(n),e())}),100)}},async download(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;console.log(o),console.group("subtitle"),console.log(this.post.subtitleList),console.table(ze(this.post.subtitleList)),console.groupEnd();const i={type:"url",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings};if(!Object(X["isElectron"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task"),{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.io.emit("download_torrent",i),this.playAnimation(e,Object(X["isElectron"])()?"#downloading":"#task-management")},checkChannel(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.id,a=s["a"].channelList.find((e=>e.id===t));return!(!t||!a)||(this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}),!1)},async follow(){if(this.pending)return;if(!this.checkChannel())return;const e=this.post.channel.id,t=!s["a"].followingChannels.find((t=>t&&t.id===e));if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)),this.pending=!1}),2e3),console.log("follow click",t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},async share(){if(!this.checkChannel())return;const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.post.channel.title)}/${this.post.channel.id}`;console.log("share",e);const t=await Object(Se["a"])(e);if(console.log("converted url"),!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(ke["a"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))},async blockChannel(){if(!this.checkChannel())return;if(console.log("block channel",this.post.channel.id,this.isBlocked),this.isBlocked)return s["a"].unblockChannel(this.post.channel.id).then((e=>{console.log("unblock channel result",e)}));const e=await this.confirm(this.$t("block_channel"),{message:this.$t("block_channel_confirm"),ok:this.$t("block")});e&&s["a"].blockChannel(this.post.channel.id).then((e=>{console.log("block channel result",e)}))},async blockUser(){var e;if(console.log("block user",null===(e=this.post.channel)||void 0===e?void 0:e.creator,this.isBlockedUser),!this.post.channel||!this.post.channel.creator)return;if(this.isBlockedUser)return s["a"].unblockUser(this.post.channel.creator).then((e=>{console.log("unblock user result",e)}));const t=await this.confirm(this.$t("block_creator"),{message:this.$t("block_creator_confirm"),ok:this.$t("block")});t&&s["a"].blockUser(this.post.channel.creator).then((e=>{console.log("block user result",e)}))},toChannelPage(){this.checkChannel()&&this.$emit("to-channel",this.post.channel)},toTaskInfo(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.soul;let a=`/downloader?currentTab=${this.addedStatus}&abKey=${this.abKey}`;t&&(a+=`&channel=${encodeURIComponent(t)}`),this.post.id&&(a+=`&postId=${this.post.id}`),t&&this.post.id&&(a+=`&soul=${encodeURIComponent(t+"/posts/"+this.post.id)}`),console.log("to",this.abKey,this.addedStatus,t,this.post.id),console.log(a),this.$router.push(a)},setFavorite(){const e=this.post.id;var t,a,n,o,i,r,s,l,c,d,u,_,p,m,h;this.isFavorite?re.remove({id:e},(()=>{this.isFavorite=re.isFavorite(e)})):re.add({id:this.post.id,title:this.post.title,description:this.post.description,image:this.post.image,abUrl:this.post.abUrl||this.backAbUrl,soul:null===(t=this.post)||void 0===t||null===(a=t._)||void 0===a?void 0:a["#"],subtitleList:this.post.subtitleList,channel:{id:null===(n=this.post)||void 0===n||null===(o=n.channel)||void 0===o?void 0:o.id,title:null===(i=this.post)||void 0===i||null===(r=i.channel)||void 0===r?void 0:r.title,description:null===(s=this.post)||void 0===s||null===(l=s.channel)||void 0===l?void 0:l.description,image:null===(c=this.post)||void 0===c||null===(d=c.channel)||void 0===d?void 0:d.image,soul:null===(u=this.post)||void 0===u||null===(_=u.channel)||void 0===_||null===(p=_._)||void 0===p?void 0:p["#"],creator:null===(m=this.post)||void 0===m||null===(h=m.channel)||void 0===h?void 0:h.creator}});this.isFavorite=re.isFavorite(e)},play(){if(!Object(X["isElectron"])()&&!Object(ge["a"])()&&this.addedStatus){const e=a("7d7c").default;return e()}const{infoHash:e,playFile:t}=s["a"].addedPostMap[this.abKey]||{};console.log("play",e,t);const n=t.path||t;d["a"].dispatch("remotePlay",e),Z["a"].emit("play-torrent",{infoHash:e,filepath:n})},onChannelAvatarError(){this.isLoadedChannelImage=!1},takedownPost(){if(!s["a"].isLibAdmin||!this.post.id)return;if(20!==this.post.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("post",this.post.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))},onChannelAvatarLoaded(e){e.target.src===this.post.channel.image&&(this.isLoadedChannelImage=!0)},onImageError(){this.allowClickImage=!1},onImageLoaded(e){e.target.src===this.post.image&&(this.allowClickImage=!0)},triggerPreload({isIntersecting:e}){if(e&&!this.preloadTriggered&&this.settings.postTitle)return this.preloadFailed?console.log("skip preload failed",this.settings.postTitle):this.addedStatus?console.log("skip added",this.settings.postTitle):void((this.post.abUrl||this.backAbUrl)&&(console.log(`Scroll into view ${this.settings.postTitle}`),this.preloadTriggered=!0,Le({url:this.post.abUrl||this.backAbUrl,postTitle:this.settings.postTitle})))}},activated(){var e,t;this.post.abUrl||(console.log("no aburl",{...this.post}),null!==(e=this.post)&&void 0!==e&&null!==(t=e.channel)&&void 0!==t&&t.soul&&this.post.id&&p["v"].get(this.post.channel.soul+"/posts/"+this.post.id).on(((e,t,a,n)=>{e&&e.abUrl&&(console.log("Get abUrl for",this.post.id,e.abUrl),this.backAbUrl=e.abUrl,n.off())})));this.isFavorite=re.isFavorite(this.post.id)}},Fe=Me,Be=(a("cbf3"),a("9f3e")),We=a("e7c2"),He=a("b329"),Ve=a("25fb"),Qe=a("bcaf"),Ge=a("fa4f"),Ke=Object(v["a"])(Fe,ye,ve,!1,null,"580a0550",null),Ye=Ke.exports;S()(Ke,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QSeparator:H["a"],QBtn:A["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QBadge:_e["a"],QDialog:I["a"],QVirtualScroll:Qe["a"]}),S()(Ke,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Je=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page-sticky",{staticClass:"back-to-top",attrs:{position:"bottom-right"}},[a("transition",{attrs:{name:"animate"}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"back-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"publish"},on:{click:e.onClick}},[a("div",{staticClass:"fab-inner-text"},[e._v("\n "+e._s(e.$t("back_to_top"))+"\n ")])])],1)],1)},Ze=[],Xe={name:"BackToTop",props:{show:Boolean},data(){return{hide:!1,hovered:!1}},methods:{onClick(){this.$emit("click")}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0}},et=Xe,tt=(a("3408"),a("84f9")),at=Object(v["a"])(et,Je,Ze,!1,null,"ec8a50cc",null),nt=at.exports;S()(at,"components",{QPageSticky:tt["a"],QBtn:A["a"]});var ot=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"search-channel"},[a("div",{staticClass:"fixed-bottom-right show-search-channel",class:{higher:e.higher}},[a("q-btn",{staticClass:"channel-search-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"library_add"},on:{click:function(t){e.showDialog=!0}}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("search")))])])],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{hide:e.clearInput},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",{staticClass:"search-dialog overflow-hidden"},[a("q-card-section",{staticClass:"flex items-center q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("search_for_channel")))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(t){e.showDialog=!1}}})],1),a("q-card-section",{staticClass:"column items-stretch q-pt-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"search-textfield"},[a("q-input",{attrs:{type:"text",outlined:"",dense:"",autofocus:"",label:this.$t("channel")+" ID",placeholder:"%abcd1234"},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.search.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{color:"primary",name:"search"},on:{click:e.search}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}})],1),a("q-scroll-area",{staticClass:"items-center",staticStyle:{height:"calc(100vh - 256px)",margin:"4px auto 0",width:"100%"}},[a("div",{staticClass:"search-results full-width flex justify-center items-stretch"},[e._l(e.searchResults,(function(t){return a("ChannelCard",e._b({key:t.id,attrs:{followable:!e.lib.followingChannels.find((function(e){return e.id===t.id}))},on:{detail:e.detail,follow:e.follow}},"ChannelCard",t,!1))})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")],2)])],1)],1)],1)],1)},it=[],rt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-card column relative-position overflow-hidden rounded-borders",style:{border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},attrs:{flat:""}},[a("q-img",{staticClass:"channel-image absolute-top-left full-height",staticStyle:{filter:"blur(24px) saturate(1.5)",opacity:"0.2",transform:"scale(1.25)"},attrs:{src:e.image,ratio:1,"placeholder-src":"platform-assets/windows/icon/Wide310x150Logo.scale-240.png"}}),a("div",{staticClass:"image-container overflow-hidden",staticStyle:{"border-top-left-radius":"4px!important","border-top-right-radius":"4px!important"}},[a("q-img",{staticClass:"channel-image cursor-pointer",attrs:{contain:"",src:e.image,ratio:1},on:{click:e.detail,error:e.onImageError},scopedSlots:e._u([{key:"error",fn:function(){return[a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[a("q-icon",{attrs:{name:"video_library"}}),e._v("\n "+e._s(e.title)+"\n ")],1)]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])]},proxy:!0}])},[e.image&&e.isHaveImage?e._e():a("q-icon",{staticClass:"absolute-center",staticStyle:{color:"#ccc"},attrs:{size:"90px",name:"subscriptions"}}),a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[e._v("\n "+e._s(e.title)+"\n ")])]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])],1)],1),a("q-card-section",{staticClass:"q-py-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"q-pa-none row",staticStyle:{margin:"0 -16px"}},[a("div",{staticClass:"q-py-sm q-px-sm q-pl-md",attrs:{"data-cy":"channel-ID"}},[e._v("ID: "+e._s(e.id))]),a("q-space"),a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyId}}),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"block",size:"xs",dense:""},on:{click:e.takedown}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"q-px-md channel-desc",staticStyle:{margin:"0 -16px"}},[e._v(e._s(e.description))]),a("div",{staticClass:"channel-tags",staticStyle:{margin:"4px -4px 0"}},[e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative"}},[e._v(e._s(e.$t("blocked")))]):e._e(),e.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general"}},[e._v(e._s(e.$t("private_channel")))]):e._e()],1)]),a("q-space"),e.hideFollow?a("q-card-actions",[e.editable?a("q-btn",{attrs:{flat:"",icon:"delete",color:"negative"},on:{click:function(t){return t.stopPropagation(),e.remove.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("remove_channel"))+"\n ")])],1):e._e(),a("q-space"),e.editable?a("q-btn",{attrs:{flat:"",icon:"edit"},on:{click:function(t){return t.stopPropagation(),e.detail.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("edit_channel"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"find_in_page"},on:{click:function(t){return t.stopPropagation(),e.preview.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("preview"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"settings"},on:{click:function(t){return t.stopPropagation(),e.edit.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("channel_setting"))+"\n ")])],1):e._e()],1):a("q-card-actions",{staticClass:"flex justify-center items-center"},[a("FollowButton",{staticClass:"q-my-sm",attrs:{id:e.id}})],1)],1)},st=[],lt=a("aa8a"),ct={name:"ChannelCard",components:{FollowButton:Oe["a"]},data(){return{isHaveImage:!0,lib:s["a"]}},props:{title:{type:String,required:!0},description:{type:String,required:!0},image:{type:String,required:!0},id:{type:String,default:""},soul:{type:String,default:""},hidden:{type:Boolean},editable:{type:Boolean},hideFollow:{type:Boolean},followable:{type:Boolean}},watch:{image(e,t){e&&e!==t&&(this.isHaveImage=!0)}},computed:{isBlocked(){return s["a"].userData.blockChannels.includes(this.id)}},methods:{copyId(){Object(lt["b"])(this.id).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},edit(){this.editable&&this.$emit("edit",this.id)},detail(){this.$emit("detail",this.id)},onImageError(){this.isHaveImage=!1},preview(){this.$emit("preview",this.id)},follow(){this.$emit("follow",this.id)},remove(){this.$emit("remove-channel",this.id)},takedown(){if(!s["a"].isLibAdmin||!this.id)return;if(20!==this.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("channel",this.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))}}},dt=ct,ut=(a("4b8c"),a("9767")),_t=Object(v["a"])(dt,rt,st,!1,null,"37cd58ed",null),pt=_t.exports;S()(_t,"components",{QCard:q["a"],QImg:ut["a"],QIcon:G["a"],QTooltip:V["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QBadge:_e["a"],QCardActions:D["a"]});var mt={name:"SearchChannel",props:{higher:Boolean},components:{ChannelCard:pt},data(){return{hide:!1,showDialog:!1,searchText:"",searchResults:[],lib:s["a"]}},methods:{clearInput(){this.searchText="",this.searchResults=[]},search(){if(console.log("search",this.searchText),!this.searchText||!this.searchText.trim())return this.$q.dialog({message:this.$t("please_input_channel_id"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const e=this.searchText.trim().replace(/^%/,""),t=s["a"].channelList.filter((t=>!!(t&&t.title&&t.id)&&(t.hidden?t.id===e:t.id.includes(e))));this.searchResults=t,t.length||this.$q.dialog({message:this.$t("search_channel_no_result",[e]),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}})},follow(e){const t=!s["a"].followingChannels.find((t=>t.id===e));if(t)return s["a"].followChannel(e);this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},detail(e){const t=s["a"].allChannelList.find((t=>t.id===e&&t.title&&t.creator));if(!t)return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});console.log("find ch",t);const a=["id","title"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0,this.clearInput()}},ht=mt,gt=(a("6792"),a("c782")),ft=Object(v["a"])(ht,ot,it,!1,null,"1c919252",null),bt=ft.exports;S()(ft,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QInput:E["a"],QIcon:G["a"],QScrollArea:gt["a"]});var yt=a("c49d");const vt={data(){return{isActive:!1,searchText:"",lib:s["a"]}},activated(){this.isActive=!0,this.searchText=s["a"].search.text.trim()},deactivated(){this.isActive=!1},watch:{"lib.search.text"(e){this.isActive&&(this.searchText=e.trim())}}};var wt=function(e){const t=function(){return"index"===e||"explore"===e?this.searchFilteredPosts:"favorite"===e?this.filteredFavorites:void 0},a=async function(){this.loader$loadPostsNext?await this.loader$loadPostsNext({count:6}):this.loadNext&&await this.loadNext()};return{data(){return{pagination:{descending:!0,page:1,rowsPerPage:6}}},computed:{tableData:t,pagesNumber(){return Math.ceil(this.tableData.length/this.pagination.rowsPerPage)},currentPageNumber(){return this.pagination.page}},watch:{async currentPageNumber(e){const t=this.$el.querySelector(".library-table>.q-table__grid-content");if(t.scrollTop=0,e===this.pagesNumber)try{this.loading=!0,console.log("query"),await a.call(this)}catch(n){this.$q.notify({type:"negative",position:"bottom-right",message:n.message})}finally{this.loading=!1}}}}};let kt=null;var St={data(){return{showBackToTop:!1,scrollContentSelector:".virtual-scroll-grid-wrapper"}},methods:{handleBackToTop(){if(this.showBackToTop){const e=this.$el.querySelector(this.scrollContentSelector);if(!e)return;e.scrollTop=0}else{if(!this.$refs.vscroll)return;this.$refs.vscroll.scrollTo(0,"start")}}},mounted(){const e=this.$el.querySelector(this.scrollContentSelector),t=()=>{this.showBackToTop=e.scrollTop>0};e&&(e.addEventListener("scroll",t),kt=()=>e.removeEventListener("scroll",t))},beforeDestroy(){kt&&kt()}},Ct={name:"LibraryExplore",components:{PostCard:Ye,BackToTop:nt,SearchChannel:bt,Loading:x},mixins:[vt,wt("explore"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,showPreview:!1,previewImage:"",loadingPosts:!1,loadTimer:null,allPosts:[],loadingNext:!1,loadedAll:!0,loadedChannels:[],loadedPostIds:[],scrollIndex:0,loadingIntersecting:!1,loadStartTime:Date.now(),lib:s["a"]}},computed:{nonFollowingChannels(){const e=this.lib.followingChannels.map((e=>e.id)),t=this.lib.userData.blockChannels,a=this.lib.userData.blockUsers;return this.lib.channelList.filter((n=>!t.includes(null===n||void 0===n?void 0:n.id)&&(!a.includes(null===n||void 0===n?void 0:n.creator)&&!e.includes(null===n||void 0===n?void 0:n.id)))).filter((e=>e))},filteredPosts(){return this.allPosts.filter((e=>e.title&&e.timestamp)).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channel":return e.channel.title;case"channelID":return e.channel.id;default:return e.title}},n=n=>{var o,i;if(!n||!n.title)return!1;if(!e)return!0;const r=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&e===r||(null===(i=n.channel)||void 0===i||!i.hidden)&&r.includes(e)};console.time("filter");const o=this.filteredPosts.filter(n);return console.timeEnd("filter"),o},allPostToFetch(){const e=[];return this.loadedChannels.forEach((({channel:t,ids:a})=>{a.forEach((a=>{this.loadedPostIds.includes(a)||e.push({channel:t,postId:a})}))})),e}},methods:{onScroll(e){this.scrollIndex=e.index},itemsFn(e=0,t=5){return Object(yt["a"])("vitem",e,t),this.searchFilteredPosts.slice(e,e+t)},shouldLoading(e,t){this.loadingIntersecting=e.isIntersecting,e.isIntersecting&&this.loadNext(t)},async loadNext(e=24){if(!this.active)return!1;if(this.loadingNext)return;this.loadingNext=!0,this.allPostToFetch.sort(((e,t)=>e.postId&&t.postId?e.postId.localeCompare(t.postId):0));const t=this.allPostToFetch.slice(0,e);if(Object(yt["a"])("Load Next",t),!t.length)return this.loadingNext=!1,this.loadedAll=!0,void setTimeout((()=>{Object(yt["a"])("try load more"),this.loadPostList()}),3e3);this.loadedAll=!1;const a=await Promise.all(t.map((async({channel:e,postId:t},a)=>(await new Promise((e=>setTimeout(e,Math.floor(Math.random()*a*500)))),{channel:e,post:await s["a"].getPostById(e.id,t,!0)}))));Object(yt["a"])("fetch results",a),a.forEach((({channel:e,post:t})=>{var a;t&&"object"===typeof t&&(e.hidden&&e.creator!==(null===(a=s["a"].user.is)||void 0===a?void 0:a.pub)||(t.channel=e,this.allPosts.push(t)))})),this.loadedPostIds.push(...t.map((e=>e.postId))),this.loadingNext=!1,setTimeout((()=>{Object(yt["a"])("should load next",this.loadingIntersecting),this.loadingIntersecting&&this.loadNext()}),200)},loadPostList(){if(!this.active)return;if(this.loadStartTime+15e3e.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);const e=this.nonFollowingChannels.filter((e=>!(!e.title||!e.id)&&!this.loadedChannels.find((t=>t.channel.id===e.id))));Promise.all(e.map((async(e,t)=>s["a"].getChannelPostIds(e.id,!0).then((t=>{const a=this.loadedChannels.find((t=>t.channel.id===e.id));if(Object(yt["a"])("[Explore] get channel post ids",e.id,t,!a),a?t.forEach((e=>{a.ids.includes(e)||a.ids.push(e)})):this.loadedChannels.push({channel:e,ids:t}),this.active&&!this.allPosts.length){if(this.loadedChannels.length<7&&this.nonFollowingChannels.length>2)return;this.loadNext()}}))))).then((()=>{if(this.allPosts.length)this.loadingPosts=!1;else{if(!this.active)return;setTimeout((()=>{this.loadingPosts=!1,this.allPosts.length||this.loadPostList()}),2e3)}this.active&&this.loadingIntersecting&&this.loadNext()}))},prune(){const e=this.nonFollowingChannels.map((e=>e.id));for(let n=0;n(t.ids&&e.push(...t.ids),e)),[]);for(let n=0;nthis.allPosts[n].id===e));e.includes(null===(a=this.allPosts[n].channel)||void 0===a?void 0:a.id)&&t.includes(this.allPosts[n].id)||(this.allPosts.splice(n--,1),-1!==o&&this.loadedPostIds.splice(o,1))}for(let n=0;ne.id===this.loadedPostIds[n]))||this.loadedPostIds.splice(n--,1)},showPreviewImage(e){this.previewImage=e,this.showPreview=!0},toChannelPage(e){Object(yt["a"])("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},follow(e){this.lib.followChannel(e).then((t=>{Object(yt["a"])("followed",e,t)}))},goToFollowing(){this.$router.push("/library/following")},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.active=!0,this.prune(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/explore"),this.loadStartTime=Date.now(),this.loadPostList();const e=this;"explore"in window||Object.defineProperty(window,"explore",{get(){return e.loadedChannels}})},deactivated(){this.active=!1},mounted(){this.loadPostList(),this.setSearch()},watch:{nonFollowingChannels(e,t){if(e.length!==t.length){for(let t=0;te.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);this.loadPostList()}},"lib.search.text"(e){this.isActive&&(this.searchText=e)},"searchFilteredPosts.length"(e,t){t||!e||this.active||(console.log("change length"),this.$router.push("/library/explore"))},searchText(e){e&&this.active&&this.handleBackToTop()}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},beforeRouteLeave(e,t,a){clearTimeout(this.loadTimer),a()}},xt=Ct,$t=(a("6580"),a("7027")),Tt=a("8a98"),zt=a("526f"),Pt=a("d919"),At=a("32d0"),It=a("f065"),qt=Object(v["a"])(xt,fe,be,!1,null,"872ead0c",null),Ot=qt.exports;S()(qt,"components",{QIcon:G["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QTooltip:V["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(qt,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Et=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"library-following row justify-center",class:{web:!e.isElectron}},[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],followable:!1,blocked:e.blockMap[t.id]},on:{detail:e.showChannelDetail,follow:e.unfollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),e.followings.length?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary","text-color":"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToExplore}},[a("q-tooltip",[e._v(e._s(e.$t("no_following"))+" "+e._s(e.$t("lib_explore")))])],1)],1),a("BackToTop",{attrs:{show:e.scrollOffset>0},on:{click:e.scrollTop}}),a("SearchChannel",{attrs:{higher:e.scrollOffset>0}})],2)},Dt=[],jt=a("018b"),Nt={name:"LibraryFollowing",components:{ChannelCard:pt,SearchChannel:bt,BackToTop:nt},mixins:[vt],data(){return{isElectron:Object(X["isElectron"])(),scrollOffset:0,lib:s["a"]}},computed:{followings(){return this.lib.followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(e.title&&e.id)))},blockMap(){const e={};return s["a"].userData&&s["a"].userData.blockChannels?(this.followings.forEach((t=>{(s["a"].userData.blockChannels.includes(t.id)||s["a"].userData.blockUsers.includes(t.creator))&&(e[t.id]=!0)})),e):e},filteredChannels(){const e=this.searchText.toLowerCase();if(!e)return this.followings;const t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{const n=a(t);return Object(_["a"])(null===n||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.followings.filter(n)}},methods:{scrollTop(){this.$refs.scrollEl.scrollTo(0,0)},showChannelDetail(e){const t=this.followings.find((t=>t.id===e));console.log("to",t);const a=["id","title"].map((e=>{const a=t[e];return encodeURIComponent(e)+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)},unfollow(e){this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},goToExplore(){this.$root.$emit("navigate-to"),this.$router.push("/library/explore")},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/following"),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.scrollTo(0,this.scrollOffset)},mounted(){this.setSearch(),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.addEventListener("scroll",Object(jt["a"])((()=>{this.scrollOffset=this.$refs.scrollEl.scrollTop})))},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Lt=Nt,Ut=(a("3d7e"),Object(v["a"])(Lt,Et,Dt,!1,null,"0a6f4e44",null)),Rt=Ut.exports;S()(Ut,"components",{QBtn:A["a"],QTooltip:V["a"]});var Mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"local-favorite",class:{web:!e.isElectron}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.filteredFavorites.length,itemsFn:function(t,a){return e.filteredFavorites.slice(t,a)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n,followable:!e.lib.followingChannels.some((function(e){return e.id===n.channel.id}))},on:{follow:e.onFollow,preview:e.preview,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"rounded-borders bg-page column justify-center items-center",class:e.filteredFavorites.length?"q-mb-sm q-pa-md":"",style:e.filteredFavorites.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},[e.filteredFavorites.length?e._e():a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)])]},proxy:!0}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("div",{staticClass:"fixed-bottom-right save-or-load",class:{higher:e.scrollIndex>0||e.showBackToTop}},[a("q-btn",{staticClass:"backup-btn q-ma-xs",class:{hide:e.hideBtn},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary",icon:"source"},on:{click:e.saveOrLoad}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("backup")))])])],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("q-dialog",{model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",[a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"text-h6 col-12"},[e._v(e._s(e.$t("import_or_export_favorites")))]),a("div",{staticClass:"col-12"},[e._v("\n Total: "+e._s(e.favorites.length)+"\n ")]),a("div",{staticClass:"btns col-12 text-right q-mt-md"},[a("q-btn",{attrs:{color:"primary",flat:"",icon:"save",label:e.$t("export_local_favorites")},on:{click:e.exportData}}),a("FileSelector",{attrs:{accept:{name:"JSON",extensions:["json"]}},on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",flat:"",icon:"add",label:e.$t("import_favorites_file")}})],1)],1)])],1)],1)],1)},Ft=[],Bt=a("9a50"),Wt={name:"LibraryFavorite",components:{PostCard:Ye,BackToTop:nt,FileSelector:Bt["a"]},mixins:[vt,wt("favorite"),St],data(){return{isElectron:Object(X["isElectron"])(),hideBtn:!1,favorites:re.list(),scrollIndex:0,showPreview:!1,previewImage:"",showDialog:!1,lib:s["a"]}},computed:{filteredFavorites(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"postID":return e.id;case"postDesc":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.favorites.filter(n)}},methods:{onScroll(e){this.scrollIndex=e.index},preview(e){this.previewImage=e,this.showPreview=!0},remove(e){return re.remove(e)},saveOrLoad(){this.showDialog=!0},exportData(){Object(_["h"])(JSON.stringify({favorites:this.favorites}),"favorites.json"),this.showDialog=!1},importData(){console.log(this.$refs.fileSelector),this.$refs.fileSelector.value="",this.$refs.fileSelector.click()},onFileChange(e){e&&Object(_["g"])(e).then((e=>{if(!e)return this.$q.notify("Cannot read data from this file");const t=JSON.parse(e);if(!t.favorites||!Array.isArray(t.favorites))return this.$q.notify(this.$t("not_a_favorite_file"));re.set(t.favorites),this.showDialog=!1}))},onFollow(e){if(s["a"].followingChannels.some((t=>t.id===e||t.soul===e)))return console.log("unfollow"),s["a"].unfollowChannel(e).then(console.log);console.log("follow"),s["a"].followChannel(e).then(console.log)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"postTitle"},{label:this.$t("description"),value:"postDesc"},{label:this.$t("channel_title"),value:"channel"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/favorite"),this.hideBtn=!0,setTimeout((()=>{this.hideBtn=!1}),300)},deactivated(){this.hideBtn=!0},watch:{searchText(e){e&&this.active&&this.handleBackToTop()}}},Ht=Wt,Vt=(a("2377"),Object(v["a"])(Ht,Mt,Ft,!1,null,"c0faef30",null)),Qt=Vt.exports;S()(Vt,"components",{QIcon:G["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSpinnerIos:$t["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(Vt,"directives",{ClosePopup:K["a"]});var Gt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"edit-container"},[a("div",{ref:"scrollArea",staticClass:"edit-main flex items-stretch justify-center"},[a("div",{staticClass:"add-channel rounded-borders bg-general q-ma-sm flex justify-center items-center column",staticStyle:{"min-height":"290px"}},[a("div",{staticClass:"add-channel-panel relative-position"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticClass:"add-channel-btn block absolute-left",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle_outline",size:"24px"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_channel")))])],1),a("q-btn",{staticClass:"quick-start block absolute-right",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle",size:"24px"},on:{click:function(t){e.showQuickStart=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("quick_start_desc")))])],1)],1)]),e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{title:t.title,description:t.description,image:t.image,id:t.id,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],editable:!0,hideFollow:""},on:{edit:e.edit,detail:e.showChannelDetail,preview:e.showPreview,"remove-channel":e.removeChannel}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("ChannelEdit",{attrs:{title:e.modeTitle,show:e.showEdit,channel:e.edittingChannel,rules:{validateChannelTitle:e.validateChannelTitle,validateChannelDesc:e.validateChannelDesc,validateChannelImage:e.validateChannelImage}},on:{close:function(t){e.showEdit=!1},submit:e.submit}}),a("PostEdit",{attrs:{title:e.postModeTitle,show:e.showPostEdit,post:e.edittingPost,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl}},on:{close:function(t){e.showPostEdit=!1},submit:e.submitPost}}),a("QuickStart",{attrs:{show:e.showQuickStart},on:{input:function(t){return e.showQuickStart=t}}})],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}}),a("q-dialog",{attrs:{"full-width":"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showPostList,callback:function(t){e.showPostList=t},expression:"showPostList"}},[a("PostList",{attrs:{channel:e.listChannel,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl},editable:!0},on:{edit:e.showPostEditor,add:e.showPostAdd,"remove-post":e.removePost}})],1)],1)},Kt=[],Yt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[e.channel?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.title))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"column q-pb-none",class:e.screen$xs?"q-pt-md":"q-pt-none",staticStyle:{width:"560px","max-width":"100%","flex-grow":"1"}},[a("q-input",{attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle],placeholder:e.$t("placeholder_channel_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("description"),rules:[e.rules.validateChannelDesc],placeholder:e.$t("placeholder_channel_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("q-toggle",{staticStyle:{"margin-top":"-8px"},attrs:{color:"green"},model:{value:e.hidden,callback:function(t){e.hidden=t},expression:"hidden"}},[a("span",[e._v(e._s(e.$t("set_as_private")))]),a("q-tooltip",[e._v(e._s(e.$t("hide_in_explore")))])],1)],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"q-px-md",class:e.screen$xs?"q-py-sm":"q-py-md",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-px-md",attrs:{unelevated:"",color:"general","text-color":"general",label:e.$t("cancel")}}),a("q-btn",{staticClass:"q-px-md",attrs:{unelevated:"",color:"primary","text-color":"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1):e._e()],1)},Jt=[],Zt=a("d534"),Xt={name:"ChannelEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,channel:Object,title:String,rules:{validateChannelTitle:Function,validateChannelDesc:Function,validateChannelImage:Function}},data(){const e=[{label:this.$t("channel_title"),key:"title",rules:[this.rules.validateChannelTitle],value:""},{label:this.$t("description"),key:"description",rules:[this.rules.validateChannelDesc],value:""},{label:this.$t("preview")+"(url)",key:"image",rules:[this.rules.validateChannelImage],value:""}];return{inputs:e,channelTitle:"",description:"",image:"",isImageLoaded:!1,hidden:!1}},methods:{close(){this.$emit("close")},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.channelTitle,description:this.description,image:this.image,hidden:this.hidden})}},watch:{show(e){e&&this.channel?(this.channelTitle=this.channel.title,this.description=this.channel.description,this.image=this.channel.image,this.channel.hidden?this.hidden=!0:this.hidden=!1):(this.channelTitle="",this.description="",this.image="",this.hidden=!1)}}},ea=Xt,ta=a("03bd"),aa=Object(v["a"])(ea,Yt,Jt,!1,null,"01839ef4",null),na=aa.exports;S()(aa,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QInput:E["a"],QToggle:ta["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(aa,"directives",{ClosePopup:K["a"]});var oa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.close}},[e.post?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))])]),a("q-card-section",{staticClass:"row q-pt-none justify-start items-start"},[a("div",{staticClass:"full-width title-input-container"},[a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"bottom-slots":"","stack-label":"",outlined:"",dense:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle],placeholder:e.$t("placeholder_post_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.titleFromTask,expression:"titleFromTask"}],staticClass:"full-width"},[a("span",{staticClass:"task-prefix"},[e._v(e._s(e.$t("task_title"))+":")]),a("span",{staticClass:"title-from-task q-ml-xs text-grey"},[e._v(e._s(e.titleFromTask))]),a("span",{staticClass:"cursor-pointer q-ml-sm set-title",on:{click:e.setTitleFromTask}},[e._v(e._s(e.$t("set_title")))])])]},proxy:!0}],null,!1,1210891792),model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}})],1),a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"stack-label":"",outlined:"",dense:"",label:e.$t("description"),rules:[e.rules.validatePostDesc],placeholder:e.$t("placeholder_post_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-xs",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("div",{staticClass:"full-width row col-12"},[a("q-input",{staticClass:"col-7 q-pr-md",attrs:{outlined:"",dense:"",label:e.appName+" URL",rules:[e.rules.validatePostUrl],debounce:500},on:{input:e.inputUrl},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("q-select",{staticClass:"col-5",attrs:{outlined:"",dense:"","bottom-slots":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important","use-input":"",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}],null,!1,1979668889),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("q-select",{staticClass:"q-mt-sm",staticStyle:{width:"100%"},attrs:{outlined:"",dense:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}}),a("q-markup-table",{staticClass:"q-mt-lg full-width",attrs:{bordered:"",flat:"",dense:"","no-data-label":"I didn't find anything for you"}},[a("thead",[a("tr",[a("th",{attrs:{colspan:"3"}},[a("div",{staticClass:"flex items-center full-width"},[a("div",[e._v(e._s(e.$t("subtitle_list"))+" ("+e._s(e.$t("optional"))+")")]),a("q-btn",{staticClass:"q-ml-sm",attrs:{flat:"",round:"",icon:"help_outline",size:"0.7rem"}},[a("q-tooltip",[e._v(e._s(e.$t("support_subtitle_type"))),a("br"),e._v(e._s(e.$t("recommend_opensubtitles")))])],1),a("q-btn",{staticClass:"q-mx-xs",attrs:{flat:"",round:"",icon:"add",size:"0.7rem"},on:{click:function(t){return e.editSubtitle()}}},[a("q-tooltip",[e._v(e._s(e.$t("add_subtitles")))])],1)],1)])]),e.subtitleList.length?a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("download_link")))]),a("th",{staticClass:"text-center"})]):e._e()]),a("tbody",e._l(e.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"edit",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.editSubtitle(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1),a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.modifySubtitleList(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1)],1)])})),0)])],1),a("q-space"),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:e.$t("lib_submit"),color:"primary"},on:{click:e.submit}})],1)],1):e._e(),a("q-dialog",{ref:"addSubtitleDialog",on:{hide:function(t){e.subtitle={}}},model:{value:e.showSubtitleInput,callback:function(t){e.showSubtitleInput=t},expression:"showSubtitleInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("add_subtitle_url")))])]),a("q-card-section",{staticClass:"q-pt-none full-width"},[a("q-select",{staticStyle:{width:"200px"},attrs:{dense:"",outlined:"","emit-value":"",label:e.$t("language"),options:e.languageOptions},model:{value:e.subtitle.lang,callback:function(t){e.$set(e.subtitle,"lang",t)},expression:"subtitle.lang"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{label:e.$t("download_link"),outlined:"",dense:"",type:"text",placeholder:"https://www.opensubtitles.org/.../subtitleserve/sub/..."},model:{value:e.subtitle.url,callback:function(t){e.$set(e.subtitle,"url",t)},expression:"subtitle.url"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{attrs:{flat:"",icon:"done",loading:e.loading,disable:e.loading},on:{click:function(t){return e.modifySubtitleList(e.subtitle.index,e.subtitle)}},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])})],1)],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},ia=[],ra={name:"PostEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,post:Object,title:String,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},data(){const e=De.a.displayName;return{appName:e,postTitle:"",titleFromTask:"",description:"",image:"",isImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,rate:{label:this.$t("film_rate"),value:""},showSubtitleInput:!1,loading:!1,subtitle:{},languageOptions:$e(),subtitleList:[],taskOptions:[]}},computed:{rateOptions(){return[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}]},uploadingTasks(){return d["a"].getters.uploading.filter((e=>!!e.title||(console.log("PostEdit.uploadingTasks:",e),!1))).map((e=>{var t;const a=e.title.length>28?e.title.substring(0,24)+"...":e.title;return{label:a,title:e.title,value:(null===(t=e.abUrl.split("&"))||void 0===t?void 0:t[0])||e.abUrl}}))}},methods:{filterOptions(e,t){console.log("filter",e);const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.label.toLowerCase().includes(a)))}))},close(){this.$emit("close")},setTitleFromTask(){this.postTitle=this.titleFromTask,this.titleFromTask=""},inputUrl(e){this.abSelect&&e!==this.abSelect.value&&(this.abSelect=null,this.titleFromTask="")},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});this.abUrl=t},editSubtitle(e){if(this.loading=!1,"number"===typeof e)this.subtitle=JSON.parse(JSON.stringify(this.subtitleList[e])),this.subtitle.index=e;else{if(this.subtitleList.length>=5)return this.$q.notify(this.$t("maximumSubtitleNum_limit"));this.subtitle={index:this.subtitleList.length}}this.showSubtitleInput=!0},async modifySubtitleList(e,t){if(console.log("modifySubtitleList",e),this.loading=!0,t&&"number"===typeof t.index){if(!t.lang||!t.url||""===t.lang)return this.loading=!1,this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("cannot_add_subtitle_msg")+this.$t("recommend_opensubtitles"),ok:this.$t("ok")});const a=await Ae(this.subtitle.url);if(this.loading=!1,!a)return this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("invalid_download_url"),ok:this.$t("ok")});this.subtitleList[e]=t}else this.subtitleList.splice(e,1);this.$refs.addSubtitleDialog.hide()},async checkSubtitleUrl(){if(!/https:\/\/www\.opensubtitles\.org.*\/subtitleserve\/sub\/\d+$/gm.test(this.subtitle.url)&&!/^\d+$/.test(this.subtitle.url))return this.$t("invalid_download_url");const e=await Ae(this.subtitle.url);return e?void 0:this.$t("invalid_download_url")},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.postTitle.trim(),description:this.description.trim(),image:this.image.trim(),rate:this.rate.value,abUrl:this.abUrl.trim(),subtitleList:Te(this.subtitleList).trim()})}},watch:{show(e){if(e&&this.post){if(this.postTitle=this.post.title,this.description=this.post.description,this.image=this.post.image,this.abUrl=this.post.abUrl.includes(":")?this.post.abUrl:decodeURIComponent(this.post.abUrl),this.post.rate){const e=this.rateOptions.find((e=>e.value===this.post.rate));e&&(this.rate={...e})}else this.rate={label:this.$t("film_rate"),value:""};this.subtitleList=ze(this.post.subtitleList)}else this.postTitle="",this.description="",this.image="",this.abUrl="",this.titleFromTask="",this.abSelect=null,this.rate={label:this.$t("film_rate"),value:""},this.subtitleList=[]}}},sa=ra,la=(a("1761"),a("4101")),ca=Object(v["a"])(sa,oa,ia,!1,null,"48adc3b5",null),da=ca.exports;S()(ca,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QSelect:ue["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QSpace:W["a"],QCardActions:D["a"],QSpinner:w["a"],QColor:la["a"]}),S()(ca,"directives",{ClosePopup:K["a"]});var ua=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"post-list-card column no-wrap overflow-hidden relative-position"},[a("q-card-section",{staticClass:"flex items-center bg-page",class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.channel.title))]),a("q-space"),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"add"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_post")))])],1):e._e(),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"file_open"},on:{click:function(t){e.showImport=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("import_data_from_excel")))])],1):e._e(),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-ml-xs",attrs:{"fab-mini":"",flat:"",icon:"close"}})],1),a("q-card-section",{staticClass:"q-py-sm q-pb-none"},[a("div",{staticClass:"description"},[e._v(e._s(e.channel.description))])]),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none",staticStyle:{"flex-grow":"1","flex-shrink":"1","overflow-y":"scroll"}},[a("q-markup-table",{attrs:{square:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("created_time")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("operations")))])])]),a("tbody",{staticClass:"post-table"},e._l(e.sortedPosts,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[a("img",{attrs:{src:t.image,loading:"lazy",width:"64px"}})]),a("td",{staticClass:"text-left post-title"},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc",staticStyle:{"min-width":"240px"}},[e._v(e._s(t.description))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-center"},[e._v(e._s(e.stampToString(t.timestamp)))]),a("td",{staticClass:"text-center"},[e.editable?a("q-btn",{attrs:{icon:"edit",round:"",flat:""},on:{click:function(a){return e.edit(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1):e._e(),e.editable?a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:""},on:{click:function(a){return e.deletePost(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1):e._e()],1)])})),0)])],1),a("q-dialog",{attrs:{"content-class":"fullscreen-dialog excel-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.importDialogChange},model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[e.excelFile?a("Excel",{attrs:{file:e.excelFile,channelId:e.channel.id,channelPosts:e.posts,propKeys:e.excelProps,rules:e.rules}}):a("q-card",{staticClass:"import-entry"},[a("q-card-section",{staticClass:"row items-center no-wrap q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("import_data_from_excel")))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-card-section",{staticClass:"row items-center q-pt-none excel-import-dialog"},[a("div",{staticClass:"prop-settings col-12"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("set_excel_keys")))]),e._l(e.excelProps,(function(t,n){return a("q-input",{key:n,staticClass:"q-my-sm",attrs:{outlined:"",dense:"",label:t.label},model:{value:t.tableKey,callback:function(a){e.$set(t,"tableKey",a)},expression:"conf.tableKey"}})}))],2),a("q-file",{staticClass:"col-12",attrs:{outlined:"",dense:"",label:e.$t("open_file"),accept:".xls,.xlsx"},model:{value:e.excelFile,callback:function(t){e.excelFile=t},expression:"excelFile"}})],1)],1)],1),a("q-inner-loading",{staticClass:"q-pt-xl",attrs:{showing:e.showLoading,label:e.$t("loading")}},[a("q-spinner-gears",{attrs:{size:"50px",color:"primary"}}),a("div",{staticClass:"text-center"},[e._v(e._s(e.$t("lib_from_network")))])],1)],1)},_a=[],pa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-excel"},[a("q-card",{staticClass:"excel-card"},[a("q-card-section",{staticClass:"excel-main"},[a("div",{staticClass:"text-h6"},[e._v("Excel")]),a("q-markup-table",[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-left"},[e._v("Url")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"operation"})])]),a("tbody",{staticClass:"post-table"},e._l(e.posts,(function(t,n){return a("tr",{key:t.title},[a("td",{staticClass:"text-left post-title",attrs:{title:t.title}},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc"},[e._v(e._s(t.description))]),a("td",{staticClass:"text-left post-url",attrs:{title:t.abUrl}},[e._v(e._s(t.abUrl))]),a("td",{staticClass:"text-left post-img"},[a("img",{attrs:{src:t.image,width:"24px",loading:"lazy"}})]),a("td",{staticClass:"text-left post-rating"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-left post-options"},[a("q-btn",{attrs:{dense:"",flat:"",icon:"close",color:"red"},on:{click:function(t){return e.removePost(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("remove")))])],1)],1)])})),0)])],1),a("q-card-actions",{staticClass:"excel-actions q-pb-xs",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",color:"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1)],1)},ma=[],ha=a("8b4c"),ga={name:"LibraryExcel",props:{file:{type:File,default:()=>null},channelId:{type:String,default:""},channelPosts:{type:Array,default:()=>[]},rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function},propKeys:{type:Array,default:()=>[{key:"title",label:(void 0).$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:"Alphabiz URL",tableKey:"AB-S"},{key:"description",label:(void 0).$t("description"),tableKey:"描述"},{key:"image",label:(void 0).$t("poster"),tableKey:"海报"},{key:"rate",label:(void 0).$t("film_rate"),tableKey:"分级"}]}},data(){return{posts:[]}},methods:{removePost(e){this.posts.splice(e,1)},readFile(e){return new Promise(((t,a)=>{const n=new FileReader;n.onload=e=>{const n=e.target.result;try{const e=ha["read"](n);t(e)}catch(e){a(e)}},n.onerror=e=>a(e),n.readAsArrayBuffer(e)}))},async parseXlsx(){console.log("parse xlsx",this.file,ha);const e=await this.readFile(this.file);console.log(e),this.$q.loading.show(),this.posts=[];let t=0,a=0,n=0;for(const o in e.Sheets){const i=e.Sheets[o],r=ha["utils"].sheet_to_json(i);console.log("Parsed",r),r.length&&await r.reduce((async(e,o)=>{await e,await new Promise((e=>setTimeout(e)));const i={};for(const a of this.propKeys){if(!o[a.tableKey]||!o[a.tableKey].length)return console.log("[Excel] Failed",a,a.tableKey,o[a.tableKey]),t++;i[a.key]=o[a.tableKey]}if(this.channelPosts.some((e=>e.title===i.title||e.abUrl===i.abUrl)))return console.log("[Excel] Skip existed",i,this.channelPosts.find((e=>e.title===i.title||e.abUrl===i.abUrl))),a++;if(i.abUrl&&i.abUrl.startsWith("magnet"))try{i.abUrl=await Object(Se["a"])(i.abUrl)}catch(r){console.log("cannot convert abUrl",i.abUrl,r)}if(i.description=i.description.substring(0,299),[this.rules.validatePostTitle(i.title),this.rules.validatePostDesc(i.description),this.rules.validatePostImage(i.image),this.rules.validatePostUrl(i.abUrl)].some((e=>"string"===typeof e)))return console.log("[Excel] Validate error",[i.title,this.rules.validatePostTitle(i.title),i.description,this.rules.validatePostDesc(i.description),i.image,this.rules.validatePostImage(i.image),i.abUrl,this.rules.validatePostUrl(i.abUrl)]),n++;this.posts.push(i)}),Promise.resolve())}this.$q.loading.hide(),this.$q.dialog({title:this.$t("excel_import_succeded"),message:this.$t("excel_import_success_msg",[this.posts.length,t,a,n])})},submit(){return console.log(this.channelId,s["a"],this.posts),this.channelId?this.posts.length?void s["a"].addPosts(this.posts,this.channelId).then(((...e)=>{console.log("add posts",...e)})):this.$q.notify(this.$t("cannot_find_posts")):this.$q.notify(this.$t("cannot_find_channel"))}},watch:{file(e){console.log("file:",e)}},mounted(){console.log("excel mounted"),this.parseXlsx()},activated(){console.log("excel activated")}},fa=ga,ba=(a("5415"),Object(v["a"])(fa,pa,ma,!1,null,"27719a2e",null)),ya=ba.exports;S()(ba,"components",{QCard:q["a"],QCardSection:O["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QCardActions:D["a"]}),S()(ba,"directives",{ClosePopup:K["a"]});const va=e=>("00"+e).slice(-2);var wa={props:{channel:Object,editable:Boolean,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},components:{Excel:ya},data(){const e=De.a.name;return{appName:e,showLoading:!1,showImport:!1,excelFile:null,posts:[],excelProps:[{key:"title",label:this.$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:`${De.a.displayName} URL`,tableKey:"AB-S"},{key:"description",label:this.$t("description"),tableKey:this.$t("description")},{key:"image",label:this.$t("poster"),tableKey:this.$t("poster")},{key:"rate",label:this.$t("film_rate"),tableKey:this.$t("film_rate")}]}},inject:["rootApp"],computed:{sortedPosts(){return[...this.posts].sort(((e,t)=>t.timestamp-e.timestamp))}},methods:{loadPosts(){this.showLoading=!0,console.log("load posts",this.channel.id,this.channel),Object(p["o"])(this.channel.id,!this.editable).then((e=>{this.posts=e,console.log("Got posts",e),this.showLoading=!1}))},edit(e){console.log("edit",e,this.channel),this.$emit("edit",e,this.channel)},add(){this.$emit("add",this.channel)},deletePost(e){this.$emit("remove-post",e.id,this.channel.id)},download(e){this.rootApp.promptDownload(e.abUrl,!0)},stampToString(e){if(isNaN(e))return console.log("stamp is not number",e),"-";const t=new Date(e);return isNaN(t.getFullYear())?(console.log("date is invalid",e,t),"-"):[t.getFullYear(),...[t.getMonth()+1,t.getDate()].map(va)].join("-")+" "+[t.getHours(),t.getMinutes(),t.getSeconds()].map(va).join(":")},importDialogChange(e){e||(this.excelFile=null)}},mounted(){console.log("mounted",this.channel),this.loadPosts()},beforeDestroy(){console.log("destroyed",this.channel),this.channel&&this.channel.id&&Object(p["y"])(this.channel.id)}},ka=wa,Sa=(a("5e95"),a("3927")),Ca=Object(v["a"])(ka,ua,_a,!1,null,"1e291392",null),xa=Ca.exports;S()(Ca,"components",{QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QDialog:I["a"],QInput:E["a"],QFile:Sa["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QColor:la["a"]}),S()(Ca,"directives",{ClosePopup:K["a"]});var $a=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.changeShow}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",id:"file-selector"},on:{change:e.onFileChange}}),a("input",{ref:"folderSelector",staticStyle:{display:"none"},attrs:{type:"file",webkitdirectory:"",id:"folder-selector"},on:{change:e.onFolderChange}}),a("q-card",{staticClass:"card-container"},[a("q-card-section",{staticClass:"card-header non-selectable",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold q-my-none"},[e._v(e._s(e.$t("quick_start")))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("div",{staticClass:"card-content"},[a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"from-file-or-task flex items-start justify-start q-mb-lg"},[e.isCapacitor?e._e():a("div",{staticClass:"from-file-or-folder q-mt-md col-grow"},[a("q-btn",{staticClass:"full-width",class:{"q-mt-sm":!e.isElectron},attrs:{unelevated:"",dense:e.isElectron,color:"primary","text-color":"primary",label:e.$t("select_file")},on:{click:function(){return e.$refs.fileSelector.click()}}}),e.isElectron?a("q-btn",{staticClass:"full-width q-mt-sm",attrs:{unelevated:"",dense:"",color:"primary","text-color":"primary",label:e.$t("select_folder")},on:{click:function(){return e.$refs.folderSelector.click()}}}):e._e()],1),a("q-select",{staticClass:"col-grow q-mt-md from-upload-task",class:e.isCapacitor?"q-ml-none":"q-ml-sm",attrs:{outlined:"",dense:"","bottom-slots":"","use-input":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important",behavior:"menu",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet text-primary cursor-pointer non-selectable",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}]),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("div",{staticClass:"post-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_post_desc"),rules:[e.rules.validatePostDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postDescription,callback:function(t){e.postDescription=t},expression:"postDescription"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.appName+" "+e.$t("download_link"),rules:[e.rules.validatePostUrl]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("ImageWithPreview",{staticClass:"q-mb-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updatePostImageState},model:{value:e.postImage,callback:function(t){e.postImage=t},expression:"postImage"}}),a("q-select",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}})],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"channel-option non-selectable"},[a("label",{staticClass:"text-bold q-mr-sm",staticStyle:{"font-size":"1.125rem"}},[e._v(e._s(e.$t("channel_options")))]),a("q-radio",{attrs:{val:!0,label:e.$t("create_new_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}}),a("q-radio",{attrs:{val:!1,label:e.$t("use_existed_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}})],1),e.createChannel?a("div",{staticClass:"channel-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_channel_desc"),rules:[e.rules.validateChannelDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelDescription,callback:function(t){e.channelDescription=t},expression:"channelDescription"}}),a("ImageWithPreview",{attrs:{label:e.$t("channel_poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateChannelImageState},model:{value:e.channelImage,callback:function(t){e.channelImage=t},expression:"channelImage"}})],1):a("div",{staticClass:"channel-select"},[a("q-select",{staticClass:"full-width",attrs:{outlined:"","bottom-slots":"","use-input":"",dense:"","popup-content-style":"max-height: 320px !important","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"data-cy":"select-direct",behavior:"menu",label:e.$t("select_existed_channel"),options:e.channelOptions},on:{filter:e.filterChannels},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"option",fn:function(t){return[a("q-item",e._g(e._b({},"q-item",t.itemProps,!1),t.itemEvents),[a("q-item-section",[a("q-item-label",[a("span",{staticClass:"label"},[e._v(e._s(t.opt.label))]),a("small",{staticClass:"text-grey q-ml-sm"},[e._v(e._s(t.opt.caption))])])],1)],1)]}}]),model:{value:e.selectedChannel,callback:function(t){e.selectedChannel=t},expression:"selectedChannel"}})],1)])],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"card-footer",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{unelevated:"",label:e.$t("lib_submit"),disable:!e.submitReady,"text-color":"primary",color:"primary"},on:{click:e.submit}})],1)],1),a("q-dialog",{attrs:{value:!!e.progressText,persistent:""}},[a("q-card",{staticClass:"progress-card"},[a("q-card-section",[a("div",{staticClass:"text q-pa-md"},[e._v(e._s(e.progressText))])])],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text",autofocus:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done",color:"primary","text-color":"primary"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},Ta=[],za=(a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("84f6")),Pa=a("d6fe"),Aa=a.n(Pa);function Ia(e){if(!Array.isArray(e)||!e[0])return"";let t=Object(Pa["dirname"])(e[0]);for(let a=1;a1)t=Object(Pa["dirname"])(t);return t}var qa=a("8a63");const Oa=4e9,Ea=e=>new Promise((t=>setTimeout(t,e))),Da=()=>{const e=new Uint8Array(12);return crypto.getRandomValues(e),e.reduce(((e,t)=>{const a=t.toString(16).padStart(2,"0");return e+a}),"")};var ja={components:{ImageWithPreview:Zt["a"]},name:"QuickStart",props:{show:Boolean,preset:{required:!1,default:null}},data(){const e=[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}],t={validateChannelTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||oe["b"].t("validate_channel_image_url"))},validatePostTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||oe["b"].t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return oe["b"].t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?oe["b"].t("validate_post_url"):e.length<2048||oe["b"].t("validate_post_url_length")}},a=De.a.displayName;return{appName:a,rules:t,progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,rateOptions:e,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:e[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""},isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{username(){return s["a"].userData.name?s["a"].userData.name:d["a"].getters.accountUserInfo.nickname?d["a"].getters.accountUserInfo.nickname:s["a"].user.name||"-"},uploadingTasks(){return za["a"].taskList.uploading.map((e=>this.getTaskOption(e)))},channelOptions(){return s["a"].ownedChannels.filter((e=>!!e.id&&e.title.toLowerCase().includes(this.channelFilterInput))).filter((e=>s["a"].channelList.some((t=>e.id===t.id)))).map((e=>{const t=e.title.length>48?e.title.substring(0,44)+"...":e.title;return{label:t,title:e.title,caption:"%"+e.id,id:e.id}}))},submitReady(){if(this.channelImage&&!this.isChannelImageLoaded)return!1;if(this.channelImage&&!0!==this.rules.validateChannelImage(this.channelImage))return!1;if(this.postImage&&!this.isPostImageLoaded)return!1;if(this.postImage&&!0!==this.rules.validatePostImage(this.postImage))return!1;if(!this.rate)return!1;if(this.createChannel){if([this.rules.validateChannelTitle(this.channelTitle),this.rules.validateChannelDesc(this.channelDescription)].some((e=>!0!==e)))return!1}else if(!this.selectedChannel.id)return!1;return!![this.rules.validatePostTitle(this.postTitle),this.rules.validatePostDesc(this.postDescription),this.rules.validatePostUrl(this.abUrl)].every((e=>!0===e))}},methods:{todo(){this.$q.notify("TODO: This is not impl")},changeShow(e){this.$emit("input",e)},clear(){var e;const t={progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:this.rateOptions[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""}};null!==(e=this.channelOptions)&&void 0!==e&&e.length&&(t.createChannel=!1,t.selectedChannel=this.channelOptions[0]);for(const a in t)this.$set(this,a,t[a])},getTaskOption(e){var t;const a=e.postTitle||e.name||e.infoHash,n=a.length>36?a.substring(0,32)+"...":a;let o=Object(M["g"])(e.progress||1);if(e.ready)o="100.00%";else if(e.verifyStatus){const{current:t,total:a}=e.verifyStatus,n=t/a,i=Object(M["g"])(n);isNaN(n)||(o=i)}const i=(null===(t=e.alphabizURI.split("&"))||void 0===t?void 0:t[0])||e.alphabizURI,r=De.a.shortProtocol+"://"+i.split("/").pop();return{label:e.ready?n:n+` (${o})`,title:a,progress:o,value:r,ready:e.ready}},filterOptions(e,t){const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.title.toLowerCase().includes(a)))}))},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title,this.postDescription||(this.postDescription=this.$t("uploaded_by",{title:e.title,name:this.username}))},filterChannels(e,t){const a=e.toLowerCase();t((()=>{this.channelFilterInput=a}))},updatePostImageState(e){this.isPostImageLoaded=1===e},updateChannelImageState(e){this.isChannelImageLoaded=1===e},showProgress(e,...t){console.log(this.$t("progress")+":",e,...t),this.progressText=e},async createNewChannel(){const e=await s["a"].createChannel(this.channelTitle.trim(),this.channelDescription.trim(),this.channelImage.trim());return console.log("Channel created",e),e},async submit(){let e=!1,t=null;const a=async a=>(clearTimeout(t),t=setTimeout((()=>{e=!0,this.$q.dialog({message:this.$t("quick_start_timeout",[a]),ok:this.$t("ok")})}),11e3),new Promise((e=>setTimeout(e,1e4))));let n=this.selectedChannel.id;if(this.createChannel){this.showProgress(this.$t("creating_new_channel")),await Ea(1e3);const o=await Promise.race([this.createNewChannel(),a(this.$t("create_new_channel"))]);if(clearTimeout(t),console.log(o),e||!o)return this.showProgress("");this.showProgress(this.$t("created_new_channel"),o),await Ea(1e3),n=o.id}this.showProgress(this.$t("creating_new_post")),await Ea(1e3);const o=await Promise.race([s["a"].createPost({title:this.postTitle.trim(),description:this.postDescription.trim(),image:this.postImage.trim(),rate:this.rate.value,abUrl:this.abUrl.trim()},n),a(this.$t("create_new_post"))]);if(e||!o)return this.showProgress("");clearTimeout(t),this.showProgress(this.$t("created_new_post"),o),await Ea(2e3),this.showProgress(""),await Ea(500),this.$emit("input",!1),this.$q.dialog({message:this.$t("success"),ok:this.$t("ok")})},async askForConfirm(e,t){return new Promise((a=>{this.$q.dialog({title:e,message:t,ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>a(!0))).onCancel((()=>a(!1)))}))},calcFileSize(e){return e.reduce(((e,t)=>e+t.size),0)},async onFileChange(e){var t,n;const o=null===e||void 0===e||null===(t=e.target)||void 0===t||null===(n=t.files)||void 0===n?void 0:n[0];if(o){if(console.log("file selected",o),e.target.value=null,o.size>Oa){const e=await this.askForConfirm(this.$t("file_too_large"),this.$t("file_too_large_msg",{size:Object(M["a"])(o.size)}));if(!e)return}if(Object(X["isElectron"])())this.createTask(o.path);else{const e=a("c620").wtClient;if(e.torrents.length){const t=await this.askForConfirm(this.$t("remove_old_task"),this.$t("remove_old_task_desc"));if(!t)return;e.torrents[0].destroy(),e.torrents.splice(0)}this.createTask(o)}}},async onFolderChange(e){var t,a,n;console.log("onFolderChange",e),(null===e||void 0===e||null===(t=e.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a.length)>100&&(this.showProgress(this.$t("resolving_folder_files")),await Ea(100));const o=[...null===e||void 0===e||null===(n=e.target)||void 0===n?void 0:n.files];if(!o)return;console.log("folder selected",o),e.target.value=null;const i=this.calcFileSize(o),r=Ia(o.map((e=>e.path)));if(this.showProgress(""),await Ea(50),i>Oa){const e=await this.askForConfirm(this.$t("folder_too_large"),this.$t("folder_too_large_msg",{size:Object(M["a"])(i)}));if(!e)return}console.log("TOTAL:",i),console.log("Create task with folder",r),this.createTask(r)},async createTask(e){const t=Da();this.showProgress(this.$t("creating_new_task")),Object(X["isElectron"])()?Object(qa["g"])(e,t):Z["a"].emit("wt-add",e,{token:t});const a=()=>{const e=setInterval((()=>{const a=za["a"].taskList.uploading.find((e=>e.token===t)),n=()=>{this.showProgress(""),this.selectTask(this.getTaskOption(a))};if(a.ready&&a.alphabizURI)return clearInterval(e),void n();if(!a.verifyStatus)return this.showProgress(this.$t("loading")+"... (0%)");const o=Object(M["g"])(a.verifyStatus.current/a.verifyStatus.total);this.showProgress(this.$t("loading")+`... (${o})`),a.verifyStatus.current>=a.verifyStatus.total&&a.alphabizURI&&(clearInterval(e),setTimeout(n,1e3))}),1e3)},n=Date.now(),o=setInterval((()=>{const e=za["a"].taskList.uploading.find((e=>e.token===t));if(e)clearInterval(o),a();else if(Date.now()-n>3e3)return clearInterval(o),this.showProgress(""),this.askForConfirm(this.$t("cannot_create_task"),this.$t("cannot_create_task_msg"))}),500)},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});const a=e.split("&").find((e=>e.startsWith("dn="))),n=a?decodeURIComponent(a.substring(3)):this.postTitle;if(!n)return this.$q.dialog({title:this.$t("cannot_get_task_name"),ok:this.$t("ok")});this.selectTask({value:t,label:n,title:n})}},watch:{show(e){e&&this.$nextTick((()=>{this.clear(),this.preset&&this.selectTask(this.getTaskOption(this.preset))}))}}},Na=ja,La=(a("50de"),a("2b77")),Ua=a("79e0"),Ra=Object(v["a"])(Na,$a,Ta,!1,null,"7e12c2f2",null),Ma=Ra.exports;S()(Ra,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QBtn:A["a"],QSelect:ue["a"],QInput:E["a"],QRadio:La["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QCardActions:D["a"]}),S()(Ra,"directives",{ClosePopup:K["a"]});var Fa={name:"EditMain",components:{ChannelCard:pt,ChannelEdit:na,PostEdit:da,PostList:xa,BackToTop:nt,QuickStart:Ma},mixins:[vt],data(){return{current:null,showEdit:!1,edittingChannel:null,mode:"edit",currentId:"",listChannelId:"",edittingPost:null,edittingPostId:"",edittingPostChannelId:"",showPostList:!1,showPostEdit:!1,showBackToTop:!1,showQuickStart:!1,postMode:"edit",lib:s["a"]}},computed:{modeTitle(){return"add"===this.mode?this.$t("add_channel"):this.$t("channel_setting")},postModeTitle(){return"add"===this.postMode?this.$t("add_post"):this.$t("edit_post")},ownedChannels(){return this.lib.ownedChannels.filter((e=>s["a"].channelList.some((t=>t.id===e.id))))},filteredChannels(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.ownedChannels.filter(n)},ownedChannelInstances(){return this.lib.ownedChannelInstances},editTitle(){return"edit"===this.mode?this.$t("edit_channel"):this.$t("add_channel")},editPostTitle(){return"edit"===this.postMode?this.$t("edit_post"):this.$t("add_post")},listChannel(){const e=s["a"].ownedChannels.find((e=>e.id===this.listChannelId));return e||{}}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},edit(e){const t=this.ownedChannels.find((t=>t.id===e));t&&(this.edittingChannel=t,this.currentId=e,this.mode="edit",this.showEdit=!0)},add(){this.edittingChannel={title:"",description:"",image:""},this.mode="add",this.showEdit=!0},validateChannelTitle(e){return e.length>0&&e.length<100||this.$t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||this.$t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||this.$t("validate_channel_image_url"))},validateChannel(e){return[this.validateChannelTitle(e.title),this.validateChannelDesc(e.description),this.validateChannelImage(e.image)]},editChannel(e){console.log(e,this.currentId);const t=this.validateChannel(e);t.every((e=>!0===e))?(s["a"].editChannel(this.currentId,e).catch((e=>{console.error(e),this.$q.notify(this.$t("Network Error"))})),this.showEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addChannel(e){console.log(e);const t=this.validateChannel(e);if(t.every((e=>!0===e))){const t=this.lib.createChannel(e.title,e.description,e.image,e.hidden);console.log(t),this.showEdit=!1,t.then(console.log)}else this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submit(e){return"edit"===this.mode?this.editChannel(e):this.addChannel(e)},showPostEditor(e,t){console.log("show",e,t),this.postMode="edit",this.edittingPostId=e.id,this.edittingPostChannelId=t.id,this.edittingPost={...e},this.showPostEdit=!0},showPostAdd(){this.postMode="add",this.edittingPost={title:"",description:"",image:"",abUrl:""},this.showPostEdit=!0},validatePostTitle(e){return e.length>0&&e.length<100||this.$t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||this.$t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||this.$t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return this.$t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?this.$t("validate_post_url"):e.length<2048||this.$t("validate_post_url_length")},validatePost(e){return e.rate?[this.validatePostTitle(e.title),this.validatePostDesc(e.description),this.validateChannelImage(e.image),this.validatePostUrl(e.abUrl)]:[this.$t("select_a_rate")]},editPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("edit",e,this.edittingPostChannelId,this.edittingPostId),s["a"].editPost(this.edittingPostChannelId,this.edittingPostId,e),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("new post to add",e),s["a"].createPost(e,this.edittingPostChannelId),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submitPost(e){return"edit"===this.postMode?this.editPost(e):this.addPost(e)},removePost(e,t){console.log("remove post",e,t),this.$q.dialog({title:this.$t("remove_post"),message:this.$t("remove_post_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removePost(e,t)}))},removeChannel(e){console.log("remove channel by id:",e),this.$q.dialog({title:this.$t("remove_channel"),message:this.$t("remove_channel_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removeChannel(e)}))},showChannelDetail(e){this.listChannelId=e,this.edittingPostChannelId=e,this.showPostList=!0},showPreview(e){const t=s["a"].channelList.find((t=>t.id===e));if(!t)return;const a=["id","title","soul"].map((e=>{const a=t[e];return a?encodeURIComponent(e)+"="+encodeURIComponent(a):""})).filter((e=>e)).join("&"),n=`/library/channel?${a}&fromEdit=1&preview=1`;this.$root.$emit("navigate-to",n),this.$router.push(n)},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},mounted(){this.setSearch()},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/edit")},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Ba=Fa,Wa=(a("61dc"),Object(v["a"])(Ba,Gt,Kt,!1,null,"755ddde0",null)),Ha=Wa.exports;S()(Wa,"components",{QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QColor:la["a"]}),S()(Wa,"directives",{Intersection:Ge["a"]});var Va=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"channel-page"},[a("q-virtual-scroll",{ref:"vscroll",staticClass:"posts",staticStyle:{height:"calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))",padding:"0"},attrs:{separator:"",items:e.filteredPosts,"virtual-scroll-slice-size":10,"virtual-scroll-item-size":385,"virtual-scroll-sticky-size-end":16,"virtual-scroll-sticky-size-start":560},on:{"virtual-scroll":e.onScroll},scopedSlots:e._u([{key:"before",fn:function(){return[e.isPreview?a("q-card",{staticClass:"channel-preview-hint",attrs:{id:"channel-preview-hint"}},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("preview_mode")))]),a("div",{staticClass:"text-subtitle2"},[e._v(e._s(e.$t("preview_mode_desc")))])])],1):e._e(),a("div",{staticClass:"full-width flex justify-center",class:e.screen$xs?["q-pt-sm"]:["q-pt-md"]},[e.channel&&e.channel.id?a("ChannelHeader",{staticClass:"col-grow",class:[e.screen$xs?"q-ml-sm q-mr-xs":"q-mx-md"],attrs:{channel:e.channel},on:{scrollTop:e.scrollTop,intersect:e.intersect}}):e._e()],1)]},proxy:!0},{key:"default",fn:function(t){var n=t.item,o=t.index;return[a("PostCard",{key:o,attrs:{hideChannel:"",post:n},on:{preview:e.preview}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"flex justify-center items-center",class:e.filteredPosts.length?["q-py-xl"]:["full-height"],style:{marginTop:e.filteredPosts.length?"-16px":"0"}},[e.filteredPosts.length?[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])]:[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])]],2)]},proxy:!0}])}),a("BackToTop",{attrs:{show:e.scrollIndex>0&&!e.isIntersecting},on:{click:e.scrollTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPost}})],1)},Qa=[],Ga=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-header relative-position overflow-hidden",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.channel.image,width:"100%"},on:{error:e.onImageError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-pr-none q-mb-md flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black",staticStyle:{transform:"translateY(-50%)"},attrs:{size:"120px"}},[e.isLoadChannelImage?a("img",{attrs:{src:e.channel.image},on:{error:e.onChannelImageError,load:e.onChannelImageLoaded}}):e._e(),e.isLoadChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"65px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"},[a("q-badge",{staticClass:"block q-py-xs cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:function(t){e.showFollowers=!0}}},[a("div",{staticClass:"header-channel-info"},[a("span",{staticClass:"text-weight-bolder"},[e._v(e._s(e.followerCount))]),e._v(" "),a("span",[e._v(e._s(e.$t("followers")))])])]),a("q-space"),a("FollowButton",{attrs:{id:e.channel.id}})],1)],1),a("q-card-section",{staticClass:"q-pt-none column items-stretch",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis col-shrink",attrs:{title:e.channel.title}},[e._v(e._s(e.channel.title))]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.channel.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("channel")+" ID: "))]),a("span",[e._v("%"+e._s(e.channel.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownChannel}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"creator-title cursor-pointer ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"},on:{click:e.gotoCreator}},[e._v("\n "+e._s(e.$t("creator"))+": "),a("span",[e._v(e._s(e.creator.name))])]),a("q-space"),e.creator.id?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.creator.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("creator")+" ID: "))]),a("span",[e._v("@"+e._s(e.creator.id))])])],1):e._e(),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownCreator}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_user")))])],1):e._e()],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"header-description"},[e._v("\n "+e._s(e.channel.description)+"\n ")]),a("div",{staticClass:"header-badges q-mt-sm non-selectable",staticStyle:{height:"min-content"}},[a("div",{staticClass:"overflow-hidden",staticStyle:{margin:"-4px"}},[e.channel.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general",label:e.$t("private_channel")}}):e._e(),e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("blocked")}}):e._e(),e.isBlockedCreator?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("creator_blocked")}}):e._e()],1)])]),a("div",{staticClass:"absolute-top-right q-ma-sm flex"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.$emit("intersect",t)},expression:"e => $emit('intersect', e)"}],attrs:{unelevated:"",round:"",icon:"share","text-color":"white"},on:{click:e.copyShareLink}},[a("q-tooltip",[e._v(e._s(e.$t("share")))])],1)],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showFollowers,callback:function(t){e.showFollowers=t},expression:"showFollowers"}},[a("q-card",{staticClass:"column overflow-hidden no-wrap",style:{minWidth:e.screen$xs?void 0:"560px",maxHeight:e.screen$xs?void 0:"calc(100vh - 120px)"}},[a("q-card-section",{staticClass:"row items-center q-py-sm"},[a("div",{staticClass:"text-h6 follower-title"},[e._v(e._s(e.$t("follower"))+" - "+e._s(e.channel.title))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-separator"),a("q-card-section",{staticClass:"row items-center q-pa-none",staticStyle:{"min-width":"400px","flex-grow":"1","flex-shrink":"1","overflow-y":"auto"}},[a("q-markup-table",{staticStyle:{width:"100%"},attrs:{dense:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("user")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("follow_time")))])])]),a("tbody",e._l(e.followers,(function(t){return a("tr",{key:t.id},[a("td",{staticClass:"text-left"},[e._v(e._s(t.user))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))])])})),0)])],1)],1)],1)],1)},Ka=[],Ya=(a("7a76"),{components:{FollowButton:Oe["a"]},name:"ChannelHeader",props:{channel:{type:Object,required:!0}},data(){return{creator:{name:this.$t("loading"),id:"",avatar:"",description:""},followBtnHovered:!1,pending:!1,showFollowers:!1,offFollower:null,isLoadChannelImage:!0,followers:[],lib:s["a"]}},computed:{currentCreator(){return s["a"].currentCreator},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&s["a"].userData.blockChannels.includes(this.channel.id)},isBlockedCreator(){return!(!s["a"].userData||!s["a"].userData.blockUsers)&&s["a"].userData.blockUsers.includes(this.channel.creator)},followable(){return!s["a"].followingChannels.find((e=>e.id===this.channel.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHovered?this.$t("unfollow"):this.$t("following")},followerCount(){let e=this.followers.length;return e<1e3?e.toString():(e=Math.floor(e/1e3),e<1e3?e.toString()+"K+":(e=Math.floor(e/1e3),e<1e3?e.toString()+"M+":(e=Math.floor(e/1e3),e.toString()+"B+")))}},methods:{loadCreator(){this.channel.creator.id!==this.creator.id&&(this.creator={name:this.$t("loading"),id:"",avatar:"",description:""}),s["a"].getUserProfile(this.channel.creator).then((e=>{this.creator=e}))},loadFollowers(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on(((e,t,a,n)=>{this.offFollower=()=>n.off();const o=Object.values(e);for(let i=0;ie.id===i)),r={id:i,user:a,timestamp:n,time:new Date(n).toLocaleString()};-1!==o?this.followers.splice(o,1,r):this.followers.push(r)}}))},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},async copyShareLink(){const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`,t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("share_url_copied"))}))},async follow(){if(this.pending)return;const e=this.channel.id;if(!e)return;if(!s["a"].allChannelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:!0});const t=this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t&&s["a"].followChannel(e))}),2e3),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},gotoCreator(){if(console.log("goto creator",this.currentCreator),!this.currentCreator||!this.currentCreator.name)return this.$q.dialog({title:this.$t("loading_creator"),message:this.$t("wait_for_creator_loaded"),ok:this.$t("ok")});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(this.currentCreator.name)}`;this.$router.push(e).then((t=>{t instanceof Error||this.$root.$emit("navigate-to",e)}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{console.log(a),["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(){if(!this.channel.id)return this.$q.notify("Cannot get channel id");this.takedown("channel",this.channel.id)},onImageError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onChannelImageError(){this.isLoadChannelImage=!1},onChannelImageLoaded(e){e.target.src===this.channel.image&&(this.isLoadChannelImage=!0)}},mounted(){this.loadCreator(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")}))},activated(){this.loadCreator(),"function"===typeof this.offFollower&&(this.offFollower(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")})))},beforeDestroy(){"function"===typeof this.offFollower&&this.offFollower()},watch:{followable(){this.pending=!1},currentCreator(){this.loadCreator()},channel(e,t){e&&e.image!==t.image&&(this.isLoadChannelImage=!0)}}}),Ja=Ya,Za=(a("ec6d"),Object(v["a"])(Ja,Ga,Ka,!1,null,"1d2daf92",null)),Xa=Za.exports;S()(Za,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QBadge:_e["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QColor:la["a"]}),S()(Za,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var en={name:"LibraryChannel",components:{ChannelHeader:Xa,PostCard:Ye,Loading:x,BackToTop:nt},data(){return{channel:{id:""},posts:[],showPreview:!1,loadingPost:!1,previewImage:"",channelFollowers:[],currentId:"",scrollIndex:0,isIntersecting:!1,isChecking:!1,isPreview:!1,showLoading:!1,lib:s["a"]}},computed:{isDev(){return d["a"].getters.isDevMode},isFollowed(){return s["a"].followingChannels.some((e=>e.id===this.channel.id))},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&(s["a"].userData.blockChannels.includes(this.channel.id)||s["a"].userData.blockUsers.includes(this.channel.creator))},channelPosts(){const e=Object.assign({},this.channel);return this.posts.map((t=>({...t,rate:t.rate||"G",channel:e}))).sort(((e,t)=>t.timestamp-e.timestamp))},filteredPosts(){const e=s["a"].search.text.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.channelPosts.filter((e=>!!this.isPreview||!s["a"].isBannedPost(e)&&s["a"].isValidRate(e.rate))).filter(n)}},methods:{intersect(e){this.isIntersecting=e.isIntersecting},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onScroll(e){this.scrollIndex=e.index},scrollTop(){this.$refs.vscroll.scrollTo(0,"start")},loadChannelPosts(){console.log(this.$route.query);const e=this.lib.allChannelList.find((e=>e.id===this.$route.query.id||e.soul===this.$route.query.soul));if(console.log("load channel",e),e){var t,a;if(this.channel=e,this.loadingPost=!0,this.channel.creator||this.channel.soul)s["a"].setCreator(this.channel.creator||(null===(t=this.channel.soul)||void 0===t||null===(a=t.split("/"))||void 0===a?void 0:a[0]));this.posts=[],s["a"].getChannelPosts(e.id,!0).then((e=>{console.log("Channel posts",e),this.posts=e.sort(((e,t)=>{const a=t.timestamp-e.timestamp;return 0===a?e.title.match(/^\d+/)&&t.title.match(/^\d+/)?parseInt(t.title)-parseInt(e.title):t.title.localeCompare(e.title):a}));const t=Date.now(),a=setInterval((()=>{(this.posts.length||Date.now()-t>5e3)&&(this.loadingPost=!1,clearInterval(a))}),1e3)}))}else{if(this.posts=[],console.log(this.$route.path),"library/channel"!==this.$route.path)return;this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),persistent:!0,ok:this.$t("lib_index")}).onOk((()=>{this.currentId="",this.$root.$emit("navigate-to"),this.$router.push("/library")}))}},loadChannelFollowers(){const e=[];p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on((t=>{if(!t)return;const a=Object.values(t);for(let n=0;ne.id===n));-1!==r?e.splice(r,1,{id:n,user:i,timestamp:o}):e.push({id:n,user:i,timestamp:o})}})),this.channelFollowers=e.sort(((e,t)=>t.timestamp-e.timestamp))},async copyShare(){const e=`ab-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`;if(console.log("share",e),Object(X["isElectron"])()){const t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))}},onFollow(){const e=this.channel.id;console.log("follow",e),s["a"].followingChannels.map((e=>e.id)).includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},preview(e){this.previewImage=e,this.showPreview=!0},gotoCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.name)return this.$q.dialog({title:"Loading creator",message:"Please wait for creator info loaded",ok:!0});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(s["a"].currentCreator.name)}`;this.$root.$emit("navigate-to",e),this.$router.push(e)},checkAndReload(){console.log("check and reload"),this.isChecking||(this.isChecking=!0,setTimeout((()=>{this.isChecking=!1}),1e3),this.currentId===this.$route.query.id&&this.channelPosts.length||(console.log("load channel posts"),p["v"].get(`${p["e"]}/channels:follower/${this.currentId}`).off(),this.channel={},this.posts=[],this.currentId=this.$route.query.id,this.loadChannelPosts(),this.loadChannelFollowers()),this.$route.query.preview?this.isPreview=!0:this.isPreview=!1)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"}])}},mounted(){this.setSearch(),this.checkAndReload()},watch:{"$route.query.id"(e){e&&(console.log("query id check"),this.checkAndReload())},searchText(e){e&&this.active&&this.scrollTop()}},beforeDestroy(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).off()}},tn=en,an=(a("b16a"),Object(v["a"])(tn,Va,Qa,!1,null,"fb451ef2",null)),nn=an.exports;S()(an,"components",{QVirtualScroll:Qe["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QDialog:I["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(an,"directives",{ClosePopup:K["a"]});var on=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.lib.currentCreator?a("div",{ref:"scrollArea",staticClass:"library-creator q-pa-md q-pb-lg"},[a("q-card",{staticClass:"creator-info relative-position overflow-hidden q-mb-sm",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.48)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.profile.avatar,width:"100%"},on:{error:e.onAvatarError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-mb-md q-pr-none flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black creator-avatar",attrs:{size:"120px"}},[e.isLoadCreatorAvatar?a("img",{attrs:{src:e.profile.avatar},on:{error:e.onCreatorAvatarError,load:e.onCreatorAvatarLoaded}}):e._e(),e.isLoadCreatorAvatar?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"account_circle",size:"90px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"})],1),a("q-card-section",{staticClass:"q-pt-none column items-start overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis",staticStyle:{"max-width":"100%"},attrs:{title:e.profile.name}},[e._v("\n "+e._s(e.profile.name)+"\n ")]),e.profile.id?a("div",{staticClass:"flex items-center no-wrap overflow-hidden",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"creator-id ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"}},[a("span",[e._v("@"+e._s(e.profile.id))])]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyCreatorId}},[a("q-tooltip",[a("span",[e._v(e._s("ID: "))]),a("span",[e._v("@"+e._s(e.profile.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"block",size:"xs",dense:""},on:{click:e.takedownCreator}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("takedown_user")))])])],1):e._e()],1):e._e()]),e.profile.description?a("q-card-section",{staticClass:"q-pt-none creator-section overflow-hidden"},[a("div",{staticClass:"creator-description q-mb-sm scroll-y"},[e._v(e._s(e.profile.description))])]):e._e()],1),a("div",{staticClass:"creator-flex-layout flex justify-center"},[e.filteredChannels.length?[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followable:!e.followedIds.includes(t.id)},on:{takedown:e.takedownChannel,detail:e.showChannelDetail,follow:e.onFollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")]:a("div",{staticClass:"empty-placeholder full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),a("span",{staticClass:"empty-hint q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}})],1):e._e()},rn=[],sn={name:"LibraryCreator",components:{ChannelCard:pt,BackToTop:nt},mixins:[vt],data(){return{profile:{name:this.$t("loading"),id:"",avatar:"",description:""},showBackToTop:!1,isLoadCreatorAvatar:!0,lib:s["a"]}},computed:{filteredChannels(){const e=this.searchText.toLowerCase(),t=this.lib.search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=n=>{var o;const i=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&i===e||!(n.hidden&&!s["a"].followingChannels.find((e=>e.id===n.id)))&&i.includes(e)};return this.lib.currentCreator.channels.filter((e=>s["a"].channelList.some((t=>t.id===e.id)))).filter(n)},followedIds(){return s["a"].followingChannels.map((e=>e.id))}},watch:{profile(e,t){if(e&&e.avatar!==t.avatar&&(this.isLoadCreatorAvatar=!0),e&&e.name){const t=`/library/creator?fromChannel=1&name=${encodeURIComponent(e.name)}`;this.$root.$emit("update-path",t)}},searchText(e){e&&this.active&&this.scrollTop()}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},loadProfile(){this.profile={name:this.$t("loading"),id:"",avatar:"",description:""},s["a"].getUserProfile(s["a"].currentCreator.id).then((e=>{this.profile=e}))},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onCreatorAvatarError(){this.isLoadCreatorAvatar=!1},onCreatorAvatarLoaded(e){e.target.src===this.profile.avatar&&(this.isLoadCreatorAvatar=!0)},showChannelDetail(e){const t=Object(_["c"])(e);console.log(t),this.$root.$emit("navigate-to",t),this.$router.push(t)},copyCreatorId(){Object(lt["b"])(this.profile.id).then((()=>{this.$q.notify(this.$t("copied"))}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(e){if(!e||20!==e.length)return this.$q.notify("Cannot parse channel id");this.takedown("channel",e)},onFollow(e){console.log("follow",e),this.followedIds.includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},setSearch(){this.lib.setSearchOption([{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&(e.setSearch(),s["a"].setCreator(s["a"].currentCreator.id))}))},mounted(){this.setSearch()},activated(){this.loadProfile()}},ln=sn,cn=(a("878c"),Object(v["a"])(ln,on,rn,!1,null,"5975beaa",null)),dn=cn.exports;S()(cn,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QColor:la["a"]}),S()(cn,"directives",{Intersection:Ge["a"]});var un=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"take-down"},[a("div",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$t("takedown_management"))+"\n "),a("q-icon",{attrs:{name:"help"}},[a("q-tooltip",e._l(e.$t("about_takedown_mode").split("\n"),(function(t){return a("div",{key:t,staticStyle:{"font-size":"14px"}},[e._v(e._s(t))])})),0)],1)],1),a("div",{staticClass:"take-down-lists"},e._l(e.takedownList,(function(t){var n=t.type,o=t.label,i=t.list,r=t.model;return a("q-table",{key:n,staticStyle:{"max-height":"400px"},attrs:{flat:"",dense:"",title:o,data:i,columns:e.columns,"row-key":"name","virtual-scroll":"","rows-per-page-options":[0]},scopedSlots:e._u([{key:"top-row",fn:function(){return[a("q-tr",{staticClass:"takedown-row add"},[a("q-td",{staticClass:"takedown-id"},[a("q-input",{attrs:{placeholder:e.$t(n)+" ID",dense:""},model:{value:r.id,callback:function(t){e.$set(r,"id",t)},expression:"model.id"}})],1),a("q-td",{staticClass:"takedown-reason"},[a("q-select",{attrs:{options:e.reasonOptions,label:e.$t("takedown_reason"),dense:""},model:{value:r.reason,callback:function(t){e.$set(r,"reason",t)},expression:"model.reason"}})],1),a("q-td",[e._v(e._s(e.$t(e.mode)))]),a("q-td",{staticClass:"takedown-admin"},[e._v("("+e._s(e.$t("you"))+")")]),a("q-td",{staticClass:"text-center"},[a("q-btn",{attrs:{flat:"",dense:"",color:"primary",icon:"add"},on:{click:function(t){return e.addTakedown(n)}}})],1)],1)]},proxy:!0},{key:"body",fn:function(t){var o=t.row;return[a("q-tr",{key:o.id,staticClass:"takedown-row"},[a("q-td",{key:"id",staticClass:"takedown-id",attrs:{title:o.id}},[a("q-btn",{staticClass:"q-mr-sm",attrs:{flat:"",dense:"",color:"general",icon:"content_copy",size:"xs"},on:{click:function(t){return e.copy(o.id)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy"))+" ID")])],1),a("span",[e._v(e._s(o.id))])],1),a("q-td",{key:"reason",staticClass:"takedown-reason"},[e._v(e._s(o.reasonLabel))]),a("q-td",{key:"by",staticClass:"takedown-by"},[e._v(e._s(e.$t(o.by)))]),a("q-td",{key:"admins",staticClass:"takedown-admins"},[o.admins?a("div",[a("span",{staticClass:"voted-count",class:{"text-primary":o.selfVoted}},[a("span",[e._v(e._s(o.admins.length)+" voted")]),o.selfVoted?a("q-tooltip",[e._v("You have voted")]):e._e()],1),"committee"===o.by?a("span",{staticClass:"total-count",class:{"text-primary":o.admins.length>=o.minCount}},[e._v("\n / "+e._s(o.minCount)+" needs to takedown\n ")]):e._e()]):a("div",[e._v("-")])]),a("q-td",{key:"operations",staticClass:"takedown-operations text-center"},[a("q-btn",{attrs:{flat:"",dense:"",size:"xs",color:o.selfVoted?"negative":"positive",icon:o.selfVoted?"close":"add"},on:{click:function(t){return e.changeVote(n,o)}}}),"preset"===o.by?a("q-tooltip",[e._v(e._s(e.$t("cannot_edit_preset")))]):o.selfVoted?a("q-tooltip",[e._v(e._s(e.$t("remove_vote")))]):a("q-tooltip",[e._v(e._s(e.$t("add_vote")))])],1)],1)]}}],null,!0)})})),1)])},_n=[],pn=a("41c7"),mn=a.n(pn);const hn=["Serious Violation","Copyright Disputes","Adults Only"];var gn={name:"TakeDown",data(){return{mode:mn.a.mode,columns:[{name:"id",label:"ID",field:"id",align:"left",sortable:!0},{name:"reason",label:this.$t("takedown_reason"),field:"reason",align:"left",sortable:!0},{name:"by",label:this.$t("takedown_mode"),field:"by",align:"left",sortable:!0},{name:"admins",label:this.$t("admins"),field:"admins",align:"left",sortable:!1},{name:"operations",label:this.$t("operations"),field:"operations",align:"center",sortable:!1}],reasonOptions:[{label:this.$t("serious_violation"),value:"Serious Violation"},{label:this.$t("copyright_disputes"),value:"Copyright Disputes"},{label:this.$t("adults_only"),value:"Adults Only"}],user:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},channel:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},post:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},lib:s["a"]}},computed:{uid(){return s["a"].user&&s["a"].user.is?s["a"].user.is.pub:""},takedownUsers(){const e=s["a"].takedownList.users,t=s["a"].takedownExtraList.users,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownChannels(){const e=s["a"].takedownList.channels,t=s["a"].takedownExtraList.channels,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownPosts(){const e=s["a"].takedownList.posts,t=s["a"].takedownExtraList.posts,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownList(){return[{type:"user",label:this.$t("users"),model:this.user,list:this.takedownUsers},{type:"channel",label:this.$t("channels"),model:this.channel,list:this.takedownChannels},{type:"post",label:this.$t("posts"),model:this.post,list:this.takedownPosts}]}},methods:{takedownUser(){return 87!==this.user.id.length||this.user.id.split(".").some((e=>43!==e.length))?this.$q.notify(this.$t("takedown_invalid_user_id")):hn.includes(this.user.reason.value)?(console.log("takedown user",this.user.id,this.user.reason.value),void s["a"].takedown("user",this.user.id,this.user.reason.value).then(console.log)):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownChannel(){const e=this.channel.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_channel_id")):hn.includes(this.channel.reason.value)?void s["a"].takedown("channel",e,this.channel.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownPost(){const e=this.post.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_post_id")):hn.includes(this.post.reason.value)?void s["a"].takedown("post",e,this.post.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},untakedownUser(e){s["a"].takedown("user",e,"None")},addTakedown(e){return console.log("add",e),"user"===e?this.takedownUser():"channel"===e?this.takedownChannel():"post"===e?this.takedownPost():void 0},removeTakedown(e,t){return console.log("untakedown",e,t),"user"===e?this.untakedownUser(t):"channel"===e?s["a"].takedown("channel",t,"None"):"post"===e?s["a"].takedown("post",t,"None"):void 0},changeVote(e,t){return"preset"===t.by?console.log(t):t.selfVoted?this.removeTakedown(e,t.id):void s["a"].takedown(e,t.id,t.reason).then(console.log)},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied"))}))}},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/takedown"),this.lib.setSearchOption([])}},fn=gn,bn=(a("a44b"),a("85c4")),yn=a("236f"),vn=Object(v["a"])(fn,un,_n,!1,null,"888fffa4",null),wn=vn.exports;S()(vn,"components",{QIcon:G["a"],QTooltip:V["a"],QTable:Tt["a"],QTr:bn["a"],QTd:yn["a"],QInput:E["a"],QSelect:ue["a"],QBtn:A["a"],QColor:la["a"]});var kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-index"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n},on:{preview:function(t){return e.showPreview=t},follow:e.unfollow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.column,o=t.mod;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.fetchNext(t,Math.max(Math.ceil(10/n),2)*n+(o?n-o:0))},expression:"(entry) => fetchNext(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},["loaded"!==e.loaderState||e.searchFilteredPosts.length?"loaded"===e.loaderState?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):e.searchFilteredPosts.length?a("div",{staticClass:"column items-center"},[a("div",{staticClass:"flex"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]):[a("div",[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1)],1)},Sn=[],Cn=a("2e22"),xn={name:"LibraryIndex",components:{PostCard:Ye,SearchChannel:bt,BackToTop:nt},mixins:[Cn["c"],Cn["a"],Cn["b"],vt,wt("index"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,scrollIndex:0,lib:s["a"]}},computed:{followingChannels(){var e,t;const a=(null===(e=s["a"].userData)||void 0===e?void 0:e.blockChannels)||[],n=(null===(t=s["a"].userData)||void 0===t?void 0:t.blockUsers)||[];return s["a"].followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(!a.includes(e.id)&&!n.includes(e.creator))))},filteredPosts(){return Object.values(this.loadedPosts).filter((e=>e.title&&e.timestamp)).filter((e=>!s["a"].isBannedPost(e))).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){console.log("search index");const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"channelID":return e.channel.id;case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.filteredPosts.filter(n)}},methods:{async fetchNext({isIntersecting:e},t=10){e&&await this.loader$loadPostsNext({count:t})},itemsFn(e=0,t=5){return this.searchFilteredPosts.slice(e,e+t)},async unfollow(e){const t=this.$alphabiz.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}),a=await t.promise("ok");if(!a)return;const n=await s["a"].unfollowChannel(e);console.log("unfollowed",e,n)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)}},async activated(){this.active=!0;const e=()=>{this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])};this.$root.$emit("navigate-to"),e()},deactivated(){this.active=!1},watch:{"searchFilteredPosts.length"(e,t){t||!e||this.active||this.$router.push("/library")},searchText(e){e&&this.active&&this.handleBackToTop()}}},$n=xn,Tn=(a("1b99"),Object(v["a"])($n,kn,Sn,!1,null,null,null)),zn=Tn.exports;S()(Tn,"components",{QIcon:G["a"],QSpinner:w["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Tn,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Pn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar"},[e._l([{tabName:"downloading",label:"start_all",color:"primary",disable:e.isAllStarted,handleClick:e.downloadAll},{tabName:"downloading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.requestPauseAllDownloading},{tabName:"downloading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllDownloading},{tabName:"uploading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.pauseAllUploading},{tabName:"uploading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllUploading},{tabName:"downloaded",label:"clear_history",color:"general",disable:0===e.currentList.length,handleClick:e.clearAll}],(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,style:"negative"===t.color?{marginLeft:"16px"}:{},attrs:{color:t.color,icon:t.icon,label:e.$t(t.label),value:t.disable,dense:e.screen$xs},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),a("q-space"),a("div",{staticClass:"right-buttons"},[a("q-space"),a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!(e.showSearchText||e.searchText.length),expression:"!(showSearchText || searchText.length)"}],attrs:{"button-type":"icon",icon:"search"},on:{click:function(t){return e.toggleSearchText(!0)}}}),a("q-input",{directives:[{name:"show",rawName:"v-show",value:e.showSearchText||e.searchText.length,expression:"showSearchText || searchText.length"}],ref:"searchInput",attrs:{outlined:"",dense:"",type:"text",debounce:"300"},on:{blur:function(t){return e.toggleSearchText(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer text-red",attrs:{name:"close"},on:{click:e.clearSearch}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}}),a("alphabiz-button",{attrs:{"button-type":"icon",icon:"list"===e.listMode?"view_list":"view_agenda"},on:{click:e.changeListMode}},[a("q-tooltip",[e._v(e._s(e.$t("toggle_list_mode")))])],1),a("SortMenu",{on:{changeSortSequence:e.changeSortSequence,changeSortOption:e.changeSortOption}})],1)],2),"downloading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("q-linear-progress",{staticStyle:{"flex-shrink":"1","max-width":"calc(100% - 110px)"},attrs:{value:e.downloadingProgress.value,rounded:"",size:"20px"}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.downloadingProgress.label))])])]),a("div",{staticClass:"download-speed"},[e._v(e._s(e.totalDownloadSpeed))])],1):e._e(),"uploading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("div",[e._v(e._s(e.totalIncomeInfo))]),a("q-space"),a("div",[e._v(e._s(e.$t("total_upload_speed"))+": "+e._s(e.totalUploadSpeed))])],1):e._e()],1),a("q-tab-panels",{staticClass:"torrent-list bg-transparent",class:{"torrent-list-large":"downloaded"!==e.currentTab},model:{value:e.displayTab,callback:function(t){e.displayTab=t},expression:"displayTab"}},e._l(e.displayList,(function(t){return a("q-tab-panel",{key:"panel_"+t.label,staticClass:"q-pa-none",attrs:{name:t.key}},[a(e.listComponent,{key:"task-list-"+t.label,tag:"component",attrs:{list:t,tab:e.currentTab,incomes:e.incomes,noDataMessage:e.noDataMessage},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showOriginTorrent:e.showOriginTorrent,showDirectory:e.showDirectory,setThrottleGroup:e.setThrottleGroup,shareFile:e.shareFile,saveTorrentFile:e.saveTorrentFile,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart}})],1)})),1),a("q-page-sticky",{staticClass:"action-container",attrs:{position:"bottom-right",offset:[16,16]}},e._l({download:{tabName:"downloading",icon:"add",handleClick:function(){return e.showMagnetDialog("download")}},upload:{tabName:"uploading",icon:"cloud_upload",handleClick:function(){return e.showMagnetDialog("upload")}},upload_all:{tabName:"downloaded",icon:"cloud_upload",handleClick:e.uploadAll}},(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,staticClass:"q-ma-xs action-button",attrs:{color:"primary",icon:t.icon,label:e.$t(n),"button-type":"fab"},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TorrentPayment",e._b({attrs:{show:e.showPayment,dp$source:e.dp$source,autoRenew:e.autoRenew},on:{change:function(t){return e.showPayment=t},createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}},"TorrentPayment",e.paymentData,!1)),a("TableListDetail",{attrs:{show:e.showTorrentDetail,torrent:e.torrentDetail},on:{close:e.hideDetail,showDirectory:e.showDirectory,showPaymentPannel:e.showPaymentPannel,play:e.play,shareFile:e.shareFile}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.alphabizTorrent,paymentSize:e.paymentSize},on:{close:e.hideAbPanel,createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.quickStartTask},on:{input:e.hideQuickStartDialog}})],1)},An=[],In=a("bc7b"),qn=a.n(In),On=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-virtual-scroll",{key:"torrent-list-"+e.list.label,ref:"listIns",class:[e.screen$xs?"q-pt-sm":"q-pt-md",e.isPortrait?"portrait":"landscape"],style:"max-height:"+e.viewHeight,attrs:{items:e.list.list,"virtual-scroll-item-size":178},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("q-item",{key:e.list.label+"-"+n.infoHash,staticClass:"fit",class:[e.screen$xs?"q-px-sm":"q-px-md"],attrs:{dense:""}},[a("card-item",{attrs:{torrent:n,highlight:n.infoHash&&n.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"],saveFile:e.emitEvent["shareFile"]}})],1)]}},{key:"after",fn:function(){return[e.list.list.length?e._e():a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1),a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0}])})},En=[],Dn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{width:"100%"}},[a("q-card",{staticClass:"torrent-item",class:[e.screen$xs?"q-mb-sm":"q-mb-md"],attrs:{flat:"",bordered:""}},[a("q-card-section",{class:{highlight:e.highlight}},[a("div",{staticClass:"row justify-between items-center"},[a("div",{staticClass:"torrent-info title q-mb-xs"},[a("p",{staticClass:"torrent-name"},[e.isReady?e._e():a("q-circular-progress",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.paused&&!e.torrent.pending,expression:"!torrent.paused && !torrent.pending"}],staticClass:"torrent-loading",attrs:{indeterminate:"",size:"24px",color:"primary"}}),a("span",[e._v(e._s(e.displayName))]),e.torrent.isAutoUpload?a("q-icon",{staticClass:"q-ml-md",attrs:{name:"drive_folder_upload"}},[a("q-tooltip",[e._v(e._s(e.$t("auto_uploading")))])],1):e._e()],1)]),a("alphabiz-button",{staticClass:"absolute-top-right q-mt-sm q-mr-md",attrs:{size:"md","button-type":"icon",icon:"more_horiz"},on:{click:e.showDetail}},[a("q-tooltip",[e._v(e._s(e.$t("more")))])],1)],1),a("div",{staticClass:"torrent-info"},[a("div",{staticClass:"operations"},[a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!(e.torrent.paused&&e.torrent.missFile),expression:"!torrent.isAutoUpload && !(torrent.paused && torrent.missFile)"}],attrs:{color:"general",value:e.locked,icon:e.actionIcon,label:e.torrentAction,disabled:e.isProcessingUpload},on:{click:e.switchStateTorrent}}),e.isReady&&e.playable?a("alphabiz-button",{attrs:{color:"general",icon:"smart_display",label:e.torrent.done||e.torrent.isSeeding?e.$t("play"):e.$t("play_while_downloading")}},[a("q-menu",{attrs:{"max-height":"200px"}},[a("q-list",{staticStyle:{"min-width":"100px"}},e._l(e.playableFiles,(function(t,n){return a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],key:n,staticClass:"playable-items",attrs:{clickable:!t.missing,disable:t.missing},on:{click:function(a){return e.play(t.path,e.torrent.infoHash)}}},[a("q-linear-progress",{directives:[{name:"show",rawName:"v-show",value:1!==t.progress||t.isSeeding,expression:"item.progress !== 1 || item.isSeeding"}],staticClass:"progress-background",attrs:{stripe:"",value:t.progress}}),a("q-item-section",[a("p",{staticClass:"q-ma-none"},[a("q-icon",{staticClass:"q-mr-xs",attrs:{name:"play_arrow"}}),e._v("\n "+e._s(t.name)+"\n "),t.missing?a("q-icon",{attrs:{name:"error",color:"primary"}}):1===t.progress?a("q-icon",{attrs:{name:"done",color:"primary"}}):e._e(),t.missing?a("q-tooltip",[e._v(e._s(e.$t("file_not_found")))]):e._e(),1!==t.progress||e.isElectron?e._e():a("q-btn",{staticClass:"save-to-local-btn",attrs:{flat:"",dense:"",color:"primary",size:"sm",icon:e.isCapacitor?"ios_share":"save"},on:{click:function(a){return a.stopPropagation(),a.preventDefault(),e.saveFile(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("save_to_local")))])],1)],1)])],1)})),1)],1)],1):a("alphabiz-button",{attrs:{color:"general",icon:"file_open",label:e.$t("open_file")},on:{click:e.openFile}}),e.isElectron||e.isCapacitor?a("alphabiz-button",{attrs:{color:"general",icon:e.isElectron?"folder":"ios_share",label:e.isElectron?e.$t("open_directory"):e.$t("share")},on:{click:e.showDirectory}}):e._e(),e.torrent.fromPost?a("alphabiz-button",{attrs:{icon:"video_library",label:e.$t("library")},on:{click:e.showPostInfo}}):e._e(),1!==e.torrent.progress&&!e.torrent.upload||e.torrent.paused?e._e():a("alphabiz-button",{attrs:{icon:"present_to_all",label:e.$t("share_to_library"),disabled:e.isProcessingUpload},on:{click:e.showQuickStart}}),e.isElectron||e.isCapacitor||!e.torrent.done?e._e():a("alphabiz-button",{attrs:{label:e.$t("save_as_zip"),icon:"folder_zip"},on:{click:e.saveZip}}),a("alphabiz-button",{attrs:{color:"negative",icon:"close",label:e.$t("delete"),disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}}),a("q-space"),e.showAbButton?a("alphabiz-button",{attrs:{color:"accent",icon:e.isPayed?"flash_auto":"flash_on"},on:{click:e.openAbPanel}},[a("q-tooltip",[e._v(e._s(e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")))])],1):e._e()],1),e.torrent.upload||e.torrent.isSeeding?e._e():a("q-linear-progress",{staticClass:"q-mt-md",attrs:{value:e.torrent.done?1:e.torrent.progress,size:"18px",rounded:""}},[a("div",{staticClass:"progress-text flex flex-center absolute-full"},[e._v(e._s(e.progress||"0%"))])]),a("p",{staticClass:"text q-mb-xs bottom-status"},[e.statusText?a("span",{staticClass:"hint status-text"},[a("small",[e._v(e._s(e.statusText))]),a("br")]):e._e(),a("span",{staticStyle:{"margin-right":"10px"}},[e._v(e._s(this.$t("status"))+": "+e._s(e.torrentStatus))]),a("span",[e.torrent.paused||e.torrent.done||e.torrent.pending||e.torrent.isSeeding?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.downloadSpeed)+"\n ")]),e.torrent.upload?e._e():a("span",{staticStyle:{"margin-right":"10px"}},[e.torrent.done?e._e():a("span",[e._v("↓ "+e._s(e.downloaded)+" /")]),e._v("\n "+e._s(e.total))])]),a("span",[e.torrent.paused||e.torrent.pending?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.uploadSpeed)+"\n ")]),a("span",{staticStyle:{"margin-right":"10px"}},[e._v("↑ "+e._s(e.uploaded))])])]),a("p",{staticClass:"text timers q-mt-xs bottom-status"},[e.torrent.timeRemaining&&e.torrent.download?a("span",{staticClass:"remaining q-mr-md"},[e._v(e._s(e.$t("remaining"))+": "+e._s(e.remaining))]):e._e(),e.createdTime?a("span",[e._v(e._s(e.$t("created_time")+": "+e.createdTime))]):e._e(),e.completedTime?a("span",[e._v(e._s(e.$t("completed_time")+": "+e.completedTime))]):e._e(),e.usedTime?a("span",[e._v(e._s(e.$t("used_time")+": "+e.usedTime))]):e._e()])],1)])],1)],1)},jn=[],Nn=a("4fd2"),Ln=a("908d"),Un={name:"CardItem",inject:["io"],props:{torrent:{type:Object,required:!0},statusText:String,highlight:Boolean},data(){return{levelOptions:[{label:" Low ",value:"low"},{label:" Middle ",value:"mid"},{label:" High ",value:"high"}],locked:!1,loading:!1,isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},torrentAction(){return this.torrent.paused?this.torrent.done||1===this.torrent.progress||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},isReady(){return this.torrent&&this.torrent.name&&this.torrent.length},downloadSpeed(){return this.byteToLargerSize(this.torrent.downloadSpeed,{fix:1})+"/s"},downloaded(){return this.byteToLargerSize(this.torrent.downloaded)},uploadSpeed(){return this.byteToLargerSize(this.torrent.uploadSpeed,{fix:1})+"/s"},uploaded(){return this.byteToLargerSize(this.torrent.uploaded)},total(){return this.byteToLargerSize(this.torrent.length)},remaining(){return!this.torrent.timeRemaining||this.torrent.paused?"-":this.msToTime(this.torrent.timeRemaining)},createdTime(){return this.torrent.createdTime?new Date(this.torrent.createdTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},completedTime(){return this.torrent.completedTime&&this.torrent.done?new Date(this.torrent.completedTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},usedTime(){return this.torrent.usedTime?this.msToTime(this.torrent.usedTime):""},torrentStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.paused?this.$t("downloaded"):this.$t("uploading")}if(this.paused)return this.$t("paused");if(this.torrent.paused)return this.torrent.done||this.torrent.isSeeding?this.$t("completed"):this.$t("paused");if(this.torrent.isSeeding)return this.$t("seeding");if(this.torrent.upload)return this.$t("uploading");if(this.torrent.pending)return this.$t("pending");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(!this.torrent.ready){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.download?this.torrent.done?this.$t("downloaded"):this.$t("downloading"):this.$t("unknown_status")},displayName(){let e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e||"string"!==typeof e){if(!(e&&e instanceof File))return this.$t("loading");e=e.name}if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win?"\\":"/";if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},progress(){return Object(M["g"])(this.torrent.progress)},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return!this.torrent.done&&!this.torrent.isSeeding&&(this.isDevMode&&this.abPeers.length)},payedConnections(){return this.abPeers.filter((e=>"high"===e.remoteGroup))},isPayed(){return this.payedConnections.length},showAbPeerHint(){return this.abPeers.length},connectedPeers(){const e={};for(const t of this.abPeers){const a=t.subId||t.id;e[a]?e[a].isAbPeer|=t.isAbPeer:(e[a]=t,e[a].addresses=[]),e[a].addresses.includes(t.address)||e[a].addresses.push(t.address)}return Object.values(e).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0))},playableFiles(){return this.torrent.files.filter((e=>Object(Nn["a"])(e.name)))},playable(){return this.playableFiles.length}},methods:{byteToLargerSize(e,t={}){return Object(M["a"])(e,{byte:!1,gb:!0,...t})},msToTime(e){const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n>60){const e=n%60,t=(n-e)/60;return t>24?"> 24h":`${t}:${("0"+e).slice(-2)}:${("0"+a).slice(-2)}`}return`${("0"+n).slice(-2)}:${("0"+a).slice(-2)}`},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},switchStateTorrent(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash)}},openAbPanel(){console.log("open"),this.$emit("showAbPanel",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},setThrottleGroup(e,t,a){this.$emit("setThrottleGroup",{infoHash:this.torrent.infoHash,id:e,subId:t,level:a})},saveTorrentFile(){this.$emit("saveTorrentFile",this.torrent.infoHash)},play(e,t){this.$emit("play",e,t)},copyMagnetURI(){let e=this.torrent.alphabizURI||this.torrent.magnetURI;e||(e="magnet:?xt=urn:btih:"+this.torrent.infoHash,this.torrent.name&&(e+="&dn="+encodeURIComponent(this.torrent.name))),Object(lt["b"])(e),this.$q.notify(this.$t("text_copied"))},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},showOriginTorrent(){this.$emit("showOriginTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showPaymentPannel(e){this.$emit("showPaymentPannel",{infoHash:this.torrent.infoHash,torrentName:this.torrent.name,peerId:e.id,address:e.address,remoteUser:e.user,remoteSubId:e.subId})},showQuickStart(){this.$emit("showQuickStart",this.torrent)},saveFile(e){if(this.isCapacitor)return this.$emit("saveFile",e.path);this.$emit("saveFile",e)},saveZip(){this.$emit("saveZip")}},watch:{torrentStatus(e,t){t!==e&&this.$emit("sortByStatus")}},mounted(){this.loading=this.torrent.loading}},Rn=Un,Mn=(a("1357"),a("64e7")),Fn=a("834d"),Bn=Object(v["a"])(Rn,Dn,jn,!1,null,"3671d32d",null),Wn=Bn.exports;S()(Bn,"components",{QCard:q["a"],QCardSection:O["a"],QCircularProgress:Mn["a"],QIcon:G["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QLinearProgress:zt["a"],QItemSection:Ve["a"],QBtn:A["a"],QSpace:W["a"],QColor:la["a"],QBtnToggle:Fn["a"]}),S()(Bn,"directives",{ClosePopup:K["a"]});var Hn={name:"CardList",props:{list:Object,noDataMessage:String},data(){const e=this;return{isElectron:Object(X["isElectron"])(),safeArea:"env(safe-area-inset-bottom) - env(safe-area-inset-top)",emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),highlightItem:{}}},computed:{viewHeight(){const e=(this.list.key.startsWith("downloaded")?150:180)+(this.isPortrait||this.isElectron?0:-30);return`calc(100vh - ${this.safeArea} - ${e}px);`}},components:{CardItem:Wn},methods:{findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.listIns){var a;if(Date.now()-e<1e3)return;clearInterval(t);const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.listIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},Vn=Hn,Qn=(a("536e"),Object(v["a"])(Vn,On,En,!1,null,"0dd405a4",null)),Gn=Qn.exports;S()(Qn,"components",{QVirtualScroll:Qe["a"],QItem:He["a"],QIcon:G["a"]});var Kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-table",{ref:"tableIns",staticClass:"list bg-page text-page",class:{xs:e.isPortrait,electron:e.isElectron},attrs:{data:e.list.list,columns:e.columns,"row-key":"name",dense:"",flat:"","virtual-scroll":"","hide-bottom":!!e.list.list.length,"rows-per-page-options":[0],"visible-columns":e.visibleColumns,"no-data-label":e.noDataMessage},nativeOn:{mousemove:function(t){return e.onDrag(t)},touchmove:function(t){return e.onDrag(t)},mouseleave:function(t){return e.onDragEnd.apply(null,arguments)},mouseup:function(t){return e.onDragEnd.apply(null,arguments)},touchend:function(t){return e.onDragEnd.apply(null,arguments)},touchcancel:function(t){return e.onDragEnd.apply(null,arguments)}},scopedSlots:e._u([{key:"header",fn:function(t){return[a("q-tr",{attrs:{props:t}},e._l(t.cols,(function(n){return a("q-th",{key:n.name,staticClass:"thead",attrs:{props:t}},[a("span",{staticClass:"text-ellipsis"},[e._v(e._s(n.label))]),"options"!==n.name?a("span",{staticClass:"thead-draggable",on:{mousedown:function(t){return e.onDragStart(n,t)},mouseup:e.onDragEnd,touchstart:function(t){return e.onDragStart(n,t)},touchmove:function(t){return e.onDrag(t)},touchend:e.onDragEnd,touchcancel:e.onDragEnd}}):e._e()])})),1)]}},{key:"body",fn:function(t){return[a("ListItem",{key:t.row.infoHash,attrs:{torrent:t.row,visibleColumns:e.visibleColumns,showCols:e.showCols,incomes:e.taskIncomes[t.row.infoHash],colWidth:e.colWidthText,highlight:t.row.infoHash&&t.row.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"]}})]}},{key:"bottom-row",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0},{key:"no-data",fn:function(){return[a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1)]},proxy:!0}])})},Yn=[],Jn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-tr",{key:e.torrent.infoHash||e.torrent.origin,staticClass:"list-item-tr",class:{highlight:e.highlight}},[a("q-td",{key:"name",staticClass:"no-select task-name",style:e.colWidth.name,on:{dblclick:e.onDoubleClick}},[a("IconWithTooltip",e._b({staticClass:"q-mr-xs name-icon"},"IconWithTooltip",e.taskIcon,!1)),a("div",{staticClass:"name-info"},[a("span",{staticClass:"torrent-name",attrs:{title:e.displayName}},[e._v(e._s(e.displayName))]),a("br"),e._m(0),a("span",{staticClass:"text-grey"},[e._v(e._s(e.downloadStatus))])],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["remaining"],expression:"showCols['remaining']"}],key:"remaining",style:e.colWidth.remaining},[e._v(e._s(e.remaining))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["completedTime"],expression:"showCols['completedTime']"}],key:"completedTime",style:e.colWidth.completedTime},[e._v(e._s(e.completedTime))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["progress"],expression:"showCols['progress']"}],key:"progress",style:e.colWidth.progress},[a("q-linear-progress",{attrs:{value:e.torrent.progress,size:"20px",rounded:""}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.progress||"0%"))])])])],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["uploadSpeed"],expression:"showCols['uploadSpeed']"}],key:"uploadSpeed",style:e.colWidth.uploadSpeed},[e._v(e._s(e.uploadSpeed))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["downloadSpeed"],expression:"showCols['downloadSpeed']"}],key:"downloadSpeed",staticClass:"download-speed",style:e.colWidth.downloadSpeed},[a("span",{attrs:{title:e.downloadSpeed}},[e._v(e._s(e.downloadSpeed))]),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.showAbButton,expression:"showAbButton"}],staticClass:"text-primary float-right",attrs:{flat:"",dense:"",size:"sm"},on:{click:e.openAbPanel}},[a("IconWithTooltip",{attrs:{icon:e.isPayed?"flash_auto":"flash_on",tooltip:e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")}})],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["incomeInfo"],expression:"showCols['incomeInfo']"}],key:"incomeInfo",staticClass:"text-right",style:e.colWidth.incomeInfo},[e._v(e._s(e.incomeInfo))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.visibleColumns.includes("options"),expression:"visibleColumns.includes('options')"}],key:"options",staticClass:"option-btns",style:e.colWidth.options,attrs:{"auto-width":""}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!e.torrent.missFile,expression:"!torrent.isAutoUpload && !torrent.missFile"}],attrs:{flat:"",dense:"",size:"sm",disable:e.locked||e.isProcessingUpload},on:{click:e.toggleStatus}},[a("IconWithTooltip",{attrs:{icon:e.actionIcon,tooltip:e.taskAction,clickable:""}})],1),a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.onDoubleClick}},[a("IconWithTooltip",{attrs:{icon:e.playable?"smart_display":"file_open",tooltip:e.$t("open_file"),clickable:""}})],1),e._m(1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.torrent.fromPost,expression:"torrent.fromPost"}],attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showPostInfo}},[a("IconWithTooltip",{attrs:{icon:"video_library",tooltip:e.$t("library"),clickable:""}})],1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:(1===e.torrent.progress||e.torrent.upload)&&!e.torrent.paused,expression:"(torrent.progress === 1 || torrent.upload) && !torrent.paused"}],attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.showQuickStart}},[a("IconWithTooltip",{attrs:{icon:"present_to_all",tooltip:e.$t("share_to_library"),clickable:""}})],1),e._m(2),a("q-btn",{staticClass:"text-red",attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}},[a("IconWithTooltip",{attrs:{icon:"close",tooltip:e.$t("delete"),clickable:""}})],1)],1)],1)},Zn=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("IconWithTooltip",{directives:[{name:"show",rawName:"v-show",value:e.torrent.isAutoUpload,expression:"torrent.isAutoUpload"}],staticClass:"q-mr-xs text-primary",attrs:{tooltip:e.$t("auto_uploading"),icon:"cloud_upload"}})},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder",tooltip:e.$t("open_directory"),clickable:""}})],1)},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDetail}},[a("IconWithTooltip",{attrs:{icon:"more_horiz",tooltip:e.$t("more"),clickable:""}})],1)}],Xn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-icon",{class:{"cursor-pointer":e.clickable},attrs:{name:e.icon,size:e.size},on:{click:e.emitClick}},[e.tooltip?a("q-tooltip",[e._v("\n "+e._s(e.tooltip)+"\n ")]):e._e()],1)},eo=[],to={name:"IconWithTooltip",props:{icon:{type:String,require:!0},tooltip:{type:String,default:""},clickable:{type:Boolean,default:!1},size:{type:String,default:""}},methods:{emitClick(){this.$emit("click")}}},ao=to,no=Object(v["a"])(ao,Xn,eo,!1,null,null,null),oo=no.exports;S()(no,"components",{QIcon:G["a"],QTooltip:V["a"]});var io={name:"ListItem",props:{torrent:{type:Object,required:!0},visibleColumns:{type:Array,required:!0},showCols:{type:Object,required:!0},incomes:{type:Object,default:()=>({})},colWidth:{type:Object,default:()=>({})},highlight:Boolean},inject:["io"],components:{IconWithTooltip:oo},data(){return{locked:!1}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},displayName(){const e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e)return"";if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win;if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},isReady(){return this.torrent&&this.torrent.name&&this.torrent.ready},taskIcon(){const e=this.torrent,t=e.files?e.files:[],a=Object(M["c"])(t.map((e=>e.path||e)));return{icon:a.icon,tooltip:this.$t(a.tooltip)}},downloadStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return Object(M["a"])(this.torrent.length)}return this.isReady||this.torrent.paused||this.torrent.length?this.torrent.done||this.torrent.downloaded===this.torrent.length?Object(M["a"])(this.torrent.length):`${Object(M["a"])(this.torrent.downloaded)}/${Object(M["a"])(this.torrent.length)}`:"-"},remaining(){return this.torrent.paused||this.torrent.pending?"-":Object(M["e"])(this.torrent.timeRemaining)},completedTime(){const e=(...e)=>this.$t(...e);return this.torrent.completedTime?Object(M["f"])(this.torrent.completedTime,e,null===this||void 0===this?void 0:this.$i18n.locale):Object(M["f"])(this.torrent.createdTime,e,null===this||void 0===this?void 0:this.$i18n.locale)},progress(){return Object(M["g"])(this.torrent.progress)},downloadSpeed(){if(this.torrent.paused)return this.$t("paused");if(this.torrent.pending)return this.$t("pending");if(!this.torrent.ready){if(!this.torrent.hasMetadata)return this.$t("loading");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("verifying")+` (${n})`}return this.$t("verifying")}return Object(M["a"])(this.torrent.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s"},incomeInfo(){return[Number(((this.incomes.today||0)/1e3).toFixed(3)),Number(((this.incomes.total||0)/1e3).toFixed(3))].join(" / ")},uploadSpeed(){return this.torrent.ready?Object(M["a"])(this.torrent.uploadSpeed,{byte:!1,gb:!1,fix:1})+"/s":"-/s"},taskAction(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},playableFiles(){var e;return(null===(e=this.torrent.files)||void 0===e?void 0:e.filter((e=>Object(Nn["a"])(e.name))))||[]},playable(){return this.playableFiles.length},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return this.isDevMode&&this.abPeers.length},isPayed(){return this.abPeers.some((e=>"high"===e.remoteGroup))}},methods:{shouldShow(e){return this.visibleColumns.includes(e)},onDoubleClick(){this.playable?this.$emit("play",this.playableFiles[0].path,this.torrent.infoHash):this.torrent.files&&this.torrent.files.length?this.openFile():this.$q.notify(this.$t("no_available_file"))},toggleStatus(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash||this.torrent.token)}},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},openAbPanel(){this.$emit("showAbPanel",this.torrent)},showQuickStart(){this.$emit("showQuickStart",this.torrent)}}},ro=io,so=(a("bd3b"),Object(v["a"])(ro,Jn,Zn,!1,null,null,null)),lo=so.exports;S()(so,"components",{QTr:bn["a"],QTd:yn["a"],QLinearProgress:zt["a"],QBtn:A["a"],QColor:la["a"]});var co=a("ed1a"),uo={name:"TableList",props:{list:{type:Object,required:!0},tab:{type:String,default:"downloading"},incomes:{type:Object,default:()=>({})},noDataMessage:{type:String,default:()=>""}},components:{ListItem:lo},data(){const e=this;let t={name:250,remaining:80,completedTime:80,progress:120,downloadSpeed:150,uploadSpeed:100,incomeInfo:120,options:165};return localStorage.getItem("table-col-width")||localStorage.setItem("table-col-width",JSON.stringify(t)),t=JSON.parse(localStorage.getItem("table-col-width")),{isElectron:Object(X["isElectron"])(),emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),defaultColumns:{downloading:["name","remaining","progress","downloadSpeed","options"],uploading:["name","completedTime","uploadSpeed","incomeInfo","options"],downloaded:["name","completedTime","options"]},dragData:{start:!1,col:"",pageX:0,pageY:0},highlightItem:{},colWidth:t}},computed:{columns(){return[{name:"name",required:!0,label:this.$t("task_name"),align:"left",headerStyle:this.colWidthText.name+";padding-left: 48px; max-width: calc(100% - 48px);"},{name:"remaining",label:this.$t("remaining"),align:"left",headerStyle:this.colWidthText.remaining+"; max-width: calc(100% - 8px)"},{name:"completedTime",label:this.$t("completed_time"),align:"left",headerStyle:this.colWidthText.completedTime+"; max-width: calc(100% - 8px)"},{name:"progress",label:this.$t("progress"),align:"left",headerStyle:this.colWidthText.progress+"; max-width: calc(100% - 8px)"},{name:"downloadSpeed",label:this.$t("total_download_speed"),align:"left",headerStyle:this.colWidthText.downloadSpeed+"; max-width: calc(100% - 8px)"},{name:"uploadSpeed",label:this.$t("total_upload_speed"),align:"left",headerStyle:this.colWidthText.uploadSpeed+"; max-width: calc(100% - 8px)"},{name:"incomeInfo",label:this.$t("income_info"),align:"right",headerStyle:this.colWidthText.incomeInfo+"; max-width: calc(100% - 8px)"},{name:"options",label:this.$t("operations"),align:"left"}]},visibleColumns(){switch(this.tab){case"downloading":return this.defaultColumns.downloading;case"uploading":return 2!==this.$store.state.credits.isModuleInit?this.defaultColumns.uploading.filter((e=>"incomeInfo"!==e)):this.defaultColumns.uploading;case"downloaded":return this.defaultColumns.downloaded}return this.defaultColumns.downloading},showCols(){const e={};for(const t of this.visibleColumns)e[t]=!0;return e},colWidthText(){const e={};for(const t in this.colWidth){const a=this.colWidth[t];e[t]=`width: ${a}px; min-width: ${a}px; max-width: ${a}px;`}return e},tableList(){var e,t;return(null===(e=this.list)||void 0===e||null===(t=e.list)||void 0===t?void 0:t.map((e=>({name:e.name}))))||[]},taskIncomes(){const{todayTaskIncome:e,allTaskIncome:t}=this.incomes,a={};for(const n in t)a[n]||(a[n]={today:0,total:0}),a[n].total+=t[n],e[n]&&(a[n].today+=e[n]);return a}},methods:{onDragStart(e,t){this.dragData.pageX=t.pageX,this.dragData.pageY=t.pageY,this.dragData.start=!0,this.dragData.col=e.name,document.body.style.cursor="col-resize"},onDragEnd(){this.dragData.start&&(this.dragData.start=!1,document.body.style.cursor="",localStorage.setItem("table-col-width",JSON.stringify(this.colWidth)))},onDrag(e){if(!this.dragData.start)return;const t=this.dragData.pageX-e.pageX;this.dragData.pageX=e.pageX,this.colWidth[this.dragData.col]&&(this.colWidth[this.dragData.col]-=t,this.colWidth[this.dragData.col]<80&&(this.colWidth[this.dragData.col]=80))},onResize(){console.log("table resize"),this.$refs.tableIns.resetVirtualScroll()},findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},created(){this.onDrag=Object(co["a"])(this.onDrag,1e3/60),this.onResize=Object(co["a"])(this.onResize)},beforeDestroy(){window.removeEventListener("resize",this.onResize)},mounted(){window.addEventListener("resize",this.onResize),console.log("table created",this.$route.query)},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.tableIns){var a;if(Date.now()-e<1e3)return;const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.tableIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},_o=uo,po=(a("cdb7"),a("c1f8")),mo=Object(v["a"])(_o,Kn,Yn,!1,null,null,null),ho=mo.exports;S()(mo,"components",{QTable:Tt["a"],QTr:bn["a"],QTh:po["a"],QIcon:G["a"],QColor:la["a"]});var go=function(){var e=this,t=this,a=t.$createElement,n=t._self._c||a;return n("q-dialog",{attrs:{value:t.show},on:{input:function(t){return e.$emit("change",t)},"before-hide":function(){return e.disable=!1}}},[n("q-card",{staticClass:"info"},[n("q-card-section",[n("div",{staticClass:"text-h6"},[t._v(t._s(t.$t("create_payment")))]),n("div",{staticClass:"infohash"},[t._v(t._s(t.$t("pay_for_torrent",[t.torrentName])))]),n("small",{staticClass:"infohash text-secondary"},[t._v("infoHash: "+t._s(t.infoHash))]),n("div",{staticClass:"peer-info"},[t._v(t._s(t.$t("pay_target"))+":\n "),n("div",{staticClass:"q-ml-sm remote"},[t._v("SubId: "+t._s(t.remoteSubId))]),n("div",{staticClass:"peer-address q-ml-md"},[t._v("Address: "+t._s(t.address))]),n("div",{staticClass:"peer-id q-ml-md"},[t._v("PeerId: "+t._s(t.peerId))])]),n("div",{staticClass:"space q-my-md"}),n("div",{staticClass:"user-info"},[n("div",{staticClass:"sub-id"},[t._v(t._s(t.$t("your_subid"))+": "+t._s(t.subId))]),n("div",{staticClass:"credit-count"},[t._v(t._s(t.$t("your_credits"))+": "+t._s(t.credit))])]),n("div",{staticClass:"actions"},[n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[2,"20MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(2)}}}),n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[10,"100MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(10)}}}),n("br"),n("q-toggle",{attrs:{value:t.enableAutoRenew,label:t.$t("auto_renew"),"left-label":""},on:{input:t.setAutoRenew}})],1)])],1)],1)},fo=[],bo={name:"TorrentPayment",props:{dp$source:Object,infoHash:{type:String,default:""},torrentName:{type:String,default:""},peerId:{type:String,default:""},address:{type:String,default:""},remoteUser:{type:String,default:""},remoteSubId:{type:String,default:""},show:{type:Boolean,default:!1},autoRenew:{type:Object,default:()=>({})}},data(){return{disable:!1,sentTransactions:new Set,pendingTransactions:new Map}},computed:{credit(){return this.dp$source.dp$credit},userId(){return this.$store.state.account.username},subId(){return this.dp$source.dp$address},enableAutoRenew(){return this.autoRenew&&this.autoRenew[this.infoHash]||!1},income(){return this.dp$source.dp$incomeTxnList},expenses(){return this.dp$source.dp$expenseTxnList}},methods:{setAutoRenew(e){this.$emit("setAutoRenew",this.infoHash,e)},pay(e=1){if(!this.infoHash.length||!this.peerId.length||!this.remoteSubId.length)return this.$q.notify("Info missing");this.disable=!0,console.log("dp$ create payment from","TorrentPayment::pay"),this.$emit("createPayment",{infoHash:this.infoHash,peerId:this.peerId,remoteSubId:this.remoteSubId,payed:e,autoRenew:this.enableAutoRenew})}}},yo=bo,vo=Object(v["a"])(yo,go,fo,!1,null,null,null),wo=vo.exports;S()(vo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QBtn:A["a"],QToggle:ta["a"]});var ko=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.torrent?a("q-dialog",{staticClass:"detail-dialog",attrs:{value:e.show,position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.closeDialog}},[a("q-card",{staticClass:"detail-dialog",class:e.isCapacitor?"capacitor":""},[a("q-card-section",{staticClass:"flex items-center no-wrap",class:e.screen$xs?"q-py-sm":"q-py-md"},[e.torrent.fromPost?a("q-icon",{staticClass:"q-mr-xs text-primary",attrs:{name:"video_library"}},[a("q-tooltip",[e._v("\n "+e._s(e.$t("library"))+"\n ")])],1):e._e(),a("div",{staticClass:"text-h6 ellipsis",attrs:{title:e.torrent.postTitle||e.torrent.name}},[e._v("\n "+e._s(e.torrent.postTitle||e.torrent.name)+"\n ")]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:"","data-cy":"moreCard-closeBtn"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{class:e.screen$xs?"q-pt-md":"q-pt-none"},[a("q-input",{attrs:{readonly:"",label:e.$t("download")+" URL",outlined:"",dense:""},scopedSlots:e._u([{key:"append",fn:function(){return[a("IconWithTooltip",{attrs:{icon:"content_copy",tooltip:e.$t("copy_download_uri"),clickable:!0},on:{click:e.copyMagnetURI}}),a("IconWithTooltip",{attrs:{icon:"share",tooltip:e.$t("copy_share_uri"),clickable:!0},on:{click:e.copyShortURI}})]},proxy:!0}],null,!1,2307292726),model:{value:e.downloadURI,callback:function(t){e.downloadURI=t},expression:"downloadURI"}})],1),e.fileTree.length?a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"title"},[e.isElectron||e.isCapacitor?a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder_open",tooltip:e.$t("open_directory"),clickable:""}})],1):e._e(),e._v("\n "+e._s(e.$t("files"))+":\n ")],1),a("q-tree",{staticClass:"no-select file-tree",attrs:{nodes:e.fileTree,"node-key":"label",dense:"","no-connectors":""},scopedSlots:e._u([{key:"default-header",fn:function(t){return[a("q-item",{staticClass:"text full-width q-py-none q-px-xs no-margin vertical-middle",class:{"no-path":!t.node.path},attrs:{dense:"",clickable:!t.node.children},on:{dblclick:function(a){return e.onDblClick(t.node)}}},[!t.node.children&&t.node.path?a("IconWithTooltip",e._b({staticClass:"q-mt-xs q-mr-xs"},"IconWithTooltip",e.getFileIcon(t.node.path),!1)):t.node.path?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"folder"}}):e._e(),e.isCapacitor&&t.node.done&&t.node.fullPath?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"ios_share",label:e.$t("open_file")},on:{click:function(a){return e.shareFile(t.node)}}}):e._e(),t.node.progress?a("span",{staticClass:"file-progress"},[e._v(e._s(t.node.progress))]):e._e(),a("span",{staticClass:"file-name"},[e._v("‎"+e._s(t.node.label))])],1)]}}],null,!1,3668704012)})],1):e._e(),e.torrent.subtitleList&&e.torrent.subtitleList.length?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"subtitles",label:e.$t("subtitle")+" ("+e.torrent.subtitleList.length+")",value:!0}},[a("q-markup-table",{staticClass:"subtitleList-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center",staticStyle:{"padding-left":"20px"}},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("download_link")))]),a("th")])]),a("tbody",e._l(e.torrent.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-center",staticStyle:{"padding-left":"20px"},attrs:{title:t.lang}},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left url ellipsis",attrs:{title:e.getSubtitleUrl(t.url)}},[e._v(e._s(e.getSubtitleUrl(t.url)))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"content_copy",size:"xs",dense:"",flat:""},on:{click:function(a){return e.copySubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy_download_uri")))])],1),e.isElectron?a("q-btn",{attrs:{icon:"file_download",size:"xs",dense:"",flat:""},on:{click:function(a){return e.downloadSubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("download_link")))])],1):e._e()],1)])})),0)])],1)],1):e._e(),a("q-card-section",{staticClass:"q-pt-none peers"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"people",label:"Peers ("+e.connectedPeers.length+")",value:!0}},[a("q-markup-table",{staticClass:"peer-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center"}),a("th",{staticClass:"text-left ip",staticStyle:{"padding-left":"32px"}},[e._v("Peer")]),e.isDevMode?a("th",{staticClass:"text-left client"},[e._v(e._s(e.$t("client")))]):e._e(),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_download_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_upload_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("progress")))])])]),a("tbody",e._l(e.connectedPeers,(function(t){return a("PeerInfo",{key:t.id,attrs:{peer:t},on:{showPaymentPannel:e.showPaymentPannel}})})),1)])],1)],1),e.isDevMode?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{directives:[{name:"show",rawName:"v-show",value:e.trackerList.length,expression:"trackerList.length"}],attrs:{icon:"dns",label:"Trackers ("+e.trackerList.length+")"}},[e.isElectron?a("div",{staticClass:"row justify-end q-pa-sm"},[a("q-input",{staticClass:"col",attrs:{dense:"",type:"text",label:"Tracker URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.newTrackerUrl,callback:function(t){e.newTrackerUrl=t},expression:"newTrackerUrl"}}),a("q-btn",{attrs:{dense:"",color:"primary q-mx-sm q-px-sm",icon:"add",label:e.$t("add")},on:{click:e.addTracker}})],1):e._e(),a("q-markup-table",{staticClass:"tracker-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left",staticStyle:{"padding-left":"40px"}},[e._v("URL")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("last_update")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("seeders")))]),a("th",{staticClass:"text-center"},[e._v("Peers")]),e.isElectron?a("th"):e._e()])]),a("tbody",e._l(e.trackerList,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left url",attrs:{title:t.displayUrl+(t.isIpv6?" (IPv6)":"")}},[t.isIpv6?a("IconWithTooltip",{staticStyle:{color:"#4697ec"},attrs:{icon:"looks_6",tooltip:"IPv6",size:"xs"}}):a("q-icon",{attrs:{name:"looks_4",color:"grey",size:"xs"}}),e._v("\n "+e._s(t.displayUrl)+"\n ")],1),a("td",{staticClass:"text-left status",attrs:{title:t.status}},[e._v(e._s(t.status))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.complete))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.incomplete))]),e.isElectron?a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{color:"red",icon:"close",size:"xs",dense:"",flat:""},on:{click:function(a){return e.removeTracker(t.url)}}})],1):e._e()])})),0)])],1)],1):e._e()],1)],1):e._e()},So=[],Co=(a("dc69"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("tr",[a("td",{staticClass:"status text-center"},[e.peer.isAbPeer?"high"===e.peer.level?a("q-icon",{attrs:{name:"done_all"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer_verified")))])],1):a("q-icon",{attrs:{name:"done"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer")))])],1):a("q-icon",{attrs:{name:"remove"}},[a("q-tooltip",[e._v(e._s(e.$t("common_peer")))])],1)],1),a("td",{staticClass:"addresses"},e._l(e.peer.addresses,(function(t){return a("div",{key:e.peer.id+"_"+t,staticClass:"self-center not-outline address"},[a("q-icon",{attrs:{name:e.peer.secure?"lock":"lock_open",size:"xs",color:e.peer.secure?"green":"grey"}},[a("q-tooltip",[e._v(e._s(e.peer.secure?e.$t("encrypted_connection"):e.$t("non_encrypted_connection")))])],1),a("span",{staticClass:"country-flag q-ml-sm",attrs:{title:e.country}},[e._v(e._s(e.countryFlag))]),e.isDevMode?a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t))]):a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t?t.substring(0,4)+"*":"-"))])],1)})),0),e.isDevMode?a("td",{staticClass:"client text-left",class:{"text-primary":"Alphabiz"===e.peerClient},attrs:{title:e.peerClient}},[e._v(e._s(e.peerClient))]):e._e(),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.downloadSpeed}},[e._v(e._s(e.downloadSpeed)+" / s")]),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.uploadSpeed}},[e._v(e._s(e.uploadSpeed)+" / s")]),a("td",{staticClass:"progress text-right"},[e._v(e._s(e.peerProgress))])])}),xo=[],$o=a("1c53"),To=a.n($o),zo=a("ff11"),Po=a.n(zo);let Ao=null;Object(X["isElectron"])()&&(Ao=global["require"]("geoip-country"));var Io={props:{peer:{type:Object,required:!0}},computed:{isDevMode(){return d["a"].getters.isDevMode},country(){const e=this.peer.addresses[0];if(!e)return"";try{const t=Ao.lookup(e);return t&&t.country?t.country:""}catch(t){return""}},countryFlag(){return this.country?To.a.getEmojiFlag(this.country):""},uploadSpeed(){return Object(M["a"])(this.peer.uploadSpeed,{byte:!1,gb:!1,fix:1})},downloadSpeed(){return Object(M["a"])(this.peer.downloadSpeed,{byte:!1,gb:!1,fix:1})},peerClient(){if(!this.peer.id)return"-";const e=Buffer.from(this.peer.id,"hex").toString("ascii");try{const t=Po()(e.replace("-AB","-WD")),a=this.peer.isAbPeer?"(Alphabiz)WebTorrent":t.client;return"unknown"===a?this.$t("unknown"):t.version?a+" "+t.version:a}catch(t){return this.$t("unknown")}},peerProgress(){if("number"!==typeof this.peer.progress)return"-";const e=Number((100*this.peer.progress).toFixed(1));return e+"%"}},methods:{showPaymentPannel(){this.$emit("showPaymentPannel",{peerId:this.peer.id,address:this.peer.address,remoteUser:this.peer.user,remoteSubId:this.peer.subId})}}},qo=Io,Oo=(a("2e69"),Object(v["a"])(qo,Co,xo,!1,null,"4676c095",null)),Eo=Oo.exports;S()(Oo,"components",{QIcon:G["a"],QTooltip:V["a"]});var Do={props:{show:{type:Boolean,default:!1},torrent:{type:Object,required:!0}},data(){const e=Object(ae["default"])()?a("1b85").ipcRenderer:{};return{newTrackerUrl:"",isCapacitor:Object(ge["a"])(),isElectron:Object(ae["default"])(),ipcRenderer:e}},components:{IconWithTooltip:oo,PeerInfo:Eo},inject:["io"],computed:{isDevMode(){return d["a"].getters.isDevMode},fileCount(){if(!this.torrent)return 0;const e=this.torrent.files||this.torrent.file||[];return e&&e.length?e.length:0},fileTree(){if(!this.torrent)return[];const e=this.torrent.files&&this.torrent.files.map?this.torrent.files.map((e=>e.path)):this.torrent.file||[];if(!e||!e.length)return[];const t=this.fileCount>21?e.slice(e.length-20):e,a=Object(M["b"])(t,this.torrent.files);return a?(this.fileCount>21&&a.children&&a.children.push({label:this.$t("more_files_are_not_shown",[this.fileCount-20])}),[a]):[]},downloadURI(){return this.torrent.alphabizURI?this.torrent.alphabizURI:this.torrent.magnetURI},trackerList(){if(!this.torrent.trackerList)return[];const e=this.torrent.trackerList.map((e=>{const t=this.trackerStatus(e.message||e.status),a=e.info||{complete:"-",incomplete:"-"},n=new Date(e.timestamp),o=[n.getHours(),n.getMinutes(),n.getSeconds()].map((e=>("00"+e).slice(-2))).join(":");return{url:e.url,displayUrl:e.url.replace("@6",""),status:t,time:o,isIpv6:e.isIpv6,...a}})).reverse();return Object(ae["default"])()?e:e.filter((e=>{var t;return null===(t=e.url)||void 0===t?void 0:t.startsWith("ws")}))},connectedPeers(){if(!this.torrent||!this.torrent.connections)return[];const e={};for(const n of this.torrent.connections){const t=n.id;e[t]||(e[t]={...n},e[t].addresses=[],e[t].uploadSpeed=0,e[t].downloadSpeed=0,e[t].downloaded=0),e[t].addresses.includes(n.address)||e[t].addresses.push(n.address),e[t].uploadSpeed+=n.uploadSpeed,e[t].downloadSpeed+=n.downloadSpeed,e[t].downloaded+=n.downloaded,e[t].isAbPeer|=n.isAbPeer,e[t].isPayed|="high"===n.remoteGroup,e[t].secure|=n.secure}const t=[],a=Object.values(e).sort(((e,t)=>{var a;return null!==(a=e.id)&&void 0!==a&&a.localeCompare?e.id.localeCompare(t.id):0})).filter((e=>!!e.id&&(!t.includes(e.id)&&(t.push(e.id),!0))));return a}},methods:{getFileIcon(e){const t=Object(M["c"])([e]);return{icon:t.icon,tooltip:this.$t(t.tooltip)}},closeDialog(){this.$emit("close")},copyToClipboard(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("uri_copied"))})).catch((()=>{this.$q.notify(this.$t("uri_copy_failed"))}))},copyMagnetURI(){this.copyToClipboard(this.downloadURI)},copyShortURI(){if(!this.torrent.alphabizURI)return;const e=this.torrent.alphabizURI.match(/[^:/]\/([^&/]+)&/);e&&e[1]&&this.copyToClipboard(De.a.shortProtocol+"://"+e[1])},copySubtitleURL(e){console.log("copySubtitleURL",this.torrent),this.copyToClipboard(qe(e))},downloadSubtitleURL(e){this.ipcRenderer.send("to_browserurl",qe(e))},getSubtitleUrl(e){return qe(e)},showPaymentPannel(e){this.$emit("showPaymentPannel",Object.assign({infoHash:this.torrent.infoHash,name:this.torrent.name},e))},showDirectory(){this.$emit("showDirectory",this.torrent)},onDblClick(e){console.log(e),e.children||(Object(Nn["a"])(e.label)?this.$emit("play",e.path,this.torrent.infoHash):e.path&&this.io.emit("open-external-file",e.path))},shareFile(e){this.$emit("shareFile",e.fullPath)},trackerStatus(e){const t=e.toLowerCase();return"connecting"===t?this.$t("connecting"):"updated"===t?this.$t("connected"):t.includes("timed out")?this.$t("request_timed_out"):t.includes("connection failed")?this.$t("connection_failed"):this.$t("unknown_error",[e])},addTracker(){console.log("add",this.newTrackerUrl,this.torrent.infoHash);const e=this.newTrackerUrl.trim();if(this.torrent.trackerList.find((t=>t.url===e)))return this.$q.notify(this.$t("duplicate_tracker"));this.isElectron&&this.ipcRenderer.send("add-tracker",{infoHash:this.torrent.infoHash,url:e}),this.newTrackerUrl=""},removeTracker(e){console.log("remove",e,this.torrent.infoHash),this.isElectron&&this.ipcRenderer.send("remove-tracker",{infoHash:this.torrent.infoHash,url:e})}}},jo=Do,No=(a("860f"),a("348e")),Lo=a("5bbd"),Uo=Object(v["a"])(jo,ko,So,!1,null,"560c4343",null),Ro=Uo.exports;S()(Uo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QTooltip:V["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QInput:E["a"],QTree:No["a"],QItem:He["a"],QExpansionItem:Lo["a"],QMarkupTable:Q["a"]}),S()(Uo,"directives",{ClosePopup:K["a"]});var Mo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.showPanel},on:{input:e.close}},[a("q-card",[a("q-card-section",{staticClass:"row items-center"},[a("q-expansion-item",{staticStyle:{width:"400px"},attrs:{"expand-separator":"","default-opened":"",icon:"people",label:"Peers ("+e.abPeers.length+")",caption:"Alphabiz peer"}},[a("div",{staticClass:"total col-12 q-px-md q-ml-sm"},[a("span",[e._v(e._s(e.$t("credit_cost"))+": "+e._s(e.torrentExpensesNum))])]),e._l(e.abPeers,(function(t){return a("q-field",{key:t.id,attrs:{label:t.subId||t.id,"stack-label":"",borderless:"",readonly:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("div",{staticClass:"q-px-sm"})]},proxy:!0},{key:"control",fn:function(){return[e._l(t.addresses,(function(t,n){return a("div",{key:n+"-"+t,staticClass:"self-center full-width not-outline"},[e._v(" - "+e._s(t)+"\n ")])})),a("div",{staticClass:"text full-width q-mt-xs"},[a("span",{staticClass:"peer-speed q-ml-xs q-mr-lg",class:{"text-primary":"0.00 KB"!==t.uploadSpeed}},[e._v("↑ "+e._s(t.uploadSpeed)+" / s")]),t.isPayed?a("q-icon",{staticClass:"text-primary q-mx-xs cursor-pointer",attrs:{name:"bolt"}},[a("q-tooltip",[e._v(" "+e._s(e.$t("accelerating")))])],1):e._e(),a("span",{staticClass:"peer-speed q-mr-md",class:{"text-primary":"0.00 KB"!==t.downloadSpeed}},[e._v("↓ "+e._s(t.downloadSpeed)+" / s")]),a("span",{directives:[{name:"show",rawName:"v-show",value:t.downloaded,expression:"peer.downloaded"}],staticClass:"peer-downloaded text-primary"},[e._v(e._s(t.downloadedData))])],1)]},proxy:!0}],null,!0)})}))],2)],1),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"total text-center"},[e._v("\n "+e._s(e.$t("pay_with_credit_payed",[e.totalCredits]))+"\n ")])]),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("ok")}})],1)],1)],1)},Fo=[],Bo={props:{dp$source:Object,show:{type:Boolean,required:!0},torrent:{type:Object,required:!0},paymentSize:{type:Number,default:1e7}},computed:{torrentExpensesNum(){let e=0;if(this.dp$source.dp$expenseTxnDict&&this.dp$source.dp$expenseHashMapper){const t=this.dp$source.dp$expenseHashMapper[this.torrent.infoHash];if(console.log("torrentExpensesNum:","infoHash",this.torrent.infoHash),t)for(const a of t)e+=this.dp$source.dp$expenseTxnDict[a].amount}return Number((e/1e3).toFixed(3))},showPanel(){return this.show},totalCredits(){const e=this.torrent.length,t=e-this.torrent.downloaded,a=Number((t/1e10).toFixed(3));return a},abPeers(){if(!this.torrent||!this.torrent.connections)return[];const e=this.torrent.connections.filter((e=>e.isAbPeer&&e.hasResource&&e.subId!==d["a"].getters.accountUserInfo.sub)),t={};for(const a of e){const e=a.subId;e&&(t[e]?(t[e].isAbPeer|=a.isAbPeer,t[e].addresses.push(a.address),t[e].uploadSpeed+=a.uploadSpeed,t[e].downloadSpeed+=a.downloadSpeed,t[e].downloaded+=a.downloaded):(t[e]={...a},t[e].addresses=[a.address]))}return Object.values(t).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0)).map((e=>(e.uploadSpeed=Object(M["a"])(e.uploadSpeed,{byte:!1,gb:!1}),e.downloadSpeed=Object(M["a"])(e.downloadSpeed,{byte:!1,gb:!1}),e.downloadedData=Object(M["a"])(e.downloaded,{byte:!0,gb:!0}),e.isPayed="high"===e.remoteGroup,e)))},payedConnections(){return this.abPeers.filter((e=>e.isPayed))},downloadedFromPayed(){return Object(M["a"])(this.payedConnections.reduce(((e,t)=>e+t.downloaded||0),0),{byte:!0,gb:!0})},hasPayed(){return this.payedConnections.length}},methods:{confirmPayment(){if(!this.abPeers.length)return;let e=10;const t=Math.floor(10*this.torrent.downloadSpeed/this.paymentSize);t>e&&(e=t);const a=this.torrent.length-this.torrent.downloaded;a{console.log("pay for",t),t.isPayed?console.log("skip high level peer",t):(console.log("dp$ create payment from","AlphabizPanel::confirmPayment"),this.$emit("createPayment",{infoHash:this.torrent.infoHash,remoteSubId:t.subId,payed:e,autoRenew:!0},!0))})),this.close()},close(){this.$emit("close")}}},Wo=Bo,Ho=a("b121"),Vo=Object(v["a"])(Wo,Mo,Fo,!1,null,null,null),Qo=Vo.exports;S()(Vo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QExpansionItem:Lo["a"],QField:Ho["a"],QIcon:G["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Vo,"directives",{ClosePopup:K["a"]});var Go=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("alphabiz-button",{attrs:{"button-type":"icon",icon:"sort"}},[a("q-tooltip",[e._v(e._s(e.$t("sort")))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{attrs:{padding:""}},[a("q-item",{staticStyle:{"min-width":"240px"}},[a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("sort")))])],1),a("q-item-section",{attrs:{side:""}},[a("q-badge",{staticClass:"cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:e.changeSortSequence}},[a("span",{staticClass:"q-ml-sm"},[e._v(e._s(1===e.sortSequence?e.$t("ascending"):e.$t("descending")))]),a("q-icon",{attrs:{size:"1.5rem",name:1===e.sortSequence?"arrow_drop_up":"arrow_drop_down"}})],1)],1)],1),a("q-separator"),e._l(e.options,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"}],key:t.value,attrs:{clickable:"",dense:"",tag:"label"}},[a("q-item-section",{attrs:{avatar:""}},[a("q-radio",{attrs:{val:t.value,color:"positive"},model:{value:e.sortOption,callback:function(t){e.sortOption=t},expression:"sortOption"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)}))],2)],1)],1)},Ko=[],Yo={name:"DownloaderSortMenu",inject:["io"],data(){return{sortOption:"createdTime",sortSequence:1}},computed:{options(){switch(this.$route.query.currentTab){case"downloading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_download_speed"),value:"downloadSpeed"},{label:this.$t("progress"),value:"progress"},{label:this.$t("remaining"),value:"timeRemaining"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("used_time"),value:"usedTime"}];case"uploading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_upload_speed"),value:"uploadSpeed"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("income"),value:"income"}];case"downloaded":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("used_time"),value:"usedTime"}]}return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"}]}},methods:{saveSortOptions(){localStorage.setItem("sortOptions_"+this.$route.query.currentTab,JSON.stringify({sortOption:this.sortOption,sortSequence:this.sortSequence}))},changeSortSequence(){this.sortSequence=-1*this.sortSequence,this.$emit("changeSortSequence",this.sortSequence),this.io.emit("set_sort_sequence",this.sortSequence),this.saveSortOptions()}},mounted(){const e=localStorage.getItem("sortOptions_"+this.$route.query.currentTab);if(e){const{sortOption:t,sortSequence:a}=JSON.parse(e);t&&(this.sortOption=t),a&&(this.sortSequence=a)}else this.sortOption="createdTime",this.sortSequence=1,this.saveSortOptions()},watch:{sortOption(e){this.$emit("changeSortOption",e),this.io.emit("set_sort_option",this.sortOption),this.saveSortOptions()},"$route.query.currentTab"(e,t){if(e===t||!e)return;const a=localStorage.getItem("sortOptions_"+e);if(a){const{sortOption:e,sortSequence:t}=JSON.parse(a);e&&(this.sortOption=e),t&&(this.sortSequence=t)}else this.sortOption="createdTime",this.sortSequence=1}}},Jo=Yo,Zo=a("719b"),Xo=Object(v["a"])(Jo,Go,Ko,!1,null,"b08e87f8",null),ei=Xo.exports;S()(Xo,"components",{QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QBadge:_e["a"],QIcon:G["a"],QSeparator:H["a"],QRadio:La["a"]}),S()(Xo,"directives",{Ripple:Zo["a"]});var ti=a("0885"),ai=a("a368");const ni=a("d310").isElectron();var oi={name:"Downloader",inject:["rootApp","io","taskQueue","dp$source"],components:{CardList:Gn,TableList:ho,TableListDetail:Ro,IconWithTooltip:oo,AlphabizPanel:Qo,TorrentPayment:wo,SortMenu:ei,PostCard:Ye,QuickStart:Ma},data(){return{isMobile:Ln["b"].is.mobile||Object(ge["a"])(),currentTab:"downloading",loading:!1,listMode:localStorage.getItem("task-list-mode")||"list",searchText:"",showSearchText:!1,autoRenew:JSON.parse(localStorage.getItem("task-autorenew")||"{}"),sortOption:"createdTime",sortSequence:1,statusText:{},info:{downloadSpeed:0,uploadSpeed:0,progress:0,taskNum:0},showPayment:!1,showTorrentDetail:!1,torrentDetailInfoHash:"",paymentData:{infoHash:"",torrentName:"",peerId:"",address:"",remoteUser:"",remoteSubId:""},paymentSize:1e7,showAlphabizPanel:!1,abTorrentInfoHash:"",lib:s["a"],showChannelPost:!1,channelPost:null,showQuickStartDialog:!1,quickStartTask:null}},computed:{torrentList(){return za["a"].taskList},listComponent(){return"card"===this.listMode?"CardList":"TableList"},displayTab:{get(){return this.currentTab+"Torrents"},set(e){const t=e.replace(/Torrents$/,"");this.$router.push({path:this.$route.path,query:{...this.$route.query,currentTab:t}})}},displayList(){return[{key:"downloadingTorrents",label:this.$t("downloading"),open:!0,list:this.filterTorrent(this.downloadingTorrents||[])},{key:"uploadingTorrents",label:this.$t("uploading"),open:!1,list:this.filterTorrent(this.uploadingTorrents||[])},{key:"downloadedTorrents",label:this.$t("downloaded"),open:!1,list:this.filterTorrent(this.downloadedTorrents||[])}]},currentList(){switch(this.displayTab){case"downloadingTorrents":return this.displayList[0].list;case"uploadingTorrents":return this.displayList[1].list;default:return this.displayList[2].list}},isAllStarted(){return this.currentList.every((e=>!e.paused))},isAllPaused(){return this.currentList.every((e=>e.paused))},noDataMessage(){return this.searchText?this.$t("no_matched_task"):this.$t("no_task")},downloadingTorrents(){const e=this.sortTorrents(this.torrentList.downloading);return e},disableDownloadAll(){return this.loading||this.downloadingTorrents.every((e=>!e.paused))},disablePauseAllDownloading(){return this.loading||this.downloadingTorrents.every((e=>e.paused))},downloadingProgress(){const e=this.torrentList.totalDownloadProgress;return isNaN(e)||0===e&&0===this.downloadingNum?{value:0,label:this.$t("no_downloading_task")}:{value:e,label:Object(M["g"])(e)}},uploadingTorrents(){const e=this.sortTorrents(this.torrentList.uploading);return e},totalDownloadSpeed(){return this.torrentList.totalDownloadSpeed?Object(M["a"])(this.torrentList.totalDownloadSpeed,{byte:!1,gb:!1})+" / s":"0.00 KB / s"},totalUploadSpeed(){if(!this.uploadingTorrents)return"-";const e=this.torrentList.totalUploadSpeed;return Object(M["a"])(e,{byte:!1,gb:!1})+" / s"},downloadedTorrents(){return this.sortTorrents(this.torrentList.downloaded)},torrentItems(){return za["a"].allTasks},torrentDetail(){return this.torrentDetailInfoHash&&this.torrentItems.find((e=>e.infoHash===this.torrentDetailInfoHash))||{}},alphabizTorrent(){return this.abTorrentInfoHash&&this.torrentItems.find((e=>e.infoHash===this.abTorrentInfoHash))||{}},downloadingNum(){return this.downloadingTorrents.filter((e=>!e.paused&&!e.pending&&!(!e.download||1===e.progress))).length},incomes(){let e=0;const t={};for(const i of this.dp$source.dp$incomeTxnListToday){if(!i.meta||"FINISH"!==i.status)continue;e+=i.amount;const a=JSON.parse(i.meta);a.infoHash&&(t[a.infoHash]||(t[a.infoHash]=0),t[a.infoHash]+=i.amount)}let a=0;const n={},o=this.dp$source.dp$incomeStatusMapper.FINISH;if(o)for(const i of o){const e=this.dp$source.dp$incomeTxnDict[i];a+=e.amount;const t=JSON.parse(e.meta).infoHash;n[t]||(n[t]=0),n[t]+=e.amount}return{todayIncome:e,todayTaskIncome:t,allIncome:a,allTaskIncome:n}},totalIncomeInfo(){return 2!==d["a"].state.credits.isModuleInit?this.$t("login_to_see_income"):this.$t("total_income_info",[Number((this.incomes.todayIncome/1e3).toFixed(3)),Number((this.incomes.allIncome/1e3).toFixed(3))])},disableTasks(){return!!d["a"].getters.shouldDisableTasks||!!d["a"].getters.settings.forceLogin&&(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{ensureLogin(e){if(this.disableTasks){if(!d["a"].state.account.authState)return;this.$amplify.showSignedOutDialog()}else"function"===typeof e&&e()},async setLoading(){this.loading=!0,await new Promise((e=>setTimeout(e,1e3))),this.loading=!1},toggleSearchText(e){this.showSearchText=e,e&&this.$nextTick((()=>{this.$refs.searchInput.focus()}))},filterTorrent(e){const t=this.searchText.toLowerCase(),a=e.filter((e=>e.name||e.postTitle?e.postTitle?e.postTitle.toLowerCase().includes(t):e.name.toLowerCase().includes(t):""===t));return a},clearSearch(){this.searchText="",this.$refs.searchInput.blur()},changeListMode(){"list"===this.listMode?this.listMode="card":this.listMode="list",localStorage.setItem("task-list-mode",this.listMode)},byteToLargerSize(e){return Object(M["a"])(e,{byte:!0,gb:!0})},getTorrentListName(e){let t="downloading";return e.isSeeding||e.uploading?t="uploading":e.pending?t="pending":1===e.progress||e.done?t="downloaded":e.paused&&(t="paused"),t},showMagnetDialog(e){this.$root.$emit("openTaskDialog",e)},showDetail(e){this.torrentDetailInfoHash=e.infoHash,this.showTorrentDetail=!0},hideDetail(){this.showTorrentDetail=!1,this.torrentDetailInfoHash=""},showAbPanel({infoHash:e}){this.abTorrentInfoHash=e,this.showAlphabizPanel=!0},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},hideAbPanel(){this.showAlphabizPanel=!1,this.abTorrentInfoHash=""},async shareFile(e){const t=await ai["Share"].canShare();if(!t.value)return;const a=await ai["Share"].share({files:["file://"+encodeURI(e)]}).catch((e=>{console.log(e)}));this.$q.notify("Result: "+a.activityType)},showOriginTorrent(e){let t=e.token||e.origin;if(e.isSeeding||e.upload?t=e.magnetURI:e.magnetPath&&(t=e.magnetPath),!t)return this.$q.notify("origin_not_found");qn.a.existsSync(t)?this.io.emit("show_torrent_file",t):(t.startsWith("magnet")||(t="magnet:?xt=urn:btih:"+e.infoHash),e.name&&(t+="&dn="+encodeURIComponent(e.name)),Object(lt["b"])(t),this.$q.notify(this.$t("text_copied")))},async showDirectory(e){if(Object(ge["a"])()){if(1!==e.progress&&!e.done)return this.$q.notify(this.$t("wait_for_downloaded_to_share"));if((await ai["Share"].canShare()).value){const t=e.files.map((e=>"file://"+e.path));console.log("Files",t,e.path);const a=Ia(t);console.log("pub",a),ai["Share"].share({files:["file://"+encodeURI(a)],title:"Save"}).catch((e=>{console.log("Share error",e)}))}}if(!qn.a.existsSync(e.path))return this.$q.notify(this.$t("path_missing"));if(e.files&&1===e.files.length&&qn.a.existsSync(e.files[0].path))return this.io.emit("show_torrent_file",e.files[0].path);const t=Aa.a.resolve(e.path,e.postTitle||e.name||"");if(!qn.a.existsSync(t))return this.io.emit("show_torrent_file",e.path);this.io.emit("show_torrent_file",t)},setAutoRenew(e,t){return Object(ti["c"])(e,t),this.$set(this.autoRenew,e,t)},showPaymentPannel(e){this.paymentData=e,this.showPayment=!0},changeSortOption(e){this.sortOption=e},changeSortSequence(e){this.sortSequence=e},sortTorrents(e){const t=this.sortOption,a=t;switch(a){case"income":{const t=this.incomes.allTaskIncome;return[...e].sort(((e,a)=>t[e.infoHash]?t[a.infoHash]?(t[e.infoHash]-t[a.infoHash])*this.sortSequence:-1:t[a.infoHash]?1:0))}default:return e}},async askForConfirm(e){return new Promise((t=>{this.$q.dialog({persistent:!0,message:e,ok:this.$t("confirm"),cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>t(!0))).onCancel((()=>t(!1)))}))},downloadAll(e=!1){if(console.log("download all!"),this.loading)return console.log("skip downloadAll since loading");this.setLoading(),Object(qa["c"])(e)},async pauseAllDownloading(e=!1){if(!this.torrentList.downloading.length)return console.log("skip pause all downloading");console.log("pauseall"),this.setLoading(),Object(qa["d"])(e)},requestPauseAllDownloading(){this.$q.dialog({title:this.$t("pause_all"),message:this.$t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("pause_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.pauseAllDownloading()}))},removeAllDownloading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_downloading_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles");if(t&&d["a"].state.video.currentVideo.infoHash){const e=this.downloadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","download",t);for(const a of this.downloadingTorrents)this.io.emit("delete_torrent",a.infoHash,t);d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},pauseAllUploading(e=!1){this.torrentList.uploading.length&&(this.setLoading(),Object(qa["e"])(e))},removeAllUploading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_upload_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"},{label:this.$t("remove_autoupload_files"),value:"deleteAutoUpload"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles"),a=e.includes("deleteAutoUpload");if(t&&d["a"].state.video.currentVideo.remotePlay&&d["a"].state.video.currentVideo.infoHash){const e=this.uploadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){var n,o,i;const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;console.log(null===(n=this.$refs.videoJsPlayer)||void 0===n?void 0:n.player),null===(o=this.$refs.videoJsPlayer)||void 0===o||null===(i=o.player)||void 0===i||i.stop(),this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","upload",t,a),d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},async uploadAll(e=!1){const t=Object(qa["h"])(e);if(console.log("rest",t),t<=this.downloadedTorrents.length)return void console.log("Skip watch: nothing to upload");this.loading=!0;let a=null;const n=new Promise((e=>a=e)),o=this.$watch("downloadedTorrents",(e=>{e.length<=t&&(o(),this.loading=!1,console.log("upload done"),a())}));return setTimeout((()=>{this.loading&&(this.loading=!1,o(),a())}),5e3),n},pauseTorrent(e){this.setLoading(),Object(qa["f"])(e,this)},resumeTorrent(e){e&&this.ensureLogin((()=>{this.setLoading(),console.log("resume",e),this.io.emit("resume_torrent",e)}))},deleteTorrent(e){this.ensureLogin((async()=>{if(e.infoHash&&d["a"].state.video.currentVideo.remotePlay&&e.infoHash===d["a"].state.video.currentVideo.infoHash){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(a){const t=await za["a"].deleteTask(e);if(!t)return;this.io.emit("trigger_clear_player",e.infoHash)}}else za["a"].deleteTask(e)}))},clearAll(){this.ensureLogin((()=>{this.$q.dialog({title:this.$t("clear_history"),message:this.$t("remove_all_history"),ok:this.$t("remove_all"),cancel:this.$t("not_now")}).onOk((()=>{this.setLoading();for(const e of this.downloadedTorrents)this.io.emit("delete_torrent",e.infoHash)}))}))},startPayment(e,t=!1){Object(ti["d"])(e,t)},async createPayment(e,t=!1){await Object(ti["a"])(e,t,this),t||(this.showPayment=!1)},setThrottleGroup(e){this.io.emit("set_throttle_group",e)},saveTorrentFile(e){this.io.emit("save_torrent_file",e)},play(e,t){(ni||Object(ge["a"])())&&(console.log("run play():"+t+", "+e),d["a"].dispatch("remotePlay",t),this.io.emit("play-torrent",{infoHash:t,filepath:e}))},showQuickStart(e){this.quickStartTask=e,this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1,this.quickStartTask=null}},created(){this.io.on("client_info",(e=>{this.info=e}))},mounted(){if(Object.keys(this.autoRenew).length)for(const e in this.autoRenew)Object(ti["c"])(e,this.autoRenew[e])},beforeRouteEnter(e,t,a){if(console.log("before enter",e,t),"/downloader"!==e.path)return a();console.log("is downloader"),e.query.currentTab?(console.log("current tab:",e.query.currentTab),a((t=>{t.currentTab=e.query.currentTab}))):(console.log("not current tab",e.query),a({path:e.path,query:{...e.query,currentTab:"downloading"}}))},beforeRouteUpdate(e,t,a){console.log("before update",e,t),this.currentTab=e.query.currentTab,a()},watch:{autoRenew(e){localStorage.setItem("task-autorenew",JSON.stringify(e))}}},ii=oi,ri=(a("7297"),a("b2b4"),a("9b72")),si=a("832a"),li=a("917f"),ci=a("c72d"),di=Object(v["a"])(ii,Pn,An,!1,null,"540e1290",null),ui=di.exports;S()(di,"components",{QPage:ri["a"],QHeader:si["a"],QToolbar:ce["a"],QSpace:W["a"],QBtn:A["a"],QInput:E["a"],QIcon:G["a"],QTooltip:V["a"],QLinearProgress:zt["a"],QTabPanels:li["a"],QTabPanel:ci["a"],QPageSticky:tt["a"],QDialog:I["a"]});var _i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"file"},on:{change:e.onFileChange}}),a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("span",[e._v("\n "+e._s(e.$t("web_mode_hint"))+"\n "),a("a",{staticClass:"doc-link",attrs:{href:"https://alpha.biz",target:"_blank"}},[e._v("\n "+e._s(e.$t("go_to"))+" alpha.biz\n "),a("q-icon",{attrs:{name:"open_in_new"}})],1)])])],1),a("div",{staticClass:"task-container"},[e.task.magnetURI||e.task.origin||e.task.isSeeding?a("CardItem",{attrs:{torrent:e.task},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart,saveFile:e.saveFile,saveZip:e.saveZip}}):a("div",{staticClass:"no-task"},[a("div",{staticClass:"add-hints"},[e._v("\n "+e._s(e.$t("web_mode_task_hint"))+"\n ")]),a("q-btn",{staticClass:"add-button",attrs:{color:"primary",icon:"add",size:"lg"},on:{click:e.showDownload}},[a("q-tooltip",[e._v(e._s(e.$t("download")))])],1),a("q-btn",{staticClass:"add-button q-ml-md",attrs:{color:"primary",icon:"cloud_upload",size:"lg"},on:{click:e.showUpload}},[a("q-tooltip",[e._v(e._s(e.$t("upload")))])],1)],1)],1)]),a("q-dialog",{model:{value:e.showInput,callback:function(t){e.showInput=t},expression:"showInput"}},[a("q-card",{staticClass:"url-input"},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("download")))]),a("q-input",{attrs:{type:"text",label:"Task URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.taskUrl,callback:function(t){e.taskUrl=t},expression:"taskUrl"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:"Cancel",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{color:"primary",icon:"add",label:e.$t("add")},on:{click:e.addTask}})],1)],1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TableListDetail",{attrs:{show:e.showTaskDetail,torrent:e.task,paymentSize:10},on:{close:e.hideDetail}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.task,paymentSize:10},on:{close:e.hideAbPanel}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.task},on:{input:e.hideQuickStartDialog}})],1)},pi=[],mi=(a("f200"),a("09e8")),hi=a("7d7c"),gi=(a("dc89"),a("2425"),a("3cc3")),fi=a.n(gi);const bi=(e,t)=>{const a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=e,document.body.appendChild(n),n.click(),setTimeout((()=>{URL.revokeObjectURL(a),n.remove()}),3e4)};async function yi(e){return new Promise((t=>{e.getBlob(((a,n)=>{if(a)throw a;bi(e.name,n),t()}))}))}async function vi(e){if(!e.done)return;const t=Object(Pa["basename"])(e.name,Object(Pa["extname"])(e.name))+".zip",a=new fi.a,n=e.files;await Promise.all(n.map((e=>new Promise(((t,n)=>{e.getBlob(((o,i)=>{if(o)return n(o);a.file(e.path,i),t()}))}))))),n.length>1&&a.folder(e.postTitle||e.name);const o=await a.generateAsync({type:"blob"});return bi(t,o)}var wi=a("c620"),ki={components:{CardItem:Wn,TableListDetail:Ro,AlphabizPanel:Qo,QuickStart:Ma,PostCard:Ye},mixins:[mi["a"]],name:"Downloader",data(){return{locked:!1,showInput:!1,showTaskDetail:!1,showAlphabizPanel:!1,showQuickStartDialog:!1,showChannelPost:!1,channelPost:null,taskUrl:"",task:{}}},computed:{isReady(){return this.task.name&&this.task.length},displayName(){return this.task.postTitle?this.task.postTitle:this.task.name?this.task.name:this.$t("loading")},taskAction(){return this.task.paused?this.task.done?this.$t("upload"):this.$t("resume"):this.task.isSeeding?this.$t("stop_torrent"):this.$t("pause")},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{async showDownload(){this.taskUrl="",this.showInput=!0,await this.$nextTick();const e=await Object(lt["a"])();if(e&&"string"===typeof e){const t=e.trim();if([Ee["protocol"],Ee["shortProtocol"],"magnet"].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(Se["a"])(t);if(!e||!e.startsWith("magnet"))return;this.taskUrl=t}}},async showUpload(){this.$refs.fileSelector.click()},showDetail(){this.showTaskDetail=!0},hideDetail(){this.showTaskDetail=!1},switchState(){console.log("on switch state")},addTask(){Z["a"].emit("wt-add",this.taskUrl)},deleteTorrent(){this.$q.dialog({title:this.$t("delete_task"),message:this.$t("delete_confirm_message"),cancel:{color:"primary",flat:!0,label:this.$t("not_now")},ok:{color:"red",flat:!0,label:this.$t("delete")}}).onOk((()=>{Z["a"].emit("wt-delete",this.task.infoHash),this.task={}}))},pauseTorrent(){Z["a"].emit("wt-pause",this.task.infoHash),this.task.paused=!0},resumeTorrent(){this.task&&this.task.magnetURI&&(this.task.paused=!1,Z["a"].emit("wt-resume",this.task.infoHash))},play(e){console.log("onplay",e),Object(hi["default"])(e)},showPaymentPannel(){},showAbPanel(){this.showAlphabizPanel=!0},hideAbPanel(){this.showAlphabizPanel=!1},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},onFileChange(e){const t=e.target;t&&t.files&&t.files.length&&(console.log("To upload",t.files[0]),Z["a"].emit("wt-add",t.files[0])),t.value=null},showQuickStart(){this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1},saveFile(e){const t=wi["wtClient"].torrents[0];if(!t||!t.files)return;const a=t.files.find((t=>t.path===e.path))||t.files.find((t=>t.name===e.name));if(!a)return;const n=this.$q.dialog({title:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{yi(a).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>n.hide()))}))},saveZip(){const e=this.$q.dialog({message:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{vi(wi["wtClient"].torrents[0]).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>e.hide()))}))}},created(){console.log("[wt] created"),Z["a"].on("weberror",((...e)=>this.$q.notify(...e))),Z["a"].on("wt-task",(e=>{this.task=Array.isArray(e)?e[0]:e}))}},Si=ki,Ci=(a("5ab7"),Object(v["a"])(Si,_i,pi,!1,null,"71beeddd",null)),xi=Ci.exports;S()(Ci,"components",{QPage:ri["a"],QHeader:si["a"],QToolbar:ce["a"],QIcon:G["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]}),S()(Ci,"directives",{ClosePopup:K["a"]});const $i=[{name:"MainLayout",path:"/",redirect:"/library",component:()=>Promise.all([a.e(0),a.e(4)]).then(a.bind(null,"2cae")),children:[{name:"Library",path:"/library",component:he,children:[{name:"LibraryExplore",path:"explore",component:Ot},{name:"LibraryFollowing",path:"following",component:Rt},{name:"LibraryFavorites",path:"favorite",component:Qt},{name:"LibraryEdit",path:"edit",component:Ha},{name:"LibraryChannel",path:"channel",component:nn},{name:"LibraryCreator",path:"creator",component:dn},{name:"LibraryTakeDown",path:"takedown",component:wn},{name:"LibraryIndex",path:"",component:zn}]},{name:"Downloader",path:"/downloader",component:Object(X["isElectron"])()||Object(ge["a"])()?ui:xi},{name:"Player",path:"/player",component:()=>a.e(10).then(a.bind(null,"d8f8"))},{name:"Credits",path:"/credits",component:()=>a.e(6).then(a.bind(null,"316f"))},{name:"Blockchain",path:"/blockchain",component:()=>a.e(8).then(a.bind(null,"4b4f"))},{name:"AccountSettings",path:"/account/settings",component:()=>Promise.all([a.e(0),a.e(2)]).then(a.bind(null,"6b91"))},{name:"BasicSetting",path:"/basicSetting",component:()=>Promise.all([a.e(0),a.e(5)]).then(a.bind(null,"9ff7"))},{name:"AdvanceSetting",path:"/advanceSetting",component:()=>Promise.all([a.e(0),a.e(3)]).then(a.bind(null,"154e"))},{name:"Development",path:"/development",component:()=>Promise.resolve().then(a.bind(null,"39df"))}]},{name:"Error",path:"*",component:()=>a.e(9).then(a.bind(null,"183d"))}];var Ti=$i;n["a"].use(o["a"]);const zi=o["a"].prototype.push;o["a"].prototype.push=function(e){return zi.call(this,e).catch((e=>e))};let Pi=null;function Ai(){return Pi}t["a"]=function(){const e=new o["a"]({scrollBehavior:()=>({x:0,y:0}),routes:Ti,mode:"hash",base:""});return Pi=e,e}},"61dc":function(e,t,a){"use strict";a("d34c")},6422:function(e,t,a){"use strict";a.d(t,"e",(function(){return i})),a.d(t,"a",(function(){return r})),a.d(t,"g",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return h}));a("a1c1"),a("de6c");var n=a("4fd2");const o=(e,t="0",a=2)=>(t.repeat(a)+e).slice(-a),i=e=>{if("number"!==typeof e)return"-";const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n<60)return`00:${o(n)}:${o(a)}`;const i=n%60,r=(n-i)/60;return r>23?"> 24h":`${o(r)}:${o(i)}:${o(a)}`},r=(e,{byte:t=!0,gb:a=!0,fix:n=2}={})=>{if("number"!==typeof e)return"-";if(e<1e3&&t)return e.toFixed(2)+" Byte";const o=e/1e3;if(isNaN(o))return t?"0 Byte":"0 KB";if(o<1e3)return o.toFixed(n)+" KB";const i=o/1e3;if(i<1e3||!a)return i.toFixed(n)+" MB";const r=i/1e3;return r.toFixed(n)+" GB"},s=e=>"number"!==typeof e?"0%":1===e?"100.00%":e>.9999?"99.99%":(100*e).toFixed(2)+"%",l=e=>{const t={icon:"insert_drive_file",tooltip:"unknown"};if(0===e.length)return t;if(e.length>1)return{icon:"folder",tooltip:"folder"};const a=e[0].match(/\.[^.]+?$/);if(!a)return t;const o=a[0].substring(1);return Object(n["b"])(o)?{icon:"audio_file",tooltip:"audio"}:Object(n["c"])(o)?{icon:"video_file",tooltip:"video"}:["ass","vtt","srt"].includes(o)?{icon:"subtitles",tooltip:"subtitle"}:["jpg","jpeg","png","bmp","gif","webp"].includes(o)?{icon:"image",tooltip:"image"}:["zip","rar","gzip","gz","tar"].includes(o)?{icon:"folder_zip",tooltip:"zip"}:["txt","text"].includes(o)?{icon:"description",tooltip:"text"}:t},c=()=>navigator.userAgent.includes("Windows NT"),d=/(\/private)?\/var\/mobile\/Containers\/Data\/Application\/[a-zA-Z0-9-]+\/Documents\//,u=e=>e.match(d)?e.replace(d,""):e,_=(e,t=[],a=!1)=>{const n=c()||a?"\\":"/",o=e.map((e=>e.split(n))),i={};for(const s of o){let e=i;for(const t of s)e[t]||(e[t]={}),e=e[t]}let r=i,l=null,d="";try{do{const e=Object.keys(r)[0];d=d+e+n,l=r,r=r[e]}while(1===Object.keys(r).length)}catch(m){return null}d=d.split(n).slice(0,-1).join(n);const _={[d]:l[Object.keys(l)[0]]},p=(e,a="")=>{const o=Object.keys(e)[0],i=a?a+n+o:o,r=e[o];if(r&&Object.keys(r).length>0)return{label:u(o),path:u(i),fullPath:i,children:Object.keys(r).map((e=>p({[e]:r[e]},i)))};const l=t.find((e=>e.path===i)),c=u(o),d=c.length>52?c.slice(0,4)+"..."+c.slice(-40):c;return{progress:l?s(l.progress):"-",done:1===l.progress,label:d,fullPath:i,path:i}};return p(_)},p=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),m=e=>[e.getFullYear(),e.getMonth()+1,e.getDate()].map((e=>o(e))).join("-"),h=(e,t,a=navigator.language)=>{if(!e)return"-";const n=new Date(e),o=new Date;return p(n,o)?n.toLocaleTimeString(a):(o.setDate(o.getDate()-1),p(n,o)?t?t("yesterday"):"yesterday":(o.setDate(o.getDate()-1),p(n,o)?t?t("before_yesterday",{empty:m(n)}):"before yesterday":m(n)))}},6432:function(e){e.exports=JSON.parse('{"lib_index":"Rumah","lib_edit":"Menerbitkan","lib_publish":"Menerbitkan","lib_explore":"Mengeksplorasi","lib_following":"Mengikuti","lib_favorite":"Favorit Lokal","lib_local_favorites":"Favorit Lokal","lib_channel":"Saluran","lib_submit":"Kirim","lib_from_network":"Menggunakan database terdesentralisasi dari jaringan","welcome_to_lib":"Selamat datang di ${displayName} Perpustakaan Media","register_or_login":"Daftar/Masuk","lib_recommend":"Menyarankan","lib_recommend_desc":"Selamat datang di ${displayName} Perpustakaan! Perpustakaan ini menggunakan database terdesentralisasi dari jaringan. Untuk mulai menggunakannya, Anda perlu mengikuti beberapa saluran.","follow_any_channel_to_continue":"Ikuti saluran apa pun untuk melanjutkan","follow_channels_and_continue":"Ikuti saluran {0} dan lanjutkan","show_more_for_me":"Tampilkan lebih banyak untuk saya","no_more_recommend":"Tidak ada lagi rekomendasi","key":"Kunci","create_key":"Buat kunci","save_key":"Simpan kunci","save_key_file":"Apakah Anda ingin menyimpan kunci Anda sebagai file?","import_key":"Kunci impor","import":"Impor","invalid_key":"Kunci tidak sesuai","back_to_top":"Kembali ke atas","search_for_channel":"Telusuri ID saluran","search_channel_no_result":"Tidak dapat menemukan saluran dengan ID {0}","please_input_channel_id":"Masukkan ID saluran","welcome_help_text":"Ini adalah perpustakaan media terdesentralisasi. Anda membutuhkan\\n untuk membuat akun untuk database ini. Kami akan\\n menghasilkan kunci pribadi untuk Anda secara otomatis.\\n Jika Anda sudah memiliki kunci, Anda juga dapat mengimpor\\n itu disini.","welcome_key_text":"Setelah Anda masuk, silakan klik tombol [SAVE KEY].\\n di pojok kanan bawah untuk menyimpan kunci pribadi Anda.\\n Jika Anda kehilangan kunci, Anda mungkin tidak dapat masuk lagi.","redirect_to_recommend":"Sepertinya Anda belum mengikuti saluran mana pun. Mengalihkan ke halaman [Jelajahi].","channel":"Saluran","follow":"Mengikuti","unfollow":"Berhenti mengikuti","following":"Mengikuti","share":"Membagikan","unfollow_confirm":"Apakah Anda yakin untuk berhenti mengikuti saluran ini? Semua postingan saluran ini di linimasa Anda akan dihapus.","follow_failed_hint":"Operasi masih tertunda di latar belakang. Jika operasi tidak diterapkan untuk waktu yang lama, harap mulai ulang aplikasi dan coba lagi.","block":"Memblokir","unblock":"Buka blokir","blocked":"Diblokir","block_channel":"Blokir saluran ini","block_channel_confirm":"Blokir saluran akan menghapusnya dari garis waktu Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","block_creator":"Blokir pembuat saluran ini","unblock_creator":"Bebaskan pembuat saluran ini","block_creator_confirm":"Pembuat blok akan menghapus semua saluran yang dibuat oleh pembuat ini dari linimasa Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","share_url_copied":"Bagikan URL disalin ke clipboard Anda","follow_time":"Ikuti waktu","update_time":"Perbarui waktu","search":"Mencari","type":"Jenis","added":"Ditambahkan","click_to_task":"Klik untuk pergi ke tugas","lib_already_added":"Anda telah menambahkan video ini","description":"Keterangan","poster":"Poster","channel_poster":"Poster saluran","preview":"Pratinjau","creator":"Pencipta","creator_detail":"Detail pencipta","loading_creator":"Memuat info kreator","wait_for_creator_loaded":"Harap tunggu info kreator dimuat.","follower":"Pengikut","followers":"Pengikut","follower_list":"Daftar pengikut","user":"Pengguna","channel_title":"Judul saluran","channel_id":"ID saluran","post_title":"Judul postingan","post_id":"ID pos","import_data_from_excel":"Impor data dari excel","set_excel_keys":"Atur kunci excel","excel_import_succeded":"Impor Excel berhasil","excel_import_success_msg":"{0} baris siap untuk ditambahkan, {1} tidak valid dan {2} item duplikat diabaikan","cannot_find_channel":"Tidak dapat menemukan saluran","cannot_find_posts":"Tidak dapat menemukan postingan","add_channel":"Tambahkan saluran","add_post":"Tambahkan postingan","edit_channel":"Edit saluran","channel_setting":"Pengaturan saluran","edit_post":"Sunting pos","edit_posts":"Mengedit posting","channel_detail":"Detail saluran","remove":"Menghapus","remove_channel":"Hapus saluran","remove_channel_confirm":"Yakin ingin menghapus postingan ini? Ini tidak dapat dipulihkan.","remove_post":"Hapus postingan","remove_post_confirm":"Yakin ingin menghapus saluran ini? Ini tidak dapat dipulihkan.","preview_mode":"Mode Pratinjau","preview_mode_desc":"Ini adalah pratinjau saluran Anda. Semua tarif film ditampilkan di sini.","edit_user_profile":"Edit profil pengguna","name":"Nama panggilan","avatar":"Avatar","no_following":"Tidak ada saluran berikut. Klik untuk pergi","no_recommend":"Tidak ada saluran yang direkomendasikan. Klik untuk pergi","first_recomment_msg":"Mungkin perlu beberapa saat jika ini adalah pertama kalinya aplikasi diluncurkan.","invalid_image":"Gambar tidak valid","image_not_reachable":"Url gambar ini tidak dapat dijangkau.","channel_not_found":"Saluran tidak ditemukan","cannot_get_channel_info":"Tidak bisa mendapatkan info saluran. Saluran ini mungkin dihapus oleh pembuatnya dan tidak tersedia lagi.","validate_error":"Validasi kesalahan","validate_user_name_no_space":"Nama pengguna tidak boleh mengandung spasi","validate_url_no_space":"URL tidak boleh mengandung spasi","validate_user_name_length":"Nama pengguna harus memiliki panjang antara {0} dan {1}","validate_user_desc_length":"Deskripsi pengguna tidak boleh lebih dari {0} karakter","validate_user_avatar_url":"Avatar pengguna harus url dengan kurang dari 2048 karakter","validate_channel_title_length":"Judul saluran harus memiliki panjang antara 1 dan 100","validate_channel_desc_length":"Deskripsi saluran harus memiliki panjang antara 10 dan 300","validate_channel_image_url":"Pratinjau saluran harus berupa url dengan kurang dari 2048 karakter","validate_post_title_length":"Judul posting harus memiliki panjang antara 1 dan 100","validate_post_desc_length":"Deskripsi postingan harus memiliki panjang antara 10 dan 300","validate_post_image_url":"Poster harus url dengan kurang dari 2048 karakter","validate_post_url":"URL ${displayName} tidak valid","validate_post_url_length":"${displayName} URL tidak boleh lebih dari 2048 karakter","film_rate":"Tingkat film","set_film_rate":"Tetapkan kecepatan film","select_a_rate_before_enter":"Anda harus memilih kecepatan film sebelum masuk ke perpustakaan media.","library_available_rate":"Tingkat film yang tersedia di perpustakaan","rate_g":"G – Audiens Umum","rate_g_desc":"Semua umur diterima. Tidak ada yang menyinggung perasaan orang tua karena dilihat oleh anak-anak.","rate_pg":"PG – Disarankan Bimbingan Orang Tua","rate_pg_desc":"Beberapa bahan mungkin tidak cocok untuk anak-anak. Orang tua dihimbau untuk memberikan “bimbingan orang tua”. Mungkin berisi beberapa materi yang mungkin tidak disukai orang tua untuk anak kecil mereka.","rate_pg_13":"PG-13 – Orang Tua Sangat Diwaspadai","rate_pg_13_desc":"Beberapa materi mungkin tidak pantas untuk anak di bawah 13 tahun. Orang tua diimbau untuk berhati-hati. Beberapa materi mungkin tidak pantas untuk pra-remaja.","rate_r":"R – Dibatasi","rate_r_desc":"Di bawah 17 tahun membutuhkan pendamping orang tua atau wali dewasa. Berisi beberapa materi dewasa. Orang tua didesak untuk mempelajari lebih lanjut tentang film tersebut sebelum membawa serta anak-anak mereka yang masih kecil.","rate_nc_17":"NC-17 – Khusus Dewasa","rate_nc_17_desc":"Tidak Ada yang Berusia 17 Tahun ke Bawah yang Diakui. Jelas dewasa. Anak-anak tidak diterima.","set_as_private":"Tetapkan sebagai pribadi","hide_in_explore":"Sembunyikan saluran ini di halaman jelajahi","hidden":"Tersembunyi","select_a_rate":"Silakan pilih tarif film","select_from_tasks":"Pilih dari tugas","import_from_magnet":"Impor dari magnet:?...","input_magnet_url":"Masukan magnet:? url","task_title":"Judul tugas","set_title":"Tetapkan judul","add_to_local_favorites":"Tambahkan ke favorit lokal","remove_from_local_favorites":"Hapus dari favorit lokal","removed_favorite":"Favorit dihapus","import_or_export_favorites":"Impor/Ekspor Favorit","export_local_favorites":"Ekspor favorit lokal sebagai cadangan","import_favorites_file":"Impor file favorit","not_a_favorite_file":"File ini bukan file cadangan favorit","connection_status":"Status hubungan","gun_server_list":"Node Cache","custom_nodes":"Node cache khusus","custom_nodes_hint":"Node cache khusus akan diterapkan setelah aplikasi diluncurkan kembali","wait_for_reboot":"Menunggu reboot...({seconds}s)","reboot_now":"Nyalakan ulang","reboot_later":"Mulai ulang nanti","peer_list":"Node Langsung","server":"URL simpul","peer":"Rekan","peer_id":"ID simpul","connection":"Koneksi","data_source":"Sumber data","sync":"Sinkronkan","syncing":"Menyinkronkan","sync_completed":"Sinkronisasi selesai","got_all_post":"Anda sudah mendapatkan semua posting","placeholder_channel_title":"Nama Saluran Anda","placeholder_channel_desc":"Deskripsi tentang saluran ini","placeholder_post_title":"Nama Film (Tahun)","placeholder_post_desc":"Deskripsi tentang film ini","private_channel":"Saluran pribadi","creator_blocked":"Kreator diblokir","go_to_library":"Pergi ke perpustakaan?","go_to_library_channel_msg":"Apakah Anda ingin pergi ke saluran perpustakaan {0}?","magnet_does_not_have_name":"Magnet ini:? url tidak memiliki nama, Anda perlu menambahkan judul posting terlebih dahulu.","no_available_post":"Tidak ada pos yang tersedia","following_channel_no_post":"Semua saluran Anda berikut tidak memiliki pos yang tersedia. Ini mungkin disebabkan oleh kesalahan jaringan. Jika Anda telah mengikuti beberapa saluran, postingan dapat dimuat nanti.","share_to_library":"Bagikan ke perpustakaan","quick_start":"Mulai cepat","quick_start_desc":"Mulailah membuat postingan dengan tugas atau file","select_file":"Pilih file...","select_folder":"Pilih folder...","post_options":"Opsi pos","channel_options":"Opsi saluran","create_new_channel":"Buat saluran baru","use_existed_channel":"Gunakan saluran yang ada","select_existed_channel":"Pilih saluran yang ada","uploaded_by":"{title} diunggah oleh {name}","created_by":"{title} dibuat oleh {name}","creating_new_channel":"Membuat saluran baru...","created_new_channel":"Saluran baru dibuat","creating_new_post":"Membuat postingan baru...","created_new_post":"Posting baru dibuat","create_new_post":"Buat postingan baru","quick_start_timeout":"{0} batas waktu habis. Ini mungkin disebabkan oleh kesalahan jaringan. Coba lagi nanti.","file_too_large":"Berkas terlalu besar","file_too_large_msg":"File ini lebih besar dari 4GB ({size}) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk melanjutkan?","resolving_folder_files":"Menyelesaikan file folder...","folder_too_large":"Folder terlalu besar","folder_too_large_msg":"File dalam folder ini lebih besar dari 4GB ({size} total) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk mengunggah?","creating_new_task":"Membuat tugas baru...","cannot_create_task":"Tidak dapat membuat tugas","cannot_create_task_msg":"Hal ini dapat disebabkan oleh beberapa kesalahan. Jika tugas dibuat dengan benar, Anda dapat memeriksa daftar tugas nanti.","cannot_get_task_name":"Tidak bisa mendapatkan nama tugas. Anda harus memasukkannya terlebih dahulu.","remove_old_task":"Hapus tugas lama","remove_old_task_desc":"Mode web hanya dapat membuat satu tugas sekaligus. Apakah Anda ingin menghapus tugas lama?","subtitle_list":"Daftar subtitle","optional":"opsional","with_subtitle":"Dengan subtitel {language}","maximumSubtitleNum_limit":"Jumlah subtitle telah mencapai maksimum","add_subtitle_url":"Tambahkan tautan unduhan subtitle","cannot_add_subtitle":"Gagal menambahkan subtitel","cannot_add_subtitle_msg":"Bahasa subtitle tidak dipilih atau tautan unduhan tidak valid.","support_subtitle_type":"Hanya subtitle dalam format srt dan vtt yang didukung.","recommend_opensubtitles":"Disarankan untuk menggunakan link atau id download subtitle di www.opensubtitles.org.","take_down":"Menurunkan","serious_violation":"Pelanggaran Berat","copyright_disputes":"Sengketa Hak Cipta","adults_only":"Hanya untuk orang dewasa","takedown_reason":"Alasan penghapusan","takedown_mode":"Modus penghapusan","admins":"Admin","takedown_user":"Hapus kreator ini","takedown_channel":"Hapus saluran ini","takedown_post":"Hapus postingan ini","select_takedown_reason":"Pilih alasan penghapusan","takedown_invalid_reason":"Alasan penghapusan tidak valid","takedown_invalid_user_id":"Id pengguna tidak valid. Id harus menyertakan 87 karakter","takedown_invalid_channel_id":"Id saluran tidak valid. ID harus menyertakan 20 karakter","takedown_invalid_post_id":"ID pos tidak valid. ID harus menyertakan 20 karakter","takedown_management":"Turunkan manajemen","users":"Pengguna","channels":"Saluran","posts":"Posting","you":"Anda","preset":"Prasetel","admin":"Admin","committee":"Komite","about_takedown_mode":"Tentang mode penghapusan:\\nPreset: Dikonfigurasi di repositori github. Semuanya akan dihapus dari perpustakaan.\\nAdmin: Siapa pun yang dipilih oleh admin akan dihapus.\\nKomite: Setidaknya setengah dari suara admin akan dihapus.","cannot_edit_preset":"Anda tidak dapat mengedit baris ini karena merupakan baris preset","cannot_edit_not_vote":"Anda tidak dapat mengedit baris ini karena Anda belum memilihnya","remove_vote":"Hapus suara Anda","post_preload_failed":"Gagal mempramuat pos ini. Tautan unduhan mungkin sudah kedaluwarsa, sehingga postingan ini tidak dapat langsung diputar.","about_cache_node":"Tentang simpul cache","edit_cache_node":"Edit simpul cache","create_cache_node":"Buat simpul cache","about_cache_node_desc":"${displayName} menggunakan server gun sebagai node cache. Anda dapat mengedit node khusus di pengaturan sebelumnya","learn_how_to_deploy_gun":"Pelajari cara menerapkan server senjata Anda sendiri","repeat_add":"Tugas telah ditambahkan, Tolong jangan tambahkan lagi","upload":"Mengunggah","download":"Unduh","delete":"Menghapus","delete_task":"Hapus tugas","delete_confirm_message":"Hapus tugas ini? Ini tidak dapat dibatalkan","also_delete_files":"Hapus juga file","default_delete_files":"Hapus default file yang diunduh setelah menghapus tugas","not_now":"Tidak sekarang","delete_autoupload_confirm":"Tugas ini berisi file yang Anda masukkan ke direktori unggah otomatis. Hapus tugas ini juga akan menghapus file.","delete_anyway":"Tetap hapus","upload_too_many_files":"Unggah terlalu banyak file","ask_if_unlimit_upload_amount":"Direktori upload otomatis berisi terlalu banyak file. Apakah Anda ingin menonaktifkan batasan jumlah unggahan? *Ini dapat menyebabkan masalah kinerja","disable_limitation":"Nonaktifkan batasan","not_length":"Operasi multi file tidak didukung saat ini, Mohon kerjasamanya","download_torrent":"Unduh berkas","upload_torrent":"Unggah data","files":"File","file":"Mengajukan","folder":"Map","start_all":"Mulai semua","pause_all":"Jeda semua","remove_all":"Hapus semua","upload_all":"Unggah semua","clear_history":"Hapus riwayat","pause_all_finish_payments":"Ini akan menyelesaikan semua pembayaran.","accelerating":"Mempercepat","link_task":"Tugas tautan","torrent_task":"Tugas berkas","ok":"OKE","cancel":"Membatalkan","download_directory_position":"Unduh posisi direktori","torrent_file":"berkas tugas","magnetic_link_incorrect":"Format tautan salah","delete_fail":"Hapus gagal","pause":"Berhenti sebentar","paused":"Dijeda","stop_torrent":"Berhenti","seed":"Benih","resume":"Melanjutkan","downloading":"Mengunduh","downloaded":"Diunduh","uploading":"Mengunggah","auto_uploading":"Mengunggah otomatis","uploaded":"Diunggah","pending":"Menunggu tugas lainnya","verifying":"Memverifikasi","waiting_for_verify":"Menunggu verifikasi","seeding":"Penyemaian","completed":"Lengkap","status":"Status","task_name":"Nama tugas","size":"Ukuran","progress":"Kemajuan","sort":"Menyortir","ascending":"Naik","descending":"Menurun","file_loading":"Memuat berkas...","loading":"Memuat","unknown_status":"Tidak dikenal","play_while_downloading":"Bermain...","upload_or_play":"Unggah / Putar","play":"Bermain","ask_if_upload_file":"Unggah data?","ask_if_upload_or_play":"Unggah atau putar file?","torrent_error":"Kesalahan saat menambahkan tugas:","no_peers":"Coba lagi lebih dari {0} kali dan tidak ada peer yang tersedia","torrent_exists":"Tugas sudah ada.","show_origin_torrent":"Dapatkan file atau url tugas asli","show_directory":"Buka direktori torrent ini","task_num":"Tugas","total_upload_speed":"Kecepatan mengunggah","total_download_speed":"Kecepatan unduh","path_missing":"Kesalahan: tidak dapat menemukan jalur torrent","origin_not_found":"Tidak dapat menemukan info tugas asal.","text_copied":"Url magnum disalin ke clipboard Anda","copy_magnet_uri":"Salin magnet:? URI","copy_download_uri":"Salin URI unduhan","copy_share_uri":"Salin bagikan URI","uri_copied":"URI berhasil disalin ke clipboard Anda","uri_copy_failed":"Gagal menyalin uri","more":"Lagi...","toggle_list_mode":"Beralih mode daftar","comment":"komentar","operations":"Operasi","open_directory":"Buka direktori","no_downloading_task":"Tidak ada tugas mengunduh","remove_all_downloading_tasks":"Hapus semua tugas pengunduhan?","remove_all_upload_tasks":"Hapus semua tugas upload?","remove_autoupload_files":"Hapus file unggahan otomatis","remove_all_history":"Hapus semua histori?","remaining":"Tersisa","created_time":"Waktu yang diciptakan","used_time":"Waktu yang digunakan","completed_time":"Selesai waktu","yesterday":"Kemarin","before_yesterday":"{empty}","earlier":"Lebih awal","miss_file":"Beberapa file hilang","delete_miss_file_task":"Ada file fome yang hilang di {0}.","common_peer":"Rekan biasa","ab_peer":"${displayName} sesama","ab_peer_verified":"Terverifikasi ${displayName} peer","ab_peer_available":"${displayName} peer tersedia","alphabiz_accelerating":"${displayName} percepatan","income":"Penghasilan","income_info":"Pendapatan(hari ini/total)","total_income_info":"Penghasilan: {0}(hari ini) / {1}(total)","login_to_see_income":"Login untuk melihat statistik pendapatan","credit_cost":"Biaya kredit","downloaded_by_payment":"Diunduh oleh Pembayaran","file_not_found":"Tidak dapat menemukan file ini di lokal","no_task":"Tidak bertanya","no_matched_task":"Tidak ada tugas yang cocok","space_not_enough":"Ruang disk tidak cukup","need_more_space":"Perlu {0} lebih banyak ruang tetapi disk saat ini memiliki {1} gratis ({2} dicadangkan). Tugas dijeda. Pramuat perpustakaan dinonaktifkan. Anda dapat mengaktifkannya kembali di [Pengaturan - Lanjutan].","seeders":"Seeder","last_update":"Pembaharuan Terakhir","connecting":"Menghubungkan","connected":"Terhubung","request_timed_out":"Waktu permintaan habis","connection_failed":"Koneksi gagal","invalid_download_url":"URL unduhan tidak valid","download_link":"tautan unduhan","empty_files":"Tidak ada file dalam direktori","duplicate_task":"Tugas duplikat","duplicate_tracker":"Pelacak duplikat","this_task_not_ready":"Tugas ini belum siap. Jeda tugas ini akan langsung menghapusnya.","some_task_not_ready":"Beberapa tugas belum siap. Jeda tugas ini akan langsung menghapusnya.","failed_to_delete_files":"Gagal menghapus file","failed_to_delete_files_desc":"Gagal menghapus beberapa file tugas. Anda mungkin perlu menghapusnya secara manual","unknown_error":"Kesalahan tidak diketahui: {0}","more_files_are_not_shown":"({0} lebih banyak file tidak ditampilkan karena alasan kinerja)","no_available_file":"Tidak ada berkas yang tersedia. Harap tunggu tugas siap.","service_worker_error":"Tidak dapat memuat ServiceWorker untuk diputar. Browser Anda mungkin tidak mendukung fitur ini, atau ServiceWorker tidak diaktifkan. Anda mungkin perlu memuat ulang halaman ini dan mencoba lagi.","add_task_first":"Anda perlu menambahkan tugas terlebih dahulu.","player_task_time":"Pemain membutuhkan waktu terlalu lama untuk bersiap bermain. Mungkin ada yang salah dengan tugas itu.","web_mode_hint":"Mode web ${displayName} hanya mendukung rekan WebRTC. Untuk pengalaman terbaik, silakan unduh ${displayName} Aplikasi Desktop.","web_mode_task_hint":"Klik tombol di bawah untuk menambahkan tugas. Anda hanya dapat menambahkan satu tugas pada satu waktu.","save_to_local":"Simpan ke lokal","save_as_zip":"Simpan sebagai ZIP","creating_save_file":"Membuat file penyimpanan...","upload_as_one_directory":"Unggah sebagai satu direktori","upload_as_single_files":"Unggah sebagai file tunggal","web_mode_upload_single":"Anda hanya dapat mengunggah satu file dalam mode web","download_success":"Unduh dengan sukses","download_fail":"Unduhan gagal","wait_for_downloaded_to_share":"Harap tunggu tugas diunduh sebelum berbagi.","download_with_cellular":"Unduh tugas menggunakan seluler","download_with_cellular_desc":"Anda menggunakan jaringan seluler. Mengunduh tugas dengan seluler mungkin memerlukan biaya tambahan dari operator Anda.","download_with_cellular_confirm":"Masih mengunduh dengan seluler","language":"Bahasa","appearance":"Penampilan","darkModeSystem":"Sistem","darkModeLight":"Lampu","darkModeDark":"Gelap","basic_setting":"Dasar","hideMenu":"Sembunyikan Menu Aplikasi (Hanya Windows & Linux)","autoHide":"Sembunyikan Jendela Otomatis","autoStart":"Buka saat masuk","restore":"Pertahankan ukuran dan posisi jendela saat keluar","autoStartUnfinished":"Secara otomatis melanjutkan semua tugas yang belum selesai","default_download_path":"Jalur Default","download_directory":"Unduh Direktori","upload_directory":"Unggah Direktori","enable_auto_upload":"Aktifkan unggahan otomatis","unlimit_upload_amount":"Batasi jumlah unggahan","unlimit_upload_warning":"Izinkan mengunggah file dalam jumlah besar. Hal ini dapat menyebabkan masalah kinerja","start":"Rintisan","transport_setting":"Penularan","upload_limit":"batas unggahan","download_limit":"batas unduhan","payed_user_share_rate":"Tingkat berbagi pengguna berbayar","unlimited":"Tak terbatas","limit_input_error":"Jumlah batas harus positif","BT_setting":"Pengaturan Tugas","saveLinkSeed":"Simpan tautan sebagai file tugas","autoDownload":"Unduh tautan dan konten secara otomatis","continuousSeeding":"Terus penyemaian sampai menghentikannya secara manual","seedSharingRate":"Rasio Benih","seedTime":"Waktu Benih (menit)","task_manage":"Manajemen tugas","maximumDownloadNum":"Tugas aktif maksimum","maximumConnectionsNum":"Koneksi maksimum per server","range_error":"Kisaran harus antara {0} dan {1}","random":"acak","breakpointContinuation":"Melanjutkan","automaticSkip":"Tampilkan pengunduhan secara otomatis setelah menambahkan tugas","afterNotification":"Pemberitahuan setelah pengunduhan selesai","deleteConfirm":"Tidak diperlukan konfirmasi sebelum menghapus tugas","submit":"Simpan & Terapkan","discard":"Membuang","reset":"Mengatur ulang","reset_all_settings":"Atur ulang semua pengaturan?","preferences_resetted":"Preferensi disetel ulang","traditional_chinese":"Cina tradisional","japanese":"Jepang","english":"Bahasa inggris","chinese":"Cina disederhanakan","advancedSettings":"Canggih","autoUpdate":"Pembaruan Otomatis","autoCheckUpdate":"Periksa pembaruan secara otomatis","proxy":"Proksi","useProxyService":"Aktifkan Proksi","trackerService":"Server Pelacak","recommendUse":"Direkomendasikan","autoUpdateTrackerServiceList":"Perbarui daftar pelacak setiap hari secara otomatis","manualUpdateTracker":"Pembaruan manual","manualUpdateSuccess":"Berhasil memperbarui server pelacak","manualUpdateFail":"Gagal memperbarui dari:","listenPort":"Mendengarkan Pelabuhan","BTlistenPort":"Pelabuhan Transmisi Data","DHTlistenPort":"Port Hash Terdistribusi","protocols":"Protokol yang Kompatibel","setDefaultClientForFollowingProtocols":"Tetapkan sebagai klien default untuk protokol berikut","magnetUrl":"Magnet","video_file":"Berkas video","audio_file":"berkas audio","security":"Keamanan","impersonateUserAgent":"Mock User-Agen","RPCauthorizationkey":"Rahasia RPC","viewDocument":"Lihat Manual Rahasia RPC","developer":"Pengembang","applicationLogPath":"Jalur log aplikasi","downloadSessionPath":"Unduh jalur sesi","resetDownloadSessionRecord":"Setel ulang sesi unduhan","restoreInitialSettings":"Atur Ulang Pabrik","preferences_set_successfully":"Simpan preferensi berhasil!","preferences_set_fail":"Simpan preferensi gagal!","change_not_save":"Perubahan tidak disimpan","discard_all_changes":"Buang semua perubahan dan tinggalkan?","stay_in_page":"Tetap di halaman","disk_usage":"Penggunaan disk","pause_if_less_space":"Jeda dan beri tahu jika ruang kurang dari (MB)","default_video_player":"Pemutar video bawaan","video_cache_time":"Streaming tembolok putar","minutes":"menit","system_default":"Default Sistem","media_player":"Pemutar Media","library_film_rate":"Tingkat film yang tersedia","library_show_explore":"Tampilkan halaman [Jelajahi].","library_setting":"Pengaturan perpustakaan","library_sync_setting":"Pengaturan sinkronisasi perpustakaan","keychain_sync_status":"Status sinkronisasi rantai kunci","sync_with_aws":"Sinkronkan Rantai Kunci dengan Layanan Web Amazon","backup_to_local":"Cadangkan ke file lokal","enable_sync_with_aws":"Aktifkan sinkronisasi dengan AWS","disable_sync_with_aws":"Nonaktifkan sinkronisasi dengan AWS","disable_sync_with_aws_desc":"Ini akan menghapus kunci yang disimpan di server. Harap pastikan Anda telah mengekspor kunci Anda.","input_independent_password":"Masukkan kata sandi independen","change_independent_password":"Ubah kata sandi independen","password_error":"Password error","password_invalid":"Kata sandi tidak valid","key_existed":"Kunci ada","key_not_found":"Kunci tidak ditemukan","library_recommend":"Perpustakaan merekomendasikan","show_all_channels":"Tampilkan semua saluran di halaman rekomendasi perpustakaan","not_logged_in":"Belum masuk","login_to_continue":"Masuk untuk melanjutkan","mnemonic_code":"Kode mnemonik","wordlist":"Daftar kata","restore_code":"Pulihkan dari kode","generate_code":"Hasilkan kode","export_mnemonic_code":"Ekspor kode mnemonik","import_mnemonic_code":"Impor kode mnemonik","print":"Mencetak","save_as_txt":"Simpan sebagai txt","save_as_pdf":"Simpan sebagai pdf","from_file":"Dari file","not_valid_mnemonic_code":"Ini bukan kode mnemonik yang valid","cannot_parse_code_as_key":"Tidak dapat mengurai kode mnemonik ini sebagai kunci perpustakaan","import_key_hint":"Apakah Anda yakin akan mengimpor kunci ini? Ini akan memulihkan kunci lama Anda di perpustakaan.","import_key_confirm":"Ya, impor itu.","library_preload":"Pramuat tugas dari perpustakaan","show_preload":"Tampilkan tugas pramuat","set_download":"Tetapkan direktori unduhan","set_download_desc":"Untuk versi macOS App Store, direktori unduhan default ada di kotak pasir Aplikasi, dan akan dihapus setelah aplikasi dihapus. Jika Anda ingin menyimpan file unduhan, Anda harus memilih direktori unduhan yang berbeda secara manual.","home":"Rumah","home_caption":"Unduh/Unggah dan File Media","library":"Perpustakaan","library_caption":"Jelajahi sumber daya media","player":"Pemain","player_caption":"Pemutar Media","credits":"Kredit","credits_caption":"Periksa Saldo Akun","account":"Akun","account_caption":"Masuk/Daftar/Manajemen","settings":"Pengaturan","settings_caption":"Pengaturan untuk Aplikasi, Pemain, Akun","development":"Perkembangan","development_caption":"Mode Pengembang untuk Penggunaan Internal","basic":"Dasar","basic_caption":"Pengaturan dasar","advanced":"Canggih","advanced_caption":"Pengaturan lanjutan","blockchain":"Dompet","blockchain_caption":"${displayName} Dompet Terdesentralisasi","internal_notice":"Pemberitahuan Rilis Internal","release_notes":"Catatan rilis","terms_and_conditions":"syarat dan Ketentuan","license_and_listen_notices":"Lisensi dan Mendengarkan Pemberitahuan Sumber Terbuka","close":"Menutup","success":"Kesuksesan","fail":"Gagal","account_email_invalid_address":"alamat email salah","account_email_invalid_domain":"Domain email tidak valid","account_email_unknown_status":"Status pengiriman email tidak diketahui","account_email_unavailable_address":"Alamat email tidak tersedia","account_email_suppressed_address":"Alamat email yang ditekan","account_loading":"Memuat...","account_is_required":"Dibutuhkan","account_sign_in_your_account":"Masuk","account_username":"Nama belakang","account_username_email_phone":"Nomor telepon atau email","account_password":"Kata sandi","account_new_password":"Kata sandi baru","account_re_enter_password":"Masukkan Kembali password","account_password_not_equal":"Dua kata sandi tidak sama","account_new_password_same":"Passwordnya sama dengan password aslinya","account_forgot_your_password":"lupa kata sandi Anda?","account_reset_password":"Atur ulang kata sandi","account_sign_in":"Masuk","account_signed_in":"Masuk","account_sign_up":"Mendaftar","account_find_your_account":"Temukan akun Anda","account_enter_your_username":"Masukkan nomor telepon atau email Anda","account_search":"Mencari","account_email_sent_tip":"Email dengan kode verifikasi telah dikirim ke email Anda:","account_phone_sent_tip":"SMS dengan kode verifikasi telah dikirim ke ponsel Anda:","account_email_phone_sent_tip":"Email dan SMS dengan kode verifikasi telah dikirimkan ke email dan ponsel Anda masing-masing:","account_software_token_tip":"MFA diaktifkan untuk akun Anda. Untuk menyelesaikan proses masuk, aktifkan atau lihat perangkat Anda dan ketik TOTP","account_reset_your_password":"Mereset password Anda","account_verification_code":"Kode verifikasi","account_resend_code":"Kirim ulang kode","account_code_has_been_resent":"Kode verifikasi telah dikirim ulang","account_password_has_been_reset":"Kata sandi telah diatur ulang","account_submit":"Kirim","account_sign_up_your_account":"Daftarkan akun Anda","account_fill_required_fields":"Isi bidang yang wajib diisi di bawah ini.","account_fill_optional_fields":"Isi bidang opsional di bawah ini.","account_email":"Surel","account_invitation":"Undangan","account_invitation_code":"Kode undangan","account_i_accept":"saya menerima","account_license_terms":"lisensi dan persyaratan","account_next":"Berikutnya","account_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu.","account_verify_fill_optional_fields":"Verifikasi dan isi kolom opsional.","account_nickname":"Nama panggilan","account_gender":"Jenis kelamin","account_male":"Pria","account_female":"Perempuan","account_not_say":"Tidak mengatakan","account_birthday":"Hari ulang tahun","account_phone_number":"Nomor telepon","account_locale":"Lokal","account_tip_verified":"Terverifikasi, Masuk...","account_verified":"diverifikasi","account_unverified":"tidak diverifikasi","account_signed_up":"Mendaftar","account_verify_your_identity":"Verifikasi identitas Anda","account_finish":"Menyelesaikan","account_signed_out":"Keluar","account_change_password":"Ganti kata sandi","account_change_email":"Ganti e-mail","account_change_phone_number":"Ganti nomor telepon","account_sign_out":"Keluar","account_current_password":"Kata sandi saat ini","account_re_enter_new_password":"Masukkan kembali kata sandi baru","account_personal_information":"Informasi","account_edit":"sunting","account_reset":"mengatur ulang","account_greeting":"Halo,","account_cancel":"Membatalkan","account_change":"mengubah","account_not_set":"tidak diatur","account_setting":"pengaturan","account_copy_code":"salin kodenya","account_account_setting":"Akun","account_task_page":"Tugas kredit","account_setting_caption":"Ubah Kata Sandi / Edit Informasi","account_security":"Keamanan","account_want_to_join":"Ingin bergabung?","account_sign_in_now":"Masuk","account_changed":"Berubah","account_clipboard_with_invitation_code":"Kode undangan disalin","account_clipboard_with_code":"Kode disalin","account_invitation_code_dialog_tip":"Anda akan mengirimi teman Anda email atau pesan teks dengan kode undangan:","account_available":"tersedia","account_invited":"diundang","account_used":"digunakan","account_invitation_code_sent":"Kode undangan telah dikirim","account_invitation_channel_required":"Isi minimal satu saluran undangan","account_no_verification_code":"Tidak dapat menerima kode verifikasi?","account_no_phone_number":"Tidak ada nomor telepon?","account_sign_up_by_email":"Daftar melalui email","account_no_email":"Tidak ada email?","account_sign_up_by_phone_number":"Daftar dengan nomor telepon","account_no_totp":"Tidak ada TOTP?","account_tip_no_totp":"Jika tidak ada TOTP, silahkan setup TOTP terlebih dahulu","account_setup_totp":"Siapkan TOTP","account_contact_information":"Kontak informasi","account_delete_account":"Hapus akun","account_deleted":"Dihapus","account_can_not_mfa":"MFA bermasalah?","account_set_mfa_type":"Konfigurasi MFA","account_disable_mfa":"Nonaktifkan MFA","account_disabled_mfa":"MFA yang dinonaktifkan","account_sms_mfa":"SMS MFA","account_totp_mfa":"MFA TOTP","account_totp":"TOTP","account_not_recommend":"Tidak merekomendasikan","account_oauth_sign_in_with":"Masuk dengan {provider}","account_sign_in_failed":"Gagal masuk","account_tip_oath_sign_up":"Email terkait dengan akun {provider} saat ini: {email} belum membuat akun","account_tip_confirm_delete_account":"Masukkan kata sandi akun saat ini untuk mengonfirmasi bahwa Anda ingin menghapus akun saat ini.(Akun yang dihapus tidak dapat dipulihkan)","account_tip_config_mfa":"Anda dapat memilih untuk menggunakan SMS atau sandi satu kali berbasis waktu (TOTP) sebagai autentikasi sekunder","account_error_can_not_enable_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan MFA","account_tip_can_not_enable_sms_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan SMS MFA","account_tip_can_not_enable_totp_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan TOTP MFA","account_tip_setup_totp":"Gunakan aplikasi seperti Authenticator untuk memindai kode QR di bawah atau menyalin kode secara manual untuk menambahkan token keamanan","account_tip_verify_totp":"Verifikasi TOTP Anda","account_link_your_social_account":"Ikat akun sosial Anda","account_unlink_your_social_account":"Lepaskan akun sosial","account_tip_confirm_link":"Yakin ingin menautkan akun saat ini ke akun {provider} Anda?","account_tip_confirm_unlink":"Apakah Anda yakin akan membatalkan akun terikat {provider} Anda?","account_tip_linking":"mengikat...","account_tip_unlinking":"Tidak mengikat...","account_linked":"Melompat","account_unlinked":"Tidak terikat","account_error_can_not_link_to_the_linked_account":"Akun sosial saat ini terikat ke akun lain","account_error_can_not_link_to_the_mismatched_email":"Akun saat ini dan alamat email akun sosial tidak konsisten","account_error_can_not_link_before_email_verified":"Akun sosial tidak dapat ditautkan karena akun saat ini tidak terikat ke email yang diverifikasi","account_tip_confirm_verify_email_phone":"Apakah akan mengirim kode verifikasi ke email dan nomor telepon akun saat ini untuk memverifikasi identitas Anda?","account_tip_confirm_verify_phone":"Apakah akan mengirim kode verifikasi ke nomor telepon saat ini untuk memverifikasi identitas Anda?","account_error_1_message_60_seconds":"Hanya satu SMS atau email yang dapat dikirim setiap 60 detik, tunggu lagi {delta} detik","account_error_10_messages_per_day":"Setiap ponsel atau email hanya dapat mengirim 10 pesan dalam waktu 24 jam","account_error_network":"Ada masalah dengan jaringan, coba lagi nanti","Network Error":"Ada masalah dengan jaringan, coba lagi nanti","account_error_user_not_exist":"pengguna tidak ada","account_error_incorrect_username_or_password":"Username atau kata sandi salah","account_error_incorrect_original_password":"Kata sandi asli salah","account_error_incorrect_password":"kata kunci Salah","account_error_username_not_found":"Nama pengguna tidak ditemukan","account_error_can_not_reset_for_no_verified":"Tidak dapat mengatur ulang kata sandi untuk akun yang belum diverifikasi","account_error_invalid_verification_code":"Kode verifikasi salah, harap coba lagi","account_error_expired_verification_code":"Kode verifikasi kedaluwarsa, harap coba lagi","account_error_password_not_long_enough":"Kata sandi tidak cukup panjang","account_error_attempt_limit_exceeded":"Batas percobaan terlampaui, silakan coba setelah beberapa saat.","account_error_password_attempts_exceeded":"Upaya sandi terlampaui.","account_error_invalid_phone_number_format":"Format nomor telepon tidak valid","account_error_no_cell_phone_prefix":"Silakan pilih awalan untuk nomor telepon","account_error_username_already_exists":"nama pengguna sudah ada","account_error_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu","account_error_inactive_code":"Kode undangan bukan kode yang diaktifkan","account_error_non_existent_code":"Kode undangan tidak ada","account_error_unexpected":"Kesalahan tak terduga","account_error_can_not_change_email_before_phone_bound":"Email tidak dapat diubah sebelum nomor telepon terikat","account_error_can_not_change_email_before_unbound_social_account":"Email tidak dapat diubah sebelum melepaskan ikatan akun sosial","account_error_can_not_change_phone_before_email_bound":"Nomor telepon tidak dapat diubah sebelum email diikat","account_error_can_not_change_email_phone_with_mfa_enabled":"Tidak dapat mengubah email atau nomor ponsel sebelum menonaktifkan MFA","account_error_not_supported_yet":"Tidak didukung saat ini","account_error_same_email":"Alamat email baru tidak boleh sama dengan alamat email asli","account_error_same_phone":"Nomor telepon baru tidak boleh sama dengan nomor telepon asli","account_error_email_not_exists":"Alamat email tidak ada","account_error_email_already_exists":"Akun dengan email yang diberikan sudah ada.","account_error_phone_already_exists":"Akun dengan nomor telepon yang diberikan sudah ada.","account_error_mfa_token_mismatch":"Ketidakcocokan Kode Token Perangkat Lunak","account_error_recaptcha_not_loaded":"Ada masalah dengan jaringan. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_recaptcha_validation_failed":"Validasi ReCAPTCHA gagal. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_sign_in_in_progress":"Upaya masuk tertunda sedang berlangsung","account_field_range":"Batasi input {0}-{1} karakter","account_field_only_alphanumeric":"Hanya mendukung alfanumerik","account_field_only_alphanumeric_and_symbol":"Hanya mendukung alfanumerik dan simbol","account_field_only_chinese_alphanumeric_space_underline":"Hanya mendukung alfanumerik, spasi, garis bawah","account_field_prefix_without_number_space":"Karakter pertama tidak boleh angka atau spasi","account_field_suffix_without_space":"Tidak boleh diakhiri dengan spasi","account_field_without_repeat_space":"Tidak dapat menggunakan beberapa spasi dalam satu baris","account_field_can_not_only_alphanumeric":"Anda tidak bisa hanya menggunakan huruf atau angka","account_field_must_have_number_characters":"Harus memiliki karakter angka","account_field_verification_code":"Kode verifikasi harus enam digit","account_field_invitation_code":"Kode undangan harus alfanumerik","account_field_phone_number":"Format nomor telepon tidak valid","account_invalid_email_format":"format email salah","account_sign_out_confirm":"Apakah Anda yakin untuk keluar? Ini akan menghentikan semua tugas.","account_sign_out_anyway":"Tetap keluar","account_signing_out":"Keluar...","account_request_save_settings":"Setelan tidak disimpan. Anda perlu menyimpan perubahan sebelum keluar.","pay":"Membayar","pay_with_credit":"Bayar untuk mempercepat unduhan. Membutuhkan sekitar {0} kredit","pay_with_credit_payed":"Mempercepat. Masih membutuhkan sekitar {0} kredit","create_payment":"Buat Pembayaran","pay_target":"Target","pay_for_torrent":"Bayar {0}","your_subid":"SubId Anda","your_credits":"kredit Anda","pay_point_for_data":"Bayar {0} poin untuk {1} data","auto_renew":"Aktifkan perpanjangan otomatis","transaction_details":"Detil transaksi","transaction_id":"Pengenal","transaction_payer":"Pembayar","transaction_payee":"Penerima pembayaran","transaction_category":"Kategori","transaction_changed_amount":"Jumlah yang Diubah","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Waktu penciptaan","receipt_code":"Kode Penerimaan","transfer_amount":"Jumlah transfer","code_the_receipt_code":"Salin kode tanda terima di bawah ini ke pembayar","fill_the_receipt_code":"Transfer dengan mengisi kode pembayaran yang diberikan oleh penerima pembayaran","expense":"Pengeluaran","copied":"Disalin","transfer":"Transfer","receive":"Menerima","copy":"Menyalin","withdraw_fund":"Tarik Dana","category_paydata_payer":"Biaya data","category_paydata_payee":"Pendapatan data","category_transfer":"Transfer","category_bonus":"Bonus","category_recharge":"Isi ulang","status_pending":"tertunda","status_completed":"lengkap","status_finish":"menyelesaikan","status_failed":"gagal","tip_invalid_receiver":"Kode penerima tidak valid","tip_invalid_amount":"Jumlah kredit harus mengambang dalam kisaran 0-1000 (Presisi minimum adalah 0,001)","credit_get_more":"Dapatkan lebih banyak kredit","credit_no_data":"Tidak ada data yang tersedia","credit_loading":"Memuat...","credit_not_enough_amount":"Kredit tidak cukup","credit_amount_not_enough":"Kredit tidak cukup","credit_payee_not_exist":"Penerima pembayaran tidak ada","credit_invalid_amount":"Jumlah kredit tidak valid","credit_can_not_transfer_to_yourself":"Tidak dapat mentransfer ke diri sendiri","credit_latest":"Terbaru","credit_error_network":"Ada masalah dengan jaringan, coba lagi nanti","add_subtitles":"Tambahkan Subtitle","open_file":"Membuka file...","advanced_options":"Opsi lanjutan","title":"Judul","location":"lokasi","subtitle_file":"file subtitle","unsupported_subtitle_type":"Jenis file {0} bukan jenis teks film yang didukung","not_default_player":"Pemutar video default tidak disetel","this_is_an_audio_file":"Ini adalah file audio","the_added_subtitle_already_exists":"Subtitel yang ditambahkan sudah ada","stop_stream_player":"Media streaming dihentikan karena tugas dijeda atau dihapus","stop_player":"Pemutar dihentikan karena file telah dihapus","playing_timeout_hint":"Waktu tunggu habis. Silakan periksa tugas","autoplay_hint":"Autoplay mungkin diblokir oleh browser Anda. Jika pemain tidak bermain, coba klik layar untuk melanjutkan","remove_playing_confirm":"{0} masih diputar, hapus akan menghentikan pemutar. Apakah Anda yakin untuk menghapusnya?","unsupported_in_browser":"Belum didukung dalam mode browser","client":"Klien","warning":"Peringatan","enable":"Memungkinkan","disable":"Cacat","auto":"Mobil","encrypt_connection":"Mengenkripsi koneksi","encrypted_connection":"Koneksi terenkripsi","non_encrypted_connection":"Koneksi tidak terenkripsi","connected_wires_not_disconnect":"Kabel yang terhubung tidak akan terputus","audio":"audio","video":"video","image":"gambar","subtitle":"subtitle","zip":"ritsleting","text":"teks","unknown":"tidak dikenal","add":"Menambahkan","undo":"Membuka","backup":"Cadangan","not_default_app":"${displayName} bukan aplikasi default Anda untuk torrent dan media, apakah Anda ingin menyetelnya sebagai default?","dont_show_again":"Jangan tampilkan lagi","go_to_settings":"Pergi ke pengaturan","about_alphabiz":"Tentang ${displayName}","last_check_at":"Cek terakhir di","update_channel":"Perbarui saluran","check_for_update":"Memeriksa pembaruan","checking_for_update":"Memeriksa pembaruan...","no_update_available":"Tidak ada pembaruan yang tersedia","update_available":"Pembaruan tersedia","update_now":"Memperbarui sekarang","update_later":"Perbarui nanti","click_to_update":"Klik tombol PERBARUI SEKARANG untuk mengunduh dan memperbarui","update_failed":"Pembaharuan gagal","update_failed_message":"Terjadi kesalahan saat memperbarui:","check_shasum_failed":"Gagal memeriksa integritas penginstal","downloading_update":"Mengunduh pembaruan...","ready_to_update":"Siap memperbarui","restart_to_update":"Pembaruan diunduh. ${displayName} akan keluar untuk memperbarui beberapa saat.","already_latest":"Versi saat ini({0}) sudah terbaru","update_timeout":"Perbarui batas waktu","no_available_release":"Tidak ada rilis yang tersedia","no_available_installer":"Tidak ada pemasang yang tersedia","feedback":"Masukan","select_a_type":"Pilih jenis","category":"Kategori","select_a_category":"Pilih Kategori","require_title":"Judul diperlukan","describe_your_problem":"Jelaskan masalah Anda","report_a_bug":"Laporkan bug","request_a_new_feature":"Minta fitur baru","download_or_upload":"Unduh/Unggah","others":"Yang lain","submit_with_system_info":"Kirim dengan info sistem","submit_feedback":"Berikan umpan balik","tweet_us":"Tweet kami","tweet_too_long":"Tweet terlalu panjang","delete_characters":"Hapus setidaknya {0} karakter","rest_characters":"Anda dapat memasukkan {0} lebih banyak karakter","update_alphabiz":"Perbarui ${displayName}","current_version":"Versi sekarang","cancel_update":"Batalkan pembaruan","slow_download_speed":"Unduh terlalu lambat","slow_download_speed_caption":"Pengunduhan penginstal terlalu lambat sekarang. Periksa status jaringan","update_canceled":"Pembaruan dibatalkan","current_version_release_time":"Waktu rilis versi saat ini","expired_app":"${displayName} Kedaluwarsa","version_out_of_date":"Versi kedaluwarsa","have_to_update":"Versi ${displayName} sudah usang. Beberapa protokol atau API tidak digunakan lagi. Anda harus memperbarui ${displayName} sebelum melanjutkan.","exit_alphabiz":"Keluar ${displayName}","exit_and_update":"Keluar dan terapkan pembaruan","new_version_hint":"Versi baru tersedia","no_new_version":"Tidak ada versi baru yang tersedia","current_is_latest":"Versi saat ini sudah terbaru","click_to_check_update":"Klik tombol [PERIKSA PEMBARUAN] untuk memeriksa pembaruan","download_latest_version_from_website":"Silakan kunjungi situs web resmi untuk mengunduh versi terbaru","to_the_website":"Ke situs web","network_diagnotic":"Diagnostik Jaringan","diagnotic":"Diagnostik","click_to_check":"Klik untuk memeriksa","click_to_check_again":"Klik untuk memeriksa lagi","checking":"Memeriksa","online":"On line","offline":"Luring","dns_look_up":"pencarian DNS","error":"Kesalahan","aws_service":"Layanan AWS","network_pings":"Jaringan Ping","not_found":"Tidak ditemukan","packet_loss":"Kehilangan paket","official_site":"Situs resmi","download_test":"Unduh Tes","test_task":"Uji Tugas {0}","download_failed":"Unduhan gagal","second_spend":"{0} pembelanjaan","open_default_player_failed":"Gagal membuka pemutar default","copied_to_clipboard":"Disalin ke papan klip","go_to":"Pergi ke","region_not_available":"Wilayah tidak tersedia","region_not_available_message":"Maaf! Wilayah Anda tidak tersedia untuk menggunakan aplikasi ini. Aplikasi ini akan berhenti setelah {0} detik","confirm":"Mengonfirmasi","no_available_result":"Tidak ada hasil yang tersedia","invalid_password_format":"Format kata sandi tidak valid","invalid_password_format_same":"Passwordnya sama dengan password aslinya","error_password":"Password error","keychain_setting":"Gantungan kunci","setting_description":"Penyimpanan cloud: Menyimpan data kunci ke cloud.\\nUbah kata sandi: Mengubah kata sandi untuk kunci perpustakaan media.\\nMnemonik: metode alternatif untuk membuat dan memulihkan kunci.\\nImpor Kunci Lokal: Impor kunci yang disimpan secara lokal ke perpustakaan media.\\nKunci Ekspor: Menyimpan data pustaka media saat ini ke lokal atau cloud.\\nKunci cadangan ke cloud: Perbarui data perpustakaan media saat ini ke cloud untuk cadangan.","refresh_status":"Memperbaharui status","confirm_import_key":"Konfirmasi kunci impor","confirm_update_cloud_key":"Anda sudah memiliki kunci di cloud. Memperbarui kunci akan menimpa kunci asli. Apakah Anda yakin ingin memperbarui kunci yang disimpan di awan","export_key_with_cloud":"Masukkan kata sandi independen yang Anda atur untuk mengekspor kunci perpustakaan yang disimpan di cloud, dan kunci file kunci dengan kata sandi buka kunci","store_cloud_key_prompt_password":"Masukkan kata sandi independen untuk menyimpan kunci perpustakaan di cloud","update_cloud_key_prompt_password":"Tetapkan kata sandi independen untuk mengenkripsi kunci perpustakaan, lalu perbarui ke cloud","enable_cloud_storage_prompt_password":"Tetapkan kata sandi untuk kunci yang disimpan di cloud, di mana Anda dapat mengambil kunci dari cloud","input_unlock_password":"Tetapkan kata sandi buka kunci","export_local_prompt_password":"Silakan atur kata sandi buka kunci untuk mengenkripsi file kunci Anda. Kami tidak akan menyimpan kata sandi ini untuk Anda, jadi jika Anda kehilangan kata sandi, Anda tidak akan dapat membuka kunci perpustakaan Anda","require_unlock_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","require_independent_password":"Masukkan kata sandi independen untuk menyimpan kunci di cloud","import_local_prompt_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","select_encrypt_mode":"Pilih mode enkripsi","update_cloud_key":"Perbarui kunci yang disimpan di cloud","backup_to_cloud":"Cadangkan kunci perpustakaan ke cloud","save_local":"Simpan kunci perpustakaan sebagai file terenkripsi lokal","create_new_key":"Buat kunci pustaka baru","creating_lib_key":"Membuat kunci perpustakaan...","loading_lib_key":"Memuat kunci pustaka...","failed_to_create_lib_key":"Gagal membuat kunci perpustakaan","failed_to_load_lib_key":"Gagal memuat kunci perpustakaan","import_local_key":"Impor kunci secara lokal","import_lib_key_from_local":"Impor kunci perpustakaan secara lokal","import_from_cloud":"Impor kunci perpustakaan dari cloud","create_or_import_key":"Buat atau impor kunci perpustakaan","create_or_import_key_desc":"Kunci perpustakaan adalah kunci independen yang digunakan untuk mengambil dan menerbitkan konten dengan basis data terdesentralisasi.","store_your_lib_key":"Simpan kunci perpustakaan Anda","export_cloud_key":"Ekspor Kunci dari Cloud","export_current_key":"Ekspor Kunci Saat Ini","change_password":"Ganti kata sandi","enable_cloud_storage":"Aktifkan penyimpanan awan","disable_cloud_storage":"Nonaktifkan penyimpanan awan","disable_cloud_storage_desc":"Nonaktifkan penyimpanan cloud akan menghapus kunci yang disimpan di cloud, harap pastikan kunci disimpan secara lokal","sync_at":"Sinkronkan di: {time}","cloud_storage_enabled":"Sinkronkan Rantai Kunci dengan {storage}","cloud_storage_disabled":"Penyimpanan cloud dinonaktifkan","saved_locally":"Disimpan secara lokal","export_key":"Ekspor file kunci","cloud_independent_password":"Kata sandi independen cloud","key_file_unlock_password":"Kata sandi buka kunci file kunci","re_enter_unlock_password":"Masukkan kembali kata sandi buka kunci","independent_password_not_enabled":"Kata sandi saat ini adalah kata sandi akun Alphabiz (tidak ada kata sandi independen yang ditetapkan)","use_cognito_hash":"Gunakan kata sandi akun Alphabiz","use_independent_password":"Gunakan kata sandi independen","keychain_lib":"kunci pustaka","loading_keychain_state":"Memuat gantungan kunci...","backing_up":"Mencadangkan...","backup_current_key":"Cadangkan kunci saat ini ke Cloud","cloud_lib_key_not_existed":"kunci perpustakaan tidak ada di Cloud","open_keychain_file":"Buka File Rantai Kunci","confirm_open_abk":"Apakah Anda ingin membuka file ABK","use_the_key":"Gunakan kuncinya","backup_the_key":"Cadangkan kunci ke cloud","keychain_data_does_not_exist":"Data gantungan kunci tidak ada","timeout of 0ms exceeded":"Ada masalah dengan jaringan, coba lagi nanti","XhrError":"Ada masalah dengan jaringan, coba lagi nanti","payer credit amount is not enough":"Kredit tidak cukup","payee does not exist":"Penerima pembayaran tidak ada","block_list_manage":"Daftar blokir mengelola","blocked_users":"Pengguna diblokir","blocked_channels":"Saluran yang diblokir","unblock_user":"Buka blokir pengguna","unblock_channel":"Buka blokir saluran","no_blocked_user":"Tidak ada pengguna yang diblokir","no_blocked_channel":"Tidak ada saluran yang diblokir","field_required":"{0} diperlukan","setting":"Pengaturan","unknown_media":"Media Tidak Dikenal","settings_button_visible":"Tombol Terlihat","settings_setting":"Pengaturan","settings_playback_rate":"Tingkat Pemutaran","settings_subtitle":"Subtitle","settings_pip":"PiP","settings_fullscreen":"Layar penuh","settings_subtitle_options":"Opsi Subtitel","settings_normal":"Normal","settings_italic":"Miring","settings_lighter":"Lebih ringan","settings_bolder":"Lebih berani","settings_small":"Kecil","settings_large":"Besar","about":"Tentang","services":"Jasa","hide":"Bersembunyi","hide_others":"Sembunyikan Lainnya","show_all":"Tunjukkan semua","quit":"Berhenti","edit":"Sunting","redo":"Mengulangi","cut":"Memotong","paste":"Tempel","select_all":"Pilih Semua","view":"Melihat","reload":"Muat ulang","toggle_full_screen":"Alihkan Layar Penuh","toggle_developer_tools":"Alihkan Alat Pengembang","window":"Jendela","minimize":"Memperkecil","bring_all_to_front":"Bawa Semua ke Depan","help":"Membantu","github_repo":"Repo Github","issues":"Masalah","learn_more":"Belajarlah lagi","learn_spelling":"Pelajari Ejaan","lookup_selection":"Cari \\"{selection}\\"","search_with_google":"Telusuri dengan Google","save_as":"Simpan Sebagai","save_image":"Menyimpan gambar","save_image_as":"Menyimpan gambar sebagai ...","copy_link":"Salin tautan","save_link_as":"Simpan tautan sebagai ...","copy_image":"Salin Gambar","copy_image_as":"Salin Gambar Sebagai ...","copy_image_address":"Salin Alamat Gambar","download_complete":"Unduh selesai","download_complete_message":"{0} telah diunduh","is_running":"{0} sedang berjalan","open":"Buka {0}","launch_problem":"Luncurkan masalah","ask_clear_data":"Tampaknya Anda mencoba meluncurkan {0} tetapi gagal beberapa kali.\\nApakah Anda ingin menghapus semua data aplikasi dan mencoba meluncurkannya nanti?","launch_directly":"Luncurkan secara langsung","clear_all_data":"Hapus semua data","ask_clear_confirm":"Ini akan menghapus semua konfigurasi, log, dan data pengguna!\\nSetelah ini, Anda mungkin perlu meluncurkan {0} lagi.\\nApakah Anda yakin ingin menghapus data?","confirm_launch":"Tidak, luncurkan langsung","confirm_clear":"Ya, hapus semua data"}')},6545:function(e,t,a){},6580:function(e,t,a){"use strict";a("0c70")},6755:function(e,t,a){},6792:function(e,t,a){"use strict";a("b031")},"68e2":function(e){e.exports=JSON.parse('{"lib_index":"집","lib_edit":"게시","lib_publish":"게시","lib_explore":"탐구하다","lib_following":"수행원","lib_favorite":"로컬 즐겨찾기","lib_local_favorites":"로컬 즐겨찾기","lib_channel":"채널","lib_submit":"제출하다","lib_from_network":"네트워크에서 분산 데이터베이스 사용","welcome_to_lib":"${displayName} 미디어 라이브러리에 오신 것을 환영합니다.","register_or_login":"회원가입/로그인","lib_recommend":"추천하다","lib_recommend_desc":"${displayName} 도서관에 오신 것을 환영합니다! 이 라이브러리는 네트워크에서 분산된 데이터베이스를 사용합니다. 사용을 시작하려면 일부 채널을 팔로우해야 합니다.","follow_any_channel_to_continue":"계속하려면 아무 채널이나 팔로우하세요.","follow_channels_and_continue":"{0} 채널을 팔로우하고 계속하기","show_more_for_me":"더 보여줘","no_more_recommend":"더 이상 추천하지 않음","key":"열쇠","create_key":"키 만들기","save_key":"키 저장","save_key_file":"키를 파일로 저장하시겠습니까?","import_key":"키 가져오기","import":"수입","invalid_key":"유효하지 않은 키","back_to_top":"맨 위로","search_for_channel":"채널 ID 검색","search_channel_no_result":"ID가 {0}인 채널을 찾을 수 없습니다.","please_input_channel_id":"채널 ID를 입력하세요.","welcome_help_text":"이것은 분산형 미디어 라이브러리입니다. 당신은 필요\\n 이 데이터베이스에 대한 계정을 생성합니다. 우리는\\n 자동으로 개인 키를 생성합니다.\\n 이미 키가 있는 경우 가져올 수도 있습니다.\\n 여기.","welcome_key_text":"로그인 후 [SAVE KEY] 버튼을 클릭해주세요.\\n 개인 키를 저장하려면 오른쪽 하단 모서리에 있습니다.\\n 키를 분실하면 다시 로그인하지 못할 수 있습니다.","redirect_to_recommend":"팔로우한 채널이 없는 것 같습니다. [탐색] 페이지로 리디렉션 중입니다.","channel":"채널","follow":"따르다","unfollow":"언팔로우","following":"수행원","share":"공유하다","unfollow_confirm":"이 채널을 팔로우 해제하시겠습니까? 타임라인에 있는 이 채널의 모든 게시물이 삭제됩니다.","follow_failed_hint":"작업이 백그라운드에서 아직 보류 중입니다. 오랜 시간 동안 동작이 적용되지 않으면 앱을 다시 시작하고 다시 시도하십시오.","block":"차단하다","unblock":"차단 해제","blocked":"막힌","block_channel":"이 채널 차단","block_channel_confirm":"채널을 차단하면 타임라인에서 제거됩니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","block_creator":"이 채널의 작성자 차단","unblock_creator":"이 채널의 작성자 차단 해제","block_creator_confirm":"블록 작성자는 이 작성자가 생성한 모든 채널을 타임라인에서 제거합니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","share_url_copied":"공유 URL이 클립보드에 복사되었습니다.","follow_time":"팔로우 타임","update_time":"업데이트 시간","search":"찾다","type":"유형","added":"추가됨","click_to_task":"작업으로 이동하려면 클릭하세요.","lib_already_added":"이 동영상을 이미 추가했습니다.","description":"설명","poster":"포스터","channel_poster":"채널 포스터","preview":"시사","creator":"창조자","creator_detail":"크리에이터 세부정보","loading_creator":"크리에이터 정보 로드 중","wait_for_creator_loaded":"크리에이터 정보가 로드될 때까지 기다려 주십시오.","follower":"수행원","followers":"추종자","follower_list":"팔로어 목록","user":"사용자","channel_title":"채널 제목","channel_id":"채널 ID","post_title":"게시물 제목","post_id":"게시물 ID","import_data_from_excel":"엑셀에서 데이터 가져오기","set_excel_keys":"엑셀 키 설정","excel_import_succeded":"엑셀 가져오기 성공","excel_import_success_msg":"{0} 행을 추가할 준비가 되었습니다. {1} 유효하지 않으며 {2} 중복 항목은 무시됩니다.","cannot_find_channel":"채널을 찾을 수 없습니다","cannot_find_posts":"게시물을 찾을 수 없습니다","add_channel":"채널 추가","add_post":"게시물 추가","edit_channel":"채널 수정","channel_setting":"채널 설정","edit_post":"게시물 수정","edit_posts":"게시물 수정","channel_detail":"채널 세부정보","remove":"제거하다","remove_channel":"채널 삭제","remove_channel_confirm":"이 게시물을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","remove_post":"게시물 삭제","remove_post_confirm":"이 채널을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","preview_mode":"미리보기 모드","preview_mode_desc":"채널의 미리보기입니다. 영화의 모든 요금이 여기에 표시됩니다.","edit_user_profile":"사용자 프로필 수정","name":"별명","avatar":"화신","no_following":"다음 채널이 없습니다. 클릭하여 이동","no_recommend":"추천 채널이 없습니다. 클릭하여 이동","first_recomment_msg":"앱을 처음 실행하는 경우 다소 시간이 걸릴 수 있습니다.","invalid_image":"잘못된 이미지","image_not_reachable":"이 이미지 URL에 연결할 수 없습니다.","channel_not_found":"채널을 찾을 수 없음","cannot_get_channel_info":"채널 정보를 가져올 수 없습니다. 이 채널은 제작자에 의해 삭제되어 더 이상 사용할 수 없습니다.","validate_error":"오류 확인","validate_user_name_no_space":"사용자 이름에는 공백이 없어야 합니다.","validate_url_no_space":"URL은 공백을 포함할 수 없습니다.","validate_user_name_length":"사용자 이름은 {0}에서 {1} 사이여야 합니다.","validate_user_desc_length":"사용자 설명은 {0}자를 초과할 수 없습니다.","validate_user_avatar_url":"사용자 아바타는 2048자 미만의 URL이어야 합니다.","validate_channel_title_length":"채널 제목의 길이는 1에서 100 사이여야 합니다.","validate_channel_desc_length":"채널 설명의 길이는 10에서 300 사이여야 합니다.","validate_channel_image_url":"채널 미리보기는 2048자 미만의 URL이어야 합니다.","validate_post_title_length":"게시물 제목의 길이는 1에서 100 사이여야 합니다.","validate_post_desc_length":"게시물 설명의 길이는 10에서 300 사이여야 합니다.","validate_post_image_url":"포스터는 2048자 미만의 URL이어야 합니다.","validate_post_url":"잘못된 ${displayName} URL","validate_post_url_length":"${displayName} URL은 2048자 이하여야 합니다.","film_rate":"영화 비율","set_film_rate":"촬영 속도 설정","select_a_rate_before_enter":"미디어 라이브러리에 들어가기 전에 필름 속도를 선택해야 합니다.","library_available_rate":"도서관 이용 가능 영화 요금","rate_g":"G – 일반 청중","rate_g_desc":"전연령 인정합니다. 아이들이 보는 것에 대해 부모를 화나게 하는 것은 없습니다.","rate_pg":"PG – 학부모 지도 권장","rate_pg_desc":"일부 자료는 어린이에게 적합하지 않을 수 있습니다. 학부모들은 \\"부모의 지도\\"를 해줄 것을 촉구했다. 부모가 어린 자녀에게 좋아하지 않을 수 있는 내용이 포함되어 있을 수 있습니다.","rate_pg_13":"PG-13 – 부모의 강력한 주의","rate_pg_13_desc":"일부 자료는 13세 미만의 어린이에게 부적절할 수 있습니다. 부모는 주의를 기울여야 합니다. 일부 자료는 미성년자에게 부적절할 수 있습니다.","rate_r":"R – 제한됨","rate_r_desc":"17세 미만은 부모 또는 성인 보호자를 동반해야 합니다. 약간의 성인물이 포함되어 있습니다. 부모는 어린 자녀를 데리고 가기 전에 영화에 대해 더 많이 알아야 합니다.","rate_nc_17":"NC-17 – 성인 전용","rate_nc_17_desc":"17세 미만은 허용되지 않습니다. 분명히 성인. 어린이는 입장할 수 없습니다.","set_as_private":"비공개로 설정","hide_in_explore":"탐색 페이지에서 이 채널 숨기기","hidden":"숨겨진","select_a_rate":"영화 요금을 선택하세요","select_from_tasks":"작업에서 선택","import_from_magnet":"자석에서 가져오기:?...","input_magnet_url":"입력 자석:? URL","task_title":"작업 제목","set_title":"제목 설정","add_to_local_favorites":"로컬 즐겨찾기에 추가","remove_from_local_favorites":"로컬 즐겨찾기에서 제거","removed_favorite":"삭제된 즐겨찾기","import_or_export_favorites":"즐겨찾기 가져오기/내보내기","export_local_favorites":"로컬 즐겨찾기를 백업으로 내보내기","import_favorites_file":"즐겨찾기 파일 가져오기","not_a_favorite_file":"이 파일은 즐겨찾는 백업 파일이 아닙니다.","connection_status":"연결 상태","gun_server_list":"캐시 노드","custom_nodes":"커스텀 캐시 노드","custom_nodes_hint":"앱을 다시 시작한 후 맞춤 캐시 노드가 적용됩니다.","wait_for_reboot":"재부팅 대기 중...({seconds}s)","reboot_now":"지금 재부팅하세요","reboot_later":"나중에 재부팅","peer_list":"직접 노드","server":"노드 URL","peer":"또래","peer_id":"노드 ID","connection":"연결","data_source":"데이터 소스","sync":"동조","syncing":"동기화 중","sync_completed":"동기화 완료","got_all_post":"이미 모든 게시물이 있습니다.","placeholder_channel_title":"채널 이름","placeholder_channel_desc":"이 채널에 대한 설명","placeholder_post_title":"영화명(연도)","placeholder_post_desc":"이 영화에 대한 설명","private_channel":"비공개 채널","creator_blocked":"크리에이터가 차단됨","go_to_library":"도서관에 가십니까?","go_to_library_channel_msg":"도서관 채널 {0}로 이동하시겠습니까?","magnet_does_not_have_name":"이 자석:? url에는 이름이 없으므로 먼저 게시물 제목을 추가해야 합니다.","no_available_post":"사용 가능한 게시물이 없습니다.","following_channel_no_post":"다음의 모든 채널에 사용 가능한 게시물이 없습니다. 네트워크 오류로 인해 발생할 수 있습니다. 일부 채널을 이미 팔로우한 경우 게시물이 나중에 로드될 수 있습니다.","share_to_library":"라이브러리에 공유","quick_start":"빠른 시작","quick_start_desc":"작업 또는 파일로 게시물 작성 시작","select_file":"파일 선택...","select_folder":"폴더 선택...","post_options":"게시물 옵션","channel_options":"채널 옵션","create_new_channel":"새 채널 만들기","use_existed_channel":"기존 채널 사용","select_existed_channel":"기존 채널 선택","uploaded_by":"{title} {name} 업로드","created_by":"{title} {name} 생성","creating_new_channel":"새 채널 생성 중...","created_new_channel":"새 채널이 생성되었습니다.","creating_new_post":"새 게시물 작성 중...","created_new_post":"새 게시물이 생성됨","create_new_post":"새 게시물 만들기","quick_start_timeout":"{0} 시간이 초과되었습니다. 네트워크 오류로 인해 발생할 수 있습니다. 나중에 다시 시도 해주십시오.","file_too_large":"파일이 너무 큽니다","file_too_large_msg":"이 파일은 4GB({size})보다 크며 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 계속하시겠습니까?","resolving_folder_files":"폴더 파일을 해결하는 중...","folder_too_large":"폴더가 너무 큼","folder_too_large_msg":"이 폴더의 파일은 4GB({size} 총)보다 크고 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 업로드하시겠습니까?","creating_new_task":"새 작업 생성 중...","cannot_create_task":"작업을 생성할 수 없습니다.","cannot_create_task_msg":"일부 오류로 인해 발생할 수 있습니다. 작업이 올바르게 생성되면 나중에 작업 목록을 확인할 수 있습니다.","cannot_get_task_name":"작업 이름을 가져올 수 없습니다. 먼저 하나를 입력해야 합니다.","remove_old_task":"이전 작업 제거","remove_old_task_desc":"웹 모드는 한 번에 하나의 작업만 만들 수 있습니다. 이전 작업을 제거하시겠습니까?","subtitle_list":"자막 목록","optional":"선택 과목","with_subtitle":"{language} 자막 포함","maximumSubtitleNum_limit":"자막 수가 최대치에 도달했습니다.","add_subtitle_url":"자막 다운로드 링크 추가","cannot_add_subtitle":"자막을 추가하지 못했습니다.","cannot_add_subtitle_msg":"자막 언어가 선택되지 않았거나 다운로드 링크가 유효하지 않습니다.","support_subtitle_type":"srt 및 vtt 형식의 자막만 지원됩니다.","recommend_opensubtitles":"www.opensubtitles.org에서 자막 다운로드 링크 또는 아이디를 사용하는 것을 권장합니다.","take_down":"테이크다운","serious_violation":"심각한 위반","copyright_disputes":"저작권 분쟁","adults_only":"성인 만","takedown_reason":"게시 중단 이유","takedown_mode":"테이크다운 모드","admins":"관리자","takedown_user":"이 크리에이터 게시 중단","takedown_channel":"이 채널 게시 중단","takedown_post":"이 게시물 게시 중단","select_takedown_reason":"게시 중단 이유 선택","takedown_invalid_reason":"잘못된 게시 중단 이유","takedown_invalid_user_id":"잘못된 사용자 ID입니다. ID는 87자를 포함해야 합니다.","takedown_invalid_channel_id":"잘못된 채널 ID입니다. ID는 20자를 포함해야 합니다.","takedown_invalid_post_id":"잘못된 게시물 ID입니다. ID는 20자를 포함해야 합니다.","takedown_management":"테이크다운 관리","users":"사용자","channels":"채널","posts":"게시물","you":"너","preset":"프리셋","admin":"관리자","committee":"위원회","about_takedown_mode":"게시 중단 모드 정보:\\n사전 설정: github 저장소에서 구성됩니다. 모두 라이브러리에서 제거됩니다.\\n관리자: 관리자 투표 중 하나가 제거됩니다.\\n위원회: 투표한 관리자의 절반 이상이 제거됩니다.","cannot_edit_preset":"이 행은 미리 설정된 행이므로 편집할 수 없습니다.","cannot_edit_not_vote":"투표하지 않았으므로 이 행을 편집할 수 없습니다.","remove_vote":"투표 제거","post_preload_failed":"이 게시물을 미리 로드하지 못했습니다. 다운로드 링크가 오래되어 이 게시물을 바로 재생할 수 없습니다.","about_cache_node":"캐시 노드 정보","edit_cache_node":"캐시 노드 편집","create_cache_node":"캐시 노드 생성","about_cache_node_desc":"${displayName}는 건 서버를 캐시 노드로 사용합니다. 사전 설정에서 사용자 정의 노드를 편집할 수 있습니다.","learn_how_to_deploy_gun":"자체 건 서버를 배포하는 방법 알아보기","repeat_add":"작업이 추가되었습니다. 다시 추가하지 마세요.","upload":"업로드","download":"다운로드","delete":"삭제","delete_task":"작업 삭제","delete_confirm_message":"이 작업을 삭제하시겠습니까? 취소할 수 없습니다.","also_delete_files":"파일도 삭제","default_delete_files":"제거 작업 후 기본 삭제 다운로드 파일","not_now":"지금은 아니다","delete_autoupload_confirm":"이 작업에는 자동 업로드 디렉터리에 넣은 파일이 포함되어 있습니다. 이 작업을 삭제하면 파일도 삭제됩니다.","delete_anyway":"무시하고 삭제","upload_too_many_files":"너무 많은 파일 업로드","ask_if_unlimit_upload_amount":"자동 업로드 디렉터리에 너무 많은 파일이 포함되어 있습니다. 업로드 용량 제한을 비활성화하시겠습니까? *성능 문제가 발생할 수 있습니다.","disable_limitation":"제한 비활성화","not_length":"현재 다중 파일 작업이 지원되지 않습니다. 협조해 주시기 바랍니다.","download_torrent":"파일 다운로드","upload_torrent":"파일 업로드","files":"파일","file":"파일","folder":"폴더","start_all":"모두 시작","pause_all":"모두 일시중지","remove_all":"모두 제거","upload_all":"모두 업로드","clear_history":"기록 지우기","pause_all_finish_payments":"이로써 모든 결제가 완료됩니다.","accelerating":"가속","link_task":"작업 연결","torrent_task":"파일 작업","ok":"좋아요","cancel":"취소","download_directory_position":"다운로드 디렉토리 위치","torrent_file":"작업 파일","magnetic_link_incorrect":"링크 형식이 잘못되었습니다.","delete_fail":"삭제 실패","pause":"정지시키다","paused":"일시중지됨","stop_torrent":"멈추다","seed":"씨앗","resume":"재개하다","downloading":"다운로드 중","downloaded":"다운로드됨","uploading":"업로드 중","auto_uploading":"자동 업로드","uploaded":"업로드됨","pending":"다른 작업을 기다리는 중","verifying":"확인 중","waiting_for_verify":"확인 대기 중","seeding":"파종","completed":"완전한","status":"상태","task_name":"작업 이름","size":"크기","progress":"진전","sort":"종류","ascending":"오름차순","descending":"내림차순","file_loading":"파일 로드 중...","loading":"로드 중","unknown_status":"알려지지 않은","play_while_downloading":"놀다...","upload_or_play":"업로드/재생","play":"놀다","ask_if_upload_file":"파일을 업로드하시겠습니까?","ask_if_upload_or_play":"파일을 업로드하거나 재생하시겠습니까?","torrent_error":"작업 추가 시 오류:","no_peers":"{0} 회 이상 재시도하고 사용 가능한 피어가 없습니다.","torrent_exists":"작업이 이미 존재합니다.","show_origin_torrent":"원본 작업 파일 또는 URL 가져오기","show_directory":"이 토렌트의 디렉토리 열기","task_num":"작업","total_upload_speed":"업로드 속도","total_download_speed":"다운로드 속도","path_missing":"오류: 토렌트 경로를 찾을 수 없습니다.","origin_not_found":"원본 작업 정보를 찾을 수 없습니다.","text_copied":"매그넘 URL이 클립보드에 복사됩니다.","copy_magnet_uri":"복사 자석:? URI","copy_download_uri":"다운로드 URI 복사","copy_share_uri":"공유 URI 복사","uri_copied":"URI가 클립보드에 성공적으로 복사되었습니다.","uri_copy_failed":"URI를 복사하지 못했습니다.","more":"더...","toggle_list_mode":"목록 모드 전환","comment":"논평","operations":"운영","open_directory":"디렉토리 열기","no_downloading_task":"다운로드 작업 없음","remove_all_downloading_tasks":"모든 다운로드 작업을 제거하시겠습니까?","remove_all_upload_tasks":"모든 업로드 작업을 제거하시겠습니까?","remove_autoupload_files":"자동 업로드 파일 제거","remove_all_history":"모든 기록을 삭제하시겠습니까?","remaining":"남은","created_time":"만든 시간","used_time":"사용시간","completed_time":"완료된 시간","yesterday":"어제","before_yesterday":"{empty}","earlier":"더 일찍","miss_file":"일부 파일이 누락됨","delete_miss_file_task":"{0}에 누락된 파일이 있습니다.","common_peer":"공통 피어","ab_peer":"${displayName} 피어","ab_peer_verified":"확인된 ${displayName} 피어","ab_peer_available":"${displayName} 피어 사용 가능","alphabiz_accelerating":"${displayName} 가속","income":"소득","income_info":"수입(오늘/총)","total_income_info":"수입: {0}(오늘) / {1}(총)","login_to_see_income":"소득 통계를 보려면 로그인하십시오.","credit_cost":"신용 비용","downloaded_by_payment":"결제로 다운로드","file_not_found":"로컬에서 이 파일을 찾을 수 없습니다.","no_task":"묻지 않는다","no_matched_task":"일치하는 작업 없음","space_not_enough":"디스크 공간이 충분하지 않음","need_more_space":"{0} 더 많은 공간이 필요하지만 현재 디스크에 {1} 여유 공간이 있습니다({2} 예약됨). 작업이 일시 중지되었습니다. 라이브러리 사전 로드가 비활성화되었습니다. [설정 - 고급]에서 다시 활성화할 수 있습니다.","seeders":"파종기","last_update":"마지막 업데이트","connecting":"연결 중","connected":"연결됨","request_timed_out":"요청 시간이 초과되었습니다","connection_failed":"연결에 실패","invalid_download_url":"잘못된 다운로드 URL","download_link":"다운로드 링크","empty_files":"디렉토리에 파일이 없습니다","duplicate_task":"중복 작업","duplicate_tracker":"중복 추적기","this_task_not_ready":"이 작업은 준비되지 않았습니다. 이 작업을 일시 중지하면 바로 제거됩니다.","some_task_not_ready":"일부 작업이 준비되지 않았습니다. 이러한 작업을 일시 중지하면 바로 제거됩니다.","failed_to_delete_files":"파일을 삭제하지 못했습니다.","failed_to_delete_files_desc":"작업의 일부 파일을 삭제하지 못했습니다. 수동으로 삭제해야 할 수도 있습니다.","unknown_error":"알 수 없는 오류: {0}","more_files_are_not_shown":"({0} 더 많은 파일은 성능상의 이유로 표시되지 않음)","no_available_file":"사용 가능한 파일이 없습니다. 작업이 준비될 때까지 기다리십시오.","service_worker_error":"재생을 위해 ServiceWorker를 로드할 수 없습니다. 브라우저가 이 기능을 지원하지 않거나 ServiceWorker가 활성화되지 않았을 수 있습니다. 이 페이지를 새로고침하고 다시 시도해야 할 수도 있습니다.","add_task_first":"먼저 작업을 추가해야 합니다.","player_task_time":"플레이어가 플레이를 준비하는 데 너무 많은 시간이 걸립니다. 작업에 문제가 있을 수 있습니다.","web_mode_hint":"${displayName}의 웹 모드는 WebRTC 피어만 지원합니다. 최상의 경험을 위해 ${displayName} 데스크탑 앱을 다운로드하십시오.","web_mode_task_hint":"작업을 추가하려면 아래 버튼을 클릭하세요. 한 번에 하나의 작업만 추가할 수 있습니다.","save_to_local":"로컬에 저장","save_as_zip":"ZIP으로 저장","creating_save_file":"세이브 파일 생성중...","upload_as_one_directory":"하나의 디렉토리로 업로드","upload_as_single_files":"단일 파일로 업로드","web_mode_upload_single":"웹 모드에서는 단일 파일만 업로드할 수 있습니다.","download_success":"성공적으로 다운로드","download_fail":"다운로드 실패","wait_for_downloaded_to_share":"공유하기 전에 작업이 다운로드될 때까지 기다리십시오.","download_with_cellular":"셀룰러를 사용하여 작업 다운로드","download_with_cellular_desc":"셀룰러 네트워크를 사용하고 있습니다. 셀룰러로 작업을 다운로드하면 이동통신사에서 추가 요금을 부과할 수 있습니다.","download_with_cellular_confirm":"여전히 셀룰러로 다운로드","language":"언어","appearance":"모습","darkModeSystem":"체계","darkModeLight":"빛","darkModeDark":"어두운","basic_setting":"기초적인","hideMenu":"앱 메뉴 숨기기(Windows 및 Linux만 해당)","autoHide":"창 자동 숨기기","autoStart":"로그인 시 열기","restore":"종료 시 창의 크기와 위치 유지","autoStartUnfinished":"완료되지 않은 모든 작업을 자동으로 재개","default_download_path":"기본 경로","download_directory":"디렉토리 다운로드","upload_directory":"디렉토리 업로드","enable_auto_upload":"자동 업로드 사용","unlimit_upload_amount":"무제한 업로드 금액","unlimit_upload_warning":"많은 양의 파일을 업로드할 수 있습니다. 이로 인해 성능 문제가 발생할 수 있습니다.","start":"시작","transport_setting":"전염","upload_limit":"업로드 제한","download_limit":"다운로드 한도","payed_user_share_rate":"유료 사용자 점유율","unlimited":"제한 없는","limit_input_error":"제한 숫자는 양수여야 합니다.","BT_setting":"작업 설정","saveLinkSeed":"작업 파일로 링크 저장","autoDownload":"링크 및 콘텐츠 자동 다운로드","continuousSeeding":"수동으로 중지할 때까지 시드 유지","seedSharingRate":"종자 비율","seedTime":"시드 시간(분)","task_manage":"작업 관리","maximumDownloadNum":"최대 활성 작업","maximumConnectionsNum":"서버당 최대 연결","range_error":"범위는 {0}에서 {1} 사이여야 합니다.","random":"무작위의","breakpointContinuation":"계속하다","automaticSkip":"작업 추가 후 자동으로 다운로드 표시","afterNotification":"다운로드 완료 후 알림","deleteConfirm":"작업을 삭제하기 전에 확인이 필요하지 않습니다.","submit":"저장 및 적용","discard":"버리다","reset":"초기화","reset_all_settings":"모든 설정을 재설정하시겠습니까?","preferences_resetted":"환경설정이 재설정됨","traditional_chinese":"중국어 번체","japanese":"일본어","english":"영어","chinese":"중국어 간체","advancedSettings":"고급의","autoUpdate":"자동 업데이트","autoCheckUpdate":"업데이트 자동 확인","proxy":"대리","useProxyService":"프록시 활성화","trackerService":"트래커 서버","recommendUse":"추천","autoUpdateTrackerServiceList":"매일 자동으로 트래커 목록 업데이트","manualUpdateTracker":"수동 업데이트","manualUpdateSuccess":"트래커 서버를 성공적으로 업데이트했습니다.","manualUpdateFail":"업데이트 실패:","listenPort":"청취 포트","BTlistenPort":"데이터 전송 포트","DHTlistenPort":"분산 해시 포트","protocols":"호환 가능한 프로토콜","setDefaultClientForFollowingProtocols":"다음 프로토콜의 기본 클라이언트로 설정","magnetUrl":"자석","video_file":"비디오 파일","audio_file":"오디오 파일","security":"보안","impersonateUserAgent":"모의 사용자 에이전트","RPCauthorizationkey":"RPC 비밀","viewDocument":"RPC 시크릿 매뉴얼 보기","developer":"개발자","applicationLogPath":"앱 로그 경로","downloadSessionPath":"세션 경로 다운로드","resetDownloadSessionRecord":"다운로드 세션 재설정","restoreInitialSettings":"공장초기화","preferences_set_successfully":"기본 설정을 성공적으로 저장하십시오!","preferences_set_fail":"기본 설정 저장 실패!","change_not_save":"변경 사항이 저장되지 않음","discard_all_changes":"모든 변경사항을 취소하고 종료하시겠습니까?","stay_in_page":"페이지에 머물기","disk_usage":"디스크 사용량","pause_if_less_space":"공간이 (MB) 미만인 경우 일시 중지 및 알림","default_video_player":"기본 비디오 플레이어","video_cache_time":"스트림 재생 캐시","minutes":"분","system_default":"시스템 기본값","media_player":"미디어 플레이어","library_film_rate":"사용 가능한 영화 속도","library_show_explore":"[탐색] 페이지 표시","library_setting":"라이브러리 설정","library_sync_setting":"라이브러리 동기화 설정","keychain_sync_status":"키체인 동기화 상태","sync_with_aws":"Amazon Web Services와 키체인 동기화","backup_to_local":"로컬 파일에 백업","enable_sync_with_aws":"AWS와 동기화 활성화","disable_sync_with_aws":"AWS와의 동기화 비활성화","disable_sync_with_aws_desc":"이렇게 하면 서버에 저장된 키가 제거됩니다. 이미 키를 내보냈는지 확인하십시오.","input_independent_password":"독립적인 암호 입력","change_independent_password":"독립적인 비밀번호 변경","password_error":"비밀번호 오류","password_invalid":"잘못된 비밀번호","key_existed":"키 존재","key_not_found":"키를 찾을 수 없음","library_recommend":"도서관 추천","show_all_channels":"도서관 추천 페이지에 모든 채널 표시","not_logged_in":"로그인하지 않았습니다","login_to_continue":"계속하려면 로그인하세요.","mnemonic_code":"니모닉 코드","wordlist":"단어 목록","restore_code":"코드에서 복원","generate_code":"코드 생성","export_mnemonic_code":"니모닉 코드 내보내기","import_mnemonic_code":"니모닉 코드 가져오기","print":"인쇄","save_as_txt":"txt로 저장","save_as_pdf":"PDF로 저장","from_file":"파일에서","not_valid_mnemonic_code":"유효한 니모닉 코드가 아닙니다.","cannot_parse_code_as_key":"이 니모닉 코드를 라이브러리 키로 구문 분석할 수 없습니다.","import_key_hint":"이 키를 가져오시겠습니까? 이렇게 하면 라이브러리에서 이전 키가 복구됩니다.","import_key_confirm":"예, 가져옵니다.","library_preload":"라이브러리에서 작업 미리 로드","show_preload":"사전 로드 작업 표시","set_download":"다운로드 디렉토리 설정","set_download_desc":"macOS App Store 버전의 경우 기본 다운로드 디렉토리는 앱의 샌드박스에 있으며 앱 제거 후 삭제됩니다. 다운로드 파일을 보관하려면 다른 다운로드 디렉토리를 수동으로 선택해야 합니다.","home":"집","home_caption":"다운로드/업로드 및 미디어 파일","library":"도서관","library_caption":"미디어 리소스 살펴보기","player":"플레이어","player_caption":"미디어 플레이어","credits":"학점","credits_caption":"계정 잔액 확인","account":"계정","account_caption":"로그인/가입/관리","settings":"설정","settings_caption":"앱, 플레이어, 계정 설정","development":"개발","development_caption":"내부용 개발자 모드","basic":"기초적인","basic_caption":"기본 설정","advanced":"고급의","advanced_caption":"고급 설정","blockchain":"지갑","blockchain_caption":"${displayName} 탈중앙화 지갑","internal_notice":"내부 릴리스 공지","release_notes":"릴리즈 노트","terms_and_conditions":"이용약관","license_and_listen_notices":"라이선스 및 오픈 소스 듣기 고지 사항","close":"닫다","success":"성공","fail":"실패하다","account_email_invalid_address":"잘못된 이메일 주소","account_email_invalid_domain":"잘못된 이메일 도메인","account_email_unknown_status":"알 수 없는 이메일 전송 상태","account_email_unavailable_address":"사용할 수 없는 이메일 주소","account_email_suppressed_address":"억제된 이메일 주소","account_loading":"로드 중...","account_is_required":"필요하다","account_sign_in_your_account":"로그인","account_username":"사용자 이름","account_username_email_phone":"전화번호 또는 이메일","account_password":"비밀번호","account_new_password":"새 비밀번호","account_re_enter_password":"비밀번호를 다시 입력하세요","account_password_not_equal":"두 암호가 동일하지 않습니다","account_new_password_same":"비밀번호는 기존 비밀번호와 동일합니다.","account_forgot_your_password":"비밀번호를 잊어 버렸습니까?","account_reset_password":"암호를 재설정","account_sign_in":"로그인","account_signed_in":"로그인","account_sign_up":"가입하기","account_find_your_account":"계정 찾기","account_enter_your_username":"전화번호 또는 이메일을 입력하세요.","account_search":"찾다","account_email_sent_tip":"확인 코드가 포함된 이메일이 귀하의 이메일로 전송되었습니다:","account_phone_sent_tip":"인증 코드가 포함된 SMS가 휴대전화로 전송되었습니다.","account_email_phone_sent_tip":"확인 코드가 포함된 이메일과 SMS가 각각 귀하의 이메일과 전화로 전송되었습니다:","account_software_token_tip":"계정에 대해 MFA가 활성화되었습니다. 로그인을 완료하려면 장치를 켜거나 보고 TOTP를 입력하십시오.","account_reset_your_password":"비밀번호를 재설정","account_verification_code":"확인 코드","account_resend_code":"코드 재전송","account_code_has_been_resent":"인증 코드가 재전송되었습니다","account_password_has_been_reset":"비밀번호가 재설정되었습니다","account_submit":"제출하다","account_sign_up_your_account":"계정 가입","account_fill_required_fields":"아래의 필수 필드를 작성하십시오.","account_fill_optional_fields":"아래의 선택 필드를 채우십시오.","account_email":"이메일","account_invitation":"초대","account_invitation_code":"초대 코드","account_i_accept":"동의 함","account_license_terms":"라이센스 및 조건","account_next":"다음","account_you_need_to_accept_license_terms":"먼저 라이센스 및 약관에 동의해야 합니다.","account_verify_fill_optional_fields":"선택적 필드를 확인하고 채우십시오.","account_nickname":"별명","account_gender":"성별","account_male":"남성","account_female":"여성","account_not_say":"말하지마","account_birthday":"생일","account_phone_number":"전화 번호","account_locale":"현지의","account_tip_verified":"확인됨, 로그인 중...","account_verified":"확인","account_unverified":"확인되지 않은","account_signed_up":"가입","account_verify_your_identity":"신원 확인","account_finish":"마치다","account_signed_out":"로그 아웃","account_change_password":"비밀번호 변경","account_change_email":"이메일을 바꾸다","account_change_phone_number":"전화번호 변경","account_sign_out":"로그아웃","account_current_password":"현재 비밀번호","account_re_enter_new_password":"새 비밀번호를 다시 입력하십시오","account_personal_information":"정보","account_edit":"편집하다","account_reset":"초기화","account_greeting":"안녕하세요,","account_cancel":"취소","account_change":"변화","account_not_set":"설정되지 않음","account_setting":"환경","account_copy_code":"코드 복사","account_account_setting":"계정","account_task_page":"신용 작업","account_setting_caption":"비밀번호 변경 / 정보 수정","account_security":"보안","account_want_to_join":"들어 올래?","account_sign_in_now":"로그인","account_changed":"변경됨","account_clipboard_with_invitation_code":"초대 코드 복사됨","account_clipboard_with_code":"복사된 코드","account_invitation_code_dialog_tip":"초대 코드가 포함된 이메일 또는 문자 메시지를 친구에게 보냅니다.","account_available":"사용 가능","account_invited":"초대","account_used":"사용된","account_invitation_code_sent":"초대 코드가 전송되었습니다","account_invitation_channel_required":"하나 이상의 초대 채널을 작성하십시오.","account_no_verification_code":"인증번호를 받을 수 없나요?","account_no_phone_number":"전화번호가 없나요?","account_sign_up_by_email":"이메일로 가입","account_no_email":"이메일이 없나요?","account_sign_up_by_phone_number":"전화번호로 가입","account_no_totp":"TOTP가 없습니까?","account_tip_no_totp":"TOTP가 없는 경우 TOTP를 먼저 설정하십시오.","account_setup_totp":"TOTP 설정","account_contact_information":"연락처 정보","account_delete_account":"계정 삭제","account_deleted":"삭제됨","account_can_not_mfa":"문제가 있는 MFA?","account_set_mfa_type":"구성 MFA","account_disable_mfa":"MFA 비활성화","account_disabled_mfa":"장애인 MFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"추천하지 않음","account_oauth_sign_in_with":"{provider}로 로그인","account_sign_in_failed":"로그인 실패","account_tip_oath_sign_up":"현재 {provider} 계정에 해당하는 이메일: {email}은 아직 계정을 만들지 않았습니다.","account_tip_confirm_delete_account":"현재 계정의 비밀번호를 입력하여 현재 계정 삭제를 확인합니다.(삭제된 계정은 복구할 수 없습니다.)","account_tip_config_mfa":"2차 인증으로 SMS 또는 시간 기반 일회용 비밀번호(TOTP)를 사용하도록 선택할 수 있습니다.","account_error_can_not_enable_mfa":"MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_sms_mfa":"SMS MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_totp_mfa":"TOTP MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_setup_totp":"Authenticator와 같은 앱을 사용하여 아래 QR 코드를 스캔하거나 코드를 수동으로 복사하여 보안 토큰을 추가하세요.","account_tip_verify_totp":"TOTP 확인","account_link_your_social_account":"소셜 계정 연결","account_unlink_your_social_account":"소셜 계정 바인딩 해제","account_tip_confirm_link":"현재 계정을 {provider} 계정에 연결하시겠습니까?","account_tip_confirm_unlink":"결합된 {provider} 계정을 취소하시겠습니까?","account_tip_linking":"제본...","account_tip_unlinking":"구속 해제...","account_linked":"경계","account_unlinked":"매여 있지 않은","account_error_can_not_link_to_the_linked_account":"현재 소셜 계정은 다른 계정에 연결되어 있습니다.","account_error_can_not_link_to_the_mismatched_email":"현재 계정과 소셜 계정 이메일 주소가 일치하지 않습니다.","account_error_can_not_link_before_email_verified":"현재 계정이 인증된 이메일에 연결되어 있지 않기 때문에 소셜 계정을 연결할 수 없습니다.","account_tip_confirm_verify_email_phone":"신원 확인을 위해 현재 계정의 이메일과 전화번호로 인증 코드를 보낼지 여부","account_tip_confirm_verify_phone":"신원 확인을 위해 현재 전화번호로 인증 코드를 보낼지 여부","account_error_1_message_60_seconds":"60초마다 하나의 SMS 또는 이메일만 보낼 수 있습니다. {delta}초를 더 기다리세요.","account_error_10_messages_per_day":"각 휴대폰 또는 이메일은 24시간 이내에 10개의 메시지만 보낼 수 있습니다.","account_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","Network Error":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","account_error_user_not_exist":"사용자가 존재하지 않습니다","account_error_incorrect_username_or_password":"잘못된 사용자 이름 또는 비밀번호","account_error_incorrect_original_password":"잘못된 원래 암호","account_error_incorrect_password":"잘못된 비밀번호","account_error_username_not_found":"사용자 이름을 찾을 수 없습니다","account_error_can_not_reset_for_no_verified":"확인되지 않은 계정의 비밀번호는 재설정할 수 없습니다.","account_error_invalid_verification_code":"인증 코드가 잘못되었습니다. 다시 시도해 주세요.","account_error_expired_verification_code":"인증 코드가 만료되었습니다. 다시 시도해 주세요.","account_error_password_not_long_enough":"비밀번호가 충분히 길지 않습니다","account_error_attempt_limit_exceeded":"시도 제한을 초과했습니다. 잠시 후에 시도하십시오.","account_error_password_attempts_exceeded":"암호 시도 횟수를 초과했습니다.","account_error_invalid_phone_number_format":"잘못된 전화번호 형식","account_error_no_cell_phone_prefix":"전화번호의 접두사를 선택하세요.","account_error_username_already_exists":"사용자 이름이 이미 존재합니다","account_error_you_need_to_accept_license_terms":"먼저 라이선스 및 약관에 동의해야 합니다.","account_error_inactive_code":"초대 코드는 활성화된 코드가 아닙니다.","account_error_non_existent_code":"초대 코드가 존재하지 않습니다","account_error_unexpected":"예기치 않은 오류","account_error_can_not_change_email_before_phone_bound":"전화번호가 바인딩되기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_email_before_unbound_social_account":"소셜 계정 바인딩을 해제하기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_phone_before_email_bound":"이메일이 바인딩되기 전에는 전화번호를 변경할 수 없습니다.","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA를 비활성화하기 전에는 이메일 또는 휴대폰 번호를 변경할 수 없습니다.","account_error_not_supported_yet":"지원되지 않음","account_error_same_email":"새 이메일 주소는 원래 이메일 주소와 같을 수 없습니다.","account_error_same_phone":"새 전화번호는 원래 전화번호와 같을 수 없습니다.","account_error_email_not_exists":"이메일 주소가 존재하지 않습니다","account_error_email_already_exists":"주어진 이메일을 사용하는 계정이 이미 존재합니다.","account_error_phone_already_exists":"주어진 전화번호를 사용하는 계정이 이미 존재합니다.","account_error_mfa_token_mismatch":"소프트웨어 토큰 코드 불일치","account_error_recaptcha_not_loaded":"네트워크에 문제가 있습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_recaptcha_validation_failed":"ReCAPTCHA 유효성 검사에 실패했습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_sign_in_in_progress":"보류 중인 로그인 시도가 이미 진행 중입니다.","account_field_range":"{0}-{1} 문자 입력 제한","account_field_only_alphanumeric":"영숫자만 지원","account_field_only_alphanumeric_and_symbol":"영숫자 및 기호만 지원","account_field_only_chinese_alphanumeric_space_underline":"영숫자, 공백, 밑줄만 지원합니다.","account_field_prefix_without_number_space":"첫 번째 문자는 숫자나 공백일 수 없습니다.","account_field_suffix_without_space":"공백으로 끝날 수 없습니다.","account_field_without_repeat_space":"연속으로 여러 공백을 사용할 수 없습니다.","account_field_can_not_only_alphanumeric":"문자나 숫자만 사용할 수 없습니다.","account_field_must_have_number_characters":"숫자 문자가 있어야 합니다.","account_field_verification_code":"인증 코드는 6자리여야 합니다.","account_field_invitation_code":"초대 코드는 영숫자여야 합니다.","account_field_phone_number":"잘못된 전화번호 형식","account_invalid_email_format":"잘못된 이메일 형식","account_sign_out_confirm":"로그아웃하시겠습니까? 이렇게 하면 모든 작업이 중지됩니다.","account_sign_out_anyway":"무시하고 로그아웃","account_signing_out":"로그아웃 중...","account_request_save_settings":"설정이 저장되지 않습니다. 로그아웃하기 전에 변경 사항을 저장해야 합니다.","pay":"지불하다","pay_with_credit":"다운로드 가속화 비용을 지불합니다. {0} 크레딧이 필요합니다.","pay_with_credit_payed":"가속. 여전히 약 {0} 크레딧이 필요합니다.","create_payment":"결제 생성","pay_target":"표적","pay_for_torrent":"{0} 지불","your_subid":"당신의 subId","your_credits":"당신의 크레딧","pay_point_for_data":"{1} 데이터에 대해 {0} 포인트 지불","auto_renew":"자동 갱신 활성화","transaction_details":"상세 거래 내역","transaction_id":"ID","transaction_payer":"지불인","transaction_payee":"수취인","transaction_category":"범주","transaction_changed_amount":"변경 금액","transaction_meta":"메타","transaction_status":"상태","transaction_creation_time":"생성 시간","receipt_code":"영수증 코드","transfer_amount":"이체 금액","code_the_receipt_code":"아래의 영수증 코드를 지불인에게 복사하십시오.","fill_the_receipt_code":"수취인이 제공한 결제 코드를 입력하여 송금","expense":"비용","copied":"복사됨","transfer":"옮기다","receive":"받다","copy":"복사","withdraw_fund":"자금 인출","category_paydata_payer":"데이터 비용","category_paydata_payee":"데이터 수입","category_transfer":"옮기다","category_bonus":"보너스","category_recharge":"재충전","status_pending":"보류 중","status_completed":"완전한","status_finish":"마치다","status_failed":"실패한","tip_invalid_receiver":"잘못된 수신자 코드","tip_invalid_amount":"신용 금액은 0-1000 범위의 부동 소수점이어야 합니다(최소 정밀도는 0.001임).","credit_get_more":"더 많은 크레딧 받기","credit_no_data":"자료 없음","credit_loading":"로드 중...","credit_not_enough_amount":"크레딧이 부족합니다","credit_amount_not_enough":"크레딧이 부족합니다","credit_payee_not_exist":"수취인이 존재하지 않습니다.","credit_invalid_amount":"유효하지 않은 크레딧 금액","credit_can_not_transfer_to_yourself":"자신에게 양도할 수 없습니다.","credit_latest":"최신","credit_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","add_subtitles":"자막 추가","open_file":"파일 열기...","advanced_options":"고급 옵션","title":"제목","location":"위치","subtitle_file":"자막 파일","unsupported_subtitle_type":"{0} 파일 형식은 지원되는 자막 형식이 아닙니다.","not_default_player":"기본 비디오 플레이어가 설정되지 않았습니다.","this_is_an_audio_file":"이것은 오디오 파일입니다","the_added_subtitle_already_exists":"추가된 자막이 이미 존재합니다.","stop_stream_player":"작업이 일시 중지 또는 삭제되어 스트리밍 미디어가 종료되었습니다.","stop_player":"파일이 삭제되어 플레이어가 종료되었습니다.","playing_timeout_hint":"대기 시간이 초과되었습니다. 과제를 확인해주세요","autoplay_hint":"브라우저에서 자동 재생을 차단할 수 있습니다. 플레이어가 재생되지 않으면 화면을 클릭하여 계속하십시오.","remove_playing_confirm":"{0}는 아직 재생 중입니다. 제거하면 플레이어가 중지됩니다. 제거하시겠습니까?","unsupported_in_browser":"브라우저 모드에서는 아직 지원되지 않음","client":"고객","warning":"경고","enable":"할 수 있게 하다","disable":"장애를 입히다","auto":"자동","encrypt_connection":"연결 암호화","encrypted_connection":"암호화된 연결","non_encrypted_connection":"암호화되지 않은 연결","connected_wires_not_disconnect":"연결된 전선이 끊어지지 않습니다","audio":"오디오","video":"동영상","image":"영상","subtitle":"부제","zip":"지퍼","text":"텍스트","unknown":"알려지지 않은","add":"추가하다","undo":"실행 취소","backup":"지원","not_default_app":"${displayName}은(는) 토렌트 및 미디어용 기본 앱이 아닙니다. 기본값으로 설정하시겠습니까?","dont_show_again":"다시 표시하지 않음","go_to_settings":"설정으로 바로 가기","about_alphabiz":"약 ${displayName}","last_check_at":"마지막 확인 시간","update_channel":"채널 업데이트","check_for_update":"업데이트를 확인","checking_for_update":"업데이트 확인 중...","no_update_available":"사용 가능한 업데이트 없음","update_available":"업데이트 가능","update_now":"지금 업데이트","update_later":"나중에 업데이트","click_to_update":"지금 업데이트 버튼을 클릭하여 다운로드 및 업데이트","update_failed":"업데이트가 실패","update_failed_message":"업데이트하는 동안 오류가 발생했습니다:","check_shasum_failed":"설치 프로그램의 무결성을 확인하지 못했습니다.","downloading_update":"업데이트 다운로드 중...","ready_to_update":"업데이트 준비 완료","restart_to_update":"업데이트가 다운로드됩니다. ${displayName}는 잠시 동안 업데이트를 위해 종료됩니다.","already_latest":"현재 버전({0})은 이미 최신 버전입니다.","update_timeout":"업데이트 시간 초과","no_available_release":"사용 가능한 릴리스 없음","no_available_installer":"사용 가능한 설치 프로그램 없음","feedback":"피드백","select_a_type":"유형 선택","category":"범주","select_a_category":"카테고리 선택","require_title":"제목은 필수 항목입니다.","describe_your_problem":"문제를 설명하십시오","report_a_bug":"버그 신고","request_a_new_feature":"새 기능 요청","download_or_upload":"다운로드 업로드","others":"기타","submit_with_system_info":"시스템 정보와 함께 제출","submit_feedback":"피드백 제출","tweet_us":"트윗하기","tweet_too_long":"트윗이 너무 깁니다","delete_characters":"최소 {0} 문자를 삭제하십시오.","rest_characters":"{0} 더 많은 문자를 입력할 수 있습니다.","update_alphabiz":"업데이트 ${displayName}","current_version":"현재 버전","cancel_update":"업데이트 취소","slow_download_speed":"너무 느린 다운로드","slow_download_speed_caption":"현재 설치 프로그램 다운로드가 너무 느립니다. 네트워크 상태를 확인하십시오","update_canceled":"업데이트 취소됨","current_version_release_time":"현재 버전의 출시 시간","expired_app":"${displayName} 만료됨","version_out_of_date":"오래된 버전","have_to_update":"${displayName} 버전이 오래되었습니다. 일부 프로토콜 또는 API는 더 이상 사용되지 않습니다. 계속하기 전에 ${displayName}를 업데이트해야 합니다.","exit_alphabiz":"${displayName} 종료","exit_and_update":"종료 및 업데이트 적용","new_version_hint":"새 버전을 사용할 수 있습니다","no_new_version":"사용 가능한 새 버전이 없습니다.","current_is_latest":"현재 버전이 이미 최신 버전입니다.","click_to_check_update":"[업데이트 확인] 버튼을 클릭하여 업데이트 확인","download_latest_version_from_website":"최신 버전을 다운로드하려면 공식 웹 사이트를 방문하십시오.","to_the_website":"웹사이트로","network_diagnotic":"네트워크 진단","diagnotic":"특수 증상","click_to_check":"클릭하여 확인","click_to_check_again":"다시 확인하려면 클릭","checking":"확인 중","online":"온라인","offline":"오프라인","dns_look_up":"DNS 조회","error":"오류","aws_service":"AWS 서비스","network_pings":"네트워크 핑","not_found":"찾을 수 없음","packet_loss":"패킷 손실","official_site":"공식 사이트","download_test":"테스트 다운로드","test_task":"테스트 작업 {0}","download_failed":"다운로드 실패","second_spend":"{0} 지출","open_default_player_failed":"기본 플레이어를 열지 못했습니다.","copied_to_clipboard":"클립보드에 복사됨","go_to":"이동","region_not_available":"사용할 수 없는 지역","region_not_available_message":"죄송합니다! 귀하의 지역은 이 앱을 사용할 수 없습니다. 이 앱은 {0}초 후에 종료됩니다.","confirm":"확인하다","no_available_result":"사용 가능한 결과 없음","invalid_password_format":"비밀번호 포맷이 맞지 않습니다","invalid_password_format_same":"비밀번호는 기존 비밀번호와 동일합니다.","error_password":"비밀번호 오류","keychain_setting":"키체인","setting_description":"클라우드 스토리지: 주요 데이터를 클라우드에 저장합니다.\\n암호 변경: 미디어 라이브러리 키의 암호를 변경합니다.\\nMnemonic: 키 생성 및 복원을 위한 대체 방법입니다.\\n로컬 키 가져오기: 로컬에 저장된 키를 미디어 라이브러리로 가져옵니다.\\n내보내기 키: 현재 미디어 라이브러리 데이터를 로컬 또는 클라우드에 저장합니다.\\n클라우드에 키 백업: 백업을 위해 현재 미디어 라이브러리 데이터를 클라우드로 업데이트합니다.","refresh_status":"업데이트 상태","confirm_import_key":"가져오기 키 확인","confirm_update_cloud_key":"이미 클라우드에 키가 있습니다. 키를 업데이트하면 원래 키를 덮어씁니다. 클라우드에 저장된 키를 업데이트하시겠습니까?","export_key_with_cloud":"클라우드에 저장된 라이브러리 키를 내보내기 위해 설정한 독립 암호를 입력하고 잠금 해제 암호로 키 파일을 잠급니다.","store_cloud_key_prompt_password":"클라우드에 라이브러리 키를 저장하기 위해 독립적인 암호를 입력하십시오.","update_cloud_key_prompt_password":"독립적인 암호를 설정하여 라이브러리 키를 암호화한 다음 클라우드로 업데이트","enable_cloud_storage_prompt_password":"클라우드에 저장된 키의 암호를 설정하여 클라우드에서 키를 검색할 수 있습니다.","input_unlock_password":"잠금해제 비밀번호 설정","export_local_prompt_password":"키 파일을 암호화하려면 잠금 해제 암호를 설정하십시오. 이 비밀번호는 저장되지 않으므로 비밀번호를 분실하면 라이브러리 키를 잠금 해제할 수 없습니다.","require_unlock_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","require_independent_password":"클라우드에 저장된 키를 가져오려면 독립적인 비밀번호를 입력하세요.","import_local_prompt_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","select_encrypt_mode":"암호화 모드 선택","update_cloud_key":"클라우드에 저장된 키 업데이트","backup_to_cloud":"라이브러리 키를 클라우드에 백업","save_local":"라이브러리 키를 로컬 암호화 파일로 저장","create_new_key":"새 라이브러리 키 만들기","creating_lib_key":"라이브러리 키 생성 중...","loading_lib_key":"라이브러리 키 로드 중...","failed_to_create_lib_key":"라이브러리 키를 만들지 못했습니다.","failed_to_load_lib_key":"라이브러리 키를 로드하지 못했습니다.","import_local_key":"로컬로 키 가져오기","import_lib_key_from_local":"라이브러리 키를 로컬로 가져오기","import_from_cloud":"클라우드에서 라이브러리 키 가져오기","create_or_import_key":"라이브러리 키 만들기 또는 가져오기","create_or_import_key_desc":"라이브러리 키는 분산형 데이터베이스로 콘텐츠를 가져오고 게시하는 데 사용되는 독립적인 키입니다.","store_your_lib_key":"라이브러리 키 저장","export_cloud_key":"클라우드에서 키 내보내기","export_current_key":"현재 키 내보내기","change_password":"비밀번호 변경","enable_cloud_storage":"클라우드 스토리지 활성화","disable_cloud_storage":"클라우드 스토리지 비활성화","disable_cloud_storage_desc":"클라우드 저장소를 비활성화하면 클라우드에 저장된 키가 제거됩니다. 키가 로컬에 저장되었는지 확인하십시오.","sync_at":"동기화 위치: {time}","cloud_storage_enabled":"{storage}와 키체인 동기화","cloud_storage_disabled":"클라우드 스토리지 비활성화됨","saved_locally":"로컬에 저장됨","export_key":"키 파일 내보내기","cloud_independent_password":"클라우드 독립 암호","key_file_unlock_password":"키 파일 잠금 해제 암호","re_enter_unlock_password":"잠금해제 비밀번호 재입력","independent_password_not_enabled":"현재 비밀번호는 알파비즈 계정 비밀번호입니다(독립적인 비밀번호는 설정되어 있지 않습니다)","use_cognito_hash":"Alphabiz 계정 비밀번호 사용","use_independent_password":"독립적인 비밀번호 사용","keychain_lib":"도서관 열쇠","loading_keychain_state":"키체인 로드 중...","backing_up":"백업...","backup_current_key":"현재 키를 클라우드에 백업","cloud_lib_key_not_existed":"클라우드에 라이브러리 키가 없습니다.","open_keychain_file":"키체인 파일 열기","confirm_open_abk":"ABK 파일을 여시겠습니까","use_the_key":"열쇠를 사용","backup_the_key":"키를 클라우드에 백업","keychain_data_does_not_exist":"키체인 데이터가 존재하지 않습니다","timeout of 0ms exceeded":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","XhrError":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","payer credit amount is not enough":"크레딧이 부족합니다","payee does not exist":"수취인이 존재하지 않습니다.","block_list_manage":"차단 목록 관리","blocked_users":"차단된 사용자","blocked_channels":"차단된 채널","unblock_user":"사용자 차단 해제","unblock_channel":"채널 차단 해제","no_blocked_user":"차단된 사용자 없음","no_blocked_channel":"차단된 채널 없음","field_required":"{0}이(가) 필요합니다.","setting":"환경","unknown_media":"알 수 없는 미디어","settings_button_visible":"버튼 표시","settings_setting":"환경","settings_playback_rate":"재생 속도","settings_subtitle":"부제","settings_pip":"씨","settings_fullscreen":"전체 화면","settings_subtitle_options":"자막 옵션","settings_normal":"정상","settings_italic":"이탤릭체","settings_lighter":"거룻배","settings_bolder":"대담한","settings_small":"작은","settings_large":"크기가 큰","about":"에 대한","services":"서비스","hide":"숨다","hide_others":"다른 사람 숨기기","show_all":"모두 보이기","quit":"그만두다","edit":"편집하다","redo":"다시 하다","cut":"자르다","paste":"반죽","select_all":"모두 선택","view":"보다","reload":"새로고침","toggle_full_screen":"전체 화면 전환","toggle_developer_tools":"개발자 도구 전환","window":"창문","minimize":"최소화","bring_all_to_front":"모두 앞으로 가져오기","help":"돕다","github_repo":"Github 레포","issues":"문제","learn_more":"더 알아보기","learn_spelling":"맞춤법 배우기","lookup_selection":"\\"{selection}\\" 검색","search_with_google":"Google로 검색","save_as":"다른 이름으로 저장","save_image":"이미지를 저장","save_image_as":"이미지를 다른 이름으로 저장...","copy_link":"링크 복사","save_link_as":"다른 이름으로 링크 저장...","copy_image":"복사 이미지","copy_image_as":"다음으로 이미지 복사...","copy_image_address":"이미지 주소 복사","download_complete":"다운로드를 완료하였습니다","download_complete_message":"{0} 다운로드됨","is_running":"{0} 실행 중","open":"{0} 열기","launch_problem":"시작 문제","ask_clear_data":"{0}를 실행하려고 시도했지만 여러 번 실패한 것 같습니다.\\n모든 앱 데이터를 지우고 나중에 실행하시겠습니까?","launch_directly":"직접 실행","clear_all_data":"모든 데이터 지우기","ask_clear_confirm":"이렇게 하면 모든 구성, 로그 및 사용자 데이터가 제거됩니다!\\n그런 다음 {0}를 다시 시작해야 할 수도 있습니다.\\n데이터를 지우시겠습니까?","confirm_launch":"아니요, 직접 시작합니다.","confirm_clear":"예, 모든 데이터를 삭제합니다."}')},"6bdd":function(e,t){e.exports=require("child_process")},"6ce4":function(e,t,a){},7:function(e,t){},7285:function(e,t,a){"use strict";a("c066")},7297:function(e,t,a){"use strict";a("a5fe")},7405:function(e,t,a){},7447:function(e,t,a){},7686:function(e,t,a){},"76b4":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},7895:function(e,t,a){"use strict";a("ae24")},"7ad0":function(e,t,a){},"7d7c":function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return me}));a("a1c1"),a("7a76");var n=a("c620"),o=a("f680"),i=a("61a1"),r=a("1926"),s=a("5584"),l=a("eb7a"),c=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",{staticStyle:{position:"relative"}},[a("input",{ref:"file",staticStyle:{display:"none"},attrs:{id:"media-file-upload",type:"file","data-cy":"file-input"},on:{input:e.manualAddFile}}),a("input",{ref:"subtitle",staticStyle:{display:"none"},attrs:{type:"file",accept:".srt,.vtt"},on:{input:e.manualAddSubtitle}}),a("div",{attrs:{id:"video-container",lang:e.lang}},[a("video",{ref:"video",staticClass:"video-js vjs-default-skin vjs-16-9 vjs-big-play-centered vjs-fluid",staticStyle:{height:"100%"},attrs:{crossorigin:"anonymous",id:"my-video"}})]),a("audio-info",{attrs:{show:e.isAudio}}),a("video-splash",{attrs:{show:e.showSplash,videoLoadingHint:e.videoLoadingHint}}),a("advanced-options",{attrs:{show:e.showAdvancedOptions,advancedOptions:e.advancedOpt},on:{close:function(){return e.toggleAdvancedOptions(!1)}}})],1)},d=[];a("de6c"),a("dc89"),a("2425"),a("d4b5");const u=a("bc7b"),_=a("d6fe"),p=a("17de"),m=a("5c0c");function h(e){const t=e.path||e;if(console.log(t),!u.existsSync(t)&&!u.existsSync(t+".downloading"))return[];const a=_.dirname(e.path),n=_.extname(e.path),o=e.name.substring(0,e.name.lastIndexOf("."));console.log(a,o,n);const i=b(a,o),r=f(a,i),s=y(a,o),l=g(a,s);return[...r,...l]}function g(e,t){const a=[];try{t.forEach(((t,n,o)=>{o[n]=e+"/"+t;const i=u.readFileSync(o[n]),r=m.decode(i,p.detect(i)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),s=1===(t.match(/\./g)||[]).length?t:_.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".srt";a.push({src:URL.createObjectURL(new Blob([v(r)])),label:s,path:e+"\\"+t})}))}catch(n){console.log(n)}return console.log(a),a}function f(e,t){const a=[];try{t.forEach(((t,n,o)=>{o[n]=e+"/"+t;const i=u.readFileSync(o[n]),r=p.analyse(i);console.log("encoding",r);const s=m.decode(i,p.detect(i)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),l=1===(t.match(/\./g)||[]).length?t:_.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".vtt";a.push({src:URL.createObjectURL(new Blob([s])),label:l,path:e+"\\"+t})}))}catch(n){console.log(n)}return console.log(a),a}function b(e,t){let a;try{a=u.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".vtt")))}catch(n){console.log(n)}return a}function y(e,t){let a;try{a=u.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".srt")))}catch(n){console.log(n)}return a}function v(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}const k=a("d310").isElectron();function S(e){if(!k||"string"!==typeof e)return e;const t=a("d6fe"),n=t.basename(e);return{name:n,path:e}}var C=a("4fd2"),x=a("3d18"),$=a("e3c7"),T=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],attrs:{id:"video-splash"}},[a("div",{staticClass:"loading"},[a("q-circular-progress",{staticClass:"q-ma-md",attrs:{indeterminate:"",size:"24px",color:"warning"}}),a("p",[e._v(e._s(e.videoLoadingHint))])],1)])])},z=[],P={name:"VideoSplash",props:{show:{type:Boolean},videoLoadingHint:{type:String}},data(){return{}},created(){},mounted(){},computed:{},methods:{}},A=P,I=(a("e0e1"),a("2b5f")),q=a("64e7"),O=a("09a4"),E=a.n(O),D=Object(I["a"])(A,T,z,!1,null,"bcdd35fc",null),j=D.exports;E()(D,"components",{QCircularProgress:q["a"]});var N=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"audio-info-container"},[a("p",{staticClass:"info"},[e._v(e._s(e.$t("this_is_an_audio_file")))]),a("img",{attrs:{src:e.icon,alt:"favicon",width:"100px"}})])])},L=[],U={name:"AudioInfo",components:{},props:{show:{type:Boolean}},data(){return{icon:"developer/assets/icon-256.png"}},created(){},mounted(){},computed:{},methods:{}},R=U,M=(a("eb21"),Object(I["a"])(R,N,L,!1,null,"d5366250",null)),F=M.exports,B=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show},on:{input:e.close}},[a("q-card",{staticStyle:{width:"600px","max-width":"80vw","overflow-x":"hidden"}},[a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"text-h6 col-12"},[e._v(e._s(e.$t("advanced_options")))])]),a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"col-4 justify-start q-pl-xl q-my-md"},[e._v(e._s(e.advancedOptions[0].name)+":")]),a("div",{staticClass:"col-8 justify-start q-pl-md q-my-md",staticStyle:{"word-wrap":"break-word"}},[e._v(e._s(e.advancedOptions[0].value))]),a("div",{staticClass:"col-4 justify-start q-pl-xl q-my-md"},[e._v(e._s(e.advancedOptions[1].name)+":")]),a("div",{staticClass:"col-8 justify-start q-pl-md q-my-md",staticStyle:{"word-wrap":"break-word"}},[e._v(e._s(e.advancedOptions[1].value))]),a("div",{staticClass:"col-4 justify-start q-pl-xl q-my-md"},[e._v(e._s(e.advancedOptions[2].name)+":")]),a("div",{staticClass:"col-8 justify-start q-pl-md q-my-md",staticStyle:{"word-wrap":"break-word"}},e._l(e.advancedOptions[2].value,(function(t,n){return a("div",{key:n,staticClass:"license-section"},[e._v("\n "+e._s(t.label)+"\n ")])})),0)])],1)],1)},W=[],H={name:"AdvancedOptions",components:{},props:{show:Boolean,advancedOptions:Array},data(){return{}},created(){},mounted(){},computed:{},methods:{close(){this.$emit("close")}}},V=H,Q=a("b2aa"),G=a("e586"),K=a("d7c7"),Y=Object(I["a"])(V,B,W,!1,null,"5c3e2e5d",null),J=Y.exports;E()(Y,"components",{QDialog:Q["a"],QCard:G["a"],QCardSection:K["a"]});var Z=a("d710"),X=a.n(Z),ee=a("908d"),te=a("d558");const ae=a("d310").isElectron();window.videojs=l["default"],a("4b37"),a("94ce"),a("63f2");const ne=X.a.fileName,oe={toggleSplash(){},updatePlayer(){}};var ie={name:"Player",inject:["rootApp","io"],components:{VideoSplash:j,AudioInfo:F,AdvancedOptions:J},data(){return{player:null,playerOptions:{fill:!1,autoplay:!0,responsive:!0,fluid:!0,preload:"auto",controls:!0,controlBar:{volumePanel:{inline:!1}}},subsBtn:null,progress:[],fileName:"",playerLang:"",playerCacheTime:0,showSplash:!1,videoLoadingHint:"",showAdvancedOptions:!1,isUpdateSubtitle:"",isAudio:!1,isPause:!1}},created(){this.initVideoComponent(),this.playerLang=s["a"].state.setting.language,this.playerCacheTime=s["a"].state.setting.videoCacheTime,window.addEventListener("error",(e=>{console.log("Uncaught global error",e.message,"\nThis has no effect to app and can be ignore")})),ae&&($["ipcRenderer"].once("ask-for-player",(()=>{this.$q.notify({message:this.$t("not_default_player"),actions:[{label:this.$t("dont_show_again"),textColor:"warning",handler:()=>{s["a"].dispatch("set",{dontAskForPlayer:!0})}},{label:this.$t("go_to_settings"),textColor:"warning",handler:()=>{this.$router.push("/basicSetting")}}]}),s["a"].dispatch("set",{dontAskForPlayer:!0})})),this.$root.$on("pause-player-before-close",(()=>{this.player&&(this.isPause=!0,s["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),s["a"].state.video.currentVideo.status&&this.player&&this.player.pause())})));for(const e in oe)"function"===typeof this[e]&&(oe[e]=(...t)=>this[e](...t))},mounted(){console.log("player mounted"),this.loadPlayer(!0)},async activated(){if(this.playerLang!==s["a"].state.setting.language&&(this.playerLang=s["a"].state.setting.language,this.languageChange()),this.playerCacheTime!==s["a"].state.setting.videoCacheTime){console.log("videoCacheTime change",s["a"].state.setting.videoCacheTime),this.playerCacheTime=s["a"].state.setting.videoCacheTime;const e=this.updateCacheRate(s["a"].state.setting.videoCacheTime);if(e){this.updateSrc(s["a"].state.video.currentVideo.url,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(s["a"].state.video.currentVideo.currentTime);const e=s["a"].state.video.currentVideo.currentTime/this.player.duration(),t=document.querySelector(".vjs-play-progress");t&&setTimeout((()=>{t.style.width=100*e+"%"}),500)}}if(ae||Object(te["a"])()){if(s["a"].state.video.currentVideo.remotePlay){this.isUpdateSubtitle="",this.isPause=!1,this.loadPlayer(!0),this.toggleSplash(!0),this.player.bigPlayButton.hide();const e=setTimeout((()=>{this.videoLoadingHint=this.$t("playing_timeout_hint")}),18e4);$["ipcRenderer"].send("get-stream-address"),$["ipcRenderer"].once("stream-address",((t,a)=>{console.log("got stream address",a),this.toggleSplash(!1),clearTimeout(e);let{address:n,filepath:o}=a;console.log("Stream play, try update player.src",a,"address",n,"filepath",o),o||(o="win32"===process.platform?decodeURI(n).replace("play:///","").replace(/\//g,"\\"):decodeURI(n).replace("play://","")),s["a"].dispatch("currentVideoUrl",n),s["a"].dispatch("currentVideoPath",o),s["a"].dispatch("currentVideoCurrentTime",0);try{this.updateSrc(n),this.isPause?(setTimeout((()=>{this.player.pause()}),1e3),this.isPause=!1):this.player.play(),this.player.readyState()&&s["a"].dispatch("resetRemotePlay"),this.clearOldSubtitle(),this.addSubtitle(o),this.changeSubtitleForLang()}catch(t){console.log("src err",t),s["a"].dispatch("resetRemotePlay")}}))}s["a"].state.video.currentVideo.url||s["a"].state.video.currentVideo.infoHash||this.loadPlayer(!0),$["ipcRenderer"].on("pause-player",(()=>{this.player&&(this.isPause=!0,s["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),s["a"].state.video.currentVideo.status&&this.player&&this.player.pause())}))}else s["a"].state.video.currentVideo.url!==this.player.src()&&console.log("url changed",s["a"].state.video.currentVideo.url,this.player.src());this.io.on("server_progress",(e=>{var t;if("/player"!==this.$router.currentRoute.path)return;if(!this.player&&!this.player.readyState())return;if(null===(t=s["a"].state.video.currentVideo)||void 0===t||!t.url)return;const a=e.find((e=>{var t;return null===(t=s["a"].state.video.currentVideo)||void 0===t?void 0:t.url.includes(e.name)}));if(a&&a.progress){const e=[],t=a.progress.length;let n=a.progress[0],o=1;for(let i=1;i{this.isUpdateSubtitle||(this.isUpdateSubtitle=e,console.log("update_subtitleList!!!",e,"path:",s["a"].state.video.currentVideo.path,t))})),this.io.on("clear_player",(e=>{const t=s["a"].state.video.currentVideo.url;if(s["a"].state.video.currentVideo.infoHash!==e.infoHash)return;const a=/^http/gm.test(t),n=/^play:\/\//gm.test(t);n&&"paused"===e.status||(a||n)&&(console.log("is",a,n),s["a"].state.video.currentVideo.pipStatus&&this.player.exitPictureInPicture(),s["a"].dispatch("resetPlayer"),this.$destroy(),setTimeout((()=>{console.log("timeout",a,n),this.$router.push("/player");try{this.loadPlayer(!0)}catch(e){console.log("Failed to force load player. This will not go wrong.",e.message||e)}a&&this.$q.notify(this.$t("stop_stream_player")),n&&this.$q.notify(this.$t("stop_player"))}),500))}))},beforeDestroy(){this&&this.player&&this.player.dispose()},computed:{lang(){const e=s["a"].state.setting.language?s["a"].state.setting.language:"en-US";return this.player&&this.player.language(e),e},settings(){const e=s["a"].state.setting;return{defaultVideoPlayer:e.defaultVideoPlayer,language:e.language}},advancedOpt(){let e=s["a"].state.video.currentVideo.path;const t=s["a"].state.video.currentVideo.url;t&&t.startsWith("play://")&&(e=decodeURI(t).replace("play:///",""));const a=e?e.replace(/^.*[\\\/]/,""):this.fileName;return[{name:this.$t("title"),value:decodeURIComponent(a).replace("\\","")},{name:this.$t("location"),value:e},{name:this.$t("subtitle_file"),value:s["a"].state.video.currentVideo.subtitleList}]}},watch:{"$store.state.video.currentVideo.updatePlayer"(e,t){console.log("watch updatePlayer:",e),e&&e!==t&&(console.log("need update player"),s["a"].dispatch("updatePlayer",!1),this.updatePlayer(s["a"].state.video.currentVideo.url))}},methods:{toggleSplash(e,t=""){this.showSplash=e,this.videoLoadingHint=t},toggleAudio(e){this.isAudio=e},toggleAdvancedOptions(e){this.showAdvancedOptions=e},openFile(){console.log("click",this.$refs.file),this.$refs.file.click()},bigPlayBtnOpenFile(){const e=document.querySelector("#my-video video").src;console.log("bigPlayBtn",e),e?this.player.play():this.openFile()},async languageChange(){this.player&&(this.player.language(this.lang),this.updateComponentText(),s["a"].state.video.currentVideo.url&&await this.loadPlayer(!0))},manualAddFile(e){console.log("Open Media File: "+e.target.files[0]),0!==e.target.files.length&&(e.target.files[0].path&&s["a"].dispatch("currentVideoPath",e.target.files[0].path),this.updatePlayer(e.target.files[0]),setTimeout((()=>{this.$refs.file.value=null}),500))},async manualAddSubtitle(e){const t=e.target.files;if(!t.length)return;const a=t[0],n=this.player.textTracks(),o=await this.addSubtitle(a,a.name);console.log("manualAddSubtitle",a,a.name,o);let i=-1;setTimeout((()=>{for(let e=0;e`,this.updateTitle=function(e){this.el_.innerHTML=``}}})),l["default"].registerComponent("SubsButton",l["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Add subtitles...",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}})),l["default"].registerComponent("AddSubButton",l["default"].extend(t,{constructor:function(){t.apply(this,arguments);const e=arguments[1];this._text=e.text||"Add subtitles...",this.el_.innerHTML+=`${this._text}`}})),l["default"].registerComponent("AdvancedOptionsButton",l["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Advanced Options",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}}));const a=l["default"].getComponent("SeekBar");a.prototype.getPercent=function(){const e=this.player_.currentTime(),t=e/this.player_.duration();return t>=1?1:t},a.prototype.handleMouseMove=function(e){let t=this.calculateDistance(e)*this.player_.duration();t===this.player_.duration()&&(t-=.1),this.player_.currentTime(t),this.update()}},addControlBarComponent(){const e=this.player.controlBar.addChild("FileButton",{text:this.$t("open_file")},1),t=ee["b"].is.mobile?"touchend":"click";e.on(t,this.openFile),this.subsBtn=this.player.controlBar.addChild("SubsButton",{text:this.$t("add_subtitles")+"..."},14),this.subsBtn.on(t,(()=>this.$refs.subtitle.click()));const a=this.player.controlBar.addChild("AdvancedOptionsButton",{text:this.$t("advanced_options")},16);a.on(t,(()=>{this.player.isFullscreen()&&this.player.exitFullscreen(),this.toggleAdvancedOptions(!0)}))},updateComponentText(){const e=this.player.controlBar.getChild("FileButton");e.updateTitle(this.$t("open_file")),this.subsBtn.updateTitle(this.$t("add_subtitles")+"...");const t=this.player.controlBar.getChild("AdvancedOptionsButton");t.updateTitle(this.$t("advanced_options"))},loadPlayer(e=!1){let t=()=>{};const a=new Promise((e=>{t=e}));if(!l["default"].getPlayer("my-video")||e){if(e){Object(l["default"])("my-video")&&(Object(l["default"])("my-video").isInPictureInPicture()&&Object(l["default"])("my-video").exitPictureInPicture(),Object(l["default"])("my-video").dispose());const e=document.querySelector("#video-container");e&&(e.innerHTML='')}try{this.player=Object(l["default"])("my-video",this.playerOptions,(()=>t()))}catch(n){console.log("loadPlayer error",n);const e=n.message;e.includes("The element or ID supplied is not valid.")&&(s["a"].dispatch("resetPlayer"),this.$destroy())}if(this.player.on("ready",(async()=>{s["a"].dispatch("updateVideoStatus",!1)})),this.player.on("canplay",(async()=>{s["a"].dispatch("resetRemotePlay");const e=(ae?s["a"].state.video.currentVideo.path:this.fileName||s["a"].state.video.currentVideo.url).split(".").pop();if(this.toggleAudio(Object(C["b"])(e)),this.isUpdateSubtitle&&s["a"].state.video.currentVideo.infoHash===this.isUpdateSubtitle&&s["a"].state.video.currentVideo.path&&(await this.addSubtitle(s["a"].state.video.currentVideo.path),this.changeSubtitleForLang(),this.isUpdateSubtitle=""),!s["a"].state.video.currentVideo.url){const e=document.querySelector("#my-video video").src;s["a"].dispatch("currentVideoUrl",e);const t=e.split("/"),a=t[t.length-1];"undefined"!==typeof a&&(this.fileName=a),this.loadPlayer(!0),setTimeout((()=>this.player.play()),500)}setTimeout((()=>{!1===s["a"].state.video.currentVideo.status&&this.player.paused()&&this.player.bigPlayButton.show()}),700)})),this.player.on("play",(async()=>{if(this.settings.defaultVideoPlayer!==ne&&s["a"].state.video.currentVideo.url.startsWith("play://")&&s["a"].state.video.currentVideo.infoHash){this.player.pause(),this.player.exitPictureInPicture();const e=s["a"].state.video.currentVideo.path;return console.log("player will pause,open default player,"+e),await Object(x["b"])(this.settings.defaultVideoPlayer,e),s["a"].dispatch("resetPlayer"),this.loadPlayer(!0)}this.player.bigPlayButton.hide(),s["a"].dispatch("updateVideoStatus",!0)})),this.player.on("pause",(()=>{4===this.player.readyState()&&this.player.bigPlayButton.show(),s["a"].dispatch("updateVideoStatus",!1)})),this.player.on("seeked",(()=>{setTimeout((()=>{const e=document.querySelector(".vjs-load-progress"),t=document.querySelector(".vjs-play-progress");e.style.width=t.style.width}),200)})),this.player.on("waiting",(()=>{const e=document.querySelector("#my-video video");e&&(e.style.backgroundColor="black")})),this.player.on("loadedmetadata",(()=>{const e=s["a"].state.video.currentVideo.url;if(!e||!/^http/gm.test(e))return;if(!/wait=0$/gm.test(e)||0===s["a"].state.setting.videoCacheTime)return;const t=this.updateCacheRate(s["a"].state.setting.videoCacheTime);console.log("loadedmetadata!",t),t&&(this.updateSrc(e,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(s["a"].state.video.currentVideo.currentTime))})),this.player.on("leavepictureinpicture",(()=>{this.player&&this.player.bigPlayButton.hide(),s["a"].dispatch("updateVideoPIPStatus",!1),setTimeout((()=>{try{this.player.paused()?this.player.bigPlayButton.show():this.$router.push("/player")}catch(n){console.log("Failed to check pause status, but nothing will go wrong with this.",n.message||n)}}),500)})),this.player.on("enterpictureinpicture",(()=>{s["a"].dispatch("updateVideoPIPStatus",!0),this.player.paused()||setTimeout((()=>this.player.play()),500)})),this.player.on("timeupdate",(()=>{s["a"].dispatch("currentVideoCurrentTime",this.player.currentTime())})),this.player.on("error",(()=>{this.toggleSplash(!1),console.log("player error event!",this.player.error_.message);const e=this.player.languages()[this.player.language()],t=e&&e[this.player.error_.message]||this.player.error_.message;if(4!==this.player.error_.code||ae||Object(te["a"])())this.$q.notify(t);else{const e='open_in_new',a=`${this.$t("download")} ${ne} Desktop${e}`,n=`${a}`,o=this.$q.notify({html:!0,message:`${t}${n}`,actions:[{label:this.$t("close"),color:"green",handler(){o()}}],timeout:0})}s["a"].dispatch("resetPlayer"),this.$q.loading.hide(),this.loadPlayer(!0)})),s["a"].state.video.currentVideo.url&&!s["a"].state.video.currentVideo.remotePlay){this.player&&this.player.bigPlayButton.hide();const e=s["a"].state.video.currentVideo.subtitleList,t=s["a"].state.video.currentVideo.status,a=s["a"].state.video.currentVideo.updatePlayer;if(this.updateSrc(s["a"].state.video.currentVideo.url),this.player.currentTime(a?0:s["a"].state.video.currentVideo.currentTime),console.log("loadplayer(force) status",a,t,e,this.player),!a&&!t&&!/^https:\/\/localhost:8080\/webtorrent/gm.test(s["a"].state.video.currentVideo.url)){const e=()=>{this.player.pause(),this.player.off("play",e)};this.player.on("play",e)}"undefined"!==typeof e&&e.length?this.restoreSub(e):this.addSubtitle(s["a"].state.video.currentVideo.path),s["a"].dispatch("updatePlayer",!1)}return ee["b"].is.mobile?this.player.bigPlayButton.on("touchend",this.bigPlayBtnOpenFile):this.player.bigPlayButton.on("click",this.bigPlayBtnOpenFile),this.addControlBarComponent(),s["a"].dispatch("updateVideoPIPStatus",!1),a}this.player=l["default"].getPlayer("my-video")},async updatePlayer(e){if(!e)return;this.player||await this.loadPlayer(!0);const t="string"===typeof e?e:URL.createObjectURL(e);console.log("update Player",e,t),this.fileName=e.name,s["a"].dispatch("currentVideoUrl",t);try{this.updateSrc(t)}catch(a){console.debug("updateSrc error",a.message||a),await this.loadPlayer(!0)}s["a"].dispatch("resetInfoHash"),this.clearOldSubtitle(),s["a"].state.video.currentVideo.path?await this.addSubtitle(s["a"].state.video.currentVideo.path):await this.addSubtitle(e,e.name),this.changeSubtitleForLang()},updateSrc(e,t={clearSubtitle:!0,clearProgress:!0}){this.toggleAudio(!1),t.clearProgress&&this.clearProgress(),t.clearSubtitle&&s["a"].dispatch("currentVideoSubtitleList",[]),e.startsWith("play://")&&(e+=`?infoHash=${s["a"].state.video.currentVideo.infoHash}`),console.log("updateSrc()",e),this.player.src([{src:e,type:"video/mp4"}])},updateCacheRate(e){if(!this.player.duration())return;const t=60*e/this.player.duration(),a=s["a"].state.video.currentVideo.url;return!!a&&(s["a"].dispatch("currentVideoUrl",a.replace(/wait=.*/gm,`wait=${t}`)),!0)},updateProgress(e){if(e){let t=document.querySelector("#download-progress");if(!t){const e=document.querySelector(".vjs-progress-holder");if(!e)return;t=e.appendChild(document.createElement("div")),t.id="download-progress"}const a=e=>{let t=0;for(let a=0;a1?t+e[a].length:t+1,e[a].rate=t;return e},n=a(e);t.style.background=n.reduce(((e,t)=>e+`, ${t.color} 0%, ${t.color} ${t.rate}%`),"linear-gradient(90deg")+")"}},clearProgress(){let e=document.querySelector("#download-progress");if(!e){const t=document.querySelector(".vjs-progress-holder");if(!t)return;e=t.appendChild(document.createElement("div")),e.id="download-progress"}e.style.background=""},async addSubtitle(e,t){var a;console.log("sub",e,t);let n=e;if("string"===typeof e){if(e.startsWith("blob:"))return;n=e.startsWith("play://")?S(decodeURI(e.replace("play:///",""))):S(e)}t||(t=(null===(a=n)||void 0===a?void 0:a.name)||"");const o=t.match(/\.[^.]+$/);if(!o)return;const i=o[0].toLowerCase();console.log("addSubtitle sub",n,t);let r=!1,s=!1;if(ae)[".ass"].includes(i)?console.log("add .ass sub"):await Promise.all(h(n).map((e=>new Promise((a=>{setTimeout((()=>{s=this.isRepeatSubtitle(e.label,e.path),"number"!==typeof s&&(this.player.addRemoteTextTrack({kind:"captions",label:e.label||t,src:e.src},!0),this.updateSubtitleList(e.label||t,{path:e.path}),r=!0),a()}))})))));else{if(console.log("web addSubtitle"),![".srt",".vtt"].includes(i))return;s=this.isRepeatSubtitle(t),"number"!==typeof s&&await new Promise((e=>{const a=new FileReader;a.readAsText(n),a.onload=a=>{const n=".vtt"===i?a.target.result:v(a.target.result);console.log(a.target.result),this.player.addRemoteTextTrack({src:URL.createObjectURL(new Blob([n])),kind:"captions",label:t},!0),this.updateSubtitleList(t),r=!0,e()}}))}if(r&&this.subsBtn){this.subsBtn.addClass("hidden"),this.listenSubsCapsMenuItem();const e=this.player.textTracks();e&&e[0]&&(e[0].mode="showing",this.updateSubtitleList(e[0].label,{isShow:!0})),this.appendAddSubBtn()}return s},isRepeatSubtitle(e,t){const a=s["a"].state.video.currentVideo.subtitleList;let n=!1;for(let o=0;o{a[o].label===e&&(n=o),a[o].isShow=!1})),"number"===typeof t.index?a[t.index].isShow=!0:-1!==n&&(a[n].isShow=!0)}else a.push({label:e,path:t.path,isShow:t.isShow});s["a"].dispatch("currentVideoSubtitleList",a)},listenSubsCapsMenuItem(){const e=this.player.controlBar.subsCapsButton,t=e.menu.children();t.forEach(((e,t)=>{if("SubsCapsMenuItem"===e.constructor.name){const a=ee["b"].is.mobile?"touchend":"click";e.on(a,(()=>{this.updateSubtitleList(e.track.label,{index:t-2,isShow:!0})}))}}))},clearOldSubtitle(){if(!this.subsBtn)return;this.subsBtn.removeClass("hidden");const e=this.player.remoteTextTracks();for(let t=e.length-1;t>=0;t--)this.player.removeRemoteTextTrack(e[t])},async restoreSub(e){let t;console.log("restoreSub",e),s["a"].dispatch("currentVideoSubtitleList",[]);for(const a in e){if(!e[a].path)return;await this.addSubtitle(e[a].path),e[a].isShow&&(t=a)}if("string"===typeof t){const e=this.player.textTracks();for(let t=0;t{const t=this.player.controlBar.subsCapsButton,a=t.menu.children();if(!a)return;if(a.some((e=>"AddSubButton"===e.name_)))return;const n=t.menu.addChild("AddSubButton",{text:e.$t("add_subtitles")+"..."},2);n.addClass("add-sub-btn");const o=ee["b"].is.mobile?"touchend":"click";n.on(o,(()=>{this.$refs.subtitle.click()}))}),1e3)}}},re=ie,se=(a("803a"),a("9b72")),le=a("f106"),ce=Object(I["a"])(re,c,d,!1,null,null,null);ce.exports;E()(ce,"components",{QPage:se["a"],QIcon:le["a"]});var de=a("6422");const ue=()=>{const e=l["default"].getAllPlayers();return Array.isArray(e)?e[0]:null},_e=()=>{const e=()=>(n["wtClient"].torrents[0]&&n["wtClient"].torrents[0].files&&n["wtClient"].torrents[0].files.forEach((e=>{e._serviceWorker&&"activated"===e._serviceWorker.state||(e._serviceWorker=n["wtClient"].serviceWorker)})),!0);if(n["wtClient"].serviceWorker&&"activated"===n["wtClient"].serviceWorker.state){if("activated"===n["wtClient"].serviceWorker.state)return e();n["wtClient"].serviceWorker=null}if(!navigator.serviceWorker||!navigator.serviceWorker.controller)return!1;const t=navigator.serviceWorker.controller;return"activated"===t.state&&(n["wtClient"].loadWorker(t),e())};let pe=null;function me(e){if("string"===typeof e&&e.startsWith("/webtorrent/")&&(e=e.replace("/webtorrent/","")),oe.toggleSplash(!1),!_e())return void o["a"].create(r["b"].t("service_worker_error"));if(!n["wtClient"].torrents[0])return void o["a"].create(r["b"].t("add_task_first"));let t=!1;const a=Date.now();Object(i["b"])().push({name:"Player",params:{action:{type:"play_remote"}}}),pe&&clearInterval(pe),oe.toggleSplash(!0,r["b"].t("loading")),pe=setInterval((async()=>{if(t)return;if(Date.now()-a>3e4&&!n["wtClient"].torrents[0].ready)return oe.toggleSplash(!1),o["a"].create(r["b"].t("player_task_time")),void clearInterval(pe);if(n["wtClient"].torrents[0]&&!n["wtClient"].torrents[0].files[0])return void oe.toggleSplash(!0,r["b"].t("loading"));{const e=n["wtClient"].torrents[0].files[0],t=Object(de["a"])(e.downloaded||0),a=Object(de["a"])(e.length||0),o=`(${t}/${a})`;if(oe.toggleSplash(!0,r["b"].t("downloading")+"... "+o),n["wtClient"].torrents[0].pieces[e._startPiece]||n["wtClient"].torrents[0].pieces[e._startPiece+1])return void console.log("Wait for first two pieces downloaded")}const i=document.querySelector("#my-video video");if(!i)return;try{const a=ue();if(e||(e=n["wtClient"].torrents[0].files[0].path),4===a.readyState()){const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e)}`;if(console.log(t,a.src(),t===a.src()),a.src()!==t)throw a.hasStarted(!1),new Error("Reset since src changed");return console.log(a.readyState(),"ready"),a.setAttribute("muted",!0),a.setAttribute("playsInline",!0),a.setAttribute("autoplay",!1),oe.toggleSplash(!1),void clearInterval(pe)}if(t)return}catch(c){console.log("cannot get vjs",c)}if(t)return;const l=n["wtClient"].torrents[0].files.find((t=>e===t.path));if(i.setAttribute("playsInline",!0),i.setAttribute("muted",!0),i.setAttribute("autoplay",!1),l){console.log("Play file",e,l);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(l.path||l.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=ue();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}else{const e=n["wtClient"].torrents[0].files[0];console.log("Cannot find same file. Use files[0]",e.path);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e.path||e.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=ue();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}oe.toggleSplash(!1),t=!0}),1e3)}},"7f2d":function(e,t){e.exports=require("buffer")},8:function(e,t){},"803a":function(e,t,a){"use strict";a("525c")},8079:function(e,t){e.exports=require("http")},8097:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a("3fd2"),o=a.n(n),i=a("0f0c"),r=a("d558");function s(){if(Object(r["a"])())return!0;const e=Object(i["a"])("packageFormat");return o.a.mas()||o.a.windowsStore()||e&&"snap"===e}},"80f4":function(e,t,a){},8162:function(e,t,a){},"81a4":function(e,t,a){},"81e0":function(e,t,a){a("7a76"),a("0c26"),a("de6c");const n=e=>{const t=`Failed to validate app config: ${e}`,a=new Error(t);throw a.stack=a.stack.trim().split("\n")[0],a},o=["application.manifest","application.reference","batfile","blob","cerfile","chm.file","cmdfile","comfile","cplfile","dllfile","drvfile","exefile","explorer.assocactionid.burnselection","explorer.assocactionid.closesession","explorer.assocactionid.erasedisc","explorer.assocactionid.zipselection","explorer.assocprotocol.search-ms","explorer.burnselection","explorer.closesession","explorer.erasedisc","explorer.zipselection","file","fonfile","hlpfile","htafile","inffile","insfile","internetshortcut","jsefile","lnkfile","microsoft.powershellscript .1","ms-accountpictureprovider","ms-appdata","ms-appx","ms-autoplay","msi.package","msi.patch","ms-windows-store","ocxfile","piffile","regfile","scrfile","scriptletfile","shbfile","shcmdfile","shsfile","smb","sysfile","ttffile","unknown","usertileprovider","vbefile","vbsfile","windows.gadget","wsffile","wsfile","wshfile"];e.exports=function(e){e&&"object"===typeof e||n("config is not an object");for(const t of["name","displayName","author","developer","description","publisher","homepage","upgradeCode","protocol","shortProtocol"])t in e&&"string"===typeof e[t]||n(`config.${t} must be string`);e.name.match(/^[a-zA-Z0-9.\-+]{3,}/)||n("config.name should contain at least 3 characters"),e.protocol.match(/^[a-z][a-z0-9.\-+]{2,}/)||n("config.protocol should contain at least 3 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.protocol)&&n(`The protocol "${e.protocol}" is not available since it is reserved by Windows Store`),e.shortProtocol.match(/^[a-z][a-z0-9.\-+]{1,}/)||n("config.shortProtocol should contain at least 2 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.shortProtocol)&&n(`The protocol "${e.shortProtocol}" is not available since it is reserved by Windows Store`),e.name.toLowerCase()===e.shortProtocol&&n("config.shortProtocol should not be same as config.name"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as config.protocol"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as app name"),e.register&&"object"===typeof e.register||n("config.register should be object"),"whitelist"===e.register.mode&&(Array.isArray(e.register.list)&&0!==e.register.list.length||n('config.register.list should be array with at least one country code since register mode is "whitelist"'))}},8306:function(e,t,a){},8460:function(e,t,a){"use strict";a("91fe")},"848e":function(e,t,a){},"84cb":function(e,t,a){"use strict";a("afe1")},"84f6":function(e,t,a){"use strict";a("de6c"),a("a1c1");var n=a("ff9b"),o=a("d7df"),i=a("5584"),r=a("8750"),s=a("1926"),l=a("0885"),c=a("a11f"),d=a("4fd2");const u=e=>new Promise((t=>{const a=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100);a((()=>{t(e())}))})),_=new n["a"]({data(){return{taskList:{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0},updatingTaskList:!1,lastUpdateTime:Date.now()}},computed:{allTasks(){return[...this.taskList.downloading,...this.taskList.uploading,...this.taskList.downloaded]}},methods:{async updateTaskList(e){if(this.updatingTaskList)console.log("Skip updating task list since busy");else{this.updatingTaskList=!0,await this.$nextTick();const t={},a=[],n={};for(const o in e){const i=e[o];if(!Array.isArray(i)){this.taskList[o]=i;continue}await u((()=>{i.forEach((e=>{Array.isArray(e.files)&&e.files.forEach((e=>{e.path.endsWith(".downloading")&&(e.path=e.path.replace(/\.downloading$/,"")),e.name.endsWith(".downloading")&&(e.name=e.name.replace(/\.downloading$/,""))}))})),this.taskList[o]=i})),t[o]=i.length;const r=[];i.forEach((e=>{"uploading"===o&&a.push({title:e.postTitle||e.name,abUrl:e.alphabizURI});const t={};if(e.infoHash){var n;t.start=(new Date).getTime(),t.getABKey=(new Date).getTime();const a=Object(c["a"])(e.alphabizURI||e.magnetURI||e.infoHash);t.playFile=(new Date).getTime();const o=null===(n=e.files)||void 0===n?void 0:n.find((e=>1===e.progress&&Object(d["a"])(e.path)));r.push({key:a,infoHash:e.infoHash,...o?{playFile:o}:{}}),t.end=(new Date).getTime()}})),n[o]=r}Object.freeze(e),i["a"].commit("updateTasks",{tasksCount:t,uploadingTasks:a,abKeyObj:n}),await this.$nextTick(),this.updatingTaskList=!1}},deleteTask(e){const t=[];return i["a"].getters.settings.defaultDeleteFiles&&t.push("deleteFiles"),console.log("to del",e),new Promise((a=>{if(e.isAutoUpload)return r["a"].create({title:s["b"].t("delete")+" "+(e.postTitle||e.name),message:s["b"].t("delete_autoupload_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete_anyway")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((()=>{console.log("Delete autoupload file",e),o["a"].emit("delete_torrent",e.infoHash,!0),a(!0)})).onCancel((()=>{a(!1)}));if(e.missAllFile)return o["a"].emit("delete_torrent",e.infoHash,!0),a(!0);const n=e.postTitle||e.name||e.origin||e.infoHash||"",c=n.length>20?n.substring(0,18)+"...":n;r["a"].create({title:s["b"].t("delete")+" "+c,style:"white-space:pre-wrap;word-break:break-all",message:s["b"].t("delete_confirm_message"),options:{type:"checkbox",model:t,items:[{label:s["b"].t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((t=>{o["a"].emit("delete_torrent",e.infoHash||e.token,t.includes("deleteFiles")),i["a"].dispatch("set",{defaultDeleteFiles:t.includes("deleteFiles")}),Object(l["c"])(e.infoHash,!1),a(!0)})).onCancel((()=>{a(!1)}))}))},onDeleteTask(e){for(const t in this.taskList){const a=_[t];if(!Array.isArray(a))continue;const n=a.findIndex((t=>t.infoHash===e));-1!==n&&a.splice(n,1)}}}});t["a"]=_},"860f":function(e,t,a){"use strict";a("4544")},"86d7":function(e,t,a){"use strict";a("6545")},"878c":function(e,t,a){"use strict";a("9e9b")},"88ba":function(e){e.exports=JSON.parse('{"lib_index":"घर","lib_edit":"प्रकाशित करना","lib_publish":"प्रकाशित करना","lib_explore":"अन्वेषण करना","lib_following":"अगले","lib_favorite":"स्थानीय पसंदीदा","lib_local_favorites":"स्थानीय पसंदीदा","lib_channel":"चैनल","lib_submit":"जमा करना","lib_from_network":"नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करना","welcome_to_lib":"${displayName} मीडिया लाइब्रेरी में आपका स्वागत है","register_or_login":"लॉग इन रजिस्टर करें","lib_recommend":"अनुशंसा करना","lib_recommend_desc":"${displayName} लाइब्रेरी में आपका स्वागत है! यह लाइब्रेरी नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करती है। इसका उपयोग शुरू करने के लिए, आपको कुछ चैनलों का अनुसरण करना होगा।","follow_any_channel_to_continue":"जारी रखने के लिए किसी भी चैनल का अनुसरण करें","follow_channels_and_continue":"{0} चैनलों का अनुसरण करें और जारी रखें","show_more_for_me":"मेरे लिए और अधिक दिखाएँ","no_more_recommend":"अब और कोई अनुशंसा नहीं","key":"चाबी","create_key":"कुंजी बनाएं","save_key":"कुंजी सहेजें","save_key_file":"क्या आप अपनी कुंजी को फ़ाइल के रूप में सहेजना चाहते हैं?","import_key":"कुंजी आयात करें","import":"आयात","invalid_key":"अमान्य कुंजी","back_to_top":"वापस शीर्ष पर","search_for_channel":"चैनल आईडी खोजें","search_channel_no_result":"{0} आईडी वाला चैनल नहीं मिल सका","please_input_channel_id":"कृपया चैनल आईडी इनपुट करें","welcome_help_text":"यह एक विकेन्द्रीकृत मीडिया लाइब्रेरी है। आप की जरूरत है\\n इस डेटाबेस के लिए एक खाता बनाने के लिए। हम ऐसा करेंगे\\n स्वचालित रूप से आपके लिए एक व्यक्तिगत कुंजी उत्पन्न करें।\\n यदि आपके पास पहले से ही कोई चाबी है, तो आप आयात भी कर सकते हैं\\n यहाँ यह।","welcome_key_text":"एक बार लॉग इन करने के बाद, कृपया [कुंजी सहेजें] बटन पर क्लिक करें\\n अपनी निजी कुंजी को सहेजने के लिए दाएं-नीचे कोने में।\\n यदि आपकी कुंजी खो जाती है, तो आप दोबारा लॉगिन नहीं कर पाएंगे।","redirect_to_recommend":"ऐसा लगता है कि आपने किसी चैनल को फ़ॉलो नहीं किया था. [एक्सप्लोर] पेज पर रीडायरेक्ट किया जा रहा है।","channel":"चैनल","follow":"अनुसरण करना","unfollow":"करें","following":"अगले","share":"शेयर करना","unfollow_confirm":"क्या आप वाकई इस चैनल को अनफ़ॉलो करना चाहते हैं? आपकी टाइमलाइन से इस चैनल की सभी पोस्ट हटा दी जाएंगी.","follow_failed_hint":"कार्रवाई अभी भी पृष्ठभूमि में लंबित है. यदि ऑपरेशन लंबे समय तक लागू नहीं होता है, तो कृपया ऐप को पुनरारंभ करें और पुनः प्रयास करें।","block":"अवरोध पैदा करना","unblock":"अनब्लॉक","blocked":"अवरोधित","block_channel":"इस चैनल को ब्लॉक करें","block_channel_confirm":"ब्लॉक चैनल इसे आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","block_creator":"इस चैनल के निर्माता को ब्लॉक करें","unblock_creator":"इस चैनल के निर्माता को अनब्लॉक करें","block_creator_confirm":"ब्लॉक क्रिएटर इस क्रिएटर द्वारा बनाए गए सभी चैनलों को आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","share_url_copied":"शेयर यूआरएल आपके क्लिपबोर्ड पर कॉपी हो गया है","follow_time":"समय का पालन करें","update_time":"समय सुधारें","search":"खोज","type":"प्रकार","added":"जोड़ा","click_to_task":"कार्य पर जाने के लिए क्लिक करें","lib_already_added":"आप यह वीडियो पहले ही जोड़ चुके हैं","description":"विवरण","poster":"पोस्टर","channel_poster":"चैनल का पोस्टर","preview":"पूर्व दर्शन","creator":"निर्माता","creator_detail":"निर्माता विवरण","loading_creator":"निर्माता की जानकारी लोड हो रही है","wait_for_creator_loaded":"कृपया निर्माता की जानकारी लोड होने तक प्रतीक्षा करें।","follower":"पालन ​​करने वाला","followers":"समर्थक","follower_list":"अनुयायी सूची","user":"उपयोगकर्ता","channel_title":"चैनल का शीर्षक","channel_id":"चैनल आईडी","post_title":"शीर्षक पोस्ट करें","post_id":"पोस्ट आईडी","import_data_from_excel":"एक्सेल से डेटा आयात करें","set_excel_keys":"एक्सेल कुंजियाँ सेट करें","excel_import_succeded":"एक्सेल आयात सफल हुआ","excel_import_success_msg":"{0} पंक्तियाँ जोड़ने के लिए तैयार हैं, {1} अमान्य और {2} डुप्लिकेट आइटमों को नजरअंदाज कर दिया गया है","cannot_find_channel":"चैनल नहीं मिल सका","cannot_find_posts":"पोस्ट नहीं मिल सकीं","add_channel":"चैनल जोड़ें","add_post":"पोस्ट जोड़ें","edit_channel":"चैनल संपादित करें","channel_setting":"चैनल सेटिंग","edit_post":"संपादित पोस्ट","edit_posts":"पोस्ट संपादित करें","channel_detail":"चैनल विवरण","remove":"निकालना","remove_channel":"चैनल हटाएँ","remove_channel_confirm":"क्या आप निश्चित रूप से इस पोस्ट को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","remove_post":"पोस्ट हटाएँ","remove_post_confirm":"क्या आप निश्चित रूप से इस चैनल को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","preview_mode":"पूर्वावलोकन मोड","preview_mode_desc":"यह आपके चैनल का पूर्वावलोकन है. यहां फिल्मों के सभी रेट दिखाए गए हैं।","edit_user_profile":"उपयोगकर्ता प्रोफ़ाइल संपादित करें","name":"उपनाम","avatar":"अवतार","no_following":"कोई निम्नलिखित चैनल नहीं. जाने के लिए क्लिक करें","no_recommend":"कोई अनुशंसित चैनल नहीं. जाने के लिए क्लिक करें","first_recomment_msg":"यदि यह पहली बार ऐप लॉन्च हुआ है तो इसमें कुछ समय लग सकता है।","invalid_image":"अमान्य छवि","image_not_reachable":"यह छवि यूआरएल पहुंच योग्य नहीं है.","channel_not_found":"चैनल नहीं मिला","cannot_get_channel_info":"चैनल की जानकारी नहीं मिल सकी. इस चैनल को इसके निर्माता द्वारा हटाया जा सकता है और यह अब उपलब्ध नहीं रहेगा।","validate_error":"त्रुटि सत्यापित करें","validate_user_name_no_space":"उपयोगकर्ता नाम में रिक्त स्थान नहीं होना चाहिए","validate_url_no_space":"यूआरएल में रिक्त स्थान नहीं होना चाहिए","validate_user_name_length":"उपयोगकर्ता नाम की लंबाई {0} और {1} के बीच होनी चाहिए","validate_user_desc_length":"उपयोगकर्ता विवरण {0} अक्षरों से अधिक नहीं होना चाहिए","validate_user_avatar_url":"उपयोगकर्ता अवतार का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_channel_title_length":"चैनल शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_channel_desc_length":"चैनल विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_channel_image_url":"चैनल पूर्वावलोकन 2048 अक्षरों से कम वाला यूआरएल होना चाहिए","validate_post_title_length":"पोस्ट शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_post_desc_length":"पोस्ट विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_post_image_url":"पोस्टर का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_post_url":"अमान्य ${displayName} यूआरएल","validate_post_url_length":"${displayName} यूआरएल 2048 अक्षरों से अधिक नहीं होना चाहिए","film_rate":"फ़िल्म दर","set_film_rate":"फिल्म दर निर्धारित करें","select_a_rate_before_enter":"मीडिया लाइब्रेरी में प्रवेश करने से पहले आपको एक फिल्म दर का चयन करना होगा।","library_available_rate":"लाइब्रेरी में उपलब्ध फ़िल्म दर","rate_g":"जी - सामान्य दर्शक","rate_g_desc":"सभी उम्र के लोगों को प्रवेश दिया गया। ऐसा कुछ भी नहीं जिसे बच्चों द्वारा देखने पर माता-पिता को ठेस पहुंचे।","rate_pg":"पीजी - माता-पिता के मार्गदर्शन का सुझाव दिया गया","rate_pg_desc":"कुछ मटीरियल बच्चों के लिए उपयुक्त नहीं हो सकते। माता-पिता से \\"माता-पिता का मार्गदर्शन\\" देने का आग्रह किया गया। इसमें कुछ ऐसी सामग्री हो सकती है जो माता-पिता अपने छोटे बच्चों के लिए पसंद नहीं करेंगे।","rate_pg_13":"पीजी-13 - अभिभावकों को कड़ी चेतावनी दी गई","rate_pg_13_desc":"कुछ सामग्री 13 वर्ष से कम उम्र के बच्चों के लिए अनुपयुक्त हो सकती है। माता-पिता से सतर्क रहने का आग्रह किया जाता है। कुछ सामग्री पूर्व-किशोरों के लिए अनुपयुक्त हो सकती है।","rate_r":"आर - प्रतिबंधित","rate_r_desc":"17 वर्ष से कम आयु के लिए माता-पिता या वयस्क अभिभावक का साथ आवश्यक है। इसमें कुछ वयस्क सामग्री शामिल है. माता-पिता से आग्रह किया जाता है कि वे अपने छोटे बच्चों को अपने साथ ले जाने से पहले फिल्म के बारे में अधिक जानें।","rate_nc_17":"एनसी-17 - केवल वयस्क","rate_nc_17_desc":"17 वर्ष से कम उम्र के किसी भी व्यक्ति को प्रवेश नहीं दिया गया। स्पष्ट रूप से वयस्क. बच्चों को प्रवेश नहीं दिया जाता.","set_as_private":"निजी के रूप में सेट करें","hide_in_explore":"इस चैनल को एक्सप्लोर पेज में छुपाएं","hidden":"छिपा हुआ","select_a_rate":"कृपया एक फ़िल्म दर चुनें","select_from_tasks":"कार्यों में से चयन करें","import_from_magnet":"चुंबक से आयात:?...","input_magnet_url":"इनपुट चुंबक:? यूआरएल","task_title":"कार्य का शीर्षक","set_title":"शीर्षक सेट करें","add_to_local_favorites":"स्थानीय पसंदीदा में जोड़ें","remove_from_local_favorites":"स्थानीय पसंदीदा से हटाएँ","removed_favorite":"पसंदीदा हटा दिया गया","import_or_export_favorites":"आयात/निर्यात पसंदीदा","export_local_favorites":"बैकअप के रूप में स्थानीय पसंदीदा निर्यात करें","import_favorites_file":"पसंदीदा फ़ाइल आयात करें","not_a_favorite_file":"यह फ़ाइल पसंदीदा बैकअप फ़ाइल नहीं है","connection_status":"संपर्क स्थिति","gun_server_list":"कैश नोड्स","custom_nodes":"कस्टम कैश नोड्स","custom_nodes_hint":"ऐप पुनः लॉन्च के बाद कस्टम कैश नोड्स लागू किए जाएंगे","wait_for_reboot":"रीबूट की प्रतीक्षा में...({seconds}s)","reboot_now":"अब रिबूट करें","reboot_later":"बाद में रिबूट करें","peer_list":"प्रत्यक्ष नोड्स","server":"नोड यूआरएल","peer":"समकक्ष","peer_id":"नोड आईडी","connection":"संबंध","data_source":"डेटा स्रोत","sync":"साथ-साथ करना","syncing":"सिंक्रनाइज़ किए जा रहे","sync_completed":"सिंक पूरा हुआ","got_all_post":"आपको सभी पोस्ट पहले ही मिल चुकी हैं","placeholder_channel_title":"आपके चैनल का नाम","placeholder_channel_desc":"इस चैनल के बारे में विवरण","placeholder_post_title":"मूवी का नाम (वर्ष)","placeholder_post_desc":"इस फिल्म के बारे में विवरण","private_channel":"निजी चैनल","creator_blocked":"निर्माता को अवरोधित किया गया","go_to_library":"पुस्तकालय जाएं?","go_to_library_channel_msg":"क्या आप लाइब्रेरी चैनल {0} पर जाना चाहते हैं?","magnet_does_not_have_name":"यह चुम्बक:? यूआरएल में कोई नाम नहीं है, आपको पहले एक पोस्ट शीर्षक जोड़ना होगा।","no_available_post":"कोई पोस्ट उपलब्ध नहीं","following_channel_no_post":"आपके निम्नलिखित सभी चैनलों पर पोस्ट उपलब्ध नहीं है। यह नेटवर्क त्रुटि के कारण हो सकता है. यदि आपने पहले से ही कुछ चैनलों का अनुसरण किया है, तो पोस्ट बाद में लोड की जा सकती हैं।","share_to_library":"लाइब्रेरी में साझा करें","quick_start":"जल्दी शुरू","quick_start_desc":"किसी कार्य या फ़ाइल के साथ एक पोस्ट बनाना प्रारंभ करें","select_file":"फ़ाइल का चयन करें...","select_folder":"फोल्डर का चयन करें...","post_options":"पोस्ट विकल्प","channel_options":"चैनल विकल्प","create_new_channel":"नया चैनल बनाएं","use_existed_channel":"मौजूदा चैनल का उपयोग करें","select_existed_channel":"मौजूदा चैनल का चयन करें","uploaded_by":"{title} {name} द्वारा अपलोड किया गया","created_by":"{title} {name} द्वारा निर्मित","creating_new_channel":"नया चैनल बनाया जा रहा है...","created_new_channel":"नया चैनल बनाया गया","creating_new_post":"नई पोस्ट बनाई जा रही है...","created_new_post":"नई पोस्ट बनाई गई","create_new_post":"नई पोस्ट बनाएं","quick_start_timeout":"{0} समयबाह्य। यह नेटवर्क त्रुटि के कारण हो सकता है. कृपया बाद में पुन: प्रयास करें।","file_too_large":"बहुत बड़ी फाइल","file_too_large_msg":"यह फ़ाइल 4GB ({size}) से बड़ी है और इसे तैयार करने में काफी समय लग सकता है। क्या आप निश्चित रूप से जारी रखेंगे?","resolving_folder_files":"फ़ोल्डर फ़ाइलों का समाधान किया जा रहा है...","folder_too_large":"फ़ोल्डर बहुत बड़ा है","folder_too_large_msg":"इस फ़ोल्डर में फ़ाइलें 4GB ({size} कुल) से बड़ी हैं और कार्य तैयार करने में लंबा समय लग सकता है। क्या आप निश्चित रूप से अपलोड करना चाहते हैं?","creating_new_task":"नया कार्य बनाया जा रहा है...","cannot_create_task":"कार्य नहीं बनाया जा सकता","cannot_create_task_msg":"यह किसी त्रुटि के कारण हो सकता है. यदि कार्य सही ढंग से बनाया गया है, तो आप बाद में कार्य सूची की जांच कर सकते हैं।","cannot_get_task_name":"कार्य का नाम नहीं मिल सका. आपको पहले एक इनपुट करना होगा.","remove_old_task":"पुराना कार्य हटाएँ","remove_old_task_desc":"वेब मोड एक बार में केवल एक ही कार्य बना सकता है। क्या आप पुराना कार्य हटाना चाहते हैं?","subtitle_list":"उपशीर्षक सूची","optional":"वैकल्पिक","with_subtitle":"{language} उपशीर्षक के साथ","maximumSubtitleNum_limit":"उपशीर्षकों की संख्या अधिकतम तक पहुंच गई है","add_subtitle_url":"उपशीर्षक डाउनलोड लिंक जोड़ें","cannot_add_subtitle":"उपशीर्षक जोड़ने में विफल","cannot_add_subtitle_msg":"उपशीर्षक भाषा चयनित नहीं है या डाउनलोड लिंक अमान्य है।","support_subtitle_type":"केवल एसआरटी और वीटीटी प्रारूप में उपशीर्षक समर्थित हैं।","recommend_opensubtitles":"www.opensubtitles.org पर उपशीर्षक डाउनलोड लिंक या आईडी का उपयोग करने की अनुशंसा की जाती है।","take_down":"नीचे करें","serious_violation":"गंभीर उल्लंघन","copyright_disputes":"कॉपीराइट विवाद","adults_only":"केवल वयस्क","takedown_reason":"हटाने का कारण","takedown_mode":"टेकडाउन मोड","admins":"व्यवस्थापक","takedown_user":"इस निर्माता को हटाओ","takedown_channel":"इस चैनल को हटाओ","takedown_post":"इस पोस्ट को हटाएं","select_takedown_reason":"निष्कासन का कारण चुनें","takedown_invalid_reason":"अमान्य निष्कासन कारण","takedown_invalid_user_id":"अमान्य उपयोगकर्ता आइ डी। आईडी में 87 अक्षर शामिल होने चाहिए","takedown_invalid_channel_id":"अमान्य चैनल आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_invalid_post_id":"अमान्य पोस्ट आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_management":"प्रबंधन हटाओ","users":"उपयोगकर्ताओं","channels":"चैनल","posts":"पदों","you":"आप","preset":"प्रीसेट","admin":"व्यवस्थापक","committee":"समिति","about_takedown_mode":"टेकडाउन मोड के बारे में:\\nप्रीसेट: जीथब रिपॉजिटरी में कॉन्फ़िगर किया गया। उन सभी को लाइब्रेरी से हटा दिया जाएगा.\\nव्यवस्थापक: व्यवस्थापकों में से जिस किसी को भी वोट दिया जाएगा उसे हटा दिया जाएगा।\\nसमिति: वोट करने वाले कम से कम आधे व्यवस्थापकों को हटा दिया जाएगा।","cannot_edit_preset":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि यह एक पूर्व निर्धारित पंक्ति है","cannot_edit_not_vote":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि आपने इसके लिए मतदान नहीं किया है","remove_vote":"अपना वोट हटाओ","post_preload_failed":"इस पोस्ट को प्रीलोड करने में विफल. डाउनलोड लिंक पुराना हो सकता है, इसलिए इस पोस्ट को तुरंत नहीं चलाया जा सकता।","about_cache_node":"कैश नोड के बारे में","edit_cache_node":"कैश नोड संपादित करें","create_cache_node":"कैश नोड बनाएं","about_cache_node_desc":"${displayName} कैश नोड के रूप में गन सर्वर का उपयोग करता है। आप अग्रिम सेटिंग में कस्टम नोड्स संपादित कर सकते हैं","learn_how_to_deploy_gun":"जानें कि अपना खुद का गन सर्वर कैसे तैनात करें","repeat_add":"कार्य जोड़ दिया गया है, कृपया इसे दोबारा न जोड़ें","upload":"डालना","download":"डाउनलोड","delete":"मिटाना","delete_task":"कार्य हटाएँ","delete_confirm_message":"यह कार्य हटाएं? यह अपरिवर्तनीय है","also_delete_files":"फ़ाइलें भी हटाएँ","default_delete_files":"हटाने के कार्य के बाद डाउनलोड की गई फ़ाइलों को डिफ़ॉल्ट रूप से हटा दें","not_now":"अभी नहीं","delete_autoupload_confirm":"इस कार्य में वह फ़ाइल शामिल है जिसे आपने ऑटो-अपलोड निर्देशिका में रखा है। इस कार्य को हटाने से फ़ाइल भी हट जाएगी।","delete_anyway":"फिर भी हटाएँ","upload_too_many_files":"बहुत सारी फ़ाइलें अपलोड करें","ask_if_unlimit_upload_amount":"स्वतः-अपलोड निर्देशिका में बहुत अधिक फ़ाइलें हैं। क्या आप अपलोड राशि सीमा को अक्षम करना चाहते हैं? *इससे प्रदर्शन संबंधी समस्या हो सकती है","disable_limitation":"सीमा अक्षम करें","not_length":"मल्टी फ़ाइल ऑपरेशन वर्तमान में समर्थित नहीं है, कृपया सहयोग करें","download_torrent":"डाउनलोड फ़ाइल","upload_torrent":"फ़ाइल अपलोड करें","files":"फ़ाइलें","file":"फ़ाइल","folder":"फ़ोल्डर","start_all":"सभी प्रारंभ करें","pause_all":"सभी को रोकें","remove_all":"सभी हटाएं","upload_all":"सभी अपलोड करें","clear_history":"इतिहास मिटा दें","pause_all_finish_payments":"इससे सभी भुगतान समाप्त हो जायेंगे.","accelerating":"तेज","link_task":"लिंक कार्य","torrent_task":"फ़ाइल कार्य","ok":"ठीक","cancel":"रद्द करना","download_directory_position":"निर्देशिका स्थिति डाउनलोड करें","torrent_file":"कार्य फ़ाइल","magnetic_link_incorrect":"लिंक प्रारूप ग़लत है","delete_fail":"हटाएँ विफल","pause":"विराम","paused":"रोके गए","stop_torrent":"रुकना","seed":"बीज","resume":"फिर शुरू करना","downloading":"डाउनलोड","downloaded":"डाउनलोड","uploading":"अपलोड हो रहा है","auto_uploading":"स्वतः अपलोडिंग","uploaded":"अपलोड किए गए","pending":"अन्य कार्यों के लिए प्रतीक्षा की जा रही है","verifying":"सत्यापन","waiting_for_verify":"सत्यापन की प्रतीक्षा की जा रही है","seeding":"बोने","completed":"पुरा होना।","status":"दर्जा","task_name":"कार्य का नाम","size":"आकार","progress":"प्रगति","sort":"क्रम से लगाना","ascending":"आरोही","descending":"अवरोही","file_loading":"फ़ाइल लोड हो रही है...","loading":"लोड हो रहा है","unknown_status":"अज्ञात","play_while_downloading":"खेल...","upload_or_play":"अपलोड/चलाएँ","play":"खेल","ask_if_upload_file":"फ़ाइल अपलोड करें?","ask_if_upload_or_play":"फ़ाइल अपलोड करें या चलाएं?","torrent_error":"कार्य जोड़ते समय त्रुटि:","no_peers":"{0} से अधिक बार पुनः प्रयास करें और कोई सहकर्मी उपलब्ध नहीं है","torrent_exists":"काम पहले से मौज़ूद।","show_origin_torrent":"मूल कार्य फ़ाइल या यूआरएल प्राप्त करें","show_directory":"इस टोरेंट की निर्देशिका खोलें","task_num":"कार्य","total_upload_speed":"भार डालना के गति","total_download_speed":"डाउनलोड की गति","path_missing":"त्रुटि: टोरेंट पथ नहीं मिल सका","origin_not_found":"मूल कार्य की जानकारी नहीं मिल सकी.","text_copied":"मैग्नम यूआरएल आपके क्लिपबोर्ड पर कॉपी किया गया है","copy_magnet_uri":"प्रतिलिपि चुंबक:? यूआरआई","copy_download_uri":"डाउनलोड यूआरआई कॉपी करें","copy_share_uri":"कॉपी शेयर यूआरआई","uri_copied":"यूआरआई सफलतापूर्वक आपके क्लिपबोर्ड पर कॉपी हो गया है","uri_copy_failed":"यूरी की प्रतिलिपि बनाने में विफल","more":"अधिक...","toggle_list_mode":"सूची मोड टॉगल करें","comment":"टिप्पणी","operations":"संचालन","open_directory":"निर्देशिका खोलें","no_downloading_task":"कोई डाउनलोडिंग कार्य नहीं","remove_all_downloading_tasks":"सभी डाउनलोडिंग कार्य हटाएँ?","remove_all_upload_tasks":"सभी अपलोड कार्य हटाएं?","remove_autoupload_files":"स्वतः-अपलोड फ़ाइलें हटाएँ","remove_all_history":"सारा इतिहास हटा दें?","remaining":"बचा हुआ","created_time":"समय बनाया","used_time":"बिताया समय","completed_time":"पूरा समय","yesterday":"कल","before_yesterday":"{empty}","earlier":"पहले","miss_file":"कुछ फ़ाइलें गुम हैं","delete_miss_file_task":"{0} में फोम फ़ाइलें गायब हैं।","common_peer":"आम सहकर्मी","ab_peer":"${displayName} सहकर्मी","ab_peer_verified":"सत्यापित ${displayName} सहकर्मी","ab_peer_available":"${displayName} सहकर्मी उपलब्ध हैं","alphabiz_accelerating":"${displayName} तेज हो रहा है","income":"आय","income_info":"आय(आज/कुल)","total_income_info":"आय: {0}(आज) / {1}(कुल)","login_to_see_income":"आय के आँकड़े देखने के लिए लॉगिन करें","credit_cost":"ऋण लागत","downloaded_by_payment":"पेमेंट्स द्वारा डाउनलोड किया गया","file_not_found":"यह फ़ाइल स्थानीय में नहीं मिल सकी","no_task":"न पूछें","no_matched_task":"कोई मिलान कार्य नहीं","space_not_enough":"डिस्क स्थान पर्याप्त नहीं है","need_more_space":"{0} अधिक स्थान की आवश्यकता है लेकिन वर्तमान डिस्क में {1} निःशुल्क ({2} आरक्षित) है। कार्य रुके हुए हैं. लाइब्रेरी प्रीलोड अक्षम है. आप इसे [सेटिंग्स - उन्नत] में पुनः सक्षम कर सकते हैं।","seeders":"बीज","last_update":"आखिरी अपडेट","connecting":"कनेक्ट","connected":"जुड़े हुए","request_timed_out":"अनुरोध का समय समाप्त","connection_failed":"कनेक्शन विफल","invalid_download_url":"अमान्य डाउनलोड यूआरएल","download_link":"लिंक को डाउनलोड करें","empty_files":"निर्देशिका में कोई फ़ाइल नहीं","duplicate_task":"डुप्लिकेट कार्य","duplicate_tracker":"डुप्लिकेट ट्रैकर","this_task_not_ready":"यह कार्य तैयार नहीं है. इस कार्य को रोकें इसे सीधे हटा दिया जाएगा.","some_task_not_ready":"कुछ कार्य तैयार नहीं हैं. इन कार्यों को रोकें उन्हें सीधे हटा दिया जाएगा।","failed_to_delete_files":"फ़ाइलें हटाने में विफल","failed_to_delete_files_desc":"कार्य की कुछ फ़ाइलें हटाने में विफल. आपको उन्हें मैन्युअल रूप से हटाने की आवश्यकता हो सकती है","unknown_error":"अज्ञात त्रुटि: {0}","more_files_are_not_shown":"({0} प्रदर्शन कारणों से अधिक फ़ाइलें नहीं दिखाई गई हैं)","no_available_file":"कोई फ़ाइल उपलब्ध नहीं. कृपया कार्य तैयार होने तक प्रतीक्षा करें.","service_worker_error":"खेलने के लिए ServiceWorker को लोड नहीं किया जा सकता. हो सकता है कि आपका ब्राउज़र इस सुविधा का समर्थन न करे, या सर्विसवर्कर सक्रिय नहीं है। आपको इस पृष्ठ को पुनः लोड करने और पुनः प्रयास करने की आवश्यकता हो सकती है।","add_task_first":"आपको पहले कार्य जोड़ना होगा.","player_task_time":"खिलाड़ी को खेल की तैयारी में बहुत अधिक सेकंड लगते हैं। कार्य में कुछ गड़बड़ी हो सकती है।","web_mode_hint":"${displayName} का वेब मोड केवल WebRTC साथियों का समर्थन करता है। सर्वोत्तम अनुभव के लिए, कृपया ${displayName} डेस्कटॉप ऐप डाउनलोड करें।","web_mode_task_hint":"कार्य जोड़ने के लिए नीचे दिए गए बटन पर क्लिक करें। आप एक समय में केवल एक ही कार्य जोड़ सकते हैं.","save_to_local":"स्थानीय में सहेजें","save_as_zip":"ज़िप के रूप में सहेजें","creating_save_file":"सेव फ़ाइल बनाई जा रही है...","upload_as_one_directory":"एक निर्देशिका के रूप में अपलोड करें","upload_as_single_files":"एकल फ़ाइलों के रूप में अपलोड करें","web_mode_upload_single":"आप वेब मोड में केवल एक फ़ाइल अपलोड कर सकते हैं","download_success":"सफलतापूर्वक डाउनलोड करें","download_fail":"डाउनलोड विफल","wait_for_downloaded_to_share":"कृपया साझा करने से पहले कार्य डाउनलोड होने की प्रतीक्षा करें।","download_with_cellular":"सेल्युलर का उपयोग करके कार्य डाउनलोड करें","download_with_cellular_desc":"आप सेल्युलर नेटवर्क का उपयोग कर रहे हैं. सेल्युलर से डाउनलोड कार्यों के लिए आपके वाहक द्वारा अतिरिक्त शुल्क लिया जा सकता है।","download_with_cellular_confirm":"अभी भी सेल्युलर से डाउनलोड करें","language":"भाषा","appearance":"उपस्थिति","darkModeSystem":"प्रणाली","darkModeLight":"रोशनी","darkModeDark":"अँधेरा","basic_setting":"बुनियादी","hideMenu":"ऐप मेनू छुपाएं (केवल विंडोज़ और लिनक्स)","autoHide":"ऑटो छिपाएँ विंडो","autoStart":"लॉगिन पर खोलें","restore":"बाहर निकलते समय खिड़की का आकार और स्थिति रखें","autoStartUnfinished":"सभी अधूरे कार्य स्वचालित रूप से फिर से शुरू करें","default_download_path":"डिफ़ॉल्ट पथ","download_directory":"निर्देशिका डाउनलोड करें","upload_directory":"निर्देशिका अपलोड करें","enable_auto_upload":"ऑटो अपलोड सक्षम करें","unlimit_upload_amount":"अपलोड राशि असीमित","unlimit_upload_warning":"बड़ी मात्रा में फ़ाइलें अपलोड करने की अनुमति दें. इससे प्रदर्शन संबंधी समस्या हो सकती है","start":"चालू होना","transport_setting":"हस्तांतरण","upload_limit":"अपलोड सीमा","download_limit":"डाउनलोड सीमा","payed_user_share_rate":"भुगतान किया गया उपयोगकर्ता शेयर दर","unlimited":"असीमित","limit_input_error":"सीमा संख्या धनात्मक होनी चाहिए","BT_setting":"कार्य सेटिंग्स","saveLinkSeed":"लिंक को कार्य फ़ाइल के रूप में सहेजें","autoDownload":"स्वचालित रूप से लिंक और सामग्री डाउनलोड करें","continuousSeeding":"बीज बोना तब तक जारी रखें जब तक कि इसे मैन्युअल रूप से बंद न कर दें","seedSharingRate":"बीज अनुपात","seedTime":"बीज समय (मिनट)","task_manage":"कार्य प्रबंधन","maximumDownloadNum":"अधिकतम सक्रिय कार्य","maximumConnectionsNum":"प्रति सर्वर अधिकतम कनेक्शन","range_error":"रेंज {0} और {1} के बीच होनी चाहिए","random":"रैंडम","breakpointContinuation":"जारी रखना","automaticSkip":"कार्य जोड़ने के बाद स्वचालित रूप से डाउनलोडिंग दिखाएं","afterNotification":"डाउनलोड पूरा होने के बाद अधिसूचना","deleteConfirm":"कार्य हटाने से पहले किसी पुष्टि की आवश्यकता नहीं है","submit":"सहेजें और लागू करें","discard":"खारिज करना","reset":"रीसेट","reset_all_settings":"सभी सेटिंग्स को रीसेट?","preferences_resetted":"प्राथमिकताएँ रीसेट की गईं","traditional_chinese":"परंपरागत चीनी","japanese":"जापानी","english":"अंग्रेज़ी","chinese":"सरलीकृत चीनी","advancedSettings":"विकसित","autoUpdate":"ऑटो अपडेट","autoCheckUpdate":"अद्यतन के लिए स्वचालित रूप से जाँच करें","proxy":"प्रतिनिधि","useProxyService":"प्रॉक्सी सक्षम करें","trackerService":"ट्रैकर सर्वर","recommendUse":"अनुशंसित","autoUpdateTrackerServiceList":"ट्रैकर सूची को हर दिन स्वचालित रूप से अपडेट करें","manualUpdateTracker":"मैन्युअल अद्यतन","manualUpdateSuccess":"ट्रैकर सर्वर को सफलतापूर्वक अपडेट करें","manualUpdateFail":"यहां से अपडेट करने में विफल:","listenPort":"बंदरगाहों सुनो","BTlistenPort":"डेटा ट्रांसमिशन पोर्ट","DHTlistenPort":"वितरित हैश पोर्ट","protocols":"संगत प्रोटोकॉल","setDefaultClientForFollowingProtocols":"निम्नलिखित प्रोटोकॉल के लिए डिफ़ॉल्ट क्लाइंट के रूप में सेट करें","magnetUrl":"चुंबक","video_file":"वीडियो फाइल","audio_file":"ऑडियो फाइल","security":"सुरक्षा","impersonateUserAgent":"नकली उपयोगकर्ता-एजेंट","RPCauthorizationkey":"आरपीसी रहस्य","viewDocument":"आरपीसी सीक्रेट मैनुअल देखें","developer":"डेवलपर","applicationLogPath":"ऐप लॉग पथ","downloadSessionPath":"सत्र पथ डाउनलोड करें","resetDownloadSessionRecord":"डाउनलोड सत्र रीसेट करें","restoreInitialSettings":"नए यंत्र जैसी सेटिंग","preferences_set_successfully":"प्राथमिकताएँ सफलतापूर्वक सहेजें!","preferences_set_fail":"प्राथमिकताएँ सहेजना विफल!","change_not_save":"परिवर्तन सहेजे नहीं जाते","discard_all_changes":"सभी परिवर्तन त्यागें और छोड़ें?","stay_in_page":"पेज में रहें","disk_usage":"डिस्क उपयोग","pause_if_less_space":"यदि स्थान (एमबी) से कम है तो रोकें और सूचित करें","default_video_player":"डिफ़ॉल्ट वीडियो प्लेयर","video_cache_time":"स्ट्रीम प्ले कैश","minutes":"मिनट","system_default":"प्रणालीगत चूक","media_player":"मीडिया प्लेयर","library_film_rate":"उपलब्ध फिल्म दर","library_show_explore":"[अन्वेषण] पृष्ठ दिखाएँ","library_setting":"पुस्तकालय सेटिंग","library_sync_setting":"लाइब्रेरी सिंक सेटिंग","keychain_sync_status":"किचेन सिंक स्थिति","sync_with_aws":"अमेज़ॅन वेब सेवाओं के साथ किचेन को सिंक करें","backup_to_local":"स्थानीय फ़ाइल में बैकअप","enable_sync_with_aws":"AWS के साथ समन्वयन सक्षम करें","disable_sync_with_aws":"AWS के साथ समन्वयन अक्षम करें","disable_sync_with_aws_desc":"यह सर्वर में सेव की को हटा देगा। कृपया सुनिश्चित करें कि आपने अपनी कुंजी पहले ही निर्यात कर ली है।","input_independent_password":"स्वतंत्र पासवर्ड इनपुट करें","change_independent_password":"स्वतंत्र पासवर्ड बदलें","password_error":"पासवर्ड त्रुटि","password_invalid":"पासवर्ड अमान्य","key_existed":"कुंजी मौजूद थी","key_not_found":"कुंजी प्राप्त नहीं हुई","library_recommend":"पुस्तकालय की अनुशंसा","show_all_channels":"लाइब्रेरी अनुशंसा पृष्ठ में सभी चैनल दिखाएं","not_logged_in":"अंदर प्रवेश की अनुमति नहीं है","login_to_continue":"जारी रखने के लिए लॉगिन करें","mnemonic_code":"स्मरणीय कोड","wordlist":"शब्द सूची","restore_code":"कोड से पुनर्स्थापित करें","generate_code":"कोड जनरेट करें","export_mnemonic_code":"स्मरणीय कोड निर्यात करें","import_mnemonic_code":"स्मरणीय कोड आयात करें","print":"छाप","save_as_txt":"txt के रूप में सहेजें","save_as_pdf":"पीडीएफ के रूप में सहेजें","from_file":"लेख्यपत्र से","not_valid_mnemonic_code":"यह एक वैध स्मरणीय कोड नहीं है","cannot_parse_code_as_key":"इस स्मरणीय कोड को लाइब्रेरी कुंजी के रूप में पार्स नहीं किया जा सकता","import_key_hint":"क्या आप निश्चित रूप से इस कुंजी को आयात करना चाहते हैं? इससे लाइब्रेरी में आपकी पुरानी कुंजी वापस आ जाएगी।","import_key_confirm":"हाँ, इसे आयात करें.","library_preload":"लाइब्रेरी से कार्य प्रीलोड करें","show_preload":"प्रीलोड कार्य दिखाएँ","set_download":"डाउनलोड निर्देशिका सेट करें","set_download_desc":"MacOS ऐप स्टोर संस्करण के लिए, डिफ़ॉल्ट डाउनलोड निर्देशिका ऐप के सैंडबॉक्स में है, और ऐप अनइंस्टॉल होने के बाद हटा दी जाएगी। यदि आप अपनी डाउनलोड फ़ाइलें रखना चाहते हैं, तो आपको मैन्युअल रूप से एक अलग डाउनलोड निर्देशिका का चयन करना होगा।","home":"घर","home_caption":"डाउनलोड/अपलोड और मीडिया फ़ाइलें","library":"पुस्तकालय","library_caption":"मीडिया संसाधनों का अन्वेषण करें","player":"खिलाड़ी","player_caption":"मीडिया प्लेयर","credits":"क्रेडिट","credits_caption":"अकाउंट बैलेंस जांचें","account":"खाता","account_caption":"साइन इन/साइन अप/प्रबंधन","settings":"समायोजन","settings_caption":"ऐप, प्लेयर, अकाउंट के लिए सेटिंग्स","development":"विकास","development_caption":"आंतरिक उपयोग के लिए डेवलपर मोड","basic":"बुनियादी","basic_caption":"मूल सेटिंग्स","advanced":"विकसित","advanced_caption":"एडवांस सेटिंग","blockchain":"बटुआ","blockchain_caption":"${displayName} विकेंद्रीकृत वॉलेट","internal_notice":"आंतरिक रिलीज़ सूचना","release_notes":"रिलीज नोट्स","terms_and_conditions":"नियम और शर्तें","license_and_listen_notices":"लाइसेंस और ओपन सोर्स नोटिस सुनें","close":"बंद करना","success":"सफलता","fail":"असफल","account_email_invalid_address":"अमान्य ईमेल पता","account_email_invalid_domain":"अमान्य ईमेल डोमेन","account_email_unknown_status":"अज्ञात ईमेल वितरण स्थिति","account_email_unavailable_address":"अनुपलब्ध ईमेल पता","account_email_suppressed_address":"दबा हुआ ईमेल पता","account_loading":"लोड हो रहा है...","account_is_required":"आवश्यक है","account_sign_in_your_account":"दाखिल करना","account_username":"उपयोगकर्ता नाम","account_username_email_phone":"फ़ोन नंबर या ईमेल","account_password":"पासवर्ड","account_new_password":"नया पासवर्ड","account_re_enter_password":"पासवर्ड फिर से दर्ज करें","account_password_not_equal":"दो पासवर्ड बराबर नहीं हैं","account_new_password_same":"पासवर्ड मूल पासवर्ड जैसा ही है","account_forgot_your_password":"अपना कूट शब्द भूल गए?","account_reset_password":"पासवर्ड रीसेट","account_sign_in":"दाखिल करना","account_signed_in":"साइन इन किया","account_sign_up":"साइन अप करें","account_find_your_account":"अपना खाता प्राप्त करें","account_enter_your_username":"अपना फ़ोन नंबर या ईमेल दर्ज करें","account_search":"खोज","account_email_sent_tip":"आपके ईमेल पर सत्यापन कोड वाला एक ईमेल भेजा गया है:","account_phone_sent_tip":"आपके फ़ोन पर सत्यापन कोड वाला एक एसएमएस भेजा गया है:","account_email_phone_sent_tip":"सत्यापन कोड के साथ ईमेल और एसएमएस क्रमशः आपके ईमेल और फ़ोन पर भेज दिए गए हैं:","account_software_token_tip":"आपके खाते के लिए एमएफए सक्षम है। साइन इन पूरा करने के लिए, कृपया अपना डिवाइस चालू करें या देखें और TOTP टाइप करें","account_reset_your_password":"अपना पासवर्ड रीसेट करें","account_verification_code":"सत्यापन कोड","account_resend_code":"पुन: कोड भेजे","account_code_has_been_resent":"सत्यापन कोड पुनः भेजा गया है","account_password_has_been_reset":"पासवर्ड रीसेट कर दिया गया है","account_submit":"जमा करना","account_sign_up_your_account":"अपना खाता साइन अप करें","account_fill_required_fields":"नीचे आवश्यक फ़ील्ड भरें.","account_fill_optional_fields":"नीचे वैकल्पिक फ़ील्ड भरें.","account_email":"ईमेल","account_invitation":"आमंत्रण","account_invitation_code":"आमंत्रण संकेत","account_i_accept":"मुझे स्वीकार है","account_license_terms":"लाइसेंस और शर्तें","account_next":"अगला","account_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा।","account_verify_fill_optional_fields":"सत्यापित करें और वैकल्पिक फ़ील्ड भरें।","account_nickname":"उपनाम","account_gender":"लिंग","account_male":"नर","account_female":"महिला","account_not_say":"कहना नहीं","account_birthday":"जन्मदिन","account_phone_number":"फ़ोन नंबर","account_locale":"स्थानीय","account_tip_verified":"सत्यापित, साइन इन हो रहा है...","account_verified":"सत्यापित","account_unverified":"असत्यापित","account_signed_up":"साइनअप किया","account_verify_your_identity":"अपनी पहचान सत्यापित करो","account_finish":"खत्म करना","account_signed_out":"साइन आउट","account_change_password":"पासवर्ड बदलें","account_change_email":"बदले ई - मेल","account_change_phone_number":"फ़ोन नंबर बदलें","account_sign_out":"साइन आउट","account_current_password":"वर्तमान पासवर्ड","account_re_enter_new_password":"नया पासवर्ड पुनः दर्ज करें","account_personal_information":"जानकारी","account_edit":"संपादन करना","account_reset":"रीसेट","account_greeting":"नमस्ते,","account_cancel":"रद्द करना","account_change":"परिवर्तन","account_not_set":"सेट नहीं","account_setting":"सेटिंग","account_copy_code":"कोड कॉपी करें","account_account_setting":"खाता","account_task_page":"श्रेय कार्य","account_setting_caption":"पासवर्ड बदलें/जानकारी संपादित करें","account_security":"सुरक्षा","account_want_to_join":"सम्मिलित होना चाहते हो?","account_sign_in_now":"दाखिल करना","account_changed":"बदला हुआ","account_clipboard_with_invitation_code":"आमंत्रण कोड कॉपी किया गया","account_clipboard_with_code":"कोड कॉपी किया गया","account_invitation_code_dialog_tip":"आप अपने मित्र को आमंत्रण कोड के साथ एक ईमेल या टेक्स्ट संदेश भेजेंगे:","account_available":"उपलब्ध","account_invited":"आमंत्रित","account_used":"इस्तेमाल किया गया","account_invitation_code_sent":"आमंत्रण कोड भेज दिया गया है","account_invitation_channel_required":"कम से कम एक आमंत्रण चैनल भरें","account_no_verification_code":"सत्यापन कोड प्राप्त नहीं हो सकता?","account_no_phone_number":"कोई फ़ोन नंबर नहीं?","account_sign_up_by_email":"ईमेल द्वारा साइन अप करें","account_no_email":"कोई ईमेल नहीं?","account_sign_up_by_phone_number":"फ़ोन नंबर द्वारा साइन अप करें","account_no_totp":"कोई टीओटीपी नहीं?","account_tip_no_totp":"यदि कोई टीओटीपी नहीं है, तो कृपया पहले टीओटीपी सेटअप करें","account_setup_totp":"सेटअप टीओटीपी","account_contact_information":"संपर्क जानकारी","account_delete_account":"खाता हटा दो","account_deleted":"हटाए गए","account_can_not_mfa":"मुसीबत में एमएफए?","account_set_mfa_type":"कॉन्फ़िग एमएफए","account_disable_mfa":"एमएफए अक्षम करें","account_disabled_mfa":"विकलांग एमएफए","account_sms_mfa":"एसएमएस एमएफए","account_totp_mfa":"टीओटीपी एमएफए","account_totp":"टीओटीपी","account_not_recommend":"अनुसंशित नहीं","account_oauth_sign_in_with":"{provider} के साथ साइन इन करें","account_sign_in_failed":"साइन इन करने में विफल","account_tip_oath_sign_up":"वर्तमान {provider} खाते से संबंधित ईमेल: {email} ने अभी तक कोई खाता नहीं बनाया है","account_tip_confirm_delete_account":"यह पुष्टि करने के लिए कि आप चालू खाता हटाना चाहते हैं, चालू खाता पासवर्ड दर्ज करें। (हटाए गए खाते पुनर्स्थापित नहीं किए जा सकते)","account_tip_config_mfa":"आप द्वितीयक प्रमाणीकरण के रूप में एसएमएस या समय-आधारित वन-टाइम पासवर्ड (टीओटीपी) का उपयोग करना चुन सकते हैं","account_error_can_not_enable_mfa":"एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_sms_mfa":"एसएमएस एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_totp_mfa":"टीओटीपी एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर जोड़ना होगा","account_tip_setup_totp":"नीचे दिए गए क्यूआर कोड को स्कैन करने के लिए ऑथेंटिकेटर जैसे ऐप्स का उपयोग करें या सुरक्षा टोकन जोड़ने के लिए कोड को मैन्युअल रूप से कॉपी करें","account_tip_verify_totp":"अपना TOTP सत्यापित करें","account_link_your_social_account":"अपना सोशल अकाउंट बाइंड करें","account_unlink_your_social_account":"सोशल अकाउंट अनबाइंड करें","account_tip_confirm_link":"क्या आप वाकई चालू खाते को अपने {provider} खाते से जोड़ना चाहते हैं?","account_tip_confirm_unlink":"क्या आप निश्चित रूप से अपना बाउंड {provider} खाता रद्द करना चाहते हैं?","account_tip_linking":"बंधन...","account_tip_unlinking":"खोलना...","account_linked":"अवश्यंभावी","account_unlinked":"अबाध","account_error_can_not_link_to_the_linked_account":"वर्तमान सामाजिक खाता किसी अन्य खाते से जुड़ा हुआ है","account_error_can_not_link_to_the_mismatched_email":"चालू खाता और सामाजिक खाता ईमेल पता असंगत हैं","account_error_can_not_link_before_email_verified":"सामाजिक खाते को लिंक नहीं किया जा सकता क्योंकि चालू खाता सत्यापित ईमेल से बंधा नहीं है","account_tip_confirm_verify_email_phone":"क्या अपनी पहचान सत्यापित करने के लिए चालू खाते के ईमेल और फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_tip_confirm_verify_phone":"क्या अपनी पहचान सत्यापित करने के लिए वर्तमान फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_error_1_message_60_seconds":"प्रत्येक 60 सेकंड में केवल एक एसएमएस या ईमेल भेजा जा सकता है, अन्य {delta} सेकंड प्रतीक्षा करें","account_error_10_messages_per_day":"प्रत्येक मोबाइल फोन या ईमेल 24 घंटे के भीतर केवल 10 संदेश भेज सकता है","account_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","Network Error":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","account_error_user_not_exist":"उपभोगकर्ता मौजूद नहीं","account_error_incorrect_username_or_password":"गलत उपयोगकर्ता नाम या पासवर्ड","account_error_incorrect_original_password":"ग़लत मूल पासवर्ड","account_error_incorrect_password":"गलत पासवर्ड","account_error_username_not_found":"उपयोगकर्ता नाम नहीं मिला","account_error_can_not_reset_for_no_verified":"असत्यापित खाते के लिए पासवर्ड रीसेट नहीं किया जा सकता","account_error_invalid_verification_code":"गलत सत्यापन कोड, कृपया पुनः प्रयास करें","account_error_expired_verification_code":"सत्यापन कोड समाप्त हो गया, कृपया पुनः प्रयास करें","account_error_password_not_long_enough":"पासवर्ड पर्याप्त लंबा नहीं है","account_error_attempt_limit_exceeded":"प्रयास की सीमा पार हो गई, कृपया कुछ समय बाद प्रयास करें।","account_error_password_attempts_exceeded":"पासवर्ड प्रयास पार हो गए.","account_error_invalid_phone_number_format":"अमान्य फ़ोन नंबर प्रारूप","account_error_no_cell_phone_prefix":"कृपया फ़ोन नंबर के लिए उपसर्ग चुनें","account_error_username_already_exists":"उपयोगकर्ता नाम पहले से ही मौजूद है","account_error_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा","account_error_inactive_code":"आमंत्रण कोड कोई सक्रिय कोड नहीं है","account_error_non_existent_code":"आमंत्रण कोड अस्तित्वहीन है","account_error_unexpected":"अप्रत्याशित त्रुटि","account_error_can_not_change_email_before_phone_bound":"फ़ोन नंबर बाध्य होने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_email_before_unbound_social_account":"सोशल अकाउंट को अनबाइंड करने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_phone_before_email_bound":"ईमेल बाइंड होने से पहले फ़ोन नंबर नहीं बदला जा सकता","account_error_can_not_change_email_phone_with_mfa_enabled":"एमएफए को अक्षम करने से पहले ईमेल या मोबाइल फोन नंबर नहीं बदला जा सकता","account_error_not_supported_yet":"मौजूदा समर्थित नहीं है","account_error_same_email":"नया ईमेल पता मूल ईमेल पते के समान नहीं हो सकता","account_error_same_phone":"नया फ़ोन नंबर मूल फ़ोन नंबर के समान नहीं हो सकता","account_error_email_not_exists":"ईमेल पता मौजूद नहीं है","account_error_email_already_exists":"दिए गए ईमेल वाला एक खाता पहले से मौजूद है।","account_error_phone_already_exists":"दिए गए फ़ोन नंबर वाला एक खाता पहले से मौजूद है।","account_error_mfa_token_mismatch":"सॉफ़्टवेयर टोकन कोड बेमेल","account_error_recaptcha_not_loaded":"नेटवर्क की दिक्कत है. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_recaptcha_validation_failed":"ReCAPTCHA सत्यापन विफल रहा. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_sign_in_in_progress":"लंबित साइन-इन प्रयास पहले से ही प्रगति पर है","account_field_range":"{0}-{1} वर्णों का इनपुट सीमित करें","account_field_only_alphanumeric":"केवल अक्षरांकीय का समर्थन करता है","account_field_only_alphanumeric_and_symbol":"केवल अक्षरांकीय और प्रतीकों का समर्थन करता है","account_field_only_chinese_alphanumeric_space_underline":"केवल अल्फ़ान्यूमेरिक, स्पेस, अंडरस्कोर का समर्थन करता है","account_field_prefix_without_number_space":"पहला अक्षर कोई संख्या या स्थान नहीं हो सकता","account_field_suffix_without_space":"रिक्त स्थान के साथ समाप्त नहीं हो सकता","account_field_without_repeat_space":"एक पंक्ति में एकाधिक रिक्त स्थान का उपयोग नहीं किया जा सकता","account_field_can_not_only_alphanumeric":"आप केवल अक्षरों या संख्याओं का उपयोग नहीं कर सकते","account_field_must_have_number_characters":"संख्या अक्षर होने चाहिए","account_field_verification_code":"सत्यापन कोड छह अंकों का होना चाहिए","account_field_invitation_code":"आमंत्रण कोड अक्षरांकीय होना चाहिए","account_field_phone_number":"अमान्य फ़ोन नंबर प्रारूप","account_invalid_email_format":"अमान्य ईमेल प्रारूप","account_sign_out_confirm":"क्या आप निश्चित रूप से साइन आउट करना चाहते हैं? इससे सभी कार्य रुक जायेंगे.","account_sign_out_anyway":"फिर भी साइन आउट करें","account_signing_out":"भाग रद्द करना...","account_request_save_settings":"सेटिंग्स सहेजी नहीं गई हैं. साइन आउट करने से पहले आपको परिवर्तन सहेजने होंगे.","pay":"वेतन","pay_with_credit":"डाउनलोड में तेजी लाने के लिए भुगतान करें. लगभग {0} क्रेडिट की आवश्यकता है","pay_with_credit_payed":"तेज़ हो रहा है. अभी भी लगभग {0} क्रेडिट की आवश्यकता है","create_payment":"भुगतान बनाएँ","pay_target":"लक्ष्य","pay_for_torrent":"{0} के लिए भुगतान करें","your_subid":"आपकी उपआईडी","your_credits":"आपका श्रेय","pay_point_for_data":"{1} डेटा के लिए {0} प्वाइंट का भुगतान करें","auto_renew":"स्वतः नवीनीकरण सक्षम करें","transaction_details":"लेनदेन का विवरण","transaction_id":"पहचान","transaction_payer":"भुगतानकर्ता","transaction_payee":"आदाता","transaction_category":"वर्ग","transaction_changed_amount":"परिवर्तित राशि","transaction_meta":"मेटा","transaction_status":"दर्जा","transaction_creation_time":"रचना समय","receipt_code":"रसीद कोड","transfer_amount":"स्थानांतरण राशि","code_the_receipt_code":"नीचे दिए गए रसीद कोड को भुगतानकर्ता के पास कॉपी करें","fill_the_receipt_code":"प्राप्तकर्ता द्वारा प्रदान किया गया भुगतान कोड भरकर स्थानांतरण करें","expense":"व्यय","copied":"कॉपी किया गया","transfer":"स्थानांतरण","receive":"पाना","copy":"प्रतिलिपि","withdraw_fund":"फंड निकालना","category_paydata_payer":"डेटा की लागत","category_paydata_payee":"डेटा की आय","category_transfer":"स्थानांतरण","category_bonus":"बक्शीश","category_recharge":"फिर से दाम लगाना","status_pending":"लंबित","status_completed":"पुरा होना","status_finish":"खत्म करना","status_failed":"असफल","tip_invalid_receiver":"अमान्य रिसीवर कोड","tip_invalid_amount":"क्रेडिट राशि 0-1000 की सीमा में फ़्लोट होनी चाहिए (न्यूनतम सटीकता 0.001 है)","credit_get_more":"अधिक क्रेडिट प्राप्त करें","credit_no_data":"कोई डेटा मौजूद नहीं","credit_loading":"लोड हो रहा है...","credit_not_enough_amount":"पर्याप्त क्रेडिट नहीं","credit_amount_not_enough":"पर्याप्त क्रेडिट नहीं","credit_payee_not_exist":"आदाता मौजूद नहीं है","credit_invalid_amount":"अमान्य क्रेडिट राशि","credit_can_not_transfer_to_yourself":"अपने आप को स्थानांतरित नहीं किया जा सकता","credit_latest":"नवीनतम","credit_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","add_subtitles":"उपशीर्षक जोड़ें","open_file":"खुली फाइल...","advanced_options":"उन्नत विकल्प","title":"शीर्षक","location":"जगह","subtitle_file":"उपशीर्षक फ़ाइल","unsupported_subtitle_type":"{0} का फ़ाइल प्रकार समर्थित उपशीर्षक प्रकार नहीं है","not_default_player":"डिफ़ॉल्ट वीडियो प्लेयर सेट नहीं है","this_is_an_audio_file":"यह एक ऑडियो फ़ाइल है","the_added_subtitle_already_exists":"जोड़ा गया उपशीर्षक पहले से मौजूद है","stop_stream_player":"स्ट्रीमिंग मीडिया समाप्त कर दिया गया क्योंकि कार्य रोक दिया गया था या हटा दिया गया था","stop_player":"फ़ाइल हटा दिए जाने के कारण प्लेयर समाप्त कर दिया गया था","playing_timeout_hint":"प्रतीक्षा का समय समाप्त हो गया। कृपया कार्य की जाँच करें","autoplay_hint":"ऑटोप्ले आपके ब्राउज़र द्वारा अवरुद्ध किया जा सकता है. यदि प्लेयर नहीं चल रहा है, तो जारी रखने के लिए स्क्रीन पर क्लिक करने का प्रयास करें","remove_playing_confirm":"{0} अभी भी चल रहा है, इसे हटा दें तो प्लेयर बंद हो जाएगा। क्या आप निश्चित रूप से इसे हटा देंगे?","unsupported_in_browser":"ब्राउज़र मोड में अभी तक समर्थित नहीं है","client":"ग्राहक","warning":"चेतावनी","enable":"सक्षम","disable":"अक्षम करना","auto":"ऑटो","encrypt_connection":"कनेक्शन एन्क्रिप्ट करें","encrypted_connection":"एन्क्रिप्टेड कनेक्शन","non_encrypted_connection":"गैर-एन्क्रिप्टेड कनेक्शन","connected_wires_not_disconnect":"जुड़े हुए तारों को नहीं काटा जाएगा","audio":"ऑडियो","video":"वीडियो","image":"छवि","subtitle":"उपशीर्षक","zip":"ज़िप","text":"मूलपाठ","unknown":"अज्ञात","add":"जोड़ना","undo":"पूर्ववत","backup":"बैकअप","not_default_app":"${displayName} टोरेंट और मीडिया के लिए आपका डिफ़ॉल्ट ऐप नहीं है, क्या आप इसे डिफ़ॉल्ट के रूप में सेट करना चाहते हैं?","dont_show_again":"दोबारा मत दिखाना","go_to_settings":"सेटिंग्स में जाओ","about_alphabiz":"लगभग ${displayName}","last_check_at":"आखिरी बार जांचें","update_channel":"चैनल अपडेट करें","check_for_update":"अपडेट के लिये जांचें","checking_for_update":"अद्यतन के लिए जाँच की जा रही है...","no_update_available":"कोई अद्यतन उपलब्ध नहीं है","update_available":"उपलब्ध अद्यतन","update_now":"अभी अद्यतन करें","update_later":"बाद में अपडेट करें","click_to_update":"डाउनलोड और अपडेट करने के लिए अभी अपडेट करें बटन पर क्लिक करें","update_failed":"भार बढ़ाना विफल हुवा","update_failed_message":"अद्यतन करते समय एक त्रुटि उत्पन्न हुई:","check_shasum_failed":"इंस्टॉलर के लिए सत्यनिष्ठा की जाँच करने में विफल","downloading_update":"अद्यतन स्थिति डाउनलोड हो रही है...","ready_to_update":"अद्यतन करने के लिए तैयार","restart_to_update":"अपडेट डाउनलोड हो गया है. ${displayName} कुछ क्षण के लिए अपडेट करने के लिए बाहर निकल जाएगा।","already_latest":"वर्तमान संस्करण({0}) पहले से ही नवीनतम है","update_timeout":"अपडेट टाइमआउट","no_available_release":"कोई उपलब्ध रिलीज़ नहीं","no_available_installer":"कोई उपलब्ध इंस्टॉलर नहीं","feedback":"प्रतिक्रिया","select_a_type":"एक प्रकार चुनें","category":"वर्ग","select_a_category":"एक श्रेणी चुनें","require_title":"शीर्षक आवश्यक है","describe_your_problem":"अपनी समस्या का वर्णन करें","report_a_bug":"एक बग रिपोर्ट करो","request_a_new_feature":"एक नई सुविधा का अनुरोध करें","download_or_upload":"डाउनलोड अपलोड","others":"अन्य","submit_with_system_info":"सिस्टम जानकारी के साथ सबमिट करें","submit_feedback":"प्रतिपुष्टि दें","tweet_us":"हमें ट्वीट करें","tweet_too_long":"ट्वीट बहुत लंबा है","delete_characters":"कृपया कम से कम {0} अक्षर हटाएं","rest_characters":"आप {0} अधिक वर्ण इनपुट कर सकते हैं","update_alphabiz":"अद्यतन ${displayName}","current_version":"वर्तमान संस्करण","cancel_update":"अद्यतन रद्द करें","slow_download_speed":"डाउनलोड बहुत धीमा है","slow_download_speed_caption":"इंस्टॉलर डाउनलोड अब बहुत धीमा है. कृपया नेटवर्क स्थिति जांचें","update_canceled":"अद्यतन रद्द किया गया","current_version_release_time":"वर्तमान संस्करण का रिलीज़ समय","expired_app":"${displayName} समाप्त हो गया","version_out_of_date":"संस्करण पुराना है","have_to_update":"${displayName} का संस्करण पुराना हो चुका है। कुछ प्रोटोकॉल या एपीआई अप्रचलित हैं। जारी रखने से पहले आपको ${displayName} अपडेट करना होगा।","exit_alphabiz":"${displayName} से बाहर निकलें","exit_and_update":"बाहर निकलें और अपडेट लागू करें","new_version_hint":"नया संस्करण उपलब्ध है","no_new_version":"कोई नया संस्करण उपलब्ध नहीं है","current_is_latest":"वर्तमान संस्करण पहले से ही नवीनतम है","click_to_check_update":"अपडेट की जांच के लिए [अद्यतन की जांच करें] बटन पर क्लिक करें","download_latest_version_from_website":"कृपया नवीनतम संस्करण डाउनलोड करने के लिए आधिकारिक वेबसाइट पर जाएँ","to_the_website":"वेबसाइट के लिए","network_diagnotic":"नेटवर्क डायग्नोस्टिक","diagnotic":"डायग्नोस्टिक","click_to_check":"जांचने के लिए क्लिक करें","click_to_check_again":"दोबारा जांचने के लिए क्लिक करें","checking":"चेकिंग","online":"ऑनलाइन","offline":"ऑफलाइन","dns_look_up":"डीएनएस लुकअप","error":"गलती","aws_service":"एडब्ल्यूएस सेवा","network_pings":"नेटवर्क पिंग","not_found":"नहीं मिला","packet_loss":"पैकेट का नुकसान","official_site":"आधिकारिक साइट","download_test":"परीक्षण डाउनलोड करें","test_task":"परीक्षण कार्य {0}","download_failed":"डाउनलोड विफल","second_spend":"{0} का खर्च","open_default_player_failed":"डिफ़ॉल्ट प्लेयर खोलने में विफल","copied_to_clipboard":"क्लिपबोर्ड पर नकल","go_to":"के लिए जाओ","region_not_available":"क्षेत्र उपलब्ध नहीं है","region_not_available_message":"क्षमा मांगना! आपका क्षेत्र इस ऐप का उपयोग करने के लिए उपलब्ध नहीं है। यह ऐप {0} सेकंड के बाद बंद हो जाएगा","confirm":"पुष्टि करना","no_available_result":"कोई परिणाम उपलब्ध नहीं","invalid_password_format":"अवैध पासवर्ड प्रारूप","invalid_password_format_same":"पासवर्ड मूल पासवर्ड जैसा ही है","error_password":"पासवर्ड त्रुटि","keychain_setting":"कीचेन","setting_description":"क्लाउड स्टोरेज: मुख्य डेटा को क्लाउड में सेव करें।\\nपासवर्ड बदलें: मीडिया लाइब्रेरी कुंजी के लिए पासवर्ड बदलें।\\nनिमोनिक: कुंजियाँ उत्पन्न करने और पुनर्स्थापित करने की एक वैकल्पिक विधि।\\nस्थानीय कुंजी आयात करें: स्थानीय रूप से सहेजी गई कुंजी को मीडिया लाइब्रेरी में आयात करें।\\nनिर्यात कुंजी: वर्तमान मीडिया लाइब्रेरी डेटा को स्थानीय या क्लाउड पर सहेजता है।\\nक्लाउड के लिए बैकअप कुंजी: बैकअप के लिए वर्तमान मीडिया लाइब्रेरी डेटा को क्लाउड पर अपडेट करें।","refresh_status":"अद्यतन स्थिति","confirm_import_key":"आयात कुंजी की पुष्टि करें","confirm_update_cloud_key":"आपके पास पहले से ही क्लाउड में एक कुंजी है। कुंजी को अद्यतन करने से मूल कुंजी अधिलेखित हो जाएगी. क्या आप वाकई क्लाउड में संग्रहीत कुंजी को अपडेट करना चाहते हैं?","export_key_with_cloud":"क्लाउड में संग्रहीत लाइब्रेरी कुंजी को निर्यात करने के लिए आपके द्वारा सेट किया गया स्वतंत्र पासवर्ड दर्ज करें, और अनलॉक पासवर्ड द्वारा कुंजी फ़ाइल को लॉक करें","store_cloud_key_prompt_password":"लाइब्रेरी कुंजी को क्लाउड में संग्रहीत करने के लिए एक स्वतंत्र पासवर्ड दर्ज करें","update_cloud_key_prompt_password":"लाइब्रेरी कुंजी को एन्क्रिप्ट करने के लिए एक स्वतंत्र पासवर्ड सेट करें और फिर इसे क्लाउड पर अपडेट करें","enable_cloud_storage_prompt_password":"क्लाउड में संग्रहीत कुंजी के लिए एक पासवर्ड सेट करें, जिसके माध्यम से आप क्लाउड से कुंजी पुनः प्राप्त कर सकते हैं","input_unlock_password":"अनलॉक पासवर्ड सेट करें","export_local_prompt_password":"कृपया अपनी कुंजी फ़ाइल को एन्क्रिप्ट करने के लिए एक अनलॉक पासवर्ड सेट करें। हम आपके लिए यह पासवर्ड सेव नहीं करेंगे, इसलिए यदि आप अपना पासवर्ड खो देते हैं, तो आप अपनी लाइब्रेरी कुंजी को अनलॉक नहीं कर पाएंगे","require_unlock_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","require_independent_password":"कुंजी को क्लाउड में संग्रहीत करने के लिए स्वतंत्र पासवर्ड दर्ज करें","import_local_prompt_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","select_encrypt_mode":"एन्क्रिप्शन मोड का चयन करें","update_cloud_key":"क्लाउड में संग्रहीत कुंजी को अद्यतन करें","backup_to_cloud":"लाइब्रेरी कुंजी को क्लाउड पर बैकअप करें","save_local":"लाइब्रेरी कुंजी को स्थानीय एन्क्रिप्टेड फ़ाइल के रूप में सहेजें","create_new_key":"एक नई लाइब्रेरी कुंजी बनाएं","creating_lib_key":"लाइब्रेरी कुंजी बनाई जा रही है...","loading_lib_key":"लाइब्रेरी कुंजी लोड हो रही है...","failed_to_create_lib_key":"लाइब्रेरी कुंजी बनाने में विफल","failed_to_load_lib_key":"लाइब्रेरी कुंजी लोड करने में विफल","import_local_key":"कुंजी को स्थानीय रूप से आयात करें","import_lib_key_from_local":"लाइब्रेरी कुंजी को स्थानीय रूप से आयात करें","import_from_cloud":"क्लाउड से लाइब्रेरी कुंजी आयात करें","create_or_import_key":"लाइब्रेरी कुंजी बनाएं या आयात करें","create_or_import_key_desc":"लाइब्रेरी कुंजी एक स्वतंत्र कुंजी है जिसका उपयोग विकेंद्रीकृत डेटाबेस के साथ सामग्री लाने और प्रकाशित करने के लिए किया जाता है।","store_your_lib_key":"अपनी लाइब्रेरी कुंजी संग्रहीत करें","export_cloud_key":"क्लाउड से कुंजी निर्यात करें","export_current_key":"वर्तमान कुंजी निर्यात करें","change_password":"पासवर्ड बदलें","enable_cloud_storage":"क्लाउड स्टोरेज सक्षम करें","disable_cloud_storage":"क्लाउड स्टोरेज अक्षम करें","disable_cloud_storage_desc":"क्लाउड स्टोरेज को अक्षम करने से क्लाउड में सहेजी गई कुंजी हट जाएगी, कृपया सुनिश्चित करें कि कुंजी स्थानीय रूप से सहेजी गई है","sync_at":"यहां सिंक करें: {time}","cloud_storage_enabled":"{storage} के साथ किचेन को सिंक करें","cloud_storage_disabled":"क्लाउड स्टोरेज अक्षम किया गया","saved_locally":"स्थानीय स्तर पर सहेजा गया","export_key":"कुंजी फ़ाइल निर्यात करें","cloud_independent_password":"क्लाउड स्वतंत्र पासवर्ड","key_file_unlock_password":"कुंजी फ़ाइल अनलॉक पासवर्ड","re_enter_unlock_password":"अनलॉक पासवर्ड पुनः दर्ज करें","independent_password_not_enabled":"वर्तमान पासवर्ड अल्फ़ाबिज़ खाता पासवर्ड है (कोई स्वतंत्र पासवर्ड सेट नहीं है)","use_cognito_hash":"अल्फ़ाबिज़ खाता पासवर्ड का उपयोग करें","use_independent_password":"स्वतंत्र पासवर्ड का प्रयोग करें","keychain_lib":"पुस्तकालय कुंजी","loading_keychain_state":"चाबी का गुच्छा लोड हो रहा है...","backing_up":"समर्थन करना...","backup_current_key":"क्लाउड पर वर्तमान कुंजी का बैकअप लें","cloud_lib_key_not_existed":"लाइब्रेरी कुंजी क्लाउड में मौजूद नहीं है","open_keychain_file":"किचेन फ़ाइल खोलें","confirm_open_abk":"क्या आप एबीके फ़ाइल खोलना चाहते हैं?","use_the_key":"कुंजी का प्रयोग करें","backup_the_key":"क्लाउड पर कुंजी का बैकअप लें","keychain_data_does_not_exist":"किचेन डेटा मौजूद नहीं है","timeout of 0ms exceeded":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","XhrError":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","payer credit amount is not enough":"पर्याप्त क्रेडिट नहीं","payee does not exist":"आदाता मौजूद नहीं है","block_list_manage":"ब्लॉक सूची प्रबंधन","blocked_users":"रोके गए उपयोगकर्ता","blocked_channels":"अवरुद्ध चैनल","unblock_user":"उपयोगकर्ता को अनब्लॉक करें","unblock_channel":"चैनल अनब्लॉक करें","no_blocked_user":"कोई अवरुद्ध उपयोगकर्ता नहीं","no_blocked_channel":"कोई अवरुद्ध चैनल नहीं","field_required":"{0} आवश्यक है","setting":"सेटिंग","unknown_media":"अज्ञात मीडिया","settings_button_visible":"बटन दृश्यमान","settings_setting":"सेटिंग","settings_playback_rate":"प्लेबैक दर","settings_subtitle":"उपशीर्षक","settings_pip":"रंज","settings_fullscreen":"पूर्ण स्क्रीन","settings_subtitle_options":"उपशीर्षक विकल्प","settings_normal":"सामान्य","settings_italic":"तिरछा","settings_lighter":"लाइटर","settings_bolder":"बोल्डर","settings_small":"छोटा","settings_large":"बड़ा","about":"के बारे में","services":"सेवाएं","hide":"छिपाना","hide_others":"दूसरों को छुपाएं","show_all":"सब दिखाएं","quit":"छोड़ना","edit":"संपादन करना","redo":"फिर से करना","cut":"काटना","paste":"पेस्ट करें","select_all":"सबका चयन करें","view":"देखना","reload":"पुनः लोड करें","toggle_full_screen":"संपूर्ण स्क्रीन टॉगल करें","toggle_developer_tools":"डेवलपर टूल टॉगल करें","window":"खिड़की","minimize":"छोटा करना","bring_all_to_front":"सभी को सामने लाओ","help":"मदद","github_repo":"जीथब रेपो","issues":"समस्याएँ","learn_more":"और अधिक जानें","learn_spelling":"वर्तनी सीखें","lookup_selection":"ऊपर देखो \\"{selection}\\"","search_with_google":"गूगल से खोजें","save_as":"के रूप रक्षित करें","save_image":"चित्र को सेव करें","save_image_as":"इमेज को इस तरह सेव कीजिए ...","copy_link":"लिंक की प्रतिलिपि करें","save_link_as":"लिंक इस रूप में सेव करें ...","copy_image":"नकल छवि","copy_image_as":"छवि को इस रूप में कॉपी करें...","copy_image_address":"छवि पता कॉपी करें","download_complete":"डाउनलोड पूर्ण","download_complete_message":"{0} डाउनलोड हो गया है","is_running":"{0} चल रहा है","open":"{0} खोलें","launch_problem":"लॉन्च समस्या","ask_clear_data":"ऐसा लगता है कि आप {0} लॉन्च करने का प्रयास कर रहे हैं लेकिन कई बार विफल रहे।\\nक्या आप सभी ऐप डेटा साफ़ करना चाहते हैं और बाद में लॉन्च करने का प्रयास करना चाहते हैं?","launch_directly":"सीधे लॉन्च करें","clear_all_data":"सभी डेटा साफ़ करें","ask_clear_confirm":"यह सभी कॉन्फ़िगरेशन, लॉग और उपयोगकर्ता डेटा हटा देगा!\\nइसके बाद आपको {0} को फिर से लॉन्च करने की आवश्यकता हो सकती है।\\nक्या आप निश्चित रूप से डेटा साफ़ करना चाहते हैं?","confirm_launch":"नहीं, सीधे लॉन्च करें","confirm_clear":"हां, सारा डेटा साफ़ करें"}')},"88f5":function(e,t,a){"use strict";a("0f74")},"899b5":function(e,t,a){"use strict";a("81a4")},"8a63":function(e,t,a){"use strict";a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return p})),a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"e",(function(){return g})),a.d(t,"g",(function(){return f})),a.d(t,"h",(function(){return b})),a.d(t,"a",(function(){return y}));a("a1c1"),a("7a76");var n=a("d7df"),o=a("5584"),i=a("1926"),r=a("8750"),s=a("f680"),l=a("84f6"),c=a("d310"),d=a("d558");setTimeout((()=>{n["a"].on("torrent_list",(e=>{l["a"].updateTaskList(e)})),n["a"].on("torrent_delete",(e=>{console.log("deleted",e),l["a"].onDeleteTask(e)})),n["a"].on("torrent_error",(e=>{console.log("torrent error",e);const t=e.torrent||{},a=t.postTitle||t.name||t.infoHash||e.token;s["a"].create({message:i["b"].t("torrent_error")+" "+a,caption:i["b"].t(e.message),group:e.message})}))}),1e3);const u=()=>{const e=o["a"].getters.settings;return{downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}};function _(e,t){const a="string"===typeof t?t:(null===t||void 0===t?void 0:t.path)||(null===t||void 0===t?void 0:t[0].path);if(!a)return;let o=0;const i=a.startsWith("ab://")?a.replace(/^ab:\/\//,(()=>"alphabiz://alphabiz-task-"+o++)):a;n["a"].emit("download_torrent",{type:e,url:i,file:i,token:crypto.randomUUID(),...u()})}function p(e,t){console.log("pause torrent",e);const a=l["a"].taskList.downloaded.find((t=>t.infoHash===e));if(!a)return n["a"].emit("pause_torrent",e);const o=e=>{var a,n;const o=t.dp$expenseHashMapper[e];if(!o)return;const i=null===(a=t.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>o.includes(e))),r=null===(n=t.dp$expenseStatusMapper.COMPLETED)||void 0===n?void 0:n.filter((e=>o.includes(e)));i&&i.forEach((e=>{console.log("dp$cancel from pauseTorrent",e),t.dp$cancel(e).catch((t=>{console.log("dp$cancel failed:",e,t.code,t.message)}))})),r&&r.forEach((e=>{console.log("dp$confirm from pauseTorrent",e),t.dp$confirm(e)}))};return r["a"].create({title:i["b"].t("pause"),message:i["b"].t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("pause")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{try{o(e)}catch(t){console.log("dp$pause failed:",t.message)}n["a"].emit("pause_torrent",e)}))}function m(e=!1){if(e&&!o["a"].getters.settings.autoStartUnfinished&&!Object(d["a"])())return console.log("Skip auto download all");const t=l["a"].taskList.downloading.filter((t=>(!e||!t.pausedByUser)&&t.paused)).sort(((e,t)=>{const a=e.createdTime-t.createdTime;return isNaN(a)?0:a}));return console.log("[DownloadAll] resume",t),n["a"].emit("resume-all",t),new Promise((e=>{n["a"].once("resume-all",e)}))}function h(e=!1){n["a"].emit("pause_all",e),setTimeout((()=>{n["a"].emit("pause_all",e)}))}function g(e=!1){const t=l["a"].taskList.uploading;if(!t.length)return;const a=t.filter((e=>!e.infoHash&&!e.isPreload&&!e.files));if(a.length)return e&&(a.forEach((e=>{n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)),r["a"].create({message:i["b"].t("some_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{a.forEach((e=>{e.infoHash||n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)}));n["a"].emit("pause_all_uploading",e)}function f(e,t){const a=Array.isArray(e)?e:[e],o=a.map((e=>e?"string"===typeof e?e:"string"===typeof e.path?e.path:null:null)).filter((e=>e));if(!o.length&&Object(c["isElectron"])())throw new Error(`Cannot upload file ${e}: cannot get file path`);n["a"].emit("seed_torrent",{file:o,token:t||crypto.randomUUID(),...u()})}function b(e=!1){if(!l["a"].taskList.downloaded)return 0;const t=l["a"].taskList.downloaded.filter((t=>(!e||!t.pausedByUser)&&(!t.missAllFile&&!t.missFile)));if(!t.length)return console.log("skip upload all since nothing to upload"),l["a"].taskList.downloaded.length;const a=l["a"].taskList.downloaded.length-t.length;return n["a"].emit("seed_torrents",t),a}async function y(){o["a"].getters.settings.autoStartUnfinished?"signedIn"===o["a"].state.account.authState?(console.log("prepare download all"),await m(!0),b(!0)):console.log("User is not logged in",o["a"].getters.accountUserInfo.authState):console.log("User disabled auto restart")}},"8dc9":function(e,t,a){},"8f79":function(e,t,a){},"8fd4":function(e,t,a){},9:function(e,t){},"91fe":function(e,t,a){},9256:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},9344:function(e,t,a){"use strict";a("1278")},9369:function(e,t,a){"use strict";a.d(t,"c",(function(){return r})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return c}));a("7a76"),a("de6c"),a("f200");var n=a("5584"),o=a("36a1"),i=a("072b");function r(e){return!!e||this.$t("account_is_required")}function s(e){return i["d"].call(this,e)}function l(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function c(e,t={}){const{mode:a,password:o,keyName:i}=t,r=await n["a"].dispatch("syncKeychainState");r[i]?await n["a"].dispatch("updateKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}):await n["a"].dispatch("createKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}),await n["a"].dispatch("syncKeychainState")}async function d(e,t){const a=async()=>{var e;if(!o["a"].user||null===(e=o["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=o["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t},i={lib:await a()},r=Object.keys(i).map((a=>c.call(this,i[a],{mode:e,password:t,keyName:a})));await Promise.all(r),await n["a"].dispatch("syncKeychainState")}t["b"]={beforeCreate(){if(!["StatusBanner","ChangePassword"].includes(this.$options.name))throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async keychain$changePassword(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{const t={oldPassword:{type:"password",model:"",label:this.$t("account_current_password"),rules:[r.bind(this),s.bind(this)]},password:{type:"password",model:"",label:this.$t("account_new_password"),rules:[r.bind(this),s.bind(this),e=>t.oldPassword.model!==e||this.$t("invalid_password_format_same")]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("change_password"),message:n["a"].getters.keychainState.unset?this.$t("independent_password_not_enabled"):void 0,cancel:!0,prompts:t,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.oldPassword,a.password)}))});await a.promise()};await a((async(a,o,i)=>{try{await n["a"].dispatch("changeKeychainPassword",{oldPassword:o,password:i}),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(r){e(r.message)}}))},async keychain$enableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=()=>{try{var t;if(!o["a"].user||null===(t=o["a"].user._)||void 0===t||!t.sea)throw new Error("Please login first")}catch(a){e(a.message)}};a();const i=l.call(this,this.$t("loading_keychain_state")),c=await n["a"].dispatch("syncKeychainState").finally(i.hide),u=async e=>{const t={password:{type:"password",label:this.$t("account_password"),model:"",rules:[r.bind(this),s.bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("input_independent_password"),prompts:t,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password)))});await a.promise()};if(c.hash&&c.unset){const a=async e=>{const t={};t.use_cognito_hash={color:"primary",textColor:"primary",label:this.$t("use_cognito_hash"),handler:t=>t.dialog$useLoadingState("use_cognito_hash",(()=>e(t,"cognito_hash")))},t.use_independent_password={label:this.$t("use_independent_password"),handler:t=>t.dialog$useLoadingState("use_independent_password",(()=>e(t,"independent_password")))};const a=this.$alphabiz.dialog({title:this.$t("enable_cloud_storage"),message:this.$t("enable_cloud_storage_prompt_password"),cancel:!0,ok:!1,actions:t});await a.promise()};await a((async(a,n)=>{if("independent_password"===n)await u((async(o,i)=>{try{await d.call(this,n,i),t(),o.hide(),a.hide()}catch(r){e(r.message)}}));else if("cognito_hash"===n)try{await d.call(this,n,void 0),t(),a.hide()}catch(o){e(o.message)}}))}else await u((async(a,n)=>{try{await d.call(this,"independent_password",n),t(),a.hide()}catch(o){e(o.message)}}))},async keychain$disableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{let t=5;const a=()=>({label:t?`${this.$t("disable_cloud_storage")} (${t})`:this.$t("disable_cloud_storage"),disable:!!t,color:"negative",textColor:"negative",handler:t=>t.dialog$useLoadingState("ok",e)}),n=this.$alphabiz.dialog({title:this.$t("disable_cloud_storage"),message:this.$t("disable_cloud_storage_desc"),cancel:!0,ok:a()}),o=setInterval((()=>{t>0?t-=1:clearInterval(o),n.update({ok:a()})}),1e3);await n.promise()};await a((async a=>{try{await new Promise((e=>setTimeout(e,1e3))),await n["a"].dispatch("disableKeychainCloud"),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(o){e(o.message)}}))}}}},"937c":function(e,t){e.exports={remote:{url:"https://alpha.biz/app/remote_config"},local:{type:"local",version:"default:v1",oauth:{enable:!1,providers:["Github","Twitter"]},account:{phone_number:!1},library:{show_explore:!1},update:{enable:!1}}}},"93e8":function(e,t,a){"use strict";a("981d")},9445:function(e){e.exports=JSON.parse('{"users":[{"_comment":"You should use pubkey as id here. See take-down.js for more info.","id":"a_pubkey_of_user","reason":"Serious Violation"}],"channels":[{"id":"an_id_of_channel","reason":"Copyright Disputes"}],"posts":[{"id":"an_id_of_post","reason":"Adults Only"}]}')},9572:function(e,t,a){"use strict";a("7a76"),a("d4b5"),a("de6c");var n=a("02fe"),o=a.n(n);const i=({encryptor:e,decryptor:t,randomHex:a,pbkdf2:n})=>{const o=e=>{if(64!==e.length)throw new Error("Invalid password length")},i=(t,a)=>{const o=n(a.password,a.salt,1e3,32);return e(t,o,Buffer.from(a.iv,"hex"))},r=(e,a)=>{const o=n(a.password,a.salt,1e3,32);return t(e,o,Buffer.from(a.iv,"hex"))},s=(e,t)=>{o(t);const n=a(),r=a(),s=i(e,{password:t,iv:n,salt:r});return JSON.stringify({encrypted:s,salt:r,iv:n})},l=(e,t)=>{o(t);const a=JSON.parse(e),n=r(a.encrypted,{password:t,salt:a.salt,iv:a.iv});if(!n)throw new Error("password_error");return n},c=(e,t,a)=>{o(t),o(a);const n=l(e,t);return s(n,a)};return{encryptKey:s,decryptKey:l,changePassword:c}},r=i({encryptor:(e,t,a)=>{const n=o.a.AES.encrypt(e,o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return n.ciphertext.toString()},decryptor:(e,t,a)=>{try{const n=o.a.AES.decrypt(o.a.enc.Base64.stringify(o.a.enc.Hex.parse(e)),o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return o.a.enc.Utf8.stringify(n)}catch(n){return console.error(n.message),null}},pbkdf2:(e,t,a,n)=>o.a.enc.Hex.stringify(o.a.PBKDF2(e,t,{hasher:o.a.algo.SHA512,keySize:2*n/8,iterations:a})),randomHex:()=>o.a.enc.Hex.stringify(o.a.lib.WordArray.random(16))}),s=e=>o.a.SHA256(e).toString();t["a"]={encryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{epub:a,pub:n,epriv:o,priv:i}=e,l=[a,n,o,i].join(":");return r.encryptKey(l,s(t))},decryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");const a=r.decryptKey(e,s(t)),[n,o,i,l]=a.split(":"),c={epub:n,pub:o,epriv:i,priv:l};if(["epriv","epub","priv","pub"].some((e=>!c[e])))throw new Error("invalid_key");return c},changePassword:async(e,t,a)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(!a||"string"!==typeof a)throw new Error("invalid_password");return r.changePassword(e,s(t),s(a))},digestPassword:e=>{if(!e||"string"!==typeof e)throw new Error("invalid_password");return s(e)}}},"981d":function(e,t,a){},9910:function(e,t,a){},9992:function(e,t,a){"use strict";a("603c")},"9a50":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"file-selector",on:{click:e.onClick,touch:e.onClick}},[a("input",{ref:"fileSelector",staticClass:"file-selector-input",attrs:{type:"file",name:"fileSelector",webkitdirectory:e.directory,accept:e.accept?"."+e.accept.extensions[0]:"*"},on:{change:e.onSelect}}),e._t("default",(function(){return[a("q-btn",{attrs:{color:"primary",icon:"folder_open",label:e.$t("select_file")}})]}))],2)},o=[],i=(a("de6c"),a("0598")),r=a("d558"),s=a("d6fe"),l={name:"FileSelector",props:{directory:Boolean,accept:{type:Object,required:!1}},data(){return{isElectron:Object(i["default"])(),isCapacitor:Object(r["a"])()}},mounted(){console.log("File selector mounted")},methods:{getFileContent(e){const t=a("bc7b").readFileSync(e,{encoding:"binary"});return t},buildFile(e){if(this.directory||a("bc7b").statSync(e).isDirectory())return a("bc7b").statSync(e).isDirectory()?{path:e,name:e}:{path:e,name:Object(s["dirname"])(e)};const t=[this.getFileContent(e)],n=Object(s["basename"])(e),o=a("ea33").lookup(Object(s["extname"])(e));return console.log("buf",t,e),console.log(n,o),new File(t,n,{type:o})},async selectDirectory(){if(!this.isElectron)return this.$refs.fileSelector.click();console.log("select directory");const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"1b85",7));e.once("select_file_or_directory",((e,t)=>{const a=t&&!t.canceled&&Array.isArray(t.filePaths)&&t.filePaths.length?t.filePaths.map((e=>this.buildFile(e))):null;this.$emit("select",a)})),e.send("select_file_or_directory",[])},async selectFile(){console.log("click select file",this.$refs.fileSelector);const e=this.$refs.fileSelector;return e.click()},onClick(){if(console.log("onclick",this.$refs.fileSelector),this.directory)return this.selectDirectory();this.selectFile()},onSelect(e){var t,a,n;console.log("on select files",null===(t=e.target)||void 0===t?void 0:t.files);const o=null===(a=e.target)||void 0===a||null===(n=a.files)||void 0===n?void 0:n[0];this.$emit("select",o)}}},c=l,d=(a("f157"),a("2b5f")),u=a("1043"),_=a("09a4"),p=a.n(_),m=Object(d["a"])(c,n,o,!1,null,"a5acd74c",null);t["a"]=m.exports;p()(m,"components",{QBtn:u["a"]})},"9be9":function(e,t,a){},"9c3b":function(e,t,a){},"9d1e":function(e,t,a){},"9e98":function(e,t,a){"use strict";a("2cfd")},"9e9b":function(e,t,a){},"9efe":function(e,t,a){"use strict";a.d(t,"e",(function(){return p})),a.d(t,"f",(function(){return m})),a.d(t,"l",(function(){return h})),a.d(t,"m",(function(){return g})),a.d(t,"o",(function(){return f})),a.d(t,"n",(function(){return b})),a.d(t,"b",(function(){return y})),a.d(t,"x",(function(){return v})),a.d(t,"g",(function(){return w})),a.d(t,"i",(function(){return k})),a.d(t,"c",(function(){return S})),a.d(t,"h",(function(){return C})),a.d(t,"t",(function(){return x})),a.d(t,"u",(function(){return $})),a.d(t,"v",(function(){return T})),a.d(t,"d",(function(){return z})),a.d(t,"p",(function(){return P})),a.d(t,"q",(function(){return A})),a.d(t,"r",(function(){return I})),a.d(t,"j",(function(){return q})),a.d(t,"w",(function(){return O})),a.d(t,"k",(function(){return E})),a.d(t,"a",(function(){return D})),a.d(t,"s",(function(){return j}));a("de6c"),a("7a76"),a("d4b5"),a("f200"),a("dc69"),a("0c26"),a("a1c1");var n=a("e74d"),o=a("67cf"),i=a("35f4"),r=a("e75b"),s=a("9572"),l=a("ff9b");const c=new r["a"].Rest("ABDevRest"),d=Object(i["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20),u=e=>(e.email&&(e.email=e.email.toLowerCase()),{username:e.username,password:e.password,attributes:{...e.msgLocale?{"custom:msg_locale":e.msgLocale}:{},...e.email?{email:e.email}:{},...e.phoneNumber?{phone_number:e.phoneNumber}:{},...e.phoneNumberCountryCode?{"custom:phone_number_code":e.phoneNumberCountryCode}:{},...e.keyMetadata?{"custom:key_metadata":e.keyMetadata}:{}},clientMetadata:{oauthSignUp:e.oauthSignUp||"false",...e.invitationCode?{invitationCode:e.invitationCode}:{},...e.oauthData?{oauthData:e.oauthData}:{},...e.appClient?{"custom:app_client":e.appClient}:{},...e.signUpIpAddress?{"custom:signing_ip_address":e.signUpIpAddress}:{},...e.os?{"custom:os":e.os}:{}}}),_=e=>{e.email&&(e.email=e.email.toLowerCase());const t={email:"email",phoneNumber:"phone_number",phoneNumberCountryCode:"custom:phone_number_code",msgLocale:"custom:msg_locale",emailVerified:"email_verified",phoneNumberVerified:"phone_number_verified",app_client:"custom:app_client",os:"custom:os",nickname:"nickname",gender:"gender",birthday:"birthdate",locale:"locale"},a={};return Object.entries(t).forEach((([t,n])=>{void 0!==e[t]&&(a[n]=e[t])})),a};async function p(e=!0){const t=await n["a"].currentAuthenticatedUser().catch((e=>{throw new Error(e)}));if(!t||0===Object.keys(t).length)throw new Error("No authed user");return e||(t.dynamo_attrs={},t.dynamo_attrs.invitation_code=[]),t}async function m(){const e=await n["a"].currentUserInfo();if(!e||0===Object.keys(e).length)throw new Error("No user info");return e.dynamo_attrs={},e.dynamo_attrs.invitation_code=[],e}async function h(e,t){e=e.toLowerCase();let a=await n["a"].signIn(e,t,{});if("SMS_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.destination=a.challengeParam.CODE_DELIVERY_DESTINATION,e.user=a,e}if("SOFTWARE_TOKEN_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.user=a,e}if("CUSTOM_CHALLENGE"===a.challengeName){const e=await l["a"].prototype.$recaptcha("login");if(a=await n["a"].sendCustomChallengeAnswer(a,e),!a)throw new Error("Network Error")}c.post("/account/postSignIn",{keychainMetadataHash:s["a"].digestPassword(t)}).catch((e=>{console.error(e.message)}))}async function g(e,t,a){return n["a"].confirmSignIn(e,a,t)}async function f(e){e.username=d().toLowerCase();const t=await n["a"].signUp(u(e));return await c.postGuest("/account/postSignUp",{sub:t.userSub,username:e.username,keychainMetadataHash:s["a"].digestPassword(e.password),isTestEnv:window.isTestEnv,invitationCode:e.invitationCode}),t}async function b(){return await n["a"].signOut().catch((e=>{console.log("SignOut catch >>",e)}))}async function y(e){const t=await p(),a=await n["a"].updateUserAttributes(t,_(e));if("SUCCESS"!==a)throw new Error("Change attributes failed")}async function v(e){const t=await p(),a=await n["a"].changePassword(t,e,e).catch((e=>{throw"Incorrect username or password."===e.message?new Error("Incorrect password"):e}));return"SUCCESS"===a}function w(e,t={}){return e=e.toLowerCase(),n["a"].forgotPassword(e,t)}function k(e){return e=e.toLowerCase(),n["a"].resendSignUp(e)}async function S(e,t,a={},o={oauthSignUp:"false"}){e=e.toLowerCase();const i={optionalAttributes:JSON.stringify(_(a)),...o},r=await n["a"].confirmSignUp(e,t,{clientMetadata:i});if("SUCCESS"!==r)throw new Error(JSON.stringify(r));return r}async function C(e,t,a){t&&(t=t.toLowerCase()),await c.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function x(e){await n["a"].verifyCurrentUserAttribute(e)}async function $(e,...t){const a={email:{email:t[0].toLowerCase()},phone_number:{phoneNumber:t[0],phoneNumberCountryCode:t[1]}}[e];await c.post("/account/setVerifyAttr",a)}async function T(e,t){const a=await n["a"].verifyCurrentUserAttributeSubmit(e,t);await c.post("/account/postVerifyAttr",{success:"SUCCESS"===a})}async function z(){await c.post("/admin/deleteAccount")}async function P(){const e=await n["a"].currentAuthenticatedUser();return await n["a"].setupTOTP(e)}async function A(e){const t=await n["a"].currentAuthenticatedUser();await n["a"].verifyTotpToken(t,e)}async function I(e,t){n["a"].signOutOAuth(),await c.postGuest("/account/unlinkProvider",{providerName:e,providerUserId:t})}async function q(e,t){e=e.toLowerCase();const a=await c.postGuest("/account/verifyForDisableMFA",{username:e,metadata:t}),n=a.email.Destination,o=a.phoneNumber.Destination;return{email:{destination:n},phoneNumber:{destination:o}}}async function O(e,t,a){e=e.toLowerCase(),await c.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}async function E(e,t){await y({msgLocale:`${e}:${t}`})}const D={data:{hash:void 0},record(e){if(!e)throw new Error("invalid password");D.data.hash=s["a"].digestPassword(e)},enable(){const e=async()=>{const e=async()=>{let e=await n["a"].currentUserInfo().then((e=>{var t;return null===e||void 0===e||null===(t=e.attributes)||void 0===t?void 0:t["custom:key_metadata"]}));return e=e?JSON.parse(e):{unset:!0,timestamps:{}},e},t=await e();t.hash?console.tag.green("Polyfill","config_password_hash","cancelled").log("cognito_hash_existed"):D.data.hash?(console.tag.green("Polyfill","config_password_hash","start").log(t),t.hash=D.data.hash,await n["a"].updateUserAttributes(await n["a"].currentAuthenticatedUser(),{"custom:key_metadata":JSON.stringify(t)}),console.tag.green("Polyfill","config_password_hash","done").log(t)):console.tag.green("Polyfill","config_password_hash","cancelled").log("local_hash_not_found")};this.$amplify.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await e()}))}};function j(){const e=a(["\n subscription OnMessage($channel: String!) {\n onMessage(channel: $channel) {\n channel\n data\n }\n }\n "]);return t;function t(t){const a=e("onMessage",{channel:`DeliveryStatus::${t}`},{authMode:"API_KEY"}),n=new Promise(((e,t)=>{a.on((a=>{const n=JSON.parse(a.data);console.log("promiseDeliveryStatus >",n),"Bounce"===n.type?t(o(n.data[0])):"Delivery"===n.type&&e(n)}))})).finally((()=>{a.off()}));return n.off=()=>a.off(),n;function o(e){var t;const a={"5.1.1":"Bad destination mailbox address","5.4.4":"Invalid domain","5.3.0":"Other or undefined mailbox status"};let n=a[e.status];return e.diagnosticCode.startsWith("smtp; 550 Mailbox unavailable or access denied")?n="Mailbox unavailable":e.diagnosticCode.indexOf("it is on the suppression list for your account.")&&(n="Suppressed email address"),new Error(null!==(t=n)&&void 0!==t?t:e.diagnosticCode)}}function a(e=[]){const t=a(e);return(e,a,{authMode:n,authToken:i}={})=>{if(!t[e])throw new Error(`Operation not found: ${e}`);const r=o["a"].graphql({query:t[e],variables:a,authMode:null!==n&&void 0!==n?n:void 0,authToken:null!==i&&void 0!==i?i:void 0});r.name=e;const s=(e,t)=>console.error(e[0].message,{errors:e,provider:t});let l;const c={on(e,t=s){return l&&l.unsubscribe(),l=r.subscribe({next:({provider:t,value:a})=>{var n;return e(null===(n=a.data)||void 0===n?void 0:n[r.name],t)},error:({provider:e,error:a})=>t(a.errors,e)}),c},off(){return l&&(l.unsubscribe(),l=null),c}};return c};function a(e=[]){return e.reduce(((e,a)=>(e[t(a)]=a,e)),{});function t(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return a}}}}},"9f3a":function(e,t,a){"use strict";a("4eaf")},"9f42":function(e,t,a){},"9fe7":function(e,t,a){"use strict";a("9be9")},a11f:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));a("de6c"),a("a1c1");var n=a("d710"),o=a.n(n);const i=new Map;function r(e){if(i.has(e))return i.get(e);if("string"!==typeof e)return e;let t=e;var a;if(e.startsWith(o.a.protocol))t=null===(a=e.match(/[^/]\/([^&/]+)/))||void 0===a?void 0:a[1];else if(e.startsWith(o.a.shortProtocol))t=e.replace(o.a.shortProtocol+"://","");else if(e.match(/([0-9a-fA-F]{40})/)){var n;t=null===(n=e.match(/([0-9a-fA-F]{40})/))||void 0===n?void 0:n[1],t&&(t=Buffer.from("01"+t,"hex").toString("base64").replace(/\//g,"_"))}const r=t||e;return i.set(e,r),r}},a282:function(e){e.exports=JSON.parse('{"lib_index":"Hogar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Siguiente","lib_favorite":"Favoritos locales","lib_local_favorites":"Favoritos locales","lib_channel":"Canal","lib_submit":"Entregar","lib_from_network":"Usando una base de datos descentralizada de la red","welcome_to_lib":"Bienvenido a ${displayName} Biblioteca multimedia","register_or_login":"Registro de inicio de sesión","lib_recommend":"Recomendar","lib_recommend_desc":"¡Bienvenido a ${displayName} Biblioteca! Esta biblioteca utiliza una base de datos descentralizada de la red. Para comenzar a usarlo, debe seguir algunos canales.","follow_any_channel_to_continue":"Sigue cualquier canal para continuar","follow_channels_and_continue":"Sigue {0} canales y continúa","show_more_for_me":"Mostrar más para mí","no_more_recommend":"No más recomendar","key":"Llave","create_key":"Crear clave","save_key":"Guardar clave","save_key_file":"¿Quieres guardar tu clave como archivo?","import_key":"Clave de importación","import":"Importar","invalid_key":"Tecla inválida","back_to_top":"Volver arriba","search_for_channel":"Buscar ID de canal","search_channel_no_result":"No se puede encontrar el canal con ID {0}","please_input_channel_id":"Ingrese el ID del canal","welcome_help_text":"Esta es una biblioteca multimedia descentralizada. Necesitas\\n para crear una cuenta para esta base de datos. Lo haremos\\n generar una clave personal para usted automáticamente.\\n Si ya ha tenido una clave, también puede importar\\n aquí.","welcome_key_text":"Una vez que haya iniciado sesión, haga clic en el botón [GUARDAR CLAVE]\\n en la esquina inferior derecha para guardar su clave privada.\\n Si pierde su clave, es posible que no pueda volver a iniciar sesión.","redirect_to_recommend":"Parece que no habías seguido ningún canal. Redirigiendo a la página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Dejar de seguir","following":"Siguiente","share":"Compartir","unfollow_confirm":"¿Estás seguro de dejar de seguir este canal? Se eliminarán todas las publicaciones de este canal en tu línea de tiempo.","follow_failed_hint":"La operación aún está pendiente en segundo plano. Si la operación no se aplica durante mucho tiempo, reinicie la aplicación y vuelva a intentarlo.","block":"Bloquear","unblock":"Desatascar","blocked":"Obstruido","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal lo eliminará de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","block_creator":"Bloquear al creador de este canal","unblock_creator":"Desbloquear al creador de este canal.","block_creator_confirm":"Bloquear creador eliminará todos los canales creados por este creador de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","share_url_copied":"Compartir URL se copia en su portapapeles","follow_time":"seguir el tiempo","update_time":"Tiempo de actualizacion","search":"Buscar","type":"Tipo","added":"Agregado","click_to_task":"Haga clic para ir a la tarea","lib_already_added":"Ya has añadido este vídeo.","description":"Descripción","poster":"Póster","channel_poster":"cartel del canal","preview":"Avance","creator":"Creador","creator_detail":"Detalles del creador","loading_creator":"Cargando información del creador","wait_for_creator_loaded":"Espere a que se cargue la información del creador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Usuario","channel_title":"Título del canal","channel_id":"Canal ID","post_title":"Título de la entrada","post_id":"ID del mensaje","import_data_from_excel":"Importar datos de excel","set_excel_keys":"Establecer claves de Excel","excel_import_succeded":"Importación de Excel exitosa","excel_import_success_msg":"{0} las filas están listas para agregarse, {1} no son válidos y {2} los elementos duplicados se ignoran","cannot_find_channel":"No puedo encontrar el canal","cannot_find_posts":"No puedo encontrar publicaciones","add_channel":"Agregar canal","add_post":"Agregar publicación","edit_channel":"editar canal","channel_setting":"Configuración de canal","edit_post":"Editar post","edit_posts":"Editar publicaciones","channel_detail":"Detalle del canal","remove":"Eliminar","remove_channel":"Quitar canal","remove_channel_confirm":"¿Estás seguro de eliminar esta publicación? Esto no se puede recuperar.","remove_post":"Quitar publicación","remove_post_confirm":"¿Estás seguro de eliminar este canal? Esto no se puede recuperar.","preview_mode":"Modo de vista previa","preview_mode_desc":"Esta es una vista previa de tu canal. Todas las tarifas de las películas se muestran aquí.","edit_user_profile":"Editar perfil de usuario","name":"Apodo","avatar":"Avatar","no_following":"No hay canales de seguimiento. Haga clic para ir a","no_recommend":"No hay canales recomendados. Haga clic para ir a","first_recomment_msg":"Puede tomar un tiempo si es la primera vez que se inicia la aplicación.","invalid_image":"Imagen inválida","image_not_reachable":"No se puede acceder a esta URL de imagen.","channel_not_found":"Canal no encontrado","cannot_get_channel_info":"No se puede obtener información del canal. Este canal puede ser eliminado por su creador y ya no está disponible.","validate_error":"Validar error","validate_user_name_no_space":"El nombre de usuario no debe contener espacios","validate_url_no_space":"La URL no debe contener espacios","validate_user_name_length":"El nombre de usuario debe tener una longitud entre {0} y {1}","validate_user_desc_length":"La descripción del usuario no debe tener más de {0} caracteres","validate_user_avatar_url":"El avatar del usuario debe ser una URL con menos de 2048 caracteres","validate_channel_title_length":"El título del canal debe tener una longitud entre 1 y 100","validate_channel_desc_length":"La descripción del canal debe tener una longitud de entre 10 y 300","validate_channel_image_url":"La vista previa del canal debe ser una URL con menos de 2048 caracteres","validate_post_title_length":"El título de la publicación debe tener una longitud entre 1 y 100","validate_post_desc_length":"La descripción de la publicación debe tener una longitud entre 10 y 300","validate_post_image_url":"El póster debe ser una URL con menos de 2048 caracteres","validate_post_url":"URL ${displayName} no válida","validate_post_url_length":"${displayName} La URL no debe tener más de 2048 caracteres","film_rate":"Tasa de película","set_film_rate":"Establecer tasa de película","select_a_rate_before_enter":"Debe seleccionar una tarifa de película antes de ingresar a la biblioteca de medios.","library_available_rate":"Tarifa de película disponible en la biblioteca","rate_g":"G – Audiencias Generales","rate_g_desc":"Todas las edades admitidas. Nada que ofendería a los padres por ser visto por niños.","rate_pg":"PG: se sugiere la supervisión de los padres","rate_pg_desc":"Algun material puede no ser adecuado para niños. Se instó a los padres a dar \\"orientación de los padres\\". Puede contener material que a los padres no les gustará para sus hijos pequeños.","rate_pg_13":"PG-13 – Padres fuertemente advertidos","rate_pg_13_desc":"Algunos materiales pueden ser inapropiados para niños menores de 13 años. Se insta a los padres a tener cuidado. Algunos materiales pueden ser inapropiados para preadolescentes.","rate_r":"R – Restringido","rate_r_desc":"Los menores de 17 años requieren un padre o tutor adulto que los acompañe. Contiene algo de material para adultos. Se insta a los padres a aprender más sobre la película antes de llevar a sus hijos pequeños con ellos.","rate_nc_17":"NC-17 – Solo para adultos","rate_nc_17_desc":"No se admiten menores de 17 años. Claramente adulto. No se admiten niños.","set_as_private":"Establecer como privado","hide_in_explore":"Ocultar este canal en la página de exploración","hidden":"Oculto","select_a_rate":"Seleccione una tarifa de película","select_from_tasks":"Seleccionar de tareas","import_from_magnet":"Importar desde imán:?...","input_magnet_url":"Imán de entrada:? URL","task_title":"Título de la tarea","set_title":"Establecer título","add_to_local_favorites":"Añadir a favoritos locales","remove_from_local_favorites":"Quitar de favoritos locales","removed_favorite":"Favorito eliminado","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locales como copia de seguridad","import_favorites_file":"Importar archivo de favoritos","not_a_favorite_file":"Este archivo no es un archivo de respaldo favorito","connection_status":"Estado de conexión","gun_server_list":"Nodos de caché","custom_nodes":"Nodos de caché personalizados","custom_nodes_hint":"Los nodos de caché personalizados se aplicarán después del reinicio de la aplicación","wait_for_reboot":"Esperando reinicio...({seconds}s)","reboot_now":"Reinicie ahora","reboot_later":"Reiniciar despues","peer_list":"Nodos directos","server":"URL del nodo","peer":"Par","peer_id":"ID de nodo","connection":"Conexión","data_source":"Fuente de datos","sync":"sincronizar","syncing":"Sincronizando","sync_completed":"Sincronización completada","got_all_post":"Ya tienes todas las publicaciones","placeholder_channel_title":"Nombre de tu canal","placeholder_channel_desc":"Descripción sobre este canal","placeholder_post_title":"Nombre de la película (año)","placeholder_post_desc":"Descripción sobre esta película","private_channel":"canal privado","creator_blocked":"Creador bloqueado","go_to_library":"¿Ir a la biblioteca?","go_to_library_channel_msg":"¿Quieres ir al canal de la biblioteca {0}?","magnet_does_not_have_name":"Este imán:? url no tiene nombre, primero debe agregar un título de publicación.","no_available_post":"No hay publicación disponible","following_channel_no_post":"Todos sus siguientes canales no tienen publicación disponible. Esto puede ser causado por un error de red. Si ya ha seguido algunos canales, es posible que las publicaciones se carguen más tarde.","share_to_library":"Compartir con la biblioteca","quick_start":"Inicio rápido","quick_start_desc":"Comienza a crear una publicación con una tarea o un archivo","select_file":"Seleccione Archivo...","select_folder":"Seleccione la carpeta...","post_options":"Opciones de publicación","channel_options":"Opciones de canal","create_new_channel":"Crear nuevo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Seleccionar canal existente","uploaded_by":"{title} subido por {name}","created_by":"{title} creado por {name}","creating_new_channel":"Creando nuevo canal...","created_new_channel":"Nuevo canal creado","creating_new_post":"Creando nueva publicación...","created_new_post":"Nueva publicación creada","create_new_post":"Crear nueva publicación","quick_start_timeout":"{0} tiempo de espera. Esto puede deberse a un error de red. Por favor, inténtelo de nuevo más tarde.","file_too_large":"Archivo demasiado grande","file_too_large_msg":"Este archivo tiene más de 4 GB ({size}) y puede llevar mucho tiempo preparar la tarea. ¿Estás seguro de continuar?","resolving_folder_files":"Resolviendo archivos de carpeta...","folder_too_large":"Carpeta demasiado grande","folder_too_large_msg":"Los archivos en esta carpeta tienen más de 4 GB ({size} en total) y pueden llevar mucho tiempo preparar la tarea. ¿Estás seguro de subir?","creating_new_task":"Creando nueva tarea...","cannot_create_task":"No se puede crear la tarea","cannot_create_task_msg":"Esto puede ser causado por algún error. Si la tarea se crea correctamente, puede verificar la lista de tareas más tarde.","cannot_get_task_name":"No se puede obtener el nombre de la tarea. Primero debe ingresar uno.","remove_old_task":"Eliminar tarea anterior","remove_old_task_desc":"El modo web solo puede crear una tarea a la vez. ¿Quieres eliminar la tarea anterior?","subtitle_list":"Lista de subtítulos","optional":"opcional","with_subtitle":"Con {language} subtítulos","maximumSubtitleNum_limit":"El número de subtítulos ha alcanzado su máximo","add_subtitle_url":"Añadir enlace de descarga de subtítulos","cannot_add_subtitle":"Error al agregar subtítulos","cannot_add_subtitle_msg":"Idioma de los subtítulos no seleccionado o enlace de descarga no válido.","support_subtitle_type":"Solo se admiten subtítulos en formato srt y vtt.","recommend_opensubtitles":"Se recomienda usar el enlace de descarga de subtítulos o la identificación en www.opensubtitles.org.","take_down":"Derribar","serious_violation":"Infracción grave","copyright_disputes":"Disputas de derechos de autor","adults_only":"Sólo para adultos","takedown_reason":"Motivo de eliminación","takedown_mode":"modo de derribo","admins":"administradores","takedown_user":"Eliminar a este creador","takedown_channel":"Eliminar este canal","takedown_post":"Eliminar esta publicación","select_takedown_reason":"Seleccione el motivo de eliminación","takedown_invalid_reason":"Motivo de eliminación no válido","takedown_invalid_user_id":"ID de usuario invalido. La identificación debe incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal no válido. El ID debe incluir 20 caracteres","takedown_invalid_post_id":"Identificación de publicación no válida. El ID debe incluir 20 caracteres","takedown_management":"Gestión de eliminación","users":"Usuarios","channels":"Canales","posts":"Publicaciones","you":"Tú","preset":"Preestablecido","admin":"Administración","committee":"Comité","about_takedown_mode":"Acerca del modo de eliminación:\\nPreset: Configurado en el repositorio de github. Todos ellos serán eliminados de la biblioteca.\\nAdministrador: cualquiera de los votos de los administradores será eliminado.\\nComité: Se eliminará al menos la mitad de los votos de los administradores.","cannot_edit_preset":"No puede editar esta fila porque es una fila predeterminada","cannot_edit_not_vote":"No puede editar esta fila porque no la ha votado","remove_vote":"Elimina tu voto","post_preload_failed":"No se pudo precargar esta publicación. El enlace de descarga puede estar desactualizado, por lo que esta publicación no se puede reproducir de inmediato.","about_cache_node":"Acerca del nodo de caché","edit_cache_node":"Editar nodo de caché","create_cache_node":"Crear nodo de caché","about_cache_node_desc":"${displayName} usa el servidor de armas como nodo de caché. Puede editar nodos personalizados en la configuración avanzada","learn_how_to_deploy_gun":"Aprenda a implementar su propio servidor de armas","repeat_add":"La tarea ha sido añadida, por favor no la vuelvas a añadir","upload":"Subir","download":"Descargar","delete":"Borrar","delete_task":"Eliminar tarea","delete_confirm_message":"¿Eliminar esta tarea? esto es irrevocable","also_delete_files":"También eliminar archivos","default_delete_files":"Eliminación predeterminada de archivos descargados después de eliminar la tarea","not_now":"Ahora no","delete_autoupload_confirm":"Esta tarea contiene un archivo que colocaste en el directorio de carga automática. Eliminar esta tarea también eliminará el archivo.","delete_anyway":"eliminar de todos modos","upload_too_many_files":"Subir demasiados archivos","ask_if_unlimit_upload_amount":"El directorio de carga automática contiene demasiados archivos. ¿Desea deshabilitar la limitación de la cantidad de carga? *Esto puede causar problemas de rendimiento","disable_limitation":"Deshabilitar limitación","not_length":"La operación de archivos múltiples no es compatible en este momento, por favor coopere","download_torrent":"Descargar archivo","upload_torrent":"Subir archivo","files":"archivos","file":"Archivo","folder":"Carpeta","start_all":"Empezar todo","pause_all":"Pausar todo","remove_all":"Eliminar todo","upload_all":"Subir todo","clear_history":"Borrar historial","pause_all_finish_payments":"Esto finalizará todos los pagos.","accelerating":"Acelerador","link_task":"Vincular tarea","torrent_task":"Tarea de archivo","ok":"DE ACUERDO","cancel":"Cancelar","download_directory_position":"Descargar la posición del directorio","torrent_file":"archivo de tarea","magnetic_link_incorrect":"El formato del enlace es incorrecto.","delete_fail":"Error al eliminar","pause":"Pausa","paused":"en pausa","stop_torrent":"Detener","seed":"Semilla","resume":"Reanudar","downloading":"Descargando","downloaded":"descargado","uploading":"Cargando","auto_uploading":"Carga automática","uploaded":"subido","pending":"Esperando otras tareas","verifying":"Verificando","waiting_for_verify":"Esperando para verificar","seeding":"siembra","completed":"Terminado","status":"Estado","task_name":"Nombre de la tarea","size":"Tamaño","progress":"Progreso","sort":"Clasificar","ascending":"ascendente","descending":"Descendente","file_loading":"Cargando archivo...","loading":"Cargando","unknown_status":"Desconocido","play_while_downloading":"Jugar...","upload_or_play":"Cargar / Reproducir","play":"Jugar","ask_if_upload_file":"¿Subir archivo?","ask_if_upload_or_play":"¿Subir o reproducir archivo?","torrent_error":"Error al agregar tarea:","no_peers":"Vuelva a intentarlo más de {0} veces y no hay ningún compañero disponible","torrent_exists":"La tarea ya existe.","show_origin_torrent":"Obtener archivo de tarea original o url","show_directory":"Abra el directorio de este torrent","task_num":"Tareas","total_upload_speed":"Velocidad de subida","total_download_speed":"Velocidad de Descarga","path_missing":"Error: no se puede encontrar la ruta del torrente","origin_not_found":"No se puede encontrar la información de la tarea de origen.","text_copied":"La URL de Magnum se copia en su portapapeles","copy_magnet_uri":"Copiar imán :? URI","copy_download_uri":"Copiar URI de descarga","copy_share_uri":"Copiar compartir URI","uri_copied":"URI se copió con éxito en su portapapeles","uri_copy_failed":"Error al copiar uri","more":"Más...","toggle_list_mode":"Alternar modo de lista","comment":"comentario","operations":"Operaciones","open_directory":"Directorio abierto","no_downloading_task":"Sin tarea de descarga","remove_all_downloading_tasks":"¿Eliminar todas las tareas de descarga?","remove_all_upload_tasks":"¿Eliminar todas las tareas de carga?","remove_autoupload_files":"Eliminar archivos de carga automática","remove_all_history":"¿Eliminar todo el historial?","remaining":"Restante","created_time":"tiempo creado","used_time":"Tiempo usado","completed_time":"tiempo completado","yesterday":"Ayer","before_yesterday":"{empty}","earlier":"Más temprano","miss_file":"Faltan algunos archivos","delete_miss_file_task":"Faltan archivos fome en {0}.","common_peer":"Par común","ab_peer":"${displayName} compañero","ab_peer_verified":"Compañero ${displayName} verificado","ab_peer_available":"${displayName} compañeros disponibles","alphabiz_accelerating":"${displayName} acelerando","income":"Ingreso","income_info":"Ingresos (hoy/total)","total_income_info":"Ingresos: {0}(hoy) / {1}(total)","login_to_see_income":"Inicie sesión para ver las estadísticas de ingresos","credit_cost":"Costos de crédito","downloaded_by_payment":"Descargado por Pagos","file_not_found":"No se puede encontrar este archivo en local","no_task":"No preguntar","no_matched_task":"Sin tarea coincidente","space_not_enough":"Espacio en disco insuficiente","need_more_space":"Necesita {0} más de espacio pero el disco actual tiene {1} libre ({2} reservado). Las tareas están en pausa. La precarga de la biblioteca está deshabilitada. Puede volver a habilitarlo en [Configuración - Avanzado].","seeders":"Sembradoras","last_update":"Última actualización","connecting":"Conectando","connected":"Conectado","request_timed_out":"Tiempo de espera agotado","connection_failed":"La conexión falló","invalid_download_url":"URL de descarga no válida","download_link":"enlace de descarga","empty_files":"No hay archivos en el directorio","duplicate_task":"Tarea duplicada","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarea no está lista. Pausar esta tarea la eliminará directamente.","some_task_not_ready":"Algunas tareas no están listas. Pausar estas tareas las eliminará directamente.","failed_to_delete_files":"Error al eliminar archivos","failed_to_delete_files_desc":"No se pudieron eliminar algunos archivos de la tarea. Es posible que deba eliminarlos manualmente","unknown_error":"Error desconocido: {0}","more_files_are_not_shown":"({0} más archivos no se muestran por motivos de rendimiento)","no_available_file":"Ningún archivo disponible. Espere a que la tarea esté lista.","service_worker_error":"No se puede cargar ServiceWorker para jugar. Es posible que su navegador no sea compatible con esta función o que ServiceWorker no esté activado. Es posible que deba volver a cargar esta página e intentarlo de nuevo.","add_task_first":"Primero debe agregar la tarea.","player_task_time":"El jugador tarda demasiados segundos en prepararse para jugar. Puede haber algo mal con la tarea.","web_mode_hint":"El modo web de ${displayName} solo es compatible con pares WebRTC. Para obtener la mejor experiencia, descargue la aplicación de escritorio ${displayName}.","web_mode_task_hint":"Haga clic en los botones a continuación para agregar una tarea. Solo puede agregar una tarea a la vez.","save_to_local":"Guardar en local","save_as_zip":"Guardar como ZIP","creating_save_file":"Creando archivo guardado...","upload_as_one_directory":"Subir como un directorio","upload_as_single_files":"Subir como archivos individuales","web_mode_upload_single":"Solo puedes subir un único archivo en modo web","download_success":"Descargar con éxito","download_fail":"Descarga fracasó","wait_for_downloaded_to_share":"Espere a que se descargue la tarea antes de compartirla.","download_with_cellular":"Descargar tareas usando celular","download_with_cellular_desc":"Está utilizando una red celular. Las tareas de descarga con celular pueden tener tarifas adicionales por parte de su proveedor.","download_with_cellular_confirm":"Todavía descargar con celular","language":"Idioma","appearance":"Apariencia","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Oscuro","basic_setting":"Básico","hideMenu":"Ocultar menú de aplicaciones (solo Windows y Linux)","autoHide":"Ocultar ventana automáticamente","autoStart":"Abrir al iniciar sesión","restore":"Mantener el tamaño y la posición de la ventana al salir","autoStartUnfinished":"Reanudar automáticamente todas las tareas inconclusas","default_download_path":"Ruta predeterminada","download_directory":"Descargar directorio","upload_directory":"Subir directorio","enable_auto_upload":"Habilitar carga automática","unlimit_upload_amount":"Cantidad de carga ilimitada","unlimit_upload_warning":"Permitir cargar una gran cantidad de archivos. Esto puede causar un problema de rendimiento","start":"Puesta en marcha","transport_setting":"Transmisión","upload_limit":"Límite de carga","download_limit":"Límite de descarga","payed_user_share_rate":"Tasa de participación de usuario pagado","unlimited":"Ilimitado","limit_input_error":"El número límite debe ser positivo","BT_setting":"Configuración de tareas","saveLinkSeed":"Guardar enlace como archivo de tarea","autoDownload":"Descargar automáticamente el enlace y el contenido","continuousSeeding":"Sigue sembrando hasta que lo detengas manualmente.","seedSharingRate":"Proporción de semillas","seedTime":"Tiempo de semilla (minutos)","task_manage":"Administración de tareas","maximumDownloadNum":"Máximo de tareas activas","maximumConnectionsNum":"Conexión máxima por servidor","range_error":"El rango debe estar entre {0} y {1}","random":"aleatorio","breakpointContinuation":"Continuar","automaticSkip":"Mostrar automáticamente la descarga después de agregar una tarea","afterNotification":"Notificación después de que se complete la descarga","deleteConfirm":"No se requiere confirmación antes de eliminar la tarea","submit":"Guardar y aplicar","discard":"Desechar","reset":"Reiniciar","reset_all_settings":"¿Restablecer todos los ajustes?","preferences_resetted":"Preferencias restablecidas","traditional_chinese":"chino tradicional","japanese":"japonés","english":"Inglés","chinese":"chino simplificado","advancedSettings":"Avanzado","autoUpdate":"Actualización automática","autoCheckUpdate":"Comprobar automáticamente si hay actualizaciones","proxy":"Apoderado","useProxyService":"Habilitar proxy","trackerService":"Servidores de seguimiento","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Actualizar la lista de rastreadores todos los días automáticamente","manualUpdateTracker":"Actualización manual","manualUpdateSuccess":"Actualice con éxito los servidores de seguimiento","manualUpdateFail":"Error al actualizar desde:","listenPort":"Puertos de escucha","BTlistenPort":"Puerto de transmisión de datos","DHTlistenPort":"Puerto hash distribuido","protocols":"Protocolos compatibles","setDefaultClientForFollowingProtocols":"Establecer como cliente predeterminado para los siguientes protocolos","magnetUrl":"Imán","video_file":"Archivo de vídeo","audio_file":"Archivo de audio","security":"Seguridad","impersonateUserAgent":"Agente de usuario simulado","RPCauthorizationkey":"Secreto RPC","viewDocument":"Ver manual secreto de RPC","developer":"Desarrollador","applicationLogPath":"Ruta de registro de la aplicación","downloadSessionPath":"Descarga la ruta de la sesión","resetDownloadSessionRecord":"Restablecer sesión de descarga","restoreInitialSettings":"Restablecimiento de fábrica","preferences_set_successfully":"¡Guarde las preferencias con éxito!","preferences_set_fail":"¡Error al guardar las preferencias!","change_not_save":"Los cambios no se guardan","discard_all_changes":"¿Descartar todos los cambios y salir?","stay_in_page":"permanecer en la página","disk_usage":"Uso del disco","pause_if_less_space":"Pausar y notificar si el espacio es inferior a (MB)","default_video_player":"reproductor de vídeo predeterminado","video_cache_time":"Caché de reproducción de secuencias","minutes":"minutos","system_default":"Sistema por defecto","media_player":"Reproductor multimedia","library_film_rate":"Tarifa de película disponible","library_show_explore":"Mostrar la página [Explorar]","library_setting":"configuración de la biblioteca","library_sync_setting":"Configuración de sincronización de la biblioteca","keychain_sync_status":"Estado de sincronización del llavero","sync_with_aws":"Sincronizar llavero con Amazon Web Services","backup_to_local":"Copia de seguridad en archivo local","enable_sync_with_aws":"Habilitar sincronización con AWS","disable_sync_with_aws":"Deshabilitar la sincronización con AWS","disable_sync_with_aws_desc":"Esto eliminará la clave guardada en el servidor. Asegúrese de haber exportado ya su clave.","input_independent_password":"Introducir contraseña independiente","change_independent_password":"Cambiar contraseña independiente","password_error":"Error de contraseña","password_invalid":"contraseña incorrecta","key_existed":"La clave existía","key_not_found":"Clave no encontrada","library_recommend":"biblioteca recomendar","show_all_channels":"Mostrar todos los canales en la página de recomendación de la biblioteca","not_logged_in":"Sin iniciar sesión","login_to_continue":"Iniciar sesión para continuar","mnemonic_code":"Código mnemotécnico","wordlist":"Lista de palabras","restore_code":"Restaurar desde código","generate_code":"Generar codigo","export_mnemonic_code":"Exportar código mnemotécnico","import_mnemonic_code":"Importar código mnemotécnico","print":"Imprimir","save_as_txt":"Guardar como texto","save_as_pdf":"Guardar como pdf","from_file":"Desde el archivo","not_valid_mnemonic_code":"Este no es un código mnemotécnico válido","cannot_parse_code_as_key":"No se puede analizar este código mnemotécnico como clave de biblioteca","import_key_hint":"¿Estás seguro de importar esta clave? Esto recuperará su clave anterior en la biblioteca.","import_key_confirm":"Sí, importarlo.","library_preload":"Precargar tareas desde la biblioteca","show_preload":"Mostrar tareas de precarga","set_download":"Establecer directorio de descarga","set_download_desc":"Para la versión de la App Store de macOS, el directorio de descarga predeterminado está en la zona de pruebas de la aplicación y se eliminará después de desinstalar la aplicación. Si desea conservar sus archivos de descarga, debe seleccionar un directorio de descarga diferente manualmente.","home":"Hogar","home_caption":"Descargar/cargar y archivos multimedia","library":"Biblioteca","library_caption":"Explorar recursos de medios","player":"Jugador","player_caption":"Reproductor multimedia","credits":"Créditos","credits_caption":"Consultar saldo de cuenta","account":"Cuenta","account_caption":"Iniciar sesión/Registrarse/Gestión","settings":"Ajustes","settings_caption":"Configuraciones para aplicación, jugador, cuenta","development":"Desarrollo","development_caption":"Modo desarrollador para uso interno","basic":"Básico","basic_caption":"Ajustes básicos","advanced":"Avanzado","advanced_caption":"Ajustes avanzados","blockchain":"Billetera","blockchain_caption":"${displayName} Monedero descentralizado","internal_notice":"Aviso de publicación interna","release_notes":"Notas de lanzamiento","terms_and_conditions":"Términos y condiciones","license_and_listen_notices":"Licencia y escucha Avisos de código abierto","close":"Cerca","success":"Éxito","fail":"Fallar","account_email_invalid_address":"Dirección de correo electrónico no válida","account_email_invalid_domain":"Dominio de correo electrónico no válido","account_email_unknown_status":"Estado de entrega de correo electrónico desconocido","account_email_unavailable_address":"Dirección de correo electrónico no disponible","account_email_suppressed_address":"Dirección de correo electrónico suprimida","account_loading":"Cargando...","account_is_required":"se requiere","account_sign_in_your_account":"Iniciar sesión","account_username":"Nombre de usuario","account_username_email_phone":"Número de teléfono o correo electrónico","account_password":"Contraseña","account_new_password":"Nueva contraseña","account_re_enter_password":"Escriba la contraseña otra vez","account_password_not_equal":"Dos contraseñas no son iguales","account_new_password_same":"La contraseña es la misma que la contraseña original.","account_forgot_your_password":"¿Olvidaste tu contraseña?","account_reset_password":"Restablecer la contraseña","account_sign_in":"Iniciar sesión","account_signed_in":"Registrado","account_sign_up":"Inscribirse","account_find_your_account":"Encuentra tu cuenta","account_enter_your_username":"Ingrese su número de teléfono o correo electrónico","account_search":"Buscar","account_email_sent_tip":"Se ha enviado un correo electrónico con un código de verificación a su correo electrónico:","account_phone_sent_tip":"Se ha enviado un SMS con un código de verificación a su teléfono:","account_email_phone_sent_tip":"Se han enviado un correo electrónico y un SMS con el código de verificación a su correo electrónico y teléfono, respectivamente:","account_software_token_tip":"MFA está habilitado para su cuenta. Para terminar de iniciar sesión, encienda o vea su dispositivo y escriba el TOTP","account_reset_your_password":"Restablecer su contraseña","account_verification_code":"Código de verificación","account_resend_code":"Reenviar codigo","account_code_has_been_resent":"El código de verificación ha sido reenviado","account_password_has_been_reset":"Contraseña se ha restablecido","account_submit":"Entregar","account_sign_up_your_account":"registra tu cuenta","account_fill_required_fields":"Complete los campos requeridos a continuación.","account_fill_optional_fields":"Complete los campos opcionales a continuación.","account_email":"Correo electrónico","account_invitation":"Invitación","account_invitation_code":"Código de invitación","account_i_accept":"Acepto","account_license_terms":"la licencia y los términos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos.","account_verify_fill_optional_fields":"Verifique y complete los campos opcionales.","account_nickname":"Apodo","account_gender":"Género","account_male":"Masculino","account_female":"Femenino","account_not_say":"No decir","account_birthday":"Cumpleaños","account_phone_number":"Número de teléfono","account_locale":"Local","account_tip_verified":"Verificado, iniciando sesión...","account_verified":"verificado","account_unverified":"inconfirmado","account_signed_up":"Inscrito","account_verify_your_identity":"Verifica tu identidad","account_finish":"Finalizar","account_signed_out":"Cerró sesión","account_change_password":"Cambiar la contraseña","account_change_email":"Cambiar e-mail","account_change_phone_number":"Cambiar número de teléfono","account_sign_out":"desconectar","account_current_password":"Contraseña actual","account_re_enter_new_password":"re-ingrese nueva contraseña","account_personal_information":"Información","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Hola,","account_cancel":"Cancelar","account_change":"cambiar","account_not_set":"no establecido","account_setting":"configuración","account_copy_code":"copia el código","account_account_setting":"Cuenta","account_task_page":"tarea de crédito","account_setting_caption":"Cambiar contraseña / Editar información","account_security":"Seguridad","account_want_to_join":"¿Querer unirse?","account_sign_in_now":"Iniciar sesión","account_changed":"Cambió","account_clipboard_with_invitation_code":"Código de invitación copiado","account_clipboard_with_code":"El código copiado","account_invitation_code_dialog_tip":"Enviarás a tu amigo un correo electrónico o mensaje de texto con un código de invitación:","account_available":"disponible","account_invited":"invitado","account_used":"usado","account_invitation_code_sent":"Se ha enviado el código de invitación.","account_invitation_channel_required":"Rellene al menos un canal de invitación","account_no_verification_code":"¿No puede recibir el código de verificación?","account_no_phone_number":"¿Sin número de teléfono?","account_sign_up_by_email":"Regístrese por correo electrónico","account_no_email":"No email? ","account_sign_up_by_phone_number":"Regístrese por número de teléfono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Si no hay TOTP, configure TOTP primero","account_setup_totp":"Configurar TOTP","account_contact_information":"Información del contacto","account_delete_account":"Borrar cuenta","account_deleted":"Eliminado","account_can_not_mfa":"MFA en problemas?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Deshabilitar MFA","account_disabled_mfa":"MFA deshabilitado","account_sms_mfa":"SMS MFA","account_totp_mfa":"AMF TOTP","account_totp":"TOTP","account_not_recommend":"No recomendado","account_oauth_sign_in_with":"Iniciar sesión con {provider}","account_sign_in_failed":"Error al iniciar sesión","account_tip_oath_sign_up":"El correo electrónico correspondiente a la cuenta {provider} actual: {email} aún no ha creado una cuenta","account_tip_confirm_delete_account":"Ingrese la contraseña de la cuenta actual para confirmar que desea eliminar la cuenta actual. (Las cuentas eliminadas no se pueden restaurar)","account_tip_config_mfa":"Puede optar por usar SMS o una contraseña de un solo uso basada en el tiempo (TOTP) como autenticación secundaria","account_error_can_not_enable_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar MFA","account_tip_can_not_enable_sms_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar SMS MFA","account_tip_can_not_enable_totp_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar TOTP MFA","account_tip_setup_totp":"Use aplicaciones como Authenticator para escanear el código QR a continuación o copie el código manualmente para agregar un token de seguridad","account_tip_verify_totp":"Verifica tu TOTP","account_link_your_social_account":"Enlaza tu cuenta social","account_unlink_your_social_account":"Desvincular cuenta social","account_tip_confirm_link":"¿Está seguro de que desea vincular la cuenta actual a su cuenta {provider}?","account_tip_confirm_unlink":"¿Está seguro de cancelar su cuenta vinculada de {provider}?","account_tip_linking":"vinculante...","account_tip_unlinking":"Desvinculación...","account_linked":"Atado","account_unlinked":"Sin consolidar","account_error_can_not_link_to_the_linked_account":"La cuenta social actual está vinculada a otra cuenta","account_error_can_not_link_to_the_mismatched_email":"La cuenta actual y la dirección de correo electrónico de la cuenta social son inconsistentes","account_error_can_not_link_before_email_verified":"La cuenta social no se puede vincular porque la cuenta actual no está vinculada a un correo electrónico verificado","account_tip_confirm_verify_email_phone":"¿Desea enviar un código de verificación al correo electrónico y al número de teléfono de la cuenta actual para verificar su identidad?","account_tip_confirm_verify_phone":"Si enviar un código de verificación al número de teléfono actual para verificar su identidad?","account_error_1_message_60_seconds":"Solo se puede enviar un SMS o correo electrónico cada 60 segundos, espere otros {delta} segundos","account_error_10_messages_per_day":"Cada teléfono móvil o correo electrónico solo puede enviar 10 mensajes en 24 horas","account_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","Network Error":"Hay un problema con la red, inténtalo de nuevo más tarde","account_error_user_not_exist":"el usuario no existe","account_error_incorrect_username_or_password":"Nombre de usuario o contraseña incorrecta","account_error_incorrect_original_password":"Contraseña original incorrecta","account_error_incorrect_password":"Contraseña incorrecta","account_error_username_not_found":"usuario no encontrado","account_error_can_not_reset_for_no_verified":"No se puede restablecer la contraseña de la cuenta no verificada","account_error_invalid_verification_code":"Código de verificación incorrecto, inténtalo de nuevo","account_error_expired_verification_code":"El código de verificación caducó, inténtalo de nuevo","account_error_password_not_long_enough":"La contraseña no es lo suficientemente larga","account_error_attempt_limit_exceeded":"Se excedió el límite de intentos, intente después de un tiempo.","account_error_password_attempts_exceeded":"Intentos de contraseña excedidos.","account_error_invalid_phone_number_format":"Formato de número de teléfono no válido","account_error_no_cell_phone_prefix":"Seleccione el prefijo para el número de teléfono","account_error_username_already_exists":"el nombre de usuario ya existe","account_error_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos","account_error_inactive_code":"El código de invitación no es un código activado","account_error_non_existent_code":"El código de invitación no existe.","account_error_unexpected":"Error inesperado","account_error_can_not_change_email_before_phone_bound":"El correo electrónico no se puede cambiar antes de vincular el número de teléfono","account_error_can_not_change_email_before_unbound_social_account":"El correo electrónico no se puede cambiar antes de desvincular la cuenta social","account_error_can_not_change_phone_before_email_bound":"El número de teléfono no se puede cambiar antes de vincular el correo electrónico","account_error_can_not_change_email_phone_with_mfa_enabled":"No se puede cambiar el correo electrónico o el número de teléfono móvil antes de desactivar MFA","account_error_not_supported_yet":"No hay apoyo por el momento","account_error_same_email":"La nueva dirección de correo electrónico no puede ser la misma que la dirección de correo electrónico original","account_error_same_phone":"El nuevo número de teléfono no puede ser el mismo que el número de teléfono original","account_error_email_not_exists":"La dirección de correo electrónico no existe","account_error_email_already_exists":"Ya existe una cuenta con el correo electrónico proporcionado.","account_error_phone_already_exists":"Ya existe una cuenta con el número de teléfono dado.","account_error_mfa_token_mismatch":"Discrepancia de código de token de software","account_error_recaptcha_not_loaded":"Hay un problema con la red. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_recaptcha_validation_failed":"La validación de ReCAPTCHA falló. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_sign_in_in_progress":"Intento de inicio de sesión pendiente ya en curso","account_field_range":"Límite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Solo admite alfanumérico","account_field_only_alphanumeric_and_symbol":"Solo admite caracteres alfanuméricos y símbolos.","account_field_only_chinese_alphanumeric_space_underline":"Solo admite caracteres alfanuméricos, espacios y guiones bajos.","account_field_prefix_without_number_space":"El primer carácter no puede ser un número o un espacio","account_field_suffix_without_space":"No puede terminar con un espacio","account_field_without_repeat_space":"No se pueden usar varios espacios seguidos","account_field_can_not_only_alphanumeric":"No puedes usar solo letras o números.","account_field_must_have_number_characters":"Debe tener caracteres numéricos","account_field_verification_code":"El código de verificación debe ser de seis dígitos","account_field_invitation_code":"El código de invitación debe ser alfanumérico","account_field_phone_number":"Formato de número de teléfono no válido","account_invalid_email_format":"Formato de correo inválido","account_sign_out_confirm":"¿Estás seguro de cerrar sesión? Esto detendrá todas las tareas.","account_sign_out_anyway":"Cerrar sesión de todos modos","account_signing_out":"Cerrando sesión...","account_request_save_settings":"Los ajustes no se guardan. Debe guardar los cambios antes de cerrar sesión.","pay":"Pagar","pay_with_credit":"Pagar por acelerar la descarga. Necesita alrededor de {0} de crédito","pay_with_credit_payed":"Acelerador. Todavía necesita alrededor de {0} de crédito","create_payment":"Crear pago","pay_target":"Objetivo","pay_for_torrent":"Pagar por {0}","your_subid":"su subID","your_credits":"tus creditos","pay_point_for_data":"Paga {0} puntos por {1} datos","auto_renew":"Habilitar renovación automática","transaction_details":"Detalles de la transacción","transaction_id":"Identificación","transaction_payer":"Pagador","transaction_payee":"Tenedor","transaction_category":"Categoría","transaction_changed_amount":"Importe modificado","transaction_meta":"Meta","transaction_status":"Estado","transaction_creation_time":"Tiempo de creación","receipt_code":"Código de recibo","transfer_amount":"Monto de la transferencia","code_the_receipt_code":"Copie el código de recibo a continuación para el pagador","fill_the_receipt_code":"Transferencia rellenando el código de pago facilitado por el beneficiario","expense":"Gastos","copied":"copiado","transfer":"Transferir","receive":"Recibir","copy":"Copiar","withdraw_fund":"Retirar fondos","category_paydata_payer":"costo de los datos","category_paydata_payee":"Ingreso de datos","category_transfer":"Transferir","category_bonus":"Prima","category_recharge":"Recargar","status_pending":"pendiente","status_completed":"terminado","status_finish":"finalizar","status_failed":"fallido","tip_invalid_receiver":"Código de receptor no válido","tip_invalid_amount":"El monto del crédito debe ser un valor flotante en el rango de 0 a 1000 (la precisión mínima es 0,001)","credit_get_more":"Obtenga más créditos","credit_no_data":"Datos no disponibles","credit_loading":"Cargando...","credit_not_enough_amount":"Crédito insuficiente","credit_amount_not_enough":"Crédito insuficiente","credit_payee_not_exist":"El beneficiario no existe","credit_invalid_amount":"Importe de crédito no válido","credit_can_not_transfer_to_yourself":"No se puede transferir a usted mismo","credit_latest":"El último","credit_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","add_subtitles":"Agregar subtítulos","open_file":"Abrir documento...","advanced_options":"Opciones avanzadas","title":"Título","location":"ubicación","subtitle_file":"archivo de subtítulos","unsupported_subtitle_type":"El tipo de archivo de {0} no es un tipo de subtítulo admitido","not_default_player":"El reproductor de video predeterminado no está configurado","this_is_an_audio_file":"Este es un archivo de audio.","the_added_subtitle_already_exists":"El subtítulo agregado ya existe","stop_stream_player":"La transmisión de medios se terminó porque la tarea se detuvo o se eliminó","stop_player":"El reproductor se canceló porque se eliminó el archivo.","playing_timeout_hint":"Tiempos de espera agotados. Por favor revisa la tarea","autoplay_hint":"La reproducción automática puede estar bloqueada por su navegador. Si el jugador no está jugando, intente hacer clic en la pantalla para continuar","remove_playing_confirm":"{0} todavía se está reproduciendo, eliminarlo detendrá el reproductor. ¿Estás seguro de eliminarlo?","unsupported_in_browser":"Todavía no es compatible con el modo navegador","client":"Cliente","warning":"Advertencia","enable":"Permitir","disable":"Desactivar","auto":"Auto","encrypt_connection":"Cifrar conexión","encrypted_connection":"Conexión encriptada","non_encrypted_connection":"Conexión no encriptada","connected_wires_not_disconnect":"Los cables conectados no se desconectarán","audio":"audio","video":"video","image":"imagen","subtitle":"subtitular","zip":"cremallera","text":"texto","unknown":"desconocido","add":"Agregar","undo":"Deshacer","backup":"Respaldo","not_default_app":"${displayName} no es su aplicación predeterminada para torrent y medios, ¿desea establecerla como predeterminada?","dont_show_again":"no volver a mostrar","go_to_settings":"Ir a la configuración","about_alphabiz":"Sobre ${displayName}","last_check_at":"último cheque en","update_channel":"Actualizar canal","check_for_update":"Buscar actualizaciones","checking_for_update":"Comprobación de actualización...","no_update_available":"Actualización no disponible","update_available":"Actualización disponible","update_now":"Actualizar ahora","update_later":"Actualizar más tarde","click_to_update":"Haga clic en el botón ACTUALIZAR AHORA para descargar y actualizar","update_failed":"Actualización fallida","update_failed_message":"Ocurrió un error durante la actualización:","check_shasum_failed":"No se pudo verificar la integridad del instalador","downloading_update":"Descargando actualización...","ready_to_update":"Listo para actualizar","restart_to_update":"Se descarga la actualización. ${displayName} saldrá para actualizarse por unos momentos.","already_latest":"La versión actual ({0}) ya es la última","update_timeout":"Tiempo de espera de actualización","no_available_release":"Sin lanzamiento disponible","no_available_installer":"No hay instalador disponible","feedback":"Comentario","select_a_type":"Seleccione un tipo","category":"Categoría","select_a_category":"Seleccione una categoría","require_title":"Se requiere título","describe_your_problem":"Describe tu problema","report_a_bug":"Reportar un error","request_a_new_feature":"Solicitar una nueva característica","download_or_upload":"Descargar cargar","others":"Otros","submit_with_system_info":"Enviar con información del sistema","submit_feedback":"Enviar comentarios","tweet_us":"twitteanos","tweet_too_long":"El tuit es demasiado largo","delete_characters":"Elimine al menos {0} carácter(es)","rest_characters":"Puede ingresar {0} carácter(es) más","update_alphabiz":"Actualizar ${displayName}","current_version":"Versión actual","cancel_update":"Cancelar actualización","slow_download_speed":"Descarga demasiado lenta","slow_download_speed_caption":"La descarga del instalador es demasiado lenta ahora. Por favor, compruebe el estado de la red.","update_canceled":"Actualización cancelada","current_version_release_time":"Tiempo de lanzamiento de la versión actual","expired_app":"${displayName} Caducado","version_out_of_date":"Versión desactualizada","have_to_update":"La versión de ${displayName} está desactualizada. Algunos protocolos o API están en desuso. Tienes que actualizar ${displayName} antes de continuar.","exit_alphabiz":"Salir ${displayName}","exit_and_update":"Salir y aplicar actualización","new_version_hint":"La nueva versión está disponible","no_new_version":"No hay nueva versión disponible","current_is_latest":"La versión actual ya es la última","click_to_check_update":"Haga clic en el botón [COMPROBAR ACTUALIZACIÓN] para buscar actualizaciones","download_latest_version_from_website":"Visite el sitio web oficial para descargar la última versión.","to_the_website":"Ir al sitio web","network_diagnotic":"Diagnóstico de red","diagnotic":"Diagnóstico","click_to_check":"Haga clic para verificar","click_to_check_again":"Haga clic para comprobar de nuevo","checking":"Comprobación","online":"En línea","offline":"Desconectado","dns_look_up":"búsqueda de DNS","error":"Error","aws_service":"Servicio AWS","network_pings":"Ping de red","not_found":"Extraviado","packet_loss":"Pérdida de paquetes","official_site":"Sitio oficial","download_test":"Descargar prueba","test_task":"Tarea de prueba {0}","download_failed":"Descarga fracasó","second_spend":"{0} gasto","open_default_player_failed":"Error al abrir el reproductor predeterminado","copied_to_clipboard":"Copiado al portapapeles","go_to":"Ir a","region_not_available":"Región no disponible","region_not_available_message":"¡Lo siento! Su región no está disponible para usar esta aplicación. Esta aplicación se cerrará después de {0} segundos","confirm":"Confirmar","no_available_result":"Ningún resultado disponible","invalid_password_format":"Formato de contraseña no válido","invalid_password_format_same":"La contraseña es la misma que la contraseña original.","error_password":"Error de contraseña","keychain_setting":"Llavero","setting_description":"Almacenamiento en la nube: guarde datos clave en la nube.\\nCambiar contraseña: cambie la contraseña de la clave de la biblioteca de medios.\\nMnemónico: un método alternativo para generar y restaurar claves.\\nImportar clave local: importe la clave guardada localmente en la biblioteca de medios.\\nExportar clave: guarda los datos de la biblioteca de medios actual en el local o en la nube.\\nCopia de seguridad de la clave en la nube: actualice los datos de la biblioteca de medios actual en la nube para hacer una copia de seguridad.","refresh_status":"Estado de actualización","confirm_import_key":"Confirmar clave de importación","confirm_update_cloud_key":"Ya tienes una clave en la nube. Actualizar la clave sobrescribirá la clave original. ¿Está seguro de que desea actualizar la clave almacenada en la nube?","export_key_with_cloud":"Ingrese la contraseña independiente que configuró para exportar la clave de la biblioteca almacenada en la nube y bloquee el archivo clave con la contraseña de desbloqueo","store_cloud_key_prompt_password":"Ingrese una contraseña independiente para almacenar la clave de la biblioteca en la nube","update_cloud_key_prompt_password":"Establezca una contraseña independiente para cifrar la clave de la biblioteca y luego actualícela en la nube","enable_cloud_storage_prompt_password":"Establezca una contraseña para la clave almacenada en la nube, a través de la cual puede recuperar la clave de la nube","input_unlock_password":"Establecer contraseña de desbloqueo","export_local_prompt_password":"Establezca una contraseña de desbloqueo para cifrar su archivo de clave. No guardaremos esta contraseña para usted, por lo que si pierde su contraseña, no podrá desbloquear su clave de biblioteca","require_unlock_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","require_independent_password":"Ingrese la contraseña independiente para obtener la clave almacenada en la nube","import_local_prompt_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","select_encrypt_mode":"Seleccione el modo de encriptación","update_cloud_key":"Actualizar la clave almacenada en la nube","backup_to_cloud":"Copia de seguridad de la clave de la biblioteca en la nube","save_local":"Guarde la clave de la biblioteca como archivo cifrado local","create_new_key":"Crear una nueva clave de biblioteca","creating_lib_key":"Creando clave de biblioteca...","loading_lib_key":"Cargando clave de biblioteca...","failed_to_create_lib_key":"No se pudo crear la clave de la biblioteca","failed_to_load_lib_key":"Error al cargar la clave de la biblioteca","import_local_key":"Importar clave localmente","import_lib_key_from_local":"Importar una clave de biblioteca localmente","import_from_cloud":"Importar la clave de la biblioteca desde la nube","create_or_import_key":"Crear o importar clave de biblioteca","create_or_import_key_desc":"La clave de la biblioteca es una clave independiente que se utiliza para obtener y publicar contenidos con una base de datos descentralizada.","store_your_lib_key":"Guarde su clave de biblioteca","export_cloud_key":"Exportar clave desde la nube","export_current_key":"Exportar clave actual","change_password":"Cambiar la contraseña","enable_cloud_storage":"Habilitar el almacenamiento en la nube","disable_cloud_storage":"Deshabilitar el almacenamiento en la nube","disable_cloud_storage_desc":"Deshabilitar el almacenamiento en la nube eliminará la clave guardada en la nube, asegúrese de que la clave esté guardada localmente","sync_at":"Sincronizar en: {time}","cloud_storage_enabled":"Sincronizar llavero con {storage}","cloud_storage_disabled":"Almacenamiento en la nube deshabilitado","saved_locally":"Guardado localmente","export_key":"Exportar archivo clave","cloud_independent_password":"Contraseña independiente de la nube","key_file_unlock_password":"Contraseña de desbloqueo de archivo clave","re_enter_unlock_password":"Vuelva a ingresar la contraseña de desbloqueo","independent_password_not_enabled":"La contraseña actual es la contraseña de la cuenta de Alphabiz (no se establece una contraseña independiente)","use_cognito_hash":"Usar la contraseña de la cuenta de Alphabiz","use_independent_password":"Usar contraseña independiente","keychain_lib":"clave de biblioteca","loading_keychain_state":"Cargando llavero...","backing_up":"Haciendo copia de seguridad...","backup_current_key":"Copia de seguridad de la clave actual en la nube","cloud_lib_key_not_existed":"la clave de la biblioteca no existe en la nube","open_keychain_file":"Abrir archivo de llavero","confirm_open_abk":"¿Quieres abrir el archivo ABK?","use_the_key":"usa la llave","backup_the_key":"Copia de seguridad de la clave en la nube","keychain_data_does_not_exist":"Los datos del llavero no existen","timeout of 0ms exceeded":"Hay un problema con la red, inténtalo de nuevo más tarde","XhrError":"Hay un problema con la red, inténtalo de nuevo más tarde","payer credit amount is not enough":"Crédito insuficiente","payee does not exist":"El beneficiario no existe","block_list_manage":"Administrar lista de bloqueo","blocked_users":"Usuarios bloqueados","blocked_channels":"Canales bloqueados","unblock_user":"Desbloquear usuario","unblock_channel":"Desbloquear canal","no_blocked_user":"Ningún usuario bloqueado","no_blocked_channel":"Ningún canal bloqueado","field_required":"{0} es requerido","setting":"Configuración","unknown_media":"Medios desconocidos","settings_button_visible":"Botón visible","settings_setting":"Configuración","settings_playback_rate":"Tasa de reproducción","settings_subtitle":"Subtitular","settings_pip":"Pepita","settings_fullscreen":"Pantalla completa","settings_subtitle_options":"Opciones de subtítulos","settings_normal":"Normal","settings_italic":"Itálico","settings_lighter":"Encendedor","settings_bolder":"más audaz","settings_small":"Pequeño","settings_large":"Grande","about":"Acerca de","services":"Servicios","hide":"Esconder","hide_others":"Esconder otros","show_all":"Mostrar todo","quit":"Abandonar","edit":"Editar","redo":"Rehacer","cut":"Cortar","paste":"Pegar","select_all":"Seleccionar todo","view":"Vista","reload":"Recargar","toggle_full_screen":"Alternar pantalla completa","toggle_developer_tools":"Alternar herramientas para desarrolladores","window":"Ventana","minimize":"Minimizar","bring_all_to_front":"Traer todo al frente","help":"Ayuda","github_repo":"Repositorio de Github","issues":"Asuntos","learn_more":"Aprende más","learn_spelling":"aprender ortografía","lookup_selection":"Buscar \\"{selection}\\"","search_with_google":"Buscar con Google","save_as":"Guardar como","save_image":"Guardar imagen","save_image_as":"Guardar imagen como ...","copy_link":"Copiar link","save_link_as":"Guardar enlace como ...","copy_image":"Copiar imagen","copy_image_as":"Copiar imagen como...","copy_image_address":"Copiar dirección de imagen","download_complete":"Descarga completa","download_complete_message":"{0} está descargado","is_running":"{0} se está ejecutando","open":"Abierto {0}","launch_problem":"Problema de lanzamiento","ask_clear_data":"Parece que está intentando iniciar {0} pero falló varias veces.\\n¿Desea borrar todos los datos de la aplicación e intentar iniciarla más tarde?","launch_directly":"Lanzar directamente","clear_all_data":"Borrar todos los datos","ask_clear_confirm":"¡Esto eliminará todas las configuraciones, registros y datos de usuario!\\nDespués de esto, es posible que deba iniciar {0} nuevamente.\\n¿Estás seguro de borrar los datos?","confirm_launch":"No, lanzar directamente","confirm_clear":"Sí, borrar todos los datos"}')},a368:function(e,t,a){"use strict";a.r(t);var n=a("00e9");a.d(t,"Clipboard",(function(){return n["a"]}));var o=a("b46e");a.d(t,"Share",(function(){return o["a"]}));var i=a("b009");a.d(t,"Filesystem",(function(){return i["c"]})),a.d(t,"Directory",(function(){return i["a"]})),a.d(t,"Encoding",(function(){return i["b"]}));var r=a("5c0a");a.d(t,"Device",(function(){return r["a"]}));var s=a("79b7");a.d(t,"App",(function(){return s["a"]}));var l=a("c03e");a.d(t,"Network",(function(){return l["a"]}));var c=a("67d7");a.d(t,"Capacitor",(function(){return c["a"]}))},a449:function(e,t,a){"use strict";a.d(t,"a",(function(){return x})),a.d(t,"d",(function(){return F})),a.d(t,"c",(function(){return B})),a.d(t,"b",(function(){return W}));a("de6c"),a("f200"),a("7a76"),a("a1c1");var n=a("36a1"),o=a("5584"),i=a("35f4"),r=a("2d62"),s=(a("dc89"),a("2425"),a("d558"));const l=e=>e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve(""),c=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},d=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e};var u={methods:{async $readFile(){const e=d(),t=await c(e);console.log("file$selected",t);const a=await l(t);return a},async $writeFile(e,t){if(Object(s["a"])()){const{Share:n,Filesystem:o,Directory:i}=await Promise.resolve().then(a.bind(null,"a368")),{value:r}=await n.canShare();if(!r)return;const{uri:s}=await o.writeFile({data:t,path:e,directory:i.Documents}).catch((()=>({})));return n.share({title:e,files:[s.startsWith("file://")?s:"file://"+s]}).catch((e=>{console.log(e)}))}const n=URL.createObjectURL(new Blob([t])),o=document.createElement("a");o.href=n,o.download=e,o.click(),setTimeout((()=>window.URL.revokeObjectURL(n)),0)}}},_=a("9572"),p=a("02fe"),m=a.n(p),h=a("9369"),g=a("d710"),f=a.n(g),b=a("ff9b");const y=a("d310").isElectron();y||console.warn("Warning: Torrent downloader is not impl in browser mode now");const v=Object(i["a"])("abcdefg",5),w=Object(i["a"])("0123456789abcdef",40),k=async(e,t=5)=>{let a=0;while(a=t)throw console.log("Failed at running",e),n;console.log("Retry #"+a++,e)}},S=!0,C=(...e)=>{if(!S)return;const[t,...a]=e;console.tag.green(...t).log(...a)},x=new b["a"]({data(){return{loading:!1}},methods:{setLoading(e){this.loading=e}}});function $(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function T(){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));return t}async function z(e,t={}){const a={password:{type:"password",model:"",rules:[h["c"].bind(this),h["d"].bind(this)]}},n=this.$alphabiz.dialog({title:this.$t("input_independent_password"),cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(async()=>{await e(t,t.dialog$arguments().prompts.password)})),...t});await n.promise()}async function P(e,t={}){const a={password:{type:"password",label:this.$t("account_password"),model:"",rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>a.password.model===e||this.$t("account_password_not_equal")]}},n=this.$alphabiz.dialog({cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password))),...t});await n.promise()}async function A(e,{delay:t,timeout:a,messages:{processing:n,failed:o}}){const i=$.call(this,n),r=e=>new Promise((t=>setTimeout(t,e))),s=e=>new Promise((t=>{let a=e;const r=Date.now(),s=setInterval((()=>{const l=Math.floor((Date.now()-r)/1e3);a=e-l,a>0?i.update({progress:`${n} ${a}s`}):(clearInterval(s),i.update({progress:o}),t())}),1e3)}));let l,c=!1;return await Promise.race([r(t).then((()=>s(Math.round(a/1e3)))),e().then((e=>{c=!0,l=e}))]).finally((()=>{r(c?0:1e3).then((()=>i.hide()))})),l}async function I(e={}){const t="lib",{mode:a,password:n}=e,i=await o["a"].dispatch("getKeychainCloud",{keyName:t,mode:a,password:n});if(["epriv","epub","priv","pub"].some((e=>!i[e])))throw new Error("invalid_key");return i}async function q(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const a="lib",{mode:n,password:o}=t;await Object(h["a"])(e,{mode:n,password:o,keyName:a})}async function O(e,t={}){var a;let n;if(t.dataStr?n=t.dataStr:(C(["requireKeyObjLocal","$readFile","start"]),n=await this.$readFile(),C(["requireKeyObjLocal","$readFile","done"],n)),!n)return;if(!n.startsWith("eyJ"))throw console.warn("legacy version or invalid key file"),new Error("invalid_key");const o=async e=>{const t={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},a=await _["a"].decryptLibKeyObj(t.decode(n),e).catch((()=>{}));if(!a||"object"!==typeof a)throw new Error("error_password");if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a};await z.call(this,(async(t,a)=>{const n=await o(a).catch((e=>(this.$q.notify({message:this.$t(e.message),type:"negative",position:"bottom-right"}),null)));C(["requireKeyObjLocal","decrypted"],n),n&&await e(n).finally((()=>t.hide()))}),{title:null!==(a=t.title)&&void 0!==a?a:this.$t("input_unlock_password"),message:this.$t("require_unlock_password")})}async function E(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{password:a}=t,n={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},o=await _["a"].encryptLibKeyObj(e,a).catch((()=>null));if(!o)throw new Error("error_password");const i=Math.floor(Date.now()/1e3);await this.$writeFile(`${f.a.displayName.replace(/\s/g,"_")}-libkey-${i}.abk`,n.encode(o))}async function D(){const e=async()=>{try{C(["createKeyObj","1"],"ensure logout"),await n["a"].logout();const e=v()+w(35),t=w(),a=e.substring(0,12);C(["createKeyObj","2"],"register"),await k((async()=>{await n["a"].register(e,t,{name:a,description:"",avatar:""})}));const o=e=>{var t;if(null===e||void 0===e||null===(t=e._)||void 0===t||!t.sea)throw new Error("current_lib_key_does_not_exist");const a=e._.sea;if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a},i=o(Object(r["t"])());return C(["createKeyObj","3","created"],i),i}catch(e){throw console.error(e),new Error("failed to create lib key obj")}finally{C(["createKeyObj","4"],"logout"),await n["a"].logout()}};return await A.call(this,e,{delay:1e4,timeout:15e3,messages:{processing:this.$t("creating_lib_key"),failed:this.$t("failed_to_create_lib_key")}})}async function j(){var e;if(!n["a"].user||null===(e=n["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=n["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t}async function N(e,t=!0){const a=async()=>{if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");return C(["loadKeyObj"],"lib.login"),await k((async()=>{await n["a"].logout(),await n["a"].login(e)})),C(["loadKeyObj"],"lib.prepareData"),await n["a"].prepareData(),!0};return t?await A.call(this,a,{delay:1e4,timeout:6e4,messages:{processing:this.$t("loading_lib_key"),failed:this.$t("failed_to_load_lib_key")}}):await a()}async function L(){localStorage.removeItem(`library-pair@${r["e"]}`),await n["a"].logout()}async function U(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"});let a=!1;const n=$.call(this,this.$t("loading_keychain_state"));await new Promise((e=>setTimeout(e,1e3)));const o=await this.$store.dispatch("syncKeychainState").catch((e=>(t(e.message),null)));if(!o)return n.hide(),a;const i=!(null===o||void 0===o||!o.lib),r=!!o.hash;o.unset&&o.hash;if(i){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));if(!t)return n.hide(),a}if(r)try{n.update({progress:this.$t("backing_up")}),await q.call(this,e,{mode:"cognito_hash",password:void 0}),a=!0}catch(s){t(s.message)}finally{n.hide()}else{n.hide();const o=async(n,o)=>{try{await q.call(this,e,{mode:"independent_password",password:o}),a=!0,n.hide()}catch(s){t(s.message)}},r=i?z:P,l=i?{message:this.$t("update_cloud_key_prompt_password")}:{message:this.$t("store_cloud_key_prompt_password")};await r.call(this,o,l)}return a}async function R(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async t=>{let a=null;const n={label:this.$t("import_from_cloud"),value:"import_from_cloud",disable:!0,desc:this.$t("loading_keychain_state")},o=e=>e.dialog$useLoadingState("ok",(()=>(a&&a(),t(e,e.dialog$arguments().option)))),i={type:"radio",model:"import_from_cloud",items:[n,{label:this.$t("import_lib_key_from_local"),value:"import_from_local"},{label:this.$t("create_new_key"),value:"create_new_key"}]},r=this.$alphabiz.dialog({title:this.$t("create_or_import_key"),message:this.$t("create_or_import_key_desc"),options:i,ok:o});function s(e){const t=e=>{n.label=e?`${this.$t("import_from_cloud")} (${e}s)`:this.$t("import_from_cloud"),r.update({options:Object.assign({},i)})};let a=null;const o=new Promise((n=>{let o=e,i=setInterval((()=>{if(o<=0)return a(!0);t(o),o-=1}),1e3);a=e=>{i&&clearInterval(i),i=null,n(e)}}));return o.then((e=>{if(t(),e)return r.vm.handleOk()})),()=>a(!1)}await this.$store.dispatch("syncKeychainState").then((e=>{e.lib?(n.disable=!1,n.desc=this.$t("sync_at",{time:this.$d(e.timestamps.lib,"YMDHms")}),i.model="import_from_cloud"):(n.disable=!0,n.desc=this.$t("cloud_storage_disabled"),i.model="import_from_local"),r.update({options:Object.assign({},i)})})).catch((t=>e(t.message))),n.disable||(a=s.call(this,6),this.$watch((()=>r.vm.dialog$arguments().option),(()=>a()))),await r.promise()};await a((async(a,n)=>{C(["select",n]);const o=async e=>{const n=await N.call(this,e);n&&(t(),a.hide())};if("create_new_key"===n){const t=await D.call(this);if(!t)return;let a=!1;const r=async t=>{const o=async t=>{const a={type:"radio",model:"backup_to_cloud",items:[{label:this.$t("save_local"),value:"save_local"},{label:this.$t("backup_to_cloud"),value:"backup_to_cloud",desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),cancel:!0,options:a,ok:e=>e.dialog$useLoadingState("ok",(()=>t(e,e.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((t=>e(t.message))),await n.promise()};await o((async(o,i)=>{if(C([n,i]),"save_local"===i)await P.call(this,(async(n,i)=>{try{await E.call(this,t,{password:i}),a=!0,n.hide(),o.hide()}catch(r){e(r.message)}}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")});else if("backup_to_cloud"===i){if(a=await U.call(this,t),!a)return;o.hide()}}))};if(await r(t),!a)return;try{C([n,"stored"]),await o(t)}catch(i){e(i.message)}}else if("import_from_local"===n)await O.call(this,o);else if("import_from_cloud"===n){C([n,"syncKeychainState"]);const t=await this.$store.dispatch("syncKeychainState").catch((t=>(e(t.message),null)));if(null===t||void 0===t||!t.lib)return C([n,"cloud_lib_key_not_existed"]),void e("cloud_lib_key_not_existed");if(t.unset&&t.hash){C([n,"use_cognito_hash"]);try{const e=await I.call(this,{mode:"cognito_hash",password:void 0});await o(e)}catch(i){e(i.message)}return}C([n,"use_independent_password"]),await z.call(this,(async(t,a)=>{try{const e=await I.call(this,{mode:"independent_password",password:a});await o(e),t.hide()}catch(i){e(i.message)}}),{message:this.$t("require_independent_password")})}}))}async function M(){try{const e=await this.$store.dispatch("syncKeychainState");if(null!==e&&void 0!==e&&e.lib)return!1;const t=await D.call(this);if(!t)throw new Error("failed_to_create_keyObj");const a=await U.call(this,t);if(!a)throw new Error("failed_to_store_keyObj");const n=await N.call(this,t);if(!n)throw new Error("failed_to_load_keyObj");return!0}catch(e){return C(["lib$auto_create","cancel"],e.message),!1}}const F={mixins:[u],created(){this.$amplify.addOnAuthStateChangedListener((async e=>{if("signedIn"!==e)return;x.setLoading(!0);const t=()=>{const e=localStorage.getItem(`library-pair@${r["e"]}`);if(!e)return;const t=JSON.parse(e);return["epriv","epub","priv","pub"].some((e=>!t[e]))?void 0:t},a=t();if(a)await N.call(this,a,!1);else{const e=await M.call(this);e||await R.call(this)}x.setLoading(!1)})),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedOut"===e&&await L.call(this)}))}},B={mixins:[u],beforeCreate(){if("KeychainItem"!==this.$options.name&&"MnemonicCode"!==this.$options.name)throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async lib$exportCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=await j.call(this).catch((t=>(e(t.message),null)));if(!t)return;await P.call(this,(async(a,n)=>{await E.call(this,t,{password:n}).then((()=>a.hide()),(t=>e(t.message)))}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")})},async importKeyObject(e){const t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});return N.call(this,e).then(t)},async lib$importLocalKey(){const e=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});await O.call(this,(async t=>{await N.call(this,t),e()}))},async lib$backupCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=await j.call(this).catch((t=>(e(t.message),null)));if(!a)return;const n=$.call(this,this.$t("loading_keychain_state"));await o["a"].dispatch("syncKeychainState").then((async o=>{const i=await T.call(this);if(i)if(o.hash&&o.unset){n.update({progress:this.$t("backing_up")});try{await q.call(this,a,{mode:"cognito_hash",password:void 0}),t()}catch(r){e(r.message)}finally{n.hide()}}else{n.hide();const o=e=>P.call(this,e,{title:this.$t("input_independent_password"),message:this.$t("update_cloud_key_prompt_password")});await o((async(n,o)=>{try{await q.call(this,a,{mode:"independent_password",password:o}),t(),n.hide()}catch(r){e(r.message)}}))}else n.hide()}),(t=>{e(t.message),n.hide()}))},async lib$exportCloudKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=$.call(this,this.$t("loading_keychain_state")),a=await o["a"].dispatch("syncKeychainState").catch((t=>(e(t.message),null))).finally(t.hide);if(!a)return;const n=async e=>{let t=this.$t("export_key_with_cloud"),n={unlockPassword:{type:"password",model:"",label:this.$t("key_file_unlock_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("re_enter_unlock_password"),rules:[e=>n.unlockPassword.model===e||this.$t("account_password_not_equal")]}};const o=a.unset&&a.hash;o?t+=`; ${this.$t("independent_password_not_enabled")}`:n={password:{type:"password",model:"",label:this.$t("cloud_independent_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},...n};const i=this.$alphabiz.dialog({title:this.$t("export_key"),message:t,prompts:n,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.password||"",a.unlockPassword,o?"cognito_hash":"independent_password")}))});await i.promise()};await n((async(t,a,n,o)=>{try{const e=await I.call(this,{mode:o,password:a});await E.call(this,e,{password:n}),t.hide()}catch(i){e(i.message)}}))}}},W={methods:{async lib$openABK(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),n=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});if(!y)return;const o=a("1b85").ipcRenderer;[".abk"].some((t=>e.endsWith(t)))&&(e=await o.invoke("read-abk",e));const i=async()=>{const a=async()=>{const t=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),message:this.$t("confirm_open_abk",{filename:e}),cancel:!0});return!!await t.promise()};await a()&&await O.call(this,(async e=>{C(["lib$openABK","keyObj"],e);const a=async e=>{const a={type:"radio",model:"use_the_key",items:[{value:"use_the_key",label:this.$t("use_the_key")},{value:"backup_the_key",label:this.$t("backup_the_key"),desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),options:a,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((e=>t(e.message))),await n.promise()};await a((async(a,o)=>{C(["lib$openABK","selectAction"],o);try{if("use_the_key"===o)await N.call(this,e);else if("backup_the_key"===o){const t=await U.call(this,e);if(!t)return}n(),a.hide()}catch(i){t(i.message)}}))}),{title:this.$t("open_keychain_file"),dataStr:e})};"signedIn"===this.$store.state.account.authState?(C(["lib$openABK","hot boot"]),await i()):(C(["lib$openABK","cold boot"]),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedIn"===e&&await i()}),{once:!0}))}}}},a44b:function(e,t,a){"use strict";a("c5fa")},a51a:function(e,t){e.exports={github:{username:"tanshuai",repo:"alphabiz",branch:"main",internalRepo:"alphabiz-app"},bucketUrl:"https://s3.amazonaws.com/internal.alpha.biz",s3DownloadUrl:"https://d2v5t3td4po4es.cloudfront.net/releases/"}},a5d3:function(e,t,a){},a5fe:function(e,t,a){},a749:function(e,t,a){"use strict";var n=a("8750"),o=a("a368"),i=a("8a63"),r=a("5584"),s=a("1926"),l=a("d558");const c=e=>{if(Object(l["a"])()){if(!e.connected)return console.log("Network offline");if("cellular"===e.connectionType){if(r["a"].getters.settings.downloadWithCellular)return console.log("User allowed download with cellular");Object(i["d"])(!0),Object(i["e"])(!0),n["a"].create({title:s["b"].t("download_with_cellular"),message:s["b"].t("download_with_cellular_desc"),ok:s["b"].t("download_with_cellular_confirm"),cancel:s["b"].t("pause_all")}).onOk((()=>{r["a"].dispatch("set",{downloadWithCellular:!0}).then((()=>{r["a"].dispatch("fetchSettings"),Object(i["c"])(!0),Object(i["h"])(!0)}))}))}else e.connectionType}},d=async()=>{o["Network"].addListener("networkStatusChange",(e=>{c(e)}));const e=await o["Network"].getStatus();c(e)};d(),t["a"]=c},a754:function(e,t){e.exports=require("string_decoder")},a75f:function(e,t,a){},aa59:function(e,t,a){},aa8a:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return s}));var n=a("fc3a"),o=a("a368"),i=a("d558");async function r(){if(Object(i["a"])()){const{value:e,type:t}=await o["Clipboard"].read();return t.startsWith("text")||"url"===t?e:""}return navigator.clipboard.readText()}async function s(e){return Object(i["a"])()?o["Clipboard"].write({string:e}):Object(n["a"])(e)}},ac09:function(e,t,a){"use strict";a("8dc9")},ac84:function(e,t,a){},ae24:function(e,t,a){},af04:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a("7ca3"),o=a.n(n),i=(a("a1c1"),a("0c26"),a("f680")),r=a("1926"),s=a("d310");class l{static showRaw(e,t){i["a"].create({message:e,type:t,position:"bottom-right",timeout:5e3})}static show(e,t,a){const n="account_",o=n+e.replace(/ /g,"_"),s=r["b"].t(o,a);i["a"].create({message:s,type:t,position:"bottom-right",timeout:5e3})}static showPositive(e){this.show(e,"positive")}static showNegative(e){let t;e=e.replace("PreSignUp failed with error ",""),e=e.replace("CustomMessage failed with error ",""),e=e.replace("VerifyAuthChallengeResponse failed with error ",""),"."===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),0===e.indexOf("Cognito received the following error from Amazon SES when attempting to send email:")?e="error_email_not_exists":["Member must satisfy regular expression pattern: [0-9]+","Member must have length greater than or equal to 6","Member must have length less than or equal to 6"].findIndex((t=>e.indexOf(t)>=0))>=0&&(e="error_mfa_token_mismatch"),e.indexOf("$recaptcha")>=0&&(e="Recaptcha Validation Failed"),"No user info"===e&&(e="Network Error"),"XhrError"===e&&(e="Network Error");const a="data::",n=e.lastIndexOf(a);if(n>=0){t=e.substring(n+a.length),e=e.substring(0,n).trim();try{t=JSON.parse(t)}catch{}}if("error_1_message_60_seconds"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+6e4-(new Date).getTime();t={delta:Math.min(Math.max(Math.ceil(e/1e3),1),60)}}else if("error_10_messages_per_day"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+864e5;t={date:e}}const o=!Object.keys(this.ERROR_EVENTS).includes(e);if(o)this.showRaw(e,"negative",t);else{const a=this.ERROR_EVENTS[e];if("error_network"===a)return void c();this.show(a,"negative",t)}}}function c(){i["a"].create({icon:"wifi_tethering_error",multiLine:!0,message:r["b"].t("account_error_network"),type:"negative",position:"bottom-right",timeout:5e3,actions:[{noCaps:!0,label:r["b"].t("network_diagnotic"),color:"white",handler:()=>{s["Bus"].$emit("CALL_NETWORK_DIAGNOSTIC")}}]})}o()(l,"ERROR_EVENTS",{"Bad destination mailbox address":"email_invalid_address","Invalid domain":"email_invalid_domain","Other or undefined mailbox status":"email_unknown_status","Mailbox unavailable":"email_unavailable_address","Suppressed email address":"email_suppressed_address","Invalid code provided, please request a code again":"account_error_invalid_verification_code","Network error":"error_network","Network Error":"error_network","timeout of 0ms exceeded":"error_network","User does not exist":"error_user_not_exist","Incorrect username or password":"error_incorrect_username_or_password","Username/client id combination not found":"error_username_not_found","Cannot reset password for the user as there is no registered/verified email or phone_number":"error_can_not_reset_for_no_verified","Invalid verification code provided, please try again":"error_invalid_verification_code","Password did not conform with policy: Password not long enough":"error_password_not_long_enough","Attempt limit exceeded, please try after some time":"error_attempt_limit_exceeded","Invalid phone number format":"error_invalid_phone_number_format","User already exists":"error_username_already_exists","Incorrect password":"error_incorrect_password",you_need_to_accept_license_terms:"error_you_need_to_accept_license_terms",incorrect_original_password:"error_incorrect_original_password",unexpected_error:"error_unexpected",invitation_channel_required:"invitation_channel_required",invitation_no_code:"invitation_no_code",can_not_change_email:"error_can_not_change_email_before_phone_bound",can_not_change_phone:"error_can_not_change_phone_before_email_bound",not_supported_yet:"error_not_supported_yet",can_not_change_email_phone_with_mfa_enabled:"error_can_not_change_email_phone_with_mfa_enabled",error_same_email:"error_same_email",error_same_phone:"error_same_phone","the code is not an activated code":"error_inactive_code","the code has been used":"error_inactive_code","the code is non-existent":"error_non_existent_code","An account with the given email already exists":"error_email_already_exists","An account with the given phone number already exists":"error_phone_already_exists","Email or phone number is required":"error_email_or_phone_required",error_email_not_exists:"error_email_not_exists",LINKED_ACCOUNT:"error_can_not_link_to_the_linked_account",MISMATCHED_EMAIL:"error_can_not_link_to_the_mismatched_email",error_can_not_link_before_email_verified:"error_can_not_link_before_email_verified",error_can_not_change_email_before_unbound_social_account:"error_can_not_change_email_before_unbound_social_account","Invalid code or auth state for the user":"error_invalid_verification_code","Invalid session for the user, session is expired":"error_expired_verification_code","Invalid session for the user, session can only be used once":"error_expired_verification_code",error_recaptcha_not_loaded:"error_recaptcha_not_loaded","Only 1 message can be sent every 60 seconds":"error_1_message_60_seconds","Only 10 messages can be sent per day":"error_10_messages_per_day",sign_in_failed:"sign_in_failed","Recaptcha Validation Failed":"error_recaptcha_validation_failed","reCAPTCHA verification error":"error_recaptcha_validation_failed","Pending sign-in attempt already in progress":"error_sign_in_in_progress","Invalid code received for user":"error_mfa_token_mismatch","Code mismatch and fail enable Software Token MFA":"error_mfa_token_mismatch","Your software token has already been used once":"error_mfa_token_mismatch","Code mismatch":"error_mfa_token_mismatch",error_mfa_token_mismatch:"error_mfa_token_mismatch",error_can_not_enable_mfa:"error_can_not_enable_mfa","Password attempts exceeded":"error_password_attempts_exceeded"})},afe1:function(e,t,a){},b031:function(e,t,a){},b16a:function(e,t,a){"use strict";a("6ce4")},b1d8:function(e,t,a){"use strict";a("5984")},b2b4:function(e,t,a){"use strict";a("0742")},b36a:function(e,t,a){},b36c:function(e){e.exports=JSON.parse('{"lib_index":"Lar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Seguindo","lib_favorite":"Favoritos locais","lib_local_favorites":"Favoritos locais","lib_channel":"Canal","lib_submit":"Enviar","lib_from_network":"Usando banco de dados descentralizado da rede","welcome_to_lib":"Bem-vindo à biblioteca de mídia ${displayName}","register_or_login":"Registrar/Entrar","lib_recommend":"recomendar","lib_recommend_desc":"Bem-vindo à Biblioteca ${displayName}! Esta biblioteca usa banco de dados descentralizado da rede. Para começar a usar, você precisa seguir alguns canais.","follow_any_channel_to_continue":"Siga qualquer canal para continuar","follow_channels_and_continue":"Siga os canais {0} e continue","show_more_for_me":"Mostrar mais para mim","no_more_recommend":"Não recomendo mais","key":"Chave","create_key":"Criar chave","save_key":"Salvar chave","save_key_file":"Deseja salvar sua chave como arquivo?","import_key":"Importar chave","import":"Importar","invalid_key":"Chave inválida","back_to_top":"De volta ao topo","search_for_channel":"Pesquisar ID do canal","search_channel_no_result":"Não foi possível encontrar o canal com ID {0}","please_input_channel_id":"Insira o ID do canal","welcome_help_text":"Esta é uma biblioteca de mídia descentralizada. Você precisa\\n para criar uma conta para este banco de dados. Vamos\\n gerar uma chave pessoal para você automaticamente.\\n Se você já possui uma chave, também pode importar\\n isso aqui.","welcome_key_text":"Depois de fazer login, clique no botão [SAVE KEY]\\n no canto inferior direito para salvar sua chave privada.\\n Se você perder sua chave, talvez não consiga fazer login novamente.","redirect_to_recommend":"Parece que você não seguiu nenhum canal. Redirecionando para a página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Deixar de seguir","following":"Seguindo","share":"Compartilhar","unfollow_confirm":"Tem certeza que deseja deixar de seguir este canal? Todas as postagens deste canal em sua linha do tempo serão removidas.","follow_failed_hint":"A operação ainda está pendente em segundo plano. Se a operação não for aplicada por muito tempo, reinicie o aplicativo e tente novamente.","block":"Bloquear","unblock":"Desbloquear","blocked":"Bloqueado","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal irá removê-lo de sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","block_creator":"Bloquear o criador deste canal","unblock_creator":"Desbloquear o criador deste canal","block_creator_confirm":"O criador do bloco removerá todos os canais criados por este criador da sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","share_url_copied":"URL de compartilhamento é copiado para sua área de transferência","follow_time":"Siga o tempo","update_time":"Tempo de atualização","search":"Procurar","type":"Tipo","added":"Adicionado","click_to_task":"Clique para ir para a tarefa","lib_already_added":"Você já adicionou este vídeo","description":"Descrição","poster":"Poster","channel_poster":"Cartaz do canal","preview":"Visualização","creator":"O Criador","creator_detail":"Detalhes do criador","loading_creator":"Carregando informações do criador","wait_for_creator_loaded":"Aguarde o carregamento das informações do criador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Do utilizador","channel_title":"Título do canal","channel_id":"ID do canal","post_title":"Título da postagem","post_id":"ID da postagem","import_data_from_excel":"Importar dados do excel","set_excel_keys":"Definir chaves do Excel","excel_import_succeded":"A importação do Excel foi bem-sucedida","excel_import_success_msg":"Linhas {0} estão prontas para serem adicionadas, itens {1} inválidos e {2} duplicados são ignorados","cannot_find_channel":"Não foi possível encontrar o canal","cannot_find_posts":"Não é possível encontrar postagens","add_channel":"Adicionar canal","add_post":"Adicionar postagem","edit_channel":"Editar canal","channel_setting":"Configuração do canal","edit_post":"Editar post","edit_posts":"Editar postagens","channel_detail":"Detalhes do canal","remove":"Remover","remove_channel":"Remover canal","remove_channel_confirm":"Tem certeza que deseja remover esta postagem? Isso não pode ser recuperado.","remove_post":"Remover postagem","remove_post_confirm":"Tem certeza que deseja remover este canal? Isso não pode ser recuperado.","preview_mode":"Modo de pré-visualização","preview_mode_desc":"Esta é uma prévia do seu canal. Todas as taxas de filmes são mostradas aqui.","edit_user_profile":"Editar perfil de usuário","name":"Apelido","avatar":"avatar","no_following":"Nenhum canal a seguir. Clique para ir para","no_recommend":"Nenhum canal recomendado. Clique para ir para","first_recomment_msg":"Pode demorar um pouco se esta for a primeira vez que o aplicativo é iniciado.","invalid_image":"imagem inválida","image_not_reachable":"Este URL de imagem não está acessível.","channel_not_found":"Canal não encontrado","cannot_get_channel_info":"Não é possível obter informações do canal. Este canal pode ser removido por seu criador e não estar mais disponível.","validate_error":"Validar erro","validate_user_name_no_space":"O nome de usuário não deve conter espaços","validate_url_no_space":"URL não deve conter espaços","validate_user_name_length":"O nome de usuário deve ter comprimento entre {0} e {1}","validate_user_desc_length":"A descrição do usuário não deve ter mais de {0} caracteres","validate_user_avatar_url":"O avatar do usuário deve ser url com menos de 2048 caracteres","validate_channel_title_length":"O título do canal deve ter comprimento entre 1 e 100","validate_channel_desc_length":"A descrição do canal deve ter comprimento entre 10 e 300","validate_channel_image_url":"A visualização do canal deve ser um URL com menos de 2.048 caracteres","validate_post_title_length":"O título da postagem deve ter comprimento entre 1 e 100","validate_post_desc_length":"A descrição do post deve ter entre 10 e 300","validate_post_image_url":"O pôster deve ser url com menos de 2048 caracteres","validate_post_url":"URL ${displayName} inválido","validate_post_url_length":"${displayName} URL não deve ter mais de 2048 caracteres","film_rate":"taxa de filme","set_film_rate":"Definir taxa de filme","select_a_rate_before_enter":"Você precisa selecionar uma taxa de filme antes de entrar na biblioteca de mídia.","library_available_rate":"Taxa de filme disponível na biblioteca","rate_g":"G – Audiências Gerais","rate_g_desc":"Todas as idades admitidas. Nada que ofendesse os pais pela visualização pelos filhos.","rate_pg":"PG – Orientação Parental Sugerida","rate_pg_desc":"Parte do material pode não ser adequado para crianças. Os pais são instados a dar \\"orientação parental\\". Pode conter alguns materiais que os pais podem não gostar para seus filhos pequenos.","rate_pg_13":"PG-13 – Pais fortemente advertidos","rate_pg_13_desc":"Alguns materiais podem ser impróprios para crianças menores de 13 anos. Os pais devem ser cautelosos. Alguns materiais podem ser impróprios para pré-adolescentes.","rate_r":"R – Restrito","rate_r_desc":"Menores de 17 anos requerem acompanhamento dos pais ou responsável adulto. Contém algum material adulto. Os pais são convidados a aprender mais sobre o filme antes de levar seus filhos pequenos com eles.","rate_nc_17":"NC-17 – Apenas para adultos","rate_nc_17_desc":"Ninguém com 17 anos ou menos é admitido. Claramente adulto. Crianças não são admitidas.","set_as_private":"Definir como privado","hide_in_explore":"Ocultar este canal na página de exploração","hidden":"Escondido","select_a_rate":"Selecione uma taxa de filme","select_from_tasks":"Selecione entre as tarefas","import_from_magnet":"Importar do imã:?...","input_magnet_url":"Ímã de entrada:? url","task_title":"Título da tarefa","set_title":"Definir título","add_to_local_favorites":"Adicionar aos favoritos locais","remove_from_local_favorites":"Remover dos favoritos locais","removed_favorite":"Favorito removido","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locais como backup","import_favorites_file":"Importar arquivo de favoritos","not_a_favorite_file":"Este arquivo não é um arquivo de backup favorito","connection_status":"Status da conexão","gun_server_list":"nós de cache","custom_nodes":"Nós de cache personalizados","custom_nodes_hint":"Os nós de cache personalizados serão aplicados após o reinício do aplicativo","wait_for_reboot":"Aguardando reinicialização...({seconds}s)","reboot_now":"Reinicie agora","reboot_later":"Reiniciar mais tarde","peer_list":"Nós Diretos","server":"URL do nó","peer":"Par","peer_id":"ID do nó","connection":"Conexão","data_source":"Fonte de dados","sync":"Sincronizar","syncing":"Sincronizando","sync_completed":"Sincronização concluída","got_all_post":"Você já tem todos os posts","placeholder_channel_title":"Nome do seu canal","placeholder_channel_desc":"Descrição sobre este canal","placeholder_post_title":"Nome do filme (ano)","placeholder_post_desc":"Descrição sobre este filme","private_channel":"canal privado","creator_blocked":"Criador bloqueado","go_to_library":"Ir para a biblioteca?","go_to_library_channel_msg":"Você quer ir para o canal da biblioteca {0}?","magnet_does_not_have_name":"Este ímã:? url não tem um nome, você precisa adicionar um título de postagem primeiro.","no_available_post":"Nenhuma postagem disponível","following_channel_no_post":"Todos os seus canais a seguir não têm postagem disponível. Isso pode ser causado por erro de rede. Se você já segue alguns canais, os posts podem ser carregados posteriormente.","share_to_library":"Compartilhar na biblioteca","quick_start":"Começo rápido","quick_start_desc":"Comece a criar uma postagem com uma tarefa ou arquivo","select_file":"Selecione o arquivo...","select_folder":"Selecione a pasta...","post_options":"opções de postagem","channel_options":"Opções de canal","create_new_channel":"Criar novo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Selecione o canal existente","uploaded_by":"{title} enviado por {name}","created_by":"{title} criado por {name}","creating_new_channel":"Criando novo canal...","created_new_channel":"Novo canal criado","creating_new_post":"Criando nova postagem...","created_new_post":"Nova postagem criada","create_new_post":"Criar nova postagem","quick_start_timeout":"{0} tempo limite. Isso pode ser causado por erro de rede. Por favor, tente novamente mais tarde.","file_too_large":"Arquivo muito grande","file_too_large_msg":"Este arquivo tem mais de 4 GB ({size}) e pode levar muito tempo para ser preparado. Tem certeza de que deseja continuar?","resolving_folder_files":"Resolvendo arquivos de pasta...","folder_too_large":"Pasta muito grande","folder_too_large_msg":"Os arquivos nesta pasta são maiores que 4 GB ({size} no total) e podem levar muito tempo para serem preparados. Tem certeza de que deseja fazer o upload?","creating_new_task":"Criando nova tarefa...","cannot_create_task":"Não é possível criar tarefa","cannot_create_task_msg":"Isso pode causar algum erro. Se a tarefa for criada corretamente, você poderá verificar a lista de tarefas posteriormente.","cannot_get_task_name":"Não é possível obter o nome da tarefa. Você precisa inserir um primeiro.","remove_old_task":"Remover tarefa antiga","remove_old_task_desc":"O modo Web só pode criar uma tarefa de cada vez. Deseja remover a tarefa antiga?","subtitle_list":"lista de legendas","optional":"opcional","with_subtitle":"Com {language} legendas","maximumSubtitleNum_limit":"O número de legendas atingiu o máximo","add_subtitle_url":"Adicionar link de download de legenda","cannot_add_subtitle":"Falha ao adicionar legendas","cannot_add_subtitle_msg":"Idioma da legenda não selecionado ou link de download inválido.","support_subtitle_type":"Apenas legendas nos formatos srt e vtt são suportadas.","recommend_opensubtitles":"Recomenda-se usar o link de download de legenda ou id em www.opensubtitles.org.","take_down":"Derrubar","serious_violation":"Violação Grave","copyright_disputes":"Disputas de direitos autorais","adults_only":"Somente Adultos","takedown_reason":"Motivo da remoção","takedown_mode":"Modo de remoção","admins":"Administradores","takedown_user":"Remover este criador","takedown_channel":"Remover este canal","takedown_post":"Remover esta postagem","select_takedown_reason":"Selecione o motivo da remoção","takedown_invalid_reason":"Motivo de remoção inválido","takedown_invalid_user_id":"ID de usuário inválido. O ID deve incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal inválido. O ID deve incluir 20 caracteres","takedown_invalid_post_id":"ID de postagem inválido. O ID deve incluir 20 caracteres","takedown_management":"Gerenciamento de remoção","users":"Usuários","channels":"Canais","posts":"Postagens","you":"Você","preset":"predefinido","admin":"Administrador","committee":"Comitê","about_takedown_mode":"Sobre o modo de remoção:\\nPreset: Configurado no repositório github. Todos eles serão removidos da biblioteca.\\nAdmin: Qualquer um dos votos dos administradores será removido.\\nComitê: Pelo menos metade dos votos dos administradores serão removidos.","cannot_edit_preset":"Você não pode editar esta linha, pois é uma linha predefinida","cannot_edit_not_vote":"Você não pode editar esta linha porque não votou nela","remove_vote":"Remova seu voto","post_preload_failed":"Falha ao pré-carregar esta postagem. O link de download pode estar desatualizado, então esta postagem não pode ser reproduzida imediatamente.","about_cache_node":"Sobre o nó de cache","edit_cache_node":"Editar nó de cache","create_cache_node":"Criar nó de cache","about_cache_node_desc":"${displayName} usa o servidor de armas como nó de cache. Você pode editar nós personalizados na configuração avançada","learn_how_to_deploy_gun":"Aprenda como implantar seu próprio servidor de armas","repeat_add":"A tarefa foi adicionada, não a adicione novamente","upload":"Carregar","download":"Download","delete":"Excluir","delete_task":"Excluir tarefa","delete_confirm_message":"Excluir esta tarefa? Isso é irrevogável","also_delete_files":"Excluir também arquivos","default_delete_files":"Padrão excluir arquivos baixados após remover tarefa","not_now":"Agora não","delete_autoupload_confirm":"Esta tarefa contém o arquivo que você colocou no diretório de upload automático. Excluir esta tarefa também excluirá o arquivo.","delete_anyway":"Excluir mesmo assim","upload_too_many_files":"Carregar muitos arquivos","ask_if_unlimit_upload_amount":"O diretório de upload automático contém muitos arquivos. Deseja desativar a limitação da quantidade de upload? *Isso pode causar problemas de desempenho","disable_limitation":"Desativar limitação","not_length":"A operação de vários arquivos não é suportada no momento, por favor, coopere","download_torrent":"⇬ Fazer download do arquivo","upload_torrent":"Subir arquivo","files":"arquivos","file":"Arquivo","folder":"Pasta","start_all":"Iniciar tudo","pause_all":"Pausar tudo","remove_all":"Deletar tudo","upload_all":"Carregar tudo","clear_history":"Apagar o histórico","pause_all_finish_payments":"Isso finalizará todos os pagamentos.","accelerating":"acelerando","link_task":"Tarefa de link","torrent_task":"Tarefa de arquivo","ok":"OK","cancel":"Cancelar","download_directory_position":"Baixar posição do diretório","torrent_file":"arquivo de tarefa","magnetic_link_incorrect":"O formato do link está incorreto","delete_fail":"Excluir falha","pause":"Pausa","paused":"Pausado","stop_torrent":"Parar","seed":"Semente","resume":"Retomar","downloading":"Baixando","downloaded":"baixado","uploading":"Enviando","auto_uploading":"Carregamento automático","uploaded":"Carregado","pending":"Aguardando outras tarefas","verifying":"verificando","waiting_for_verify":"Esperando para verificar","seeding":"Semeando","completed":"Concluído","status":"Status","task_name":"Nome da tarefa","size":"Tamanho","progress":"Progresso","sort":"Organizar","ascending":"Ascendente","descending":"descendente","file_loading":"Carregando arquivo...","loading":"Carregando","unknown_status":"Desconhecido","play_while_downloading":"Jogar...","upload_or_play":"Carregar / Reproduzir","play":"Jogar","ask_if_upload_file":"Subir arquivo?","ask_if_upload_or_play":"Carregar ou reproduzir arquivo?","torrent_error":"Erro ao adicionar tarefa:","no_peers":"Tente novamente mais de {0} vezes e nenhum par está disponível","torrent_exists":"Tarefa já existe.","show_origin_torrent":"Obter arquivo de tarefa original ou url","show_directory":"Abra o diretório deste torrent","task_num":"Tarefas","total_upload_speed":"Velocidade de upload","total_download_speed":"Velocidade de download","path_missing":"Erro: não é possível encontrar o caminho do torrent","origin_not_found":"Não é possível encontrar as informações da tarefa de origem.","text_copied":"Magnum url é copiado para a área de transferência","copy_magnet_uri":"Copiar ímã:? URI","copy_download_uri":"Copiar URI de download","copy_share_uri":"Copiar URI de compartilhamento","uri_copied":"O URI foi copiado com sucesso para a área de transferência","uri_copy_failed":"Falha ao copiar uri","more":"Mais...","toggle_list_mode":"Alternar modo de lista","comment":"Comente","operations":"Operações","open_directory":"Diretório aberto","no_downloading_task":"Nenhuma tarefa de download","remove_all_downloading_tasks":"Remover todas as tarefas de download?","remove_all_upload_tasks":"Remover todas as tarefas de upload?","remove_autoupload_files":"Remover arquivos de upload automático","remove_all_history":"Remover todo o histórico?","remaining":"Restante","created_time":"hora criada","used_time":"Tempo usado","completed_time":"Tempo concluído","yesterday":"Ontem","before_yesterday":"{empty}","earlier":"Mais cedo","miss_file":"Alguns arquivos estão faltando","delete_miss_file_task":"Faltam arquivos fome em {0}.","common_peer":"Par comum","ab_peer":"${displayName} colega","ab_peer_verified":"Par verificado ${displayName}","ab_peer_available":"${displayName} pares disponíveis","alphabiz_accelerating":"${displayName} acelerando","income":"Renda","income_info":"Renda (hoje/total)","total_income_info":"Renda: {0}(hoje) / {1}(total)","login_to_see_income":"Faça login para ver as estatísticas de receita","credit_cost":"Custos de crédito","downloaded_by_payment":"Baixado por Pagamentos","file_not_found":"Não é possível encontrar este arquivo no local","no_task":"Não pergunte","no_matched_task":"Nenhuma tarefa correspondente","space_not_enough":"Espaço em disco insuficiente","need_more_space":"Precisa de {0} mais espaço, mas o disco atual tem {1} livre ({2} reservado). As tarefas são pausadas. O pré-carregamento da biblioteca está desativado. Você pode reativá-lo em [Configurações - Avançado].","seeders":"Semeadores","last_update":"Última atualização","connecting":"Conectando","connected":"Conectado","request_timed_out":"Solicitação expirou","connection_failed":"Falha na conexão","invalid_download_url":"URL de download inválido","download_link":"Link para Download","empty_files":"Nenhum arquivo no diretório","duplicate_task":"Duplicar tarefa","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarefa não está pronta. Pausar esta tarefa irá removê-la diretamente.","some_task_not_ready":"Algumas tarefas não estão prontas. Pausar essas tarefas irá removê-las diretamente.","failed_to_delete_files":"Falha ao excluir arquivos","failed_to_delete_files_desc":"Falha ao excluir alguns arquivos da tarefa. Pode ser necessário excluí-los manualmente","unknown_error":"Erro desconhecido: {0}","more_files_are_not_shown":"({0} mais arquivos não são mostrados por motivos de desempenho)","no_available_file":"Nenhum arquivo disponível. Aguarde a tarefa pronta.","service_worker_error":"Não é possível carregar o ServiceWorker para reprodução. Seu navegador pode não oferecer suporte a esse recurso ou o ServiceWorker não está ativado. Pode ser necessário recarregar esta página e tentar novamente.","add_task_first":"Você precisa adicionar a tarefa primeiro.","player_task_time":"O jogador leva muitos segundos se preparando para o jogo. Pode haver algo errado com a tarefa.","web_mode_hint":"O modo web de ${displayName} suporta apenas pares WebRTC. Para uma melhor experiência, faça o download do aplicativo de desktop ${displayName}.","web_mode_task_hint":"Clique nos botões abaixo para adicionar uma tarefa. Você só pode adicionar uma tarefa por vez.","save_to_local":"Salvar no local","save_as_zip":"Salvar como ZIP","creating_save_file":"Criando arquivo de salvamento...","upload_as_one_directory":"Carregar como um diretório","upload_as_single_files":"Carregar como arquivos únicos","web_mode_upload_single":"Você só pode carregar um único arquivo no modo web","download_success":"Baixe com sucesso","download_fail":"Download falhou","wait_for_downloaded_to_share":"Aguarde a tarefa baixada antes de compartilhar.","download_with_cellular":"Baixar tarefas usando celular","download_with_cellular_desc":"Você está usando a rede celular. Tarefas de download com celular podem exigir taxas adicionais de sua operadora.","download_with_cellular_confirm":"Ainda baixa com celular","language":"Linguagem","appearance":"Aparência","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Escuro","basic_setting":"básico","hideMenu":"Ocultar menu de aplicativos (somente Windows e Linux)","autoHide":"Ocultar Janela Automática","autoStart":"Abrir no login","restore":"Mantenha o tamanho e a posição da janela ao sair","autoStartUnfinished":"Retome automaticamente todas as tarefas inacabadas","default_download_path":"Caminho Padrão","download_directory":"Baixe o diretório","upload_directory":"Carregar Diretório","enable_auto_upload":"Ativar upload automático","unlimit_upload_amount":"Quantidade ilimitada de upload","unlimit_upload_warning":"Permitir upload de grande quantidade de arquivos. Isso pode causar problemas de desempenho","start":"Comece","transport_setting":"Transmissão","upload_limit":"Limite de upload","download_limit":"limite de download","payed_user_share_rate":"Taxa de compartilhamento de usuário pago","unlimited":"Ilimitado","limit_input_error":"O número limite deve ser positivo","BT_setting":"Configurações de tarefas","saveLinkSeed":"Salvar link como arquivo de tarefa","autoDownload":"Baixar link e conteúdo automaticamente","continuousSeeding":"Continue a semear até parar manualmente","seedSharingRate":"Proporção de sementes","seedTime":"Tempo de Semeadura (minutos)","task_manage":"Gerenciamento de Tarefas","maximumDownloadNum":"Máximo de tarefas ativas","maximumConnectionsNum":"Conexão máxima por servidor","range_error":"O intervalo deve estar entre {0} e {1}","random":"aleatório","breakpointContinuation":"Continuar","automaticSkip":"Mostrar download automaticamente após adicionar tarefa","afterNotification":"Notificação após a conclusão do download","deleteConfirm":"Nenhuma confirmação é necessária antes de excluir a tarefa","submit":"Salvar & Aplicar","discard":"Descartar","reset":"Reiniciar","reset_all_settings":"Redefinir todas as configurações?","preferences_resetted":"Preferências redefinidas","traditional_chinese":"chinês tradicional","japanese":"japonês","english":"Inglês","chinese":"Chinês simplificado","advancedSettings":"Avançado","autoUpdate":"Atualização automática","autoCheckUpdate":"Verifique automaticamente se há atualização","proxy":"Proxy","useProxyService":"Ativar proxy","trackerService":"Servidores Rastreadores","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Atualize a lista de rastreadores todos os dias automaticamente","manualUpdateTracker":"atualização manual","manualUpdateSuccess":"Atualizar servidores rastreadores com sucesso","manualUpdateFail":"Falha ao atualizar de:","listenPort":"Ouvir portas","BTlistenPort":"Porta de transmissão de dados","DHTlistenPort":"Porta Hash Distribuída","protocols":"Protocolos Compatíveis","setDefaultClientForFollowingProtocols":"Definir como o cliente padrão para os seguintes protocolos","magnetUrl":"Magnético","video_file":"Arquivo de vídeo","audio_file":"Arquivo de áudio","security":"Segurança","impersonateUserAgent":"Agente de usuário simulado","RPCauthorizationkey":"Segredo RPC","viewDocument":"Veja o Manual do Segredo RPC","developer":"Desenvolvedor","applicationLogPath":"caminho de registro do aplicativo","downloadSessionPath":"Baixar caminho da sessão","resetDownloadSessionRecord":"Redefinir sessão de download","restoreInitialSettings":"Restauração de fábrica","preferences_set_successfully":"Salve as preferências com sucesso!","preferences_set_fail":"Falha ao salvar preferências!","change_not_save":"Alterações não salvas","discard_all_changes":"Descartar todas as alterações e sair?","stay_in_page":"Fique na página","disk_usage":"Uso de disco","pause_if_less_space":"Pause e notifique se o espaço for menor que (MB)","default_video_player":"Player de vídeo padrão","video_cache_time":"Cache de reprodução de fluxo","minutes":"minutos","system_default":"Sistema padrão","media_player":"Reprodutor de mídia","library_film_rate":"Taxa de filme disponível","library_show_explore":"Mostrar página [Explorar]","library_setting":"Configuração da biblioteca","library_sync_setting":"Configuração de sincronização da biblioteca","keychain_sync_status":"Status de sincronização das chaves","sync_with_aws":"Sincronize as Chaves com o Amazon Web Services","backup_to_local":"Backup para arquivo local","enable_sync_with_aws":"Habilitar sincronização com AWS","disable_sync_with_aws":"Desabilitar sincronização com AWS","disable_sync_with_aws_desc":"Isso removerá a chave salva no servidor. Verifique se você já exportou sua chave.","input_independent_password":"Inserir senha independente","change_independent_password":"Alterar senha independente","password_error":"Erro de senha","password_invalid":"Senha inválida","key_existed":"A chave existia","key_not_found":"Chave não encontrada","library_recommend":"Biblioteca recomendada","show_all_channels":"Mostrar todos os canais na página de recomendação da biblioteca","not_logged_in":"Não logado","login_to_continue":"Entre para continuar","mnemonic_code":"código mnemônico","wordlist":"Lista de palavras","restore_code":"Restaurar do código","generate_code":"Gerar código","export_mnemonic_code":"Exportar código mnemônico","import_mnemonic_code":"Importar código mnemônico","print":"Imprimir","save_as_txt":"Salvar como txt","save_as_pdf":"Salvar como pdf","from_file":"De arquivo","not_valid_mnemonic_code":"Este não é um código mnemônico válido","cannot_parse_code_as_key":"Não é possível analisar este código mnemônico como chave de biblioteca","import_key_hint":"Tem certeza de importar esta chave? Isso recuperará sua chave antiga na biblioteca.","import_key_confirm":"Sim, importe.","library_preload":"Pré-carregar tarefas da biblioteca","show_preload":"Mostrar tarefas de pré-carregamento","set_download":"Definir diretório de download","set_download_desc":"Para a versão macOS App Store, o diretório de download padrão está na caixa de proteção do aplicativo e será excluído após a desinstalação do aplicativo. Se você deseja manter seus arquivos de download, precisa selecionar um diretório de download diferente manualmente.","home":"Lar","home_caption":"Download/Upload e Arquivos de Mídia","library":"Biblioteca","library_caption":"Explorar recursos de mídia","player":"Jogador","player_caption":"Reprodutor de mídia","credits":"Créditos","credits_caption":"Verificar saldo da conta","account":"Conta","account_caption":"Entrar/Inscrever-se/Gerenciamento","settings":"Configurações","settings_caption":"Configurações para App, Player, Conta","development":"Desenvolvimento","development_caption":"Modo de desenvolvedor para uso interno","basic":"básico","basic_caption":"Configurações básicas","advanced":"Avançado","advanced_caption":"Configurações avançadas","blockchain":"Carteira","blockchain_caption":"${displayName} Carteira Descentralizada","internal_notice":"Aviso de lançamento interno","release_notes":"Notas de lançamento","terms_and_conditions":"Termos e Condições","license_and_listen_notices":"Avisos de licença e escuta de código aberto","close":"Fechar","success":"Sucesso","fail":"Falhar","account_email_invalid_address":"Endereço de email invalido","account_email_invalid_domain":"Domínio de e-mail inválido","account_email_unknown_status":"Status de entrega de e-mail desconhecido","account_email_unavailable_address":"Endereço de e-mail indisponível","account_email_suppressed_address":"Endereço de e-mail suprimido","account_loading":"Carregando...","account_is_required":"é necessário","account_sign_in_your_account":"Entrar","account_username":"Nome de usuário","account_username_email_phone":"Número de telefone ou e-mail","account_password":"Senha","account_new_password":"Nova Senha","account_re_enter_password":"Digite novamente a senha","account_password_not_equal":"Duas senhas não são iguais","account_new_password_same":"A senha é a mesma que a senha original","account_forgot_your_password":"Esqueceu sua senha?","account_reset_password":"Redefinir senha","account_sign_in":"Entrar","account_signed_in":"Assinado","account_sign_up":"Inscrever-se","account_find_your_account":"Encontre Sua Conta","account_enter_your_username":"Digite seu número de telefone ou e-mail","account_search":"Procurar","account_email_sent_tip":"Um e-mail com um código de verificação foi enviado para o seu e-mail:","account_phone_sent_tip":"Um SMS com um código de verificação foi enviado para o seu telefone:","account_email_phone_sent_tip":"E-mail e SMS com código de verificação foram enviados para seu e-mail e telefone, respectivamente:","account_software_token_tip":"A MFA está habilitada para sua conta. Para concluir o login, ligue ou visualize seu dispositivo e digite o TOTP","account_reset_your_password":"Redefina sua senha","account_verification_code":"Código de verificação","account_resend_code":"Reenviar código","account_code_has_been_resent":"O código de verificação foi reenviado","account_password_has_been_reset":"A senha foi redefinida","account_submit":"Enviar","account_sign_up_your_account":"Inscreva sua conta","account_fill_required_fields":"Preencha os campos obrigatórios abaixo.","account_fill_optional_fields":"Preencha os campos opcionais abaixo.","account_email":"E-mail","account_invitation":"Convite","account_invitation_code":"Código de Convite","account_i_accept":"aceito","account_license_terms":"a licença e os termos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro.","account_verify_fill_optional_fields":"Verifique e preencha os campos opcionais.","account_nickname":"Apelido","account_gender":"Gênero","account_male":"Macho","account_female":"Fêmea","account_not_say":"Não diga","account_birthday":"Aniversário","account_phone_number":"Número de telefone","account_locale":"Local","account_tip_verified":"Verificado, fazendo login...","account_verified":"verificado","account_unverified":"não verificado","account_signed_up":"inscreveu-se","account_verify_your_identity":"Verifique sua identidade","account_finish":"Terminar","account_signed_out":"Assinado","account_change_password":"Alterar a senha","account_change_email":"Mude o e-mail","account_change_phone_number":"Alterar número de telefone","account_sign_out":"sair","account_current_password":"Senha atual","account_re_enter_new_password":"Re-introduza a nova palavra-passe","account_personal_information":"Informação","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Olá,","account_cancel":"Cancelar","account_change":"mudar","account_not_set":"não configurado","account_setting":"contexto","account_copy_code":"copie o código","account_account_setting":"Conta","account_task_page":"tarefa de crédito","account_setting_caption":"Alterar senha / Editar informações","account_security":"Segurança","account_want_to_join":"Quer se juntar?","account_sign_in_now":"Entrar","account_changed":"Mudado","account_clipboard_with_invitation_code":"Código de convite copiado","account_clipboard_with_code":"O código copiado","account_invitation_code_dialog_tip":"Você enviará ao seu amigo um e-mail ou mensagem de texto com um código de convite:","account_available":"disponível","account_invited":"convidamos","account_used":"usado","account_invitation_code_sent":"O código de convite foi enviado","account_invitation_channel_required":"Preencha pelo menos um canal de convite","account_no_verification_code":"Não pode receber o código de verificação?","account_no_phone_number":"Sem número de telefone?","account_sign_up_by_email":"Inscreva-se por e-mail","account_no_email":"No email? ","account_sign_up_by_phone_number":"Inscreva-se pelo número de telefone","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se não houver TOTP, configure o TOTP primeiro","account_setup_totp":"Configurar TOTP","account_contact_information":"Informações de contato","account_delete_account":"Deletar conta","account_deleted":"Excluído","account_can_not_mfa":"MFA em apuros?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Desativar MFA","account_disabled_mfa":"MFA desativado","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Não recomendado","account_oauth_sign_in_with":"Entrar com {provider}","account_sign_in_failed":"Falha ao fazer login","account_tip_oath_sign_up":"O e-mail correspondente à conta {provider} atual: {email} ainda não criou uma conta","account_tip_confirm_delete_account":"Digite a senha da conta atual para confirmar que deseja excluir a conta atual. (As contas excluídas não podem ser restauradas)","account_tip_config_mfa":"Você pode optar por usar SMS ou senha única baseada em tempo (TOTP) como autenticação secundária","account_error_can_not_enable_mfa":"Você deve vincular seu endereço de e-mail e número de celular para habilitar o MFA","account_tip_can_not_enable_sms_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o SMS MFA","account_tip_can_not_enable_totp_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o TOTP MFA","account_tip_setup_totp":"Use aplicativos como o Authenticator para digitalizar o código QR abaixo ou copie o código manualmente para adicionar um token de segurança","account_tip_verify_totp":"Verifique seu TOTP","account_link_your_social_account":"Vincule sua conta social","account_unlink_your_social_account":"Desvincular conta social","account_tip_confirm_link":"Tem certeza de que deseja vincular a conta atual à sua conta {provider}?","account_tip_confirm_unlink":"Tem certeza de que deseja cancelar sua conta vinculada {provider}?","account_tip_linking":"vinculativo...","account_tip_unlinking":"Desvinculando...","account_linked":"Vinculado","account_unlinked":"Não consolidado","account_error_can_not_link_to_the_linked_account":"A conta social atual está vinculada a outra conta","account_error_can_not_link_to_the_mismatched_email":"A conta atual e o endereço de e-mail da conta social são inconsistentes","account_error_can_not_link_before_email_verified":"A conta social não pode ser vinculada porque a conta atual não está vinculada a um e-mail verificado","account_tip_confirm_verify_email_phone":"Deseja enviar um código de verificação para o e-mail e número de telefone da conta atual para verificar sua identidade?","account_tip_confirm_verify_phone":"Quer enviar um código de verificação para o número de telefone atual para verificar sua identidade?","account_error_1_message_60_seconds":"Apenas um SMS ou e-mail pode ser enviado a cada 60 segundos, aguarde mais {delta} segundos","account_error_10_messages_per_day":"Cada celular ou e-mail só pode enviar 10 mensagens em 24 horas","account_error_network":"Há um problema com a rede, tente novamente mais tarde","Network Error":"Há um problema com a rede, tente novamente mais tarde","account_error_user_not_exist":"Usuário não existe","account_error_incorrect_username_or_password":"Usuário ou senha incorretos","account_error_incorrect_original_password":"Senha original incorreta","account_error_incorrect_password":"Senha incorreta","account_error_username_not_found":"Nome de usuário não encontrado","account_error_can_not_reset_for_no_verified":"Não é possível redefinir a senha da conta não verificada","account_error_invalid_verification_code":"Código de verificação incorreto, tente novamente","account_error_expired_verification_code":"O código de verificação expirou, tente novamente","account_error_password_not_long_enough":"A senha não é longa o suficiente","account_error_attempt_limit_exceeded":"Limite de tentativas excedido, tente após algum tempo.","account_error_password_attempts_exceeded":"Tentativas de senha excedidas.","account_error_invalid_phone_number_format":"Formato de número de telefone inválido","account_error_no_cell_phone_prefix":"Por favor, selecione o prefixo para o número de telefone","account_error_username_already_exists":"O nome de usuário já existe","account_error_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro","account_error_inactive_code":"O código de convite não é um código ativado","account_error_non_existent_code":"O código de convite é inexistente","account_error_unexpected":"Erro inesperado","account_error_can_not_change_email_before_phone_bound":"O e-mail não pode ser alterado antes que o número de telefone seja vinculado","account_error_can_not_change_email_before_unbound_social_account":"O e-mail não pode ser alterado antes de desvincular a conta social","account_error_can_not_change_phone_before_email_bound":"O número de telefone não pode ser alterado antes que o e-mail seja vinculado","account_error_can_not_change_email_phone_with_mfa_enabled":"Não é possível alterar o e-mail ou o número do celular antes de desativar o MFA","account_error_not_supported_yet":"Não é suportado de momento","account_error_same_email":"O novo endereço de e-mail não pode ser igual ao endereço de e-mail original","account_error_same_phone":"O novo número de telefone não pode ser igual ao número de telefone original","account_error_email_not_exists":"O endereço de e-mail não existe","account_error_email_already_exists":"Já existe uma conta com o e-mail fornecido.","account_error_phone_already_exists":"Já existe uma conta com o número de telefone fornecido.","account_error_mfa_token_mismatch":"Incompatibilidade de código de token de software","account_error_recaptcha_not_loaded":"Há um problema com a rede. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_recaptcha_validation_failed":"Falha na validação do ReCAPTCHA. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_sign_in_in_progress":"Tentativa de login pendente já em andamento","account_field_range":"Limite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Suporta apenas alfanumérico","account_field_only_alphanumeric_and_symbol":"Suporta apenas alfanuméricos e símbolos","account_field_only_chinese_alphanumeric_space_underline":"Suporta apenas alfanumérico, espaço, sublinhado","account_field_prefix_without_number_space":"O primeiro caractere não pode ser um número ou um espaço","account_field_suffix_without_space":"Não pode terminar com um espaço","account_field_without_repeat_space":"Não é possível usar vários espaços seguidos","account_field_can_not_only_alphanumeric":"Você não pode usar apenas letras ou números","account_field_must_have_number_characters":"Deve ter caracteres numéricos","account_field_verification_code":"O código de verificação deve ter seis dígitos","account_field_invitation_code":"O código do convite deve ser alfanumérico","account_field_phone_number":"Formato de número de telefone inválido","account_invalid_email_format":"Formato de email inválido","account_sign_out_confirm":"Tem certeza que deseja sair? Isso interromperá todas as tarefas.","account_sign_out_anyway":"Sair mesmo assim","account_signing_out":"Saindo...","account_request_save_settings":"As configurações não são salvas. Você precisa salvar as alterações antes de sair.","pay":"Pagar","pay_with_credit":"Pague pela aceleração de download. Precisa de cerca de {0} de crédito","pay_with_credit_payed":"Acelerando. Ainda precisa de cerca de {0} de crédito","create_payment":"Criar Pagamento","pay_target":"Alvo","pay_for_torrent":"Pague por {0}","your_subid":"Seu subID","your_credits":"seus créditos","pay_point_for_data":"Pague {0} pontos por {1} dados","auto_renew":"Ativar renovação automática","transaction_details":"Detalhes da transação","transaction_id":"Eu ia","transaction_payer":"Pagador","transaction_payee":"Beneficiário","transaction_category":"Categoria","transaction_changed_amount":"Valor alterado","transaction_meta":"meta","transaction_status":"Status","transaction_creation_time":"Tempo de criação","receipt_code":"Código de Recibo","transfer_amount":"Valor da transferência","code_the_receipt_code":"Copie o código do recibo abaixo para o pagador","fill_the_receipt_code":"Transferência preenchendo o código de pagamento fornecido pelo beneficiário","expense":"Despesa","copied":"copiado","transfer":"Transferir","receive":"Receber","copy":"cópia de","withdraw_fund":"Retirar fundos","category_paydata_payer":"Custo dos dados","category_paydata_payee":"Renda de dados","category_transfer":"Transferir","category_bonus":"Bônus","category_recharge":"Recarrega","status_pending":"pendente","status_completed":"concluído","status_finish":"terminar","status_failed":"fracassado","tip_invalid_receiver":"Código de receptor inválido","tip_invalid_amount":"O valor do crédito deve ser flutuante no intervalo de 0 a 1.000 (a precisão mínima é de 0,001)","credit_get_more":"Obtenha mais créditos","credit_no_data":"Nenhum dado disponível","credit_loading":"Carregando...","credit_not_enough_amount":"Não há créditos suficientes","credit_amount_not_enough":"Não há créditos suficientes","credit_payee_not_exist":"Beneficiário não existe","credit_invalid_amount":"Valor de crédito inválido","credit_can_not_transfer_to_yourself":"Não pode transferir para si mesmo","credit_latest":"Mais recente","credit_error_network":"Há um problema com a rede, tente novamente mais tarde","add_subtitles":"Adicionar legendas","open_file":"Abrir arquivo...","advanced_options":"Opções avançadas","title":"Título","location":"localização","subtitle_file":"arquivo de legenda","unsupported_subtitle_type":"O tipo de arquivo {0} não é um tipo de legenda compatível","not_default_player":"O reprodutor de vídeo padrão não está definido","this_is_an_audio_file":"Este é um arquivo de áudio","the_added_subtitle_already_exists":"A legenda adicionada já existe","stop_stream_player":"A mídia de streaming foi encerrada porque a tarefa foi pausada ou excluída","stop_player":"O player foi encerrado porque o arquivo foi excluído","playing_timeout_hint":"Tempos de espera esgotados. Por favor, verifique a tarefa","autoplay_hint":"A reprodução automática pode ser bloqueada pelo seu navegador. Se o player não estiver jogando, tente clicar na tela para continuar","remove_playing_confirm":"{0} ainda está jogando, removê-lo irá parar o jogador. Tem certeza de removê-lo?","unsupported_in_browser":"Ainda não suportado no modo de navegador","client":"Cliente","warning":"Aviso","enable":"Habilitar","disable":"Desativar","auto":"Auto","encrypt_connection":"Criptografar conexão","encrypted_connection":"Conexão criptografada","non_encrypted_connection":"Conexão não criptografada","connected_wires_not_disconnect":"Os fios conectados não serão desconectados","audio":"áudio","video":"vídeo","image":"imagem","subtitle":"legenda","zip":"fecho eclair","text":"texto","unknown":"desconhecido","add":"Adicionar","undo":"Desfazer","backup":"Cópia de segurança","not_default_app":"${displayName} não é seu aplicativo padrão para torrent e mídia, deseja definir como padrão?","dont_show_again":"Não mostrar novamente","go_to_settings":"Vá para as configurações","about_alphabiz":"Cerca de ${displayName}","last_check_at":"última verificação em","update_channel":"Atualizar canal","check_for_update":"Verifique atualizações","checking_for_update":"Verificando atualização...","no_update_available":"Nenhuma atualização disponível","update_available":"Atualização disponível","update_now":"Atualizar agora","update_later":"Atualizar mais tarde","click_to_update":"Clique no botão ATUALIZAR AGORA para baixar e atualizar","update_failed":"Atualização falhou","update_failed_message":"Ocorreu um erro durante a atualização:","check_shasum_failed":"Falha ao verificar a integridade do instalador","downloading_update":"Download da atualização...","ready_to_update":"Pronto para atualizar","restart_to_update":"A atualização foi baixada. ${displayName} sairá para atualizar por alguns instantes.","already_latest":"A versão atual ({0}) já é a mais recente","update_timeout":"Atualizar tempo limite","no_available_release":"Nenhuma versão disponível","no_available_installer":"Nenhum instalador disponível","feedback":"Opinião","select_a_type":"Selecione um tipo","category":"Categoria","select_a_category":"Selecione uma categoria","require_title":"O título é obrigatório","describe_your_problem":"Descreva seu problema","report_a_bug":"Reportar um erro","request_a_new_feature":"Solicitar um novo recurso","download_or_upload":"Baixar/Carregar","others":"Outros","submit_with_system_info":"Enviar com informações do sistema","submit_feedback":"Enviar feedback","tweet_us":"Tweet nós","tweet_too_long":"O tweet é muito longo","delete_characters":"Exclua pelo menos {0} caractere(s)","rest_characters":"Você pode inserir {0} mais personagem(s)","update_alphabiz":"Atualização ${displayName}","current_version":"Versão Atual","cancel_update":"Cancelar atualização","slow_download_speed":"Download muito lento","slow_download_speed_caption":"O download do instalador está muito lento agora. Verifique o status da rede","update_canceled":"Atualização cancelada","current_version_release_time":"Hora de lançamento da versão atual","expired_app":"${displayName} Expirado","version_out_of_date":"Versão desatualizada","have_to_update":"A versão de ${displayName} está desatualizada. Alguns protocolos ou APIs são obsoletos. Você tem que atualizar ${displayName} antes de continuar.","exit_alphabiz":"Sair ${displayName}","exit_and_update":"Sair e aplicar atualização","new_version_hint":"Nova versão está disponível","no_new_version":"Nenhuma nova versão disponível","current_is_latest":"A versão atual já é a mais recente","click_to_check_update":"Clique no botão [CHECK FOR UPDATE] para verificar a atualização","download_latest_version_from_website":"Por favor, visite o site oficial para baixar a versão mais recente","to_the_website":"para o site","network_diagnotic":"Diagnóstico de rede","diagnotic":"Diagnóstico","click_to_check":"Clique para conferir","click_to_check_again":"Clique para verificar novamente","checking":"verificando","online":"On-line","offline":"desligada","dns_look_up":"Pesquisa de DNS","error":"Erro","aws_service":"Serviço AWS","network_pings":"Ping de rede","not_found":"Não encontrado","packet_loss":"Perda de pacote(s)","official_site":"Site oficial","download_test":"teste de download","test_task":"Tarefa de teste {0}","download_failed":"Download falhou","second_spend":"{0} gastos","open_default_player_failed":"Falha ao abrir o player padrão","copied_to_clipboard":"Copiado para a área de transferência","go_to":"Vá para","region_not_available":"Região não disponível","region_not_available_message":"Desculpe! Sua região não está disponível para usar este aplicativo. Este aplicativo será encerrado após {0} segundos","confirm":"confirme","no_available_result":"Nenhum resultado disponível","invalid_password_format":"formato de senha inválido","invalid_password_format_same":"A senha é a mesma que a senha original","error_password":"Erro de senha","keychain_setting":"Chaveiro","setting_description":"Armazenamento em nuvem: salve dados importantes na nuvem.\\nAlterar senha: Altere a senha da chave da biblioteca de mídia.\\nMnemônico: um método alternativo para gerar e restaurar chaves.\\nImportar chave local: importe a chave salva localmente para a biblioteca de mídia.\\nChave de exportação: salva os dados da biblioteca de mídia atual no local ou na nuvem.\\nChave de backup para nuvem: atualize os dados da biblioteca de mídia atual para a nuvem para backup.","refresh_status":"Atualizar o status","confirm_import_key":"Confirmar chave de importação","confirm_update_cloud_key":"Você já tem uma chave na nuvem. A atualização da chave substituirá a chave original. Tem certeza de que deseja atualizar a chave armazenada na nuvem","export_key_with_cloud":"Digite a senha independente que você definiu para exportar a chave da biblioteca armazenada na nuvem e bloqueie o arquivo de chave pela senha de desbloqueio","store_cloud_key_prompt_password":"Digite uma senha independente para armazenar a chave da biblioteca na nuvem","update_cloud_key_prompt_password":"Defina uma senha independente para criptografar a chave da biblioteca e atualize-a na nuvem","enable_cloud_storage_prompt_password":"Defina uma senha para a chave armazenada na nuvem, por meio da qual você pode recuperar a chave da nuvem","input_unlock_password":"Definir senha de desbloqueio","export_local_prompt_password":"Defina uma senha de desbloqueio para criptografar seu arquivo de chave. Não salvaremos essa senha para você, portanto, se você perder sua senha, não poderá desbloquear a chave da biblioteca","require_unlock_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","require_independent_password":"Digite a senha independente para obter a chave armazenada na nuvem","import_local_prompt_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","select_encrypt_mode":"Selecione o modo de criptografia","update_cloud_key":"Atualize a chave armazenada na nuvem","backup_to_cloud":"Faça backup da chave da biblioteca na nuvem","save_local":"Salve a chave da biblioteca como arquivo criptografado local","create_new_key":"Criar uma nova chave de biblioteca","creating_lib_key":"Criando chave de biblioteca...","loading_lib_key":"Carregando chave da biblioteca...","failed_to_create_lib_key":"Falha ao criar a chave da biblioteca","failed_to_load_lib_key":"Falha ao carregar a chave da biblioteca","import_local_key":"Importar chave localmente","import_lib_key_from_local":"Importar uma chave de biblioteca localmente","import_from_cloud":"Importe a chave da biblioteca da nuvem","create_or_import_key":"Criar ou importar chave de biblioteca","create_or_import_key_desc":"A chave da biblioteca é uma chave independente usada para buscar e publicar conteúdo com banco de dados descentralizado.","store_your_lib_key":"Armazene sua chave de biblioteca","export_cloud_key":"Exportar chave da nuvem","export_current_key":"Exportar Chave Atual","change_password":"Alterar a senha","enable_cloud_storage":"Ativar armazenamento em nuvem","disable_cloud_storage":"Desative o armazenamento em nuvem","disable_cloud_storage_desc":"Desativar o armazenamento em nuvem removerá a chave salva na nuvem, certifique-se de que a chave seja salva localmente","sync_at":"Sincronizar em: {time}","cloud_storage_enabled":"Sincronize as Chaves com {storage}","cloud_storage_disabled":"Armazenamento em nuvem desativado","saved_locally":"Salvo localmente","export_key":"Exportar arquivo de chave","cloud_independent_password":"Senha independente da nuvem","key_file_unlock_password":"Senha de desbloqueio do arquivo de chave","re_enter_unlock_password":"Digite novamente a senha de desbloqueio","independent_password_not_enabled":"A senha atual é a senha da conta Alphabiz (nenhuma senha independente é definida)","use_cognito_hash":"Use a senha da conta Alphabiz","use_independent_password":"Usar senha independente","keychain_lib":"chave da biblioteca","loading_keychain_state":"Carregando chaveiro...","backing_up":"Fazendo backup...","backup_current_key":"Faça backup da chave atual na nuvem","cloud_lib_key_not_existed":"a chave da biblioteca não existe na nuvem","open_keychain_file":"Abrir arquivo de chaveiro","confirm_open_abk":"Deseja abrir o arquivo ABK","use_the_key":"Use a chave","backup_the_key":"Faça backup da chave na nuvem","keychain_data_does_not_exist":"Os dados das chaves não existem","timeout of 0ms exceeded":"Há um problema com a rede, tente novamente mais tarde","XhrError":"Há um problema com a rede, tente novamente mais tarde","payer credit amount is not enough":"Não há créditos suficientes","payee does not exist":"Beneficiário não existe","block_list_manage":"lista de bloqueio gerenciar","blocked_users":"Usuários bloqueados","blocked_channels":"canais bloqueados","unblock_user":"Desbloquear usuário","unblock_channel":"Desbloquear canal","no_blocked_user":"Nenhum usuário bloqueado","no_blocked_channel":"Nenhum canal bloqueado","field_required":"{0} é obrigatório","setting":"Contexto","unknown_media":"Mídia Desconhecida","settings_button_visible":"Botão Visível","settings_setting":"Contexto","settings_playback_rate":"Taxa de reprodução","settings_subtitle":"Legenda","settings_pip":"PiP","settings_fullscreen":"Tela cheia","settings_subtitle_options":"Opções de legenda","settings_normal":"Normal","settings_italic":"itálico","settings_lighter":"Isqueiro","settings_bolder":"mais ousado","settings_small":"Pequeno","settings_large":"Grande","about":"Sobre","services":"Serviços","hide":"Esconder","hide_others":"Ocultar outros","show_all":"Mostre tudo","quit":"Desistir","edit":"Editar","redo":"refazer","cut":"Corte","paste":"Colar","select_all":"Selecionar tudo","view":"Visualizar","reload":"recarregar","toggle_full_screen":"Alternar para o modo tela cheia","toggle_developer_tools":"Alternar ferramentas do desenvolvedor","window":"Janela","minimize":"Minimizar","bring_all_to_front":"Traga tudo para a frente","help":"Ajuda","github_repo":"Repositório do Github","issues":"Problemas","learn_more":"Saber mais","learn_spelling":"Aprenda ortografia","lookup_selection":"Procure \\"{selection}\\"","search_with_google":"Pesquise com o Google","save_as":"Salvar como","save_image":"Salvar imagem","save_image_as":"Salvar imagem como ...","copy_link":"Link de cópia","save_link_as":"Salvar link como ...","copy_image":"Copiar imagem","copy_image_as":"Copiar imagem como...","copy_image_address":"Copiar endereço da imagem","download_complete":"Download completo","download_complete_message":"{0} foi baixado","is_running":"{0} está em execução","open":"Aberto {0}","launch_problem":"problema de inicialização","ask_clear_data":"Parece que você está tentando iniciar {0}, mas falhou várias vezes.\\nDeseja limpar todos os dados do aplicativo e tentar iniciar mais tarde?","launch_directly":"Iniciar diretamente","clear_all_data":"Limpar todos os dados","ask_clear_confirm":"Isso removerá todas as configurações, logs e dados do usuário!\\nDepois disso, talvez seja necessário iniciar {0} novamente.\\nTem certeza que deseja limpar os dados?","confirm_launch":"Não, lance diretamente","confirm_clear":"Sim, limpe todos os dados"}')},b37d:function(e,t,a){var n,o;a("de6c"),a("7996");class i{constructor(e,t,{first:a,last:n,odd:o,even:i}={}){this.name=e,this.style=t,this.first=null!==a&&void 0!==a?a:{},this.last=null!==n&&void 0!==n?n:{},this.odd=null!==o&&void 0!==o?o:{},this.even=null!==i&&void 0!==i?i:{}}withTagStyle(e){const t=e.map(((t,a)=>{const n={};return Object.assign(n,this.style,(a+1)%2===0?this.even:this.odd,0===a?this.first:{},a===e.length-1?this.last:{}),Object.entries(n).map((e=>e.join(": "))).join("; ")}));return[e.map((e=>`%c${e}`)).join(""),t]}}const r=Object.entries({neutral:[["rgb(146,146,146)","white"],["rgb(207,207,207)","black"]],red:[["rgb(232,126,126)","black"],["rgb(255,194,194)","black"]],orange:[["rgb(255,175,118)","black"],["rgb(255,215,196)","black"]],green:[["rgb(87,168,102)","white"],["rgb(200,246,213)","black"]],purple:[["rgb(125,114,253)","white"],["rgb(200,184,255)","black"]],blue:[["rgb(57,145,208)","white"],["rgb(184,215,255)","black"]],yellow:[["rgb(238,194,62)","black"],["rgb(255,238,158)","black"]],black:[["rgb(60,60,60)","white"],["rgb(90,90,90)","white"]]}).reduce(((e,[t,a])=>({...e,[t]:new i(t,{padding:"2px 6px","font-size":"0.7rem"},{odd:{background:a[0][0],color:a[0][1]},even:{background:a[1][0],color:a[1][1]},first:{"padding-left":"10px","border-top-left-radius":"8px","border-bottom-left-radius":"8px"},last:{"padding-right":"10px","border-top-right-radius":"8px","border-bottom-right-radius":"8px","margin-right":"4px"}})})),{});function s(e,t){const a=["log","warn","error","debug","group"],n=new Proxy(e,{get(e,o,i){if("context"===o)return t;if("tag"===o)return l(n,r.neutral);if(a.includes(o)){let e="";const a=[];t.tag_params.forEach((({name:t,tags:n})=>{const o=r[t].withTagStyle(n);e+=o[0],a.push(...o[1])}));const n=Reflect.get(console,o,i);return(...t)=>n(e,...a,...t)}return Reflect.get(e,o,i)}});return n}function l(e,t){const a=function(...a){const n=e!==console?e.context:{message:"",styles:[],tag_params:[]};return n.tag_params.push({name:t.name,tags:a}),s(e,n)};return Object.defineProperties(a,Object.keys(r).reduce(((t,a)=>({...t,[a]:{get(){return l(e,r[a])}}})),{})),a}null!==(o=(n=console).tag)&&void 0!==o||(n.tag=l(console,r.neutral))},b389:function(e,t,a){"use strict";a("a75f")},b3f7:function(e,t,a){const n="Alphabiz",o={name:n,displayName:n,fileName:n,appId:"com.zeeis.alphabiz",snapName:n.toLowerCase(),author:`${n} Team `,developer:`${n} Team`,appIdentifier:"org.zeeis.alphabiz",description:`${n} Blockchain Cryptocurrency Application`,appxPackageIdentityName:n,publisher:"CN=zeeis",publisherDisplayName:`${n} Team`,homepage:"https://alpha.biz",webEditionUrl:"https://web.alpha.biz",upgradeCode:"4d8a65aa-fc5b-421c-94ab-cb722ef737e2",protocol:n.toLowerCase(),shortProtocol:"ab",versionsUrl:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/versions.json",twitterAccount:"@alphabiz_app",register:{mode:"none",list:[]},library:{recommends:{default:["fxpebrsi9ij5pzinwdky","cut44dbbfxjpqka39qix"],"zh-CN":["vs52l0yqtqqpqtw33ycx","cut44dbbfxjpqka39qix"]}},update:a("a51a"),takedown:a("41c7"),theme:{color:{primary:"#d1994b",secondary:"#f3ce90",accent:"#fbbb4a"},cornerLogoStyle:{left:"-72px",top:"-92px",height:"245px"}},dynamicConfig:a("937c"),microsoftStoreProductId:"9PBCCV3MHK04",communities:[{enable:!0,url:"https://github.com/tanshuai/alphabiz",icon:"https://github.githubassets.com/favicons/favicon.svg"}],externalI18n:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/i18n"};console.log("INIT APP CONFIG"),global._app_config_=o,global.LIBDB_NAME=o.name,e.exports=o,a("81e0")(o)},b4bc:function(e,t,a){},b91a:function(e,t,a){},bba7:function(e,t,a){},bbb8:function(e,t,a){"use strict";a("8162")},bc42:function(e,t,a){"use strict";a("2d55")},bc7b:function(e,t){e.exports=require("fs")},bd3b:function(e,t,a){"use strict";a("5ccc")},be00:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},be0d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c033:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"ripple",rawName:"v-ripple"}],staticClass:"relative-position follow-btn btn",class:{hovered:e.hovered,followable:e.followable,pending:e.pending,disableFollow:e.disableFollow},on:{mouseover:function(t){e.hovered=!0},mouseleave:function(t){e.hovered=!1},click:e.onClick}},[e.pending?a("q-spinner-dots",{attrs:{size:"18px",thickness:5}}):a("span",{staticClass:"follow-btn-label"},[e._v(e._s(e.followBtnLabel))])],1)},o=[],i=a("5584"),r=a("36a1"),s={name:"LibraryFollowButton",props:{id:String,disableFollow:Boolean},data(){return{hovered:!1}},computed:{pending(){return i["a"].getters.followQueue.includes(this.id)},followable(){return!r["a"].followingChannels.find((e=>e.id===this.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.hovered?this.$t("unfollow"):this.$t("following")}},methods:{async onClick(){if(this.pending)return;if(this.disableFollow)return this.$q.notify("Please wait for loaded");const e=this.id;if(!e)return;if(!r["a"].channelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("cannot_find_channel"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const t=!!this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("unfollow")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>e(!1))).onCancel((()=>e(!0)))}));if(e)return}i["a"].commit("addFollowQueue",e),(t=>{let a=0,n=0,o=0;const s=()=>{clearInterval(n),clearTimeout(a),o&&o(),i["a"].commit("removeFollowQueue",e)};n=setInterval((()=>{this.followable===t?(console.log("Failed to toggle follow",e,t,this.followable),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)):s()}),2e3),o=this.$watch("followable",(e=>{e!==t&&s()})),a=setTimeout((()=>{this.followable===t&&this.$q.notify(this.$t("follow_failed_hint"))}),1e4)})(t),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)}}},l=s,c=(a("93e8"),a("2b5f")),d=a("2a5f"),u=a("4101"),_=a("719b"),p=a("09a4"),m=a.n(p),h=Object(c["a"])(l,n,o,!1,null,"711b4078",null);t["a"]=h.exports;m()(h,"components",{QSpinnerDots:d["a"],QColor:u["a"]}),m()(h,"directives",{Ripple:_["a"]})},c036:function(e,t,a){"use strict";a("b4bc")},c066:function(e,t,a){},c228:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return i}));a("a1c1");var n=a("1c53");(()=>{const e=e=>/^(?!(_|[0-9])+$)(([A-Z0-9]|_)+$)/.test(e),t=e=>/^(?!(_|[0-9])+$)(([a-z0-9]|_)+$)/.test(e),a=e=>/^([A-Z])([A-Za-z0-9]+$)$/.test(e),n=e=>/^([a-z])([A-Za-z0-9]+$)$/.test(e),o=t=>e(t)?t.toLowerCase():n(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase():a(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase().substr(1):t.toLowerCase(),i=e=>t(e)?e.toUpperCase():n(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase():a(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase().substr(1):e.toUpperCase(),r=n=>a(n)?n[0].toLowerCase()+n.substr(1):t(n)?n.replace(/_(\w)/g,((e,t)=>t.toUpperCase())):e(n)?n.toLowerCase().replace(/_(\w)/g,((e,t)=>t.toUpperCase())):n,s=e=>n(e)?e[0].toUpperCase()+e.substr(1):(()=>(e=r(e),e=e[0].toUpperCase()+e.substr(1),e))()})();const o=Object.keys(n["countries"]).reduce(((e,t)=>{const a=n["countries"][t];return e[t]={code:t,name:a.native,normalizedName:a.name,emoji:"TW"===t?"🇼🇫":a.emoji,phones:a.phone.split(",").map((e=>e+"-"+t)),languages:a.languages.map((e=>(e+"-"+t).toLowerCase()))},e}),{}),i=Object.keys(o).reduce(((e,t)=>{const{languages:a,name:n,emoji:i,phones:r}=o[t];return a.forEach((a=>{e[a]={code:t,name:n,emoji:i,phones:r,language:a}})),e}),{})},c294:function(e,t,a){},c49d:function(e,t,a){"use strict";a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return p})),a.d(t,"d",(function(){return f})),a.d(t,"c",(function(){return b}));a("de6c"),a("a1c1"),a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1");var n=a("5584"),o=a("c248"),i=a.n(o),r=a("5515"),s=a("3aea");const l="59243e4a83edb6386ebb99d6d395df1ca5750162",c=[...new Set(n["a"].getters.settings.trackerList.filter((e=>e.startsWith("ws"))).concat("wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"))];for(const v of["wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce"])c.includes(v)||c.push(v);const d="\n background-color: rgb(137,241,163);\n color: black;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(87,168,102);\n";let u=function(e,...t){if(n["a"].getters.isDevMode)return console.log("%c%s",d,e,...t)};n["a"].watch(((e,t)=>t.isDevMode),(e=>{u=e?console.log.bind(console,"%c%s",d):function(){}}),{immediate:!0});const _=[];function p(e){_.push(e)}u("Init","tracker-peer with trackers",c);const m=()=>"function"===typeof crypto.randomUUID?crypto.randomUUID().replace("-","").substring(0,12):"function"===typeof crypto.getRandomValues?[...crypto.getRandomValues(new Uint8Array(6))].map((e=>e.toString(16).padStart(2,"0"))).join(""):new Array(12).fill().map((()=>Math.floor(16*Math.random()).toString(16))).join(""),h=Buffer.from("-AB0000-"+m());u("peerId",h.toString("hex"));const g=new i.a({infoHash:l,peerId:h,port:8765,intervalMs:3e4,announce:[...c],dht:!0,dhtPort:2e4,tracker:{announce:[...c],getAnnounceOpts:()=>{const e={uploaded:1024,downloaded:1024,left:1024};return e}}}),f=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.stop()},b=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.start()},y=e=>{const t=Object.values(r["d"]).map((e=>{var t;return Object(s["e"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||"")}));try{const a=e.remoteAddress;a&&t.includes(a)&&u("Duplicate peer",a)}catch(a){return u("Duplicate peer",a,e),e.destroy()}_.forEach((t=>t(e)))};g.on("peer",(e=>{"object"===typeof e&&(e._pc&&e._channel?y(e):setTimeout((()=>{e._pc&&e._channel?y(e):e.destroy()}),2e3))})),g.on("dhtAnnounce",((...e)=>{u("dhtAnnounce",...e)}))},c5a5:function(e,t,a){"use strict";a.d(t,"a",(function(){return I}));a("a1c1"),a("0c26"),a("de6c"),a("f200"),a("7a76");var n=a("3fd2"),o=a.n(n);let i;if(o.a.main())i=a("9e8c"),Object.defineProperty(global,"lzma",{get(){return i}});else if(o.a.renderer())i=require("lzma-native"),Object.defineProperty(global,"lzma",{get(){return i}});else{const e=a("6ca2").LZMA;i=new e,Object.defineProperty("undefined"===typeof window?global:window,"lzma",{get(){return i}})}var r=i,s=(a("dc89"),a("2425"),a("fb31")),l=a.n(s),c=a("508e"),d=a.n(c);const u=e=>{const t="magnet:?xt=urn:btih:"+e.hash+"&dn="+(encodeURIComponent(e.name)||e.origin||e.hash).replace(`${s["protocol"]}:///`,"");let a="";if(e.trackers&&(a+=e.trackers.filter((e=>e.length)).map((e=>`&tr=${encodeURIComponent(e)}`)).join("")),e.data)for(const o in e.data){var n;null!==(n=e.data[o])&&void 0!==n&&n.length&&(a+=e.data[o].map((e=>`&${o}=${encodeURIComponent(e)}`)).join(""))}return t+a},_=e=>{var t;const a=new URL(e);if("magnet:"!==a.protocol)throw new Error("Input is not a magnet uri");const n=a.searchParams.get("xt"),o=null===(t=n.match(/[^:]+$/))||void 0===t?void 0:t[0];if(!o)throw new Error("Cannot parse magnet infoHash");const i=a.searchParams.get("dn")||"",r=a.searchParams.getAll("tr").map((e=>{const t=d.a.getIdByTracker(e);return-1!==t?t:e})),s={};return a.searchParams.forEach(((e,t)=>{["xt","dn","tr"].includes(t)||(s[t]||(s[t]=[]),s[t].push(e))})),{protocolType:"01",hash:o,name:i,trackers:r,data:s}};var p={fromObject:u,toObject:_};function m(e){return Buffer.from(e,"utf-8").toString("hex")}function h(e){return Buffer.from(e,"hex").toString("utf-8")}var g={fromObject(e){const{protocolType:t,name:a,hash:n,data:o}=e,i=o.type||"channel";if("02"!==t)return null;const r=l.a.shortProtocol;return`${r}-library://${i}/${decodeURIComponent(a)}/${h(n)}`},toObject(e){if(console.log("lib toObj",e),!e.startsWith(l.a.shortProtocol+"-library://"))return null;const[t,a,n]=e.replace(l.a.shortProtocol+"-library://","").split("/"),o={};return"channel"!==t&&(o.type=t),{protocolType:"02",name:encodeURIComponent(a),hash:m(n),data:o}}},f=a("4d52");const b=l.a.protocol,y=l.a.shortProtocol,v=e=>encodeURIComponent(e.trim().replace(/\s+/g," ")),w=async(e,t)=>{const a=v(t||e.name||`${b}_task`),n=Buffer.from(e.protocolType+e.hash,"hex").toString("base64").replace(/\//g,"_"),o=a.replace(/\s/g,"+").replace(/_/g,"+d;").replace(/\//g,"_").replace(/&/g,"+amp;")+"/"+n,i=[],s=[];for(const r of e.trackers||[])"number"===typeof r?i.push(r.toString(16)):s.push(r);let l=i.map((e=>("0000"+e).slice(-4))).join("");s.length&&(l=l+"&tr="+s.join("&"));for(const r in e.data)Array.isArray(e.data[r])?l=l+"&"+r+"="+e.data[r].join(""):"string"===typeof e.data[r]&&(l=l+"&"+r+"="+e.data[r]);const c=(await r.compress(l,9)).toString("base64");return l=Buffer.from(l).toString("base64"),l.length>1.1*c.length&&(l=c),l.length?b+"://"+o+"&"+l.replace(/\//g,"_"):b+"://"+o},k=async e=>{if(console.log("toObject",e),!e.startsWith(`${b}://`))return null;const t=e.replace(`${b}://`,"").replace(/\/+$/,"").split("&");t.length>2&&console.error("str is invalid alphabiz uri");const[a,n]=t,o=a.lastIndexOf("/");if(-1===o)return null;const i=a.substring(0,o).replace(/\+amp;/g,"&").replace(/_/g,"/").replace(/\+d;/g,"_").replace(/\+/g," ")||"",s=a.substring(o+1),l=Buffer.from(s.replace(/_/g,"/"),"base64").toString("hex");console.log(l,s,n);const c=l.substring(0,2),u=l.substring(2);let _="";try{const e=Buffer.from(n.replace(/_/g,"/"),"base64");console.log("buffer",e);const t=await r.decompress(e);t&&(_=t.toString("base64"))}catch(y){console.log("LZMA decompress failed.",y.message),_=n||""}const p=Buffer.from(_,"base64").toString().split("&"),[m,...h]=p,g=[];if(m.includes("="))h.unshift(m);else for(let r=0;r{if(!S.length)return C.clear(),void(x=!1);const e=S.shift();if(!e||!C.has(e))return $();x=!0;const t=C.get(e);C.delete(e),w(p.toObject(t.url),t.name).then((e=>{"function"===typeof t.cb&&t.cb(null,e),Array.isArray(t.cb)&&t.cb.forEach((t=>{"function"===typeof t&&t(null,e)}))})).catch((e=>{console.error(e),t.cb(e)})).finally((()=>{x=!1,$()}))},T=async(e,t)=>{const{hash:a,url:n,name:o}=e;if(!n)return console.log("error encoding",e),t(new Error(a),n);if(n.startsWith("magnet")){const e=Date.now();if(S.includes(a)){const n=C.get(a);if(n){if(e-n.timestamp<5)return void(Array.isArray(n.cb)?n.cb.push(t):n.cb=[n.cb,t]);"function"===typeof n.cb?n.cb(new Error(`Cannot encode ${n.url}`)):Array.isArray(n.cb)&&n.cb.forEach((e=>{"function"===typeof e&&e(new Error(`Cannot encode ${n.url}`))})),C.delete(a)}else S.splice(S.indexOf(a),1)}return C.set(a,{url:n,timestamp:e,name:o,cb:t}),S.push(a),void(x||$())}if(n.startsWith(y+"-library")){const e=await w(g.toObject(n));return t(null,e)}if(n.startsWith(f["a"].config.prefix)){const e=await w(f["a"].toObject(n));return t(null,e)}return console.log("error encoding",e),t(new Error(a),n)},z=async e=>{const t=await k(e.startsWith(y+":")?e.replace(`${y}://`,`${b}://-/`):e);switch(t.protocolType){case"01":return p.fromObject(t);case"02":return g.fromObject(t);case f["a"].config.type:return f["a"].fromObject(t)}throw console.log(t),new Error(`Unsupported protocol type ${t.protocolType}`)};var P={encode:T,decode:z},A=a("d710");async function I(e){if(e.startsWith(A["protocol"]+"://")||e.startsWith(A["shortProtocol"]+"://")){const t=e.startsWith(A["protocol"]+"://")?e:e.replace(A["shortProtocol"]+"://",A["protocol"]+":///"),a=await P.decode(t);return a}return new Promise(((t,a)=>{P.encode({hash:e,url:e},((e,n)=>{e?a(e):t(n)}))}))}},c5fa:function(e,t,a){},c620:function(e,t,a){"use strict";a.r(t),a.d(t,"wtClient",(function(){return se})),a.d(t,"getTaskInstance",(function(){return ce}));a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("de6c"),a("a1c1");var n=a("4649"),o=a.n(n),i=a("0559"),r=a("0f0c"),s=a("c5a5");a("0c26");const l=a("d6fe"),{resolve:c}=l,{networkInterfaces:d}=a("dd30"),u=e=>{if(!e.ready)return[];const t=e.pieces.length,a=t+128-t%128,n=a/128,o=[];let i=1,r=0;for(let s=0;s=n&&(o.push(i),i=1,r=0);return o},_=e=>{const t=u(e),a=[];let n=0,o=0;for(let i=0;i=8&&(a.push(o),n=0,o=0);return a},p=(e,t)=>{const a=e.pieceLength,n=e.length,o=Math.ceil(n/a),i=t.peerPieces;if(!i.buffer)return{progress:0,buffer:null};let r=0;for(const s of i.buffer){const e=s.toString(2).split("").filter((e=>"1"===e)).length;r+=e}return{progress:r/o,has:r,length:n}},m=["infoHash","name","paused","length","downloaded","uploaded","ready","waiting","progress","isSeeding","upload","token","completed","origin","path","pending","fromPost","postTitle","file","magnetURI","alphabizURI","isAutoUpload","isUploadByFiles","createdTime","completedTime","usedTime"],h=(e,t,a)=>{const n={};var o;(m.forEach((t=>{n[t]=e[t]})),!n.infoHash&&e.magnetURI)&&(n.infoHash=null===(o=e.magnetURI.toLowerCase().match(/:([0-9a-fA-F]{40})/))||void 0===o?void 0:o[1]);if(n.done=e.downloaded>=e.length,n.download=1!==e.progress&&!e.upload,n.upload=e.upload,n.recieved=e.received,n.files=e.files?e.files.map((t=>({name:t.name,path:l.resolve(e.path||"",t.path||t.name),progress:t.progress>0?t.progress:0}))).filter((e=>!e.name.match(/^_____padding_file_(.*)____$/))):[],e.timeRemaining&&(n.timeRemaining=e.timeRemaining),e.metadata&&(n.hasMetadata=!0),e.numPeers&&(n.peersNum=e.numPeers),e.subtitleList&&e.subtitleList.length&&(n.subtitleList=e.subtitleList),"undefined"===typeof t||!a)return n;const i=_(e);e.byteMap&&!i.some(((t,a)=>e.byteMap[a]!==t))||(e.byteMap=i,e.emit("byte-map-change")),n.byteMap=e.byteMap,e.trackerMap?n.trackerList=[...e.trackerMap.values()].map((e=>{const t={...e};return t.url.includes("@6")?t.isIpv6=!0:t.isIpv6=t.url.startsWith("ws")&&t.url.includes("ipv6"),t})).filter((({url:t,status:a})=>{if("error"!==a)return!0;let n=t;t.includes("@6")?n=t.replace("@6",""):n+="@6";const o=e.trackerMap.get(n);return!o||"error"===o.status})):n.trackerList=[];const r=e.client;return n.connections=e.wires.map((n=>{let o=n.remoteAddress;if(!o){const t=e._peers[n.peerId];if(!t||"webrtc"!==t.type)return null;{var i,s,l,c,d;const e=null===(i=t.conn)||void 0===i||null===(s=i._pc)||void 0===s||null===(l=s.currentRemoteDescription)||void 0===l||null===(c=l.sdp)||void 0===c||null===(d=c.match(/c=IN\sIP\d\s(.*)/))||void 0===d?void 0:d[1];if(!e)return n.destroy(),null;o=e}}let u="low";n._uploadThrottle._group===r.throttleGroups.mid&&(u="mid"),n._uploadThrottle._group===r.throttleGroups.high&&(u="high");let _=0,m=0;if(a.has(n._debugId)){const e=a.get(n._debugId);_=(n.downloaded-e.downloaded)/t,_<0&&(_=0),m=(n.uploaded-e.uploaded)/t,m<0&&(m=0)}a.set(n._debugId,{downloaded:n.downloaded,uploaded:n.uploaded});let h=!1;e.byteMap&&n.remote_byte_map&&(h=e.byteMap.some(((e,t)=>{try{const a=e.toString(2).padStart(8,"0"),o=n.remote_byte_map[t].toString(2).padStart(8,"0");for(let e=0;ee)),n.connections.sort(((e,t)=>e.address&&e.address.localeCompare?e.address.localeCompare(t.address):0)),e.verifyStatus&&(n.verifyStatus=e.verifyStatus),e.pieces&&(n.verifiedPieces=e.pieces.reduce(((e,t,a)=>{if(null===t){const t=e[e.length-1];Array.isArray(t)?t[1]===a-1?t[1]=a:e.push(a):t===a-1?e[e.length-1]=[t,a]:e.push(a)}return e}),[])),n},g=()=>{const e=d(),t=new Set;for(const a in e){const n=e[a];n.forEach((e=>{t.add(e.address)}))}return[...t]},f=e=>"string"===typeof e&&e.includes("(")?e.substring(0,e.indexOf("(")).trim():e,b=(e,t)=>{if(!e.discovery||!e.discovery.tracker)return;const a=e.discovery.tracker;if(!a._trackers.find((e=>e.announceUrl===t))&&a._createTracker)try{const e=[4];t.startsWith("http")&&e.push(6);for(const n of e){const e=a._createTracker(t,n);e&&(a._trackers.push(e),e.setInterval(),e.announce(a._defaultAnnounceOpts()))}}catch(n){console.error("addTracker error",n)}},y=(e,t,a)=>{if(!e.discovery||!e.discovery.tracker)return a();const n=e.discovery.tracker._trackers,o=n.findIndex((e=>e.announceUrl===t));if(-1===o)return a();const i=n[o];i&&i.destroy?i.destroy(((...e)=>{const o=n.findIndex((e=>e.announceUrl===t));-1!==o&&n.splice(o,1),"function"===typeof a&&a(...e)})):a()};function v(e){const{appendFile:t}=a("bc7b"),{format:n}=a("05c7"),o=(...e)=>`[${(new Date).toLocaleString()}] ${n(...e)}\n`,i=c(e,"webtorrent.log.log"),r=c(e,"webtorrent.warn.log"),s=c(e,"webtorrent.error.log"),l=function(e){return{...e,log(...a){t(i,o(...a),(()=>{})),e.log.apply(e,a)},warn(...a){t(r,o(...a),(()=>{})),e.warn.apply(e,a)},error(...a){t(s,o(...a),(()=>{})),e.error.apply(e,a)}}}(window.console);window.console=l}var w={useRedirectLogs:v,torrentToJson:h,getLocalIPList:g,getPieceMap:u,parseTrackerWarning:f,addTracker:b,removeTracker:y};a("d4b5"),a("7a76");const{EventEmitter:k}=a("1690"),S=a("3fd2"),{ipcRenderer:C}=S.renderer()?a("1b85"):a("e3c7"),x=a("8b5b"),$=1e7,T=1,z=new Map,P=new Map,A=new Map,I=new Map,q=new Map,O=new Map,E=new Map,D=new Map,j=(e,t)=>{E.has(e)||E.set(e,0),D.has(e)||D.set(e,0);const a=E.get(e)+t;E.set(e,a);const n=Math.floor(a/1e8),o=n-D.get(e);o>0&&(console.log("Request provident payment for",e,"count:",o),C.send("request-provident-payment",{infoHash:e,count:10*o}),D.set(e,n))},N=[],L=new Map,U="undefined"!==typeof localStorage?localStorage.getItem("userInfo"):null,R=U?JSON.parse(U):{user:"",sub:""};console.log("Init user",R);let M=null;const F=e=>{M=e,M.userInfo=R,M.on("request-renew",(e=>C.send("webtorrent-request-renew",e))),M.on("verify-payment",(e=>C.send("webtorrent-verify-payment",e)))};C.on("set-user",((e,t)=>{t||(t=e),console.log("set user",t),R.user=t.user,R.sub=t.sub,"undefined"!==typeof localStorage&&localStorage.setItem("userInfo",JSON.stringify(R)),M.torrents.forEach((e=>{e.wires.forEach((e=>{e._is_alphabiz_peer_&&e.alphabiz_protocol&&e.alphabiz_protocol._sendUserInfo()}))}))}));const B=(e,t)=>{t||(t=e),console.log("Payment info",t);const a=M.get(t.infoHash);if(t.payedSize=t.payed*$/T,A.set(t.id,t),!a||!a.wires.length){if(N.some((e=>e.id===t.id)))return;return N.push(t)}for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSubId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment:JSON.stringify({infoHash:t.infoHash,peerId:t.peerId,subId:R.sub,payed:t.payed,autoRenew:!0,id:t.id})})}};C.on("payment-info",B),C.on("restart-payment",B),C.on("payment-verified",((e,t)=>{t||(t=e);const a=M.get(t.infoHash);if(!a||!a.wires.length)return console.log("tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.subId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._onPaymentVerified({infoHash:t.infoHash,peerId:t.peerId,subId:R.sub,payed:t.payed,autoRenew:!0,id:t.id})}})),C.on("finish-payment",((e,t)=>{const a=M.get(t.infoHash);if(!a||!a.wires.length)return console.log("finish: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_finish:t.transactionId}),n.transactions&&n.transactions.includes(t.transactionId)&&n.transactions.splice(n.transactions.indexOf(t.transactionId),1)}})),C.on("close-payment",((e,t)=>{t||(t=e);const a=M.get(t.infoHash);if(!a||!a.wires.length)return console.log("close: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_close:JSON.stringify({infoHash:t.infoHash,id:t.id})})}}));const W=e=>{if(console.log("To remove",e),!e||!e.infoHash)return;const t=e.infoHash,a=L.get(t);for(let n=0;n{const a="alphabiz_protocol";class n extends k{constructor(e){super(),this._wire=e,this._peerId=null,this._infoHash=t.infoHash,this.isSeeding=t.isSeeding,this.download=t.download,this._user=R.user||"",this._subId=R.sub||"",this.remoteSub="",this.uniqueId="",this._wire._setThrottleGroup=e=>this._setThrottleGroup(e),this.maxUploadSpeed=1e6,this._wire.maxUploadSpeed=1e6,this._initUpload(),this._initDownload()}onHandshake(e,t){this._infoHash=e,this._peerId=t,this._sendUserInfo()}_sendUserInfo(){this._user=R.user||"",this._subId=R.sub||"",this._send({ab_peer:"_ab_"+this._peerId,ab_user:this._user,ab_sub:this._subId,ab_has_meta:t.metadata?1:0}),t.metadata||t.once("metadata",(()=>{this._send({ab_has_meta:1})}))}onExtendedHandshake(e){e.m&&e.m[a]||console.error("Client does not support",a)}_sendByteMap(){t.byteMap&&this._send({ab_byte_map:JSON.stringify(t.byteMap)})}_initDownload(){const e=this._wire,t=t=>{if(Math.random()>.99&&process.memoryUsage().rss/1e9>3&&process.exit(1),this.isSeeding)return;if(!this.remoteSub||!this.uniqueId)return void j(this._infoHash,t);q.get(this.uniqueId)||q.set(this.uniqueId,e.downloaded||0);const a=q.get(this.uniqueId);q.set(this.uniqueId,a+t)};e.on("download",t)}_initUpload(){const e=this._wire,a=t=>{if(!this.remoteSub||!this.uniqueId)return;if(this.remoteSub===this._subId)return;const a=z.get(this.uniqueId)-t;if(isNaN(a))return;const n=L.get(this._infoHash);if(n&&n.length&&(n[0].payedSize-=t,n[0].payedSize<0)){const e=n.shift();C.send("webtorrent-payment-completed",{transactionId:e.id,infoHash:this._infoHash,remoteSub:this.remoteSub})}const o=e.uploadSpeed?e.uploadSpeed():1e6;o>this.maxUploadSpeed&&(this.maxUploadSpeed=1e6*Math.ceil(o/1e6),this._wire.maxUploadSpeed=this.maxUploadSpeed);const i=O.get(this.uniqueId)||[],r=i.reduce(((e,t)=>e+(t.maxUploadSpeed||1e6)),0)||this.maxUploadSpeed;if(P.get(this.uniqueId)&&a<5*r){P.set(this.uniqueId,!1);const e=Math.ceil(r/1e6);console.log("[[wt-ext]] _send ab_renew left < 5*speed",e),this.renew(e<10?10:e)}if(a<=0){if(this._setThrottleGroup("mid"),z.set(this.uniqueId,0),P.get(this.uniqueId)||!P.has(this.uniqueId)){const e=Math.ceil(r/1e6);P.set(this.uniqueId,!1),console.log("[[wt-ext]] _send ab_renew from left<=0",e),this.renew(e<10?10:e)}}else this._setThrottleGroup("high"),z.set(this.uniqueId,a)};e.on("upload",a);const n=()=>{this._wire.transactions&&(C.send("webtorrent-task-done",{infoHash:t.infoHash,name:t.name,payments:this._wire.transactions}),this._send({ab_task_done:this._wire.transactions.join("$")}))},o=()=>this._sendByteMap();e.on("close",(()=>{t.off("done",n),t.off("byte-map-change",o);const a=O.get(this.uniqueId);a&&a.includes(e)&&(console.log("remove same wire"),a.splice(a.indexOf(e),1))})),t.on("done",n),t.on("byte-map-change",o)}_onAbPeer(e,a,n){if(!e.startsWith("_ab_"))return;if(this._remotePeerId=e.substring(4),this._wire._is_alphabiz_peer_=!0,this._wire.ab_peer=e,this._wire.remoteUser=a,this._wire.remoteSub=n,this._wire.transactions=[],this.remoteSub=n,this.uniqueId=n+"#"+this._infoHash,O.has(this.uniqueId)){const e=O.get(this.uniqueId);e.includes(this._wire)||e.push(this._wire)}else O.set(this.uniqueId,[this._wire]);if(I.has(this.uniqueId)||I.set(this.uniqueId,0),I.get(this.uniqueId)>this._wire.downloaded&&I.set(this.uniqueId,this._wire.downloaded),t._has_alphabiz_user_=!0,t.emit("ab_peer",e),this._subId===this.remoteSub)return console.log("[wt-ab-peer] Connected to self"),this._sendByteMap(),void this._setThrottleGroup("high");if(n&&z.get(this.uniqueId)>0?this._onPaymentVerified({infoHash:t.infoHash,subId:n,autoRenew:!0,payed:0},!0):(this._setThrottleGroup("mid"),this.isSeeding&&!z.get(this.uniqueId)&&(this._sendByteMap(),setTimeout((()=>{this.renew()}),1e3))),N.length)for(let t=0;t{this._wire&&!this._wire.destroyed||clearInterval(o),this.isSeeding||"mid"!==this._wire.remoteGroup||this.isSeeding||this._onRenew(this.remoteSub,10)}),5e3)}renew(e=10){this._subId!==this.remoteSub?this._subId?this._send({ab_renew:this._subId,ab_count:e}):console.warn("Cannot get subId"):console.log("[wt-renew] Remote account is same as local")}_setThrottleGroup(t){const a=this._wire._uploadThrottle;if(a&&a._group){if(!e.throttleGroups[t])throw new Error("level_not_found");a._group!==e.throttleGroups[t]&&(console.log("[[wt-ext]] _setThrottleGroup",t),P.set(this.uniqueId,!0),"mid"===t&&a._group===e.throttleGroups.high&&(console.log("Peer dropped back to mid. Send renew request",this._subId,this._infoHash),this.renew(),setTimeout((()=>{a._group!==e.throttleGroups.high&&(console.log("Peer is still in mid. Send renew request",this._subId,this._infoHash),this.renew())}),5e3)),a._group._removeThrottle(a),e.throttleGroups[t]._addThrottle(a),a._group=e.throttleGroups[t],console.log("[[wt-ext]] _send ab_speed_group: ",t),this._send({ab_speed_group:t}))}}_onSpeedGroup(e){console.log("[[wt-ext]] _onSpeedGroup",e),this._wire.remoteGroup=e}_onPaymentReceived(t){e.emit("verify-payment",t)}_onPaymentVerified({infoHash:e,payed:a,id:n}){const o=this.remoteSub;if(console.log("payment verified"),!o||!this.uniqueId)return;if(this._setThrottleGroup("high"),P.set(this.uniqueId,!0),!n||A.has(n))return;const i=a*$/T;if(A.set(n,{infoHash:e,payed:a,autoRenew:!0,id:n,payedSize:i}),e!==t.infoHash)return;if(isNaN(i))return;z.has(this.uniqueId)||z.set(this.uniqueId,0);const r=z.get(this.uniqueId);z.set(this.uniqueId,r+i),L.has(e)||L.set(e,[]);const s=L.get(e);s.push({infoHash:e,subId:o,payedSize:i,id:n,startPosition:this._wire.recieved}),this._send({ab_payment_accepted:n})}_onPaymentAccepted(e){this._wire.transactions.push(e)}_onPaymentCompleted(e){console.log("Completed",e,this.remoteSub),C.send("webtorrent-payment-completed",{transactionId:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),this._wire.transactions.includes(e)&&this._wire.transactions.splice(this._wire.transactions.indexOf(e),1)}_onTaskDone(e){const t=e.split("$").filter((e=>e.length));if(console.log("Remote task done"),t.length)for(const a of t)this._onPaymentCompleted(a);z.delete(this.remoteSub,this._infoHash)}_onPaymentFinished(e){console.log("Finished",e);const a=A.get(e);if(a){const n=q.get(this.uniqueId)||0;I.has(this.uniqueId)||I.set(this.uniqueId,0);const o=I.get(this.uniqueId),i=n-o;i>.9*a.payedSize||t.done||t.downloaded>=.9*t.length?(C.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),I.set(this.uniqueId,o+(i>a.payedSize?a.payedSize:i)),console.log(`Payment ${e} is finished. Payed for ${a.payedSize}. Received ${i}. Done: ${t.done}`),console.log("Update prev-download",o,I.get(this.uniqueId))):(console.log(`Payment ${e} is marked as not-finished. Payed for ${a.payedSize}. Received ${i}`),console.log(`Prev: ${o}. Downloaded: ${n}`))}else C.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash})}_onPaymentClosed(e){console.log("Close",e),W(e)}_onRenew(t,a=10){const n=a&&parseInt(a)?parseInt(a):10;console.log("[[wt-ext]] _onRenew",t,this._remotePeerId,n),e.emit("request-renew",{infoHash:this._infoHash,peerId:this._remotePeerId,payCount:n,subId:t})}onMessage(e){let t;try{t=x.decode(e)}catch(n){return void console.error("cannot decode buf",e)}if(t.ab_has_meta&&(this._wire.remote_has_meta=!0),t.ab_byte_map&&(this._wire.remote_byte_map=JSON.parse(t.ab_byte_map.toString())),t.ab_peer)return this._onAbPeer(t.ab_peer.toString(),t.ab_user&&t.ab_user.toString(),t.ab_sub&&t.ab_sub.toString());if(t.ab_speed_group)return this._onSpeedGroup(t.ab_speed_group.toString());if(t.ab_payment){const e=JSON.parse(t.ab_payment.toString());return console.log("Protocol payment",e),this._onPaymentReceived(e)}return t.ab_payment_completed?this._onPaymentCompleted(t.ab_payment_completed.toString()):t.ab_payment_accepted?this._onPaymentAccepted(t.ab_payment_accepted.toString()):t.ab_payment_finish?this._onPaymentFinished(t.ab_payment_finish.toString()):t.ab_payment_close?this._onPaymentClosed(JSON.parse(t.ab_payment_close.toString())):t.ab_task_done?this._onTaskDone(t.ab_task_done.toString()):t.ab_renew?this._onRenew(t.ab_renew.toString(),null===(a=t.ab_count)||void 0===a?void 0:a.toString()):void 0;var a}_send(e){const t=Object.entries(this._wire.extendedMapping).find((e=>e[1]===a)),n=t&&t[0];n>=0&&this._wire.extended(Number(n),x.encode(e))}onClose(){console.log("onClose",this._wire);this._wire.recieved}}return n.prototype.name=a,n};var V=a("e3c7"),Q=a("5584"),G=a("e38b"),K=a.n(G),Y=a("84f6"),J=a("8750"),Z=a("1926"),X=a("d558"),ee=a("0598");const te=e=>"undefined"!==typeof crypto?Buffer.from(crypto.getRandomValues(new Uint8Array(e))):a("5ae9").randomBytes(e);class ae extends Map{set(e,t){if("object"!==typeof t)return console.error("Not an object",t);super.set(e,Object.assign({url:e},t,{timestamp:Date.now()}))}}const{torrentToJson:ne}=w,oe=a("08ee").announceList.map((e=>e[0])).filter((e=>e.startsWith("wss"))).concat("wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce","wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"),ie=Object(r["a"])("version").replace(/\d*./g,(e=>("0"+e%100).slice(-2))).slice(0,4),re=Buffer.from(`-WW${ie}-${te(9).toString("base64")}`),se=new o.a({peerId:re,maxConns:20,store:K.a});let le=null;const ce=()=>le;if(!Object(X["a"])()&&!Object(ee["default"])()){setInterval((()=>{var e;if(!se.torrents[0])return;const t=se.torrents[0];t.paused||t.done||1===t.progress||null!==(e=t.discovery)&&void 0!==e&&e.tracker&&t.discovery.tracker.update()}),15e3),V["ioServer"].on("updateSettings",(e=>{if(console.log("updateSettings",e),"downloadSpeed"in e){const t=e.downloadSpeed;t>0?se.throttleDownload(t):se.throttleDownload(0)}if("uploadSpeed"in e){const t=e.uploadSpeed;t>0?se.throttleUpload(t):se.throttleUpload(0)}"secureOption"in e&&(console.log("set secure",i["setSecure"]),Object(i["setSecure"])(e.secureOption))})),Object.defineProperty("undefined"===typeof window?global:window,"client",{get(){return se}});const e=()=>"undefined"!==typeof navigator&&!!navigator.serviceWorker;e()?(console.log("registering sw"),navigator.serviceWorker.register("webtorrent.worker.js").then((()=>{const e=()=>{const e=navigator.serviceWorker.controller;e&&"activated"===e.state&&(console.log("[ ServiceWorker ] Change controller",e),se.loadWorker(e))};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.addEventListener("statechange",e),navigator.serviceWorker.addEventListener("controllerchange",(()=>{e(),navigator.serviceWorker.controller.addEventListener("statechange",e)})),console.log("register",navigator.serviceWorker.controller),e()})).catch((e=>{console.error("Error registering sw",e)}))):"undefined"!==typeof navigator&&navigator.serviceWorker&&navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&se.loadWorker(navigator.serviceWorker.controller);const t=new Map;let a=Date.now(),n=1e3;const o=()=>({downloading:[],uploading:[],downloaded:[]}),r=()=>{const e=Date.now();if(n=(e-a)/1e3,a=e,se.torrents[0]){const e=se.torrents[0];e.done||"number"!==typeof e.usedTime||(e.usedTime+=1e3);const a=ne(e,n,t);if(t.has(a.infoHash)&&e.ready){const o=t.get(a.infoHash);0===o.downloaded?a.downloadSpeed=0:a.downloadSpeed=Math.floor((e.downloaded-o.downloaded)/n),0===o.uploaded?a.uploadSpeed=0:a.uploadSpeed=Math.floor((e.uploaded-o.uploaded)/n),a.downloadSpeed<0&&(a.downloadSpeed=0),a.uploadSpeed<0&&(a.uploadSpeed=0),t.set(a.infoHash,{downloaded:e.downloaded,uploaded:e.uploaded})}else a.downloadSpeed=0,a.uploadSpeed=0,t.set(a.infoHash,{downloaded:0,uploaded:0});V["ioServer"].emit("wt-task",a),le=a;const i=o();a.done&&!a.isSeeding&&a.paused?i.downloaded=[a]:a.done||a.isSeeding?i.uploading=[a]:i.downloading=[a],Y["a"].updateTaskList(i)}else le=null,Q["a"].commit("updateABKeys",o())};setInterval(r,1e3),se.on("error",(e=>{console.warn("webtorrent error",e)})),se.on("ready",(()=>{console.log("[webtorrent]","ready"),F(se)}));const l=(e,t)=>{if(console.log("onWire",e),e.use(H(se,t)),"webrtc"===e.type){console.log("onwire",e.remoteAddress,e.peerId);const a=()=>{var n,o,i,r,s;if(e.remoteAddress)return;const l=t._peers[e.peerId];if(!l)return setTimeout(a,1e3);const c=null===(n=l.conn)||void 0===n||null===(o=n._pc)||void 0===o||null===(i=o.currentRemoteDescription)||void 0===i||null===(r=i.sdp)||void 0===r||null===(s=r.match(/c=IN\sIP\d\s(.*)/))||void 0===s?void 0:s[1];if(!c)return setTimeout(a,1e3);e.remoteAddress=c};a()}},c=(e,t)=>{const a="string"===typeof e?se.get(e):e;a&&a.trackerMap&&(a.trackerMap.set(t,{status:"connecting"}),w.addTracker(a,t))},d=(e,t={})=>{e.pending=!1,e.removeAllListeners(),e.setMaxListeners(0),console.log("Add listeners to",e.infoHash||e.token||t.magnetURI),e.on("error",(e=>{console.warn("[wt] error",e)})),e.on("infoHash",(e=>{console.log("got infoHash",e),V["ioServer"].emit("wt-infoHash",e)})),e.on("wire",(t=>l(t,e))),e.on("metadata",(()=>{console.log("Got metadata",e),Object(s["a"])(e.magnetURI).then((t=>{console.log(t),e.alphabizURI=t}))})),e.on("discovery",(()=>{if(console.log("start discovery"),e.trackerMap=new ae,e.discovery._announce.forEach((t=>{if(console.log("Discovered",t),e.trackerMap.set(t,{status:"connecting"}),!t.startsWith("ws")){if(t.match(/(\d{1,3}\.){3}\d{1,3}/))return;e.trackerMap.set(t+"@6",{status:"connecting"})}})),e.discovery.tracker.on("warning",((t,a,n)=>{a&&(6===n&&(a+="@6"),e.trackerMap.set(a,{status:"error",message:w.parseTrackerWarning(t.message)}))})),e.discovery.tracker.on("update",((t,a,n)=>{if(console.log("tracker update",a,t),!a)return console.warn("No emitted url",t);6===n&&(a+="@6"),e.trackerMap.set(a,{status:"updated",info:t})})),t.customTrackers)for(const a of t.customTrackers)c(e,a)}))},u=(e,t)=>{Q["a"].getters.settings.downloadSpeed>0&&se.throttleDownload(Q["a"].getters.settings.downloadSpeed),Q["a"].getters.settings.uploadSpeed>0&&se.throttleUpload(Q["a"].getters.settings.uploadSpeed);const a=t||{};if(a.announce=a.announce||oe,se.torrents&&se.torrents.length)return V["ioServer"].emit("weberror","already_downloading");(e instanceof File||e instanceof FileList)&&console.log("should seed");const n=e instanceof File||e instanceof FileList?se.seed(e,a):se.add(e,a);return n.token=a.token||e,n.origin=a.token||e,n.createdTime=a.createdTime||Date.now(),n.usedTime=a.usedTime||0,a.fromPost&&(n.fromPost=a.fromPost),a.postTitle&&(n.postTitle=a.postTitle),a.name&&(n.name=a.name),d(n,a),r(),n};V["ioServer"].on("wt-add",(async(e,t)=>{if("string"===typeof e&&(e.startsWith("alphabiz:")||e.startsWith("ab:")))return u(await Object(s["a"])(e),t);u(e,t)})),V["ioServer"].on("download_torrent",(async e=>{if(console.log("web download",e),!e.url)return V["ioServer"].emit("weberror","not_supported_in_web_mode");try{const t=await Object(s["a"])(e.url);console.log("converted",t),u(t,{...e,url:t})}catch(t){V["ioServer"].emit("weberror",t.message||t)}})),V["ioServer"].on("wt-pause",(e=>{const t=se.get(e);if(console.log("pause",e,t),!t)return V["ioServer"].emit("weberror","torrent_not_exist");t.paused=!0,t.pause(),t.discovery.tracker.stop();while(t.wires.length){const e=[...t.wires];e.forEach((e=>e.destroy()))}})),V["ioServer"].on("wt-resume",(e=>{const t=se.get(e);if(!t)return V["ioServer"].emit("weberror","torrent_not_exist");t.paused=!1,t.resume(),t.discovery.tracker.start()})),V["ioServer"].on("pause_all",(()=>{se.torrents.forEach((e=>e.destroy((()=>{V["ioServer"].emit("wt-pause",e)}))))})),V["ioServer"].on("wt-delete",(e=>{const t=se.get(e);if(!t)return V["ioServer"].emit("weberror","torrent_not_exist");t.destroy((()=>{V["ioServer"].emit("torrent_deleted",t)}))}));let _=null;const p=({infoHash:e,filepath:t})=>{console.log("[web] Play",e,t);const a=se.get(e);return a?a.ready?(_=a.createServer(),void _.listen(0,(()=>{const t=_.address().port,n={token:a.token,port:t};V["ioServer"].emit("play-server-ready",n);const o=()=>{var t;const n=(null===(t=a.files)||void 0===t?void 0:t.map((e=>{const t=[];for(let n=e._startPiece;nclearInterval(i)))}))):setTimeout((()=>{p({infoHash:e,filepath:t})}),2e3):V["ioServer"].emit("weberror","torrent_not_exist")};V["ioServer"].on("wt-play",p);const m=()=>{_&&(_.destroy&&_.destroy(),_=null,console.log("Destroyed server"))};V["ioServer"].on("wt-stop-server",m),V["ioServer"].on("set_user",(e=>{V["ioServer"].emit("set-user",null,e)})),"undefined"!==typeof document&&document.body.addEventListener("paste",(async e=>{const t=e.clipboardData.files.length?e.clipboardData.files:e.clipboardData.getData("text");let a=t;if(t instanceof FileList){if(t.length>1)return J["a"].create({message:Z["b"].t("web_mode_upload_single"),ok:Z["b"].t("ok")});if(!t[0].size)return J["a"].create({message:Z["b"].t("web_mode_upload_single"),ok:Z["b"].t("ok")});a=t[0]}if("string"===typeof a){if((a.startsWith("ab://")||a.startsWith("alphabiz://"))&&(a=await Object(s["a"])(a).catch((()=>"")),!a.startsWith("magnet")))return J["a"].create({message:Z["b"].t("invalid_download_url"),ok:Z["b"].t("ok")});if(!a.startsWith("magnet"))return}const n=()=>{u(a)};se.torrents[0]?J["a"].create({message:Z["b"].t("remove_old_task_desc"),ok:Z["b"].t("remove_old_task"),cancel:Z["b"].t("cancel")}).onOk((()=>{se.torrents[0].destroy(),se.torrents.splice(0),n()})):J["a"].create({message:Z["b"].t("add")+" "+(a.name||t),ok:Z["b"].t("add"),cancel:Z["b"].t("cancel")}).onOk(n)})),console.log("Init webtorrent events")}},c62a6:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a("ff9b");const o=new n["a"]({data(){return{taskQueue:[]}}})},c65d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c7ce:function(e,t,a){},c905:function(e,t,a){"use strict";a("9d1e")},c9b4:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},ca31:function(e,t,a){},cb96:function(e,t,a){},cbf3:function(e,t,a){"use strict";a("49d6")},cc0c:function(e,t,a){"use strict";a("1da1")},cdb7:function(e,t,a){"use strict";a("7ad0")},ce6c:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.showAppBar?a("q-bar",{staticClass:"application-bar app-draggable"},["mac"===e.env?[a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("div",{staticClass:"absolute-left full-width full-height row flex-center"},[a("div",{staticClass:"text-weight-bold non-selectable"},[e._v(e._s(e.appName))])])]:e._e(),["win","linux"].includes(e.env)?[a("q-img",{staticClass:"application-bar-icon",attrs:{src:e.abIcon,width:"18px",height:"18px"}}),a("div",{staticClass:"application-bar-title q-ml-md q-pr-md non-selectable",staticStyle:{"font-size":"0.8rem"}},[e._v("\n "+e._s(e.appName)+"\n ")]),a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("q-space"),a("div",{staticClass:"full-height flex-center row app-no-draggable",staticStyle:{"pointer-events":"visible","margin-right":"-12px"}},[a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.minimize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1",y1:"6",x2:"11",y2:"6",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.maximize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("polyline",{attrs:{points:"5.5 1.5 10.5 1.5 10.5 6.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("polyline",{attrs:{points:"1.5 5.5 1.5 10.5 6.5 10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button window-close-button",attrs:{unelevated:""},on:{click:e.close}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1.5",y1:"1.5",x2:"10.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("line",{attrs:{x1:"10.5",y1:"1.5",x2:"1.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])])],1)]:e._e()],2):e._e()},o=[],i=(a("de6c"),a("d710"));const r=a("d310").isElectron();var s={name:"ApplicationBar",data(){return{appName:i["appName"],showAppBar:r,showMenu:!1,abIcon:"developer/assets/icon-256.png",env:null,windowControl:null}},created(){if(!r)return;Promise.resolve().then(a.t.bind(null,"1b85",7)).then((({ipcRenderer:e})=>{this.windowControl=t=>e.sendSync("app_window_control",t)}));const e=navigator.userAgent.toLowerCase(),t=/macintosh|mac os x/i.test(e);this.env=t?"mac":"win"},methods:{minimize(){this.windowControl("minimize")},maximize(){this.windowControl(this.windowControl("isMaximized")?"unmaximize":"maximize")},close(){this.windowControl("close")}}},l=s,c=(a("ac09"),a("2b5f")),d=a("85af"),u=a("1043"),_=a("9767"),p=a("990e"),m=a("8a98"),h=a("09a4"),g=a.n(h),f=Object(c["a"])(l,n,o,!1,null,null,null);t["a"]=f.exports;g()(f,"components",{QBar:d["a"],QBtn:u["a"],QImg:_["a"],QSpace:p["a"],QTable:m["a"]})},cea8:function(e,t){e.exports=require("punycode")},cf6e:function(e,t,a){},d176:function(e,t,a){},d1e4:function(e,t,a){"use strict";a("eaf6")},d2e8:function(e,t,a){"use strict";a("053d")},d310:function(e,t,a){"use strict";a.r(t),a.d(t,"localConfigs",(function(){return s})),a.d(t,"deepClone",(function(){return c})),a.d(t,"Bus",(function(){return d["a"]})),a.d(t,"isElectron",(function(){return u["default"]})),a.d(t,"torrentToJson",(function(){return h}));a("de6c");var n=a("3fd2"),o=a.n(n);const i=o.a.renderer(),r=e=>new Promise(((t,n)=>{if(!i)return n(!1),!1;i&&Promise.resolve().then(a.t.bind(null,"1b85",7)).then((a=>a.ipcRenderer.invoke("get-app-settings").then((a=>{a[e]?t(a[e]):n(!1)})).catch(n)))}));var s={getSettingsItem:r};function l(e){if(!e||"object"!==typeof e)return e;const t=arguments[1]||new WeakMap;if(t.has(e))return t.get(e);const a=Array.isArray(e)?[]:{};t.set(e,a);for(const n in e)Object.hasOwnProperty.call(e,n)&&(a[n]=l(e[n],t));return a}var c=l,d=a("c62a6"),u=a("0598");const _=a("d6fe"),p=["infoHash","name","paused","progress","length","downloaded","downloadSpeed","uploaded","uploadSpeed","recieved","ready","token","origin","path","pending"],m=(e,t)=>{const a={};return p.forEach((t=>{a[t]=e[t]})),a.done=e.downloaded>=e.length,a.download=!t,a.upload=e.upload,a.files=e.files?e.files.map((t=>({name:t.name,path:_.resolve(e.path,t.path),progress:t.progress||0}))):[],a};var h=m},d34c:function(e,t,a){},d534:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"image-with-preview full-width"},[a("q-input",{staticClass:"full-width",attrs:{outlined:"","stack-label":"",value:e.value,label:e.label,rules:e.rules,placeholder:"https://example.org/path/to/image.jpg",debounce:500},on:{input:e.emitSrc},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"after",fn:function(){return[a("div",{staticClass:"image-container"},[a("img",{staticClass:"preview-image",class:e.state,attrs:{src:e.realSrc},on:{error:e.emitError,load:e.emitSuccess}}),"error"===e.state?a("q-icon",{attrs:{name:"close",size:"56px",color:"red"}},[a("q-tooltip",[e._v(e._s(e.$t("invalid_image")))])],1):e._e(),"loading"===e.state?a("q-icon",{attrs:{name:"image",size:"56px",color:"green"}},[a("q-tooltip",[e._v(e._s(e.$t("poster")))])],1):e._e()],1)]},proxy:!0}])})],1)},o=[],i={props:{value:String,label:String,rules:{type:Array,default:()=>[]}},data(){return{state:"loading"}},computed:{realSrc(){let e=this.value||"";if(!e.startsWith("http"))return"";while(e.startsWith("http%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);while(e.startsWith("https%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);return e}},methods:{emitSrc(e){this.$emit("input",e)},emitError(){""!==this.value&&(this.$emit("state",2),this.state="error")},emitSuccess(){this.$emit("state",1),this.state="loaded"}},watch:{value(){console.log("src change"),this.$emit("state",0),this.state="loading"}}},r=i,s=(a("c905"),a("2b5f")),l=a("0e45"),c=a("f106"),d=a("cf25"),u=a("09a4"),_=a.n(u),p=Object(s["a"])(r,n,o,!1,null,"70ea5328",null);t["a"]=p.exports;_()(p,"components",{QInput:l["a"],QIcon:c["a"],QTooltip:d["a"]})},d558:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a("dd30");const o=Boolean((()=>{var e;if("undefined"===typeof window)return"mobile"in process.versions||"android"===Object(n["platform"])()||"ios"===Object(n["platform"])()||process.argv.includes("--dev")||process.argv.includes("--capacitor")||void 0;const{Platform:t}=a("d247");return(null===(e=t.is)||void 0===e?void 0:e.capacitor)||void 0})());function i(){return o}},d6fe:function(e,t){e.exports=require("path")},d710:function(e,t,a){const n=a("b3f7"),{default:o}=a("0598");if(o())if(this.require)try{const t=this["require"]("developer/app");console.log("Init from node_modules",process),t.appName=t.name,e.exports={default:t,appName:t.name,...t}}catch(i){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=o()?require("developer/app"):n;t.appName=t.displayName,console.log("APP name:",t.appName),e.exports={default:t,appName:t.displayName,...t}}else e.exports={appName:n.name,...n}},d7df:function(e,t,a){"use strict";a("de6c"),a("d4b5");var n=a("d310"),o=a("e3c7"),i=a("d558"),r=a("9ad5"),s=a.n(r),l=a("a368"),c=a("8a63"),d=a("f680"),u=a("1926");const _=Object(i["a"])(),p=e=>"requestAnimationFrame"in window?requestAnimationFrame(e):setTimeout(e,20),m=[],h=new Map,g=new Map,f={on(e,t){Object(n["isElectron"])()||_?(h.has(e)||h.set(e,[]),h.get(e).push(t),g.has(e)&&(g.get(e).forEach((e=>{t(...e)})),g.delete(e)),_&&"check-network-result"===e&&console.log("Listen on",e,t)):o["ipcRenderer"].on(e,t)},once(e,t){const a=(...n)=>{t(...n),this.off(e,a)};return this.on(e,a)},emit(e,...t){_?m.push({name:e,data:t}):Object(n["isElectron"])()?o["ipcRenderer"].send("_io_send",{name:e,data:t}):o["ipcRenderer"].send(e,...t)},off(e,t){console.log("Off",e);const a=h.get(e);if(!a)return;if(!t)return a.splice(0);const n=a.indexOf(t);-1!==n&&a.splice(t,1)},clear(){console.log("io client clear");for(const e of h.values())e.splice(0)}};if(Object(n["isElectron"])()){const e={resolve:null,async execute(){if(e.resolve)return;const t=new Promise((t=>e.resolve=t));o["ipcRenderer"].send("_io_fetch"),await t,e.resolve=null}},t=async()=>{await e.execute(),setTimeout((()=>p(t)),500)};p(t),o["ipcRenderer"].on("_io_response",(async(t,a)=>{var n;if(!a||!a.length)return null===(n=e.resolve)||void 0===n?void 0:n.call(e);await a.reduce((async(e,{name:t,data:a})=>{await e;const n=JSON.parse(a),o=h.get(t);if(o)o.map((e=>{try{e(...n)}catch(a){console.error(`Error when emitting io event [${t}] ${a}`)}}));else{g.has(t)||g.set(t,[]);const e=g.get(t);e.push(n),e.length>10&&e.splice(0,e.length-10)}}),Promise.resolve()),"function"===typeof e.resolve&&e.resolve()}))}if(_&&"object"===typeof window){const e=(e,t)=>{e.startsWith("ipc")&&(console.log("Got ipc event",e,t),t.unshift(null));const a=e.startsWith("ipc:")?e.substring(4):e,n=h.get(a);if("check-network-result"===a&&console.log("pre",a,n,h.size),h.has(a))n&&n.forEach((e=>e(...t)));else if(g.has(a)){const e=g.get(a);e.push(t),e.length>10&&(e.splice(0,e.length-10),"check-network-result"===a&&console.log("Remove",a,h.size))}else g.set(a,[t])};let t=0;const a=()=>{l["Filesystem"].readFile({path:"service_port",directory:l["Directory"].Documents,encoding:l["Encoding"].UTF8}).then((({data:e})=>{if(!isNaN(parseInt(e))){if(t===parseInt(e))return;t=parseInt(e),console.log("Set port to",t)}}))};a(),setInterval(a,1e4);const n=new Set,o=async()=>{if(!t)return setTimeout(o,500);try{let o=!0,i=()=>{};setTimeout((()=>{o&&(i=d["a"].create({message:u["b"].t("connecting")+"...",position:"bottom-right"}))}),1200);const r=t=>{t&&Array.isArray(t.events)&&t.events.forEach((({name:t,data:a})=>e(t,a)))},l=m.splice(0).map((e=>{const t=JSON.stringify(e).length;if(t>3e6){const t="partials:"+e.name;if(n.has(t))return;n.add(t);let a=0;const o=async e=>{const{data:t}=await s.a.post("http://localhost:3000",{events:[e]},{withCredentials:!1,timeout:5e3}).catch((()=>({})));return r(t),a++,await new Promise((e=>setTimeout(e,100)))};return e.data.reduce((async(e,a,n)=>{if(await e,"object"!==typeof a||JSON.stringify(a).length<3e6)await o({name:t,index:n,data:a}),await new Promise(p);else{let e=Array.isArray(a)?[]:{},i=0;for(const r in a)e[r]=a[r],i+=JSON.stringify(a[r]).length,i>3e6&&(await o({name:t,index:n,data:e}),e=Array.isArray(a)?[]:{},i=0,await new Promise(p));(Array.isArray(a)?e.length:Object.keys(e).length)&&await o({name:t,index:n,data:e})}await new Promise(p)}),Promise.resolve()).then((async()=>{await o({name:t,index:-1}),console.log(`Finished splicing ${t} with ${a} pieces`),n.delete(t)})),null}return e})).filter((e=>e));l.length||l.push("__empty__"),await l.reduce((async(e,n)=>{if(await e,!n)return;const{data:o}=await s.a.post(`http://localhost:${t}`,{events:"__empty__"===n?[]:[n]},{withCredentials:!1,timeout:2e3}).catch((e=>(console.log(`Failed to fetch events. Error: ${e.message||e}`),console.log(m),a(),{})));r(o)}),Promise.resolve()).catch(a),o=!1,i()}catch(i){console.log("Poll error",i)}setTimeout(o,500)};o(),l["App"].addListener("resume",(()=>{console.log("App resume"),setTimeout((()=>{Object(c["c"])(!0)}),500)})),l["App"].addListener("pause",(()=>{console.log("App pause"),Object(c["d"])(!0)})),l["Network"].addListener("networkStatusChange",(e=>{console.log("Network connection type changed to",e.connectionType)}))}t["a"]=f},d7f6:function(e,t,a){},d884:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return o}));a("5584");const n=[{value:"en-US",label:"English"},{value:"zh-CN",label:"简体中文"},{value:"zh-TW",label:"繁體中文"},{value:"de-DE",label:"Hochdeutsch"},{value:"es-ES",label:"español castellano"},{value:"fr-FR",label:"Français standard"},{value:"hi-IN",label:"हिंदी भारत)"},{value:"id-ID",label:"Indonesian (Indonesia)"},{value:"it-IT",label:"Italiano standard"},{value:"ja-JP",label:"日本語 (日本)"},{value:"ko-KR",label:"한국어(대한민국)"},{value:"nl-NL",label:"Standaard Nederlands"},{value:"pl-PL",label:"polski (Polska)"},{value:"pt-PT",label:"português europeu"},{value:"ru-RU",label:"Русский"},{value:"th-TH",label:"ไทย (ประเทศไทย)"},{value:"tr-TR",label:"Türkçe (Türkiye)"}];function o(e){return n.some((t=>t.value===e))}},dd30:function(e,t){e.exports=require("os")},df2b:function(e,t,a){},e0e1:function(e,t,a){"use strict";a("571b")},e24e:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},e3c7:function(e,t,a){"use strict";a.r(t),a.d(t,"ipcEvent",(function(){return l})),a.d(t,"ioEvent",(function(){return c})),a.d(t,"ioServer",(function(){return _})),a.d(t,"ipcRenderer",(function(){return p}));a("de6c");var n=a("bd50"),o=a.n(n),i=a("d310"),r=a("d558"),s=a("d7df");const l=new o.a,c=new o.a,d=Object(i["isElectron"])()?a("1b85").ipcRenderer:Object(r["a"])()?{on(e,t){s["a"].on("ipc:"+e,t)},once(e,t){s["a"].once(e,t)},off(e,t){s["a"].off("ipc:"+e,t)},send(e,...t){console.log("ipcSend",e),s["a"].emit("ipc:"+e,...t)}}:{on(e,t){l.on(e,((...e)=>{t(...e)}))},send(e,...t){c.emit(e,...t)}},u=new Map,_={on(e,t){const a=u.has(t)?u.get(t):(...e)=>{t(...e)};u.has(t)||u.set(t,a),c.on(e,a)},emit(e,...t){l.emit(e,...t)},off(e,t){if(!t)return c.off(e);const a=u.get(t)||t;return a?c.off(e,a):void 0}},p=d;console.log("Init api server"),Object(i["isElectron"])()||Object(r["a"])()||(console.log("isElectron",Object(i["isElectron"])()),console.log("isCapacitor",Object(r["a"])()),a("c620"),a("ecef"))},e44e:function(e,t){e.exports=require("assert")},e4a9:function(e){e.exports=JSON.parse('{"lib_index":"Heim","lib_edit":"Veröffentlichen","lib_publish":"Veröffentlichen","lib_explore":"Erkunden","lib_following":"Nachfolgend","lib_favorite":"Lokale Favoriten","lib_local_favorites":"Lokale Favoriten","lib_channel":"Kanal","lib_submit":"Einreichen","lib_from_network":"Verwendung einer dezentralen Datenbank aus dem Netzwerk","welcome_to_lib":"Willkommen in der Medienbibliothek von ${displayName}","register_or_login":"Registrieren/Anmelden","lib_recommend":"Empfehlen","lib_recommend_desc":"Willkommen in der ${displayName}-Bibliothek! Diese Bibliothek nutzt eine dezentrale Datenbank aus dem Netzwerk. Um es nutzen zu können, müssen Sie einigen Kanälen folgen.","follow_any_channel_to_continue":"Folgen Sie einem beliebigen Kanal, um fortzufahren","follow_channels_and_continue":"Folgen Sie den Kanälen {0} und fahren Sie fort","show_more_for_me":"Mehr für mich anzeigen","no_more_recommend":"Nicht mehr zu empfehlen","key":"Schlüssel","create_key":"Schlüssel erstellen","save_key":"Schlüssel speichern","save_key_file":"Möchten Sie Ihren Schlüssel als Datei speichern?","import_key":"Schlüssel importieren","import":"Importieren","invalid_key":"Ungültiger Schlüssel","back_to_top":"Zurück nach oben","search_for_channel":"Suchen Sie nach der Kanal-ID","search_channel_no_result":"Kanal mit der ID {0} kann nicht gefunden werden","please_input_channel_id":"Bitte geben Sie die Kanal-ID ein","welcome_help_text":"Dabei handelt es sich um eine dezentrale Medienbibliothek. Du brauchst\\n um ein Konto für diese Datenbank zu erstellen. Wir werden\\n generiert automatisch einen persönlichen Schlüssel für Sie.\\n Wenn Sie bereits einen Schlüssel besitzen, können Sie ihn auch importieren\\n hier.","welcome_key_text":"Sobald Sie sich angemeldet haben, klicken Sie bitte auf die Schaltfläche [SCHLÜSSEL SPEICHERN].\\n in der rechten unteren Ecke, um Ihren privaten Schlüssel zu speichern.\\n Wenn Sie Ihren Schlüssel verlieren, können Sie sich möglicherweise nicht erneut anmelden.","redirect_to_recommend":"Es scheint, dass Sie keinem Kanal gefolgt sind. Weiterleitung zur Seite [Erkunden].","channel":"Kanal","follow":"Folgen","unfollow":"Nicht mehr folgen","following":"Nachfolgend","share":"Aktie","unfollow_confirm":"Sind Sie sicher, dass Sie diesem Kanal nicht mehr folgen? Alle Beiträge dieses Kanals in Ihrer Chronik werden entfernt.","follow_failed_hint":"Der Vorgang steht im Hintergrund noch aus. Wenn der Vorgang längere Zeit nicht ausgeführt wird, starten Sie die App bitte neu und versuchen Sie es erneut.","block":"Block","unblock":"Entsperren","blocked":"verstopft","block_channel":"Blockieren Sie diesen Kanal","block_channel_confirm":"Wenn Sie den Kanal blockieren, wird er aus Ihrer Timeline entfernt. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","block_creator":"Blockieren Sie den Ersteller dieses Kanals","unblock_creator":"Entsperren Sie den Ersteller dieses Kanals","block_creator_confirm":"Block-Ersteller entfernt alle von diesem Ersteller erstellten Kanäle aus Ihrer Timeline. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","share_url_copied":"Die Freigabe-URL wird in Ihre Zwischenablage kopiert","follow_time":"Folgen Sie der Zeit","update_time":"Updatezeit","search":"Suchen","type":"Typ","added":"Hinzugefügt","click_to_task":"Klicken Sie hier, um zur Aufgabe zu gelangen","lib_already_added":"Sie haben dieses Video bereits hinzugefügt","description":"Beschreibung","poster":"Poster","channel_poster":"Kanalplakat","preview":"Vorschau","creator":"Schöpfer","creator_detail":"Details zum Ersteller","loading_creator":"Erstellerinformationen werden geladen","wait_for_creator_loaded":"Bitte warten Sie, bis die Erstellerinformationen geladen sind.","follower":"Anhänger","followers":"Anhänger","follower_list":"Follower-Liste","user":"Benutzer","channel_title":"Kanaltitel","channel_id":"Kanal ID","post_title":"Titel des Beitrags","post_id":"Beitrags-ID","import_data_from_excel":"Importieren Sie Daten aus Excel","set_excel_keys":"Excel-Tasten festlegen","excel_import_succeded":"Der Excel-Import war erfolgreich","excel_import_success_msg":"{0} Zeilen können hinzugefügt werden, {1} ungültige und {2} doppelte Elemente werden ignoriert","cannot_find_channel":"Kanal kann nicht gefunden werden","cannot_find_posts":"Beiträge können nicht gefunden werden","add_channel":"Kanal hinzufügen","add_post":"Beitrag hinzufügen","edit_channel":"Kanal bearbeiten","channel_setting":"Kanaleinstellung","edit_post":"Beitrag bearbeiten","edit_posts":"Beiträge bearbeiten","channel_detail":"Kanaldetails","remove":"Entfernen","remove_channel":"Kanal entfernen","remove_channel_confirm":"Möchten Sie diesen Beitrag wirklich entfernen? Dies kann nicht wiederhergestellt werden.","remove_post":"Beitrag entfernen","remove_post_confirm":"Möchten Sie diesen Kanal wirklich entfernen? Dies kann nicht wiederhergestellt werden.","preview_mode":"Vorschau Modus","preview_mode_desc":"Dies ist eine Vorschau Ihres Kanals. Alle Filmpreise finden Sie hier.","edit_user_profile":"Benutzerprofil bearbeiten","name":"Spitzname","avatar":"Benutzerbild","no_following":"Keine folgenden Kanäle. Klicken Sie hier, um dorthin zu gelangen","no_recommend":"Keine empfohlenen Kanäle. Klicken Sie hier, um dorthin zu gelangen","first_recomment_msg":"Es kann eine Weile dauern, wenn die App zum ersten Mal gestartet wird.","invalid_image":"Ungültiges Bild","image_not_reachable":"Diese Bild-URL ist nicht erreichbar.","channel_not_found":"Kanal nicht gefunden","cannot_get_channel_info":"Kanalinformationen können nicht abgerufen werden. Dieser Kanal wurde möglicherweise von seinem Ersteller entfernt und ist nicht mehr verfügbar.","validate_error":"Validierungsfehler","validate_user_name_no_space":"Der Benutzername sollte keine Leerzeichen enthalten","validate_url_no_space":"Die URL sollte keine Leerzeichen enthalten","validate_user_name_length":"Der Benutzername sollte eine Länge zwischen {0} und {1} haben","validate_user_desc_length":"Die Benutzerbeschreibung sollte nicht mehr als {0} Zeichen umfassen","validate_user_avatar_url":"Der Benutzer-Avatar sollte eine URL mit weniger als 2048 Zeichen sein","validate_channel_title_length":"Der Kanaltitel sollte eine Länge zwischen 1 und 100 haben","validate_channel_desc_length":"Die Kanalbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_channel_image_url":"Die Kanalvorschau sollte eine URL mit weniger als 2048 Zeichen sein","validate_post_title_length":"Der Beitragstitel sollte eine Länge zwischen 1 und 100 haben","validate_post_desc_length":"Die Beitragsbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_post_image_url":"Das Poster sollte eine URL mit weniger als 2048 Zeichen haben","validate_post_url":"Ungültige ${displayName}-URL","validate_post_url_length":"Die ${displayName}-URL sollte nicht mehr als 2048 Zeichen umfassen","film_rate":"Filmpreis","set_film_rate":"Filmrate einstellen","select_a_rate_before_enter":"Sie müssen einen Filmpreis auswählen, bevor Sie die Medienbibliothek aufrufen.","library_available_rate":"In der Bibliothek verfügbarer Filmpreis","rate_g":"G – Allgemeines Publikum","rate_g_desc":"Alle Altersgruppen zugelassen. Nichts, was Eltern beleidigen würde, wenn Kinder es ansehen.","rate_pg":"PG – Elternberatung empfohlen","rate_pg_desc":"Einige Materialien sind möglicherweise nicht für Kinder geeignet. Eltern werden aufgefordert, „elterliche Anleitung“ zu geben. Kann Material enthalten, das Eltern für ihre kleinen Kinder möglicherweise nicht mögen.","rate_pg_13":"PG-13 – Eltern dringend gewarnt","rate_pg_13_desc":"Einige Inhalte könnten für Kinder unter 13 Jahren ungeeignet sein. Eltern werden dringend gebeten, vorsichtig zu sein. Einige Materialien sind möglicherweise für Jugendliche im Vorschulalter ungeeignet.","rate_r":"R – Eingeschränkt","rate_r_desc":"Personen unter 17 Jahren benötigen die Begleitung eines Elternteils oder eines erwachsenen Erziehungsberechtigten. Enthält etwas Material für Erwachsene. Eltern werden dringend gebeten, mehr über den Film zu erfahren, bevor sie ihre kleinen Kinder mitnehmen.","rate_nc_17":"NC-17 – Nur für Erwachsene","rate_nc_17_desc":"Niemand unter 17 Jahren wird zugelassen. Eindeutig erwachsen. Kinder haben keinen Zutritt.","set_as_private":"Als privat festlegen","hide_in_explore":"Diesen Kanal auf der Erkundungsseite ausblenden","hidden":"Versteckt","select_a_rate":"Bitte wählen Sie einen Filmpreis aus","select_from_tasks":"Wählen Sie aus Aufgaben aus","import_from_magnet":"Import aus Magnet:?...","input_magnet_url":"Eingangsmagnet:? URL","task_title":"Aufgabentitel","set_title":"Titel festlegen","add_to_local_favorites":"Zu lokalen Favoriten hinzufügen","remove_from_local_favorites":"Aus lokalen Favoriten entfernen","removed_favorite":"Favorit entfernt","import_or_export_favorites":"Favoriten importieren/exportieren","export_local_favorites":"Lokale Favoriten als Backup exportieren","import_favorites_file":"Favoritendatei importieren","not_a_favorite_file":"Diese Datei ist keine bevorzugte Sicherungsdatei","connection_status":"Verbindungsstatus","gun_server_list":"Cache-Knoten","custom_nodes":"Benutzerdefinierte Cache-Knoten","custom_nodes_hint":"Benutzerdefinierte Cache-Knoten werden nach dem Neustart der App angewendet","wait_for_reboot":"Warten auf Neustart...({seconds}s)","reboot_now":"Jetzt neustarten","reboot_later":"Später neustarten","peer_list":"Direkte Knoten","server":"Knoten-URL","peer":"Peer","peer_id":"Knoten-ID","connection":"Verbindung","data_source":"Datenquelle","sync":"Synchronisieren","syncing":"Synchronisierung","sync_completed":"Synchronisierung abgeschlossen","got_all_post":"Du hast bereits alle Beiträge erhalten","placeholder_channel_title":"Ihr Kanalname","placeholder_channel_desc":"Beschreibung zu diesem Kanal","placeholder_post_title":"Filmname (Jahr)","placeholder_post_desc":"Beschreibung zu diesem Film","private_channel":"Privater Kanal","creator_blocked":"Ersteller blockiert","go_to_library":"Geh zur Bibliothek?","go_to_library_channel_msg":"Möchten Sie zum Bibliothekskanal {0} gehen?","magnet_does_not_have_name":"Dieser Magnet:? Wenn die URL keinen Namen hat, müssen Sie zuerst einen Beitragstitel hinzufügen.","no_available_post":"Kein Beitrag verfügbar","following_channel_no_post":"Auf allen Ihren folgenden Kanälen sind keine Beiträge verfügbar. Dies kann durch einen Netzwerkfehler verursacht werden. Wenn Sie einigen Kanälen bereits gefolgt sind, werden die Beiträge möglicherweise später geladen.","share_to_library":"In der Bibliothek teilen","quick_start":"Schnellstart","quick_start_desc":"Beginnen Sie mit der Erstellung eines Beitrags mit einer Aufgabe oder Datei","select_file":"Datei aussuchen...","select_folder":"Ordner auswählen...","post_options":"Post-Optionen","channel_options":"Kanaloptionen","create_new_channel":"Neuen Kanal erstellen","use_existed_channel":"Vorhandenen Kanal nutzen","select_existed_channel":"Vorhandenen Kanal auswählen","uploaded_by":"{title} hochgeladen von {name}","created_by":"{title} erstellt von {name}","creating_new_channel":"Neuen Kanal erstellen...","created_new_channel":"Neuer Kanal erstellt","creating_new_post":"Neuer Beitrag wird erstellt...","created_new_post":"Neuer Beitrag erstellt","create_new_post":"Neuen Beitrag erstellen","quick_start_timeout":"{0} Zeitüberschreitung. Dies kann durch einen Netzwerkfehler verursacht werden. Bitte versuchen Sie es später noch einmal.","file_too_large":"Datei zu groß","file_too_large_msg":"Diese Datei ist größer als 4 GB ({size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie fortfahren?","resolving_folder_files":"Ordnerdateien werden aufgelöst...","folder_too_large":"Ordner zu groß","folder_too_large_msg":"Die Dateien in diesem Ordner sind größer als 4 GB (insgesamt {size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie hochladen möchten?","creating_new_task":"Neue Aufgabe erstellen...","cannot_create_task":"Aufgabe kann nicht erstellt werden","cannot_create_task_msg":"Dies kann durch einen Fehler verursacht werden. Wenn die Aufgabe korrekt erstellt wurde, können Sie die Aufgabenliste später überprüfen.","cannot_get_task_name":"Der Aufgabenname kann nicht abgerufen werden. Sie müssen zuerst eines eingeben.","remove_old_task":"Alte Aufgabe entfernen","remove_old_task_desc":"Im Webmodus kann jeweils nur eine Aufgabe erstellt werden. Möchten Sie die alte Aufgabe entfernen?","subtitle_list":"Untertitelliste","optional":"Optional","with_subtitle":"Mit {language} Untertiteln","maximumSubtitleNum_limit":"Die Anzahl der Untertitel hat ihr Maximum erreicht","add_subtitle_url":"Untertitel-Download-Link hinzufügen","cannot_add_subtitle":"Untertitel konnten nicht hinzugefügt werden","cannot_add_subtitle_msg":"Untertitelsprache nicht ausgewählt oder ungültiger Download-Link.","support_subtitle_type":"Es werden nur Untertitel im SRT- und VTT-Format unterstützt.","recommend_opensubtitles":"Es wird empfohlen, den Untertitel-Download-Link oder die Untertitel-ID unter www.opensubtitles.org zu verwenden.","take_down":"Notieren","serious_violation":"Schwerer Verstoß","copyright_disputes":"Urheberrechtsstreitigkeiten","adults_only":"Nur für Erwachsene","takedown_reason":"Grund für die Deaktivierung","takedown_mode":"Takedown-Modus","admins":"Admins","takedown_user":"Deaktiviere diesen Ersteller","takedown_channel":"Deaktiviere diesen Kanal","takedown_post":"Lösche diesen Beitrag","select_takedown_reason":"Wählen Sie den Deaktivierungsgrund aus","takedown_invalid_reason":"Ungültiger Deaktivierungsgrund","takedown_invalid_user_id":"Ungültige Benutzer-Id. Die ID sollte 87 Zeichen umfassen","takedown_invalid_channel_id":"Ungültige Kanal-ID. Die ID sollte 20 Zeichen umfassen","takedown_invalid_post_id":"Ungültige Beitrags-ID. Die ID sollte 20 Zeichen umfassen","takedown_management":"Nehmen Sie das Management ab","users":"Benutzer","channels":"Kanäle","posts":"Beiträge","you":"Du","preset":"Voreingestellt","admin":"Administrator","committee":"Ausschuss","about_takedown_mode":"Über den Takedown-Modus:\\nVoreinstellung: Im Github-Repository konfiguriert. Alle werden aus der Bibliothek entfernt.\\nAdmin: Jeder Admin, für den er stimmt, wird entfernt.\\nAusschuss: Mindestens die Hälfte der Admins, die dafür stimmen, werden abgesetzt.","cannot_edit_preset":"Sie können diese Zeile nicht bearbeiten, da es sich um eine voreingestellte Zeile handelt","cannot_edit_not_vote":"Sie können diese Zeile nicht bearbeiten, da Sie nicht dafür gestimmt haben","remove_vote":"Entferne deine Stimme","post_preload_failed":"Dieser Beitrag konnte nicht vorab geladen werden. Der Download-Link ist möglicherweise veraltet, sodass dieser Beitrag nicht sofort abgespielt werden kann.","about_cache_node":"Über den Cache-Knoten","edit_cache_node":"Cache-Knoten bearbeiten","create_cache_node":"Cache-Knoten erstellen","about_cache_node_desc":"${displayName} verwendet den Gun-Server als Cache-Knoten. Sie können benutzerdefinierte Knoten vorab bearbeiten","learn_how_to_deploy_gun":"Erfahren Sie, wie Sie Ihren eigenen Waffenserver bereitstellen","repeat_add":"Die Aufgabe wurde hinzugefügt. Bitte fügen Sie sie nicht erneut hinzu","upload":"Hochladen","download":"Herunterladen","delete":"Löschen","delete_task":"Aufgabe löschen","delete_confirm_message":"Diese Aufgabe löschen? Dies ist unwiderruflich","also_delete_files":"Löschen Sie auch Dateien","default_delete_files":"Standardmäßig werden heruntergeladene Dateien nach der Entfernungsaufgabe gelöscht","not_now":"Nicht jetzt","delete_autoupload_confirm":"Diese Aufgabe enthält eine Datei, die Sie im Verzeichnis für den automatischen Upload abgelegt haben. Wenn Sie diese Aufgabe löschen, wird auch die Datei gelöscht.","delete_anyway":"Trotzdem löschen","upload_too_many_files":"Laden Sie zu viele Dateien hoch","ask_if_unlimit_upload_amount":"Das Auto-Upload-Verzeichnis enthält zu viele Dateien. Möchten Sie die Begrenzung der Upload-Menge deaktivieren? *Dies kann zu Leistungsproblemen führen","disable_limitation":"Begrenzung deaktivieren","not_length":"Der Betrieb mehrerer Dateien wird derzeit nicht unterstützt. Bitte kooperieren Sie","download_torrent":"Download-Datei","upload_torrent":"Datei hochladen","files":"Dateien","file":"Datei","folder":"Ordner","start_all":"Beginnen Sie alles","pause_all":"Pause all","remove_all":"Alles entfernen","upload_all":"Alles hochladen","clear_history":"Klare Geschichte","pause_all_finish_payments":"Damit sind alle Zahlungen abgeschlossen.","accelerating":"Beschleunigen","link_task":"Link-Aufgabe","torrent_task":"Dateiaufgabe","ok":"OK","cancel":"Stornieren","download_directory_position":"Verzeichnisposition herunterladen","torrent_file":"Aufgabendatei","magnetic_link_incorrect":"Das Linkformat ist falsch","delete_fail":"Fehler beim Löschen","pause":"Pause","paused":"Angehalten","stop_torrent":"Stoppen","seed":"Samen","resume":"Wieder aufnehmen","downloading":"wird heruntergeladen","downloaded":"Heruntergeladen","uploading":"Hochladen","auto_uploading":"Automatisches Hochladen","uploaded":"Hochgeladen","pending":"Warten auf andere Aufgaben","verifying":"Verifizieren","waiting_for_verify":"Warten auf Bestätigung","seeding":"Aussaat","completed":"Vollendet","status":"Status","task_name":"Aufgabennname","size":"Größe","progress":"Fortschritt","sort":"Sortieren","ascending":"Aufsteigend","descending":"Absteigend","file_loading":"Datei wird geladen...","loading":"Wird geladen","unknown_status":"Unbekannt","play_while_downloading":"Spielen...","upload_or_play":"Hochladen / Abspielen","play":"Spielen","ask_if_upload_file":"Datei hochladen?","ask_if_upload_or_play":"Datei hochladen oder abspielen?","torrent_error":"Fehler beim Hinzufügen einer Aufgabe:","no_peers":"Versuchen Sie es mehr als {0} Mal erneut und es ist kein Peer verfügbar","torrent_exists":"Aufgabe ist bereits vorhanden.","show_origin_torrent":"Holen Sie sich die ursprüngliche Aufgabendatei oder URL","show_directory":"Öffnen Sie das Verzeichnis dieses Torrents","task_num":"Aufgaben","total_upload_speed":"Upload-Geschwindigkeit","total_download_speed":"Download-Geschwindigkeit","path_missing":"Fehler: Torrent-Pfad konnte nicht gefunden werden","origin_not_found":"Informationen zur Ursprungsaufgabe können nicht gefunden werden.","text_copied":"Die Magnum-URL wird in Ihre Zwischenablage kopiert","copy_magnet_uri":"Magnet kopieren:? URI","copy_download_uri":"Download-URI kopieren","copy_share_uri":"Freigabe-URI kopieren","uri_copied":"URI wurde erfolgreich in Ihre Zwischenablage kopiert","uri_copy_failed":"URI konnte nicht kopiert werden","more":"Mehr...","toggle_list_mode":"Listenmodus umschalten","comment":"Kommentar","operations":"Operationen","open_directory":"Verzeichnis öffnen","no_downloading_task":"Keine Download-Aufgabe","remove_all_downloading_tasks":"Alle Download-Aufgaben entfernen?","remove_all_upload_tasks":"Alle Upload-Aufgaben entfernen?","remove_autoupload_files":"Entfernen Sie automatisch hochgeladene Dateien","remove_all_history":"Gesamten Verlauf entfernen?","remaining":"Übrig","created_time":"Zeit geschaffen","used_time":"Benötigte Zeit","completed_time":"Abgeschlossene Zeit","yesterday":"Gestern","before_yesterday":"{empty}","earlier":"Früher","miss_file":"Einige Dateien fehlen","delete_miss_file_task":"In {0} fehlen Fome-Dateien.","common_peer":"Gemeinsamer Peer","ab_peer":"${displayName} Peer","ab_peer_verified":"Verifizierter ${displayName}-Peer","ab_peer_available":"${displayName} Peer(s) verfügbar","alphabiz_accelerating":"${displayName} beschleunigt","income":"Einkommen","income_info":"Einkommen (heute/gesamt)","total_income_info":"Einkommen: {0}(heute) / {1}(gesamt)","login_to_see_income":"Melden Sie sich an, um die Einkommensstatistik anzuzeigen","credit_cost":"Kreditkosten","downloaded_by_payment":"Von Payments heruntergeladen","file_not_found":"Diese Datei kann nicht lokal gefunden werden","no_task":"Nicht fragen","no_matched_task":"Keine passende Aufgabe","space_not_enough":"Speicherplatz reicht nicht aus","need_more_space":"Benötigt {0} mehr Speicherplatz, aber auf der aktuellen Festplatte sind {1} frei ({2} reserviert). Aufgaben werden angehalten. Das Vorladen der Bibliothek ist deaktiviert. Sie können es unter [Einstellungen – Erweitert] wieder aktivieren.","seeders":"Sämaschinen","last_update":"Letztes Update","connecting":"Verbinden","connected":"In Verbindung gebracht","request_timed_out":"Zeitüberschreitung der Anforderung","connection_failed":"Verbindung fehlgeschlagen","invalid_download_url":"Ungültige Download-URL","download_link":"Download-Link","empty_files":"Keine Dateien im Verzeichnis","duplicate_task":"Doppelte Aufgabe","duplicate_tracker":"Doppelter Tracker","this_task_not_ready":"Diese Aufgabe ist noch nicht fertig. Wenn Sie diese Aufgabe anhalten, wird sie direkt entfernt.","some_task_not_ready":"Einige Aufgaben sind noch nicht fertig. Wenn Sie diese Aufgaben pausieren, werden sie direkt entfernt.","failed_to_delete_files":"Dateien konnten nicht gelöscht werden","failed_to_delete_files_desc":"Einige Dateien der Aufgabe konnten nicht gelöscht werden. Möglicherweise müssen Sie sie manuell löschen","unknown_error":"Unbekannter Fehler: {0}","more_files_are_not_shown":"({0} weitere Dateien werden aus Leistungsgründen nicht angezeigt)","no_available_file":"Keine verfügbare Datei. Bitte warten Sie, bis die Aufgabe fertig ist.","service_worker_error":"ServiceWorker kann nicht zum Spielen geladen werden. Möglicherweise unterstützt Ihr Browser diese Funktion nicht oder der ServiceWorker ist nicht aktiviert. Möglicherweise müssen Sie diese Seite neu laden und es erneut versuchen.","add_task_first":"Sie müssen zuerst eine Aufgabe hinzufügen.","player_task_time":"Der Spieler braucht zu viele Sekunden, um sich auf das Spiel vorzubereiten. Möglicherweise stimmt etwas mit der Aufgabe nicht.","web_mode_hint":"Der Webmodus von ${displayName} unterstützt nur WebRTC-Peers. Für ein optimales Erlebnis laden Sie bitte die Desktop-App ${displayName} herunter.","web_mode_task_hint":"Klicken Sie auf die Schaltflächen unten, um eine Aufgabe hinzuzufügen. Sie können jeweils nur eine Aufgabe hinzufügen.","save_to_local":"Lokal speichern","save_as_zip":"Als ZIP speichern","creating_save_file":"Speicherdatei wird erstellt...","upload_as_one_directory":"Als ein Verzeichnis hochladen","upload_as_single_files":"Als einzelne Dateien hochladen","web_mode_upload_single":"Sie können im Webmodus nur eine einzelne Datei hochladen","download_success":"Erfolgreich herunterladen","download_fail":"Herunterladen fehlgeschlagen","wait_for_downloaded_to_share":"Bitte warten Sie, bis die Aufgabe heruntergeladen wurde, bevor Sie sie freigeben.","download_with_cellular":"Laden Sie Aufgaben per Mobilfunk herunter","download_with_cellular_desc":"Sie verwenden ein Mobilfunknetz. Für Download-Aufgaben über das Mobilfunknetz können bei Ihrem Mobilfunkanbieter zusätzliche Gebühren anfallen.","download_with_cellular_confirm":"Immer noch mit dem Mobilfunk herunterladen","language":"Sprache","appearance":"Aussehen","darkModeSystem":"System","darkModeLight":"Licht","darkModeDark":"Dunkel","basic_setting":"Basic","hideMenu":"App-Menü ausblenden (nur Windows und Linux)","autoHide":"Fenster automatisch ausblenden","autoStart":"Beim Login öffnen","restore":"Behalten Sie Größe und Position des Fensters beim Verlassen bei","autoStartUnfinished":"Alle nicht erledigten Aufgaben automatisch fortsetzen","default_download_path":"Standardpfad","download_directory":"Verzeichnis herunterladen","upload_directory":"Verzeichnis hochladen","enable_auto_upload":"Aktivieren Sie den automatischen Upload","unlimit_upload_amount":"Unbegrenzte Upload-Menge","unlimit_upload_warning":"Erlauben Sie das Hochladen einer großen Anzahl von Dateien. Dies kann zu Leistungsproblemen führen","start":"Start-up","transport_setting":"Übertragung","upload_limit":"Upload-Limit","download_limit":"Download-Limit","payed_user_share_rate":"Bezahlter Benutzeranteilspreis","unlimited":"Unbegrenzt","limit_input_error":"Die Grenzwertzahl sollte positiv sein","BT_setting":"Aufgabeneinstellungen","saveLinkSeed":"Link als Aufgabendatei speichern","autoDownload":"Link und Inhalt automatisch herunterladen","continuousSeeding":"Setzen Sie die Aussaat fort, bis Sie sie manuell stoppen","seedSharingRate":"Saatverhältnis","seedTime":"Saatzeit (Minuten)","task_manage":"Aufgabenmanagement","maximumDownloadNum":"Maximal aktive Aufgaben","maximumConnectionsNum":"Maximale Verbindung pro Server","range_error":"Der Bereich sollte zwischen {0} und {1} liegen","random":"zufällig","breakpointContinuation":"Weitermachen","automaticSkip":"Download nach dem Hinzufügen der Aufgabe automatisch anzeigen","afterNotification":"Benachrichtigung nach Abschluss des Downloads","deleteConfirm":"Vor dem Löschen der Aufgabe ist keine Bestätigung erforderlich","submit":"Speichern und anwenden","discard":"Verwerfen","reset":"Zurücksetzen","reset_all_settings":"Alle Einstellungen zurücksetzen?","preferences_resetted":"Einstellungen zurückgesetzt","traditional_chinese":"traditionelles Chinesisch","japanese":"japanisch","english":"Englisch","chinese":"Vereinfachtes Chinesisch","advancedSettings":"Fortschrittlich","autoUpdate":"Auto-Update","autoCheckUpdate":"Automatisch nach Updates suchen","proxy":"Stellvertreter","useProxyService":"Proxy aktivieren","trackerService":"Tracker-Server","recommendUse":"Empfohlen","autoUpdateTrackerServiceList":"Aktualisieren Sie die Tracker-Liste jeden Tag automatisch","manualUpdateTracker":"Manuelles Update","manualUpdateSuccess":"Tracker-Server erfolgreich aktualisieren","manualUpdateFail":"Aktualisierung fehlgeschlagen von:","listenPort":"Hören Sie die Häfen","BTlistenPort":"Datenübertragungsport","DHTlistenPort":"Verteilter Hash-Port","protocols":"Kompatible Protokolle","setDefaultClientForFollowingProtocols":"Als Standard-Client für die folgenden Protokolle festlegen","magnetUrl":"Magnet","video_file":"Videodatei","audio_file":"Audiodatei","security":"Sicherheit","impersonateUserAgent":"Schein-Benutzeragent","RPCauthorizationkey":"RPC-Geheimnis","viewDocument":"Sehen Sie sich das RPC Secret-Handbuch an","developer":"Entwickler","applicationLogPath":"App-Protokollpfad","downloadSessionPath":"Sitzungspfad herunterladen","resetDownloadSessionRecord":"Download-Sitzung zurücksetzen","restoreInitialSettings":"Werkseinstellungen zurückgesetzt","preferences_set_successfully":"Einstellungen erfolgreich gespeichert!","preferences_set_fail":"Einstellungen speichern schlägt fehl!","change_not_save":"Änderungen werden nicht gespeichert","discard_all_changes":"Alle Änderungen verwerfen und gehen?","stay_in_page":"Bleiben Sie auf der Seite","disk_usage":"Festplattennutzung","pause_if_less_space":"Pausieren und benachrichtigen, wenn der Speicherplatz weniger als (MB) beträgt","default_video_player":"Standard-Videoplayer","video_cache_time":"Stream-Play-Cache","minutes":"Protokoll","system_default":"Systemfehler","media_player":"Media Player","library_film_rate":"Verfügbarer Filmpreis","library_show_explore":"Seite [Erkunden] anzeigen","library_setting":"Bibliothekseinstellung","library_sync_setting":"Einstellung für die Synchronisierung der Bibliothek","keychain_sync_status":"Synchronisierungsstatus des Schlüsselbunds","sync_with_aws":"Schlüsselbund mit Amazon Web Services synchronisieren","backup_to_local":"Backup in lokaler Datei","enable_sync_with_aws":"Aktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws":"Deaktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws_desc":"Dadurch wird der gespeicherte Schlüssel auf dem Server entfernt. Bitte stellen Sie sicher, dass Sie Ihren Schlüssel bereits exportiert haben.","input_independent_password":"Geben Sie ein unabhängiges Passwort ein","change_independent_password":"Unabhängiges Passwort ändern","password_error":"Passwort-Fehler","password_invalid":"Passwort ungültig","key_existed":"Schlüssel vorhanden","key_not_found":"Schlüssel nicht gefunden","library_recommend":"Bibliothek empfehlen","show_all_channels":"Alle Kanäle auf der Empfehlungsseite der Bibliothek anzeigen","not_logged_in":"Nicht eingeloggt","login_to_continue":"Melden Sie sich an, um fortzufahren","mnemonic_code":"Mnemonischer Code","wordlist":"Wortliste","restore_code":"Aus Code wiederherstellen","generate_code":"Code generieren","export_mnemonic_code":"Mnemonischen Code exportieren","import_mnemonic_code":"Mnemonischen Code importieren","print":"Drucken","save_as_txt":"Als TXT speichern","save_as_pdf":"Als PDF speichern","from_file":"Aus Datei","not_valid_mnemonic_code":"Dies ist kein gültiger mnemonischer Code","cannot_parse_code_as_key":"Dieser mnemonische Code kann nicht als Bibliotheksschlüssel analysiert werden","import_key_hint":"Möchten Sie diesen Schlüssel wirklich importieren? Dadurch wird Ihr alter Schlüssel in der Bibliothek wiederhergestellt.","import_key_confirm":"Ja, importieren Sie es.","library_preload":"Laden Sie Aufgaben aus der Bibliothek vorab","show_preload":"Vorladeaufgaben anzeigen","set_download":"Download-Verzeichnis festlegen","set_download_desc":"Für die macOS App Store-Version befindet sich das Standard-Download-Verzeichnis in der Sandbox der App und wird nach der Deinstallation der App gelöscht. Wenn Sie Ihre Downloaddateien behalten möchten, müssen Sie manuell ein anderes Downloadverzeichnis auswählen.","home":"Heim","home_caption":"Download/Upload und Mediendateien","library":"Bibliothek","library_caption":"Entdecken Sie Medienressourcen","player":"Spieler","player_caption":"Media Player","credits":"Credits","credits_caption":"Überprüfen Sie den Kontostand","account":"Konto","account_caption":"Anmelden/Registrieren/Verwaltung","settings":"Einstellungen","settings_caption":"Einstellungen für App, Player, Konto","development":"Entwicklung","development_caption":"Entwicklermodus für den internen Gebrauch","basic":"Basic","basic_caption":"Grundeinstellungen","advanced":"Fortschrittlich","advanced_caption":"Erweiterte Einstellungen","blockchain":"Geldbörse","blockchain_caption":"${displayName} Dezentrale Geldbörse","internal_notice":"Interne Freigabemitteilung","release_notes":"Versionshinweise","terms_and_conditions":"Geschäftsbedingungen","license_and_listen_notices":"Lizenz- und Listen-Open-Source-Hinweise","close":"Schließen","success":"Erfolg","fail":"Scheitern","account_email_invalid_address":"Ungültige E-Mail-Adresse","account_email_invalid_domain":"Ungültige E-Mail-Domäne","account_email_unknown_status":"Unbekannter E-Mail-Zustellungsstatus","account_email_unavailable_address":"Nicht verfügbare E-Mail-Adresse","account_email_suppressed_address":"Unterdrückte E-Mail-Adresse","account_loading":"Wird geladen...","account_is_required":"ist erforderlich","account_sign_in_your_account":"anmelden","account_username":"Nutzername","account_username_email_phone":"Telefonnummer oder E-Mail","account_password":"Passwort","account_new_password":"Neues Kennwort","account_re_enter_password":"Kennwort erneut eingeben","account_password_not_equal":"Zwei Passwörter sind nicht gleich","account_new_password_same":"Das Passwort ist dasselbe wie das Originalpasswort","account_forgot_your_password":"Haben Sie Ihr Passwort vergessen?","account_reset_password":"Passwort zurücksetzen","account_sign_in":"anmelden","account_signed_in":"Angemeldet","account_sign_up":"Melden Sie sich an","account_find_your_account":"Finde deinen Account","account_enter_your_username":"Geben Sie Ihre Telefonnummer oder E-Mail ein","account_search":"Suchen","account_email_sent_tip":"Eine E-Mail mit einem Bestätigungscode wurde an Ihre E-Mail-Adresse gesendet:","account_phone_sent_tip":"Eine SMS mit einem Bestätigungscode wurde an Ihr Telefon gesendet:","account_email_phone_sent_tip":"E-Mail und SMS mit Bestätigungscode wurden an Ihre E-Mail-Adresse bzw. Ihr Telefon gesendet:","account_software_token_tip":"MFA ist für Ihr Konto aktiviert. Um die Anmeldung abzuschließen, schalten Sie bitte Ihr Gerät ein oder zeigen Sie es an und geben Sie den TOTP ein","account_reset_your_password":"Setze dein Passwort zurück","account_verification_code":"Bestätigungscode","account_resend_code":"Code erneut senden","account_code_has_been_resent":"Der Bestätigungscode wurde erneut gesendet","account_password_has_been_reset":"Das Passwort wurde zurückgesetzt","account_submit":"Einreichen","account_sign_up_your_account":"Registrieren Sie Ihr Konto","account_fill_required_fields":"Füllen Sie unten die erforderlichen Felder aus.","account_fill_optional_fields":"Füllen Sie die optionalen Felder unten aus.","account_email":"Email","account_invitation":"Einladung","account_invitation_code":"Einladungscode","account_i_accept":"Ich akzeptiere","account_license_terms":"die Lizenz und die Bedingungen","account_next":"Nächste","account_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren.","account_verify_fill_optional_fields":"Überprüfen Sie die optionalen Felder und füllen Sie sie aus.","account_nickname":"Spitzname","account_gender":"Geschlecht","account_male":"Männlich","account_female":"Weiblich","account_not_say":"Nicht sagen","account_birthday":"Geburtstag","account_phone_number":"Telefonnummer","account_locale":"Lokal","account_tip_verified":"Verifiziert, Anmelden...","account_verified":"verifiziert","account_unverified":"unbestätigt","account_signed_up":"Angemeldet","account_verify_your_identity":"Bestätigen Sie Ihre Identität","account_finish":"Beenden","account_signed_out":"Abgemeldet","account_change_password":"Kennwort ändern","account_change_email":"Ändern Sie die E-Mail","account_change_phone_number":"Telefonnummer ändern","account_sign_out":"Abmelden","account_current_password":"Aktuelles Passwort","account_re_enter_new_password":"neues Passwort erneut eingeben","account_personal_information":"Information","account_edit":"bearbeiten","account_reset":"zurücksetzen","account_greeting":"Hallo,","account_cancel":"Stornieren","account_change":"ändern","account_not_set":"nicht eingestellt","account_setting":"Einstellung","account_copy_code":"Kopieren Sie den Code","account_account_setting":"Konto","account_task_page":"Kreditaufgabe","account_setting_caption":"Passwort ändern / Informationen bearbeiten","account_security":"Sicherheit","account_want_to_join":"Möchtest du mitmachen?","account_sign_in_now":"anmelden","account_changed":"Geändert","account_clipboard_with_invitation_code":"Einladungscode kopiert","account_clipboard_with_code":"Der Code kopiert","account_invitation_code_dialog_tip":"Sie senden Ihrem Freund eine E-Mail oder SMS mit einem Einladungscode:","account_available":"verfügbar","account_invited":"eingeladen","account_used":"gebraucht","account_invitation_code_sent":"Der Einladungscode wurde gesendet","account_invitation_channel_required":"Füllen Sie mindestens einen Einladungskanal aus","account_no_verification_code":"Sie können den Bestätigungscode nicht erhalten?","account_no_phone_number":"Keine Telefonnummer?","account_sign_up_by_email":"Melden Sie sich per E-Mail an","account_no_email":"Keine Email?","account_sign_up_by_phone_number":"Melden Sie sich per Telefonnummer an","account_no_totp":"Nicht TOTP?","account_tip_no_totp":"Wenn kein TOTP vorhanden ist, richten Sie bitte zuerst TOTP ein","account_setup_totp":"TOTP einrichten","account_contact_information":"Kontaktinformationen","account_delete_account":"Konto löschen","account_deleted":"Gelöscht","account_can_not_mfa":"MFA in Schwierigkeiten?","account_set_mfa_type":"MFA konfigurieren","account_disable_mfa":"Deaktivieren Sie MFA","account_disabled_mfa":"Deaktivierte MFA","account_sms_mfa":"SMS-MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Nicht empfohlen","account_oauth_sign_in_with":"Melden Sie sich mit {provider} an","account_sign_in_failed":"Anmeldung fehlgeschlagen","account_tip_oath_sign_up":"Die E-Mail-Adresse, die dem aktuellen {provider}-Konto entspricht: {email} hat noch kein Konto erstellt","account_tip_confirm_delete_account":"Geben Sie das Passwort des aktuellen Kontos ein, um zu bestätigen, dass Sie das aktuelle Konto löschen möchten. (Gelöschte Konten können nicht wiederhergestellt werden.)","account_tip_config_mfa":"Als sekundäre Authentifizierung können Sie SMS oder ein zeitbasiertes Einmalpasswort (TOTP) verwenden","account_error_can_not_enable_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um MFA zu aktivieren","account_tip_can_not_enable_sms_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um SMS MFA zu aktivieren","account_tip_can_not_enable_totp_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um TOTP MFA zu aktivieren","account_tip_setup_totp":"Verwenden Sie Apps wie Authenticator, um den untenstehenden QR-Code zu scannen, oder kopieren Sie den Code manuell, um ein Sicherheitstoken hinzuzufügen","account_tip_verify_totp":"Überprüfen Sie Ihr TOTP","account_link_your_social_account":"Verknüpfen Sie Ihr soziales Konto","account_unlink_your_social_account":"Soziales Konto entbinden","account_tip_confirm_link":"Sind Sie sicher, dass Sie das Girokonto mit Ihrem {provider}-Konto verknüpfen möchten?","account_tip_confirm_unlink":"Sind Sie sicher, Ihr gebundenes {provider}-Konto zu kündigen?","account_tip_linking":"Bindung...","account_tip_unlinking":"Entbindung...","account_linked":"Gebunden","account_unlinked":"Ungebunden","account_error_can_not_link_to_the_linked_account":"Das aktuelle soziale Konto ist an ein anderes Konto gebunden","account_error_can_not_link_to_the_mismatched_email":"Das aktuelle Konto und die E-Mail-Adresse des sozialen Kontos stimmen nicht überein","account_error_can_not_link_before_email_verified":"Das soziale Konto kann nicht verknüpft werden, da das aktuelle Konto nicht an eine verifizierte E-Mail-Adresse gebunden ist","account_tip_confirm_verify_email_phone":"Soll ein Bestätigungscode an die E-Mail-Adresse und Telefonnummer des aktuellen Kontos gesendet werden, um Ihre Identität zu überprüfen?","account_tip_confirm_verify_phone":"Soll ein Bestätigungscode an die aktuelle Telefonnummer gesendet werden, um Ihre Identität zu überprüfen?","account_error_1_message_60_seconds":"Es kann nur alle 60 Sekunden eine SMS oder E-Mail gesendet werden. Warten Sie weitere {delta} Sekunden","account_error_10_messages_per_day":"Jedes Mobiltelefon oder jede E-Mail kann innerhalb von 24 Stunden nur 10 Nachrichten senden","account_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","Network Error":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","account_error_user_not_exist":"Benutzer existiert nicht","account_error_incorrect_username_or_password":"Falscher Benutzername oder Passwort","account_error_incorrect_original_password":"Falsches Originalpasswort","account_error_incorrect_password":"Falsches Passwort","account_error_username_not_found":"Benutzername nicht gefunden","account_error_can_not_reset_for_no_verified":"Das Passwort für das nicht bestätigte Konto kann nicht zurückgesetzt werden","account_error_invalid_verification_code":"Falscher Bestätigungscode, bitte versuchen Sie es erneut","account_error_expired_verification_code":"Der Bestätigungscode ist abgelaufen. Bitte versuchen Sie es erneut","account_error_password_not_long_enough":"Das Passwort ist nicht lang genug","account_error_attempt_limit_exceeded":"Versuchslimit überschritten. Bitte versuchen Sie es später noch einmal.","account_error_password_attempts_exceeded":"Anzahl der Passwortversuche überschritten.","account_error_invalid_phone_number_format":"Ungültiges Telefonnummernformat","account_error_no_cell_phone_prefix":"Bitte wählen Sie die Vorwahl für die Telefonnummer aus","account_error_username_already_exists":"Der Benutzername existiert bereits","account_error_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren","account_error_inactive_code":"Der Einladungscode ist kein aktivierter Code","account_error_non_existent_code":"Der Einladungscode ist nicht vorhanden","account_error_unexpected":"Unerwarteter Fehler","account_error_can_not_change_email_before_phone_bound":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Telefonnummer gebunden ist","account_error_can_not_change_email_before_unbound_social_account":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Bindung des sozialen Kontos aufgehoben wurde","account_error_can_not_change_phone_before_email_bound":"Die Telefonnummer kann nicht geändert werden, bevor die E-Mail gebunden ist","account_error_can_not_change_email_phone_with_mfa_enabled":"E-Mail-Adresse oder Mobiltelefonnummer können vor der Deaktivierung von MFA nicht geändert werden","account_error_not_supported_yet":"Derzeit nicht unterstützt","account_error_same_email":"Die neue E-Mail-Adresse darf nicht mit der ursprünglichen E-Mail-Adresse identisch sein","account_error_same_phone":"Die neue Telefonnummer darf nicht mit der ursprünglichen Telefonnummer identisch sein","account_error_email_not_exists":"Diese E-Mail Adresse existiert nicht","account_error_email_already_exists":"Ein Konto mit der angegebenen E-Mail-Adresse ist bereits vorhanden.","account_error_phone_already_exists":"Es existiert bereits ein Konto mit der angegebenen Telefonnummer.","account_error_mfa_token_mismatch":"Nichtübereinstimmung des Software-Token-Codes","account_error_recaptcha_not_loaded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_recaptcha_validation_failed":"Die ReCAPTCHA-Validierung ist fehlgeschlagen. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_sign_in_in_progress":"Ausstehender Anmeldeversuch, bereits im Gange","account_field_range":"Beschränken Sie die Eingabe auf {0}-{1} Zeichen","account_field_only_alphanumeric":"Unterstützt nur alphanumerische Zeichen","account_field_only_alphanumeric_and_symbol":"Unterstützt nur alphanumerische Zeichen und Symbole","account_field_only_chinese_alphanumeric_space_underline":"Unterstützt nur alphanumerische Zeichen, Leerzeichen und Unterstriche","account_field_prefix_without_number_space":"Das erste Zeichen darf weder eine Zahl noch ein Leerzeichen sein","account_field_suffix_without_space":"Darf nicht mit einem Leerzeichen enden","account_field_without_repeat_space":"Es können nicht mehrere Leerzeichen hintereinander verwendet werden","account_field_can_not_only_alphanumeric":"Sie können nicht nur Buchstaben oder Zahlen verwenden","account_field_must_have_number_characters":"Muss aus Zahlenzeichen bestehen","account_field_verification_code":"Der Bestätigungscode muss sechsstellig sein","account_field_invitation_code":"Der Einladungscode muss alphanumerisch sein","account_field_phone_number":"Ungültiges Telefonnummernformat","account_invalid_email_format":"ungültiges Email-Format","account_sign_out_confirm":"Möchten Sie sich wirklich abmelden? Dadurch werden alle Aufgaben gestoppt.","account_sign_out_anyway":"Melde dich trotzdem ab","account_signing_out":"Abmelden...","account_request_save_settings":"Einstellungen werden nicht gespeichert. Sie müssen die Änderungen speichern, bevor Sie sich abmelden.","pay":"Zahlen","pay_with_credit":"Bezahlen Sie für die Download-Beschleunigung. Benötigt etwa 0$$$ Guthaben","pay_with_credit_payed":"Beschleunigen. Benötigt noch ca. {0} Guthaben","create_payment":"Zahlung erstellen","pay_target":"Ziel","pay_for_torrent":"Zahlen Sie für {0}","your_subid":"Ihre Sub-ID","your_credits":"Ihre Credits","pay_point_for_data":"Zahlen Sie {0} Punkte für {1} Daten","auto_renew":"Aktivieren Sie die automatische Verlängerung","transaction_details":"Transaktionsdetails","transaction_id":"Ausweis","transaction_payer":"Zahler","transaction_payee":"Zahlungsempfänger","transaction_category":"Kategorie","transaction_changed_amount":"Geänderter Betrag","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Erstellungszeitpunkt","receipt_code":"Empfangscode","transfer_amount":"Überweisungsbetrag","code_the_receipt_code":"Kopieren Sie den untenstehenden Belegcode an den Zahler","fill_the_receipt_code":"Überweisung durch Eingabe des vom Zahlungsempfänger bereitgestellten Zahlungscodes","expense":"Kosten","copied":"Kopiert","transfer":"Überweisen","receive":"Erhalten","copy":"Kopieren","withdraw_fund":"Geld abheben","category_paydata_payer":"Datenkosten","category_paydata_payee":"Dateneinkommen","category_transfer":"Überweisen","category_bonus":"Bonus","category_recharge":"Aufladen","status_pending":"ausstehend","status_completed":"vollendet","status_finish":"beenden","status_failed":"fehlgeschlagen","tip_invalid_receiver":"Ungültiger Empfängercode","tip_invalid_amount":"Der Kreditbetrag sollte eine Gleitkommazahl im Bereich von 0 bis 1.000 sein (die Mindestgenauigkeit beträgt 0,001).","credit_get_more":"Holen Sie sich mehr Credits","credit_no_data":"Keine Daten verfügbar","credit_loading":"Wird geladen...","credit_not_enough_amount":"Nicht genügend Guthaben","credit_amount_not_enough":"Nicht genügend Guthaben","credit_payee_not_exist":"Zahlungsempfänger existiert nicht","credit_invalid_amount":"Ungültiger Kreditbetrag","credit_can_not_transfer_to_yourself":"Kann nicht auf sich selbst übertragen werden","credit_latest":"Neueste","credit_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","add_subtitles":"Untertitel hinzufügen","open_file":"Datei öffnen...","advanced_options":"Erweiterte Optionen","title":"Titel","location":"Standort","subtitle_file":"Untertiteldatei","unsupported_subtitle_type":"Der Dateityp {0} ist kein unterstützter Untertiteltyp","not_default_player":"Der Standard-Videoplayer ist nicht eingestellt","this_is_an_audio_file":"Dies ist eine Audiodatei","the_added_subtitle_already_exists":"Der hinzugefügte Untertitel existiert bereits","stop_stream_player":"Das Streaming-Medium wurde beendet, weil die Aufgabe angehalten oder gelöscht wurde","stop_player":"Der Player wurde beendet, da die Datei gelöscht wurde","playing_timeout_hint":"Wartezeiten sind vorbei. Bitte überprüfen Sie die Aufgabe","autoplay_hint":"Autoplay wird möglicherweise von Ihrem Browser blockiert. Wenn der Player nicht spielt, klicken Sie auf den Bildschirm, um fortzufahren","remove_playing_confirm":"{0} wird noch abgespielt. Wenn Sie es entfernen, wird der Player gestoppt. Möchten Sie es wirklich entfernen?","unsupported_in_browser":"Wird im Browsermodus noch nicht unterstützt","client":"Klient","warning":"Warnung","enable":"Aktivieren","disable":"Deaktivieren","auto":"Auto","encrypt_connection":"Verbindung verschlüsseln","encrypted_connection":"Verschlüsselte Verbindung","non_encrypted_connection":"Unverschlüsselte Verbindung","connected_wires_not_disconnect":"Angeschlossene Leitungen werden nicht getrennt","audio":"Audio-","video":"Video","image":"Bild","subtitle":"Untertitel","zip":"Reißverschluss","text":"Text","unknown":"Unbekannt","add":"Hinzufügen","undo":"Rückgängig machen","backup":"Sicherung","not_default_app":"${displayName} ist nicht Ihre Standard-App für Torrent und Medien. Möchten Sie sie als Standard festlegen?","dont_show_again":"Nicht mehr anzeigen","go_to_settings":"Gehe zu den Einstellungen","about_alphabiz":"Ungefähr ${displayName}","last_check_at":"Letzter Check um","update_channel":"Kanal aktualisieren","check_for_update":"Auf Update überprüfen","checking_for_update":"Suche nach Updates...","no_update_available":"Kein Update verfügbar","update_available":"Update verfügbar","update_now":"Jetzt aktualisieren","update_later":"Später aktualisieren","click_to_update":"Klicken Sie zum Herunterladen und Aktualisieren auf die Schaltfläche JETZT AKTUALISIEREN","update_failed":"Update fehlgeschlagen","update_failed_message":"Beim Aktualisieren ist ein Fehler aufgetreten:","check_shasum_failed":"Die Integrität des Installationsprogramms konnte nicht überprüft werden","downloading_update":"Update wird heruntergeladen...","ready_to_update":"Bereit zum Aktualisieren","restart_to_update":"Update wird heruntergeladen. ${displayName} wird für einen Moment zum Aktualisieren beendet.","already_latest":"Die aktuelle Version ({0}) ist bereits die neueste","update_timeout":"Aktualisierungszeitüberschreitung","no_available_release":"Keine verfügbare Version","no_available_installer":"Kein Installationsprogramm verfügbar","feedback":"Rückmeldung","select_a_type":"Wählen Sie einen Typ aus","category":"Kategorie","select_a_category":"Wählen Sie eine Kategorie","require_title":"Titel ist erforderlich","describe_your_problem":"Beschreiben Sie Ihr Problem","report_a_bug":"Melde einen technischen Fehler","request_a_new_feature":"Fordern Sie eine neue Funktion an","download_or_upload":"Herunterladen Hochladen","others":"Andere","submit_with_system_info":"Mit Systeminformationen einreichen","submit_feedback":"Geben Sie Feedback ab","tweet_us":"Twittern Sie uns","tweet_too_long":"Der Tweet ist zu lang","delete_characters":"Bitte löschen Sie mindestens {0} Zeichen.","rest_characters":"Sie können {0} weitere Zeichen eingeben.","update_alphabiz":"Aktualisieren Sie ${displayName}","current_version":"Aktuelle Version","cancel_update":"Aktualisierung abbrechen","slow_download_speed":"Download zu langsam","slow_download_speed_caption":"Der Download des Installationsprogramms ist jetzt zu langsam. Bitte überprüfen Sie den Netzwerkstatus","update_canceled":"Update abgebrochen","current_version_release_time":"Veröffentlichungszeitpunkt der aktuellen Version","expired_app":"${displayName} Abgelaufen","version_out_of_date":"Version veraltet","have_to_update":"Die Version von ${displayName} ist veraltet. Einige Protokolle oder APIs sind veraltet. Sie müssen ${displayName} aktualisieren, bevor Sie fortfahren können.","exit_alphabiz":"Beenden Sie ${displayName}","exit_and_update":"Beenden und Update anwenden","new_version_hint":"Neue Version ist verfügbar","no_new_version":"Keine neue Version verfügbar","current_is_latest":"Die aktuelle Version ist bereits die neueste","click_to_check_update":"Klicken Sie auf die Schaltfläche [NACH UPDATE PRÜFEN], um nach Updates zu suchen","download_latest_version_from_website":"Bitte besuchen Sie die offizielle Website, um die neueste Version herunterzuladen","to_the_website":"Zur Website","network_diagnotic":"Netzwerkdiagnose","diagnotic":"Diagnose","click_to_check":"Klicken Sie zum Überprüfen","click_to_check_again":"Klicken Sie, um es noch einmal zu überprüfen","checking":"Überprüfung","online":"Online","offline":"Offline","dns_look_up":"DNS-Suche","error":"Fehler","aws_service":"AWS-Service","network_pings":"Netzwerk-Ping","not_found":"Nicht gefunden","packet_loss":"Paketverlust","official_site":"Offizielle Seite","download_test":"Test herunterladen","test_task":"Testaufgabe {0}","download_failed":"Herunterladen fehlgeschlagen","second_spend":"{0} s ausgeben","open_default_player_failed":"Der Standardplayer konnte nicht geöffnet werden","copied_to_clipboard":"In die Zwischenablage kopiert","go_to":"Gehe zu","region_not_available":"Region nicht verfügbar","region_not_available_message":"Entschuldigung! Ihre Region ist für die Nutzung dieser App nicht verfügbar. Diese App wird nach {0} Sekunden beendet","confirm":"Bestätigen","no_available_result":"Kein verfügbares Ergebnis","invalid_password_format":"ungültiges Kennwort Format","invalid_password_format_same":"Das Passwort ist dasselbe wie das Originalpasswort","error_password":"Passwort-Fehler","keychain_setting":"Schlüsselanhänger","setting_description":"Cloud-Speicher: Speichern Sie wichtige Daten in der Cloud.\\nPasswort ändern: Ändern Sie das Passwort für den Medienbibliotheksschlüssel.\\nMnemonik: eine alternative Methode zum Generieren und Wiederherstellen von Schlüsseln.\\nLokalen Schlüssel importieren: Importieren Sie den lokal gespeicherten Schlüssel in die Medienbibliothek.\\nExportschlüssel: Speichert die aktuellen Medienbibliotheksdaten lokal oder in der Cloud.\\nSicherungsschlüssel zur Cloud: Aktualisieren Sie die aktuellen Medienbibliotheksdaten zur Sicherung in die Cloud.","refresh_status":"Update Status","confirm_import_key":"Importschlüssel bestätigen","confirm_update_cloud_key":"Sie haben bereits einen Schlüssel in der Cloud. Durch die Aktualisierung des Schlüssels wird der ursprüngliche Schlüssel überschrieben. Sind Sie sicher, dass Sie den in der Cloud gespeicherten Schlüssel aktualisieren möchten?","export_key_with_cloud":"Geben Sie das unabhängige Passwort ein, das Sie zum Exportieren des in der Cloud gespeicherten Bibliotheksschlüssels festgelegt haben, und sperren Sie die Schlüsseldatei mit dem Entsperrpasswort","store_cloud_key_prompt_password":"Geben Sie ein unabhängiges Passwort ein, um den Bibliotheksschlüssel in der Cloud zu speichern","update_cloud_key_prompt_password":"Legen Sie ein unabhängiges Passwort fest, um den Bibliotheksschlüssel zu verschlüsseln, und aktualisieren Sie ihn dann in der Cloud","enable_cloud_storage_prompt_password":"Legen Sie ein Passwort für den in der Cloud gespeicherten Schlüssel fest, mit dem Sie den Schlüssel aus der Cloud abrufen können","input_unlock_password":"Entsperrkennwort festlegen","export_local_prompt_password":"Bitte legen Sie ein Entsperrkennwort fest, um Ihre Schlüsseldatei zu verschlüsseln. Wir speichern dieses Passwort nicht für Sie. Wenn Sie also Ihr Passwort verlieren, können Sie Ihren Bibliotheksschlüssel nicht entsperren","require_unlock_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","require_independent_password":"Geben Sie das unabhängige Passwort ein, um den Schlüssel in der Cloud zu speichern","import_local_prompt_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","select_encrypt_mode":"Wählen Sie den Verschlüsselungsmodus","update_cloud_key":"Aktualisieren Sie den in der Cloud gespeicherten Schlüssel","backup_to_cloud":"Sichern Sie den Bibliotheksschlüssel in der Cloud","save_local":"Speichern Sie den Bibliotheksschlüssel als lokal verschlüsselte Datei","create_new_key":"Erstellen Sie einen neuen Bibliotheksschlüssel","creating_lib_key":"Bibliotheksschlüssel wird erstellt...","loading_lib_key":"Bibliotheksschlüssel wird geladen...","failed_to_create_lib_key":"Bibliotheksschlüssel konnte nicht erstellt werden","failed_to_load_lib_key":"Bibliotheksschlüssel konnte nicht geladen werden","import_local_key":"Schlüssel lokal importieren","import_lib_key_from_local":"Importieren Sie einen Bibliotheksschlüssel lokal","import_from_cloud":"Importieren Sie den Bibliotheksschlüssel aus der Cloud","create_or_import_key":"Bibliotheksschlüssel erstellen oder importieren","create_or_import_key_desc":"Der Bibliotheksschlüssel ist ein unabhängiger Schlüssel, der zum Abrufen und Veröffentlichen von Inhalten mit einer dezentralen Datenbank verwendet wird.","store_your_lib_key":"Bewahren Sie Ihren Bibliotheksschlüssel auf","export_cloud_key":"Schlüssel aus der Cloud exportieren","export_current_key":"Aktuellen Schlüssel exportieren","change_password":"Kennwort ändern","enable_cloud_storage":"Cloud-Speicher aktivieren","disable_cloud_storage":"Cloud-Speicher deaktivieren","disable_cloud_storage_desc":"Wenn Sie den Cloud-Speicher deaktivieren, wird der in der Cloud gespeicherte Schlüssel entfernt. Bitte stellen Sie sicher, dass der Schlüssel lokal gespeichert ist","sync_at":"Synchronisieren bei: {time}","cloud_storage_enabled":"Schlüsselbund mit {storage} synchronisieren","cloud_storage_disabled":"Cloud-Speicher deaktiviert","saved_locally":"Lokal gespeichert","export_key":"Schlüsseldatei exportieren","cloud_independent_password":"Cloudunabhängiges Passwort","key_file_unlock_password":"Passwort zum Entsperren der Schlüsseldatei","re_enter_unlock_password":"Geben Sie das Entsperrkennwort erneut ein","independent_password_not_enabled":"Das aktuelle Passwort ist das Passwort des Alphabiz-Kontos (es ist kein unabhängiges Passwort festgelegt)","use_cognito_hash":"Verwenden Sie das Passwort für das Alphabiz-Konto","use_independent_password":"Verwenden Sie ein unabhängiges Passwort","keychain_lib":"Bibliotheksschlüssel","loading_keychain_state":"Schlüsselbund wird geladen...","backing_up":"Sichern...","backup_current_key":"Aktuellen Schlüssel in der Cloud sichern","cloud_lib_key_not_existed":"Der Bibliotheksschlüssel ist in der Cloud nicht vorhanden","open_keychain_file":"Öffnen Sie die Schlüsselbunddatei","confirm_open_abk":"Möchten Sie die ABK-Datei öffnen?","use_the_key":"Benutze den Schlüssel","backup_the_key":"Sichern Sie den Schlüssel zur Cloud","keychain_data_does_not_exist":"Schlüsselbunddaten sind nicht vorhanden","timeout of 0ms exceeded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","XhrError":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","payer credit amount is not enough":"Nicht genügend Guthaben","payee does not exist":"Zahlungsempfänger existiert nicht","block_list_manage":"Sperrliste verwalten","blocked_users":"Blockierte Benutzer","blocked_channels":"Blockierte Kanäle","unblock_user":"Nutzer entblockieren","unblock_channel":"Kanal entsperren","no_blocked_user":"Kein blockierter Benutzer","no_blocked_channel":"Kein blockierter Kanal","field_required":"{0} ist erforderlich","setting":"Einstellung","unknown_media":"Unbekannte Medien","settings_button_visible":"Schaltfläche sichtbar","settings_setting":"Einstellung","settings_playback_rate":"Wiedergabegeschwindigkeit","settings_subtitle":"Untertitel","settings_pip":"Pip","settings_fullscreen":"Ganzer Bildschirm","settings_subtitle_options":"Untertiteloptionen","settings_normal":"Normal","settings_italic":"Kursiv","settings_lighter":"Feuerzeug","settings_bolder":"Mutiger","settings_small":"Klein","settings_large":"Groß","about":"Um","services":"Dienstleistungen","hide":"Verstecken","hide_others":"Andere verstecken","show_all":"Zeige alles","quit":"Aufhören","edit":"Bearbeiten","redo":"Wiederholen","cut":"Schneiden","paste":"Paste","select_all":"Wählen Sie Alle","view":"Sicht","reload":"Neu laden","toggle_full_screen":"Vollbild umschalten","toggle_developer_tools":"Entwicklertools umschalten","window":"Fenster","minimize":"Minimieren","bring_all_to_front":"Alles nach vorne bringen","help":"Helfen","github_repo":"Github Repo","issues":"Probleme","learn_more":"Erfahren Sie mehr","learn_spelling":"Lernen Sie Rechtschreibung","lookup_selection":"Suchen Sie nach „{selection}“","search_with_google":"Suchen Sie mit Google","save_as":"Speichern als","save_image":"Bild speichern","save_image_as":"Bild speichern als ...","copy_link":"Link kopieren","save_link_as":"Verknüpfung speichern unter ...","copy_image":"Kopiere das Bild","copy_image_as":"Bild kopieren als ...","copy_image_address":"Bildadresse kopieren","download_complete":"Download abgeschlossen","download_complete_message":"{0} wird heruntergeladen","is_running":"{0} läuft","open":"Öffnen Sie {0}","launch_problem":"Startproblem","ask_clear_data":"Anscheinend haben Sie versucht, {0} zu starten, sind aber mehrmals fehlgeschlagen.\\nMöchten Sie alle App-Daten löschen und später versuchen, sie zu starten?","launch_directly":"Direkt starten","clear_all_data":"Alle Daten löschen","ask_clear_confirm":"Dadurch werden alle Konfigurationen, Protokolle und Benutzerdaten entfernt!\\nDanach müssen Sie {0} möglicherweise erneut starten.\\nMöchten Sie die Daten wirklich löschen?","confirm_launch":"Nein, direkt starten","confirm_clear":"Ja, alle Daten löschen"}')},e75b:function(e,t,a){"use strict";a("7a76"),a("de6c");var n=a("67cf"),o=a("e74d");class i{constructor(e){this.apiName=e}async __call__(e,t,a){const o=await n["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(o.stack){const e=new Error(o.message);throw e.name=o.name,e.stack=o.stack,e}return o}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await o["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}}a("dc69"),a("0c26"),a("a1c1"),a("f18a");var r=a("3334"),s=a("0cdb"),l=a("586d");const c={};class d{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return c[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{c[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),o=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let i;o(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(i||(i={}),i[e]=n)}));const r=n["a"].graphql({query:a,variables:i});return r.name=e,r}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!c[e])throw new Error("operation not found");return c[e]}static async execute(e,t){const a=this.__getOperation(e),o=await n["a"].graphql({query:a,variables:t});if(o.errors)throw new Error(o.errors[0].message);return o.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(c).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class u extends d{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>console.tag.purple("GQL","websocket",...e),{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const _=new Error("The number of retries exceeds the maximum"),p=e=>new Promise((t=>setTimeout(t,e))),m=async e=>{if(c=!0,i>0&&d>i)return console.warn(_),void o().log("failed to reconnect",_);const t=Math.min(r,1e3*Math.pow(2,d));o().log("connect close: ",`waiting for reconnect (${t}ms)`),await p(t),c?(d+=1,o().log(`Attempt to reconnect (${d})`),await e(),d=0,o().log("reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},h=async()=>{const a=e=>{e.some((e=>["Connection closed","Timeout disconnect"].includes(e.message)))?o(["GQL","Websocket"],"Connect Error :171"):o(["GQL","Websocket"],"Connect Error :168",e),m(h)};try{d>=0&&s&&await s();const n=u.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await m(h)}};await h()}}class _{static createSyncDataSubscriber(e,t,a,n=console.error){return new _(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await u.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class p{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=u.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=_.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}u.appendOperations(r),u.appendOperations(s),u.appendOperations(l);const m=new p,h=new p;var g={AwsApiGraphQL:u,createSyncDataSubscriber:_.createSyncDataSubscriber.bind(_),enableUserListener:async e=>await m.enable(e),disableUserListener:()=>m.disable(),addUserListener:(e,t,a)=>m.addListener(e,t,a),removeUserListener:(e,t)=>m.removeListener(e,t),enablePublicListener:async()=>await h.enable("*"),disablePublicListener:()=>h.disable(),addPublicListener:(e,t,a)=>h.addListener(e,t,a),removePublicListener:(e,t)=>h.removeListener(e,t)};t["a"]={Rest:i,GQL:g}},e7ec:function(e,t,a){"use strict";a.r(t);var n={};a.r(n),a.d(n,"createParams",(function(){return fh})),a.d(n,"eventHandler",(function(){return bh}));var o={};a.r(o),a.d(o,"createParams",(function(){return vh})),a.d(o,"eventHandler",(function(){return wh}));var i={};a.r(i),a.d(i,"SubscribeGithubRepo",(function(){return Fg}));a("a1c1"),a("04a1"),a("b576"),a("6b06"),a("0ecc"),a("9910"),a("19f3");var r=a("ff9b"),s=a("2c24"),l=a("b14a"),c=a("1dbb"),d=a("f680"),u=a("8750"),_=a("20c1");r["a"].use(c["a"],{config:{screen:{bodyClasses:!0},notify:{},dark:"auto"},lang:s["a"],iconSet:l["a"],plugins:{Notify:d["a"],Dialog:u["a"],Loading:_["a"]}});var p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"relative-position",attrs:{id:"q-app"}},[a("GlobalRecommend"),a("application-bar"),a("q-scroll-area",{staticClass:"main-area"},[a("router-view"),a("AboutDialog"),a("TaskDialog")],1)],1)},m=[],h=(a("de6c"),a("dc89"),a("2425"),a("1af1"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.dialogVisible,callback:function(t){e.dialogVisible=t},expression:"dialogVisible"}},[a("q-card",{staticStyle:{width:"480px"},attrs:{flat:""}},[e.screen$xs?[a("q-card-section",{staticClass:"q-py-sm flex items-center"},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("about_alphabiz")))]),a("q-space"),a("q-btn",{attrs:{flat:"",icon:"close",round:""},on:{click:e.close}})],1),a("q-separator")]:e._e(),a("q-card-section",{staticClass:"q-px-lg q-pt-lg q-pb-md column justify-center items-center"},[a("q-img",{staticClass:"alphabiz-logo q-mb-sm q-mt-md",attrs:{src:e.primaryIcon,width:"72px",height:"72px"},on:{click:e.clickIcon}}),a("div",{staticClass:"text-h5 text-weight-bold q-py-sm",staticStyle:{height:"100%","line-height":"100%"}},[e._v("\n "+e._s(e.displayName)+"\n ")])],1),a("q-card-section",{staticClass:"about-content q-pt-none text-center"},[a("div",[e.isAlphabizExperimental?a("a",{attrs:{target:"_blank"},on:{click:e.showInternalNotice}},[e._v(e._s(this.$t("internal_notice")))]):e._e()]),a("div",[e._v("v"+e._s(e.appVersion)+" ("),a("a",{attrs:{target:"_blank"},on:{click:e.browserRelease}},[e._v(e._s(this.$t("release_notes")))]),e._v(")")]),a("div",[a("a",{attrs:{target:"_blank"},on:{click:e.showLicenseTermsNotice}},[e._v(e._s(e.$t("account_license_terms")))])])]),a("q-card-section",{staticClass:"q-pt-none flex justify-center items-center"},[a("q-btn",{staticClass:"q-ma-xs q-px-sm",staticStyle:{"min-width":"108px"},attrs:{"no-caps":"","no-wrap":"",dense:"",size:"0.8rem",unelevated:"",color:"general","text-color":"general",label:e.$t("submit_feedback")},on:{click:function(){return e.toggleFeedback(!0)}}}),e.isElectron||e.isCapacitor?[a("q-btn",{staticClass:"q-ma-xs q-px-sm",staticStyle:{"min-width":"108px"},attrs:{"no-caps":"","no-wrap":"",dense:"",size:"0.8rem",unelevated:"",color:"general","text-color":"general",label:e.$t("network_diagnotic")},on:{click:function(){return e.toggleNetworkDiagnotic(!0)}}})]:e._e()],2),e.screen$xs?e._e():[a("q-separator"),a("q-card-section",{staticClass:"flex items-center"},[a("q-space"),a("q-btn",{staticStyle:{width:"108px"},attrs:{color:"general","text-color":"general",dense:"",size:"0.8rem",unelevated:"",label:e.$t("close")},on:{click:e.close}})],1)]],2)],1),a("Feedback",{attrs:{show:e.showFeedback},on:{close:function(){return e.toggleFeedback(!1)}}}),a("NetworkDiagnotic",{attrs:{show:e.showNetworkDiagnotic},on:{close:function(){return e.toggleNetworkDiagnotic(!1)}}})],1)}),g=[],f=a("d310"),b=a("0f0c"),y=a("3fd2"),v=a.n(y),w=a("5584"),k=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{staticClass:"feedback",attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[a("q-card",{staticClass:"feedback-main q-pt-sm"},[a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("feedback")))])]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"q-mb-sm"},[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("select_a_type"))+":")]),a("q-select",{attrs:{options:e.typeOptions,outlined:"",dense:""},model:{value:e.type,callback:function(t){e.type=t},expression:"type"}})],1),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.isTwitter,expression:"!isTwitter"}],staticClass:"q-mb-sm"},[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("select_a_category"))+":")]),a("q-select",{attrs:{options:e.categoryOptions,outlined:"",dense:""},model:{value:e.category,callback:function(t){e.category=t},expression:"category"}})],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{directives:[{name:"show",rawName:"v-show",value:!e.isTwitter,expression:"!isTwitter"}],staticClass:"q-mb-sm"},[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("title"))+" *:")]),a("q-input",{attrs:{outlined:"",dense:"",autofocus:!e.isTwitter,rules:[function(t){return!!t.trim()||e.$t("require_title")}],"lazy-rules":""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.title,callback:function(t){e.title=t},expression:"title"}})],1),a("div",[a("div",{staticClass:"q-mb-sm"},[e._v(e._s(e.$t("describe_your_problem"))+":")]),a("q-input",{staticClass:"details-input",attrs:{type:"textarea",outlined:"",dense:"","stack-label":"",rules:e.descRules,autofocus:e.isTwitter,label:e.twitterHint},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.details,callback:function(t){e.details=t},expression:"details"}})],1),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.isTwitter,expression:"!isTwitter"}],staticClass:"q-mt-md"},[a("q-checkbox",{attrs:{label:e.$t("submit_with_system_info"),dense:""},model:{value:e.withDevInfo,callback:function(t){e.withDevInfo=t},expression:"withDevInfo"}})],1)]),a("q-card-section",{staticClass:"q-pt-none q-pb-lg flex justify-end"},[a("q-btn",{staticClass:"q-mr-sm",attrs:{unelevated:"",label:e.$t("cancel")},on:{click:e.close}}),a("q-btn",{attrs:{unelevated:"",color:"primary","text-color":"primary",label:e.$t("submit_feedback"),disabled:e.disableSubmit},on:{click:e.submit}})],1)],1)],1)},S=[],C=(a("0c26"),a("0598")),x=a("d558");function $(e){const t=e.shift(),a="| "+t.join(" | ")+" |\n",n=t.reduce((e=>e+" --- |"),"| ")+"\n";return a+n+e.reduce(((e,t)=>e+t.reduce(((e,t,a)=>a?`${e} \`${t}\` |`:`| ${t} |`),"")+"\n"),"")}function T(e,t){return`
${e}\n\n${t}\n
\n\n`}function z({type:e,text:t,version:a,devInfo:n}){const o=n?T("System info",$(n)):"";return`**Issue type**: ${e}\n\n**Describe the bug**:\n\n${t}\n\n`+(a?`---\n\n**App version**: \`${a}\`\n\n`:"")+(o||"(User disabled submitting system info)")}var P=a("47fc");const A=async()=>{if(Object(x["a"])()){const e=await(await Promise.resolve().then(a.bind(null,"a368"))).Device.getInfo();return[["Key","Value"],["Mode","Mobile(Capacitor)"],["Platform",e.platform],["OS",e.operatingSystem+" "+e.osVersion],["Model",e.model],["Manufacturer",e.manufacturer],["Webview version",e.webViewVersion],["isVirtual",e.isVirtual]]}if(!Object(C["default"])()){const e=Object(P["a"])();return[["Key","Value"],["Mode","Web"],["OS",e.os+" "+e.osVersion],["Browser",e.browser+" "+e.browserVersion],["Mobile",e.mobile?"Yes":"No"],["Platform",navigator.platform||"Unknown"],["User-Agent",navigator.userAgent]]}const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"1b85",7));return new Promise((t=>{e.once("dev-info",((e,a)=>{t([["Key","Value"],["Mode","Electron"],["OS",a.osPlatform?a.osPlatform+" "+a.osRelease:"Unknown"],["OS kernel",a.osVer||"Unknown"],["Electron version",a.electronVer||"Unknown"],["Chrome version",a.chromeVer||"Unknown"],["Node version",a.nodeVer||"Unknown"]])})),e.send("dev-info")}))};async function I({type:e,category:t,title:a,details:n,withDevInfo:o=!1}={}){const i=o?await A():null,r=z({type:e,text:n,version:Object(b["a"])("version"),devInfo:i});return{title:`[${t||e}] ${a}`,body:r}}var q=a("d710"),O=a.n(q);const{github:E}=q["update"],D=`https://github.com/${E.username}/${E.repo}/`;function j({title:e,body:t}){const a=new URL("issues/new",D);return a.searchParams.set("title",e),a.searchParams.set("body",t),a.toString()}var N,L=a("aa9c"),U=a("623f"),R=a.n(U);const M="https://twitter.com/intent/tweet?text=",F=q["twitterAccount"].trim()+" ";function B(e){return L["a"].parseTweet(F+e).weightedLength}const W=(null===R.a||void 0===R.a||null===(N=R.a.defaults)||void 0===N?void 0:N.maxWeightedTweetLength)||280;function H(e){return B(e)<=W}function V(e){return e.substring(0,L["a"].parseTweet(e).displayRangeEnd-4)+"..."}function Q(e){let t=F+e;return H(e)||(t=V(t)),`${M}${encodeURIComponent(t)}`}var G={props:{show:Boolean},data(){return{title:"",details:"",withDevInfo:!0,target:"github",type:{value:"Twitter",label:this.$t("tweet_us")},typeOptions:[{value:"Twitter",label:this.$t("tweet_us")},{value:"Bug report",label:this.$t("report_a_bug")},{value:"Feature request",label:this.$t("request_a_new_feature")}],category:{value:"",label:this.$t("select_a_category")},categoryOptions:[{value:"",label:this.$t("select_a_category")},{value:"Download",label:this.$t("download_or_upload")},{value:"Player",label:this.$t("player")},{value:"Account",label:this.$t("account")},{value:"Credits",label:this.$t("credits")},{value:"Settings",label:this.$t("settings")},{value:"Others",label:this.$t("others")}]}},computed:{isTwitter(){return"Twitter"===this.type.value},descRules(){return this.isTwitter?[e=>H(e)||this.$t("tweet_too_long")]:[]},twitterLength(){return this.isTwitter?B(this.details):0},restChars(){return W-this.twitterLength},twitterHint(){return this.restChars<0?this.$t("delete_characters",[Math.abs(this.restChars)]):this.$t("rest_characters",[this.restChars])},disableSubmit(){return this.isTwitter?this.restChars<0||!this.details.trim():!this.title.trim()}},methods:{submitTwitter(){H(this.details)&&(window.open(Q(this.details),"_blank"),this.close())},async submitGithub(){const e=await I({type:this.type.value,category:this.category.value,title:this.title,details:this.details,withDevInfo:this.withDevInfo});let t;switch(this.target){case"github":t=j(e);break}t&&(window.open(t,"_blank"),this.close())},close(){this.$emit("close")},submit(){return this.isTwitter?this.submitTwitter():this.submitGithub()}}},K=G,Y=(a("9e98"),a("2b5f")),J=a("b2aa"),Z=a("e586"),X=a("d7c7"),ee=a("a4ac"),te=a("0e45"),ae=a("7498"),ne=a("1043"),oe=a("09a4"),ie=a.n(oe),re=Object(Y["a"])(K,k,S,!1,null,null,null),se=re.exports;ie()(re,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSelect:ee["a"],QInput:te["a"],QCheckbox:ae["a"],QBtn:ne["a"]});var le=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{staticClass:"diagnotic",attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[a("q-card",{staticClass:"diagnotic-main"},[a("q-card-section",{staticClass:"flex items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bolder"},[e._v(e._s(e.$t("network_diagnotic")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:""}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"row items-center no-wrap full-width",class:{"q-pt-none":!e.screen$xs}},[a("div",{staticClass:"q-mr-md"},[e.isChecking?a("q-avatar",[a("q-circular-progress",{staticStyle:{"margin-left":"-8px"},attrs:{indeterminate:"",color:"positive",size:"md"}})],1):e.isChecked?a("q-avatar",{attrs:{size:"lg",icon:e.isNetworkError?"close":"done",color:e.isNetworkError?"negative":"positive","text-color":e.isNetworkError?"negative":"positive"}}):a("q-avatar",{attrs:{size:"lg",icon:"construction",color:"general","text-color":"general"}})],1),a("div",[e._v(e._s(e.networkStatus))]),a("div",{staticClass:"col-grow row items-center justify-end"},[a("q-btn",{staticStyle:{width:"128px"},attrs:{"no-wrap":"","no-caps":"",unelevated:"",size:"0.8rem",color:"primary",label:e.$t("diagnotic"),disabled:e.isChecking},on:{click:e.checkNetwork}})],1)]),a("q-card-section",{staticClass:"q-px-none q-pt-none"},[e.isOffline?a("div",{staticClass:"offline"},[e._v(e._s(e.$t("offline")))]):a("div",{staticClass:"logs"},[a("q-item",{class:{disabled:"-"===e.dnsStatus.avgTime||e.dnsStatus.isError}},[a("q-item-section",{attrs:{avatar:""}},[e.dnsStatus.isChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):"-"===e.dnsStatus.avgTime?a("q-avatar",{attrs:{size:"lg",icon:"dns",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.dnsStatus.isError?"close":"done",color:e.dnsStatus.isError?"negative":"general","text-color":e.dnsStatus.isError?"negative":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("dns_look_up")))]),e.dnsStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("error")))]):"-"!==e.dnsStatus.avgTime?a("span",{staticClass:"text-primary"},[e._v(e._s(e.dnsStatus.avgTime+" ms"))]):e._e()],1)],1),a("q-expansion-item",{staticClass:"full-width aws",attrs:{disable:!e.awsStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isAwsChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.awsStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isAwsError?"close":"done",color:e.isAwsError?"negative":"general","text-color":e.isAwsError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"account_circle",color:"general","text-color":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("aws_service")))])]},proxy:!0}])},[a("div",{staticClass:"aws-results q-py-md q-px-lg"},e._l(e.awsStatus,(function(t){return a("div",{key:t.name,staticClass:"aws-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.name))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.avgTime?"text-primary":"text-red"},[e._v(e._s(t.avgTime?e.$t("online"):e.$t("offline")))])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.publicPingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPublicChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.publicPingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPublicError?"close":"done",color:e.isPublicError?"negative":"general","text-color":e.isPublicError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"public",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("network_pings")))]),a("small",{staticClass:"q-ml-sm",class:e.isPublicError?"text-red":"text-primary"},[e._v(e._s(e.publicPing))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.publicPingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.privatePingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPrivateChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.privatePingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPrivateError?"close":"done",color:e.isPrivateError?"negative":"general","text-color":e.isPrivateError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"star",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("official_site")))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.privatePingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width",attrs:{disable:e.trackerStatus.success.length+e.trackerStatus.fail.length===0},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isDownloading?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.isDownloadInit?a("q-avatar",{attrs:{size:"lg",icon:"lan",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.isDownloadError?"close":"done",color:e.isDownloadError?"negative":"general","text-color":e.isDownloadError?"negative":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("download_test")))])]},proxy:!0}])},[a("div",{staticClass:"download-results q-px-lg q-py-md"},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTrackerResult,expression:"showTrackerResult"}],staticClass:"trackers"},[a("span",{staticClass:"result-name"},[e._v("Trackers")]),e._v("\n - "+e._s(e.trackerStatus.success.length)+" "+e._s(e.$t("connected"))+"\n ")]),a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTorrentResult,expression:"showTorrentResult"}],staticClass:"torrent"},[a("span",{staticClass:"result-name"},[e._v(e._s(e.$t("test_task",["6.9 MB"])))]),a("span",[e._v(" - ")]),e.torrentStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("download_failed")))]):-1===e.torrentStatus.time?a("span",{staticClass:"text-normal"},[e._v(e._s(e.$t("downloading"))+"...")]):a("span",{staticClass:"text-primary"},[e._v(e._s(e.$t("second_spend",[e.torrentStatus.time])))])])])])],1)]),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],staticClass:"q-px-md q-pb-md q-pt-none",attrs:{align:"right"}},[a("q-btn",{attrs:{unelevated:"",label:e.$t("close")},on:{click:e.close}})],1)],1)],1)},ce=[],de=a("d7df"),ue={props:{show:Boolean},data(){return{isChecked:!1,isChecking:!1,isOnline:!1,networkStatus:this.$t("click_to_check"),dnsStatus:{isChecking:!1,isError:!1,results:[],avgTime:"-"},isPrivateChecking:!1,isPrivateError:!1,privatePingStatus:[],isPublicChecking:!1,isPublicError:!1,publicPing:"",publicPingStatus:[],isAwsChecking:!1,isAwsError:!1,awsStatus:[],trackerStatus:{success:[],fail:[],isChecking:!1,isError:!1},torrentStatus:{isChecking:!1,isError:!1,time:-1}}},computed:{isOffline(){return this.isChecked&&!this.isOnline},showPrivateResult(){return this.privatePingStatus.isChecking||"-"!==this.privatePingStatus.avgTime},isDownloading(){return this.trackerStatus.isChecking||this.torrentStatus.isChecking},isDownloadError(){return this.trackerStatus.isError||this.torrentStatus.isError},isDownloadInit(){return!this.isDownloadError&&!this.trackerStatus.isError&&-1===this.torrentStatus.time},showTrackerResult(){return this.trackerStatus.isChecking||this.trackerStatus.isError||!!this.trackerStatus.success.length},showTorrentResult(){return this.torrentStatus.isChecking||this.torrentStatus.isError||this.torrentStatus.time>-1},isNetworkError(){return this.isChecked&&(!this.isOnline||this.isDownloadError||this.dnsStatus.isError||this.isAwsError||this.privatePingStatus.some((e=>!e.alive))||this.publicPingStatus.every((e=>!e.alive)))}},methods:{initCheck(){this.isChecking=!0,this.dnsStatus={isChecking:!0,isError:!1,results:[],avgTime:"-"},this.isPrivateChecking=!1,this.isPrivateError=!1,this.privatePingStatus=[],this.isPublicChecking=!0,this.publicPing="",this.publicPingStatus=[],this.isPublicError=!1,this.isAwsChecking=!0,this.isAwsError=!1,this.awsStatus=[],this.trackerStatus={success:[],fail:[],isChecking:!0,isError:!1},this.torrentStatus={isChecking:!0,isError:!1,time:-1},this.networkStatus=this.$t("checking")+"..."},checkNetwork(){this.initCheck(),console.log("check"),de["a"].emit("check-network")},onCheckResult(e){switch(e.type){case"isOnline":this.isOnline=e.result;break;case"dnsCheckResult":this.dnsStatus.isChecking=!1,e.result.fail.length?this.dnsStatus.isError=!0:this.dnsStatus.isError=!1,this.dnsStatus.results.splice(0),this.dnsStatus.results.push(...e.result.success,...e.result.fail),this.dnsStatus.avgTime=e.result.avgTime;break;case"publicPingResult":this.isPublicChecking=!0,this.publicPingStatus.push(e.result),e.result.alive||(this.isPublicError=!0);break;case"publicPingEnd":this.isPublicChecking=!1,this.publicPing=e.result;break;case"privatePingResult":this.isPrivateChecking=!0,this.privatePingStatus.push(e.result),e.result.alive||(this.isPrivateError=!0);break;case"privatePingEnd":this.isPrivateChecking=!1;break;case"pingAwsEnd":this.isAwsChecking=!1,this.awsStatus.splice(0),this.awsStatus.push(...e.successServices,...e.errorServices),this.isAwsError=e.error;break;case"trackerCheckResult":"connected"===e.result.result?this.trackerStatus.success.push(e.result.url):this.trackerStatus.fail.push(e.result.url);break;case"trackerCheckEnd":this.trackerStatus.isChecking=!1,this.trackerStatus.success.splice(0),this.trackerStatus.success.push(...e.result.success),this.trackerStatus.fail.splice(0),this.trackerStatus.fail.push(...e.result.fail),e.result.success.length||(this.trackerStatus.isError=!0);break;case"torrentCheckResult":this.torrentStatus.isChecking=!1,this.torrentStatus.isError=e.result.error,this.torrentStatus.time=e.result.time;break}},onCheckEnd(e){console.log("end",e),"isOnline"in e&&(this.isOnline=e.isOnline),this.isChecking=!1,this.isChecked=!0,this.networkStatus=this.$t("click_to_check_again")},close(){this.$emit("close")}},mounted(){de["a"].on("check-network-end",this.onCheckEnd),de["a"].on("check-network-result",this.onCheckResult)},beforeDestroy(){de["a"].off("check-network-end",this.onCheckEnd),de["a"].off("check-network-result",this.onCheckResult)}},_e=ue,pe=(a("88f5"),a("990e")),me=a("fc38"),he=a("9f3e"),ge=a("64e7"),fe=a("b329"),be=a("25fb"),ye=a("79e0"),ve=a("5bbd"),we=a("59ba"),ke=a("a431"),Se=Object(Y["a"])(_e,le,ce,!1,null,"8fee9c62",null),Ce=Se.exports;ie()(Se,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"],QAvatar:he["a"],QCircularProgress:ge["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QExpansionItem:ve["a"],QCardActions:we["a"]}),ie()(Se,"directives",{ClosePopup:ke["a"]});var xe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{persistent:!0,"content-class":{"markdown-dialog":!0,"fullscreen-dialog":e.fullscreen},position:e.fullscreen?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")}}},[a("q-card",{staticClass:"overflow-hidden column no-wrap",staticStyle:{"min-width":"320px","max-width":"720px","min-height":"calc(320px - 64px)","max-height":"calc(100vh - 64px)"},style:{paddingTop:(e.fullscreen&&e.$q.platform.is.electron?30:0)+"px"}},[a("q-card-section",{staticClass:"non-selectable flex justify-start items-center",class:{"q-py-sm":e.fullscreen}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],attrs:{"fab-mini":"",icon:e.isFullscreen?"fullscreen_exit":"fullscreen",unelevated:""},on:{click:function(t){e.isFullscreen=!e.isFullscreen}}}),a("q-btn",{attrs:{"fab-mini":"",icon:"close",unelevated:""},on:{click:e.hide}})],1),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:Object.keys(e.contents).length>1,expression:"Object.keys(contents).length > 1"}],staticClass:"q-py-none",staticStyle:{"margin-top":"-8px"}},[a("q-tabs",{staticStyle:{margin:"0 -16px"},attrs:{dense:"",align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(e,t){return[a("q-tab",{key:t,attrs:{ripple:!1,name:t,label:e.label}})]}))],2)],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none scroll-y",staticStyle:{"max-height":"100%"}},[a("q-tab-panels",{attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(t,n){return[a("q-tab-panel",{key:n,staticClass:"markdown-content",attrs:{name:n},domProps:{innerHTML:e._s(t.markdown)}})]}))],2)],1)],1)],1)},$e=[],Te=a("8e03"),ze=a.n(Te);const Pe={methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}},Ae={data(){return{isFullscreen:!1}},computed:{fullscreen(){return this.screen$xs||this.isFullscreen}}};var Ie={name:"MarkdownDialog",mixins:[Pe,Ae],props:{title:String,markdown:[Array,Object]},data(){return{currentTab:null}},computed:{contents(){const e=new ze.a("commonmark");if(Array.isArray(this.markdown))return{content:{label:"content",markdown:e.render(this.markdown.join("\n"))}};const t={};return Object.entries(this.markdown).forEach((([a,n])=>{t[a]={label:n.label,markdown:e.render(n.markdown.join("\n"))}})),t}},created(){this.currentTab=Object.keys(this.contents)[0]}},qe=Ie,Oe=(a("2cab"),a("74cb")),Ee=a("ec78"),De=a("917f"),je=a("c72d"),Ne=Object(Y["a"])(qe,xe,$e,!1,null,null,null),Le=Ne.exports;ie()(Ne,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QTabs:Oe["a"],QTab:Ee["a"],QSeparator:me["a"],QTabPanels:De["a"],QTabPanel:je["a"]});var Ue={methods:{createMarkdownDialog({title:e,markdown:t}){return this.$q.dialog({component:Le,title:e,markdown:t})}}};function Re({title:e,markdown:t}){return this.$q.dialog({component:Le,title:e,markdown:t})}var Me=["# INTERNAL DEMO ONLY","","1. Your license permits use the Software only for your internal demonstration, test, or evaluation purposes. ","","2. Licensee acknowledges that the Software is confidential in nature and constitutes a trade secret belonging to Licensor.","","3. Public disclosure or distribution of the Software is prohibited.","","4. Note that the Software disables itself on the “time-out” date identified on the SOFTWARE packaging.","",""],Fe=[" GNU GENERAL PUBLIC LICENSE"," Version 2, June 1991",""," Copyright (C) 1989, 1991 Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA"," Everyone is permitted to copy and distribute verbatim copies"," of this license document, but changing it is not allowed.",""," Preamble",""," The licenses for most software are designed to take away your","freedom to share and change it. By contrast, the GNU General Public","License is intended to guarantee your freedom to share and change free","software--to make sure the software is free for all its users. This","General Public License applies to most of the Free Software","Foundation's software and to any other program whose authors commit to","using it. (Some other Free Software Foundation software is covered by","the GNU Lesser General Public License instead.) You can apply it to","your programs, too.",""," When we speak of free software, we are referring to freedom, not","price. Our General Public Licenses are designed to make sure that you","have the freedom to distribute copies of free software (and charge for","this service if you wish), that you receive source code or can get it","if you want it, that you can change the software or use pieces of it","in new free programs; and that you know you can do these things.",""," To protect your rights, we need to make restrictions that forbid","anyone to deny you these rights or to ask you to surrender the rights.","These restrictions translate to certain responsibilities for you if you","distribute copies of the software, or if you modify it.",""," For example, if you distribute copies of such a program, whether","gratis or for a fee, you must give the recipients all the rights that","you have. You must make sure that they, too, receive or can get the","source code. And you must show them these terms so they know their","rights.",""," We protect your rights with two steps: (1) copyright the software, and","(2) offer you this license which gives you legal permission to copy,","distribute and/or modify the software.",""," Also, for each author's protection and ours, we want to make certain","that everyone understands that there is no warranty for this free","software. If the software is modified by someone else and passed on, we","want its recipients to know that what they have is not the original, so","that any problems introduced by others will not reflect on the original","authors' reputations.",""," Finally, any free program is threatened constantly by software","patents. We wish to avoid the danger that redistributors of a free","program will individually obtain patent licenses, in effect making the","program proprietary. To prevent this, we have made it clear that any","patent must be licensed for everyone's free use or not licensed at all.",""," The precise terms and conditions for copying, distribution and","modification follow.",""," GNU GENERAL PUBLIC LICENSE"," TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION",""," 0. This License applies to any program or other work which contains","a notice placed by the copyright holder saying it may be distributed",'under the terms of this General Public License. The "Program", below,','refers to any such program or work, and a "work based on the Program"',"means either the Program or any derivative work under copyright law:","that is to say, a work containing the Program or a portion of it,","either verbatim or with modifications and/or translated into another","language. (Hereinafter, translation is included without limitation in",'the term "modification".) Each licensee is addressed as "you".',"","Activities other than copying, distribution and modification are not","covered by this License; they are outside its scope. The act of","running the Program is not restricted, and the output from the Program","is covered only if its contents constitute a work based on the","Program (independent of having been made by running the Program).","Whether that is true depends on what the Program does.",""," 1. You may copy and distribute verbatim copies of the Program's","source code as you receive it, in any medium, provided that you","conspicuously and appropriately publish on each copy an appropriate","copyright notice and disclaimer of warranty; keep intact all the","notices that refer to this License and to the absence of any warranty;","and give any other recipients of the Program a copy of this License","along with the Program.","","You may charge a fee for the physical act of transferring a copy, and","you may at your option offer warranty protection in exchange for a fee.",""," 2. You may modify your copy or copies of the Program or any portion","of it, thus forming a work based on the Program, and copy and","distribute such modifications or work under the terms of Section 1","above, provided that you also meet all of these conditions:",""," a) You must cause the modified files to carry prominent notices"," stating that you changed the files and the date of any change.",""," b) You must cause any work that you distribute or publish, that in"," whole or in part contains or is derived from the Program or any"," part thereof, to be licensed as a whole at no charge to all third"," parties under the terms of this License.",""," c) If the modified program normally reads commands interactively"," when run, you must cause it, when started running for such"," interactive use in the most ordinary way, to print or display an"," announcement including an appropriate copyright notice and a"," notice that there is no warranty (or else, saying that you provide"," a warranty) and that users may redistribute the program under"," these conditions, and telling the user how to view a copy of this"," License. (Exception: if the Program itself is interactive but"," does not normally print such an announcement, your work based on"," the Program is not required to print an announcement.)","","These requirements apply to the modified work as a whole. If","identifiable sections of that work are not derived from the Program,","and can be reasonably considered independent and separate works in","themselves, then this License, and its terms, do not apply to those","sections when you distribute them as separate works. But when you","distribute the same sections as part of a whole which is a work based","on the Program, the distribution of the whole must be on the terms of","this License, whose permissions for other licensees extend to the","entire whole, and thus to each and every part regardless of who wrote it.","","Thus, it is not the intent of this section to claim rights or contest","your rights to work written entirely by you; rather, the intent is to","exercise the right to control the distribution of derivative or","collective works based on the Program.","","In addition, mere aggregation of another work not based on the Program","with the Program (or with a work based on the Program) on a volume of","a storage or distribution medium does not bring the other work under","the scope of this License.",""," 3. You may copy and distribute the Program (or a work based on it,","under Section 2) in object code or executable form under the terms of","Sections 1 and 2 above provided that you also do one of the following:",""," a) Accompany it with the complete corresponding machine-readable"," source code, which must be distributed under the terms of Sections"," 1 and 2 above on a medium customarily used for software interchange; or,",""," b) Accompany it with a written offer, valid for at least three"," years, to give any third party, for a charge no more than your"," cost of physically performing source distribution, a complete"," machine-readable copy of the corresponding source code, to be"," distributed under the terms of Sections 1 and 2 above on a medium"," customarily used for software interchange; or,",""," c) Accompany it with the information you received as to the offer"," to distribute corresponding source code. (This alternative is"," allowed only for noncommercial distribution and only if you"," received the program in object code or executable form with such"," an offer, in accord with Subsection b above.)","","The source code for a work means the preferred form of the work for","making modifications to it. For an executable work, complete source","code means all the source code for all modules it contains, plus any","associated interface definition files, plus the scripts used to","control compilation and installation of the executable. However, as a","special exception, the source code distributed need not include","anything that is normally distributed (in either source or binary","form) with the major components (compiler, kernel, and so on) of the","operating system on which the executable runs, unless that component","itself accompanies the executable.","","If distribution of executable or object code is made by offering","access to copy from a designated place, then offering equivalent","access to copy the source code from the same place counts as","distribution of the source code, even though third parties are not","compelled to copy the source along with the object code.",""," 4. You may not copy, modify, sublicense, or distribute the Program","except as expressly provided under this License. Any attempt","otherwise to copy, modify, sublicense or distribute the Program is","void, and will automatically terminate your rights under this License.","However, parties who have received copies, or rights, from you under","this License will not have their licenses terminated so long as such","parties remain in full compliance.",""," 5. You are not required to accept this License, since you have not","signed it. However, nothing else grants you permission to modify or","distribute the Program or its derivative works. These actions are","prohibited by law if you do not accept this License. Therefore, by","modifying or distributing the Program (or any work based on the","Program), you indicate your acceptance of this License to do so, and","all its terms and conditions for copying, distributing or modifying","the Program or works based on it.",""," 6. Each time you redistribute the Program (or any work based on the","Program), the recipient automatically receives a license from the","original licensor to copy, distribute or modify the Program subject to","these terms and conditions. You may not impose any further","restrictions on the recipients' exercise of the rights granted herein.","You are not responsible for enforcing compliance by third parties to","this License.",""," 7. If, as a consequence of a court judgment or allegation of patent","infringement or for any other reason (not limited to patent issues),","conditions are imposed on you (whether by court order, agreement or","otherwise) that contradict the conditions of this License, they do not","excuse you from the conditions of this License. If you cannot","distribute so as to satisfy simultaneously your obligations under this","License and any other pertinent obligations, then as a consequence you","may not distribute the Program at all. For example, if a patent","license would not permit royalty-free redistribution of the Program by","all those who receive copies directly or indirectly through you, then","the only way you could satisfy both it and this License would be to","refrain entirely from distribution of the Program.","","If any portion of this section is held invalid or unenforceable under","any particular circumstance, the balance of the section is intended to","apply and the section as a whole is intended to apply in other","circumstances.","","It is not the purpose of this section to induce you to infringe any","patents or other property right claims or to contest validity of any","such claims; this section has the sole purpose of protecting the","integrity of the free software distribution system, which is","implemented by public license practices. Many people have made","generous contributions to the wide range of software distributed","through that system in reliance on consistent application of that","system; it is up to the author/donor to decide if he or she is willing","to distribute software through any other system and a licensee cannot","impose that choice.","","This section is intended to make thoroughly clear what is believed to","be a consequence of the rest of this License.",""," 8. If the distribution and/or use of the Program is restricted in","certain countries either by patents or by copyrighted interfaces, the","original copyright holder who places the Program under this License","may add an explicit geographical distribution limitation excluding","those countries, so that distribution is permitted only in or among","countries not thus excluded. In such case, this License incorporates","the limitation as if written in the body of this License.",""," 9. The Free Software Foundation may publish revised and/or new versions","of the General Public License from time to time. Such new versions will","be similar in spirit to the present version, but may differ in detail to","address new problems or concerns.","","Each version is given a distinguishing version number. If the Program",'specifies a version number of this License which applies to it and "any','later version", you have the option of following the terms and conditions',"either of that version or of any later version published by the Free","Software Foundation. If the Program does not specify a version number of","this License, you may choose any version ever published by the Free Software","Foundation.",""," 10. If you wish to incorporate parts of the Program into other free","programs whose distribution conditions are different, write to the author","to ask for permission. For software which is copyrighted by the Free","Software Foundation, write to the Free Software Foundation; we sometimes","make exceptions for this. Our decision will be guided by the two goals","of preserving the free status of all derivatives of our free software and","of promoting the sharing and reuse of software generally.",""," NO WARRANTY",""," 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY","FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN","OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES",'PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED',"OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF","MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS","TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE","PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,","REPAIR OR CORRECTION.",""," 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING","WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR","REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,","INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING","OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED","TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY","YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER","PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE","POSSIBILITY OF SUCH DAMAGES.",""," END OF TERMS AND CONDITIONS",""," How to Apply These Terms to Your New Programs",""," If you develop a new program, and you want it to be of the greatest","possible use to the public, the best way to achieve this is to make it","free software which everyone can redistribute and change under these terms.",""," To do so, attach the following notices to the program. It is safest","to attach them to the start of each source file to most effectively","convey the exclusion of warranty; and each file should have at least",'the "copyright" line and a pointer to where the full notice is found.',""," "," Copyright (C) ",""," This program is free software; you can redistribute it and/or modify"," it under the terms of the GNU General Public License as published by"," the Free Software Foundation; either version 2 of the License, or"," (at your option) any later version.",""," This program is distributed in the hope that it will be useful,"," but WITHOUT ANY WARRANTY; without even the implied warranty of"," MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"," GNU General Public License for more details.",""," You should have received a copy of the GNU General Public License along"," with this program; if not, write to the Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.","","Also add information on how to contact you by electronic and paper mail.","","If the program is interactive, make it output a short notice like this","when it starts in an interactive mode:",""," Gnomovision version 69, Copyright (C) year name of author"," Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'."," This is free software, and you are welcome to redistribute it"," under certain conditions; type `show c' for details.","","The hypothetical commands `show w' and `show c' should show the appropriate","parts of the General Public License. Of course, the commands you use may","be called something other than `show w' and `show c'; they could even be","mouse-clicks or menu items--whatever suits your program.","","You should also get your employer (if you work as a programmer) or your",'school, if any, to sign a "copyright disclaimer" for the program, if',"necessary. Here is a sample; alter the names:",""," Yoyodyne, Inc., hereby disclaims all copyright interest in the program"," `Gnomovision' (which makes passes at compilers) written by James Hacker.",""," , 1 April 1989"," Ty Coon, President of Vice","","This General Public License does not permit incorporating your program into","proprietary programs. If your program is a subroutine library, you may","consider it more useful to permit linking proprietary applications with the","library. If this is what you want to do, use the GNU Lesser General","Public License instead of this License.",""],Be=["# Terms of Service TESTING","","## 1. Introduction","",'Welcome to Use Alphabiz App (the "App"). The App is operated by Alphabiz Team ("Alphabiz" or "we"). This document – the terms of service – is an agreement between you, the beloved user, and Alphabiz. It\'s referred to as the "Terms" or the "Agreement".',"These Terms govern your use of the App and this App only. The Terms neither relate to any other Alphabiz application, service or property nor your use of any other Alphabiz application, service or property. For example, these Terms don't govern your use of Alphabiz App.","","## 2. Agreement to the Terms","","Terms of service agreements are contracts. That means that this Agreement is a contract between you and Alphabiz for the limited purpose of laying out what our respective rights and obligations are with respect to Alphabiz App.","If there's something in these Terms you don't agree with or don't understand, please don't use the App. By accessing or using the App, you signal your agreement with and consent to the Terms. By accessing or using any Application or Service you also represent that you have the legal authority to accept the Terms on behalf of yourself and any party you represent in connection with your use of any Application or Service.","","Unless otherwise agreed to in writing with Alphabiz, your use of any Application or Service will always be subject to, at a minimum, the terms and conditions set out in this document.","","## 3. DISCLAIMER OF WARRANTIES","","TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ALPHABIZ OFFERS THE APP ON AN AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE APPLICATIONS OR SERVICES, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. ALPHABIZ DOES NOT WARRANT THAT THE FUNCTIONS OR CONTENT CONTAINED ON THE APPLICATION OR SERVICES WILL BE ERROR-FREE, THAT DEFECTS WILL BE CORRECTED, OR THAT ALPHABIZ'S SERVERS ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. ALPHABIZ DOES NOT WARRANT OR MAKE ANY REPRESENTATION REGARDING USE OR THE RESULT OF USE OF THE CONTENT IN TERMS OF ACCURACY, RELIABILITY, OR OTHERWISE.","","## 4. LIMITATION OF LIABILITY","",'EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW AND THEN ONLY TO THAT EXTENT, IN NO EVENT WILL ALPHABIZ, ITS EMPLOYEES, OFFICERS, DIRECTORS, AFFILIATES OR AGENTS ("THE ALPHABIZ PARTIES") BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY INCIDENTAL, DIRECT, INDIRECT, PUNITIVE, ACTUAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY OR OTHER DAMAGES, INCLUDING WITHOUT LIMITATION, LOSS OF REVENUE OR INCOME, LOST PROFITS, PAIN AND SUFFERING, EMOTIONAL DISTRESS, COST OF SUBSTITUTE GOODS OR SERVICES, OR SIMILAR DAMAGES SUFFERED OR INCURRED BY YOU OR ANY THIRD PARTY THAT ARISE IN CONNECTION WITH THE APPLICATIONS OR SERVICES (OR THE TERMINATION THEREOF FOR ANY REASON), EVEN IF THE ALPHABIZ PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.',"","THE ALPHABIZ PARTIES SHALL NOT BE RESPONSIBLE OR LIABLE WHATSOEVER IN ANY MANNER FOR ANY CONTENT POSTED ON THE APP (INCLUDING CLAIMS OF INFRINGEMENT RELATING TO CONTENT POSTED ON THE APPLICATIONS OR SERVICES, FOR YOUR USE OF THE APPLICATIONS AND SERVICES, OR FOR THE CONDUCT OF THIRD PARTIES WHETHER ON THE APPLICATIONS, IN CONNECTION WITH THE SERVICES OR OTHERWISE RELATING TO THE APPLICATIONS OR SERVICES.","","## 5. Reservation of Rights and Ownership","",'Tan Shuai (the "Founder" of Alphabiz) reserves all rights in and to the App, including without limitation all rights in and to the App\'s name, logo, trademark, domain name, and other intellectual property rights.',"","The App is protected by copyright and other intellectual property laws and treaties around the world. Founder owns the title, copyright and other intellectual property rights in the App. The App is licensed, not sold.","","## 6. Indemnification for breach of the Terms","","You agree to indemnify and hold harmless the Alphabiz Parties (defined above) from and against any and all loss, expenses, damages, and costs, including without limitation reasonable attorneys fees, resulting, whether directly or indirectly, from your violation of the Terms.","","## 7. Termination of this Agreement","","These Terms will continue to apply until terminated by the parties in writing, though your right to access and use the App terminates automatically upon your breach of any of these Terms.","The disclaimer of warranties, the limitation of liability and the jurisdiction and applicable law provisions shall survive any termination. The license grants mentioned herein shall continue in effect subject to the terms of the applicable license. Your warranties and indemnification obligations shall survive any termination for one year.","","## 8. Miscellaneous Terms","","If any term or part of the Terms is held to be invalid or unenforceable by any law or regulation or final determination of a competent court or tribunal, that provision will be deemed severable and will not affect the validity and enforceability of any remaining provisions.","","The parties agree that no joint venture, partnership, employment, or agency relationship exists between you and Alphabiz as a result of these Terms or your use of the App.","","These Terms constitute the entire agreement between you and Alphabiz relating to the App and supersede all prior, contemporaneous and future communications (with the exception of future amendments to the Terms as made available by Alphabiz from time to time) between you and Alphabiz. A printed version of the Terms and of any notice given in electronic form shall be admissible in judicial or administrative proceedings based on or relating to the Terms to the same extent and subject to the same conditions as other business documents and records originally generating and maintained in printed form.",""],We={mixins:[Ue],methods:{showInternalNotice(){this.createMarkdownDialog({title:this.$t("internal_notice"),markdown:{internal:{label:"Internal",markdown:Me}}})},showLicenseTermsNotice(){this.createMarkdownDialog({title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:Fe},terms:{label:"Terms",markdown:Be}}})}}};const{github:He}=q["update"],Ve=v.a.renderer();var Qe={name:"AboutDialog",mixins:[We],components:{Feedback:se,NetworkDiagnotic:Ce},data(){return{displayName:q["displayName"],isElectron:Ve,isCapacitor:Object(x["a"])(),iconClickTime:0,dialogVisible:!1,appVersion:Object(b["a"])("version"),loading:!1,primaryIcon:"developer/assets/icon-256.png",showFeedback:!1,showNetworkDiagnotic:!1}},created(){f["Bus"].$on("CALL_ABOUT",(()=>{this.dialogVisible=!0})),f["Bus"].$on("CALL_NETWORK_DIAGNOSTIC",(()=>{this.toggleNetworkDiagnotic(!0)})),Ve&&Promise.resolve().then(a.t.bind(null,"1b85",7)).then((({ipcRenderer:e})=>{e.on("about-dialog",(()=>{this.dialogVisible=!0}))}))},computed:{isAlphabizExperimental(){return"Alphabiz"===q["displayName"]&&(this.appVersion.includes("internal")||this.appVersion.includes("nightly"))}},methods:{close(){this.dialogVisible=!1},browserRelease(){const e=`https://github.com/${He.username}/${He.repo}/releases`;Ve?Promise.resolve().then(a.t.bind(null,"1b85",7)).then((t=>{t.ipcRenderer.send("to_browserurl",e)})):window.open(e,"_blank")},clickIcon(){this.iconClickTime+=1,setTimeout((()=>{this.iconClickTime-=1}),3e3),5===this.iconClickTime&&(console.log("enable!"),Ve?(a("1b85").ipcRenderer.send("enable_devtools"),w["a"].dispatch("fetchSettings")):w["a"].dispatch("set",{disableDevTools:!1}).then((()=>{w["a"].dispatch("fetchSettings")})),this.$q.notify("DevTools is enabled"))},toggleFeedback(e){console.log("toggle",e),this.showFeedback=e},toggleNetworkDiagnotic(e){this.showNetworkDiagnotic=e}}},Ge=Qe,Ke=(a("3c8a"),a("9767")),Ye=a("4101"),Je=Object(Y["a"])(Ge,h,g,!1,null,"e4afc3b8",null),Ze=Je.exports;ie()(Je,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"],QImg:Ke["a"],QColor:Ye["a"]});var Xe=a("4fd2"),et=a("6422"),tt=a("07e8"),at=a("ce6c"),nt=a("c62a6"),ot=a("36a1"),it=a("eb7a"),rt=a("1926"),st=a("61a1"),lt=a("3d18");async function ct(e,t,n){var o,i;if(console.log("drop",e,e.path,(null===e||void 0===e||null===(o=e.path)||void 0===o?void 0:o[0])===document.body),e&&e.path&&(null===e||void 0===e||null===(i=e.path)||void 0===i?void 0:i[0])===document.body)return void console.log("Drop to body");const r=n&&!t.length;if(r&&!n.match(/^(magnet)|(alphabiz):/))return;const s=!r&&t.length>1,l=!r&&!s&&Object(C["default"])()&&a("bc7b").existsSync(t[0].path)?a("bc7b").statSync(t[0].path).isDirectory():!a("d6fe").extname(t[0].path),c=r?"link":s?"file_copy":l?"folder":"insert_drive_file",d=document.createElement("i");d.classList="q-icon material-icons",d.appendChild(document.createTextNode(c)),d.style=`position: fixed; font-size: 36px; transition-duration: 0.5s; opacity: 1;left: ${e.clientX-18}px; top: ${e.clientY-18}px`;const u=document.body.appendChild(d);return new Promise((e=>{setTimeout((()=>{u.style.transform="translateY(24px)"}),50),setTimeout((()=>{u.style.transform+=" scale(4)",u.style.opacity=0,e()}),200),setTimeout((()=>{document.body.removeChild(u)}),1e3)}))}console.log("utils io CLIENT"),console.log("-utils io CLIENT"),de["a"].on("warning",(e=>{d["a"].create({message:e})})),de["a"].on("client_error",(e=>{d["a"].create({message:e})})),de["a"].on("request_unlimit_upload",(()=>{const e=Object(st["b"])();e&&"/settings"!==e.currentRoute.path&&"/advancedSettings"!==e.currentRoute.path&&u["a"].create({title:rt["b"].t("upload_too_many_files"),message:rt["b"].t("ask_if_unlimit_upload_amount"),ok:rt["b"].t("disable_limitation"),cancel:rt["b"].t("not_now")}).onOk((()=>{de["a"].emit("unlimit_upload_amount")}))})),de["a"].on("torrent_error",(({token:e,message:t})=>{const a=Object(st["b"])();a&&"/"===a.currentRoute.path&&d["a"].create({message:rt["b"].t("torrent_error"),caption:[rt["b"].t(t),e].join("\n"),multiLine:!0,timeout:0,closeBtn:rt["b"].t("close")})})),de["a"].on("torrent_seed_error",((e,t)=>{e.missFile&&(console.log(e,t),u["a"].create({title:rt["b"].t("miss_file"),message:rt["b"].t("delete_miss_file_task",[e.name]),ok:rt["b"].t("delete_task"),cancel:rt["b"].t("cancel")}).onOk((()=>{de["a"].emit("delete_torrent",e.infoHash)})))})),de["a"].on("delete-files-failed",((e,t)=>{console.log("delete failed",e,t),u["a"].create({title:rt["b"].t("failed_to_delete_files"),message:rt["b"].t("failed_to_delete_files")})})),de["a"].on("autoupload-start",(()=>{w["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!0)})),de["a"].on("autoupload-complete",(()=>{w["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!1)})),de["a"].on("torrent_exists",(e=>(console.log("exist",e),d["a"].create(rt["b"].t("torrent_exists")+e)))),de["a"].on("stop-server",(()=>{w["a"].dispatch("resetRemotePlay"),w["a"].state.video.currentVideo.shouldReset=!0})),de["a"].on("open-default-player",(async e=>{w["a"].dispatch("resetRemotePlay"),w["a"].dispatch("resetInfoHash"),w["a"].dispatch("currentVideoUrl",""),w["a"].dispatch("currentVideoPath",""),console.log("open-default-player:"+e);const t=it["default"].getPlayer("my-video"),a=w["a"].state.video.currentVideo.pipStatus;if(t&&a)try{console.log("跳转默认播放器,关闭画中画"),t.exitPictureInPicture()}catch(o){}const n=await Object(lt["b"])(w["a"].getters.settings.defaultVideoPlayer,e);!0!==n&&""!==n&&d["a"].create(rt["b"].t("open_default_player_failed"))})),de["a"].on("jump-to-player",(()=>{const e=Object(st["b"])();e&&e.push({name:"Player",params:{action:{type:"play_remote"}}})})),de["a"].on("finish_all_payments_by_infohash",(e=>{if("string"!==typeof e)return console.log(`No info hash to finish ${e}`);const t=w["a"].getters.accountUserInfo.sub;if(!t)return console.log(`Cannot find sub id from ${w["a"].getters.accountUserInfo}`);const a=w["a"].state.credits.expensesTransactions.filter((a=>a.payerId===t&&"FINISH"!==a.status&&a.meta.includes(e)));console.log("Will finish",a),de["a"].emit("finish_all_payments",a)}));var dt=a("8a63"),ut=a("0885"),_t=a("09e8"),pt=a("84f6"),mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[a("q-card",{staticStyle:{width:"400px","max-width":"80vw","overflow-x":"hidden"}},[a("q-card-section",["download"===e.mode?a("q-tabs",{staticClass:"text-primary",attrs:{"no-caps":""},model:{value:e.tab,callback:function(t){e.tab=t},expression:"tab"}},[a("q-tab",{attrs:{name:"url",label:this.$t("link_task")}}),a("q-tab",{attrs:{name:"file",label:this.$t("torrent_task")}})],1):a("div",{staticClass:"upload-title text-primary text-center q-mt-sm q-mb-md text-subtitle2"},[e._v("\n "+e._s(e.$t("upload"))+"\n ")])],1),a("q-card-section",{staticClass:"q-pt-none"},["url"===e.tab&&"download"===e.mode?a("q-input",{staticClass:"url-input q-py-sm",attrs:{dense:"",type:"textarea","input-style":"white-space:nowrap"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}}):e._e(),"file"===e.tab||"upload"===e.mode?a("q-input",{attrs:{readonly:"",type:"text",label:e.$t("file"),value:e.inputFile&&e.inputFile[0]&&e.inputFile[0].name||""}}):e._e(),a("div",{staticClass:"file-selectors"},["file"===e.tab||"upload"===e.mode?a("FileSelector",{attrs:{accept:"download"===e.mode?{extensions:["torrent"]}:null},on:{select:e.onFileSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"note_add",label:e.$t("select_file")}})],1):e._e(),"upload"===e.mode&&e.isElectron?a("FileSelector",{attrs:{directory:""},on:{select:e.onFolderSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"create_new_folder",label:e.$t("select_folder")}})],1):e._e()],1),e.isElectron?a("div",{staticClass:"configuration-variable q-pt-sm"},[a("q-input",{directives:[{name:"show",rawName:"v-show",value:"download"===e.mode&&e.isElectron,expression:"mode === 'download' && isElectron"}],staticStyle:{width:"100%"},attrs:{label:this.$t("download_directory_position")},on:{click:e.selectSavePath},model:{value:e.settings.downloadDirectory,callback:function(t){e.$set(e.settings,"downloadDirectory",t)},expression:"settings.downloadDirectory"}})],1):e._e()],1),a("q-card-actions",{staticClass:"text-primary",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:this.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:"download"===e.mode?this.$t("download"):this.$t("upload")},on:{click:e.submit}})],1)],1)],1)},ht=[],gt=a("bc7b"),ft=a.n(gt),bt=a("d6fe"),yt=a.n(bt),vt=a("9a50"),wt=a("c5a5"),kt=a("3aea"),St=a("aa8a"),Ct=a("a368"),xt=a("908d");const $t=Object(f["isElectron"])()?a("1b85").ipcRenderer:{};var Tt={name:"TaskDialog",inject:["taskQueue"],components:{FileSelector:vt["a"]},data(){const e=w["a"].getters.settings,t={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer};return{isElectron:Object(f["isElectron"])(),isCapacitor:Object(x["a"])(),value:!1,tab:"url",mode:"download",currentTab:"url",setAsDefault:!1,input:"",inputFile:null,onMagnetCloseCallbacks:[],settings:t,libraryDialog:null}},computed:{disableTasks(){return!!w["a"].getters.shouldDisableTasks||!!w["a"].getters.settings.forceLogin&&(!w["a"].getters.accountUserInfo||!w["a"].getters.accountUserInfo.sub)}},methods:{updateSettings(){const e=w["a"].getters.settings;this.settings={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}},show(e,t){"string"===typeof e&&["download","upload"].includes(e)&&(this.mode=e),"string"===typeof t?(this.input=t,this.inputFile=null,this.tab="url"):"object"===typeof t&&null!==t?(this.input="",this.inputFile=t,this.tab="file",console.log("File",t)):(this.input="",this.inputFile=null),this.value=!0,this.$nextTick((()=>{this.updateSettings()}))},hide(){this.value=!1},toggle(){this.value=!this.value},selectFolder(){var e;if(!Object(f["isElectron"])())return null===(e=this.$refs.folderSelector)||void 0===e?void 0:e.click();const t="download"===this.mode?[{name:"Torrent",extensions:["torrent"]}]:[];$t.once("select_file_or_directory",((e,t)=>{if(t&&!t.canceled&&t.filePaths&&t.filePaths.length){const e=ft.a.statSync(t.filePaths[0])?t.filePaths[0]:yt.a.basename(t.filePaths[0]);this.inputFile=[{path:e,name:e}],console.log("select folder",this.inputFile)}else console.log("skip select folder",t)})).send("select_file_or_directory",t)},onFileSelected(e){console.log("Select",e),Array.isArray(e)?this.inputFile=e:e instanceof File?this.inputFile=[e]:console.log("Invalid file",e)},onFolderSelected(e){if(!Array.isArray(e)||!e.length)return console.log("not files");console.log("Select",e),this.inputFile=e},selectSavePath(){Object(f["isElectron"])()&&$t.once("select_directory",((e,t)=>{if(!t||t.canceled||!t.filePaths)return;const a=t.filePaths[0];a&&(this.settings.downloadDirectory=a,this.setAsDefault&&w["a"].dispatch("set",{downloadDirectory:a}))})).send("select_directory")},downloadTorrent(){const e=this.inputFile&&(this.inputFile.path||this.inputFile[0].path);let t=this.input;if(t.includes(q["shortProtocol"]+"://")){let e=0;t=t.replace(new RegExp(`${q["shortProtocol"]}://`,"g"),(()=>e++?`${q["protocol"]}://${q["protocol"]}task-${e}/`:`${q["protocol"]}://${q["protocol"]}task/`))}if("url"===this.tab&&!["magnet",q["protocol"],q["shortProtocol"]].some((e=>t.startsWith(e+":"))))return this.$q.notify(this.$t("invalid_download_url"));de["a"].emit("download_torrent",{type:this.tab,url:t,file:e,token:"url"===this.tab?t:e||t,...this.settings}),this.value=!1,this.input=""},async uploadTorrent(){console.log("Upload torrent",this.inputFile);const e=this.inputFile;if(console.log("n",e.name),Object(x["a"])()&&xt["b"].is.ios){const t=Date.now(),a=this.$q.dialog({message:this.$t("open_file")+"...",persistent:!0,ok:!1,cancel:!1}),n=yt.a.join("Uploads",e.name);console.log("Delete"),await Ct["Filesystem"].mkdir({directory:Ct["Directory"].Documents,path:yt.a.dirname(n),recursive:!0}),await Ct["Filesystem"].deleteFile({path:n,directory:Ct["Directory"].Documents});let o=0;console.log("Start writing",n);const i=new FileReader,r=1e7;let s=0,l=s+r;const c=async t=>{const i=t;o+=i.byteLength,await Ct["Filesystem"].appendFile({path:n,directory:Ct["Directory"].Documents,data:Buffer.from(t).toString("base64")}),a.update({message:this.$t("open_file")+`... (${(o/e.size*100).toFixed(2)}%)`}),s+=r,l+=r,s{if(s>=e.size)return console.log("done");const t=e.slice(s,l);i.readAsArrayBuffer(t)};i.onload=()=>{const e=i.result;c(e)},i.onerror=()=>{console.log("error",i.error.code,i.error.toString(),i.readyState,i.DONE),console.log("codes",i.error.NOT_FOUND_ERR,i.error.SECURITY_ERR,i.error.ABORT_ERR),console.log("file",e.name,e.size),console.log("Cost",Date.now()-t),u()};const u=()=>{a.hide(),this.value=!1,setTimeout((()=>{this.$q.dialog({message:this.$t("file_too_large"),ok:this.$t("ok")})}),500)},_=async()=>{console.log("Cost",Date.now()-t),console.log("Finish writing file",e.name);const{uri:o}=await Ct["Filesystem"].getUri({path:n,directory:Ct["Directory"].Documents});console.log("saved",decodeURI(o.replace("file://",""))),de["a"].emit("seed_torrent",{file:[decodeURI(o.replace("file://",""))],token:e.name,...this.settings}),this.value=!1,setTimeout((()=>{a.hide()}),1e3)};return d()}const t=this.inputFile.path?[this.inputFile.path]:this.inputFile.map((e=>e.path));de["a"].emit("seed_torrent",{file:t,token:t[0],...this.settings}),this.value=!1},submit(){(""!==this.input||this.inputFile)&&("download"===this.mode?this.downloadTorrent():this.uploadTorrent())},onPasteFile(e,t){console.log("on paste file",e);const a=decodeURI(e.replace(/^file:\/\//,""));if(!ft.a.existsSync(a))return console.log("Not exists");const n=a.includes("/")?a.split("/").filter((e=>e)).pop():a;e.endsWith(".torrent")?this.show("download",[t||{path:a,name:n}]):this.$q.dialog({html:!0,title:this.$t("upload"),message:this.$t(`ask_if_upload_file
${a}
`),ok:this.$t("upload"),cancel:this.$t("cancel")}).onOk((()=>{de["a"].emit("seed_torrent",{file:[a],token:a,settings:this.settings})}))},onPasteUrl(e){if(!e.startsWith(q["protocol"]+"://$"))return e.startsWith("magnet:")||e.startsWith(q["protocol"]+":")||e.startsWith(q["shortProtocol"]+":")?void this.show("download",e):console.log("error not magnet",e)},onPasteLibraryUrl(e){if(this.libraryDialog)return;if(!e.startsWith(q["shortProtocol"]+"-library"))return;const[t,a,n]=e.replace(new RegExp(`^${q["shortProtocol"]}-library://`),"").split("/");let o=0;const i=()=>{const r=Object(kt["c"])(n);if(!r)return o||this.$q.notify(this.$t("loading")),o++<5?setTimeout(i,2e3):(console.log("cannot parse",e),void this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}));"channel"===t&&(this.libraryDialog=this.$q.dialog({title:this.$t("go_to_library"),message:this.$t("go_to_library_channel_msg",[decodeURIComponent(a||n)]),ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>{this.$root.$emit("navigate-to"),this.$router.push(r+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",r))),this.libraryDialog=null})).onDismiss((()=>{this.libraryDialog=null})))};ot["a"].whenReady.then(i)},async onPaste(e){if(!Object(f["isElectron"])()&&!Object(x["a"])())return;if(this.value)return;const t=e._ab_payload_;console.log(t);const a=t||e.clipboardData.getData("text")||e.clipboardData.files;if(console.log("onPaste",a),"object"===typeof a&&a.path&&this.onPasteFile(a.path,a),this.disableTasks)return console.log("wait for login to continue",a),this.taskQueue.push({type:"download",file:a});if("function"===typeof e._onClose&&this.onMagnetCloseCallbacks.push(e._onClose),a.startsWith("file://"))return this.onPasteFile(a),e.preventDefault();if(a.startsWith("magnet:"))return this.onPasteUrl(a),e.preventDefault();if([q["protocol"],q["shortProtocol"]].some((e=>a.startsWith(e+":")))){const t=await Object(wt["a"])(a);return t.startsWith("magnet:")?this.onPasteUrl(a):t.startsWith(q["shortProtocol"]+"-library")?this.onPasteLibraryUrl(t):console.warn("unknown url:",t),e.preventDefault()}}},mounted(){this.$root.$off("openTaskDialog"),this.$root.$off("closeTaskDialog"),this.$root.$on("openTaskDialog",((...e)=>{console.log("open task",...e),this.show(...e)})),this.$root.$on("closeTaskDialog",(()=>this.hide())),document.body.addEventListener("paste",this.onPaste)},watch:{value(e){if(e&&"download"===this.mode){if(this.input||this.inputFile&&"file"===this.tab)return;const e=async e=>{if(!e)return;const t=e.trim();if(["magnet",q["protocol"],q["shortProtocol"]].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(wt["a"])(t);if(!e||!e.startsWith("magnet"))return;this.tab="url",this.input=t}};Object(St["a"])().then(e).catch((()=>{console.log("cannot read clipboard")}))}const t=this.onMagnetCloseCallbacks.splice(0);t.forEach((e=>{"function"===typeof e&&e()})),this.input="",this.inputFile=null}}},zt=Tt,Pt=(a("b389"),a("3927")),At=Object(Y["a"])(zt,mt,ht,!1,null,"a418da6e",null),It=At.exports;ie()(At,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QTabs:Oe["a"],QTab:Ee["a"],QInput:te["a"],QFile:Pt["a"],QBtn:ne["a"],QCardActions:we["a"]}),ie()(At,"directives",{ClosePopup:ke["a"]});var qt=a("9efe"),Ot=a("a449"),Et=(a("a749"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"global-recommend-page"},[a("LibraryRecommend",{attrs:{fullscreen:""}})],1)}),Dt=[],jt=a("36a5"),Nt={name:"GlobalRecommend",components:{LibraryRecommend:jt["a"]},data(){return{selected:[]}},computed:{show(){const e="signedIn"===w["a"].state.account.authState;return!!e&&(!!ot["a"].isLoggedIn&&ot["a"].isFirstRegister)}},methods:{},mounted(){}},Lt=Nt,Ut=(a("3669"),Object(Y["a"])(Lt,Et,Dt,!1,null,"67462de2",null)),Rt=Ut.exports,Mt=a("2e22"),Ft=a("d884");console.log("import io CLIENT"),console.log("-import io CLIENT");const{displayName:Bt,protocol:Wt,shortProtocol:Ht}=O.a,Vt=a("d310").isElectron();Vt||console.warn("Warning: Torrent downloader is not impl in browser mode now");const Qt=()=>{const e=async function(e){console.log("[mixinBlockchainUrl] on paste",e,e.clipboardData.getData("text"));const t=e.clipboardData.getData("text");if(![Wt,Ht].some((e=>t.startsWith(e))))return;e.preventDefault();const a=await Object(wt["a"])(t);a.startsWith("ab-blockchain:")&&global.handleAbBlockchain({url:a})};let t;return{mounted(){t=e.bind(this),document.body.addEventListener("paste",t)},beforeDestroy(){document.body.removeEventListener("paste",t)}}},Gt={mixins:[We],created(){this.$amplify.addOnAuthStateChangedListener((()=>{const e=Object(b["a"])("version");process.env.JEST_TEST||-1===e.indexOf("dev")&&"Alphabiz"===Bt&&(e.includes("internal")||e.includes("nightly"))&&setTimeout(this.showInternalNotice.bind(this),100)}),{once:!0})}};let Kt=null;var Yt={name:"App",provide(){return{rootApp:this,io:de["a"],lib:ot["a"],autoRenew:this.autoRenew,path:this.path,taskQueue:this.taskQueue,dp$source:this.dp$source}},components:{GlobalRecommend:Rt,AboutDialog:Ze,TaskDialog:It,ApplicationBar:at["a"]},mixins:[_t["a"],Ot["b"],Qt(),Gt],data(){return{isElectron:Vt,isTestEnv:!1,path:"/library",settings:null,taskQueue:[]}},computed:{shouldQueueTask(){return!!w["a"].getters.settings.forceLogin&&(!w["a"].getters.accountUserInfo||!w["a"].getters.accountUserInfo.sub)},downloadingTorrents(){return pt["a"].taskList.downloading}},methods:{async resolveQueue(){if(0===this.taskQueue.length)return;const e=[],t=[],a=[];let n=null;while(this.taskQueue.length){const o=this.taskQueue.shift();switch(o.type){case"download":o.file.startsWith("file://")?a.push(o.file):t.push(o.file);break;case"upload":e.push(o.files);break;case"uploadOrPlay":n=o.file;break}}console.log(e,t,a,n);for(const o of[...new Set(e)])await this.promptUpload(o);t.length&&await this.promptDownload([...new Set(t)].join("\n")),a.length&&await this.promptDownload([...new Set(a)].join("\n")),n&&this.promptUploadOrPlay(n)},promptDownload(e,t=!1){if(console.log(e,t),!Vt)return;const a=e.startsWith("magnet")||e.startsWith(Wt)||e.startsWith(Ht)||e.startsWith("file://")?e:"file://"+e;if(e.startsWith("file://")&&!ft.a.existsSync(e))return;if(this.shouldQueueTask)return console.log("queue download",e,t),void this.taskQueue.push({type:"download",file:a,isMagnet:t});let n=null;const o=new Promise((e=>{n=e})),i=new DataTransfer;i.setData("text/plain",a);const r=new ClipboardEvent("paste",{clipboardData:i});return console.log("dispatch paste event"),r._ab_payload_=a,r._is_magnet_=t,r._onClose=n,console.log("dispatch event"),document.body.dispatchEvent(r),o},promptUpload(e){if(this.shouldQueueTask)return console.log("queue upload",e),void this.taskQueue.push({type:"upload",files:e});let t=null;const n=new Promise((e=>{t=e}));if(console.log("upload",e),!Vt){const o=()=>{de["a"].emit("wt-add",e[0]),t&&t()},i=a("c620").wtClient;return i.torrents.length?this.$q.dialog({message:this.$t("remove_old_task_desc"),ok:this.$t("remove_old_task"),cancel:this.$t("cancel")}).onOk((()=>{i.torrents[0]?(i.torrents[0].destroy(),i.torrents.splice(0),o()):o()})).onCancel(t):this.$q.dialog({message:this.$t("upload_torrent"),ok:this.$t("upload")}).onOk(o).onCancel(t),n}const o=e.map((e=>e.path||e)),i=o.map((e=>`
${e}
`)).join(""),r={html:!0,style:"white-space:pre-wrap;word-break:break-all",title:this.$t("upload"),message:this.$t("ask_if_upload_file")+"
"+i,ok:this.$t("upload"),cancel:this.$t("cancel")};return o.length>1&&(r.options={type:"radio",model:"single",items:[{label:this.$t("upload_as_single_files"),value:"single"},{label:this.$t("upload_as_one_directory"),value:"directory"}]}),this.$q.dialog(r).onOk((e=>{if(console.log("upload files",e,o),"single"===e)return o.forEach((e=>{de["a"].emit("seed_torrent",{file:[e],token:e,settings:{...this.settings},trackers:w["a"].getters.settings.trackerList||[]})})),void(t&&t());const a=1===o.length?o[0]:"";de["a"].emit("seed_torrent",{file:o,token:a,settings:{...this.settings},trackers:w["a"].getters.settings.trackerList||[]}),t&&t()})).onCancel((()=>{t&&t()})),n},promptUploadOrPlay(e){if(this.shouldQueueTask)return console.log("queue uploadOrPlay",e),void this.taskQueue.push({type:"uploadOrPlay",file:e});console.log(e),this.$q.dialog({title:this.$t("upload_or_play"),message:this.$t("ask_if_upload_or_play"),options:{type:"checkbox",model:[],items:[{label:this.$t("play"),value:"play"},{label:this.$t("upload"),value:"upload"}]},ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((t=>{if(t&&(t.includes("upload")&&de["a"].emit("seed_torrent",{file:[e.path||e],token:Math.random().toString().substring(2),settings:{...this.settings},trackers:w["a"].getters.settings.trackerList||[]}),t.includes("play"))){const t={};if("string"===typeof e){const a={src:"play:///"+encodeURI(e)};console.log("play source"),t.action={type:"play_source",source:a}}else console.log("play file"),t.action={type:"play_file",file:e};this.$router.push({name:"Player",query:{rand:Math.random()},params:t})}}))},getPublicVersion(e){return Object(b["a"])(e)},async onDrop(e){const t=e.dataTransfer.getData("text");if(console.log("drop",e,t),!t&&(!e.dataTransfer.files||!e.dataTransfer.files[0]))return;e.preventDefault();const a=[...e.dataTransfer.files];console.log(a);const n=t&&!a.length;if(await ct(e,a,t),Vt&&a.length){const e=a.some((e=>!ft.a.existsSync(null===e||void 0===e?void 0:e.path)));if(e)return this.$q.notify(this.$t("file_not_found"))}if(n)return this.promptDownload(t,!0);if(1===a.length){var o,i,r,s;if(Object(Xe["a"])((null===(o=a[0])||void 0===o?void 0:o.path)||""))return this.promptUploadOrPlay(a[0]);if(null!==(i=a[0])&&void 0!==i&&null!==(r=i.path)&&void 0!==r&&r.endsWith(".torrent"))return this.promptDownload(null===(s=a[0])||void 0===s?void 0:s.path)}if(a.length>=1){if(!Vt&&(a.length>1||!a[0].size))return this.$q.dialog({message:this.$t("web_mode_upload_single"),ok:this.$t("ok")});this.promptUpload([...a])}},showDisabled(){const e=this.$q.dialog({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[30]),ok:!1,cancel:!1,style:"z-index: 9999"}),t=Date.now();setInterval((()=>{const n=Math.floor((Date.now()-t)/1e3),o=30-n;e.update({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[o<0?0:o]),ok:!1,cancel:!1,style:"z-index: 9999"}),o<0&&a("1b85").ipcRenderer.send("exit-app")}),1e3)},resolveUnfinishPayments(){clearTimeout(Kt),Kt=setTimeout((()=>{const e=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]"),t=w["a"].state.credits.expensesTransactions.filter((t=>"FINISH"!==t.status&&"FAILED"!==t.status&&!e.includes(t.id)));if(!t.length)return console.log("No out-of-date unfinish payments");const a=new Date;a.setDate(a.getDate()-3);const n=t.filter((e=>{const t=new Date(e.createdAt);return t{this.dp$confirm(e.id)}))}),1e4)}},beforeCreate(){if(!this.$route.path.startsWith("/library")){if(new URL(location.href).pathname.startsWith("/oauth_redirect"))return;setTimeout((()=>{console.log(this.$route.path),"/library"!==this.$route.path?this.$router.replace("/library"):console.log("Currently in library page")}),1e3)}if(Vt){const e=a("1b85").ipcRenderer;e.once("redirect-log",((e,t)=>{a.e(11).then(a.bind(null,"44cf")).then((({default:e})=>{console.log("Should redirect to",t),e(t)}))}))}},created(){function e(e){for(const t of e){const e=this.dp$expenseHashMapper[t.infoHash];if(e)for(const t of e){const e=this.dp$expenseTxnDict[t];"PENDING"===e.status?this.dp$cancel(e.id):"COMPLETED"===e.status&&(console.log("dp$confirm from pauseAllDownloading"),this.dp$confirm(e.id))}}}if(qt["a"].enable.call(this),Object(ut["b"])(this),nt["a"].$on("request-sign-out",(()=>{console.log("request sign out");const t=this.$alphabiz.dialog({title:this.$t("account_sign_out"),message:this.$t("account_sign_out_confirm"),ok:this.$t("account_sign_out_anyway"),cancel:this.$t("cancel")}).onOk((async()=>{de["a"].emit("user_logout"),t.hide();const a=this.$q.dialog({progress:!0,message:this.$t("account_signing_out"),persistent:!0,ok:!1});e(w["a"].getters.tasks.downloading),await Object(dt["d"])(!0),await Object(dt["e"])(!0),a.hide(),nt["a"].$emit("confirm-sign-out")}))})),w["a"].dispatch("fetchSettings").then((e=>{if(!e.language)return;this.settings=e,console.log(e.language,this.$route.path);const t=Object(Ft["a"])(e.language)?e.language:"en-US";this.$i18n.locale=t,tt["a"].set({system:"auto",light:!1,dark:!0}[e.darkMode]),de["a"].emit("update_torrent_settings",{uploadLimit:e.uploadSpeed,downloadLimit:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,highLevelRadix:e.payedUserShareRadix,dhtPort:e.DHTlistenPort,torrentPort:e.BTlistenPort})})),Vt){(async()=>{console.log("Get client geoip");const e=global["require"]("geoip-country"),t=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("Failed to get geo for",e.message)}));if(!t)return;const a=e.lookup(t);if(!a)return console.log("Failed to get geo for",t);const n=a.country,o=O.a;"blacklist"===o.register.mode&&o.register.list.includes(n)?(console.log(n,"is in black list",o.register.list),this.showDisabled()):"whitelist"!==o.register.mode||o.register.list.includes(n)?console.log("Geo",n,o.register.list,"available in mode",o.register.mode):(console.log(n,"is not in white list",o.register.list),this.showDisabled())})(),document.body.style.overflowY="hidden";const e=a("1b85").ipcRenderer;e.on("open-file",((e,...t)=>{if(0!==t.length){if(1===t.length){const e=t[0];if(e.endsWith(".torrent")||e.startsWith(Wt+"://")||e.startsWith("magnet"))return this.promptDownload(e);if(e.startsWith(Ht+"://"))return this.promptDownload(e,!0);if(Object(Xe["a"])(e))return this.promptUploadOrPlay(e);if(e.endsWith(".abk"))return this.lib$openABK(e)}return this.promptUpload(t)}})),e.on("ask-for-associate",(()=>{this.$q.notify({message:this.$t("not_default_app"),actions:[{label:this.$t("dont_show_again"),handler:()=>w["a"].dispatch("set",{dontAskForAssociate:!0})},{label:this.$t("go_to_settings"),handler:()=>this.$router.push("/advanceSetting#bind-ports")}]})})),e.on("need-more-space",((e,{need:t,free:a})=>{Object(dt["d"])(!0),w["a"].dispatch("set",{libraryPreload:!1}).then((()=>{w["a"].dispatch("fetchSettings")})),this.$q.dialog({title:this.$t("space_not_enough"),message:this.$t("need_more_space",[Object(et["a"])(t),Object(et["a"])(a),Object(et["a"])(w["a"].getters.settings.minDiskSpace)]),ok:this.$t("ok")})})),e.on("main-process-error",((e,t)=>{console.error("Main process throws error:",t.stack)})),de["a"].once("first_launch",(async()=>{const e=Object(b["a"])("version"),t=localStorage.getItem(`first-launch_${O.a.name}`);if(t===e)return console.log("[First Launch Check] Not first launch");await ot["a"].whenReady,await Mt["a"].methods.initFilmRate(),await new Promise((e=>setTimeout(e,5e3))),this.$q.dialog({title:this.$t("set_download"),message:this.$t("set_download_desc"),ok:this.$t("go_to_settings"),cancel:this.$t("not_now")}).onOk((()=>{this.$router.replace("/basicSetting?highlight=download-directory")})).onDismiss((()=>{console.log("Dismiss"),localStorage.setItem(`first-launch_${O.a.name}`,e)}))})),setTimeout((()=>{e.send("main-window-ready")}),2e3)}},mounted(){w["a"].getters.accountUserInfo&&w["a"].getters.accountUserInfo.sub||de["a"].emit("user_logout"),(process&&process.env.TEST_EMAIL_DOMAIN||document.cookie.includes("TestEnv"))&&(this.isTestEnv=!0,Vt?(a("1b85").ipcRenderer.send("enable_devtools"),w["a"].dispatch("fetchSettings")):w["a"].dispatch("set",{disableDevTools:!1}).then((()=>{w["a"].dispatch("fetchSettings")}))),["dragleave","drop","dragenter","dragover"].forEach((e=>{document.getElementById("q-app").addEventListener(e,(e=>{e.preventDefault()}))})),nt["a"].$on("update-authstate",(e=>{"signedIn"===e&&(console.log("Signed in. Resolve queue."),this.resolveQueue())})),document.body.addEventListener("drop",this.onDrop)},beforeDestroy(){document.body.removeEventListener("drop",this.onDrop)},watch:{isTestEnv(e){window.isTestEnv=e},"$store.state.credits.expensesTransactions"(){this.resolveUnfinishPayments()},"$store.state.account.authState"(e,t){if("signedOut"!==e||t&&"signedIn"!==t||(this.$route.path.includes("/library")&&(this.$root.$emit("navigate-to"),this.$router.push("/library")),w["a"].getters.settings.forceLogin&&this.$amplify.showSignedOutDialog()),"signedIn"===e){if(console.log('dp$address: io.emit("set_user")',this.dp$address),de["a"].emit("set_user",{user:w["a"].state.account.nickname,sub:this.dp$address}),ot["a"].whenReady.then((()=>{console.log("all ready",this.taskQueue)})),w["a"].getters.shouldDisableTasks)return;de["a"].emit("user_login")}},downloadingTorrents(e,t){if("Player"!==this.$route.name&&!this.$route.path.startsWith("/library")&&e.length>t.length){const a=t.map((e=>e.origin||e.infoHash));let n=!1;for(const t of e){const e=t.origin||t.infoHash;if(!a.includes(e)){if(t.fromPost)return;n=!0}}if(n){const e="/downloader?currentTab=downloading";if(this.$router.currentRoute.fullPath===e)return;this.$router.push(e)}}}}},Jt=Yt,Zt=(a("0928"),a("c782")),Xt=Object(Y["a"])(Jt,p,m,!1,null,null,null),ea=Xt.exports;ie()(Xt,"components",{QScrollArea:Zt["a"],QDialog:J["a"],QCard:Z["a"]});var ta=async function(){const e="function"===typeof w["a"]?await Object(w["a"])({Vue:r["a"]}):w["a"],t="function"===typeof st["a"]?await Object(st["a"])({Vue:r["a"],store:e}):st["a"];e.$router=t;const a={router:t,store:e,render:e=>e(ea),el:"#q-app"};return{app:a,store:e,router:t}},aa=a("91ab"),na=a("f4eb"),oa=a.n(na);function ia(e){return oa()(e).luminosity()<.4?oa()("white").fade(.1).string():oa()("black").fade(.3).string()}function ra(e){return oa()(e).luminosity()<.4?oa()(e).saturate(.3).darken(.5).string():oa()(e).desaturate(.3).darken(.5).string()}function sa(e,t){const a=e=>{const a=oa()(t).isDark()?4:3;return oa()(e).contrast(oa()(t))>=a};if(a(e))return e;const n=oa()(e).isDark();let o=oa()(e);return o=n?o.mix(oa()("white"),.3):o.mix(oa()("black"),.3),a(o.string())||(o=o.saturate(.6)),o.string()}function la(e,t=!1){const a={color_page:"#fcfcfc",color_page_darken:"#1f1f1f"};return sa(e,t?a.color_page_darken:a.color_page)}var ca={invokeTextColor:ia,invokeDarkenColor:ra,invokeOnPageColor:la};let da;const ua={mixins:[],render(e){const t=[];return this._injectVars(t),this._injectRules(t),e("style",{attrs:{type:"text/css","data-ab-theme":""}},t.join("\n"))},methods:{_injectVars(e){Object.keys(this.vars$root).length&&e.push(`:root {\n ${Object.entries(this.vars$root).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`),Object.keys(this.vars$light).length&&e.push(`.body--light {\n ${Object.entries(this.vars$light).map((e=>" "+e.join(": ")+";")).join("\n")}\n}`),Object.keys(this.vars$dark).length&&e.push(`.body--dark {\n ${Object.entries(this.vars$dark).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)},_injectRules(e){Object.entries(this.rules$root).forEach((([t,a])=>{e.push(`${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$light).forEach((([t,a])=>{e.push(`.body--light ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$dark).forEach((([t,a])=>{e.push(`.body--dark ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)}))},setVars(e,t=null){const a=null===t?"vars$root":t?"vars$dark":"vars$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[`--${Object(aa["a"])(t)}`]:a})),{}))},setRules(e,t=null){const a=null===t?"rules$root":t?"rules$dark":"rules$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[t]:Object.entries(a).reduce(((e,[t,a])=>({...e,[Object(aa["a"])(t)]:a})),{})})),{}))}},data(){return{vars$root:{},vars$light:{},vars$dark:{},rules$root:{},rules$light:{},rules$dark:{}}}};function _a(){return da||(da=document.createElement("style"),document.head.appendChild(da)),da}let pa;var ma=e=>pa||(ua.mixins.push({created(){this.setupTheme(e)},methods:{setupTheme(e){Object.entries(e).forEach((([e,t])=>{this.setVars({[`q_color_${e}`]:t,[`q_color_on_${e}`]:ca.invokeTextColor(t),[`q_color_txt_${e}`]:ca.invokeOnPageColor(t,!1)},!1),this.setVars({[`q_color_${e}`]:ca.invokeDarkenColor(t),[`q_color_on_${e}`]:ca.invokeTextColor(ca.invokeDarkenColor(t)),[`q_color_txt_${e}`]:ca.invokeOnPageColor(ca.invokeDarkenColor(t),!0)},!0)}));const t=e=>this.setRules({[`.bg-${e}`]:{backgroundColor:`var(--q-color-${e}) !important`,color:`var(--q-color-on-${e})`},[`.text-${e}`]:{color:`var(--q-color-txt-${e}) !important`},[`.bg-${e} .text-${e}`]:{color:`var(--q-color-on-${e}) !important`},[`.bg-${e}.text-${e}`]:{color:`var(--q-color-on-${e}) !important`}});Object.keys(e).forEach(t)}}}),pa=new r["a"](ua),pa.$mount(_a()),{updateTheme(e){var t;null===(t=pa)||void 0===t||t.setupTheme(e)}}),ha=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handlePan,expression:"handlePan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"overflow-hidden",staticStyle:{"max-width":"360px"},style:e.floatingStyle,attrs:{flat:e.inner,bordered:e.inner}},[a("q-card-section",{staticClass:"q-py-xs flex relative-position bg-primary text-primary"},[a("div",[e._v("Theme Editor")]),a("q-space"),e.inner?a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"open_in_new",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("show")}}}):e._e(),e.inner?e._e():a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"close",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-py-xs"},e._l(e.currentColors,(function(t,n){return a("InputColor",{key:n,attrs:{label:n,value:t},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},input:function(t){return e.updateColor(n,t)}}})})),1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-sm flex"},[a("q-space"),a("q-btn",{staticClass:"q-mx-xs",attrs:{label:"Reset",unelevated:"",color:"general","text-color":"general","no-caps":""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:e.reset}})],1)],1)},ga=[],fa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"q-my-sm",attrs:{label:e.label,value:e.value,outlined:"",dense:"",readonly:""},on:{input:function(t){return e.$emit("input",t)}},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("q-icon",{staticClass:"rounded-borders cursor-pointer",style:{backgroundColor:e.value,color:e.textColor,width:"32px",height:"32px",marginLeft:"-8px"},attrs:{name:"colorize"}},[a("q-popup-proxy",{attrs:{cover:"","transition-show":"scale","transition-hide":"scale"}},[a("q-color",{attrs:{value:e.value},on:{input:function(t){return e.$emit("input",t)}}})],1)],1)]},proxy:!0},{key:"after",fn:function(){return[a("div",{staticClass:"flex items-center full-height",staticStyle:{margin:"-4px -8px -4px -2px"}},[a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.value,color:e.ColorUtils.invokeTextColor(e.value),width:"40px",height:"40px"}}),a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.ColorUtils.invokeDarkenColor(e.value),color:e.ColorUtils.invokeTextColor(e.ColorUtils.invokeDarkenColor(e.value)),width:"40px",height:"40px"}})])]},proxy:!0}])})},ba=[],ya={name:"InputColor",props:{label:String,value:String},data(){return{ColorUtils:ca}},computed:{textColor(){return ca.invokeTextColor(this.value)}}},va=ya,wa=a("f106"),ka=a("ff50"),Sa=Object(Y["a"])(va,fa,ba,!1,null,"30ed6541",null),Ca=Sa.exports;ie()(Sa,"components",{QInput:te["a"],QIcon:wa["a"],QPopupProxy:ka["a"],QColor:Ye["a"]});let xa=null;const $a={data(){return{floating$info:null,floating$size:null}},computed:{floatingStyle(){var e,t,a,n;if(this.inner)return{};const o={};this.floating$info?Object.assign(o,{x:this.floating$info.position.left,y:this.floating$info.position.top}):this.floating$size?Object.assign(o,{x:document.body.clientWidth/2-this.floating$size.width/2,y:document.body.clientHeight/2-this.floating$size.height/2}):Object.assign(o,{x:0,y:0});const i=8;return o.y=Math.max(i,Math.min(o.y,document.body.clientHeight-i-(null!==(e=null===(t=this.floating$size)||void 0===t?void 0:t.height)&&void 0!==e?e:0))),o.x=Math.max(i,Math.min(o.x,document.body.clientWidth-i-(null!==(a=null===(n=this.floating$size)||void 0===n?void 0:n.width)&&void 0!==a?a:0))),{position:"fixed",top:o.y+"px",left:o.x+"px"}}},mounted(){const{width:e,height:t}=getComputedStyle(this.$refs.card.$el),a=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e);this.floating$size={width:a(e),height:a(t)}},methods:{handlePan(e){if(!this.inner){if(this.floating$info=this.floating$info||{},e.isFirst){const e=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e),{top:t,left:a}=getComputedStyle(this.$refs.card.$el);Object.assign(this.floating$info,{from:{x:e(a),y:e(t)}})}else e.isFinal;Object.assign(this.floating$info,{position:{top:this.floating$info.from.y+e.offset.y,left:this.floating$info.from.x+e.offset.x}}),this.floating$info=Object.assign({},this.floating$info)}}}},Ta={data(){return xa=xa||Object.assign({},this.$theme.getCurrentTheme()),{currentColors:xa}},methods:{updateColor(e,t){this.currentColors[e]=t,this.$theme.updateTheme({[e]:t})},reset(){Object.assign(this.currentColors,this.$theme.getCurrentTheme()),this.$theme.updateTheme(this.currentColors)}}};var za={name:"ThemeEditor",mixins:[$a,Ta],components:{InputColor:Ca},props:{inner:Boolean}},Pa=za,Aa=a("3a21"),Ia=Object(Y["a"])(Pa,ha,ga,!1,null,null,null),qa=Ia.exports;let Oa;ie()(Ia,"components",{QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"]}),ie()(Ia,"directives",{TouchPan:Aa["a"]});var Ea=({Vue:e})=>{e.component("ThemeEditor",qa);let t=O.a.theme.color;const a=ma(t);e.prototype.$theme={showFloatingEditor:Da,hideFloatingEditor:ja,hasFloatingEditor:()=>!!Oa,updateTheme:e=>a.updateTheme(e),getCurrentTheme:()=>t}};function Da({onClose:e}={}){if(Oa)return;const t=document.createElement("div");document.body.appendChild(t),Oa=new r["a"]({render(t){return t("ThemeEditor",{ref:"editor",on:{close:()=>{ja(),null===e||void 0===e||e()}}})}}).$mount(t)}function ja(){Oa&&(Oa.$destroy(),Oa.$el.remove(),Oa=null)}a("f200"),a("d4b5"),a("7a76"),a("dc69"),a("b37d");var Na=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g({class:["icon","text"].includes(e.buttonType)?"bg-transparent":void 0,attrs:{"no-wrap":"","no-caps":e.noCaps,size:e.size,loading:e.loading,disable:e.value||e.loading,percentage:e.percentage,type:e.type,icon:e.icon,fab:["fab"].includes(e.buttonType),unelevated:!["fab","elevated"].includes(e.buttonType),dense:e.dense,round:["icon"].includes(e.buttonType),label:["icon"].includes(e.buttonType)?void 0:e.label,color:["icon","text"].includes(e.buttonType)?void 0:e.color,textColor:["general","primary","secondary","accent","positive","negative"].includes(e.color)?e.color:""},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])},Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},La=[],Ua={name:"AlphabizButton",props:{buttonType:{type:String,default:"filled"},color:{type:String,default:"general"},size:{type:String,default:"md"},noCaps:{type:Boolean,default:!1},icon:{type:String,default:void 0},dense:Boolean,label:{type:String,default:void 0},value:{type:Boolean,default:!1},immediate:{type:Boolean,default(){return!!this.onClick}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},timeout:{type:Object,default:void 0},onAnimationEnd:{type:Function,default:void 0}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}else this.$emit("click",e)},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t&&t()}return o}}},beforeDestroy(){this.shutdownTimer()}},Ra=Ua,Ma=(a("c036"),a("53ef")),Fa=Object(Y["a"])(Ra,Na,La,!1,null,null,null),Ba=Fa.exports;ie()(Fa,"components",{QBtn:ne["a"],QSpinner:Ma["a"]});var Wa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"alphabiz-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,label:e.label,"use-input":Boolean(e.filter),"input-debounce":"0","input-style":e.enableFilter?"":"display:none"},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}}],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},Ha=[],Va={name:"AlphabizSelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String,Boolean],label:String,itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0}},data(){return{enableFilter:!1,filterValue:""}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid alphabiz-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0,this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.enableFilter=!1,this.filterValue=""},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))}}},Qa=Va,Ga=(a("9344"),a("b121")),Ka=Object(Y["a"])(Qa,Wa,Ha,!1,null,null,null),Ya=Ka.exports;ie()(Ka,"components",{QSelect:ee["a"],QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QItemLabel:ye["a"],QField:Ga["a"]});var Ja=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"wrapper",staticClass:"virtual-scroll-grid-wrapper",on:{scroll:e.handleScroll}},[e._e(),a("div",{ref:"before",staticClass:"virtual-scroll-grid__before"},[e._t("before",null,null,e.getSlotContext())],2),a("div",{ref:"grid",staticClass:"virtual-scroll-grid"},[e._l(e.items,(function(t,a){return e._t("default",null,null,Object.assign(e.getSlotContext(),{item:t,index:e.virtual.from+a}))}))],2),a("div",{ref:"after",staticClass:"virtual-scroll-grid__after"},[e._t("after",null,null,e.getSlotContext())],2)])},Za=[],Xa=a("3387");const en={data(){return{grid:{container_width:void 0,column:void 0,scroll_top:void 0},virtual:{enable:!0,from:0,to:0},go$observer:null,update_enable:!0}},methods:{vs$calc(){const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter,c=Math.max(1,Math.floor((r-this.gutter)/s)),d=Math.floor((r-c*s)/2);let u=0;u+=this.gutter/2,u+=i;const _=Math.max(0,Math.floor((o-u)/l)),p=_*c,m=o-u-_*l,h=Math.ceil((n+m)/l),g=p+h*c,f=Math.min(g,this.itemsSize),b=h+(g>this.itemsSize?-1:0),y=f-p,v=this.itemsSize%c,w=Math.ceil((this.itemsSize-f)/c);let k,S,C,x;if(this.virtual.enable){const e=Math.max(0,_-this.virtualScrollSliceRow),t=Math.max(0,w-this.virtualScrollSliceRow);k=e*l,S=t*l;let a=t*c;a&&v&&(a-=c-v),C=0+e*c,x=this.itemsSize-a}else k=0,S=0,C=0,x=this.itemsSize;return{wrapper:e,grid:a,scroll_top:o,column:c,padding:d,scroll_row_top:_,scope_from:p,scope_to:f,scope_row:b,scope_count:y,scope_mod:v,scroll_row_bottom:w,virtual_padding_top:k,virtual_padding_bottom:S,virtual_from:C,virtual_to:x}},vs$update2(){const{wrapper:e,grid:t,scroll_top:a,column:n,padding:o,scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u,virtual_padding_top:_,virtual_padding_bottom:p,virtual_from:m,virtual_to:h}=this.vs$calc(),g=([e,t])=>this.grid[e]===t||(this.grid[e]=t),f=([e,t])=>this.grid[e]===t||(this.grid[e]=t);Object.entries({scroll_top:a,column:n}).map(g),this.grid._padding!==o&&(this.grid._padding=o,e.style.setProperty("--virtual-scroll-grid-padding",`${o}px`)),Object.entries({scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u}).map(f);const b=0;(this.virtual.to-s<=b||r-this.virtual.from<=b)&&(this.virtual._virtual_padding_top!==_&&(this.virtual._virtual_padding_top=_,t.style.setProperty("--virtual-scroll-offset-top",`${_}px`)),this.virtual._virtual_padding_bottom!==p&&(this.virtual._virtual_padding_bottom=p,t.style.setProperty("--virtual-scroll-offset-bottom",`${p}px`)),this.virtual.from!==m&&(this.virtual.from=m),this.virtual.to!==h&&(this.virtual.to=h))},vs$update(e){const t=()=>{const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter;return{wrapper:e,before:t,grid:a,wrapper_height:n,scroll_top:o,before_height:i,grid_width:r,width_per_item:s,height_per_item:l}},a={on_measure:({grid_width:e,width_per_item:t})=>{const a=Math.max(1,Math.floor((e-this.gutter)/t)),n=Math.floor((e-a*t)/2);return{column:a,padding:n}},on_update:({wrapper:e,column:t,padding:a,scroll_top:n})=>{this.grid.scroll_top=n,this.grid.column=t,e.style.setProperty("--virtual-scroll-grid-padding",`${a}px`)}},n={on_measure:({scroll_top:e,height_per_item:t,wrapper_height:a,before_height:n,column:o})=>{let i=0;i+=this.gutter/2,i+=n;const r=Math.max(0,Math.floor((e-i)/t)),s=r*o,l=e-i-r*t,c=Math.ceil((a+l)/t),d=s+c*o,u=Math.min(d,this.itemsSize),_=c+(d>this.itemsSize?-1:0),p=u-s,m=this.itemsSize%o,h=Math.ceil((this.itemsSize-u)/o);return{scroll_row_top:r,scope_from:s,scope_to:u,scope_row:_,scope_count:p,scope_mod:m,scroll_row_bottom:h}},on_update:e=>{this.grid.scroll_row_top=e.scroll_row_top,this.grid.scope_from=e.scope_from,this.grid.scope_to=e.scope_to,this.grid.scope_row=e.scope_row,this.grid.scope_count=e.scope_count,this.grid.scope_mod=e.scope_mod,this.grid.scroll_row_bottom=e.scroll_row_bottom}},o={on_measure:({scroll_row_top:e,scroll_row_bottom:t,height_per_item:a,column:n,scope_mod:o})=>{if(!this.virtual.enable)return{virtual_padding_top:0,virtual_padding_bottom:0,virtual_from:0,virtual_to:this.itemsSize};e=Math.max(0,e-this.virtualScrollSliceRow),t=Math.max(0,t-this.virtualScrollSliceRow);const i=e*a,r=t*a;let s=t*n;s&&o&&(s-=n-o);const l=0+e*n,c=this.itemsSize-s;return{virtual_padding_top:i,virtual_padding_bottom:r,virtual_from:l,virtual_to:c}},on_update:({grid:e,virtual_padding_top:t,virtual_padding_bottom:a,virtual_from:n,virtual_to:o})=>{e.style.setProperty("--virtual-scroll-offset-top",`${t}px`),e.style.setProperty("--virtual-scroll-offset-bottom",`${a}px`),this.virtual.padding_top=t,this.virtual.padding_bottom=a,this.virtual.from=n,this.virtual.to=o}},i={update_rect:a,update_grid:n,update_virtual:o};e||(e=Object.keys(i));const r=t();r&&(e.forEach((e=>{i[e]&&Object.assign(r,i[e].on_measure(r))})),e.forEach((e=>{i[e]&&i[e].on_update(r)})))},scrollTo(e){this.$refs.wrapper.scrollTop=e}},activated(){this.grid.scroll_top&&this.scrollTo(this.grid.scroll_top),this.update_enable=!0},deactivated(){this.update_enable=!1},mounted(){const e=this.vs$update2,t=Object(Xa["debounce"])((()=>e.call(this)),!0===this.$q.platform.is.ios?120:35,{trailing:!0});this.vs$update=(a,n)=>{this.update_enable&&(n?t.call(this):e.call(this))};const a=this.$refs.wrapper;this.$watch("gutter",(()=>{a.style.setProperty("--virtual-scroll-grid-gutter",`${this.gutter}px`)}),{immediate:!0}),this.$watch("itemWidth",(()=>{a.style.setProperty("--virtual-scroll-grid-item-width",`${this.itemWidth}px`)}),{immediate:!0}),this.$watch("itemHeight",(()=>{a.style.setProperty("--virtual-scroll-grid-item-height",`${this.itemHeight}px`)}),{immediate:!0}),this.go$observer=new ResizeObserver((()=>this.vs$update("go$observer"))),this.go$observer.observe(this.$refs.grid);const n=["gutter","itemsSize","virtualScrollSliceRow","itemWidth","itemHeight"];this.$watch((()=>n.reduce(((e,t)=>({...e,[t]:this[t]})),{})),(()=>this.vs$update("watcher")))},beforeUnmount(){this.go$observer.disconnect()}};var tn={name:"VirtualScrollGrid",mixins:[en],props:{virtualScrollSliceRow:{type:Number,default:30},itemWidth:Number,itemHeight:Number,gutter:{type:Number,default:16},itemsSize:Number,itemsFn:Function},data(){return{items:[]}},methods:{getSlotContext(){return{column:this.grid.column,mod:this.grid.scope_mod,virtual:this.virtual,grid:this.grid}},handleScroll(...e){this.vs$update("scroll",!0),this.$emit("scroll",...e),this.$emit("virtual-scroll",{from:this.virtual.from,to:this.virtual.to})}},mounted(){let e=!0;this.$watch((()=>(e&&(e=!1,this.vs$update("item_init")),this.itemsFn(this.virtual.from,this.virtual.to))),(e=>{this.items=e}),{immediate:!0})}},an=tn,nn=(a("06cd"),Object(Y["a"])(an,Ja,Za,!1,null,null,null)),on=nn.exports,rn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{"no-shake":"","content-class":{"fullscreen-dialog":!e.progress},persistent:!0,position:e.screen$xs&&!e.progress?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.handleEsc.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleEnter.apply(null,arguments)}]}},[a("q-card",{staticClass:"column",style:{position:"relative",minWidth:e.title||e.showActions?"320px":void 0,maxWidth:"400px",maxHeight:"calc(100vh - 64px)"}},[e.title?a("q-card-section",{staticClass:"q-px-md q-pb-none",style:{paddingTop:"20px"}},[e.title?a("div",{staticClass:"text-h6 text-weight-bold non-selectable"},[e._v("\n "+e._s(e.title)+"\n ")]):e._e()]):e._e(),e.message?[a("q-card-section",{staticClass:"q-pb-none"},[a("div",{staticStyle:{"white-space":"pre-line"}},[e._v(e._s(e.message))])])]:e._e(),a("DialogBanner",{attrs:{banner:e.banner}}),a("DialogProgress",{attrs:{progress:e.progress}}),a("DialogList",{attrs:{list:e.list}}),a("DialogOption",{attrs:{options:e.options},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),a("DialogPrompts",{attrs:{prompts:e.prompts},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),e.showActions?a("q-card-actions",{staticClass:"q-px-md q-py-md",attrs:{vertical:""}},e._l(e.buttonAttrs,(function(t,n){return a("q-btn",e._g(e._b({directives:[{name:"show",rawName:"v-show",value:t.show,expression:"attrs.show"}],key:n,on:{keydown:function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;t.stopPropagation()}}},"q-btn",t.props,!1),t.event))})),1):e._e()],2)],1)},sn=[],ln={data(){return{dialog$validResults:{}}},computed:{dialog$validResult(){const e=Object.values(this.dialog$validResults).find((e=>!0!==e));return e||!0}},methods:{dialog$setValid(e,t){this.dialog$validResults={...this.dialog$validResults,[e]:t}}}},cn={data(){return{dialog$argumentGetters:{}}},methods:{dialog$arguments(){const e=Object.keys(this.dialog$argumentGetters).reduce(((e,t)=>(e[t]=this.dialog$argumentGetters[t](this),e)),{});return e},dialog$registerArgument(e,t){this.dialog$argumentGetters[e]=t}}},dn={data(){return{loadingState:null}},methods:{async dialog$useLoadingState(e,t){let a;try{this.loadingState=e;const n=t(this);a=n.then?await n:n}finally{this.loadingState=null}return a}}},un={methods:{dialog$buttonObject(e,t){if(!1===t)return null;const a={color:"general",textColor:"general",label:this.$t(e)},n={};return Object.assign(n,a),"object"===typeof t&&(Object.assign(n,t),"function"===typeof t.label&&(n.label=t.label()),"function"===typeof t.disable&&(n.disable=t.disable())),"function"===typeof t&&(n.handler=t.bind(this)),"string"===typeof t&&(n.label=t),n},async dialog$buttonHandler(e,t){if(!e)return;const a=e.handler;try{if(a){const e=a(this);e&&e.then&&await e}else t&&t()}catch(n){this.$emit("error",n)}},dialog$buttonAttrs(e,t,a){if(!t)return{show:!1};const n={noCaps:!0,noWrap:!0,unelevated:!0};return Object.assign(n,t),n.loading=this.loadingState===e||t.loading,n.disable=!!this.loadingState||t.disable,{show:!!t,props:n,event:{click:a}}}}},_n={props:{actions:Object},computed:{dialog$actionButtons(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=this.dialog$buttonObject(t,this.actions[t]),e)),{}):null},dialog$actionHandlers(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=()=>this.dialog$buttonHandler(this.dialog$actionButtons[t]),e)),{}):null}}},pn={props:{ok:{type:[Boolean,String,Function,Object],default:!0},cancel:{type:[Boolean,String,Function,Object],default:!1}},computed:{buttonOk(){const e=this.dialog$buttonObject("ok",this.ok);return e?(e.disable||(e.disable=!0!==this.dialog$validResult),e):e},buttonCancel(){return this.dialog$buttonObject("cancel",this.cancel)}},methods:{async handleOk(){await this.dialog$buttonHandler(this.buttonOk,(()=>{this.emitOk(this.dialog$arguments()),this.hide()}))},async handleCancel(){await this.dialog$buttonHandler(this.buttonCancel,(()=>{this.hide()}))}}},mn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.banner?a("q-card-section",{staticClass:"q-pb-none overflow-hidden"},[a("q-banner",{staticClass:"bg-general text-general rounded-borders",scopedSlots:e._u([e.objectBanner.avatar?{key:"avatar",fn:function(){return[a("div",{staticClass:"flex items-center",staticStyle:{height:"40px"}},["loading"===e.objectBanner.avatar?a("q-spinner-ios",{staticStyle:{margin:"0.275rem"},attrs:{size:"1.2rem",color:"general"}}):a("q-icon",{attrs:{size:"1.75rem",name:e.objectBanner.avatar}})],1)]},proxy:!0}:null,{key:"default",fn:function(){return[e.objectBanner.title?a("div",{staticClass:"text-bold"},[e._v("\n "+e._s(e.objectBanner.title)+"\n ")]):e._e(),a("div",{staticClass:"ellipsis-3-lines"},[e._v(e._s(e.objectBanner.message))])]},proxy:!0}],null,!0)})],1):e._e()},hn=[],gn={name:"DialogBanner",props:{banner:[String,Object]},computed:{objectBanner(){return this.banner?"string"===typeof this.banner?{message:this.banner}:this.banner:null}}},fn=gn,bn=a("0051"),yn=a("7027"),vn=Object(Y["a"])(fn,mn,hn,!1,null,null,null),wn=vn.exports;ie()(vn,"components",{QCardSection:X["a"],QBanner:bn["a"],QSpinnerIos:yn["a"],QIcon:wa["a"]});var kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.progress?a("q-card-section",{staticClass:"q-pb-md flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),"boolean"!==typeof e.progress?a("div",{staticClass:"q-ml-sm"},["string"===typeof e.progress?[e._v("\n "+e._s(e.progress)+"\n ")]:[a("div",[e._v(e._s(e.progress.title))]),e.progress.caption?a("div",[e._v(e._s(e.progress.caption))]):e._e()]],2):e._e()],1):e._e()},Sn=[],Cn={name:"DialogProgress",props:{progress:[Boolean,String,Object]}},xn=Cn,$n=Object(Y["a"])(xn,kn,Sn,!1,null,"c513ce1e",null),Tn=$n.exports;ie()($n,"components",{QCardSection:X["a"],QSpinnerIos:yn["a"]});var zn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.list?a("q-card-section",{staticClass:"q-pb-none"},[a("q-list",{staticClass:"rounded-borders full-width column items-stretch",attrs:{bordered:"",separator:""}},e._l(e.list.items,(function(t,n){return a("q-item",{key:t.key||n,staticClass:"overflow-hidden"},[a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))]),t.caption?a("q-item-label",{staticClass:"ellipsis-3-lines",attrs:{caption:""}},[e._v(e._s(t.caption))]):e._e()],1)],1)})),1)],1):e._e()},Pn=[],An={name:"DialogList",props:{list:Object}},In=An,qn=a("e7c2"),On=Object(Y["a"])(In,zn,Pn,!1,null,"18c77b6c",null),En=On.exports;ie()(On,"components",{QCardSection:X["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"]});var Dn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelOptions?a("q-card-section",{staticClass:"q-pb-none"},[a("q-option-group",{staticClass:"dialog-option-group",attrs:{options:e.modelOptions.items,type:e.modelOptions.type||"radio"},scopedSlots:e._u([{key:"label",fn:function(t){var n=t.label,o=t.desc,i=t.tooltip;return[a("q-item",{staticClass:"q-pl-xs q-pr-none non-selectable"},[a("q-item-section",[a("q-item-label",[e._v(e._s(n))]),o?a("q-item-label",{staticClass:"ellipsis",attrs:{caption:""}},[e._v(e._s(o))]):e._e()],1),i?a("q-tooltip",{attrs:{"max-width":"320px",anchor:"bottom middle",self:"top middle","transition-show":"jump-down","transition-hide":"jump-up","transition-duration":0,delay:600}},[a("span",{staticStyle:{"font-size":"0.8rem"}},[e._v(e._s(i))])]):e._e()],1)]}}],null,!1,3266841923),model:{value:e.modelOptions.model,callback:function(t){e.$set(e.modelOptions,"model",t)},expression:"modelOptions.model"}})],1):e._e()},jn=[],Nn={name:"DialogOption",props:{options:Object},data(){return{modelOptions:this.options}},computed:{validatedResult(){const e=this.modelOptions.items.find((e=>e.value===this.modelOptions.model));return e?!e.disable||"disabled_option_item":"option_item_not_found"}},beforeMount(){this.modelOptions&&(this.$emit("registerArgument","option",(()=>this.modelOptions.model)),this.$watch("validatedResult",(e=>{this.$emit("setValid","option",e)}),{immediate:!0}))}},Ln=Nn,Un=(a("030c"),a("8128")),Rn=a("cf25"),Mn=a("2b77"),Fn=Object(Y["a"])(Ln,Dn,jn,!1,null,null,null),Bn=Fn.exports;ie()(Fn,"components",{QCardSection:X["a"],QOptionGroup:Un["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QTooltip:Rn["a"],QRadio:Mn["a"]});var Wn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelPrompts?a("q-card-section",{staticClass:"q-pb-none"},[e._l(e.modelPrompts,(function(t){return["tel"===t.type?a("DialogPromptTel",{key:t.key,staticClass:"q-my-sm",attrs:{rules:t.rules||void 0},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}}):a("q-input",{key:t.key,staticClass:"q-my-sm",attrs:{type:"password"!==t.type?t.type:t.hidden?"password":"text",label:t.label,rules:t.rules||void 0,outlined:"",dense:"",autofocus:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[t.icon&&"tel"!==t.type?a("q-icon",{attrs:{name:t.icon}}):e._e()]},proxy:!0},void 0!==t.hidden?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:t.hidden?"visibility_off":"visibility"},on:{click:function(e){t.hidden=!t.hidden}}})]},proxy:!0}:null],null,!0),model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}})]}))],2):e._e()},Hn=[],Vn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("TelInput",{attrs:{"error-message":e.errorMessage},on:{setNotSay:e.setNotSay},scopedSlots:e._u([{key:"selector",fn:function(){return[a("TelSelector",{model:{value:e.selectedOption,callback:function(t){e.selectedOption=t},expression:"selectedOption"}})]},proxy:!0},e.selectedOption.prefixCode?{key:"prefix-code",fn:function(){return[e._v("\n +"+e._s(e.selectedOption.prefixCode)+"\n ")]},proxy:!0}:null],null,!0),model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}})},Qn=[],Gn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"dialog-prompt-tel",attrs:{outlined:"",dense:"",autofocus:"",type:"tel",value:e.value,error:!!e.errorMessage,"error-message":e.errorMessage},on:{input:function(t){return e.$emit("input",t)},keydown:function(t){if(!t.type.indexOf("key")&&8!==t.keyCode)return null;0===e.value.length&&e.$emit("setNotSay")}},scopedSlots:e._u([{key:"before",fn:function(){return[e._t("selector")]},proxy:!0},{key:"prepend",fn:function(){return[e.$slots["prefix-code"]?a("div",{staticClass:"non-selectable",style:e.prefixCodeStyle},[e._t("prefix-code")],2):e._e()]},proxy:!0}],null,!0)})},Kn=[];const Yn={data(){return{prefixCodeStyle:{padding:"6px 0",fontSize:"14px",fontWeight:"400",letterSpacing:"0.00937em",lineHeight:"28px"}}}};var Jn={name:"TelInput",mixins:[Yn],props:{value:String,errorMessage:String}},Zn=Jn,Xn=(a("0102"),Object(Y["a"])(Zn,Gn,Kn,!1,null,null,null)),eo=Xn.exports;ie()(Xn,"components",{QInput:te["a"],QField:Ga["a"]});var to=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g(e._b({attrs:{dense:"",outlined:"",behavior:"menu",options:e.prefixOptions,"option-label":function(){return""},"menu-offset":[0,4],"menu-self":"bottom start","menu-anchor":"top left","transition-show":"jump-down","transition-hide":"jump-up"},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",{staticClass:"non-selectable",style:e.noOptionStyle},[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},{key:"prepend",fn:function(){return[a("div",{staticClass:"non-selectable",style:e.emojiStyle},[e._v(e._s(e.emoji))])]},proxy:!0},{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x non-selectable",style:e.optionStyle},"q-item",n,!1),o),[i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[a("div",{style:e.emojiStyle},[e._v(e._s(i.emoji))])]):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s("not_say"===i.label?e.$t("account_not_say"):i.label)}})],1)],1)]}}]),model:{value:e.prefixModel,callback:function(t){e.prefixModel=t},expression:"prefixModel"}},"q-select",e.filterProps,!1),e.filterEvents))},ao=[],no=a("1c53");const oo=(()=>{const e={TW:e=>{"TW"===e.country_code&&(e.emoji="🇼🇫")}},t=[];return Object.entries(no["countries"]).forEach((([a,n])=>{const o={country_code:a,name:n.name,name_native:n.native,emoji:n.emoji,phone_list:n.phone.split(","),language_list:n.languages};e.TW(o),t.push(o)})),t})(),io=(()=>{const e=[];return oo.forEach((t=>{t.phone_list.forEach((a=>{const n={id:`${t.country_code}-${a}`,country_emoji:t.emoji,country_name:t.name,country_name_native:t.name_native,country_code:t.country_code,phone_number_code:a};e.push(n)}))})),e})(),ro=(()=>{const e={US:(e,t)=>{if("1"===e.phone_number_code)return"US"===e.country_code?-1:"US"===t.country_code?1:0}},t=(t,a)=>{const n=parseInt(t.phone_number_code),o=parseInt(a.phone_number_code);if(n!==o)return n>o?1:-1;let i;return Object.values(e).some((e=>(i=e(t,a),void 0!==i))),void 0===i?0:i},a=io.sort(t);return a})(),so=ro.reduce(((e,t)=>(e[t.id]=t,e)),{}),lo={value:"not_say",label:"not_say",emoji:"🇼🇫"},co=(()=>{const e=Object.values(so).map((e=>({value:e.id,label:`${e.country_name_native} (+${e.phone_number_code})`,emoji:e.country_emoji})));return e.unshift(lo),e})(),uo=e=>e===lo.value?lo:so[e],_o=e=>{const t=e.startsWith("+"),a=/^00/.test(e);let n=null,o=null,i=e;return t?Object.values(so).find((t=>{const a=`+${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})):a&&Object.values(so).find((t=>{const a=`00${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})),{countryCode:n,prefixCode:o,phoneNumber:i}},po={data(){return{emojiStyle:{fontFamily:"Noto Color Emoji",fontSize:"1.22rem",color:"#000"}}}},mo={data(){const e={getInputEl:()=>this.$parent.$parent.$el,observer:new ResizeObserver((()=>{const e=this.mixin$OptionsStyle.getInputEl(),{width:t}=getComputedStyle(e);this.optionStyle={width:`calc(${t} - 8px)`},this.noOptionStyle={width:t}}))};return{mixin$OptionsStyle:e,optionStyle:{},noOptionStyle:{}}},mounted(){this.mixin$OptionsStyle.observer.observe(this.mixin$OptionsStyle.getInputEl())},beforeDestroy(){this.mixin$OptionsStyle.observer.unobserve(this.mixin$OptionsStyle.getInputEl())}},ho={data(){return{isPopupShow:!1,filter:null}},computed:{filterProps(){return{useInput:!0,inputDebounce:"0",inputStyle:this.isPopupShow?void 0:"display:none"}},filterEvents(){return{"popup-show":this.onPopupShow.bind(this),filter:this.onFilter.bind(this),"popup-hide":this.onPopupHide.bind(this)}}},methods:{onFilter(e,t){t((()=>{this.filter=t=>{if(!e)return!0;if("not_say"===t)return!1;const a=uo(t),n=[a.country_code,a.country_name,a.country_name_native,a.phone_number_code];return n.some((t=>t.toLowerCase().includes(e.toLowerCase())))}}))},onPopupShow(){this.isPopupShow=!0,this.$nextTick((()=>{const e=this.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.isPopupShow=!1,this.filter=null,this.mixin$OptionsStyle.getInputEl().focus()}}};var go={name:"TelSelector",mixins:[po,mo,ho],props:{value:Object},data(){return{countryCode:null,prefixCode:null}},computed:{prefixOptions(){let e=Object.assign([],co);return this.filter&&(e=e.filter((e=>this.filter(e.value)))),e},prefixModel:{get(){const{countryCode:e,prefixCode:t}=this.value;return e&&t?`${e}-${t}`:"not_say"},set(e){var t,a;const n=null!==e&&void 0!==e&&e.value?uo(e.value):{};this.$emit("input",{countryCode:null!==(t=n.country_code)&&void 0!==t?t:null,prefixCode:null!==(a=n.phone_number_code)&&void 0!==a?a:null})}},emoji(){const e=uo(this.prefixModel);return e.emoji||e.country_emoji}}},fo=go,bo=(a("3a211"),Object(Y["a"])(fo,to,ao,!1,null,null,null)),yo=bo.exports;ie()(bo,"components",{QSelect:ee["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"]});const vo={watch:{selectedOption(e,t){const a=e=>!(e.countryCode&&e.prefixCode);a(e)&&!a(t)&&(this.inputValue="")}},methods:{setNotSay(){this.selectedOption={countryCode:null,prefixCode:null}}}},wo={data(){return{errorMessage:void 0}},watch:{value(e){const t=e=>{let t;return this.rules.find((a=>(t=a(e),t&&!0!==t))),!0===t?void 0:t},a=t(e.phoneNumber);a?this.errorMessage=a:e.phoneNumber&&!e.prefixCode?this.errorMessage=this.$t("account_error_invalid_phone_number_format"):this.errorMessage=void 0}}};var ko={name:"DialogPromptTel",mixins:[vo,wo],props:{value:{type:Object,required:!0},rules:Array},components:{TelInput:eo,TelSelector:yo},computed:{selectedOption:{get(){return{countryCode:this.value.countryCode,prefixCode:this.value.prefixCode}},set(e){this.$emit("input",{prefixCode:e.prefixCode,countryCode:e.countryCode,phoneNumber:this.value.phoneNumber})}},inputValue:{get(){return this.value.phoneNumber},set(e){const{prefixCode:t,countryCode:a,phoneNumber:n}=_o(e);this.$emit("input",{prefixCode:t||this.value.prefixCode,countryCode:a||this.value.countryCode,phoneNumber:n})}}}},So=ko,Co=Object(Y["a"])(So,Vn,Qn,!1,null,null,null),xo=Co.exports,$o={name:"DialogPrompts",components:{DialogPromptTel:xo},props:{prompts:Object},data(){const e=this.prompts?Object.keys(this.prompts).map((e=>{const t=this.prompts[e];return t.key=e,"password"===t.type&&(t.hidden=!0),t})):null;return{modelPrompts:e}},computed:{validatedResult(){let e;return this.modelPrompts&&this.modelPrompts.filter((e=>!!e.rules)).find((t=>t.rules.some((a=>{const n="tel"===t.type?[t.model.phoneNumber,t.model.prefixCode]:[t.model],o=a(...n);return!0!==o&&(e=o),!!e})))),e=e||!0,e}},watch:{validatedResult(e){this.$emit("setValid","prompts",e)}},beforeMount(){if(this.modelPrompts){const e=()=>this.modelPrompts.reduce(((e,t)=>(e[t.key]=t.model,e)),{});this.$emit("registerArgument","prompts",e),this.$emit("setValid","prompts",this.validatedResult)}}},To=$o,zo=Object(Y["a"])(To,Wn,Hn,!1,null,"21114862",null),Po=zo.exports;ie()(zo,"components",{QCardSection:X["a"],QInput:te["a"],QIcon:wa["a"]});const Ao={methods:{handleEsc(){const e="cancel";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()},handleEnter(){const e="ok";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()}}},Io={props:{contextCallback:Function},created(){this.contextCallback&&this.contextCallback(this)}},qo=e=>({props:e.reduce(((e,t)=>Object.assign(e,t.props)),{})}),Oo={name:"ABDialog",components:{DialogBanner:wn,DialogProgress:Tn,DialogList:En,DialogOption:Bn,DialogPrompts:Po},mixins:[Ao,Io,ln,cn,dn,un,_n,pn,qo([wn,Tn,En,Bn,Po])],props:{title:String,message:String},computed:{showActions(){return this.buttonAttrs&&Object.values(this.buttonAttrs).some((e=>!1!==e.show))},buttonAttrs(){const e=this.dialog$actionButtons?Object.keys(this.dialog$actionButtons).reduce(((e,t)=>(e[t]=[this.dialog$actionButtons[t],this.dialog$actionHandlers[t]],e)),{}):{},t={ok:[this.buttonOk,this.handleOk],...e,cancel:[this.buttonCancel,this.handleCancel]};return Object.keys(t).reduce(((e,a)=>(e[a]=this.dialog$buttonAttrs(a,...t[a]),e)),{})}},methods:{show(){this.$refs.dialog.show()},emitOk(e){this.$emit("ok",e)},hide(){this.$refs.dialog.hide()}}};var Eo=Oo,Do=Eo,jo=Object(Y["a"])(Do,rn,sn,!1,null,null,null),No=jo.exports;ie()(jo,"components",{QDialog:J["a"],QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QCardActions:we["a"],QBtn:ne["a"]});var Lo=e=>{e.component("ABDialog",No),Object.defineProperty(e.prototype,"$alphabiz",{get(){const e={};return e.dialog=e=>Uo.call(this,e),e}})};function Uo(e){const t={},a={};Object.assign(a,e),a.component=No,a.contextCallback=e=>t.vm=e,t.dialog=this.$q.dialog(a),t.dialog.vm=t.vm;const n=e=>{e.promise=t=>new Promise(((a,n)=>{if(e.vm.$on("error",n),t){if("cancel"===t){let t=!1;e.onCancel((()=>t=!0)).onDismiss((()=>a(t)))}else if("ok"===t){let t;e.onOk((e=>e&&(t=e))).onDismiss((()=>a(t)))}}else e.onDismiss(a)}))};return n(t.dialog),t.dialog}var Ro=a("bf73"),Mo=a.n(Ro);function Fo(e){e.directive("show$cfg",Bo())}function Bo(){const e=(e,t,a)=>{const n=a.componentInstance.d$cfg,o=[t.arg,...Object.keys(t.modifiers||{})];let i=o.reduce(((e,t)=>e[t]),n);i=void 0===t.value?i:t.value===i,e.style.display=i?e._cfg$show.display:"none"};return{bind(t,a,n){t._cfg$show={display:t.style.display},e(t,a,n)},update(t,a,n){e(t,a,n)},unbind(e){e.style.display=e._cfg$show.display,delete e._cfg$show}}}var Wo=function(e,{getLocalConfig:t,getRemoteConfigUrl:a}){const n=Go(),{config:o,loadRemoteConfig:i}=Ho({localConfig:t(),remoteConfigUrls:r(a())});function r(e){const t=[`/${n.version}.json`,`/${n.version.split("-")[0]}.json`,"/default.json"];return t.map((t=>e+t))}function s(e,t){const a=new e({data(){return{config:t}}});e.mixin({computed:{d$cfg(){return a.config}}}),Fo(e)}i((e=>{v.a.mas()&&Vo(e.config,{update:{enable:!1}})})),s(e,o)};function Ho(e){const{localConfig:t,remoteConfigUrls:a}=e,n=Vo({},t);let o;n.remoteLoaded=!1,Object.defineProperties(n,{onRemoteConfigLoaded:{value:new Promise((e=>o=e)),configurable:!1,writable:!1,enumerable:!1}});const i=async e=>{const t=await r(a),{config:i}=t;return i.remoteLoaded=!0,await e(t),Vo(n,i),o(t),t};return{config:n,loadRemoteConfig:i};async function r(e){console.log("get from urls",e);const t=[];t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("sources").log(e)));const a=await new Promise((async a=>{let o={},i=null;for(const r of e)try{o=await n(r),i=r;break}catch{t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("not found").log(r)))}i?t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("got").log(i,o))):t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("remote config not found").log())),a({url:i,config:o})}));return console.tag.orange("DynamicConfig","Remote").group(""),t.forEach((e=>e())),console.groupEnd(),a;async function n(e){return await Qo((()=>fetch(e).then((e=>e.json()))),{onRetry(e){console.tag("getRemoteConfig").log("retry",e.count)}})}}}function Vo(e,t){const a=e=>!!e&&"object"===typeof e&&!Array.isArray(e);return Object.entries(t).forEach((([t,n])=>{var o;a(n)?(e[t]=null!==(o=e[t])&&void 0!==o?o:{},Vo(e[t],n)):e[t]=n})),e}async function Qo(e,{onRetry:t}={}){const a=async n=>{try{return n.count&&await(null===t||void 0===t?void 0:t(n)),await e()}catch(o){if(o instanceof TypeError){if(await new Promise((e=>setTimeout(e,1e3))),n.count+=1,n.count>=30)throw o;return await a(n)}throw o}};return await a({count:0})}function Go(){const e={version:Object(b["a"])("version"),buildTime:Object(b["a"])("buildTime")};return e.web=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),e.store=(()=>{const e=Object(b["a"])("packageFormat");return Object(x["a"])()?"capacitor":v.a.mas()?"mac":v.a.windowsStore()?"microsoft":!(!e||"snap"!==e)&&"linux"})(),e}var Ko=e=>{},Yo=a("67cf");a("f18a"),a("7996");const Jo=(...e)=>console.tag.red("VideoJs","player",...e),Zo={Video:{opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",webm:"video/webm",flv:"video/x-flv","3gp":"video/3gpp",m3u8:"application/x-mpegURL",mpd:"application/dash+xml",avi:"video/x-msvideo"},Image:{jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",png:"image/png",svg:"image/svg+xml",webp:"image/webp"},Audio:{m4a:"audio/mp4",mp3:"audio/mpeg",aac:"audio/aac",caf:"audio/x-caf",flac:"audio/flac",oga:"audio/ogg",wav:"audio/wav"}},Xo=(Zo.Video,Zo.Audio,Zo.Image,{mkv:["video/webm","video/mp4"],avi:["video/mp4"]}),ei={MEDIA_ERR_ABORTED:1,MEDIA_ERR_CUSTOM:0,MEDIA_ERR_DECODE:3,MEDIA_ERR_ENCRYPTED:5,MEDIA_ERR_NETWORK:2,MEDIA_ERR_SRC_NOT_SUPPORTED:4};var ti=[ai(),ii({volume:mi},{setVolume:Ci}),ii({isFullscreen:pi},{setFullscreen:Si}),ii({isPiP:_i},{setPiP:ki}),ii({playbackRate:ui},{setPlaybackRate:wi}),ii({poster:di},{setPoster:yi}),ni(),oi()];function ai(){const e={id:ri,currentTime:si,buffered:ci,duration:li,isPaused:hi,isMuted:gi},t={play:fi,pause:bi,seek:vi,mute:xi,stop:$i,destroy:Ti,ctl$on:a,ctl$emit:n};return ii(e,t);function a(e,t){this.on(`controller::${e}`,t)}function n(e){this.trigger(`controller::${e}`)}}function ni(){return ii({isWaiting:a,currentSources:e,loadingState:t},{setSource:n});function e(){const e=()=>{const e=this.currentSources();return e.filter((e=>!!e.src&&!!e.type))};return this.$set(e,["setSource$start","setSource$end","stop$"]),e()}function t(){const e=e=>{if(!e)return!1;if("setSource$start"===e)return!0;if(["setSource$end","error"].includes(e)){const e=this.error();return!!e&&{type:Object.keys(ei).find((t=>ei[t]===e.code)),message:e.message}}};return this.$set(e,["setSource$start","setSource$end","error","stop$"]),e()}function a(){let e=null;return this.on("waiting",(()=>{e&&clearTimeout(e),e=setTimeout((()=>{this.$set(!0)}),100)})),this.on("canplay",(()=>{e&&clearTimeout(e),this.$set(!1)})),this.on("stop$",(()=>{e&&clearTimeout(e),this.$set(!1)})),!1}async function n(...e){const t=e[e.length-1];t instanceof AbortSignal&&e.splice(e.length-1);const a=t instanceof AbortSignal?t:(new AbortController).signal;let n=!1;a.onabort=()=>{n=!0};try{this.trigger("setSource$start"),await new Promise(((t,i)=>{this.ready((()=>{if(n||a.aborted)return console.log("setSource Aborted",a.reason),i("Aborted");console.log("Not aborted",n,a,e[0]),this.one("loadedmetadata",t),this.one("error",i);const r=e.map(o).flat(1);Jo().tag("setSource","sources").log(r),this.src(r)}))}))}finally{this.trigger("setSource$end")}function o(e){var t;const a=[];let n,o;if("object"===typeof e){var i;n=e,o=null!==(i=l(n))&&void 0!==i?i:"mp4"}else{if("string"!==typeof e)return e;var r;n={src:e},o=null!==(r=l(n))&&void 0!==r?r:"mp4",Object.assign(n,{type:`video/${o}`})}n.type&&a.push(n);const s=null!==(t=Zo.Video[o])&&void 0!==t?t:Zo.Video.mp4;return a.some((e=>e.type===s))||d({type:s}),c(o).forEach((e=>d({type:e}))),a;function l(e){if(e.src&&-1!==e.src.lastIndexOf(".")){const t=new URL(e.src);return t.pathname.slice(t.pathname.lastIndexOf(".")+1)}if(e.type){const t=Object.keys(Zo.Video).find((t=>Zo.Video[t]===e.type));if(t)return t}if(e.filename){const t=e.filename.replace(/\\/g,"/").split("/").reverse()[0];if(-1!==t.lastIndexOf("."))return t.slice(t.lastIndexOf(".")+1)}return null}function c(e){if(!Xo[e])return[];const t=Object.values(a).map((e=>e.type));return Xo[e].filter((e=>!t.includes(e)))}function d(e){const t=e=>Object.assign(Object.entries(n).reduce(((e,[t,a])=>({...e,[t]:a})),{}),e),o=t(e);a.push(o)}}}}function oi(){return ii({track:e},{enableTrack:t,disableTrack:a,addTrack:n,removeTrack:o,setTrackOffset:i});function e(){const e=t.call(this);return this.on("track$enable",(()=>{const e=o.call(this),t=e.find((e=>"showing"===e.mode));if(!t)throw new Error("Enabled track not founded");const a=this.$state.track;a.currentTrack=n.call(this,t),a.enable=!0})),this.on("track$disable",(()=>{const e=this.$state.track;e.enable=!1})),this.on("track$add",(()=>a.call(this))),this.on("track$remove",(()=>{a.call(this)})),this.on("stop$",(()=>{var e;a.call(this);const t=this.$state.track;null===(e=t.currentTrack)||void 0===e||e.disable(),t.currentTrack=null,t.enable=!1})),e;function t(){const e={};return e.tracks=o.call(this).map((e=>e.id)),e.offset=0,e.currentTrack=null,e.enable=!1,e}function a(){const e=o.call(this),t=this.$state.track;t.tracks=e.map((e=>e.id))}function n(e){const t=()=>{const e=this.$state.track,n=e.currentTrack;if(!n)return this.off("texttrackchange",t);e.currentTrack.text=a.call(n.get(),e.offset)};return n(t),this.on("texttrackchange",t),{id:e.id,text:a.call(e,0),get:()=>e,disable:()=>{this.off("texttrackchange",t)}};function a(e){if(!this.loaded_)return null;if(0===this.cues.length)return null;const t=this.tech_.currentTime$org()+e,a=[];for(let n=0,o=this.cues.length;n=t&&a.push(e)}return a.map((e=>e.text)).join("")}function n(t){const a=e.tech_;e.tech_.__modified__||(e.tech_=new Proxy(a,{get(e,a,n){return"__modified__"===a||("currentTime$org"===a?Reflect.get(e,"currentTime",n):("currentTime"===a&&t(),Reflect.get(e,a,n)))},set(e,t,a,n){return Reflect.set(e,t,a,n)}}))}}function o(){var e;return Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind))}}function t(e){var t;const a=this.$state.track;if(!e){if(a.enable)return;if(a.currentTrack)e=a.currentTrack.id;else{if(!(a.tracks&&a.tracks.length>0))return;e=a.tracks[0]}}const n=Array.from(null!==(t=this.remoteTextTracks())&&void 0!==t?t:[]).filter((e=>"captions"===e.kind)),o=n.some((t=>t.id===e));if(!o)throw new Error("Track not founded: "+e);n.forEach((t=>{t.mode=t.id===e?"showing":"disabled"})),this.trigger("track$enable")}function a(){var e;const t=this.$state.track;if(!t.currentTrack)return;const a=Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind));a.forEach((e=>e.mode="disabled")),this.trigger("track$disable")}function n({id:e,src:t}){const a=this.$state.track;if(a.tracks.includes(e))return;const n={id:e,src:t,kind:"captions",mode:"disabled"};this.addRemoteTextTrack(n,!0),this.trigger("track$add")}function o(e=null){var n,o;const i=this.$state.track,r=Array.from(null!==(n=this.remoteTextTracks())&&void 0!==n?n:[]).filter((e=>"captions"===e.kind));let s,l=[];if(e){if(!i.tracks.includes(e))return;s=i.currentTrack.id===e,l.push(e)}else s=!0,l.push(...i.tracks);s&&(a.call(this),i.currentTrack.disable(),i.currentTrack=null),l.forEach(d.bind(this));const c=Array.from(null!==(o=this.remoteTextTracks())&&void 0!==o?o:[]).filter((e=>"captions"===e.kind));if(this.trigger("track$remove"),c.length&&s){const e=c[0];console.log("Select first track after remove current",e),t.call(this,e.id)}function d(e){const t=r.find((t=>t.id===e));t&&this.removeRemoteTextTrack(t)}}function i(e){const t=this.$state.track;t.offset=e,this.trigger("texttrackchange")}}function ii(e={},t={}){return{states:e,controls:t}}function ri(){return this.id()}function si(){const e=()=>this.currentTime();return this.$set(e,["timeupdate","stop$"]),e()}function li(){const e=()=>this.duration()||0;return this.$set(e,["durationchange","stop$"]),e()}function ci(){const e=()=>{const e=this.buffered(),t=[];for(let a=0;athis.poster();return this.$set(e,["posterchange","stop$"]),e()}function ui(){const e=()=>this.playbackRate();return this.$set(e,["ratechange"]),e()}function _i(){const e=()=>this.isInPictureInPicture();return this.$set(e,[["enterpictureinpicture","leavepictureinpicture"]]),e()}function pi(){const e=()=>this.isFullscreen();return this.$set(e,["fullscreenchange"]),e()}function mi(){const e=()=>this.volume();return this.$set(e,["volumechange"]),e()}function hi(){const e=()=>this.paused();return this.$set(e,["play","pause","loadstart","loadeddata","stop$"]),e()}function gi(){const e=()=>this.muted();return this.$set(e,["mute$"]),e()}function fi(){console.log("PLAY",this.play,this.muted,this),this.play()}async function bi(){this.pause(),await zi((()=>this.paused()))}function yi(e){this.poster(e)}function vi(e){this.currentTime(e)}function wi(e){this.playbackRate(e)}function ki(e){try{e?this.requestPictureInPicture():this.exitPictureInPicture()}catch(t){console.log("Failed to toggle PiP",e,(null===t||void 0===t?void 0:t.message)||t)}}function Si(e){e?this.requestFullscreen():this.exitFullscreen()}function Ci(e){xi.call(this,!1),this.volume(e)}function xi(e){this.muted(e),this.trigger("mute$")}async function $i(){async function e(){this.reset(),await zi((()=>{const e=this.currentSources().filter((e=>!!e.src&&!!e.type));return e<=0}))}this.isInPictureInPicture()&&this.exitPictureInPicture(),await bi.call(this),await e.call(this),this.trigger("stop$")}function Ti(){this.isInPictureInPicture()&&this.exitPictureInPicture(),this.reset(),this.dispose()}function zi(e,t=100){let a=null;return new Promise((n=>{a=setInterval((()=>{e.call(this)&&(clearInterval(a),a=null,n())}),t)}))}var Pi=e=>{const t=e.reduce(((e,t)=>({...e,...t.states})),{}),a=Object.keys(t),n=Object.entries(t);return{data(){return{states:{}}},created(){this.$watch((()=>this.instance),(e=>{if(!this.instance)return void(this.states=a.map((e=>[e,null])).reduce(((e,[t,a])=>({...e,[t]:a})),{}));const t=n.map((([t,a])=>{const n=Ii({player:e,states:Ai.call(this),name:t});return[t,a.call(n)]})).reduce(((e,[t,a])=>({...e,[t]:a})),{});this.states=t}),{immediate:!0})}}};function Ai(){const e=this;return new Proxy({},{get(t,a,n){return e.states[a]},set(t,a,n,o){return e.states=Object.assign({},e.states,{[a]:n}),!0}})}function Ii({player:e,states:t,name:a}){return new Proxy(e,{get(n,o,i){return"$state"===o?t:"$set"===o?(n,o)=>{o?o.forEach((o=>e.on(o,(()=>t[a]=n(o))))):t[a]=n}:Reflect.get(n,o,i)}})}var qi=e=>{const t=e.reduce(((e,t)=>({...e,...t.controls})),{}),a=e=>function(...t){return this.instance?e.apply(Oi({player:this.instance,states:this.states}),t):null};return{methods:Object.entries(t).map((([e,t])=>[e,a(t)])).reduce(((e,[t,a])=>({...e,[t]:a})),{})}};function Oi({player:e,states:t}){return new Proxy(e,{get(e,a,n){return"$state"===a?t:Reflect.get(e,a,n)}})}function Ei(e={controls:!1,autoplay:!1,preload:"auto",playbackRates:[.5,1,1.5,2]},t=ti){return new r["a"]({data(){let e,t=new Promise((t=>e=t));return t.resolve=e,{instance:null,promiseReady:t}},mixins:[Pi(t),qi(t)],methods:{async initialize(t){if(this.instance)throw new Error("Failed to initialize player.");const a=Object(it["default"])(t,e);await new Promise((e=>a.one("ready",e))),this.instance=a,this.promiseReady.resolve()}}})}var Di={data(){return{}},methods:{createPlayer:Ei}},ji=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player relative-position"},[a("video",{ref:"videoRef",staticClass:"video-js",attrs:{playsinline:"true","webkit-playsinline":"true",tabindex:"-1"}}),a("Controller",{attrs:{player:e.player},scopedSlots:e._u([{key:"header",fn:function(){return[e._t("header")]},proxy:!0},{key:"footer",fn:function(){return[e._t("footer")]},proxy:!0}],null,!0)})],1)},Ni=[],Li=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerLayout",{attrs:{player:e.player},on:{hotkey$focus:e.hotkey$focus},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.showController;return[a("Subtitle",{style:n?{paddingTop:"58px",paddingBottom:"60px"}:{},attrs:{player:e.player,dense:n}}),a("Center",{ref:"centerRef",attrs:{player:e.player}}),a("Header",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("header"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"file_open",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenLocalVideo}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!0,expression:"true"}],attrs:{icon:"settings",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenSetting}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"more_vert",unelevated:"",round:"",size:"0.8rem"}})]},proxy:!0}],null,!0)}),a("Footer",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("footer"),a("VolumeButton",{attrs:{player:e.player}}),a("PlaybackRateButton",{attrs:{player:e.player}}),a("SubtitleButton",{attrs:{player:e.player}}),a("PipButton",{attrs:{player:e.player}}),a("FullscreenButton",{attrs:{player:e.player}})]},proxy:!0}],null,!0)}),a("Setting",{ref:"settingRef",attrs:{player:e.player}})]}}])})},Ui=[],Ri=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"video-js-player__controller absolute-full relative-position",on:{click:e.onVideoClick,dblclick:e.onVideoDoubleClick}},e.mouseEvents),[e.isAudio?a("div",{staticClass:"is-audio-hint absolute-center"},[a("img",{staticClass:"q-mt-xl",attrs:{src:"developer/assets/icon-256.png",alt:""}}),a("p",{staticClass:"text-center text-h5",staticStyle:{"line-height":"24px"}},[a("i",{staticClass:"material-icons",staticStyle:{"vertical-align":"top"}},[e._v("audiotrack")]),e._v("\n "+e._s(e.$t("audio_file"))+"\n ")])]):e._e(),e._t("default",null,null,{showController:e.showController})],2)},Mi=[],Fi={props:{player:Object},mixins:[Bi(),Wi()],computed:{isAudio(){var e,t,a;const n=null===(e=this.player)||void 0===e||null===(t=e.states)||void 0===t||null===(a=t.currentSources)||void 0===a?void 0:a[0];if(!n||!n.filename)return!1;const o=n.filename.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!o||!o[0])return!1;const i=o[0].slice(1);return Object(Xe["b"])(i)}},methods:{onVideoClick(e){const t=e=>e.classList.contains("video-js-player__controller");if(!t(e.target))return;const{isPaused:a,loadingState:n,currentSources:o}=this.player.states;"object"!==typeof n&&o&&0!==o.length&&(a?this.player.play():this.player.pause())},onVideoDoubleClick(e){const t=e=>e.classList.contains("video-js-player__controller");t(e.target)&&this.player&&this.player.setFullscreen(!this.player.states.isFullscreen)}}};function Bi(){return{data(){return{toggle:!1,playerReady:!1}},created(){this.$watch((()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null}),(e=>{e&&e.ready((()=>this.playerReady=!0))}),{immediate:!0})},computed:{showController:{get(){return this.toggle&&this.playerReady},set(e){this.toggle=e}}}}}function Wi(){const e=e=>e.classList.contains("video-js-player__controller");let t=null;return{computed:{mouseEvents(){return{mouseover:n.bind(this),mousemove:o.bind(this),mouseenter:e=>a.call(this,e,!0),mouseleave:e=>a.call(this,e,!1)}}},watch:{showController(){this.$emit("hotkey$focus")}}};function a(e,t){if(t)this.showController=t;else{if(0!==e.which)return;this.showController=t}}function n(a){if(!e(a.target))return clearTimeout(t);t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3)}function o(a){e(a.target)&&(this.showController=!0,t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3))}}var Hi=Fi,Vi=(a("4dbc"),Object(Y["a"])(Hi,Ri,Mi,!1,null,null,null)),Qi=Vi.exports,Gi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-full flex items-stretch no-pointer-events--children non-selectable"},[a("div",{staticClass:"full-width full-height flex items-stretch"},[a("div",{staticClass:"full-width full-height relative-position column justify-end items-center"},[a("div",{staticClass:"relative-position",style:{"min-height":e.subtitlePanelMinHeight+"px"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.trackEnabled&&!!e.currentText,expression:"trackEnabled && !!currentText"}],staticClass:"video-js-player__subtitle",class:[e.player.states.isFullscreen?"fullscreen-subtitle":""]},[e._v("\n "+e._s(e.currentText)+"\n ")])])])])])},Ki=[],Yi={mixins:[Ji()],props:{player:Object,dense:Boolean},computed:{trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},currentText(){var e,t;return null===(e=this.player.states.track)||void 0===e||null===(t=e.currentTrack)||void 0===t?void 0:t.text},subtitlePanelMinHeight(){var e,t,a,n;const o=null!==(e=null===(t=this.player$rects)||void 0===t?void 0:t.container.height)&&void 0!==e?e:0,i=null!==(a=null===(n=this.player$rects)||void 0===n?void 0:n.video.height)&&void 0!==a?a:0;return Math.max(0,Math.round((o-i)/2))}}};function Ji(){let e;return{data(){return{player$rects:{container:{},video:{}}}},mounted(){const t=this.$el;e&&e.disconnect(),e=new ResizeObserver((()=>a.call(this,t))),e.observe(t,{}),setTimeout((()=>a.call(this,t)),200)},beforeDestroy(){e&&e.disconnect()}};function t(e){return e&&e.endsWith("px")?parseInt(e.slice(0,e.length-2)):0}function a(e){const a=e.querySelector("div"),n=e.parentElement.parentElement.querySelector(".video-js>video"),o=getComputedStyle(a),i=getComputedStyle(n);this.player$rects.container.width=t(o.width),this.player$rects.container.height=t(o.height),this.player$rects.video.width=t(i.width),this.player$rects.video.height=t(i.height),this.player$rects=Object.assign({},this.player$rects)}}var Zi=Yi,Xi=(a("d2e8"),Object(Y["a"])(Zi,Gi,Ki,!1,null,null,null)),er=Xi.exports;ie()(Xi,"components",{QItem:fe["a"]});var tr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-center"},[e.dialogData?a("DialogPanel",{attrs:{icon:e.dialogData.icon,message:e.dialogData.message}}):e.playerError?a("ErrorPanel",{attrs:{player:e.player}}):e.playerLoading?a("LoadingPanel",{attrs:{player:e.player}}):e.emptySource?a("OpenButton",{attrs:{player:e.player}}):e.player.states.isPaused?a("PlayButton",{attrs:{player:e.player}}):e._e()],1)},ar=[],nr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{scopedSlots:e._u([e.icon?{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:e.icon}})]},proxy:!0}:null,{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.message)+"\n ")]),e.caption?a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.caption)+"\n ")]):e._e()]},proxy:!0}],null,!0)})},or=[],ir=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"controller:panel overflow-hidden",staticStyle:{"border-radius":"16px"}},[a("q-card-section",{staticClass:"text-center q-pa-md"},[e.$slots.avatar?a("div",{staticClass:"q-ma-sm"},[e._t("avatar")],2):e._e(),a("div",{staticClass:"q-ma-sm"},[e._t("default")],2),e.$slots.action?a("div",{staticClass:"q-mb-xs"},[e._t("action")],2):e._e()])],1)},rr=[],sr={},lr=sr,cr=(a("9992"),Object(Y["a"])(lr,ir,rr,!1,null,"18dfdf92",null)),dr=cr.exports;ie()(cr,"components",{QCard:Z["a"],QCardSection:X["a"]});var ur={components:{CenterPanel:dr},name:"DialogPanel",props:{icon:String,message:String,caption:String,handleOk:Function}},_r=ur,pr=Object(Y["a"])(_r,nr,or,!1,null,null,null),mr=pr.exports;ie()(pr,"components",{QIcon:wa["a"],QBtn:ne["a"]});var hr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"200px","max-width":"600px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:"error"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.type)+"\n ")]),a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.message)+"\n ")])]},proxy:!0},{key:"action",fn:function(){return[a("q-btn",{staticClass:"q-mt-sm",staticStyle:{"min-width":"64px","background-color":"rgba(256,256,256,0.1)"},attrs:{label:e.$t("ok"),"no-caps":"",flat:"",rounded:""},on:{click:e.handleOk}})]},proxy:!0}])})},gr=[],fr={components:{CenterPanel:dr},props:{player:Object},computed:{playerError(){var e,t;const a=this.player.states.loadingState;if(!a||"boolean"===typeof a)return null;const n=null===(e=this.player)||void 0===e||null===(t=e.instance)||void 0===t?void 0:t.languages_,o=this.$i18n.locale.toLowerCase(),i=e=>n&&n[o]&&n[o][e]||e;return{type:i(a.type),message:i(a.message)}}},methods:{async handleOk(){await this.player.stop()}}},br=fr,yr=Object(Y["a"])(br,hr,gr,!1,null,"90e33b2e",null),vr=yr.exports;ie()(yr,"components",{QIcon:wa["a"],QBtn:ne["a"]});var wr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"180px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-spinner-ios",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines",staticStyle:{"min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.$t("loading"))+"\n "),e.isRemotePlay?a("span",[e._v("("+e._s(e.remoteProgress)+")")]):a("span",[e._v("...")])]),e.isRemotePlay?a("div",{staticClass:"remote-status"},[e._v("\n "+e._s(e.remoteDownloaded)+" ( "+e._s(e.remoteDownloadSpeed)+" )\n ")]):e._e()]},proxy:!0}])})},kr=[],Sr={components:{CenterPanel:dr},props:{player:Object},computed:{remoteInfoHash(){var e;return null===(e=w["a"].state.video.currentVideo)||void 0===e?void 0:e.infoHash},isRemotePlay(){return!!this.remoteInfoHash&&w["a"].state.video.currentVideo.remotePlay},remoteTask(){return this.isRemotePlay?pt["a"].taskList.downloading.find((e=>e.infoHash===this.remoteInfoHash)):null},remoteProgress(){return this.isRemotePlay&&this.remoteTask?Object(et["g"])(this.remoteTask.progress):""},remoteDownloadSpeed(){return this.isRemotePlay&&this.remoteTask?Object(et["a"])(this.remoteTask.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s":""},remoteDownloaded(){return this.isRemotePlay&&this.remoteTask?Object(et["a"])(this.remoteTask.downloaded,{byte:!1}):""}}},Cr=Sr,xr=Object(Y["a"])(Cr,wr,kr,!1,null,"0ff02c0c",null),$r=xr.exports;ie()(xr,"components",{QSpinnerIos:yn["a"]});var Tr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("q-btn",{staticClass:"text-white controller:panel",attrs:{size:"2rem",icon:"file_open",unelevated:"",round:""},on:{click:e.openFile}}),a("input",{staticStyle:{display:"none"},attrs:{type:"file","data-cy":"file-input"},on:{input:e.loadVideo}})],1)},zr=[];function Pr({accept:e}){const t=document.createElement("input");return Object.assign(t.style,{position:"fixed",top:"0",left:"0",width:"0",height:"0"}),t.type="file",t.accept=Array.isArray(e)?e.join(","):e,t}function Ar(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a,n;return t(null!==(a=null===(n=e.target)||void 0===n?void 0:n.result)&&void 0!==a?a:"")},a.readAsText(e)})):""}async function Ir(e){const t=document.activeElement;try{document.body.appendChild(e),e.focus(),e.click()}finally{document.body.removeChild(e),t.focus()}const a=await n(e);return console.log("result"),console.tag("file").debug("result",a),a||null;async function n(e){var t,a;const n=await new Promise((t=>e.addEventListener("change",t,{once:!0}))),o=null===n||void 0===n||null===(t=n.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a[0];return console.tag("file").debug("change",o),e.value=null,o}}function qr(){return{readTextFile:Ar,async selectFile({accept:e}={}){const t=Pr({accept:null!==e&&void 0!==e?e:"*"});return Ir(t)}}}var Or=Er;function Er(){const{selectFile:e}=qr(),t={opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",m3u8:"application/x-mpegURL",mpd:"application/dash+xml"};return async()=>{console.log("selectFile");const a=await e({accept:Array.from(new Set([...Object.values(t),...Object.keys(t).map((e=>`.${e}`))]))});return console.log("file",a),a?{src:URL.createObjectURL(a),type:a.type,file:a}:null}}const Dr=Or();var jr={props:{player:Object},methods:{async openFile(){console.log("Open file");const e=await Dr();if(console.log("select local source",e),!e)return;await this.player.setSource(e);const{currentSources:t,loadingState:a}=this.player.states;console.log("Dispatch remotePlay reset"),w["a"].dispatch("resetRemotePlay"),!t||t.length<=0||a||(this.player.ctl$emit("openFile"),this.player.play())},async loadVideo(e){if(console.log("Load video",e),e.target.files[0]){const t={src:URL.createObjectURL(e.target.files[0]),type:e.target.files[0].type,file:e.target.files[0]};console.log("Source",t),await this.player.setSource(t);const{currentSources:a,loadingState:n}=this.player.states;if(console.log(this.player.states),!a||a.length<=0)return;if(n)return;this.player.play()}}}},Nr=jr,Lr=Object(Y["a"])(Nr,Tr,zr,!1,null,"4dd2a6d6",null),Ur=Lr.exports;ie()(Lr,"components",{QBtn:ne["a"]});var Rr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{staticClass:"text-white controller:panel",attrs:{ripple:!1,size:"2rem",icon:e.icon,disable:e.disable,unelevated:"",round:""},on:{click:e.handlePlay}})},Mr=[],Fr={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},Br=Fr,Wr=Object(Y["a"])(Br,Rr,Mr,!1,null,"0e8525b1",null),Hr=Wr.exports;ie()(Wr,"components",{QBtn:ne["a"]});var Vr={mixins:[Qr()],components:{DialogPanel:mr,ErrorPanel:vr,LoadingPanel:$r,OpenButton:Ur,PlayButton:Hr},data(){return{interval:null}},props:{player:Object},computed:{playerError(){const e=this.player.states.loadingState;return e&&"boolean"!==typeof e?e:null},playerLoading(){const{loadingState:e,isWaiting:t}=this.player.states;return!0===e||!!t},emptySource(){const e=this.player.states.currentSources;return!e||e.length<=0}},mounted(){clearInterval(this.interval)},beforeDestroy(){clearInterval(this.interval)}};function Qr(){let e=null;function t(){e&&clearTimeout(e),e=null,this.dialog$data.icon=null,this.dialog$data.message=null}return{data(){return{dialog$data:{icon:null,message:null}}},computed:{dialogData(){const{icon:e,message:t}=this.dialog$data;if(!t)return null;const a={};return a.icon=e,a.message=t,a}},methods:{createDialog({icon:a,message:n,timeout:o}){return e&&clearTimeout(e),e=null,this.dialog$data.icon=a,this.dialog$data.message=n,o&&(e=setTimeout(t.bind(this),o)),t.bind(this)}}}}var Gr=Vr,Kr=Object(Y["a"])(Gr,tr,ar,!1,null,null,null),Yr=Kr.exports,Jr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-top relative-position",staticStyle:{"min-height":"56px"}},[a("div",{staticClass:"controller-top absolute-full overflow-hidden"}),a("div",{staticClass:"relative-position flex no-wrap items-center text-white q-px-md q-pb-sm non-selectable",staticStyle:{"z-index":"1","padding-top":"10px"}},[e.info?[a("q-icon",{staticClass:"q-ml-sm q-mr-sm",attrs:{name:"movie",size:"1.5rem"}}),a("div",{staticClass:"q-my-xs q-mx-sm col-shrink"},[a("div",{staticClass:"text-bold",staticStyle:{"font-size":"0.9rem","line-height":"1.2"}},[e._v(e._s(e.info.title))]),e.info.caption?a("div",{staticClass:"ellipsis",staticStyle:{"max-width":"200px",opacity:"0.6","font-size":"0.7rem","line-height":"1"}},[e._v(e._s(e.info.caption)+"\n ")]):e._e()])]:e._e(),a("q-space"),e._t("right")],2)])},Zr=[],Xr={props:{player:Object},computed:{info(){var e,t;const a=null!==(e=null===(t=this.player.states.currentSources)||void 0===t?void 0:t[0])&&void 0!==e?e:null;if(!a)return null;if(a.filename){const e=a.filename.replace(/\\/g,"/").split("/").reverse()[0];return{title:e.slice(0,e.lastIndexOf(".")),caption:a.filename}}return a.file?{title:a.file.name.slice(0,a.file.name.lastIndexOf(".")),caption:a.file.path}:{title:this.$t("unknown_media"),caption:a.src}}}},es=Xr,ts=Object(Y["a"])(es,Jr,Zr,!1,null,"2ead7b1a",null),as=ts.exports;ie()(ts,"components",{QIcon:wa["a"],QSpace:pe["a"]});var ns=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-bottom relative-position"},[a("div",{staticClass:"controller-bottom full-height full-width absolute-top-left overflow-hidden"}),a("div",{staticClass:"relative-position flex items-center text-white q-px-md q-pb-sm non-selectable no-wrap",staticStyle:{"padding-top":"12px"}},[a("PlayButton",{attrs:{player:e.player}}),a("StopButton",{attrs:{player:e.player}}),a("div",{staticClass:"q-mx-sm q-my-sm text-bold ellipsis",style:{opacity:e.disable?.7:1}},[e._v(e._s(e.timeLabel))]),a("q-space"),e._t("right")],2),a("ProgressBar",{attrs:{player:e.player}})],1)},os=[],is=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar absolute-top q-px-md no-pointer-events",class:e.disable?["video-js-player__progress-bar-disable"]:[]},[a("q-slider",{staticClass:"video-js-player__progress-bar-slider all-pointer-events",attrs:{"disable-keydown":"",min:0,max:1e3*e.duration,"track-color":"transparent","thumb-color":"primary","thumb-size":"12px",dark:"",label:"",dense:"","label-value":e.progressLabel,disable:e.disable},nativeOn:{click:function(t){return e.onClick.apply(null,arguments)}},model:{value:e.progress,callback:function(t){e.progress=t},expression:"progress"}}),e._m(0),e._l(e.player.states.buffered,(function(t,n){var o=t[0],i=t[1];return a("div",{key:n,staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("BufferProgress",{staticStyle:{opacity:"1"},attrs:{start:o/e.player.states.duration||0,end:i/e.player.states.duration||0}})],1)}))],2)},rs=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("div",{staticClass:"video-js-player__progress-bar-buffered-bg"})])}];function ss(){const e=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};let t=0;return{computed:{progress:{get(){return 1e3*this.player.states.currentTime},set(e){this.player.seek(e/1e3)}},animationSpeed(){const e=Math.abs(this.progress-t);return t=this.progress,e>300?0:e},duration(){return this.player.states.duration},progressLabel(){return e(this.progress/1e3)},durationLabel(){return e(this.duration)}}}}var ls=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__buffer-progress relative-position full-width"},[a("div",{staticClass:"absolute full-height",staticStyle:{"border-radius":"4px"},style:{width:100*(e.end-e.start)+"%",left:100*e.start+"%"}})])},cs=[],ds={props:{start:Number,end:Number}},us=ds,_s=(a("d1e4"),Object(Y["a"])(us,ls,cs,!1,null,"4e25daec",null)),ps=_s.exports,ms={mixins:[ss()],components:{BufferProgress:ps},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t}},methods:{onClick(){console.log("[Ctrl] onProgressBarClick"),this.$emit("click"),setTimeout((()=>{this.$el.blur(),document.body.click(),console.log("[Ctrl] Blur")}),200)}}},hs=ms,gs=(a("84cb"),a("f9b5")),fs=Object(Y["a"])(hs,is,rs,!1,null,null,null),bs=fs.exports;ie()(fs,"components",{QSlider:gs["a"]});var ys=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:"",disable:e.disable},on:{click:e.handlePlay}})},vs=[],ws={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},ks=ws,Ss=Object(Y["a"])(ks,ys,vs,!1,null,null,null),Cs=Ss.exports;ie()(Ss,"components",{QBtn:ne["a"]});var xs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"stop",unelevated:"",round:"",disable:e.disable},on:{click:e.handleStop}})},$s=[],Ts={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{async handleStop(){this.player.states.isPiP&&this.player.setPiP(!1),this.player.states.isFullscreen&&this.player.setFullscreen(!1),w["a"].dispatch("resetRemotePlay"),await this.player.stop()}}},zs=Ts,Ps=Object(Y["a"])(zs,xs,$s,!1,null,null,null),As=Ps.exports;ie()(Ps,"components",{QBtn:ne["a"]});var Is={mixins:[ss()],components:{PlayButton:Cs,StopButton:As,ProgressBar:bs},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},timeLabel(){const e=e=>{const t=Math.round(e),a=Math.floor(t/3600),n=Math.floor((t-60*a*60)/60),o=t-(60*a*60+60*n);return(a?[a,n,o]:[n,o]).map((e=>(""+e).padStart(2,"0"))).join(":")};return`${e(this.player.states.currentTime)} / ${e(this.player.states.duration)}`}}},qs=Is,Os=a("526f"),Es=Object(Y["a"])(qs,ns,os,!1,null,null,null),Ds=Es.exports;ie()(Es,"components",{QLinearProgress:Os["a"],QSpace:pe["a"]});var js=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerPage",{attrs:{title:e.$t("settings"),icon:"settings"},model:{value:e.showSetting,callback:function(t){e.showSetting=t},expression:"showSetting"}},[a("q-list",{staticClass:"video-js-player__setting-list",attrs:{dark:"",bordered:"",separator:""}},[a("q-item-label",{staticClass:"q-mx-md q-mt-md",staticStyle:{"font-size":"1.1rem"}},[e._v(e._s(e.$t("settings_subtitle_options")))]),a("SubtitleOptions")],1)],1)},Ns=[],Ls=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.value?a("div",{staticClass:"non-selectable absolute-full video-js-player__page",staticStyle:{"z-index":"1000"}},[a("div",{staticClass:"bg-transparent full-width"},[a("q-toolbar",{staticStyle:{height:"56px"}},[e.icon?a("q-icon",{staticClass:"q-ml-sm",attrs:{name:e.icon,size:"1.5rem"}}):e._e(),a("q-toolbar-title",{staticClass:"text-bold",staticStyle:{"font-size":"1rem","line-height":"1.2"}},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(){return e.$emit("input",!1)}}})],1),a("q-separator",{staticStyle:{"background-color":"rgba(256,256,256,0.2)"},attrs:{size:"0.8px"}})],1),a("q-page",{attrs:{padding:""}},[e._t("default")],2)],1):e._e()},Us=[],Rs={props:{icon:String,title:String,value:Boolean}},Ms=Rs,Fs=(a("5a2f"),a("99c4")),Bs=a("75a3"),Ws=a("9b72"),Hs=Object(Y["a"])(Ms,Ls,Us,!1,null,null,null),Vs=Hs.exports;ie()(Hs,"components",{QToolbar:Fs["a"],QIcon:wa["a"],QToolbarTitle:Bs["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"],QPage:Ws["a"]});var Qs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"overflow-hidden"},[a("q-item-section",{attrs:{side:""}},[a("div",{staticClass:"column",staticStyle:{"align-items":"stretch",gap:"8px"}},[a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontSizeOptions,"toggle-color":"primary"},model:{value:e.fontSize,callback:function(t){e.fontSize=t},expression:"fontSize"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontStyleOptions,"toggle-color":"primary"},model:{value:e.fontStyle,callback:function(t){e.fontStyle=t},expression:"fontStyle"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontWeightOptions,"toggle-color":"primary"},model:{value:e.fontWeight,callback:function(t){e.fontWeight=t},expression:"fontWeight"}})],1)]),a("q-item-section",{staticClass:"bg-grey-9 flex justify-center items-center overflow-hidden relative-position",staticStyle:{padding:"8px","border-radius":"8px"}},[a("div",{staticClass:"absolute-top-right"},[a("q-btn-toggle",{staticClass:"q-ma-xs lorem-ipsum",staticStyle:{"background-color":"rgba(50, 50, 50, 0.6)","border-radius":"4px"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.loremIpsumOptions,"toggle-color":"primary"},model:{value:e.loremIpsumType,callback:function(t){e.loremIpsumType=t},expression:"loremIpsumType"}})],1),a("div",{staticClass:"video-js-player__subtitle ellipsis overflow-hidden col-shrink"},[e._v(e._s(e.loremIpsum))])])],1)},Gs=[],Ks={mixins:[Ys()],name:"SubtitleOptions",inject:["player$settings"],computed:{fontSize:{get(){return this.player$settings.subtitle.size},set(e){this.player$settings.subtitle.size=e}},fontStyle:{get(){return this.player$settings.subtitle.style},set(e){this.player$settings.subtitle.style=e}},fontWeight:{get(){return this.player$settings.subtitle.weight},set(e){this.player$settings.subtitle.weight=e}},fontSizeOptions(){return[{label:this.$t("settings_small"),value:1},{label:this.$t("settings_normal"),value:1.25},{label:this.$t("settings_large"),value:1.7}]},fontStyleOptions(){return[{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_italic"),value:"italic"}]},fontWeightOptions(){return[{label:this.$t("settings_lighter"),value:"lighter"},{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_bolder"),value:"bold"}]}}};function Ys(){const e={EN:"Lorem ipsum dolor sit amet, consectetur adipisicing elit.","简":"朝菌不知晦朔,蟪蛄不知春秋。","繁":"天地不仁,以萬物為芻狗。 聖人不仁,以百姓為芻狗。"};return{data(){return{loremIpsumType:"EN"}},computed:{loremIpsum(){var t;return null!==(t=e[this.loremIpsumType])&&void 0!==t?t:e.EN},loremIpsumOptions(){return Object.keys(e).map((e=>({label:e,value:e})))}}}}var Js=Ks,Zs=(a("3061"),a("834d")),Xs=a("96d7"),el=Object(Y["a"])(Js,Qs,Gs,!1,null,null,null),tl=el.exports;ie()(el,"components",{QItem:fe["a"],QItemSection:be["a"],QBtnToggle:Zs["a"],QBtnGroup:Xs["a"],QBtn:ne["a"]});var al={components:{ControllerPage:Vs,SubtitleOptions:tl},props:{player:Object},data(){return{dev:!1,showSetting:!1}},methods:{show(){this.showSetting=!0}}},nl=al,ol=(a("071f"),Object(Y["a"])(nl,js,Ns,!1,null,null,null)),il=ol.exports;ie()(ol,"components",{QList:qn["a"],QItemLabel:ye["a"],QItem:fe["a"]});var rl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handleMute}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showVolumeCard,expression:"showVolumeCard"}],staticClass:"video-js-player__controller-menu controller-popup__transition absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",height:"140px",padding:"6px!important"}},[a("div",{staticClass:"absolute-bottom q-mb-md text-center text-bold"},[e._v(e._s(e.volume))]),a("q-slider",{staticClass:"video-js-player__volume-slider",staticStyle:{height:"100%"},attrs:{vertical:"",reverse:"","track-size":"40px","thumb-size":"0","track-color":"transparent",min:0,max:100,step:10},model:{value:e.volume,callback:function(t){e.volume=t},expression:"volume"}})],1)],1)])],1)},sl=[];function ll(e,t){return{computed:{mouseEvents(){let a=null;const n=n=>{a&&clearTimeout(a),a=setTimeout((()=>{this[e]=n,a=null}),t)},o=e=>e.classList.contains("video-js-player__controller"),i=(t,a)=>{if(a)this[e]=a;else{if(0!==t.which)return;n(a)}},r=e=>{if(!o(e.target))return clearTimeout(a);n(!1)},s=t=>{if(!o(t.target))return clearTimeout(a);this[e]=!0,n(!1)};return{mouseover:e=>r.call(this,e),mousemove:e=>s.call(this,e),mouseenter:e=>i.call(this,e,!0),mouseleave:e=>i.call(this,e,!1)}}}}}var cl={mixins:[ll("showVolumeCard",100)],props:{player:Object},data(){return{showVolumeCard:!1}},computed:{volume:{get(){return this.player.states.isMuted?0:Math.round(100*this.player.states.volume)},set(e){this.player.setVolume(e/100)}},icon(){return this.player.states.isMuted?"volume_off":"volume_up"}},methods:{handleMute(){this.player.mute(!this.player.states.isMuted)}}},dl=cl,ul=(a("f77d"),a("85c4")),_l=Object(Y["a"])(dl,rl,sl,!1,null,null,null),pl=_l.exports;ie()(_l,"components",{QBtn:ne["a"],QTr:ul["a"],QCard:Z["a"],QSlider:gs["a"]});var ml=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",unelevated:"",round:"",icon:"speed"},on:{click:function(t){e.showPlaybackRateCard=!e.showPlaybackRateCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showPlaybackRateCard,expression:"showPlaybackRateCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("q-btn-toggle",{staticClass:"column video-js-player__controller-btn-toggle",attrs:{"toggle-color":"active",ripple:!1,options:e.playbackRates},model:{value:e.playbackRate,callback:function(t){e.playbackRate=t},expression:"playbackRate"}})],1)],1)])],1)},hl=[],gl={mixins:[ll("showPlaybackRateCard",100)],props:{player:Object},data(){return{showPlaybackRateCard:!1}},computed:{playbackRate:{get(){var e;return null!==(e=this.player.states.playbackRate)&&void 0!==e?e:1},set(e){this.player.setPlaybackRate(e)}},playbackRates(){return[{label:"X2.0",value:2},{label:"X1.5",value:1.5},{label:"X1.0",value:1},{label:"X0.5",value:.5}]},playbackRateLabel(){return this.playbackRates.find((e=>e.value===this.playbackRate)).label}}},fl=gl,bl=(a("5e87"),Object(Y["a"])(fl,ml,hl,!1,null,null,null)),yl=bl.exports;ie()(bl,"components",{QBtn:ne["a"],QTr:ul["a"],QCard:Z["a"],QBtnToggle:Zs["a"]});var vl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{disable:e.disableShowSubtitleCard,size:"0.8rem",unelevated:"",round:"",icon:e.trackEnabled?"subtitles":"subtitles_off"},on:{click:function(){return e.showSubtitleCard=!e.showSubtitleCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showSubtitleCard,expression:"showSubtitleCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"min-width":"200px","border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("div",{staticClass:"row items-center justify-start no-wrap"},[a("div",{staticClass:"text-bold q-ml-sm q-mr-xs ellipsis",staticStyle:{"font-size":"0.8rem",transform:"translateY(0.1rem)"}},[e._v("\n "+e._s(e.$t("subtitle"))+"\n ")]),a("q-space"),a("div",{staticClass:"q-mr-xs overflow-hidden row items-stretch no-wrap",staticStyle:{"background-color":"rgba(256,256,256,0.1)","border-radius":"999px"}},[a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_rewind",unelevated:"",size:"0.6rem",padding:"0 6px 0 10px"},on:{click:function(){return e.handleTrackOffset(!1)}}}),a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_forward",unelevated:"",size:"0.6rem",padding:"0 10px 0 6px"},on:{click:function(){return e.handleTrackOffset(!0)}}})],1),a("q-btn",{staticClass:"q-mr-xs",style:{backgroundColor:e.trackEnabled?"var(--q-color-primary)":"rgba(256,256,256,0.1)"},attrs:{icon:e.trackEnabled?"subtitles":"subtitles_off",round:"",unelevated:"",size:"0.6rem"},on:{click:function(){return(e.trackEnabled?e.handleDisableTrack:e.handleEnableTrack)()}}}),a("q-btn",{staticClass:"q-mr-xs",staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{icon:"add",round:"",unelevated:"",size:"0.6rem"},on:{click:e.handleAddTrack}})],1),e.tracksLoaded&&e.tracksLoaded.length?a("q-list",{staticClass:"q-mt-xs video-js-player__controller-list",staticStyle:{"min-width":"180px","max-width":"200px","font-size":"0.8rem","max-height":"240px","overflow-y":"auto"}},e._l(e.tracksLoaded,(function(t){return a("q-item",{key:t.id,staticStyle:{"padding-right":"0"},attrs:{dense:"",clickable:"",disable:!e.trackEnabled},on:{click:function(){return!t.active&&e.handleEnableTrack(t.id)}}},[a("q-item-section",{staticClass:"q-pr-sm",staticStyle:{"min-width":"24px"},attrs:{avatar:""}},[a("q-badge",{attrs:{rounded:"",color:t.active?e.trackEnabled?"primary":"grey":"transparent"}})],1),a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))])],1),a("q-item-section",{staticStyle:{color:"inherit","padding-left":"4px"},attrs:{side:""}},[a("q-btn",{staticClass:"q-mr-xs",attrs:{icon:"clear",round:"",unelevated:"",size:"0.6rem",disable:!e.trackEnabled},on:{click:function(a){return e.handleRemoveTrack(t.id)}}})],1)],1)})),1):e._e()],1)],1)])],1)},wl=[],kl=Sl;function Sl(){const{selectFile:e,readTextFile:t}=qr(),a={vtt:"text/vtt",srt:"text/srt"};return async()=>{const n=await e({accept:Array.from(new Set([...Object.values(a),...Object.keys(a).map((e=>`.${e}`))]))});if(!n)return null;let o=await t(n);return o?(n.name.endsWith(".srt")&&(o=Cl(o)),{src:URL.createObjectURL(new Blob([o])),id:n.name}):null}}function Cl(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}}const xl=kl();var $l={mixins:[ll("showSubtitleCard",100)],props:{player:Object},data(){return{showSubtitleCard$inner:!1}},computed:{disableShowSubtitleCard(){const{currentSources:e}=this.player.states;return!e||e.length<=0},showSubtitleCard:{get(){return this.showSubtitleCard$inner&&!this.disableShowSubtitleCard},set(e){this.showSubtitleCard$inner=e}},trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},tracksLoaded(){var e,t,a;const n=this.player.states.track;if(!n)return[];const o=null!==(e=n.tracks)&&void 0!==e?e:[],i=null!==(t=null===(a=n.currentTrack)||void 0===a?void 0:a.id)&&void 0!==t?t:null;return o.map((e=>({id:e,label:e,active:e===i})))}},methods:{async handleAddTrack(){const e=await xl();e&&(this.player.addTrack(e),this.player.enableTrack(e.id))},async handleRemoveTrack(e){console.log("Remove track",e),this.player.removeTrack(e)},handleEnableTrack(e=null){const t=this.player.states.track;t&&this.player.enableTrack(e)},handleDisableTrack(){const e=this.player.states.track;e&&e.enable&&this.player.disableTrack()},handleTrackOffset(e){this.player.setTrackOffset(this.player.states.track.offset+(e?.5:-.5))}}},Tl=$l,zl=(a("cc0c"),a("90c4")),Pl=Object(Y["a"])(Tl,vl,wl,!1,null,null,null),Al=Pl.exports;ie()(Pl,"components",{QBtn:ne["a"],QTr:ul["a"],QCard:Z["a"],QSpace:pe["a"],QColor:Ye["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QBadge:zl["a"],QItemLabel:ye["a"]});var Il=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"picture_in_picture_alt",unelevated:"",round:"",disable:e.disable},on:{click:e.handler}})},ql=[],Ol={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{handler(){this.player.setPiP(!this.player.states.isPiP)}}},El=Ol,Dl=Object(Y["a"])(El,Il,ql,!1,null,null,null),jl=Dl.exports;ie()(Dl,"components",{QBtn:ne["a"]});var Nl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handler}})},Ll=[],Ul={props:{player:Object},computed:{icon(){return this.player.states.isFullscreen?"fullscreen_exit":"fullscreen"}},methods:{handler(){this.player.setFullscreen(!this.player.states.isFullscreen)}}},Rl=Ul,Ml=Object(Y["a"])(Rl,Nl,Ll,!1,null,null,null),Fl=Ml.exports;ie()(Ml,"components",{QBtn:ne["a"]});const Bl=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};var Wl=()=>{const e=5,t=.1;return{mixins:[Hl(),ss()],mounted(){this.hotkey$bind([32,179],"play_switch",(()=>{const{currentSources:e,loadingState:t}=this.player.states;!e||e.length<=0||t||(this.player.states.isPaused?this.player.play():this.player.pause())})),this.hotkey$bind(70,"fullscreen_switch",(()=>{this.player.setFullscreen(!this.player.states.isFullscreen)})),this.hotkey$bind([39,176],"forward",(()=>{console.log("[Ctrl] fwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime+e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_forward",message:`${Bl(i)} / ${this.durationLabel}`})})),this.hotkey$bind([37,177],"rewind",(()=>{console.log("[Ctrl] bwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime-e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_rewind",message:`${Bl(i)} / ${this.durationLabel}`})})),this.hotkey$bind(38,"volume_up",(()=>{const e=Math.max(0,Math.min(this.player.states.volume+t,1));this.player.setVolume(e)})),this.hotkey$bind(40,"volume_down",(()=>{const e=Math.max(0,Math.min(this.player.states.volume-t,1));this.player.setVolume(e)})),this.hotkey$bind(190,"track_offset_forward",(()=>{this.player.setTrackOffset(this.player.states.track.offset+.5)})),this.hotkey$bind(188,"track_offset_backward",(()=>{this.player.setTrackOffset(this.player.states.track.offset-.5)})),this.$watch((()=>{var e;return null===(e=this.player.states.track)||void 0===e?void 0:e.offset}),((e,t)=>{void 0!==t&&a.call(this,{icon:"subtitles",message:`${e>0?"+":""}${-1===e.toString().indexOf(".")?e+".0":e}s`})})),this.$watch((()=>this.player.states.volume),((e,t)=>{null!==t&&a.call(this,{icon:"volume_up",message:`${Math.round(100*e)}%`})}))}};function a({icon:e,message:t}){this.$refs.centerRef.createDialog({icon:e,message:t,timeout:1e3})}};function Hl(){const e={};let t;const a=[],n={};return{async mounted(){await this.player.promisePlayerReady,e.player=this.$el.parentNode,e.container=e.player.querySelector(".video-js-player>.video-js"),e.controller=this.$el,e.video=e.player.querySelector(".video-js-player>.video-js>video.vjs-tech"),e.controller.hasAttribute("tabIndex")||e.controller.setAttribute("tabIndex","-1"),e.controller.style.outline="none",t=i.bind(this),document.body.addEventListener("keydown",t)},beforeUnmount(){document.body.removeEventListener("keydown",t)},methods:{hotkey$bind:o,hotkey$focus(){const t=document.activeElement;t===e.player||t===e.container||t===e.controller||t===e.video||e.controller.contains(t)||e.container.focus()}}};function o(e,...t){const o={matcher:null,callback:null};function i(){return"function"===typeof e?e:"number"===typeof e?t=>t.which===e:Array.isArray(e)?t=>e.includes(t.which):null}function r(){let e,a;return 2===t.length?(e=t[0],a=t[1]):"function"===typeof t[0]?(e=null,a=t[0]):(e=t[0],a=null),e&&a&&(n[e]=a),e?()=>n[e]():a?()=>a():null}o.matcher=i(),o.callback=r(),o.matcher&&o.callback&&a.unshift(o)}async function i(t){const n=document.activeElement;if(n===e.player||n===e.container||n===e.controller||n===e.video||n===document.body||e.controller.contains(n)){const e=a.find((e=>e.matcher(t)));if(!e)return console.log("[Ctrl] No hotkey",t);console.log("[Ctrl]",e),await e.callback()}}}const Vl=Or();var Ql={mixins:[Wl(),Gl()],components:{ControllerLayout:Qi,Subtitle:er,Center:Yr,Header:as,Footer:Ds,Setting:il,VolumeButton:pl,PlaybackRateButton:yl,SubtitleButton:Al,PipButton:jl,FullscreenButton:Fl},props:{player:Object},methods:{handleOpenSetting(){this.player.pause(),this.$refs.settingRef.show()},async handleOpenLocalVideo(){console.log("handleOpenLocal");const e=await Vl();if(console.log("source",e),!e)return;await this.player.setSource(e),console.log(this.player.states);const{currentSources:t,loadingState:a}=this.player.states;!t||t.length<=0||a||(console.log(this.player,this.player.play),this.player.play())}}};function Gl(){return{provide(){return{player$settings:this.player$settings}},data(){return{player$settings:{subtitle:{style:"normal",weight:"normal",size:1.25}}}},mounted(){this.$watch((()=>this.player$settings.subtitle.size),(e=>{this.$el.style.setProperty("--subtitle-size",`${e}rem`)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.style),(e=>{this.$el.style.setProperty("--subtitle-style",e)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.weight),(e=>{this.$el.style.setProperty("--subtitle-weight",e)}),{immediate:!0})}}}var Kl=Ql,Yl=Object(Y["a"])(Kl,Li,Ui,!1,null,null,null),Jl=Yl.exports;ie()(Yl,"components",{QBtn:ne["a"]});var Zl={name:"VideoJsPlayer",components:{Controller:Jl},data(){return{player:null}},mixins:[Xl(),ec(),tc()]};function Xl(){const e=e=>e&&e.destroy();return{created(){this.player=this.$videoJs.createPlayer();const e=this.player.play.bind(this);this.player.play=(...t)=>{console.log("[Trigger play]",this.player,this.player.states),e(...t),this.$emit("player-play"),this.player.mute(this.player.states.isMuted)}},mounted(){this.$watch((()=>this.player),(async(a,n)=>{e(n),a&&(await a.initialize(this.$refs.videoRef),t.call(this))}),{immediate:!0})},beforeDestroy(){e(this.player)}};function t(){const e=["openFile"];e.forEach((e=>this.player.ctl$on(e,(()=>this.$emit(e)))))}}function ec(){return{created(){const e=()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null};this.$watch(e,(e=>{if(!e)return;const t=e.contentEl();if(!t)return;const a=t.nextElementSibling;a&&t.appendChild(a)}),{immediate:!0})}}}function tc(){return{methods:{async setSource(...e){await this.player.promiseReady,await this.player.setSource(...e)}}}}var ac=Zl,nc=(a("2163"),Object(Y["a"])(ac,ji,Ni,!1,null,null,null)),oc=nc.exports;window.videojs=it["default"],a("94ce"),a("63f2"),a("2079");var ic=(e,t)=>{const a=new e(Di);e.prototype.$videoJs=a,e.component("VideoJsPlayer",oc)},rc=e=>{const{Vue:t}=e;t.component("AlphabizButton",Ba),t.component("AlphabizSelect",Ya),t.component("VirtualScrollGrid",on),t.use(Lo),t.use(sc,e),t.config.errorHandler=function(e){throw e},t.use(lc),t.use(Ko,{}),t.use(Wo,{getLocalConfig:()=>O.a.dynamicConfig.local,getRemoteConfigUrl:()=>O.a.dynamicConfig.remote.url}),t.mixin({computed:{screen$xs(){return this.$q.screen.height<=600||this.$q.screen.width<=600},isPortrait(){return this.$q.screen.height>this.$q.screen.width}}}),t.use(ic,{})};function sc(e,{store:t}){const n=(...e)=>console.tag.orange("VersionControl",...e),o=()=>t.getters.settings.versionChannel,i=e=>{{const t=a("bc7b"),n=a("d6fe"),o="alphabiz"===process.env.REPO?n.resolve(process.cwd(),"public"):process.resourcesPath,i="version.json",r=t.readFileSync(n.resolve(o,i)),s=JSON.parse(r);return s[e]}},r=e=>{const[t,a,n]=e.split("-");return{version:t,channel:null!==a&&void 0!==a?a:"stable",build:n}},s=e=>{const t=Array.from(e),a=[4,2,2,2,2].reduce(((e,a,n)=>(e[n]=t.splice(0,a).join(""),e)),[]);return new Date(a.splice(0,3).join("-")+" "+a.join(":"))},l=async({wait:e,timeout:t})=>{const a=O.a.versionsUrl,o=async()=>{try{return await(await fetch(a)).json()}catch{return null}},i=async(e,{onTimeout:t,timeout:a})=>{let n,o=!1;return await Promise.race([e.then((e=>{o=!0,n=e})),new Promise((e=>setTimeout(e,a))).then((()=>{o||t&&(n=t())}))]),n},r=(e,{onFailed:t,wait:a})=>{let n=!1;const o=async()=>{let o=await e();while(!o&&!n){if(await new Promise((e=>setTimeout(e,a))),n)break;if(o=await e(),n)break;o||t()}return o},i=o();return i.cancel=()=>n=!0,i},s=r((async()=>await o()),{onFailed(){n().tag("retry").log("retry to fetch versionsInfo")},wait:e}),l=await i(s,{timeout:t,onTimeout(){return n().tag.red("failed").log("failed to fetch versionsInfo"),null}}).finally(s.cancel);return l},c=31536e6,d=1e4,u=new e({data(){return{currentVersion:r(i("version")),buildTime:s(i("buildTime")),versionsInfo:void 0}},computed:{versionState(){if(!Object(f["isElectron"])())return"active";if(void 0===this.versionsInfo)return"pending";if(this.versionsInfo){const e=r(this.versionsInfo.min[o()]),t=Mo.a.gt([e.version,e.build].filter((e=>!!e)).join("-"),[this.currentVersion.version,this.currentVersion.build].filter((e=>!!e)).join("-"));return t?"force_update":"active"}{const e=new Date-this.buildTime;return e>=c?"force_exit":"active"}}},created(){this.$watch("currentVersion",(e=>{n("currentVersion").log(JSON.parse(JSON.stringify(e)))}),{immediate:!0}),this.$watch("versionsInfo",(e=>{n("versionsInfo").log(e?JSON.parse(JSON.stringify(null!==e&&void 0!==e?e:{})):e)}),{immediate:!0}),this.$watch("versionState",(e=>{n("versionState").log(e)}),{immediate:!0});const e=3e3;l({wait:e,timeout:d}).then((e=>this.versionsInfo=e))}});e.mixin({computed:{vc$versionState(){return u.versionState},vc$buildTime(){return u.buildTime}}})}function lc(e){function t(){let e=0;document.addEventListener("touchstart",(e=>{e.touches.length>1&&e.preventDefault()})),document.addEventListener("touchend",(t=>{const a=(new Date).getTime();a-e<=300&&t.preventDefault(),e=a}),!1),document.addEventListener("gesturestart",(e=>e.preventDefault())),document.addEventListener("dblclick",(e=>e.preventDefault()))}function a(){const e=window.innerHeight;document.documentElement.style.setProperty("--viewport-height",`${e}px`)}window.addEventListener("DOMContentLoaded",t),window.addEventListener("resize",a),window.addEventListener("DOMContentLoaded",a)}const cc={account_error_network:["Network error","Network Error"],account_error_attempt_limit_exceeded:["Attempt limit exceeded, please try after some time"],account_error_incorrect_username_or_password:["User does not exist","Incorrect username or password"],account_error_username_not_found:["Username/client id combination not found."],account_error_can_not_reset_for_no_verified:["Cannot reset password for the user as there is no registered/verified email or phone_number"],account_error_invalid_verification_code:["Invalid verification code provided, please try again"],account_error_password_not_long_enough:["Password did not conform with policy: Password not long enough"],account_error_invalid_phone_number_format:["Invalid phone number format"],account_error_no_cell_phone_prefix:["Please select the prefix for the phone number"],account_error_username_already_exists:["User already exists"],account_error_incorrect_password:["Incorrect password"],account_error_you_need_to_accept_license_terms:["you_need_to_accept_license_terms"],account_error_incorrect_original_password:["incorrect_original_password"]},dc={match:e=>Object.values(cc).some((t=>Array.isArray(t)?t.includes(e.message):"object"===typeof t&&Object.keys(t).includes(e.message))),execute(e,t){const a=Object.keys(cc).find((t=>cc[t].some((t=>t.includes(e.message)))));t.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})}};var uc=[dc],_c=(a("e39c"),a("229c"));function pc(e){const t={};return a(),n((()=>{o({handleBatchItem(e){console.log("Analytics.send.batchItem:",e)},handleEndpoint:(e,t)=>{console.log(`Analytics.send: Endpoint(${e})`,t)},handleEvent:(t,a)=>{console.log(`Analytics.send: Event<${a.EventType}>(${t})`,a);const n=e.eventHandlers[a.EventType];n&&n(a,t)}})})),_c["a"].$debug=function(){console.log("Analytics$debug:",{_config:_c["a"]._config,pinpoint:t.pinpoint,pinpointClient:t.pinpointClient})},_c["a"].$context=t,window.Analytics=_c["a"],t;function a(){const e=_c["a"]._pluggables.find((e=>"AWSPinpoint"===e.getProviderName()));Object.assign(t,{pinpoint:e})}function n(e){Object.defineProperty(t.pinpoint,"pinpointClient",{get(){return t.pinpointClient},set(a){t.pinpointClient=a,e(a)}})}function o({handleEndpoint:e,handleEvent:a,handleBatchItem:n}){const o=t.pinpointClient.send;t.pinpointClient.send=async function(){var i;const r=arguments[0].input;r.EndpointId&&e(r.EndpointId,r.EndpointRequest);const s=await t.pinpoint._config.endpointId,l=null===(i=r.EventsRequest)||void 0===i?void 0:i.BatchItem;if(l&&n(l),l&&l[s]){const{Endpoint:e,Events:t}=l[s];Object.entries(t).forEach((([e,t])=>{a(e,t)}))}return await o.apply(this,arguments)}}}var mc=a("36f2"),hc=async(e,{app:t})=>{if(pc({eventHandlers:{"_userauth.sign_up":(e,t)=>{},"_userauth.sign_in":(e,t)=>{},"_userauth.sign_out":(e,t)=>{}}}),process&&process.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))return void _c["a"].configure({disabled:!0});const a=gc();console.log("Analytics.app_data:",a),_c["a"].configure({AWSPinpoint:{endpoint:{attributes:{...Object.entries(a).reduce(((e,[t,a])=>({...e,[t]:[a]})),{})},metrics:void 0}}}),await Promise.all([fc(),bc(t)])};function gc(){var e;const{packageFormat:t,version:n}=i(),o=n.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:O.a.name,app_type:"electron",app_env:"production",app_format:null!==t&&void 0!==t?t:"unknown",app_version:o.version,app_channel:null!==(e=o.channel)&&void 0!==e?e:"stable"};function i(){{const e=a("bc7b"),t=a("d6fe"),n="alphabiz"===process.env.REPO?t.resolve(process.cwd(),"public"):process.resourcesPath,o="version.json",i=e.readFileSync(t.resolve(n,o));return JSON.parse(i)}}}async function fc(){const e=await fetch("https://ipinfo.io/json?token=69cbd72732f325").then((e=>e.json())).catch((()=>null));if(!e)return!1;console.log("Analytics.location:",e);const t={country:e.country};await _c["a"].updateEndpoint({location:t})}async function bc(e){e.router.app.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await _c["a"].updateEndpoint({userId:e.store.state.account.sub})}))}var yc=a("1738"),vc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g(e._b({style:{minWidth:e.minWidth},attrs:{size:"md",align:"around","no-wrap":"",percentage:e.percentage,disable:e.value||e.loading,loading:e.loading,type:e.type,unelevated:!e.shadow,icon:e.icon,label:e.label,color:e.primary?"primary":e.transparent?"transparent":"general","text-color":e.primary?"primary":"general"},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner",{attrs:{color:e.primary?"primary":"general"}})]},proxy:!0}])},"q-btn",Object.assign({},e.bound),!1),Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},wc=[],kc={name:"AmplifyButton",props:{primary:Boolean,immediate:Boolean,shadow:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},minWidth:{type:String,default:"128px"},value:{type:Boolean,default:!1},timeout:{type:Object,default:void 0},icon:{type:String,default:void 0},label:{type:String,default(){return this.icon?void 0:"button"}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},onAnimationEnd:{type:Function,default:void 0},bound:{type:Object,default(){return{}}}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t()}return o}}},beforeDestroy(){this.shutdownTimer()}},Sc=kc,Cc=(a("3c15"),Object(Y["a"])(Sc,vc,wc,!1,null,"6fc70cc6",null)),xc=Cc.exports;ie()(Cc,"components",{QBtn:ne["a"],QSpinner:Ma["a"]});var $c=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{style:Object.assign({},{minWidth:e.minWidth},e.maxWidth?{maxWidth:e.maxWidth}:{},{paddingBottom:e.screen$xs?"calc(44px + 8px)":"8px"}),attrs:{flat:"",bordered:e.bordered}},[e.showCancelCorner?a("amplify-button",{ref:"cornerCancelButton",staticClass:"self-start",staticStyle:{height:"48px"},attrs:{immediate:!0,transparent:!0,icon:"arrow_back","on-click":e.onCancel,"min-width":"64px"},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showTitle,expression:"showTitle"}],staticClass:"q-py-sm",class:e.screen$xs?"q-px-sm":"q-px-md"},[a("div",{staticClass:"text-h6 text-weight-bold q-py-sm non-selectable"},[e._v(e._s(e.title))])]),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showDescription,expression:"showDescription"}],staticClass:"q-pt-none q-pb-sm amplify-card-description",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("description",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-form",{directives:[{name:"show",rawName:"v-show",value:e.showForm,expression:"showForm"}],staticClass:"col-grow",on:{submit:e.handleSubmit}},[a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showContent,expression:"showContent"}],staticClass:"col-grow q-pt-none amplify-card-form",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("default",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:e.showCardActions,expression:"showCardActions"}],staticClass:"q-pt-md q-pb-sm amplify-card-actions",class:e.screen$xs?"q-px-sm":"q-px-md",attrs:{align:"stretch",vertical:""}},[e._t("options",null,{disable:e.disable,setDisable:function(t){return e.disable=t}}),e.showSubmitButton?a("amplify-button",{ref:"submitButton",attrs:{primary:!e.noPrimary,type:"submit",timeout:e.timeout,label:e.submitLabel,"on-click":e.onSubmit,"on-animation-end":e.afterSubmit},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e.showCancelButton?a("amplify-button",{ref:"cancelButton",attrs:{immediate:"",label:e.cancelLabel,"on-click":e.onCancel},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e._t("actions",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2)],1)],1)},Tc=[],zc={name:"AmplifyCard",props:{title:{type:String,default:void 0},bordered:{type:Boolean,default:!1},minWidth:{type:String,default:"320px"},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},afterSubmit:{type:Function,default:void 0},noPrimary:Boolean,hideDescription:Boolean,hideOptions:Boolean,hideActions:Boolean},data(){return{disable:!1}},methods:{async handleSubmit(e){await this.$refs.submitButton.handleButton(e)},handleKeydownEsc(){if(this.disable)return;if(!this.showCancelButton&&!this.showCancelCorner)return;const e=this.showCancelButton?"cancelButton":"cornerCancelButton";this.$refs[e].handleButton(null)}},computed:{showCancelCorner(){return this.cancelable&&this.cornerCancel},showTitle(){return!!this.title},showDescription(){return!this.hideDescription&&(!!this.$slots.description||!!this.$scopedSlots.description)},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!this.hideOptions&&(!!this.$slots.options||!!this.$scopedSlots.options)},showActions(){return!this.hideActions&&(!!this.$slots.actions||!!this.$scopedSlots.actions)},showSubmitButton(){return!!this.onSubmit},showCancelButton(){return this.cancelable&&!this.cornerCancel},showForm(){return this.showContent||this.showCardActions},showCardActions(){return this.showOptions||this.showSubmitButton||this.showCancelButton||this.showActions}}},Pc=zc,Ac=(a("0251"),a("1117")),Ic=Object(Y["a"])(Pc,$c,Tc,!1,null,null,null),qc=Ic.exports;ie()(Ic,"components",{QCard:Z["a"],QCardSection:X["a"],QForm:Ac["a"],QCardActions:we["a"]});var Oc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{"no-shake":"",value:e.value,persistent:"","content-class":{"background-blur":e.blur,"background-mask":e.mask,"fullscreen-dialog":!0}},on:{input:function(t){return e.$emit("input",t)}}},[e.single?a("amplify-card",e._b({attrs:{"hide-description":!e.showDescription,"hide-options":!e.showOptions,"hide-actions":!e.showActions},scopedSlots:e._u([{key:"description",fn:function(t){return[e.showDescription?e._t("description",null,null,t):e._e()]}},{key:"default",fn:function(t){return[e.showContent?e._t("default",null,null,t):e._e()]}},{key:"options",fn:function(t){return[e.showOptions?e._t("options",null,null,t):e._e()]}},{key:"actions",fn:function(t){return[e.showActions?e._t("actions",null,null,t):e._e()]}}],null,!0)},"amplify-card",e.cardProps,!1)):[e._t("default",null,{cardProps:e.cardProps,handleSubmit:e.handleSubmit,handleCancel:e.handleCancel})]],2)},Ec=[],Dc={name:"AmplifyDialog",props:{value:Boolean,blur:Boolean,mask:Boolean,single:{type:Boolean,default:!0},title:{type:String,default:void 0},minWidth:{type:String,default:void 0},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},onClear:{type:Function,default:void 0}},data(){return{disable:!1,close:!1}},watch:{value(e){!e&&this.onClear&&setTimeout((()=>this.onClear()),1e3)}},computed:{cardProps(){const e={};return e.title=this.title,e.minWidth=this.minWidth,e.maxWidth=this.maxWidth,e.cancelable=this.cancelable,e.cornerCancel=this.cornerCancel,e.submitLabel=this.submitLabel,e.cancelLabel=this.cancelLabel,e.timeout=this.timeout,this.onSubmit&&(e.onSubmit=()=>this.handleSubmit(this.onSubmit)),this.cancelable&&(e.onCancel=()=>this.handleCancel(this.onCancel)),e.afterSubmit=()=>this.handleAfterSubmit(),e},showDescription(){return!!this.$slots.description||!!this.$scopedSlots.description},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!!this.$slots.options||!!this.$scopedSlots.options},showActions(){return!!this.$slots.actions||!!this.$scopedSlots.actions}},methods:{async handleSubmit(e){e?this.close=await e():this.closeDialog()},async handleCancel(e){if(e){const t=await e();t&&this.closeDialog()}else this.closeDialog()},handleAfterSubmit(){this.close&&(this.close=!1,this.closeDialog())},closeDialog(){this.$emit("input",!1)}}},jc=Dc,Nc=(a("4d89"),Object(Y["a"])(jc,Oc,Ec,!1,null,null,null)),Lc=Nc.exports;ie()(Nc,"components",{QDialog:J["a"]});var Uc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"amplify-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,"use-input":Boolean(e.filter),"input-debounce":"0","popup-content-style":e.popupWidth,"input-style":e.enableFilter?"":"display:none","virtual-scroll-item-size":"48",hint:e.hint},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n "+e._s(e.$t("no_available_result"))+"\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}},e.hint?{key:"hint",fn:function(){return[e._v(e._s(e.hint))]},proxy:!0}:null],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},Rc=[],Mc={name:"AmplifySelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String],itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0},hint:String},data(){return{enableFilter:!1,filterValue:"",inputWidth:"280"}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid amplify-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e},popupWidth(){return this.inputWidth>292?`width: ${1*this.inputWidth+50}px`:`width: ${this.inputWidth-4}px`}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0;const e=this.$el.firstChild;e.style.width="84.36px",this.$emit("popup-show"),this.$nextTick((()=>{this.$refs.select&&this.$refs.select.showPopup()}))},onPopupHide(){this.enableFilter=!1,this.filterValue="";const e=this.$el.nextSibling,t=this.$el.firstChild;e&&(e.style.display=""),t&&(t.style.width="84.36px"),this.$emit("popup-hide")},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))},getInputWidth(){this.$nextTick((()=>{const e=this.$el.firstChild.offsetParent.childNodes[0];this.inputWidth=e.clientWidth}))}},updated(){this.getInputWidth()}},Fc=Mc,Bc=(a("bbb8"),Object(Y["a"])(Fc,Uc,Rc,!1,null,null,null)),Wc=Bc.exports;ie()(Bc,"components",{QSelect:ee["a"],QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QInput:te["a"],QItemLabel:ye["a"],QField:Ga["a"]});var Hc=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-input-wrapper"},[e.isTel&&e.phoneNumberPrefixValue?a("amplify-select",{ref:"select",staticClass:"amplify-input-select",class:{focus:e.focusSelect},attrs:{options:e.phoneNumberPrefixOptions,selectLabelFn:function(){return""},readonly:e.readonly,autofocus:!1,align:e.$el,filter:e.phoneNumberPrefixFilter},on:{"popup-show":function(t){return e.selectFocus(!0)},"popup-hide":function(t){return e.selectFocus(!1)}},model:{value:e.phoneNumberPrefixValue,callback:function(t){e.phoneNumberPrefixValue=t},expression:"phoneNumberPrefixValue"}}):e._e(),a("q-input",{directives:[{name:"show",rawName:"v-show",value:!e.focusSelect,expression:"!focusSelect"}],ref:"input",staticClass:"amplify-input",class:{"amplify-tel-input":e.isTel},attrs:{"lazy-rules":"ondemand",spellcheck:"false",dense:"",outlined:"",readonly:e.readonly,autofocus:e.autofocus,value:e.isTel?e.value[1]:e.value,type:"password"===e.type?e.hidePassword?"password":"text":e.type,label:!e.isTel&&e.label?e.label:void 0,rules:e.rulesCpt,min:e.rangeCpt[0],max:e.rangeCpt[1],"error-message":e.errorMessage,error:Boolean(e.errorMessage),hint:e.hint},on:{input:e.handleInput,keydown:function(t){return t.type.indexOf("key")||8===t.keyCode?e.onPressBack.apply(null,arguments):null},focus:function(t){return e.inputFocus(!0)},blur:function(t){return e.inputFocus(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"prepend",fn:function(){return[e.isTel&&e.value[0]&&e.prefixStart?a("div",{staticClass:"amplify-input-phone-number-prefix"},[e._v("\n +"+e._s(e.value[0])+"\n ")]):e._e(),e.icon&&!e.isTel?a("q-icon",{attrs:{name:e.icon}}):e._e()]},proxy:!0},"password"===e.type?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}:null],null,!0)})],1)},Vc=[],Qc=a("c228");const Gc=(()=>{const e={};Object.values(Qc["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})();var Kc={name:"AmplifyInput",props:{value:[String,Array],readonly:Boolean,autofocus:Boolean,required:{type:[Boolean,String],default:!1},type:{type:String,default:"text"},label:String,icon:String,rules:Array,range:Array,mask:String,errorMessage:String,hint:String},data(){return{focusSelect:!1,hidePassword:!0,prefixStart:!0}},computed:{isTel(){return"tel"===this.type},rulesCpt(){const e=e=>this.requiredRule(e),t=this.rules?this.rules.map((e=>t=>{const a=e(t);return"string"===typeof a?this.$t(a):"object"===typeof a&&Array.isArray(a)?this.$t(...a):a})):null,a=[...this.required?[e]:[],...t||[]];return this.isTel&&a.push((e=>this.phoneNumberRule(e))),a},rangeCpt(){const e={date:["1900-01-01","2099-12-31"]},t=e[this.type]||[void 0,void 0];return this.range&&([void 0,null].includes(this.range[0])||(t[0]=this.range[0]),[void 0,null].includes(this.range[1])||(t[1]=this.range[1])),t},phoneNumberNotSay(){if(this.isTel)return{value:"notSay",label:"notSay",emoji:"🇼🇫"}},phoneNumberPrefixOptions(){if(!this.isTel)return;const e=Object.values(Gc);return e.unshift(this.phoneNumberNotSay),e},phoneNumberPrefixValue:{get(){if(!this.isTel)return;const e=this.value[0],t=this.value[2];return e&&t?`${e}-${t}`:this.phoneNumberNotSay.value},set(e){if(this.isTel)if(e&&e!==this.phoneNumberNotSay.value){const{prefixCode:t,countryCode:a}=Gc[e];let n=this.value[1];n.startsWith("+")&&(n=n.substr(1)),n.startsWith("00")&&(n=n.substr(2)),this.$emit("input",[t,n,a]),localStorage.setItem("def_tel_prefix",`${a}-${t}`)}else this.$emit("input",["",this.value[1],""])}}},methods:{selectFocus(e){this.focusSelect=e},inputFocus(e){var t,a,n,o,i,r;(console.log("On focus input",e),e)?null===(t=this.$refs.select)||void 0===t||null===(a=t.$el)||void 0===a||null===(n=a.classList)||void 0===n||n.add("q-field--highlighted","q-field--focus"):null===(o=this.$refs.select)||void 0===o||null===(i=o.$el)||void 0===i||null===(r=i.classList)||void 0===r||r.remove("q-field--highlighted","q-field--focus")},handleInput(e){this.$refs.input.resetValidation(),this.isTel?this.handlePhoneNumberInput(e):this.$emit("input",e)},requiredRule(e){if(this.isTel)return this.phoneNumberRequiredRule(e);if(e&&e.length>0)return!0;const t="string"===typeof this.required?this.required:this.label;return`${t}${this.$t("account_is_required")}`},phoneNumberRequiredRule(e){const t=e[1];if(t)return!0;{const e="string"===typeof this.required?this.required:this.label;return`${e}${this.$t("account_is_required")}`}},phoneNumberRule(e){const t=e[1];return this.phoneNumberPrefixValue===this.phoneNumberNotSay.value&&t?this.$t("account_error_no_cell_phone_prefix"):(this.phoneNumberPrefixValue===this.phoneNumberNotSay.value||t||(this.phoneNumberPrefixValue=this.phoneNumberNotSay.value),!0)},phoneNumberPrefixFilter(e,t){const a=["normalizedName","nativeName","value"];return a.find((a=>!!t[a]&&t[a].toLowerCase().indexOf(e.toLowerCase())>=0))},handlePhoneNumberInput(e){const t=()=>{if(!e)return this.phoneNumberNotSay;const t=e.startsWith("+"),a=e.startsWith("00"),n=t?"+":a?"00":Array.isArray(this.value)&&this.value[0]?"__":"";return this.phoneNumberPrefixOptions.find((({prefixCode:t})=>e.startsWith(`${n}${t}`)))||null},a=t();if(void 0===a||null===a)this.$emit("input",[this.value[0],e,this.value[2]]);else if(a===this.phoneNumberNotSay)this.$emit("input",[this.value[0],e,this.value[2]]);else{const{prefixCode:t,countryCode:n}=Gc[a.value];let o=e;if(o.startsWith("+")&&(o=o.substr(1)),o.startsWith("00")&&(o=o.substr(2)),o.startsWith(t)&&(o=o.substr(t.length)),this.$emit("input",[t,o,n]),!t||!n)return;localStorage.setItem("def_tel_prefix",`${n}-${t}`)}},onPressBack(e){const t=e.target;if(console.log("press back",JSON.stringify(this.value),t.selectionStart,t.selectionEnd),"email"===t.type)return console.log("Default behavior for email");const a=t.selectionDirection,n=t.selectionStart,o=t.selectionEnd,i=n===o?n-1:n,r=i<0?0:i;if(this.$nextTick((async()=>{await this.$nextTick();try{t.setSelectionRange(r,r,a)}catch(e){console.log(e.message)}})),e.preventDefault(),e.stopPropagation(),this.isTel)this.value[1]=this.value[1].substring(0,n===o?n-1:n)+this.value[1].substring(o),this.handlePhoneNumberInput(this.value[1]);else{const e=this.value.substring(0,n===o?n-1:n)+this.value.substring(o);this.$emit("input",e)}0===n&&0===o&&this.isTel&&this.$emit("onPressBack"),this.isTel&&0===o&&0===this.value[1].length&&this.$emit("input",["","",""])}},updated(){this.prefixStart=!0}},Yc=Kc,Jc=(a("2214"),Object(Y["a"])(Yc,Hc,Vc,!1,null,null,null)),Zc=Jc.exports;function Xc(e){e.component("AmplifyButton",xc),e.component("AmplifyCard",qc),e.component("AmplifyDialog",Lc),e.component("AmplifySelect",Wc),e.component("AmplifyInput",Zc)}ie()(Jc,"components",{QInput:te["a"],QIcon:wa["a"],QField:Ga["a"]});var ed=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-dialog-groups"},[a("SignedOutDialog",{ref:"signedOut"})],1)},td=[],ad=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-signed-out-dialog"},[a("amplify-dialog",{attrs:{single:!1,cornerCancel:!0,"min-width":"320px","max-width":"320px","on-clear":e.onClear,blur:!0,mask:!1},scopedSlots:e._u([{key:"default",fn:function(t){return["test"===e.currentCard?a("OAuth",e._g({ref:"test",attrs:{scope:t}},e.cardEvents)):"oauth"===e.currentCard?a("OAuth",e._g({ref:"oauth",attrs:{scope:t}},e.cardEvents)):"disableMFA"===e.currentCard?a("DisableMFA",e._g({attrs:{scope:t}},e.cardEvents)):"signedOut"===e.$store.state.account.authState?a("SignIn",e._g({attrs:{scope:t}},e.cardEvents)):"forgotPassword"===e.$store.state.account.authState?a("ForgotPassword",e._g({attrs:{scope:t}},e.cardEvents)):"signUp"===e.$store.state.account.authState?a("SignUp",e._g({attrs:{scope:t}},e.cardEvents)):"signInConfirm"===e.$store.state.account.authState?a("SignInConfirm",e._g({attrs:{scope:t}},e.cardEvents)):e._e()]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.value,expression:"value"}],staticClass:"signed-out-actions rounded-borders bg-general text-general row items-center q-py-xs q-px-sm shadow-1"},[e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:e.handleDevClick}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"q-px-md q-py-sm flex items-center"},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",unelevated:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)],1)},nd=[],od=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleSignIn)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_in_your_account"),"submit-label":e.$t("account_sign_in"),timeout:e.timeout,"no-primary":"",cancelable:"PHONE_NUMBER"===this.form.currentMode},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,ref:"sign",refInFor:!0,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:function(t){return e.signInChangeRules()},onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n||e.oauthLoading},on:{click:function(t){!n&&!e.oauthLoading&&e.handleResetPassword()}}},[e._v(e._s(e.$t("account_reset_password")))])])]}},{key:"actions",fn:function(t){var n=t.disable;return[a("amplify-button",{staticStyle:{"margin-top":"8px"},attrs:{immediate:"",primary:"",value:n,"on-click":function(){return e.$store.commit("ACCOUNT_UPDATE_STATE","signUp")},label:e.$t("account_sign_up")}}),a("ABOAuthEntry",{directives:[{name:"show",rawName:"v-show",value:e.d$cfg.oauth.enable&&!e.isMas,expression:"d$cfg.oauth.enable && !isMas"}]})]}}])},"amplify-card",e.scope.cardProps,!1))},id=[],rd=a("7ca3"),sd=a.n(rd);class ld{static without(...e){const t=`^(${e.map((e=>`(?!${e})`)).join("")}.)*$`;return new RegExp(t,"g")}static withoutOnly(...e){const t="^"+e.map((e=>`(?!${e}+$)`)).join("");return new RegExp(t,"g")}static prefixWithout(...e){const t="^"+e.map((e=>`(?!${e})`)).join("");return new RegExp(t,"g")}static suffixWithout(...e){const t=`(??");class cd{static _test(e,t){const a=e.test(t);return e.lastIndex=0,a}static _testAll(e,t){const a=e.map((e=>this._test(e,t)));return!a.includes(!1)}}sd()(cd,"Username",[e=>cd._test(ld.content("0-9","A-Z","a-z"),e)||"account_field_only_alphanumeric",e=>cd._test(ld.range(4,16),e)||["account_field_range",[4,16]],e=>cd._test(ld.prefixWithout("[0-9]"),e)||"account_field_prefix_without_number_space"]),sd()(cd,"Password",[e=>cd._test(ld.content("0-9","A-Z","a-z",ld.CHARACTERS),e)||"account_field_only_alphanumeric_and_symbol",e=>cd._test(ld.range(8,20),e)||["account_field_range",[8,20]],e=>cd._test(/[0-9]/g,e)||"account_field_must_have_number_characters"]),sd()(cd,"PhoneNumber",[e=>cd._test(ld.content("0-9"),e)||"account_field_phone_number",e=>cd._test(ld.range(3,11),e)||["account_field_range",[3,11]]]),sd()(cd,"Nickname",[e=>cd._test(ld.content("0-9","A-Z","a-z","一-龥","\\s","_"),e)||"account_field_only_chinese_alphanumeric_space_underline",e=>cd._test(ld.range(2,15),e)||["account_field_range",[2,15]],e=>cd._test(ld.prefixWithout("[0-9]","[\\s]"),e)||"account_field_prefix_without_number_space",e=>cd._test(ld.suffixWithout("\\s"),e)||"account_field_suffix_without_space",e=>cd._test(ld.WITHOUT_REPEAT_SPACE,e)||"account_field_without_repeat_space"]),sd()(cd,"VerificationCode",[e=>cd._testAll([ld.content("0-9"),ld.range(6)],e)||"account_field_verification_code"]),sd()(cd,"InvitationCode",[e=>cd._test(ld.content("0-9","A-Z","a-z"),e)||"account_field_invitation_code"]),sd()(cd,"TransferReceiver",[e=>{const t="tip_invalid_receiver",a=cd._test(ld.content("0-9","a-f","-"),e);if(!a)return t;const n=e.split("-");return 5!==n.length?t:"8-4-4-4-12"===n.map((e=>e.length)).join("-")||t}]),sd()(cd,"TransferAmount",[e=>cd._test(ld.content("0-9","."),e)||"tip_invalid_amount",e=>""+parseFloat(e)===e||"tip_invalid_amount",e=>parseFloat(e)<=1e3||"tip_invalid_amount",e=>parseFloat(e)>=.001||"tip_invalid_amount",e=>parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)||"tip_invalid_amount"]);class dd{constructor(e,t,a){this._model=t,this.defValue=this._model2value((()=>t?"object"!==typeof t?t:Array.isArray(t)?[...t]:{...t}:t)()),this.type=e,this.attrs=a||{}}get model(){return this._model}set model(e){this._model=e}get bound(){return this.attrs}_model2value(e){return e}_value2model(e){return e}updateModel(e){this.model=this._value2model(e)}get value(){return this._model2value(this.model)}clear(){this.updateModel(this.defValue)}}class ud extends dd{constructor(e,t){super("input",e,t)}}class _d extends dd{static get LOCALE_OPTIONS(){const e=Object.keys(Qc["a"]).sort(((e,t)=>(e=Qc["a"][e].normalizedName[0],t=Qc["a"][t].normalizedName[0],et?1:0))).map((e=>({value:e,emoji:Qc["a"][e].emoji,label:Qc["a"][e].name,normalizedName:Qc["a"][e].normalizedName})));return e}constructor(e,t,a){super("select",e,{...a||{},options:t})}}class pd{constructor(e){this.items=e}updateModel(e){return Object.keys(this.items).forEach((t=>{void 0!==e[t]&&this.items[t].updateModel(e[t])})),this}get formData(){const e={};for(const[t,a]of Object.entries(this.items))e[t]=a.value;return e}setDefault(){return this}clearData(){return Object.values(this.items).forEach((e=>e.clear())),this}get length(){return Object.keys(this.items).length}}var md=a("af04"),hd=a("072b");class gd extends ud{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],SINGIN:[["86","","CN"],{type:"tel",label:"account_username_email_phone",rules:[hd["e"].bind(e)]}]}}constructor(e){super(...gd.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=gd.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class fd extends pd{constructor(e,t){if(super({username:new gd(e),password:new ud("",{type:"password",icon:"lock",label:"account_password"})}),this.assumeData=fd.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=Qc["b"][t])&&void 0!==a?a:Qc["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(fd.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=fd.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a]),this.items.password.clear()}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const e=this.formData.username;this.assume=!1,this.items.username.setMode("GENERAL",e),this.items.password.clear()}get currentMode(){return this.items.username.currentMode}}sd()(fd,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}});var bd={name:"SignIn",props:{scope:Object},data(){return{isMas:v.a.mas(),timeout:{duration:6e4,onTimeout:this.handleTimeout},oauthStatus:null,form:new fd(this,this.$q.lang.getLocale().toLowerCase()),oauthProviders:["Facebook","Google","Github"],signUpMode:"email",prefix:"",countryCode:"",checkPrefix:[[],[]]}},computed:{oauthLoading(){return null!==this.oauthStatus}},methods:{handleResetPassword(){this.$store.commit("ACCOUNT_UPDATE_STATE","forgotPassword")},async handleSignIn(){try{const e=this.form.formData,t=e=>e.indexOf(" ")<0;if(!t(e.username))throw new Error("Incorrect username or password.");return await this.$store.dispatch("ACCOUNT_SIGN_IN",e),qt["a"].record.call(this,e.password),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),md["a"].showPositive("signed_in"),!0}catch(t){const a=t.message;if("SMS_MFA"===a||"SOFTWARE_TOKEN_MFA"===a)this.$store.commit("ACCOUNT_UPDATE_STATE","signInConfirm");else if("User does not exist."===a)md["a"].showNegative("Incorrect username or password."),this.form.assume&&this.form.turnToPhoneNumberMode();else{var e;t.message||(console.log("=====================> error SignIn::handleSignIn <====================="),console.log(t),console.log("=====================> error SignIn::handleSignIn <=====================")),md["a"].showNegative(null!==(e=t.message)&&void 0!==e?e:t)}}},async handleCancel(){if("PHONE_NUMBER"!==this.form.currentMode)return!0;this.form.backToGeneralMode()},handleOAuthSignIn(e){this.$emit("setCurrentCard","oauth",(t=>t.setStatus("pending",e)))},handleTimeout(){md["a"].showNegative("Network error")},signInChangeRules(){if("email"===this.signUpMode&&(this.vm=this.form.items.username.model?this.form.items.username.model:"",Array.isArray(this.vm)&&(this.vm=this.vm[1]||""),this.vm&&/^[0-9]*$/g.test(this.vm)&&(console.log("toPhone",this.vm),this.toPhone()),this.vm.startsWith("+"))){const e=this.vm.substr(1),t=this.checkPrefix[0].indexOf(e),a=this.vm.length;if(-1!==t&&(this.form.items.username.model="1"===e?[e,"","US"]:[e,"",this.checkPrefix[1][t]],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${e}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"),a>4&&/^[0-9]*$/g.test(e))for(const[n,o]of this.checkPrefix[0].entries())if(e.startsWith(o)){const t=o.length,a=e.substr(t);this.form.items.username.model="1"!==o?[o,a,this.checkPrefix[1][n]]:[o,a,"US"],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${o}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber";break}}if("phoneNumber"===this.signUpMode){this.vm=this.form.items.username.model[1]?this.form.items.username.model[1]:"";const e=this.form.items.username.model[2];-1===this.vm.indexOf("@")&&e&&!this.vm.startsWith("+")||(console.log("country",e),this.toEmail()),/^[0-9]*$/g.test(this.vm)||(console.log("not vm",JSON.stringify(this.vm)),this.toEmail())}},toPhone(){console.log("fn:toPhone"),this.form.items.username.model=[this.prefix,this.vm,this.countryCode],this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"},toEmail(){console.log("fn:toEmail",this.vm,typeof this.vm),this.$nextTick((()=>{this.form.items.username.attrs.type="text",this.form.items.username.model=this.vm,console.log(this.form.items.username.model),this.signUpMode="email"}))},defPrefix(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.prefix=t[1],this.countryCode=t[0]}else{const e=(this.$i18n.locale||navigator.language||"").toLowerCase(),t=Object.values(Qc["a"]).find((t=>t.languages.includes(e)));if(t&&t.phones&&t.phones.length){console.log("[Init Prefix] Init with phone",t.phones[0]);const e=t.phones[0].split("-");this.prefix=e[0],this.countryCode=e[1]}else console.log("[Init Prefix] Cannot find language config for",e,t),this.prefix="1",this.countryCode="US"}},prefixArr(){const e=[];Object.values(Qc["a"]).forEach((t=>{const a=t.phones[0].split("-");e.push(a)})),e.sort(((e,t)=>{const a=parseInt(e[0]),n=parseInt(t[0]);return a-n})),e.forEach((e=>{this.checkPrefix[0].push(e[0]),this.checkPrefix[1].push(e[1])}))},onPressBack(){this.toEmail(),console.log(this.form)},getSelection(){const e=this.$refs.sign[0];return e.$el.firstChild.clientWidth}},mounted(){this.defPrefix(),this.prefixArr()}},yd=bd,vd=(a("fc65"),Object(Y["a"])(yd,od,id,!1,null,"6e4f640d",null)),wd=vd.exports,kd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleNecessary,e.handleOptional][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_up_your_account")+" ("+(e.progress+1)+"/2)","submit-label":e.$t(["account_next","account_finish"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_fill_required_fields"),e.description][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable,o=t.setDisable;return[0===e.progress?[a("div",{staticClass:"column q-col-gutter-xs"},[e._l({email:e.necessaryEmailForm,phoneNumber:e.necessaryPhoneNumberForm}[e.signUpMode].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),e.usePhoneNumber?a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t({phoneNumber:"account_no_phone_number",email:"account_no_email"}[e.signUpMode]))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])]):e._e()],2)]:1===e.progress?[e._l(e.verificationForm.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("div",[a("amplify-button",{staticClass:"q-mb-sm q-mt-xs",attrs:{value:n||e.resendTimer>0,"min-width":"100%",label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleResend},on:{input:o}}),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t("account_no_verification_code"))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])])],1),a("div",[e._v("\n "+e._s(e.$t("account_fill_optional_fields"))+"\n "),e._l(e.optionsForm.items,(function(t,o){return["input"===t.type?a("amplify-input",e._b({key:o,staticClass:"q-mb-sm",attrs:{label:e.$t(t.bound.label),readonly:n,hint:"("+e.$t("optional")+")"},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1)):"select"===t.type?a("amplify-select",e._b({key:o,staticClass:"q-mb-sm",attrs:{readonly:n,hint:"("+e.$t("optional")+")",align:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-select",t.bound,!1)):e._e()]}))],2)]:e._e()]}},0===e.progress?{key:"options",fn:function(t){var n=t.disable;return[a("div",{staticClass:"col-grow q-mb-sm row items-center",staticStyle:{"margin-top":"-8px"}},[a("q-checkbox",{attrs:{disable:n,label:e.$t("account_i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"underscore select-none cursor-pointer text-primary",on:{click:function(){return n||e.handleShowLicense()}}},[e._v(e._s(e.$t("account_license_terms"))+"\n ")])],1)]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},Sd=[];function Cd(e){const t=e.appVersion,a=e.userAgent;let n="unknown",o="";const i=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var r in i){var s=i[r];if(s.r.test(a)){n=s.s;break}}switch(/Windows/.test(n)&&(o=/Windows (.*)/.exec(n)[1],n="Windows"),n){case"Mac OS":case"Mac OS X":case"Android":o=/([\\.\\_\d]+)/.exec(a.substring(/(Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/.exec(a).index||12))[1];break;case"iOS":o=/OS (\d+)_(\d+)_?(\d+)?/.exec(t),o=o[1]+"."+o[2]+"."+(0|o[3]);break}return n+(o?" "+o:"")}class xd extends pd{constructor(e){super({email:new ud("",{type:"email",icon:"email",label:"account_email",rules:[hd["a"].bind(e)]}),password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(e)]})})}}class $d extends pd{constructor(e){super({phoneNumber:new ud(["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[hd["e"].bind(e)]}),password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(e)]})})}setDefault(e){var t;const a=null!==(t=Qc["b"][e])&&void 0!==t?t:Qc["b"]["en-us"],[n,o]=a.phones[0].split("-"),i=this.items.phoneNumber;return i.updateModel([n,i.value[1],o]),this}}class Td extends pd{constructor(e){const t=[{value:"notSay",emoji:"🇼🇫",label:e.$t("account_not_say")},..._d.LOCALE_OPTIONS],a=(e,t)=>!!t.normalizedName&&(t.normalizedName.toLowerCase().indexOf(e.toLowerCase())>=0||t.label.toLowerCase().indexOf(e.toLowerCase())>=0);super({nickname:new ud("",{type:"text",icon:"emoji_emotions",label:"account_nickname",rules:[hd["c"].bind(e)]}),gender:new _d("notSay",[{value:"notSay",icon:"elevator",label:e.$t("account_not_say")},{value:"female",icon:"female",label:e.$t("account_female")},{value:"male",icon:"male",label:e.$t("account_male")}]),birthday:new ud("",{type:"date",icon:"cake"}),locale:new _d("notSay",t,{filter:a})})}}var zd={name:"SignUp",mixins:[We],props:{scope:Object},data(){var e,t;return{resendInterval:null,resendTimer:0,progress:0,necessaryEmailForm:new xd(this),necessaryPhoneNumberForm:new $d(this).setDefault(this.$q.lang.getLocale().toLowerCase()),signUpMode:null!==(e=this.d$cfg)&&void 0!==e&&null!==(t=e.account)&&void 0!==t&&t.phone_number?"phoneNumber":"email",invitationForm:new pd({invitationCode:new ud("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[hd["b"].bind(this)]})}),accept:!1,verificationForm:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})}),optionsForm:new Td(this),signUpIpAddress:"",defPrefix:[]}},computed:{usePhoneNumber(){var e,t;return(null===(e=this.d$cfg)||void 0===e||null===(t=e.account)||void 0===t?void 0:t.phone_number)||!1},description(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},watch:{usePhoneNumber(e,t){console.log("@@@",e,t),e!==t&&(this.signUpMode=e?"phoneNumber":"email")},signUpMode(e){const t=()=>{this.necessaryPhoneNumberForm.clearData().setDefault(this.$q.lang.getLocale().toLowerCase())},a=()=>{this.necessaryEmailForm.clearData()};({email:t,phoneNumber:a})[e]()},progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},methods:{handleCancel(){this.progress=-1},async handleNecessary(){if(this.accept)try{if(Object(f["isElectron"])()){const e=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("SignUp - Failed to get geo for",e.message)}));this.signUpIpAddress=e||""}const e=this.__getNecessaryPayload(),t=(()=>{const a=Object(qt["s"])();if(e.email){const o=n(3e4),i=a(e.email);return Promise.race([i,o]).catch((e=>{console.log("sign up error >",e),md["a"].showNegative(e.message)})).finally((()=>{t.off(),o.cancel()})),i}{const e=Promise.resolve();return e.off=()=>{},e}function n(e){let t;const a=new Promise((a=>{t=()=>{clearTimeout(n),a(!1)};const n=setTimeout((()=>{a(!0)}),e)}));return a.cancel=t,a}})();await this.$store.dispatch("ACCOUNT_SIGN_UP_NECESSARY",e).catch((e=>{throw t.off(),e})),this.resendTimer=60,this.progress+=1}catch(e){md["a"].showNegative(e.message)}else md["a"].showNegative("you_need_to_accept_license_terms")},async handleOptional(){try{const{code:e}=this.verificationForm.formData;await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",{code:e,optAttrs:{app_client:JSON.stringify({name:O.a.name,version:Object(b["a"])("version")}),os:Cd(navigator)||"unknown",...this.optionsForm.formData}}),await new Promise((e=>setTimeout(e,3e3))),md["a"].showPositive("signed_up")}catch(e){return md["a"].showNegative(e.message),!1}try{const e=this.$store.state.account.verification.username,t=this.$store.state.account.verification.password;return await this.$store.dispatch("ACCOUNT_SIGN_IN",{username:e,password:t}),this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),!0}catch(e){this.$emit("setCurrentCard","signedOut"),md["a"].showNegative(e.message)}},async handleResend(){try{await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND"),md["a"].showPositive("code_has_been_resent")}catch(e){md["a"].showNegative(e.message)}finally{this.resendTimer=60}},handleSwitchMode(){1===this.progress&&(this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.progress=0),this.signUpMode="email"===this.signUpMode?"phoneNumber":"email"},handleShowLicense(){this.showLicenseTermsNotice(!1)},async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},__getNecessaryPayload(){const e={email:this.necessaryEmailForm,phoneNumber:this.necessaryPhoneNumberForm}[this.signUpMode],t=e.formData,{invitationCode:a}=this.invitationForm.formData,{email:n,phoneNumber:o,password:i}=t,r={};return"email"===this.signUpMode?r.email=n:"phoneNumber"===this.signUpMode&&(r.phoneNumber="+"+o[0]+o[1],r.phoneNumberCountryCode=o[2]),r.password=i,r.invitationCode=a,r.appClient=JSON.stringify({name:O.a.name,version:Object(b["a"])("version")}),r.signUpIpAddress=this.signUpIpAddress,r.os=Cd(navigator)||"unknown",r},onPressBack(e){if(!e)return;const{attrs:t,model:a}=e;t&&"tel"===t.type&&Array.isArray(a)&&(console.log("isTel",a),this.$set(a,0,""),this.$set(a,2,""))}},mounted(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.defPrefix=[t[1],"",t[0]],this.necessaryPhoneNumberForm.items.phoneNumber.model=[...this.defPrefix]}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}},Pd=zd,Ad=(a("1463"),Object(Y["a"])(Pd,kd,Sd,!1,null,"79ec585c",null)),Id=Ad.exports;ie()(Ad,"components",{QCheckbox:ae["a"]});var qd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSearch,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t(["account_find_your_account","account_reset_your_password"][e.progress]),"submit-label":e.$t(["account_search","account_submit"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_enter_your_username"),e.verifyDescription][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l([e.searchForm,e.submitForm][e.progress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:e.onInput,onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1)]}},1===e.progress?{key:"actions",fn:function(t){var n=t.disable,o=t.setDisable;return[a("amplify-button",{attrs:{value:n||e.resendTimer>0,label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleSearch},on:{input:o}})]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},Od=[];const Ed=Object.values((()=>{const e={};Object.values(Qc["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})());class Dd extends ud{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],PHONE_NUMBER:[["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[hd["e"].bind(e)]}]}}constructor(e){super(...Dd.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=Dd.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class jd extends pd{constructor(e,t){if(super({username:new Dd(e)}),this.assumeData=jd.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=Qc["b"][t])&&void 0!==a?a:Qc["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(jd.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=jd.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a])}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const[e,t]=this.items.username.value;console.log("Remove prefix",e,t),this.assume=!1,this.items.username.setMode("GENERAL",t)}get currentMode(){return this.items.username.currentMode}}sd()(jd,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}});var Nd={name:"ForgotPassword",props:{scope:Object},data(){const e=e=>e===this.submitForm.items.password.model||"account_password_not_equal";return{resendInterval:null,resendTimer:0,progress:0,searchForm:new jd(this,this.$q.lang.getLocale().toLowerCase()),submitForm:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]}),password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(this)]}),reEnterPassword:new ud("",{type:"password",icon:"lock",label:"account_re_enter_password",rules:[hd["d"].bind(this),e]})})}},watch:{progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{handleCancel(){0===process&&"PHONE_NUMBER"===this.searchForm.currentMode?this.form.backToGeneralMode():this.progress-=1},async handleSearch(){try{const e=this.searchForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SEND",e.username),this.resendTimer=60,0===this.progress?this.progress+=1:md["a"].showPositive("code_has_been_resent")}catch(e){md["a"].showNegative(e.message),this.searchForm.assume&&this.searchForm.turnToPhoneNumberMode()}},async handleSubmit(){try{const e=this.submitForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SUBMIT",e),md["a"].showPositive("password_has_been_reset"),this.progress=-1}catch(e){md["a"].showNegative(e.message)}},onInput(e){const t=this.searchForm.items.username.currentMode;let a=this.searchForm.items.username.model;if("GENERAL"===t){if(Array.isArray(a)&&(a=a[1]||""),a&&/^\d+$/g.test(a)&&this.searchForm.turnToPhoneNumberMode(),a&&/^\+\d+$/.test(a)){const e=a.substring(1),t=Ed.find((t=>e.startsWith(t.prefixCode)));if(t){const{prefixCode:a,countryCode:n}=t,o=e.replace(a,""),i=[a,o,n];this.searchForm.turnToPhoneNumberMode(),this.$nextTick((()=>{console.log("To Phone With",i),this.searchForm.items.username.updateModel(i)}))}else console.log(`Cannot find ${e} as prefix`)}}else"PHONE_NUMBER"===t&&(a=this.searchForm.items.username.model[1]||"",(a.includes("@")||a.startsWith("+"))&&this.searchForm.backToGeneralMode())},onPressBack(){const e=this.searchForm.items.username.model;if(Array.isArray(e)){const t=e[1]||"";this.$nextTick((()=>{this.searchForm.items.username.updateModel(t)}))}this.searchForm.backToGeneralMode()}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}},Ld=Nd,Ud=Object(Y["a"])(Ld,qd,Od,!1,null,null,null),Rd=Ud.exports,Md=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleVerify)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_verify_your_identity"),"submit-label":e.$t("account_next"),timeout:e.timeout},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s(e.verifyDescription)+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_can_not_mfa"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("account_disable_mfa")))])])]}}])},"amplify-card",e.scope.cardProps,!1))},Fd=[],Bd={name:"SignInConfirm",props:{scope:Object},data(){return{timeout:{duration:6e4,onTimeout:this.handleTimeout},form:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})})}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`,software_token:`${this.$t("account_software_token_tip")}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{async handleVerify(){try{const{code:e}=this.form.formData;return await this.$store.dispatch("ACCOUNT_MFA_SUBMIT",e),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),md["a"].showPositive("signed_in"),!0}catch(e){md["a"].showNegative(e.message),e.message.startsWith("Invalid session for the user")&&this.handleCancel()}},handleDisableMFA(){this.$emit("setCurrentCard","disableMFA")},handleTimeout(){md["a"].showNegative("Network Error")},handleCancel(){this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")}}},Wd=Bd,Hd=(a("2e34"),Object(Y["a"])(Wd,Md,Fd,!1,null,"654a46b2",null)),Vd=Hd.exports,Qd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSend,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_disable_mfa"),"submit-label":e.$t("account_next")},scopedSlots:e._u([{key:"description",fn:function(){return[0===e.progress?a("div",[e._v(e._s(e.$t("account_tip_confirm_verify_email_phone")))]):1===e.progress&&e.verificationData?a("div",[e._v(e._s(e.$t("account_email_phone_sent_tip"))+"\n "),a("div",[e._v(e._s(e.verificationData.email.destination))]),a("div",[e._v(e._s(e.verificationData.phoneNumber.destination))])]):e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[1===e.progress?e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},Gd=[],Kd={name:"DisableMFA",props:{scope:Object},data(){return{progress:0,verificationData:null,form:new pd({emailCode:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]}),phoneCode:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})})}},watch:{progress(e){e<0&&(this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null))}},methods:{async handleSend(){try{const{user:{username:e}}=this.$store.state.account.verification,t=`${this.$store.getters.settings.language}:D`;this.verificationData=await Object(qt["j"])(e,{msgLocale:t}),this.progress+=1}catch(e){md["a"].showNegative(e.message)}},async handleSubmit(){try{const{user:{username:e}}=this.$store.state.account.verification,{emailCode:t,phoneCode:a}=this.form.formData;await Object(qt["w"])(e,t,a),this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),md["a"].showPositive("disabled_mfa"),this.progress=-1}catch(e){md["a"].showNegative(e.message)}},handleCancel(){this.progress=-1}}},Yd=Kd,Jd=Object(Y["a"])(Yd,Qd,Gd,!1,null,null,null),Zd=Jd.exports,Xd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"corner-cancel":!1,"cancel-label":e.$t("account_cancel"),"submit-label":e.$t(["account_next","account_finish"][e.signUpProgress]),"on-submit":"loading"===e.currentTemplate?void 0:"signUp"===e.currentTemplate?function(){return e.scope.handleSubmit([e.handleSignUp,e.handleVerify][e.signUpProgress])}:void e.currentTemplate,"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_oauth_sign_in_with",{provider:e.provider})},scopedSlots:e._u([{key:"description",fn:function(){return["loading"===e.currentTemplate?[a("div",{staticClass:"text-center text-weight-bold text-subtitle1 q-mt-md"},[a("q-spinner",{staticClass:"q-mr-xs q-mb-xs",attrs:{size:"1.25em"}}),a("span",{staticClass:"q-pr-lg"},[e._v(e._s(e.$t("account_loading")))])],1)]:"signUp"===e.currentTemplate?[e.data?a("div",[0===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_tip_oath_sign_up",{provider:e.data.providerName,email:e.data.providerInfo.email}))+"\n ")]):1===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_email_sent_tip"))+e._s(e.data.providerInfo.email)+"\n ")]):e._e()]):e._e()]:e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return["signUp"===e.currentTemplate?e._l([e.signUpForm,e.verificationForm][e.signUpProgress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},eu=[],tu=a("e74d"),au={name:"OAuth",props:{scope:Object},data(){return{provider:null,status:null,data:null,signUpProgress:0,signUpUsername:null,signUpForm:new pd({password:new ud("",{type:"password",icon:"lock",label:"account_password",rules:[hd["d"].bind(this)]}),invitationCode:new ud("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[hd["b"].bind(this)]})}),verificationForm:new pd({code:new ud("",{type:"text",icon:"shield",label:"account_verification_code",rules:[hd["h"].bind(this)]})})}},computed:{currentTemplate(){return"confirm"===this.status?"confirm":"signUp"===this.status?"signUp":["pending","requesting","success"].includes(this.status)?"loading":void 0}},watch:{status(e){if(!e)return;const t={pending:()=>this.handlePending(),requesting:()=>this.handleRequesting(),success:()=>this.handleSuccess(),signUp:()=>{},confirm:()=>{}};t[e]&&t[e]()}},methods:{async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},setStatus(e,t,a){t&&(this.provider=t),a&&(this.data=a),this.status=e},handleCancel(){this.provider=null,this.status=null,this.data=null,this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null)},async handleSuccess(){await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.provider=null,this.status=null,this.data=null,"signedIn"===this.$store.state.account.authState?(this.$emit("closeDialog"),md["a"].showPositive("signed_in")):(this.$emit("setCurrentCard",null),md["a"].showNegative("sign_in_failed"))},handlePending(){tu["a"].launchOAuth("signedOut",{provider:this.provider})},handleRequesting(){},async handleSignUp(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId}),email:this.data.providerInfo.email},t=await Object(qt["o"])({...e,...this.signUpForm.formData});this.signUpUsername=t.user.username,this.signUpProgress=1}catch(e){md["a"].showNegative(e.message),this.handleCancel()}},async handleVerify(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId})},{code:t}=this.verificationForm.formData;await Object(qt["c"])(this.signUpUsername,t,{},e),this.setStatus("pending")}catch(e){md["a"].showNegative(e.message),this.handleCancel()}},async handleConfirm(){}}},nu=au,ou=Object(Y["a"])(nu,Xd,eu,!1,null,"6bc0e027",null),iu=ou.exports;ie()(ou,"components",{QSpinner:Ma["a"]});var ru=a("39df"),su={name:"SignedOutDialog",components:{OAuth:iu,DisableMFA:Zd,SignInConfirm:Vd,SignIn:wd,ForgotPassword:Rd,SignUp:Id,Development:ru["default"]},data(){return{showDevDialog:!1,currentCard:null,value:!1,languageOptions:Ft["b"]}},computed:{cardEvents(){return{setCurrentCard:this.setCurrentCard,closeDialog:()=>this.value=!1}},_currentCard(){if(this.currentCard)return this.currentCard;const e=["signedOut","forgotPassword","signUp","signInConfirm"];return e.includes(this.$store.state.account.authState)?this.$store.state.account.authState:null},language:{get(){const e=w["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(w["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(f["isElectron"])())){const{ipcRenderer:e}=a("1b85");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}},watch:{_currentCard(e){null===e&&!1!==this.value&&(this.value=!1)}},methods:{showAboutDialog(){f["Bus"].$emit("CALL_ABOUT")},handleDevClick(){this.showDevDialog=!this.showDevDialog},setCurrentCard(e,t){this.currentCard=e,t&&e&&this.$nextTick((()=>t(this.$refs[e]))),t&&!e&&this.$nextTick((()=>t(null)))},async onClear(){this.currentCard=null,console.log("SignedOut Dialog Close: AuthState =>",this.$store.state.account.authState)},show(e){this.value=e}}},lu=su,cu=(a("1cda"),a("a829")),du=a("719b"),uu=Object(Y["a"])(lu,ad,nd,!1,null,null,null),_u=uu.exports;ie()(uu,"components",{QBtn:ne["a"],QTooltip:Rn["a"],QDialog:J["a"],QSpace:pe["a"],QSeparator:me["a"],QMenu:cu["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QColor:Ye["a"]}),ie()(uu,"directives",{Ripple:du["a"],ClosePopup:ke["a"]});const pu={watch:{"$store.state.account.authState"(e,t){this.$ga.send("auth_state_change",{from:t,to:e}),t?("signedIn"===e||"signedOut"===e&&"signedIn"===t)&&this.$emit("auth_state_changed",e):this.$emit("auth_state_changed",e)}},methods:{addOnAuthStateChangedListener(e,{once:t}={}){const a=(...n)=>{t&&this.$off("auth_state_changed",a),e(...n)};return this.$on("auth_state_changed",a),()=>this.$off("auth_state_changed",a)}}},mu={name:"AmplifyDialogGroups",components:{SignedOutDialog:_u},mixins:[pu],mounted(){new URL(location.href).pathname.startsWith("/oauth_redirect")||this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")},methods:{showSignedOut(){this.$refs.signedOut.show(!0)}}};let hu;const gu={install(e,{app:t}){const a="amplify-dialog-groups";if(!document.getElementById(a)){const e=document.createElement("div");e.id=a,document.body.appendChild(e)}const{i18n:n,router:o,store:i}=t;hu=new(e.extend({i18n:n,router:o,store:i,...mu}))({propsData:{}}).$mount("#"+a)},create$amplify(){return{showSignedOutDialog:()=>hu.showSignedOut(),addOnAuthStateChangedListener:(e,t)=>hu.addOnAuthStateChangedListener(e,t)}}};var fu=mu,bu=fu,yu=Object(Y["a"])(bu,ed,td,!1,null,null,null);yu.exports;const vu={async install(e,{app:t}){Xc(e);const a=[gu];Promise.all(a.map((a=>a.install(e,{app:t})))),Object.defineProperty(e.prototype,"$amplify",{get(){const e={},t=t=>{for(const[a,n]of Object.entries(t))e[a]=n};return a.forEach((e=>t(e.create$amplify.apply(this)))),e}})}},wu={aws_project_region:"us-east-1",aws_mobile_analytics_app_id:"4f8fe8282ebf40e4a390c2171e3e45df",aws_mobile_analytics_app_region:"us-east-1",aws_appsync_graphqlEndpoint:"https://ye6kerar5bb65jpjrhlum4gu7q.appsync-api.us-east-1.amazonaws.com/graphql",aws_appsync_region:"us-east-1",aws_appsync_authenticationType:"AMAZON_COGNITO_USER_POOLS",aws_appsync_apiKey:"da2-o7saok2xsbby5nqi2womjyd5ie",aws_cloud_logic_custom:[{name:"ABDevRest",endpoint:"https://6xf9ehebfj.execute-api.us-east-1.amazonaws.com/dev",region:"us-east-1"}],aws_cognito_identity_pool_id:"us-east-1:425781a9-0178-4dbd-b103-1d2e5e210d1a",aws_cognito_region:"us-east-1",aws_user_pools_id:"us-east-1_NbEkBdIqw",aws_user_pools_web_client_id:"1o6c32oh82hjqvd8hfora67lap",oauth:{domain:"ab-domain-dev.auth.us-east-1.amazoncognito.com",scope:["phone","email","openid","profile","aws.cognito.signin.user.admin"],redirectSignIn:"http://localhost:8080/",redirectSignOut:"http://localhost:8080/",responseType:"code"},federationTarget:"COGNITO_USER_POOLS",aws_cognito_login_mechanisms:["EMAIL","PREFERRED_USERNAME","PHONE_NUMBER"],aws_cognito_signup_attributes:[],aws_cognito_mfa_configuration:"OFF",aws_cognito_mfa_types:["SMS"],aws_cognito_password_protection_settings:{passwordPolicyMinLength:8,passwordPolicyCharacters:["REQUIRES_NUMBERS"]},aws_cognito_verification_mechanisms:["EMAIL"],aws_cognito_username_attributes:[],aws_cognito_social_providers:[]};var ku=wu,Su=a("3334"),Cu=a("0cdb"),xu=a("586d");class $u{constructor(){this.events={}}$on(e,t){return this.events[e]=this.events[e]||[],this.events[e].includes(t)||this.events[e].push(t),()=>this.$off(e,t)}$once(e,t){return t.once=!0,this.$on(e,t)}$off(e,t){if(t){if(!this.events[e])return;if(!this.events[e].includes(t))return;const a=this.events[e].indexOf(t);this.events[e].splice(a,1)}else this.events[e]=[]}async $emit(e,...t){if(!this.events[e])return;const a=[].concat(this.events[e]);let n=0;while(n{const n=o[(t+1)%2],i=[`background-color: ${n.bgc}`,`color: ${n.color}`];return i.push("padding: 2px 12px"),0===t&&i.push("border-top-left-radius: 8px","border-bottom-left-radius: 8px"),t===a.length-1&&i.push("border-top-right-radius: 8px","border-bottom-right-radius: 8px"),i.join("; ")})),r=a.map((e=>`%c${e}`)).join("");console[n](r,...i,...t)},Pu={log:{type:"log"},warn:{type:"warn"},error:{type:"error"},red:{styles:[{bgc:"rgb(248,160,160)",color:"black"},{bgc:"rgb(134,12,12)",color:"white"}]},orange:{styles:[{bgc:"rgb(248,191,160)",color:"black"},{bgc:"rgb(175,81,6)",color:"white"}]},green:{styles:[{bgc:"rgb(160,248,161)",color:"black"},{bgc:"rgb(35,154,17)",color:"white"}]},purple:{styles:[{bgc:"rgb(200,184,255)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}]},blue:{styles:[{bgc:"rgb(184,215,255)",color:"black"},{bgc:"rgb(31,107,162)",color:"white"}]},tags:e=>(...t)=>(e.options.tags=e.options.tags||[],e.options.tags.push(...t),Au(e))},Au=e=>new Proxy(e,{get(e,t,a){if("options"===t)return e.options||void 0;if(!Object.keys(Pu).includes(t))return;const n=(...e)=>zu(n.options,...e);return n.options={},Object.assign(n.options,JSON.parse(JSON.stringify(e.options||{}))),"function"===typeof Pu[t]?Pu[t](n):(Object.assign(n.options,Pu[t]),Au(n))}}),Iu=Au(zu);Object.defineProperties(zu,Object.keys(Pu).reduce(((e,t)=>(e[t]={get(){return Iu[t]}},e)),{}));var qu=zu;const Ou={};class Eu{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return Ou[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{Ou[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),n=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let o;n(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(o||(o={}),o[e]=n)}));const i=Yo["a"].graphql({query:a,variables:o});return i.name=e,i}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!Ou[e])throw new Error("operation not found");return Ou[e]}static async execute(e,t){const a=this.__getOperation(e),n=await Yo["a"].graphql({query:a,variables:t});if(n.errors)throw new Error(n.errors[0].message);return n.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(Ou).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class Du extends Eu{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"rgb(166,138,250)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)},{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const u=new Error("The number of retries exceeds the maximum"),_=e=>new Promise((t=>setTimeout(t,e))),p=async e=>{if(c=!0,i>0&&d>i)return console.warn(u),void o(["GQL","Websocket"],"failed to reconnect",u);const t=Math.min(r,1e3*Math.pow(2,d));o(["GQL","Websocket"],"connect close: ",`waiting for reconnect (${t}ms)`),await _(t),c?(d+=1,o(["GQL","Websocket"],`Attempt to reconnect (${d})`),await e(),d=0,o(["GQL","Websocket"],"reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},m=async()=>{const a=(e,t)=>{const a=["AppSync Realtime subscription init error: No current user"],n=["Connection closed","Timeout disconnect"];e.some((e=>a.includes(e.message)))?o(["GQL","Websocket"],"Skip",e):(e.some((e=>n.includes(e.message)))?o(["GQL","Websocket"],"Connect Error"):o(["GQL","Websocket"],"Connect Error: 179",e),p(m))};try{d>=0&&s&&await s();const n=Du.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await p(m)}};await m()}}class ju{static createSyncDataSubscriber(e,t,a,n=console.error){return new ju(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await Du.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class Nu{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=Du.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=ju.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}const Lu=new Nu,Uu=new Nu;var Ru={config({queries:e,mutations:t,subscriptions:a}){Du.appendOperations(e),Du.appendOperations(t),Du.appendOperations(a)},enableUserListener:async e=>await Lu.enable(e),disableUserListener:()=>Lu.disable(),addUserListener:(e,t,a)=>Lu.addListener(e,t,a),removeUserListener:(e,t)=>Lu.removeListener(e,t),enablePublicListener:async()=>await Uu.enable("*"),disablePublicListener:()=>Uu.disable(),addPublicListener:(e,t,a)=>Uu.addListener(e,t,a),removePublicListener:(e,t)=>Uu.removeListener(e,t)};class Mu{constructor(e){this.apiName=e}async __call__(e,t,a){const n=await Yo["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(n.stack){const e=new Error(n.message);throw e.name=n.name,e.stack=n.stack,e}return n}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await tu["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}get endpoint(){return Yo["a"]._options.aws_cloud_logic_custom.find((e=>e.name===this.apiName)).endpoint}}const Fu=new Mu("ABDevRest");var Bu=function(e,t){return u["a"].create({component:{render(a){return a(J["a"],{ref:"dialog",props:{persistent:!0},on:{hide:()=>this.$emit("hide")}},[a(e,t)])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}})},Wu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handleTouchPan,expression:"handleTouchPan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"fixed",staticStyle:{"min-width":"280px"},style:{left:this.left+"px",top:this.top+"px"}},[a("q-card-section",{staticClass:"q-py-none q-pr-none flex"},[a("div",[e._v("Floating")]),a("q-space"),a("q-btn",{staticStyle:{width:"32px","border-radius":"0"},attrs:{icon:"close",flat:"",size:"xs"},on:{click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none"},[e._t("default")],2)],1)},Hu=[];const Vu={data(){return{observer:null,containerRect:null,contentRect:null}},mounted(){let e=!0;this.observer=new ResizeObserver((t=>{for(const e of t)e.target===document.body?this.containerRect=e.contentRect:e.target===this.$refs.card.$el&&(this.contentRect=e.contentRect);e&&(e=!1,this.left=(this.containerRect.width-this.contentRect.width)/2,this.top=(this.containerRect.height-this.contentRect.height)/2),this.updatePosition(this.left,this.top)})),this.observer.observe(document.body),this.observer.observe(this.$refs.card.$el)},beforeDestroy(){this.observer.unobserve(document.body),this.observer.unobserve(this.$refs.card.$el)}};var Qu={name:"Floating",mixins:[Vu],data(){return{left:0,top:0}},methods:{handleTouchPan({delta:e}){this.containerRect&&this.contentRect&&this.updatePosition(this.left+e.x,this.top+e.y)},updatePosition(e,t){const a=8;this.left=Math.max(a,Math.min(e,this.containerRect.width-this.contentRect.width-a)),this.top=Math.max(a,Math.min(t,this.containerRect.height-this.contentRect.height-a))}}},Gu=Qu,Ku=Object(Y["a"])(Gu,Wu,Hu,!1,null,"286e971c",null),Yu=Ku.exports;ie()(Ku,"components",{QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QSeparator:me["a"]}),ie()(Ku,"directives",{TouchPan:Aa["a"]});var Ju=e=>t=>{let a;a=e.utils.createVueInstance({render(e){const n=()=>{a.$destroy(),a.$el.remove(),a=null};return e(Yu,{on:{close:n}},[e(t)])}},!0);const n=document.createElement("div");return document.body.append(n),a.$mount(n),a},Zu={negative(e){return d["a"].create({type:"negative",message:e,position:"bottom-right",timeout:5e3})},positive(e){return d["a"].create({type:"positive",message:e,position:"bottom-right",timeout:5e3})}};const Xu=e=>t=>{Object.entries(t).forEach((([t,a])=>{e.core[t]||(e.core[t]=a.bind(e))}))},e_=({Vue:e,app:t})=>(a,n=!1)=>{if(n){const{i18n:n,router:o,store:i}=t;return new(e.extend({i18n:n,router:o,store:i}))(a)}return new e(a)},t_=e=>{const t=new Map;return a=>{const n=(a,n)=>{Object.defineProperty(e.view,a,{get(){return t.has(a)?t.get(a):n.bind(e)},set(e){if(void 0===e||null===e){var n;if(!t.has(a))return;const e=t.get(a);t.delete(a),null===(n=e.view$destroy)||void 0===n||n.call(e)}else t.set(a,e)}})};Object.entries(a).forEach((([e,t])=>n(e,t)))}},a_=new $u,n_=qu.orange.tags("Account"),o_={config:({queries:e,mutations:t,subscriptions:a})=>Ru.config({queries:e,mutations:t,subscriptions:a}),enable:()=>Ru.enablePublicListener(),disable:()=>Ru.disablePublicListener(),addListener:(...e)=>Ru.addPublicListener(...e),removeListener:(...e)=>Ru.removePublicListener(...e)};var i_=(e,{app:t},a)=>({injectToCore:Xu(a),createVueInstance:e_({Vue:e,app:t}),injectToView:t_(a),emit:(...e)=>a_.$emit(...e),on:(...e)=>a_.$on(...e),off:(...e)=>a_.$off(...e),once:(...e)=>a_.$once(...e),logger:n_,ABDevRest:Fu,sync:o_,showInDialog:Bu,showInFloating:Ju(a),notify:Zu});class r_{static create(e,t){const a=new this(e);return Object.assign(a,t)}constructor(e){this.NAME=e}onCreateCore(e,t,a){return{}}onConfigure(e,t,a){}onCreateStoreMixin(e,t,a){return{}}onRegisterView(e,t,a){return{}}}class s_{constructor(e){this.NAME=e,this[e]={}}get context(){return this[this.NAME]}onConfigure(e){Object.assign(this.context,{config:{},utils:null,core:{},store:null,view:{}}),window.$alphabiz=window.$alphabiz||{},window.$alphabiz[this.NAME]=window.$alphabiz[this.NAME]||this.context}onInstallUtils(e,t){Object.assign(this.context,{utils:i_(e,t,this.context)}),Object.assign(this.context,{$emit:this.context.utils.emit,$on:this.context.utils.on,$once:this.context.utils.once,$off:this.context.utils.off,$logger:this.context.utils.logger})}useExtensions(e,t,a){const n=(e,t)=>t instanceof r_?t:r_.create(e,t),o=Object.entries(e).map((([e,t])=>n(e,t))),i={mixins:[]},r=[e=>this.context.utils.injectToCore(e.onCreateCore(t,a,this.context)),e=>e.onConfigure(t,a,this.context),e=>i.mixins.push(e.onCreateStoreMixin(t,a,this.context)),e=>this.context.utils.injectToView(e.onRegisterView(t,a,this.context))];r.forEach((e=>o.forEach(e))),this.context.store=this.context.utils.createVueInstance(i,!0)}exportAsVuePlugin(){const e=e=>{const t=this.context;Object.defineProperty(e.prototype,this.NAME,{get(){const e=this,a=["$test"],n=new Proxy(t,{get(t,n,o){if(!a.includes(n))return Reflect.get(t,n,o);const i=Reflect.get(t,n,o);return Object.keys(i).reduce(((t,a)=>({...t,[a]:i[a].bind(e)})),{})}});return n}})};return(t,a)=>{this.onConfigure(),e(t),this.onInstallUtils(t,a),this.useExtensions(a.extensions,t,a)}}}var l_={createExtension:r_.create.bind(r_),PluginInstaller:e=>new s_(e)};let c_=!1;var d_={async signInPage(){const e=(e,t)=>{this.$account.view.SignInPage._isVue?this.$account.view.SignInPage.updateCard(e,t):this.$account.view.SignInPage({card:e,props:t})};c_?await e("SignInCard",{}):(c_=!0,this.$watch((()=>this.$account.store.authState),(async t=>{"pending"===t?(await e("LoadingCard",{title:"auth_state.pending"}),await new Promise((e=>setTimeout(e,1e3))),await this.$account.store.tryToSignInCurrentAccount()):"signed_out"===t&&await e("SignInCard",{})}),{immediate:!0}))}},u_=a("35f4"),__=a("02fe"),p_=a.n(__);async function m_({email:e,phone_number:t,phone_number_code:a,password:n},{language:o}){const i={username:Object(u_["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20)().toLowerCase(),password:n,attributes:{},clientMetadata:{}},r=()=>{if(e)Object.assign(i.attributes,{email:e});else{if(!t)throw new Error("Invalid signup params");Object.assign(i.attributes,{phone_number:t,"custom:phone_number_code":a})}Object.assign(i.attributes,{"custom:msg_locale":`${o}:${i.attributes.email?"E":"P"}`})},s=()=>{Object.assign(i.clientMetadata,{})};r(),s();const{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}=await tu["a"].signUp(i),{ABDevRest:p}=this.utils;return await p.postGuest("/account/postSignUp",{sub:l,username:i.username,keychainMetadataHash:p_.a.SHA256(n).toString(),isTestEnv:window.isTestEnv,invitationCode:i.clientMetadata.invitationCode}),{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}}async function h_(e){const{CodeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}=await tu["a"].resendSignUp(e);return{codeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}}async function g_(e,t,{nickname:a,gender:n,birthday:o,locale:i}){const r={};Object.assign(r,{optionalAttributes:JSON.stringify({nickname:a,gender:n,birthday:o,locale:i})}),Object.assign(r,{}),await tu["a"].confirmSignUp(e,t,{clientMetadata:r})}async function f_(e){const{ABDevRest:t}=this.utils,a=await tu["a"].currentAuthenticatedUser();await tu["a"].changePassword(a,e,e),await t.post("/admin/deleteAccount")}var b_={signUp:m_,signUpResend:h_,signUpConfirm:g_,deleteAccount:f_};async function y_(){const e=await tu["a"].currentAuthenticatedUser();return e?0===Object.keys(e).length?null:e:null}async function v_(e,t,{handleConfirm:a}){const n=async()=>{let n;e=e.toLowerCase();try{const a={};await this.$emit("signIn.createClientMetadata",a),n=await tu["a"].signIn(e,t,a)}catch(o){if("UserNotConfirmedException"===o.code)return await a();throw o}if(n.challengeName){const a={};await this.$emit("signIn.createChallengeHandlers",a);const o=a[n.challengeName];if(!o)throw new Error("Unexpected challenge: "+n.challengeName);return await o(e,t,n)}return!0},o=await n();if(o){const{ABDevRest:e}=this.utils;await e.post("/account/postSignIn",{keychainMetadataHash:p_.a.SHA256(t).toString()})}return o}var w_={signIn:v_,getCurrentAuthedUser:y_};async function k_(){await tu["a"].signOut()}var S_={signOut:k_};async function C_(e,t){const{ABDevRest:a}=this.utils,n=await tu["a"].currentAuthenticatedUser();await a.post("/account/changePassword",{username:n.getUsername(),AccessToken:n.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:e,ProposedPassword:t})}async function x_(e,{language:t}){e=e.toLowerCase();const a={msgLocale:`${t}:F`},{CodeDeliveryDetails:{AttributeName:n,Destination:o}}=await tu["a"].forgotPassword(e,a);return{codeDeliveryDetails:{AttributeName:n,Destination:o}}}async function $_(e,{code:t,password:a}){const{ABDevRest:n}=this.utils;await n.postGuest("/account/forgotPasswordSubmit",{ClientId:tu["a"].userPool.getClientId(),ConfirmationCode:t,Password:a,Username:e})}async function T_(e){const t=await tu["a"].currentAuthenticatedUser(),a=["nickname","gender","birthday","locale"];await tu["a"].updateUserAttributes(t,a.reduce(((t,a)=>{const n=e[a];return void 0!==n&&(t[a]=n),t}),{}))}var z_={changePassword:C_,forgotPasswordSend:x_,forgotPasswordSubmit:$_,changeAttributes:T_};let P_=null;async function A_(e,t){const a=`${e}:${t}`;if(P_===a)return;const n=await tu["a"].currentAuthenticatedUser();await tu["a"].updateUserAttributes(n,{"custom:msg_locale":a}),P_=a}async function I_(e,{language:t}){await A_(t,{email:"E",phone_number:"P"}[e]),await tu["a"].verifyCurrentUserAttribute(e)}async function q_(e,t){const{ABDevRest:a}=this.utils,n=await tu["a"].verifyCurrentUserAttributeSubmit(e,t);await a.post("/account/postVerifyAttr",{success:"SUCCESS"===n})}async function O_(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=await tu["a"].currentAuthenticatedUser();e===n.attributes.email?await I_("email",{language:t}):(await A_(t,"E"),await a.post("/account/setVerifyAttr",{email:e}))}async function E_(e,t,{language:a}){const{ABDevRest:n}=this.utils,o=await tu["a"].currentAuthenticatedUser();e&&t&&e===o.attributes.phone_number&&t===o.attributes["custom:phone_number_code"]?await I_("phone_number",{language:a}):(await A_(a,"P"),await n.post("/account/setVerifyAttr",{phone_number:{phoneNumber:e,phoneNumberCountryCode:t}}))}async function D_(e){return await q_("email",e)}async function j_(e){return await q_("phone_number",e)}var N_={verifyFieldSend:I_,verifyFieldSubmit:q_,changeEmailSend:O_,changeEmailSubmit:D_,changePhoneNumberSend:E_,changePhoneNumberSubmit:j_},L_=a("bbb3"),U_=(e,t,a)=>{L_["default"].configure({...t.awsconfig,aws_cognito_mfa_configuration:"OPTIONAL",aws_cognito_mfa_types:["SMS"]}),tu["a"].configure({authenticationFlowType:"CUSTOM_AUTH"}),a.utils.sync.config(t.gql)};function R_(){return this.$store.getters.settings.language}const M_={created(){this.$account.$on("authState.authorized",(async()=>{await this.$account.view.SignInPage.updateCard("LoadingCard",{title:"auth_state.authorized"}),await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")}))}},F_={async onSignIn(){["pending","signed_out"].includes(this.authState)&&(this.authState="authorized",await this.$account.$emit("authState.authorized")),this.authState="signed_in",await this.$account.$emit("authState.signedIn")},async onSignOut(){"signed_in"===this.authState&&(this.authState="sign_out",await this.$account.$emit("authState.signOut")),this.authState="signed_out",await this.$account.$emit("authState.signedOut")}};var B_={mixins:[M_],data(){return{authState:"pending"}},methods:{async signIn(e,t){const a=await this.$account.core.signIn(e,t,{handleConfirm:()=>{throw new Error("UserNotConfirmedException")}});if(a){const e=await this.$account.core.getCurrentAuthedUser();await F_.onSignIn.call(this,e)}return a},async signOut(){await this.$account.core.signOut(),await F_.onSignOut.call(this)},async deleteAccount(e){await this.$account.core.deleteAccount(e),await this.signOut()},async tryToSignInCurrentAccount(){const e=["The user is not authenticated"];let t;try{if(t=await this.$account.core.getCurrentAuthedUser(),!t)throw"user is null"}catch(a){if(e.includes(a))return void await F_.onSignOut.call(this);throw this.$account.$logger.tags("SignInFlow","pending","rejected").warn(a,typeof a),a}await F_.onSignIn.call(this,t)}}},W_={methods:{async signUp({email:e,phone_number:t,phone_number_code:a,password:n},{requireConfirm:o}){const i=await this.$account.core.signUp({email:e,phone_number:t,phone_number_code:a,password:n},{language:R_.call(this)}),r=await o({data:i,resend:async()=>{await this.$account.core.signUpResend(i.user.getUsername())},callback:async(e,t)=>{await this.$account.core.signUpConfirm(i.user.getUsername(),e,t)}});return r}}},H_={methods:{async forgotPassword(e,{requireCode:t}){const a=await this.$account.core.forgotPasswordSend(e,{language:R_.call(this)}),n=await t({data:a,callback:async(t,a)=>{await this.$account.core.forgotPasswordSubmit(e,{code:t,password:a})}});return n},async changePassword(e,t){await this.$account.core.changePassword(e,t)}}},V_={methods:{async changeEmail(e,{requireCode:t}){const a=async()=>{const t=R_.call(this);await this.$account.core.changeEmailSend(e,{language:t})};await a(),await t({resend:async()=>{await a()},callback:async e=>{await this.$account.core.changeEmailSubmit(e)}})},async changePhoneNumber({phone_number:e,phone_number_code:t},{requireCode:a}){const n=async()=>{const a=R_.call(this);await this.$account.core.changePhoneNumberSend(e,t,{language:a})};await n(),await a({resend:async()=>{await n()},callback:async e=>{await this.$account.core.changePhoneNumberSubmit(e)}})}}},Q_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-modal-page"},[a("transition",{attrs:{name:"fade"}},[e.showContent?a("Backdrop"):e._e()],1),e.$scopedSlots.corner?a("div",{staticClass:"container",staticStyle:{"z-index":"7000"}},[a("transition",{attrs:{name:"slide-right"}},[e.showContent?a("Corner",[e._t("corner")],2):e._e()],1)],1):e._e(),a("div",{staticClass:"container flex justify-center items-center",staticStyle:{"z-index":"6000"}},[a("transition",{attrs:{name:"scale"}},[e.showContent?e._t("default"):e._e()],2)],1)],1)},G_=[],K_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-backdrop",class:[e.backdropType]})},Y_=[];const J_={mounted(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)||document.body.classList.add(e)},beforeDestroy(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)&&document.body.classList.remove(e)}};var Z_={name:"Backdrop",mixins:[J_],data(){return{backdropType:"shadow"}}},X_=Z_,ep=(a("55e6"),Object(Y["a"])(X_,K_,Y_,!1,null,null,null)),tp=ep.exports;ie()(ep,"components",{QDialog:J["a"]});var ap=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bg-page text-page absolute-bottom-right shadow-1 rounded-borders q-ma-sm q-py-xs q-px-sm"},[e._t("default")],2)},np=[],op={name:"Corner"},ip=op,rp=Object(Y["a"])(ip,ap,np,!1,null,"4cc4e2b0",null),sp=rp.exports;const lp=300,cp={data(){return{showContent:!1}},mounted(){this.show()},methods:{async hide(){this.showContent=!1,await new Promise((e=>setTimeout(e,lp)))},async show(){this.showContent=!0,await new Promise((e=>setTimeout(e,lp)))}}};var dp={name:"ModalLayout",mixins:[cp],components:{Backdrop:tp,Corner:sp}},up=dp,_p=(a("4ec4"),Object(Y["a"])(up,Q_,G_,!1,null,null,null)),pp=_p.exports,mp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[e._t("default"),a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",unelevated:"",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}})],2)},hp=[],gp={name:"Corner"},fp=gp,bp=Object(Y["a"])(fp,mp,hp,!1,null,null,null),yp=bp.exports;ie()(bp,"components",{QBtn:ne["a"]});var vp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",[a("q-card-section",{staticClass:"flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(" "+e._s(e.title)+" ")])],1)],1)},wp=[],kp={name:"LoadingCard",props:{title:String}},Sp=kp,Cp=Object(Y["a"])(Sp,vp,wp,!1,null,"598e682e",null),xp=Cp.exports;ie()(Cp,"components",{QCard:Z["a"],QCardSection:X["a"],QSpinnerIos:yn["a"]});var $p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"non-selectable q-pt-lg"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_in.sign_in")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}}),a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.password"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}})],1),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",on:{click:function(){return e.$account.view.SignInPage.updateCard("ResetPasswordCard")}}},[e._v(e._s(e.$t("tip.reset_password")))])])]),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.sign_in")},on:{click:e.handleSignIn}},"q-btn",e.loadingProps("sign_in"),!1)),a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.sign_up")},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignUpCard",{initialSignUpMode:"email"})}}},"q-btn",e.loadingProps("sign_up"),!1)),a("ABOAuthEntry")],1)],1)},Tp=[];const zp={sign_in:{sign_in:["Sign In","登录账户","登錄賬戶"]},sign_up:{sign_up:["Sign Up","注册账户","註冊賬戶"],verify:["Identify verification","身份验证","身份驗證"]},reset_password:{find_your_account:["Find your account","找寻你的账户","找尋你的賬戶"],enter_your_username:["Enter your phone number or email","输入你的手机号码或电子邮箱","輸入你的手機號碼或電子郵箱"]},field:{username:["Phone number or email","手机号码或电子邮箱","手機號碼或電子郵箱"],email:["Email","邮箱","郵箱"],phone_number:["Phone Number","手机号码","手機號碼"],password:["Password","密码","密碼"],verification_code:["Verification code","验证码","驗證碼"],license_terms:["the license and terms","服务许可条款","服務許可條款"]},tip:{forgot_your_password:["Forgot your password? ","忘记密码了?","忘記密碼了?"],reset_password:["Reset password","重置密码","重置密碼"],no_email:["No email? ","没有邮箱?","沒有郵箱?"],sign_up_by_email:["Sign up by email","通过邮箱注册","通過郵箱註冊"],no_phone_number:["No phone number? ","没有手机号码?","沒有手機號碼?"],sign_up_by_phone_number:["Sign up by phone number","通过手机注册","通過手機註冊"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],email_sent:["An email with a verification code has been sent to your email address: {email}","一封附带验证码的电子邮件已发送到您的邮箱:{email}","一封附帶驗證碼的電子郵件已發送到您的郵箱:{email}"],can_not_get_code:["Can not get verification code? ","无法获取验证码?","無法獲取驗證碼?"]},action:{resend_code:["Resend code","重发验证码","重發驗證碼"],finish:["Finish","完成","完成"],continue:["Continue","下一步","繼續"],i_accept:["I accept ","我接受","我接受"],sign_in:["Sign In","登录","登錄"],sign_up:["Sign Up","注册","註冊"],search:["Search","查找","查找"]}},Pp=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Ap={messages:Pp(zp)};const Ip={data(){return{hidePassword:!0}}},qp={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Op={name:"SignInCard",i18n:Ap,mixins:[qp,Ip],props:{initial_username:String,initial_password:String},created(){this.initial_username&&(this.username=this.initial_username),this.initial_password&&(this.password=this.initial_password)},mounted(){this.password&&this.username&&this.handleSignIn()},data(){return{username:null,password:null}},methods:{async handleSignIn(){await this.withLoadingWrapper("sign_in",(async()=>{await this.$account.store.signIn(this.username,this.password)}))}}},Ep=Op,Dp=Object(Y["a"])(Ep,$p,Tp,!1,null,null,null),jp=Dp.exports;ie()(Dp,"components",{QCard:Z["a"],QCardSection:X["a"],QSpace:pe["a"],QBtn:ne["a"],QInput:te["a"],QIcon:wa["a"]});var Np=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.sign_up")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-pt-none"},["email"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.email"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.email,callback:function(t){e.email=t},expression:"email"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}],null,!1,176215e3),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_email"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="phone_number"}}},[e._v(e._s(e.$t("tip.sign_up_by_phone_number")))])])]:"phone_number"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.phone_number"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.phone_number,callback:function(t){e.phone_number=t},expression:"phone_number"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_phone_number"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="email"}}},[e._v(e._s(e.$t("tip.sign_up_by_email")))])])]:e._e()],2),a("q-card-section",{staticClass:"q-py-none row items-center non-selectable"},[a("q-checkbox",{staticStyle:{"margin-left":"-8px"},attrs:{label:e.$t("action.i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"q-ml-xs underscore select-none cursor-pointer text-primary",on:{click:e.showLicenseTerms}},[e._v("\n "+e._s(e.$t("field.license_terms"))+"\n ")])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.continue")},on:{click:function(t){return e.withLoadingWrapper("sign_up",e.handleSignUp)}}},"q-btn",e.loadingProps("sign_up"),!1))],1)],1)},Lp=[],Up=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.verify")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.description))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_get_code"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(){return e.$emit("switchMode","email"===e.signUpMode?"phone_number":"email")}}},[e._v(e._s("email"===e.signUpMode?e.$t("tip.sign_up_by_phone_number"):e.$t("tip.sign_up_by_email")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.finish")},on:{click:function(t){return e.withLoadingWrapper("confirm",e.handleConfirm)}}},"q-btn",e.loadingProps("confirm"),!1))],1)],1)},Rp=[];const Mp={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},Fp={data(){return{showAttributes:!1,attributes:{nickname:null,gender:"not_say",birthday:null,locale:"not_say"}}}};var Bp={name:"SignUpConfirmCard",i18n:Ap,mixins:[Mp,Fp],props:{signUpMode:String,resend:Function,confirm:Function},data(){return{verification_code:null}},computed:{description(){return"email"===this.signUpMode?this.$t("tip.email_sent",{email:"email"}):"phone_number"===this.signUpMode?this.$t("tip.sms_sent",{phone_number:"phone_number"}):void 0}},methods:{async handleResend(){try{await this.resend()}catch(e){}},async handleConfirm(){try{const e=Object.entries(this.attributes).reduce(((e,[t,a])=>a?{...e,[t]:a}:e),{});return await this.confirm(this.verification_code,e)}catch(e){}}}},Wp=Bp,Hp=a("03bd"),Vp=a("abe8"),Qp=Object(Y["a"])(Wp,Up,Rp,!1,null,null,null),Gp=Qp.exports;ie()(Qp,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QToggle:Hp["a"],QTooltip:Rn["a"],QInput:te["a"],QSlideTransition:Vp["a"]});const Kp={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},Yp={data(){return{hidePassword:!0}}},Jp={data(){return{confirmDialog:null}},beforeDestroy(){this.confirmDialog&&this.confirmDialog.hide()},methods:{showConfirmDialog({data:e,resend:t,confirm:a}){this.confirmDialog||(this.confirmDialog=this.$account.utils.showInDialog(Gp,{props:{signUpMode:this.signUpMode,resend:t,confirm:async(...e)=>{await a(...e),this.confirmDialog.hide()}},on:{back:()=>{this.confirmDialog.hide(),this.$account.view.SignInPage.updateCard("SignInCard")},switchMode:e=>{this.confirmDialog.hide(),this.signUpMode=e}}}),this.confirmDialog.onDismiss((()=>this.confirmDialog=null)))}}};var Zp={name:"SignUpCard",i18n:Ap,mixins:[Kp,Jp,Yp],props:{initialSignUpMode:String},data(){return{signUpMode:"email",email:null,phone_number:null,password:null,accept:!1}},created(){this.signUpMode=this.initialSignUpMode},methods:{showLicenseTerms(){this.$account.$emit("signUp.showLicenseTerms")},async handleSignUp(){const e={email:{email:this.email},phone_number:{phone_number:this.phone_number,phone_number_code:this.phone_number_code}}[this.signUpMode];Object.assign(e,{password:this.password});const t=await this.$account.store.signUp(e,{requireConfirm:this.handleSignUpConfirm.bind(this)});t&&this.$account.view.SignInPage.updateCard("SignInCard",{initial_username:{email:this.email,phone_number:this.phone_number}[this.signUpMode],initial_password:this.password})},async handleSignUpConfirm({data:e,resend:t,callback:a}){let n=!1;return this.showConfirmDialog({data:e,resend:t,confirm:async(e,t)=>{await a(e,t),n=!0}}),await new Promise((e=>this.confirmDialog.onDismiss(e))),n}}},Xp=Zp,em=Object(Y["a"])(Xp,Np,Lp,!1,null,null,null),tm=em.exports;ie()(em,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"],QIcon:wa["a"],QCheckbox:ae["a"]}),ie()(em,"directives",{ClosePopup:ke["a"]});var am=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("reset_password.find_your_account")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("reset_password.enter_your_username"))+" ")])])]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",{staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.search")},on:{click:e.handleResetPassword}})],1)],1)},nm=[];const om={data(){return{hidePassword:!0}}};var im={name:"ResetPasswordCard",mixins:[om],i18n:Ap,data(){return{username:null}},methods:{handleResetPassword(){}}},rm=im,sm=Object(Y["a"])(rm,am,nm,!1,null,null,null),lm=sm.exports;ie()(sm,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var cm=async function({card:e,props:t,events:a}){const n={},o={cards:n,corner:yp};this.$on("createSignInPage",_m),await this.$emit("createSignInPage",o);const i=dm("SignInPage",{cards:n,card:e,props:t,events:a,corner:o.corner}),r=this.utils.createVueInstance(i,!0);return r.$mount(um("alphabiz-sign-in-page")),r};function dm(e,{cards:t,card:a,props:n,events:o,corner:i}){const r={beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},methods:{async view$destroy(){await this.$refs.layout.hide(),this.$destroy(),this.$el.remove()}}};return{name:e,mixins:[r],render:s,data(){return{card:a,props:n||{},events:o||{}}},methods:{updateCard(e,t={},a={}){this.card=e,this.props=t,this.events=a}}};function s(e){return e(pp,{ref:"layout",scopedSlots:{corner:()=>e(i),default:()=>e(t[this.card],{props:this.props,on:this.events})}})}}function um(e){return document.getElementById(e)||(()=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t})()}function _m({cards:e}){Object.assign(e,{LoadingCard:xp,SignInCard:jp,SignUpCard:tm,ResetPasswordCard:lm})}a("d176");var pm={SignInPage:cm},mm={onCreateCore(e,t,a){return{...b_,...w_,...S_,...z_,...N_}},onConfigure(e,t,a){U_(e,t,a)},onCreateStoreMixin(e,t,a){return{mixins:[B_,W_,H_,V_]}},onRegisterView(e,t,a){return a.$on("authState.signedIn",(()=>a.view.SignInPage=null)),{...pm}}},hm=a("a071"),gm={onCreateCore(e,t,a){return{}},onConfigure(e,t,a){const n=a;n.$on("signIn.createChallengeHandlers",(t=>{t.CUSTOM_CHALLENGE=async(t,a,n)=>{const o=await e.prototype.$recaptcha("login");if(n=await tu["a"].sendCustomChallengeAnswer(n,o),!n)throw new Error("Network Error");return!0}}));const o=n.$logger.tags("ReCaptcha"),i=async({offLine:e,onLine:t},a)=>{await new Promise((t=>{if(navigator.onLine)t();else{const n=setInterval((()=>{navigator.onLine?(clearInterval(n),t()):e()}),a)}})),t()};i({offLine(){o.log("network offline, retry...")},onLine(){e.use(hm["VueReCaptcha"],{siteKey:"6LeQxGkdAAAAAEU4CVmCtybi8FkBPoX4oy1UnN7Q",loaderOptions:{useRecaptchaNet:!0,autoHideBadge:!0,explicitRenderParameters:{badge:"bottomright"}}}),o.log("loaded")}},3e3)},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}};async function fm(){const e=await tu["a"].currentAuthenticatedUser();return await tu["a"].getPreferredMFA(e)}async function bm(e){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(e))throw new Error("invalid_mfa_type");const t=await tu["a"].currentAuthenticatedUser();await tu["a"].setPreferredMFA(t,e)}async function ym(){const e=await tu["a"].currentAuthenticatedUser();return await tu["a"].setupTOTP(e)}async function vm(e){const t=await tu["a"].currentAuthenticatedUser();await tu["a"].verifyTotpToken(t,e)}async function wm(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=`${t}:D`,{email:o,phoneNumber:i}=await a.postGuest("/account/verifyForDisableMFA",{username:e,metadata:{msgLocale:n}});return{email:{destination:o.Destination},phoneNumber:{destination:i.Destination}}}async function km(e,{emailCode:t,phoneCode:a}){const{ABDevRest:n}=this.utils;e=e.toLowerCase(),await n.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}var Sm={setupTOTP:ym,verifyTotpToken:vm,getMFA:fm,changeMFA:bm,disableMFASend:wm,disableMFASubmit:km};function Cm(){return this.$store.getters.settings.language}const xm=async function(e){const t=()=>this.$account.core.verifyFieldSend("phone_number",{language:Cm.call(this)});await t();const a=await e({resend:()=>t(),callback:async e=>{await this.$account.core.verifyFieldSubmit("phone_number",e)}});return a},$m=async function(e){const t=await e({setup:()=>this.$account.core.setupTOTP(),callback:async e=>{await this.$account.core.verifyTotpToken(e)}});return t};var Tm={methods:{async setNoMfa({requireCodeFromSMS:e,requireCodeFromOTP:t}){const a=this.$account.core.getMFA();if("NOMFA"===a)return!0;let n=!1;if("SMS_MFA"===a)n=await xm.call(this,e);else{if("SOFTWARE_TOKEN_MFA"!==a)throw new Error("invalid_mfa_type");n=await $m.call(this,t)}return!!n&&(await this.$account.core.changeMFA("NOMFA"),!0)},async setSmsMfa({requireCodeFromSMS:e}){const t=this.$account.core.getMFA();if("SMS_MFA"===t)return!0;const a=await xm.call(this,e);return!!a&&(await this.$account.core.changeMFA("SMS_MFA"),!0)},async setOtpMfa({requireCodeFromOTP:e}){const t=this.$account.core.getMFA();if("SOFTWARE_TOKEN_MFA"===t)return!0;const a=await $m.call(this,e);return!!a&&(await this.$account.core.changeMFA("SOFTWARE_TOKEN_MFA"),!0)},async disableMfa(e){const t=await this.$account.core.disableMFASend(e,{language:Cm.call(this)});let a=!1;return await this.$account.$emit("disableMfa.requireCodes",{data:t,submit:async({emailCode:t,phoneCode:n})=>{await this.$account.core.disableMFASubmit(e,{emailCode:t,phoneCode:n}),a=!0}}),a}},created(){const e=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromSMS",{username:a.username,resend:async()=>{a=await tu["a"].signIn(e,t)},submit:async e=>{await tu["a"].confirmSignIn(a,e,"SMS_MFA"),n=!0}}),n},t=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromOTP",{username:a.username,submit:async e=>{await tu["a"].confirmSignIn(a,e,"SOFTWARE_TOKEN_MFA"),n=!0}}),n};this.$account.$on("signIn.createChallengeHandlers",(a=>Object.assign(a,{SMS_MFA:e,SOFTWARE_TOKEN_MFA:t})))}},zm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.sms_sent",{phone_number:"phone_number"})))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},Pm=[];const Am={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Im={name:"RequireCodeFromSMS",mixins:[Am],props:{username:String,resend:Function,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleResend(){try{await this.resend()}catch(e){}},async handleSubmit(){try{return await this.submit(this.verification_code),void this.$emit("back")}catch(e){}}}},qm=Im,Om=Object(Y["a"])(qm,zm,Pm,!1,null,null,null),Em=Om.exports;ie()(Om,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var Dm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.require_otp")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(t){return e.withLoadingWrapper("disable",e.handleDisableMFA)}}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},jm=[];const Nm={verify_your_identity:["Verify your identity","验证您的身份","驗證您的身份"],disable_mfa:{title:["Disable MFA","关闭二级验证","關閉二級驗證"],loading:["Loading...","加载中...","加載中..."]},action:{submit:["Submit","提交","提交"],resend_code:["Resend code","重发验证码","重發驗證碼"],disable_mfa:["Disable MFA","关闭二级验证","關閉二級驗證"]},field:{verification_code:["Verification code","验证码","驗證碼"],email_code:["Email Code","邮箱验证码","郵箱驗證碼"],sms_code:["SMS Code","短信验证码","簡訊驗證碼"]},tip:{require_otp:["MFA is enabled for your account. To finish signing in, please turn on your device and type the TOTP","您的账户已启用安全令牌。要完成登录,请查看您的设备并输入验证码","您的賬戶已啟用安全令牌。要完成登錄,請查看您的設備並輸入驗證碼"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],can_not_mfa:["MFA in trouble? ","无法进行二级验证?","無法進行二級驗證?"],verify_identity_by_codes:["Enter the email verification code and SMS verification code to verify your identity","输入邮件验证码与短信验证码以验证您的身份","輸入郵件驗證碼與簡訊驗證碼以驗證您的身份"]}},Lm=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Um={messages:Lm(Nm)};const Rm={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Mm={name:"RequireCodeFromOTP",i18n:Um,mixins:[Rm],props:{username:String,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleSubmit(){try{await this.submit(this.verification_code),this.$emit("back")}catch(e){}}}},Fm=Mm,Bm=Object(Y["a"])(Fm,Dm,jm,!1,null,null,null),Wm=Bm.exports;ie()(Bm,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var Hm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("disable_mfa.title")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.verify_identity_by_codes")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.email_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.email_code,callback:function(t){e.email_code=t},expression:"email_code"}}),a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.sms_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.sms_code,callback:function(t){e.sms_code=t},expression:"sms_code"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},Vm=[];const Qm={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var Gm={name:"RequireCodesForDisableMFA",mixins:[Qm],props:{submit:Function},data(){return{email_code:null,sms_code:null}},methods:{async handleSubmit(){try{await this.submit({emailCode:this.email_code,phoneCode:this.sms_code}),this.$emit("back")}catch(e){}}}},Km=Gm,Ym=Object(Y["a"])(Km,Hm,Vm,!1,null,null,null),Jm=Ym.exports;ie()(Ym,"components",{QCard:Z["a"],QCardSection:X["a"],QBtn:ne["a"],QSpace:pe["a"],QInput:te["a"]});var Zm={async RequireCodeFromSMS({username:e,resend:t,submit:a}={}){const n=this.utils.showInDialog(Em,{props:{username:e,resend:t,submit:a},on:{back(){n.hide()}}});await new Promise(n.onDismiss)},async RequireCodeFromOTP({username:e,submit:t}){const a=this.utils.showInDialog(Wm,{props:{username:e,submit:t},on:{back(){a.hide()}}});await new Promise(a.onDismiss)},async RequireCodesForDisableMFA({data:e,submit:t}){return await new Promise((e=>{this.view.SignInPage.updateCard("RequireCodesForDisableMFA",{submit:t},{back:e})}))}};const Xm=({cards:e})=>Object.assign(e,{RequireCodesForDisableMFA:Jm});var eh={onCreateCore(e,t,a){return{...Sm}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{...Tm}},onRegisterView(e,t,a){return a.$on("createSignInPage",Xm),a.$on("signIn.requireCodeFromSMS",((...e)=>a.view.RequireCodeFromSMS(...e))),a.$on("signIn.requireCodeFromOTP",((...e)=>a.view.RequireCodeFromOTP(...e))),a.$on("disableMfa.requireCodes",((...e)=>a.view.RequireCodesForDisableMFA(...e))),{...Zm}}},th={onCreateCore(e,t,a){async function n({code:e,email:t,phone:a}){const{ABDevRest:n}=this.utils;t&&(t=t.toLowerCase()),await n.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function o(){const{ABDevRest:e}=this.utils,t=await e.post("/invitation/getCodes");return t}return{inviteCode:n,getInvitationCodes:o}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}},ah={setState:e=>{window.sessionStorage.setItem("oauth_state",e)},getState:()=>{const e=window.sessionStorage.getItem("oauth_state");return window.sessionStorage.removeItem("oauth_state"),e},setPKCE:e=>{window.sessionStorage.setItem("ouath_pkce_key",e)},getPKCE:()=>{const e=window.sessionStorage.getItem("ouath_pkce_key");return window.sessionStorage.removeItem("ouath_pkce_key"),e},clearAll:()=>{window.sessionStorage.removeItem("ouath_pkce_key"),window.sessionStorage.removeItem("oauth_state")}},nh={encode(e){return e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")},decode(e){return e.match(/.{2}/g).map((e=>String.fromCharCode(parseInt(e,16)))).join("")}};const oh="undefined"!==typeof Symbol&&"function"===typeof Symbol.for?Symbol.for("amplify_default"):"@@amplify_default";var ih=(e,t,a)=>{mc["a"].dispatch("auth",{event:e,data:t,message:a},"Auth",oh)},rh={urlSafe:nh,oauthStorage:ah,dispatchAuthEvent:ih};const sh=()=>"electron"===tu["a"]._config.oauth.app_env?"_blank":"_self";var lh=e=>{const t=window.open(e,sh());return t?Promise.resolve(t):Promise.reject()},ch=e=>{let t="",a=e;const n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(;a>0;--a)t+=n[Math.round(Math.random()*(n.length-1))];return t},dh=a("98fd"),uh=a.n(dh),_h=a("b858"),ph=a.n(_h),mh=e=>uh()(e).toString(ph.a).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_"),hh={urlOpener:lh,generateState:ch,generateChallenge:mh},gh={async pending(e,t={}){let a=!1;return await this.$emit("handleOAuthEvent",e,{...t,next:e=>a=e}),a},cancelled(e){return this.$emit("handleOAuthEvent","cancelled",e)},succeed(e){return this.$emit("handleOAuthEvent","succeed",e)},failed(e,t){return"string"===typeof e&&(e=new Error(e)),this.$emit("handleOAuthEvent","failed",t,e)}};function fh(){const e=hh.generateState(128);rh.oauthStorage.setPKCE(e);const t=hh.generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function bh({event:e,provider_sub:t}){if("account_linked"===e){const e="oauth_account_has_been_connected";await gh.failed.call(this,["oauth_error",e].join("."))}else if("account_unlinked"===e){const e=await gh.pending.call(this,"connecting");if(!e)return;const a=rh.oauthStorage.getState(),n=rh.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils;await o.post("/oauth/connect",{state:a,provider_sub:t,code_verifier:n}),await gh.succeed.call(this)}}var yh=a("d830");function vh(){const e=hh.generateState(128);rh.oauthStorage.setPKCE(e);const t=hh.generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function wh({event:e,state:t,provider:a}){if("account_linked"===e){const e=await gh.pending.call(this,"logging_in");if(!e)return;if(t!==rh.oauthStorage.getState())return;const n=rh.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils,{provider_sub:i}=a,r={state:t,provider_sub:i,code_verifier:n},s=await o.postGuest("/oauth/tokens",r);await kh.call(tu["a"],s),await gh.succeed.call(this)}else if("account_unlinked"===e){const e="can_not_login_unconnected_account";await gh.failed.call(this,["oauth_error",e].join("."))}}async function kh({IdToken:e,AccessToken:t,RefreshToken:a}){const n=new yh["h"]({IdToken:new yh["c"]({IdToken:e}),RefreshToken:new yh["d"]({RefreshToken:a}),AccessToken:new yh["b"]({AccessToken:t})});let o;this._config.identityPoolId&&(o=await this.Credentials.set(n,"session"));const i=this.createCognitoUser(n.getIdToken().decodePayload()["cognito:username"]);return i.setSignInUserSession(n),{currentUser:i,credentials:o}}const Sh={connect:n,login:o};function Ch({provider:e,action:t}){const a=this,{ABDevRest:n}=this.utils,o=a.$logger.tags("OAuthAction","Request"),i=hh.generateState(32);rh.oauthStorage.setState(i);const r=Object.entries({state:i,action:t,identity_provider:e,redirect_uri:`${tu["a"]._oAuthHandler._config.redirectSignIn}v2/`,...Sh[t].createParams.call(this)||{}}).map((e=>e.map(encodeURIComponent).join("="))).join("&"),s=`${n.endpoint}/oauth/request`,l=`${s}?${r}`;o.log(l),hh.urlOpener(l)}async function xh(e,t="electron"){const a=this,n=a.$logger.tags("OAuthAction","Response"),o=Array.from(new URL(e).searchParams.entries()).reduce(((e,[t,a])=>({...e,[t]:a})),{}),{action:i,identity_provider:r}=o;if(!i)return;const s=JSON.parse(o.data);if("web"===t){const e=a.$on("handleOAuthEvent",((t,n,o)=>{var s,l;e(),null===(s=(l=a.view).OAuthFlowRestored)||void 0===s||s.call(l,{action:i,identity_provider:r},{stage:t,data:n,error:o})}))}n.tags(i,r).log(s),await Sh[i].eventHandler.call(this,s)}function $h({initial_stage:e,initial_params:t,stage_restrict:a,handlers:n}){const o=this,i=["cancelled","failed","succeed"];let r,s=null,l=null;const c=e=>r!==e&&(!i.includes(r)&&(!!i.includes(e)||!!a[e]&&!!a[r].includes(e))),d=()=>new Promise((async(a,d)=>{const u=async(e,t,s)=>{if(o.$logger.tags("OAuthEvent",e).log(...s?[s.message,t]:[t]),r=e,i.includes(r)){var c;null===(c=l)||void 0===c||c(),"failed"===r?(n[r]&&await n[r](s,t),d(s)):(n[r]&&await n[r](t),a())}else{if(!n[r])return;const e=await n[r](t);null===t||void 0===t||t.next(e)}};await u(e,...t||[]),l=o.$on("handleOAuthEvent",(async(e,t,a)=>{c(e)&&await u(e,t,a)})),s=e=>u("cancelled",e)}));return{cancel:e=>s(e),promise:()=>d().finally((()=>{var e;return null===(e=l)||void 0===e?void 0:e()}))}}async function Th(){const{ABDevRest:e}=this.utils,t=await e.post("/oauth/providers");return t}async function zh(e){const{ABDevRest:t}=this.utils;await t.post("/oauth/disconnect",{provider_sub:e})}var Ph={queryOAuthProviders:Th,disconnectOAuthProvider:zh,createOAuthFlow:$h,handleOAuthActionResponse:xh,requestOAuthAction:Ch},Ah=(e,{app:t,app_config:a},n)=>{Ih(tu["a"],n,a),qh(e,n,a.protocol,t)};const Ih=(e,t,{protocol:a,web_url:n})=>{t.$logger.tags("AuthWrapper");e._oAuthHandler._urlOpener=(e,t)=>hh.urlOpener(e),e.__proto__._handleAuthResponse=()=>{},e.__proto__.oAuthSignOutRedirect=function(t,a){const n=async()=>{const t=e._oAuthHandler._config.domain,a=e._oAuthHandler._cognitoClientId,n=e._oAuthHandler._config.redirectSignIn,o=`https://${t}/logout?${Object.entries({client_id:a,logout_uri:encodeURIComponent(n)}).map((e=>e.join("="))).join("&")}`;await e._oAuthHandler._urlOpener(o,n)};n(),t()};const o=(()=>({isLocalhost:Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),isElectron:Oh()}))(),i=o.isElectron?2:o.isLocalhost?0:1,r=["http://localhost:8080/oauth/",`https://web.alpha.biz/oauth_redirect/${a}/${encodeURIComponent(n)}/`,`https://web.alpha.biz/oauth_redirect/${a}/app/`][i],s=r;Object.assign(e._config.oauth,{app_env:o.isElectron?"electron":"web",redirectSignIn:r,redirectSignOut:s}),Object.assign(e._oAuthHandler._config,{app_env:o.isElectron?"electron":"web",redirectSignIn:r,redirectSignOut:s})},qh=(e,t,n,o)=>{if(Oh()){const{ipcRenderer:e}=a("1b85");e.on("oauth_event",((e,t)=>{t.startsWith(`${n}://$oauth/v2/`)&&i(t,"electron")}))}else if("/oauth/v2/"===new URL(location.href).pathname){const t=t=>{e.prototype.$amplify.addOnAuthStateChangedListener((()=>{setTimeout((()=>{i(t,"web")}),2e3)}),{once:!0})};t(location.href),o.router.replace("/")}function i(e,a){t.core.handleOAuthActionResponse(e,a)}};function Oh(){return"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof process&&"object"===typeof process.version&&process.version.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron")}var Eh=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"overflow-hidden full-width",style:{display:e.hide?"none":"unset"}},[a("q-separator",{staticClass:"q-my-sm",attrs:{color:"general"}}),a("div",{staticClass:"column items-stretch",staticStyle:{margin:"-4px"}},e._l(e.providersEnabled,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{loading:e.loadingState===n,disable:!!e.loadingState,"no-caps":"","no-wrap":"",icon:t.icon,label:e.$t("oauth_login.sign_in_with",{provider:t.name}),unelevated:"",color:"general","text-color":"general"},on:{click:function(){return e.handleClick(t)}}})})),1)],1)},Dh=[];const jh={oauth_stage:{authorize:["Authorizing","授权中...","授權中..."],logging_in:["Logging in","登陆中...","登入中..."],connecting:["Connecting","关联中...","關聯中..."]},oauth_connect:{connect_to:["Connect to {provider}","关联 {provider} 账号","關聯 {provider} 賬號"],notify:{connected:["{provider} connected","已关联 {provider} 账号","已關聯 {provider} 賬號"]}},oauth_disconnect:{disconnect:["Disconnect {provider}","解除 {provider} 账号关联","解除 {provider} 賬號關聯"],notify:{disconnected:["{provider} disconnected","已解除 {provider} 账号关联","已解除 {provider} 賬號關聯"]}},oauth_login:{sign_in_with:["Sign in with {provider}","通过 {provider} 登录","通過 {provider} 登錄"],notify:{signed_in:["Signed in","登录成功","登錄成功"]}},oauth_error:{can_not_login_unconnected_account:["Can not log in to an unconnected {provider} account","无法登录未关联的 {provider} 账号","無法登錄未關聯的 {provider} 賬號"],oauth_account_has_been_connected:["The {provider} account has been connected","该 {provider} 账号已建立关联","該 {provider} 賬號已建立關聯"]},oauth_unset:["unset","未关联","未關聯"]},Nh=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Lh={messages:Nh(jh)},Uh={getIcon:Rh,useOAuthFlowDialog:Mh};function Rh(e){return{Github:"fab fa-github",Twitter:"fab fa-twitter",Google:"fab fa-google"}[e]}function Mh({title:e,providerName:t}){const a=(a,n)=>({title:this.$t(e,{provider:t}),ok:!1,cancel:n.cancel,banner:{avatar:Rh(t),title:this.$t(`oauth_stage.${a}`,{provider:t})}});let n;const o={updateStage:(e,o)=>{n?n.update({banner:{avatar:Rh(t),title:this.$t(`oauth_stage.${e}`,{provider:t})}}):n=this.$alphabiz.dialog(a(e,o))},hide:()=>{var e;null===(e=n)||void 0===e||e.hide()}};return o}async function Fh(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:n,hide:o}=Uh.useOAuthFlowDialog.call(this,{title:"oauth_login.sign_in_with",providerName:e}),i=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["logging_in"],logging_in:[]},handlers:{authorize:()=>{n("authorize",i),this.$account.core.requestOAuthAction({provider:e,action:"login"})},logging_in:()=>(n("logging_in",i),!0),succeed:async()=>{await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.$q.notify({message:this.$t("oauth_login.notify.signed_in"),type:"positive",position:"bottom-right",timeout:5e3})}}});await i.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(o)}var Bh=Fh;async function Wh(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:n,hide:o}=Uh.useOAuthFlowDialog.call(this,{title:"oauth_connect.connect_to",providerName:e}),i=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["connecting"],connecting:[]},handlers:{authorize:()=>{n("authorize",i),this.$account.core.requestOAuthAction({provider:e,action:"connect"})},connecting:()=>(n("connecting",i),!0),succeed:async()=>{this.$q.notify({message:this.$t("oauth_connect.notify.connected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}}});await i.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(o)}var Hh=Wh,Vh={login:Bh,connect:Hh};var Qh={name:"ABOAuthEntry",i18n:Lh,data(){let e={Github:{name:"Github",icon:"fab fa-github"},Twitter:{name:"Twitter",icon:"fab fa-twitter"}};return{hide:!1,loadingState:null,providers:e}},computed:{providersEnabled(){return Object.keys(this.providers).filter((e=>this.d$cfg.oauth.providers.includes(e))).reduce(((e,t)=>({...e,[t]:this.providers[t]})),{})}},methods:{async handleClick(e){try{this.loadingState=e.name,await Vh.login.call(this,e.name)}finally{this.loadingState=null}}}},Gh=Qh,Kh=Object(Y["a"])(Gh,Eh,Dh,!1,null,"391ab58c",null),Yh=Kh.exports;ie()(Kh,"components",{QSeparator:me["a"],QBtn:ne["a"]});var Jh=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-list",{staticClass:"rounded-borders",attrs:{bordered:"",separator:""}},e._l(e.providerItems,(function(t,n){return a("q-item",{key:n,staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.75rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.providerName))]),t.providerUserId?a("q-item-label",{attrs:{caption:""}},[e._v(e._s(t.providerUserId))]):e._e()],1),Object.keys(t.handlers).length?a("q-item-section",{attrs:{side:""}},[1===Object.keys(t.handlers).length?[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:Object.values(t.handlers)[0].icon,flat:"",round:""},on:{click:function(){return Object.values(t.handlers)[0].click()}}},[a("q-tooltip",{ref:"tooltip",refInFor:!0},[e._v(e._s(Object.values(t.handlers)[0].label))])],1)]:[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:"more_vert",flat:"",round:""}},[a("q-menu",{attrs:{"touch-position":"","auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{staticStyle:{"min-width":"180px"}},[e._l(t.handlers,(function(t,n){return[a("q-item",{key:n,attrs:{clickable:""},on:{click:function(){return t.click()}}},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.5rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)]}))],2)],1)],1)]],2):e._e()],1)})),1)},Zh=[],Xh={name:"OAuthManager",i18n:Lh,data(){return{loadingState:null,loaded:!1,providers:[]}},mounted(){this.queryOAuthProviders().then((()=>this.loaded=!0))},methods:{async queryOAuthProviders(){this.providers=await this.$account.core.queryOAuthProviders()},async disconnectOAuthProvider(e,t){const a=[e,t].join("_");await this.$account.core.disconnectOAuthProvider(a),await this.queryOAuthProviders(),this.$q.notify({message:this.$t("oauth_disconnect.notify.disconnected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}},computed:{providerItems(){const e=(e,t)=>{const a=t=>async()=>{try{this.loadingState=e,await t()}finally{this.loadingState=null}},n={};return t?n.disconnect={icon:"delete",label:this.$t("oauth_disconnect.disconnect",{provider:e}),click:a((()=>this.disconnectOAuthProvider(e,t)))}:n.connect={icon:"add",label:this.$t("oauth_connect.connect_to",{provider:e}),click:a((async()=>{await Vh.connect.call(this,e),await this.queryOAuthProviders()}))},n},t=["Github","Twitter"].filter((e=>this.d$cfg.oauth.providers.includes(e))).map((e=>{var t;return{providerName:e,providerUserId:null===(t=this.providers.find((t=>t.provider_name===e)))||void 0===t?void 0:t.provider_sub.slice(e.length+1)}}));return[...t.map((({providerName:t,providerUserId:a})=>({icon:Uh.getIcon(t),providerName:t,providerUserId:a||this.$t("oauth_unset"),handlers:e(t,a)})))]}}},eg=Xh,tg=Object(Y["a"])(eg,Jh,Zh,!1,null,null,null),ag=tg.exports;ie()(tg,"components",{QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QItemLabel:ye["a"],QBtn:ne["a"],QTooltip:Rn["a"],QMenu:cu["a"]});var ng={OAuthFlowRestored({action:e,identity_provider:t},{stage:a,data:n,error:o}){this.$logger.tags("OAuthFlowRestored",e,a).log(n);const i="OAuthFlowRestored";return this.utils.createVueInstance({i18n:Lh,beforeCreate(){const e=this.$account.view[i];e instanceof Function||this.destroy()},created(){var r;this.$account.view[i]=this,null===(r=Vh[e])||void 0===r||r.call(this,t,{initial_stage:a,initial_params:[n,o]}).finally((()=>{this.destroy()}))},beforeDestroy(){const e=this.$account.view[i];e instanceof Function||(this.$account.view[i]=null)},methods:{destroy(){this.$account.view[i]=null}}},!0)}},og={onCreateCore(e,t,a){return{...Ph}},onConfigure(e,t,n){Ah(e,t,n);const o=t.app.router;o.addRoute({path:"/oauth_redirect/:app_name/:redirect_to/v2",component:()=>a.e(7).then(a.bind(null,"4dfe"))});const i=e=>t=>{const a=e.split("/").slice(1),n=t.split("/").slice(1),o={};if(a.length===n.length){for(let e=0;e{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var kg={messages:wg(vg)},Sg=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"2.8rem",name:e.icon}})],1),a("q-item-section",[a("q-item-label",[a("span",{staticClass:"text-bold non-selectable",staticStyle:{"font-size":"1rem"}},[e._v(e._s(e.title))])]),e.member?a("q-item-label",{attrs:{caption:""}},[e._v("\n "+e._s(e.member)+"\n ")]):e._e(),a("div",{staticClass:"q-mt-sm non-selectable"},[a("div",{staticStyle:{margin:"-4px"}},e._l(e.stages,(function(t){return a("TaskItemStage",{key:t.index,attrs:{status:e.status,stage:t,current_stage:e.current_stage}})})),1)])],1)],1)},Cg=[],xg=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-menu",e._b({attrs:{"auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},"q-menu",e.dropdown?{fit:!0,anchor:"bottom left",self:"top left"}:{touchPosition:!0},!1),[a("q-list",{staticStyle:{"min-width":"200px"}},e._l(e.actions,(function(t,n){return a("q-item",{key:n,attrs:{clickable:""},on:{click:t.handler}},[a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)},$g=[],Tg={name:"ActionMenu",props:{actions:Object,dropdown:{type:Boolean,default:!1}}},zg=Tg,Pg=Object(Y["a"])(zg,xg,$g,!1,null,"336359cc",null),Ag=Pg.exports;ie()(Pg,"components",{QMenu:cu["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"]});var Ig=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-chip",{attrs:{clickable:!0,color:e.stage.color,"text-color":e.stage.color,"icon-right":e.stage.icon,outline:e.stage.index!==e.current_stage}},[a("div",[e._v(e._s(e.stage.index+1)+". "+e._s(e.stage.label))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-down",touchPosition:!1}},[a("q-card",{staticClass:"overflow-hidden non-selectable",staticStyle:{"min-width":"200px","max-width":"320px","max-height":"480px"}},[a("q-card-section",[a("div",{staticClass:"flex items-center no-wrap"},[a("div",{staticClass:"text-h6 text-weight-bold ellipsis"},[e._v(e._s(e.stage.label))]),a("q-badge",{staticClass:"q-ml-xs",attrs:{color:e.stage.color,"text-color":e.stage.color}},[a("div",[e._v(e._s(e.stage.status))])])],1),e.stage.subtitle?a("div",{staticClass:"text-caption"},[e._v(e._s(e.stage.subtitle))]):e._e()]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",[e._v(e._s(e.stage.desc))])]),e.stage.actions&&e.stage.actions.length?a("q-card-section",{staticClass:"q-pt-none column items-end q-pb-sm"},e._l(e.stage.actions,(function(t,n){return a("q-btn",e._b({key:n,staticClass:"q-mb-xs",attrs:{unelevated:"",loading:e.loadingState==="action_"+n},on:{click:function(){return e.loadingWrapper(n,t.handler)}}},"q-btn",t,!1))})),1):e._e()],1)],1)],1)},qg=[],Og={name:"TaskItemStage",i18n:kg,data(){return{loadingState:null}},props:{status:String,stage:Object,current_stage:Number},methods:{async loadingWrapper(e,t){try{this.loadingState=`action_${e}`,await t()}finally{this.loadingState=null}}}},Eg=Og,Dg=a("da23"),jg=Object(Y["a"])(Eg,Ig,qg,!1,null,"02a3e274",null),Ng=jg.exports;ie()(jg,"components",{QChip:Dg["a"],QMenu:cu["a"],QCard:Z["a"],QCardSection:X["a"],QBadge:zl["a"],QIcon:wa["a"],QBtn:ne["a"]});var Lg={name:"TaskItem",i18n:kg,components:{ActionMenu:Ag,TaskItemStage:Ng},props:{id:String,category:String,icon:String,title:String,current_stage:Number,status:String,member:String,stages:Array}},Ug=Lg,Rg=Object(Y["a"])(Ug,Sg,Cg,!1,null,null,null),Mg=Rg.exports;ie()(Rg,"components",{QItem:fe["a"],QItemSection:be["a"],QIcon:wa["a"],QItemLabel:ye["a"],QBtn:ne["a"]});const Fg=function(e){const t={id:"SubscribeGithubRepo",category:"SubscribeGithubRepo",icon:"fab fa-github",title:this.$t("task_github_subscribe_repo.title"),current_stage:0,status:"enabled",member:null,stages:[]},a=(e,t)=>this.$t(`task_github_subscribe_repo.task_stage.${e}`,t);if(t.stages.push({index:0,label:a("connect_to_github.label"),desc:a("connect_to_github.desc")},{index:1,label:a("subscribe_repo.label"),desc:a("subscribe_repo.desc")},{index:2,label:a("subscribe_repo_for.label",{month:1}),desc:a("subscribe_repo_for.desc",{month:1})},{index:3,label:a("subscribe_repo_for.label",{month:3}),desc:a("subscribe_repo_for.desc",{month:3})}),e){const a=JSON.parse(e.metadata);Object.assign(t,{id:e.id,current_stage:a.stage+1,member:e.member,status:e.status})}return t.stages.forEach(((a,n)=>{const o=n===t.current_stage,i=nt.current_stage,s=i?"done":r?null:{succeed:"done",cancelled:"close",failed:"error"}[t.status]||"more_horiz",l=i?"positive":r?"general":{succeed:"positive",cancelled:"negative",failed:"negative"}[t.status]||"positive",c=this.$t("task_panel.stage_status."+(i?"completed":r?"not_started":"in_progress"));if(Object.assign(a,{icon:s,color:l,status:c}),a.actions=a.actions||[],0===n&&a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_connect"),handler:()=>{this.$router.push({name:"AccountSettings"})}}),1!==n||i||a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_subscribe"),handler:()=>{const e="https://github.com/tanshuai/alphabiz";window.open(e,"_blank")}}),[2,3].includes(n)&&t.current_stage>1){const t=JSON.parse(e.metadata);a.subtitle=this.$t("task_github_subscribe_repo.subscribed_at",{time:this.$d(new Date(t.subscribed_at),"YMD"),days:Math.max(0,Math.floor((new Date-new Date(t.subscribed_at))/864e5*10)/10)})}if([1,2,3].includes(n)){var d;const t=JSON.parse(null!==(d=null===e||void 0===e?void 0:e.metadata)&&void 0!==d?d:"{}"),i=o&&(2===n?new Date-new Date(t.subscribed_at)>2592e6:3!==n||new Date-new Date(t.subscribed_at)>7776e6),r={disable:!i,label:this.$t("task_github_subscribe_repo.task_action.get_bonus"),handler:async()=>{try{const t=await this.$account.core.updateGithubTask(e.member);await this.updateTaskList(),console.log(t,e)}catch(t){this.$q.notify({type:"negative",position:"bottom-right",message:t.message})}}};a.actions.push(r)}})),t};var Bg={name:"index",i18n:kg,components:{TaskItem:Mg},data(){return{loadingState:null,taskList:null}},computed:{taskItems(){const e=[];return this.taskList.forEach((t=>{i[t.category]&&"cancelled"!==t.status&&e.push(i[t.category].call(this,t))})),e.some((e=>"SubscribeGithubRepo"===e.category))||e.push(Fg.call(this)),e}},mounted(){this.reloadTaskList()},methods:{async reloadTaskList(){const e=async()=>{try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){throw e}};try{this.loadingState="loading",await e()}finally{this.loadingState=null}},async updateTaskList(){try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){this.$q.notify({type:"negative",position:"bottom-right",message:e.message})}}}},Wg=Bg,Hg=Object(Y["a"])(Wg,bg,yg,!1,null,null,null),Vg=Hg.exports;ie()(Hg,"components",{QPage:Ws["a"],QBtn:ne["a"],QSpinnerIos:yn["a"],QIcon:wa["a"],QList:qn["a"]});var Qg={name:"TaskPage",i18n:kg,components:{Layout:fg,TaskCard:Vg}},Gg=Qg,Kg=Object(Y["a"])(Gg,lg,cg,!1,null,null,null),Yg=Kg.exports;function Jg(e){const t={persistent:!0,transitionShow:"slide-up",transitionHide:"slide-down"};let a;const n=u["a"].create({component:{render(o){return o(J["a"],{ref:"dialog",props:t,on:{hide:()=>this.$emit("hide")}},[o(Object.assign({},e,{mixins:[...e.mixins||[],{beforeCreate(){a=this},methods:{closePopup(){n.hide()}}}]}))])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}});return new Proxy({},{get(e,t){return n[t]?Reflect.get(n,t):Reflect.get(a,t)},set(e,t,o){return n[t]?Reflect.set(n,t,o):Reflect.set(a,t,o)}})}ie()(Kg,"components",{QToolbar:Fs["a"],QToolbarTitle:Bs["a"],QBtn:ne["a"]}),ie()(Kg,"directives",{ClosePopup:ke["a"]});const Zg=function(e){return{beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)}}};let Xg=null;var ef={TaskPage(){Xg=Xg||Zg(Yg.name),Yg.mixins=Array.from(new Set((Yg.mixins||[]).concat(Xg)));Jg(Yg)}},tf={onCreateCore(e,t,a){return{...sg}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return e.component("TaskCard",Vg),{...ef}}};const af=l_.PluginInstaller("$account");Object.assign(af.context,{$test:d_});var nf=af.exportAsVuePlugin();const of={Auth:mm,ReCaptcha:gm,MFA:eh,Invitation:th,OAuth:og,Task:tf};var rf=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",flat:"",color:"negative","text-color":"negative",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}}),e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:function(t){e.showDevDialog=!e.showDevDialog}}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"flex items-center",staticStyle:{padding:"4px 12px"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",flat:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{flat:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)},sf=[];const lf={components:{Development:ru["default"]},data(){return{showDevDialog:!1}}},cf={data(){return{languageOptions:Ft["b"]}},computed:{language:{get(){const e=w["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(w["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(f["isElectron"])())){const{ipcRenderer:e}=a("1b85");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}}};var df={name:"Corner",mixins:[cf,lf],methods:{showAboutDialog(){f["Bus"].$emit("CALL_ABOUT")}}},uf=df,_f=(a("8460"),Object(Y["a"])(uf,rf,sf,!1,null,null,null)),pf=_f.exports;ie()(_f,"components",{QBtn:ne["a"],QTooltip:Rn["a"],QDialog:J["a"],QSpace:pe["a"],QSeparator:me["a"],QMenu:cu["a"],QList:qn["a"],QItem:fe["a"],QItemSection:be["a"],QItemLabel:ye["a"],QColor:Ye["a"]}),ie()(_f,"directives",{Ripple:du["a"],ClosePopup:ke["a"]});var mf=async({Vue:e,app:t,router:a})=>{hf(e,[...uc]),e.use(vu,{app:t}),e.use(nf,{app:t,app_config:{protocol:O.a.protocol,web_url:O.a.webEditionUrl},awsconfig:ku,extensions:of,gql:{queries:Su,mutations:Cu,subscriptions:xu}}),e.use(hc,{app:t}),e.use(yc["b"],{app:t,router:a});const n=e.prototype.$account;n.$on("createSignInPage",(e=>{e.corner=pf})),n.$on("signUp.showLicenseTerms",(()=>{return e.call(n.view.SignInPage);function e(){Re.call(this,{title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:Fe},terms:{label:"Terms",markdown:Be}}})}}))};function hf(e,t){var a;const n=null===(a=e.config)||void 0===a?void 0:a.errorHandler;e.config.errorHandler=function(){const e=t.filter((e=>e.match(...arguments)));if(e.length>0)e.forEach((e=>e.execute(...arguments)));else{if(!n)throw arguments[0];n.apply(this,arguments)}}}var gf=a("7d96"),ff=a("4d52"),bf=a("e75b"),yf=({Vue:e,app:t,router:n})=>{if(e.use(gf["a"],{useComponent:{i18n:t.i18n}}),global.handleAbBlockchain=({url:e,action:t,actionArgs:a})=>{if(e){const n={type:"03",prefix:"ab-blockchain"},o={encode:e=>Buffer.from(e,"utf-8").toString("base64"),decode:e=>Buffer.from(e,"base64").toString("utf-8")},i=e=>{if(!e.startsWith(`${n.prefix}://`))return null;const[t,a]=e.replace(`${n.prefix}://`,"").split("/"),i=JSON.parse(o.decode(a));return{action:t,actionArgs:i}},r=i(e);t=r.action,a=r.actionArgs}if(console.log("ab-blockchain$",t,a),"Blockchain"===n.currentRoute.name){const e=n.currentRoute.matched.find((e=>"Blockchain"===e.name)),o=e.instances.default;o.handleAction(t,a)}else n.push({name:"Blockchain",params:{action:t,action_args:a}})},Object(f["isElectron"])()){const{ipcRenderer:e}=a("1b85");e.on(`${ff["a"].config.prefix}-action`,((e,t,a)=>{global.handleAbBlockchain({action:t,actionArgs:a})}))}Object.defineProperty(global.$blockchain.wallet,"fundAccountWithFaucet",{configurable:!0,get(){return async({address:e,amount:t})=>{const a=new bf["a"].Rest("ABDevRest"),n=await a.post("/development/blockchain/fundAccountWithFaucet",{amount:t,address:e,testToken:"XWZWQFZOZ3"});return n}}}),global.$blockchain.$store.wallet.createCollectionLink=async()=>{const e=async(e,t)=>{const a=(e,t)=>{const a={type:"03",prefix:"ab-blockchain"},n={encode:e=>Buffer.from(e,"utf-8").toString("base64"),decode:e=>Buffer.from(e,"base64").toString("utf-8")},o=n.encode(JSON.stringify(t));return`${a.prefix}://${[e,o].join("/")}`},n=a(e,t);console.log("internalUrl",n);const o=await Object(wt["a"])(n);return o},{account:t}=global.$blockchain.$store;await t.assertAccountAccessible();const a=t.address,n=await e("transfer",{to_address:a});return n}},vf=a("1b85"),wf=a.n(vf);r["a"].prototype.$q.electron=wf.a;const kf="";async function Sf(){const{app:e,store:t,router:a}=await ta();let n=!1;const o=e=>{n=!0;const t=Object(e)===e?a.resolve(e).route.fullPath:e;window.location.href=t},i=window.location.href.replace(window.location.origin,""),s=[Ea,rc,rt["a"],mf,yf];for(let c=0;!1===n&&c{})),n["ipcRenderer"].on("some-api",(()=>{})),n["ioServer"].on("request-provident-payment",(e=>{n["ioServer"].emit("request-provident-payment",e)})),n["ioServer"].on("credit_payment_created",(e=>{n["ioServer"].emit("payment-info",e)})),n["ioServer"].on("restart_payment",(e=>{n["ioServer"].emit("restart-payment",e)})),n["ioServer"].on("payment_verified",(e=>{n["ioServer"].emit("payment-verified",e)})),n["ioServer"].on("webtorrent-request-renew",(e=>{n["ioServer"].emit("request_renew",e)})),n["ioServer"].on("webtorrent-payment-finished",(e=>{n["ioServer"].emit("payment_finished",e)})),n["ioServer"].on("webtorrent-finish-all-payments",(e=>{if(null===e||void 0===e||!e.connections)return console.log("skip unknown tr",e,null===e||void 0===e?void 0:e.connections);const t=e.connections;t.forEach((e=>{e.transactions&&e.transactions.forEach((e=>{console.log("Finish pending",e),n["ioServer"].emit("payment_finished",{id:e})}))}))})),n["ioServer"].on("webtorrent-set-throttle",(e=>{0!==e.code&&n["ioServer"].emit("client_error",e.message)})),n["ioServer"].on("webtorrent-verify-payment",(e=>{n["ioServer"].emit("verify_payment",e)})),n["ioServer"].on("webtorrent-payment-completed",(e=>{n["ioServer"].emit("payment_completed",e)})),n["ioServer"].on("complete_payment",(e=>{n["ioServer"].emit("complete-payment",e)})),n["ioServer"].on("finish_payment",(e=>{n["ioServer"].emit("finish-payment",e)})),n["ioServer"].on("payment_closed",(e=>{n["ioServer"].emit("close-payment",e)})),n["ioServer"].on("set-throttle-group",(e=>{n["ioServer"].emit("set-throttle-group",{...e,peerId:null===e||void 0===e?void 0:e.id})})),n["ioServer"].on("download-and-play",(e=>{console.log("should download and play",e),Object(o["b"])("download",e.url)}))},ee3d:function(e,t){function a(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}a.keys=function(){return[]},a.resolve=a,e.exports=a,a.id="ee3d"},eec3:function(e,t,a){},f157:function(e,t,a){"use strict";a("848e")},f3f7:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f77d:function(e,t,a){"use strict";a("7686")},f7b1:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f7b4:function(e,t){e.exports=require("stream")},f817:function(e,t,a){"use strict";a("9f42")},fb31:function(e,t,a){const{isElectron:n}=a("d310");if(n())if(this.require)try{const t=this["require"]("developer/app");console.log("Init from node_modules",process),t.appName=t.name,e.exports={default:t,appName:t.name,...t}}catch(o){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=n()?require("developer/app"):a("b3f7");t.appName=t.name,console.log("APP name:",t.appName,"production",!0),e.exports={default:t,appName:t.name,...t}}else{const t=a("b3f7");e.exports={appName:t.name,...t}}},fc65:function(e,t,a){"use strict";a("ac84")},fe8f:function(e,t,a){}}); \ No newline at end of file diff --git a/dist/electron/UnPackaged/version.json b/dist/electron/UnPackaged/version.json index fda24128..49d93071 100644 --- a/dist/electron/UnPackaged/version.json +++ b/dist/electron/UnPackaged/version.json @@ -1,8 +1,8 @@ { "packageVer": "0.2.4", "channel": "internal", - "buildTime": "202409121721", - "buildCommit": "0aa57d8a", - "sourceCommit": "0aa57d8a", - "version": "0.2.5-internal-202409121721" + "buildTime": "202409121823", + "buildCommit": "86c09859", + "sourceCommit": "86c09859", + "version": "0.2.5-internal-202409121823" } \ No newline at end of file diff --git a/dist/spa/css/app.540ba716.css b/dist/spa/css/app.3b1ea4f3.css similarity index 99% rename from dist/spa/css/app.540ba716.css rename to dist/spa/css/app.3b1ea4f3.css index 6e7d5df3..13e3fdcd 100644 --- a/dist/spa/css/app.540ba716.css +++ b/dist/spa/css/app.3b1ea4f3.css @@ -1 +1 @@ -@charset "UTF-8";html{--ion-safe-area-top:env(safe-area-inset-top);--ion-safe-area-bottom:env(safe-area-inset-bottom);--ion-safe-area-left:env(safe-area-inset-left);--ion-safe-area-right:env(safe-area-inset-right);background-color:var(--q-color-page)}body{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left);padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}body::-webkit-scrollbar,body ::-webkit-scrollbar{width:8px;height:8px}body::-webkit-scrollbar-corner,body ::-webkit-scrollbar-corner,body::-webkit-scrollbar-track,body ::-webkit-scrollbar-track{background-color:initial}body.electron{--appbar-height:30px}.body--light::-webkit-scrollbar-thumb,.body--light ::-webkit-scrollbar-thumb{background-color:#e0e0e0}.body--light::-webkit-scrollbar-thumb:hover,.body--light ::-webkit-scrollbar-thumb:hover{background-color:#d0d0d0}.body--dark::-webkit-scrollbar-thumb,.body--dark ::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.3137254901960784)}.body--dark::-webkit-scrollbar-thumb:hover,.body--dark ::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.4392156862745098)}#q-app,body,html{height:100%}textarea{cursor:auto}.grecaptcha-badge,.grecaptcha-badge+iframe{display:none}.q-icon.fab{font-size:1.4em}.q-textarea>.q-field__inner>.q-field__control{padding-right:2px;padding-left:2px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container .q-field__label{margin-left:10px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container textarea{padding:1px 10px 10px}@media print{@page{size:A4;margin:1in}body{width:768pt;aspect-ratio:9/16}body *{display:none}body .printable{display:block;font-size:16pt}}.q-select__dialog>.q-field>.q-field__inner>.q-field__control{align-items:center;background-color:var(--q-color-page)!important;min-height:56px}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:before{background-color:initial;border-bottom:1px solid #7f7f7f}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:after{background-color:var(--q-color-primary);height:1px}body.screen--xs.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{top:0!important;padding:0!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;top:0!important;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}@media screen and (max-height:600px) and (orientation:landscape){body.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body .q-dialog.fullscreen-dialog>.q-dialog__inner,body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}}.q-drawer-container{position:absolute;top:0;width:100%;height:100vh}.q-drawer{position:relative!important;height:100%}.body--light{--q-color-page:#fcfcfc;--q-color-on-page:#4a4a4a}.body--dark{--q-color-page:#1f1f1f;--q-color-on-page:#c5c5c5}.bg-page,.q-card,.q-drawer,.q-footer,.q-menu,.q-tab-panels,.q-table,.q-table--grid,.q-table__card{background-color:var(--q-color-page)!important}.q-card,.q-drawer,.q-footer,.q-menu,.q-notification.bg-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-table,.q-table--grid,.q-table__card,.text-page{color:var(--q-color-page)!important}.bg-page.q-card,.bg-page .q-card,.bg-page.q-drawer,.bg-page .q-drawer,.bg-page.q-footer,.bg-page .q-footer,.bg-page.q-menu,.bg-page .q-menu,.bg-page.q-notification,.bg-page.q-tab-panels,.bg-page .q-tab-panels,.bg-page.q-table,.bg-page .q-table,.bg-page.q-table--grid,.bg-page .q-table--grid,.bg-page.q-table__card,.bg-page .q-table__card,.bg-page.text-page,.bg-page .text-page,.q-card,.q-card .q-card,.q-card .q-drawer,.q-card .q-footer,.q-card .q-menu,.q-card .q-tab-panels,.q-card .q-table,.q-card .q-table--grid,.q-card .q-table__card,.q-card .text-page,.q-drawer,.q-drawer .q-card,.q-drawer .q-drawer,.q-drawer .q-footer,.q-drawer .q-menu,.q-drawer .q-tab-panels,.q-drawer .q-table,.q-drawer .q-table--grid,.q-drawer .q-table__card,.q-drawer .text-page,.q-footer,.q-footer .q-card,.q-footer .q-drawer,.q-footer .q-footer,.q-footer .q-menu,.q-footer .q-tab-panels,.q-footer .q-table,.q-footer .q-table--grid,.q-footer .q-table__card,.q-footer .text-page,.q-menu,.q-menu .q-card,.q-menu .q-drawer,.q-menu .q-footer,.q-menu .q-menu,.q-menu .q-tab-panels,.q-menu .q-table,.q-menu .q-table--grid,.q-menu .q-table__card,.q-menu .text-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-tab-panels .q-card,.q-tab-panels .q-drawer,.q-tab-panels .q-footer,.q-tab-panels .q-menu,.q-tab-panels .q-tab-panels,.q-tab-panels .q-table,.q-tab-panels .q-table--grid,.q-tab-panels .q-table__card,.q-tab-panels .text-page,.q-table,.q-table--grid,.q-table--grid .q-card,.q-table--grid .q-drawer,.q-table--grid .q-footer,.q-table--grid .q-menu,.q-table--grid .q-tab-panels,.q-table--grid .q-table,.q-table--grid .q-table--grid,.q-table--grid .q-table__card,.q-table--grid .text-page,.q-table .q-card,.q-table .q-drawer,.q-table .q-footer,.q-table .q-menu,.q-table .q-tab-panels,.q-table .q-table,.q-table .q-table--grid,.q-table .q-table__card,.q-table .text-page,.q-table__card,.q-table__card .q-card,.q-table__card .q-drawer,.q-table__card .q-footer,.q-table__card .q-menu,.q-table__card .q-tab-panels,.q-table__card .q-table,.q-table__card .q-table--grid,.q-table__card .q-table__card,.q-table__card .text-page{color:var(--q-color-on-page)!important}.body--light{--q-color-general:#eee;--q-color-on-general:#3c3c3c}.body--dark{--q-color-general:#424242;--q-color-on-general:#e6e6e6}.bg-general{background-color:var(--q-color-general)!important}.bg-general.q-notification,.bg-general.text-general,.bg-general .text-general,.q-notification.bg-general,.text-general{color:var(--q-color-on-general)!important}.body--light{--q-color-positive:#388c5f;--q-color-on-positive:#fff}.body--dark{--q-color-positive:#066b46;--q-color-on-positive:#f6faf8}.bg-positive{background-color:var(--q-color-positive)!important}.q-notification.bg-positive,.text-positive{color:var(--q-color-positive)!important}.bg-positive.q-notification,.bg-positive.text-positive,.bg-positive .text-positive{color:var(--q-color-on-positive)!important}.body--light{--q-color-negative:#b03535;--q-color-on-negative:#fff}.body--dark{--q-color-negative:#b30f0f;--q-color-on-negative:#fff;background-color:var(--q-color-page)!important}.bg-negative{background-color:var(--q-color-negative)!important}.q-notification.bg-negative,.text-negative{color:var(--q-color-negative)!important}.bg-negative.q-notification,.bg-negative.text-negative,.bg-negative .text-negative{color:var(--q-color-on-negative)!important}.q-item--active,.q-item.q-router-link--active{color:var(--q-color-txt-primary)!important}.body--light .q-bar{background-color:initial;backdrop-filter:brightness(0.7);-webkit-backdrop-filter:brightness(0.7)}.body--dark .q-bar{background-color:initial;backdrop-filter:brightness(0.8);-webkit-backdrop-filter:brightness(0.8)}.body--dark{--q-color-dark:var(--q-color-page)}.q-menu{z-index:7000!important}.feedback-main{width:480px;min-height:400px}.details-input textarea{resize:none!important}.diagnotic-main[data-v-8fee9c62]{width:80vw;max-width:600px;-webkit-user-select:none;user-select:none}.text-normal[data-v-8fee9c62]{color:#2872f6}.result-name[data-v-8fee9c62]{display:inline-block;width:160px}.markdown-dialog.fullscreen-dialog>.q-dialog__inner{padding:0!important;top:0!important}.markdown-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;border-radius:0!important;width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important}.markdown-content *{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:1rem;line-height:1.5}.markdown-content h1{font-size:2rem;line-height:2rem}.markdown-content h2{font-size:1.8rem;line-height:1.8rem}.markdown-content h3{font-size:1.6rem;line-height:1.6rem}.markdown-content h4{font-size:1.4rem;line-height:1.4rem}.markdown-content h5{font-size:1.2rem;line-height:1.2rem}.markdown-content h6{font-size:1rem;line-height:1rem}.body--dark .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(2.2) brightness(0.6)}.body--light .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(1.6) brightness(0.9)}.about-content[data-v-e4afc3b8]{margin:0 auto;font-size:14px;line-height:1.8;font-family:Amazon Ember,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,"sans-serif"}.about-content a[data-v-e4afc3b8]{color:var(--q-color-txt-primary);text-decoration:none}.about-content a[data-v-e4afc3b8]:active,.about-content a[data-v-e4afc3b8]:hover{text-decoration:underline;cursor:pointer}body.electron .application-bar{display:flex}body.electron .fullscreen>.q-table__top{padding-top:40px}.app-draggable{-webkit-app-region:drag}.app-no-draggable{-webkit-app-region:no-drag}.application-bar-icon{filter:brightness(1.2) saturate(1.2)}.application-bar{display:none;position:fixed;z-index:7000;width:100%;height:30px;color:#fff;flex-direction:row;align-items:center}.window-control-button{width:48px;height:30px;border-radius:0;transition:none}.window-close-button{background-color:initial}.window-close-button:hover{background-color:#c62828}.items-center[data-v-1f47903d]{text-align:center}.login-container[data-v-6a9c1d57]{width:480px;max-width:100%;margin-left:auto;margin-right:auto}.library-recommend[data-v-0d732dc4]{overflow:auto;height:calc(100vh - 100px - env(safe-area-inset-bottom) - env(safe-area-inset-top));padding-bottom:24px}.recommend-title.full div[data-v-0d732dc4]{color:var(--q-color-on-primary);font-weight:700;text-shadow:2px 0 2px var(--q-color-primary),0 2px 2px var(--q-color-primary),-2px 0 2px var(--q-color-primary),0 -2px 2px var(--q-color-primary),1px 1px 2px var(--q-color-primary),-1px 1px 2px var(--q-color-primary),1px -1px 2px var(--q-color-primary),-1px -1px 2px var(--q-color-primary)}.recommends[data-v-0d732dc4]{padding-bottom:160px}.recommends>i[data-v-0d732dc4]{width:290px;height:0;margin:0 8px}.channel-description[data-v-0d732dc4]{max-width:256px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:4;-webkit-box-orient:vertical;word-break:break-all;text-overflow:ellipsis}.img-container[data-v-0d732dc4]{aspect-ratio:2/3;background-color:var(--q-color-general)}.img-container img[data-v-0d732dc4]{width:100%;height:100%;display:block;object-fit:cover}.follow-selected[data-v-0d732dc4]{right:12px;bottom:48px}.recommend-actions[data-v-0d732dc4]{width:100%;max-width:100%;padding-top:24px;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;bottom:calc(env(safe-area-inset-bottom) + 16px)}.action-btn[data-v-0d732dc4]{font-size:13px}@keyframes focus-data-v-0d732dc4{0%,31%,to{transform:scale(2);opacity:0}15%,40%{opacity:0.7}30%,70%{transform:scale(1);opacity:0}}.action-btn.selected[data-v-0d732dc4]:before{content:"";position:absolute;z-index:-1;top:0;left:0;bottom:0;right:0;border:1px solid var(--q-color-primary);border-radius:20px;transform-origin:center;opacity:0;animation:focus-data-v-0d732dc4 1.8s infinite}.peer-dialog-card[data-v-54be07de]{width:80vw;max-width:960px!important;max-height:calc(100vh - 100px)}.list-title[data-v-54be07de]{font-size:18px;margin-left:12px;margin-bottom:4px}.scroll-area[data-v-54be07de]{max-height:calc(100vh - 200px);overflow:auto}.library-container[data-v-203f2a72]{display:flex;flex-direction:column;height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top));width:100%;max-width:100%}.library-container.larger[data-v-203f2a72]{height:calc(100vh - 50px - env(safe-area-inset-bottom, -30px) - env(safe-area-inset-top))}.library-header[data-v-203f2a72]{border-bottom:1px solid #dcdcdc}.body--dark .library-header[data-v-203f2a72]{border-bottom:1px solid #444}.library-view[data-v-203f2a72]{flex:1 1 auto;overflow:hidden}.fade-enter-active[data-v-203f2a72],.fade-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.fade-enter[data-v-203f2a72],.fade-leave-to[data-v-203f2a72]{opacity:0}.slide-enter-active[data-v-203f2a72],.slide-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.slide-leave-to[data-v-203f2a72]{pointer-events:none;opacity:0;transform:translateX(-20%)}.slide-enter[data-v-203f2a72]{opacity:0;transform:translateX(20%)}@media (max-width:599px){.connection-status[data-v-203f2a72],.from-network-hint[data-v-203f2a72]{display:inline-block}}.header-crumbs .q-breadcrumbs .flex{flex-wrap:nowrap}.header-crumbs .q-breadcrumbs__el{flex-wrap:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-view{position:relative}.body--dark .follow-btn[data-v-711b4078]{-webkit-backdrop-filter:brightness(1.1);backdrop-filter:brightness(1.1);filter:brightness(1.6)}.follow-btn[data-v-711b4078]{transition:all 100ms ease-in-out;font-weight:400;text-align:center;text-transform:uppercase;min-width:100px;font-size:0.8rem;padding:6px 8px;background:transparent;color:var(--q-color-txt-primary);border:1px solid var(--q-color-txt-primary);border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.follow-btn.hovered[data-v-711b4078]{color:var(--q-color-negative);border:1px solid var(--q-color-negative)}.follow-btn.followable[data-v-711b4078]{background:var(--q-color-primary);border:var(--q-color-primary);color:var(--q-color-on-primary);filter:brightness(1);transition:box-shadow 400ms ease-in-out,filter 100ms ease-in-out;box-shadow:0 0 4px var(--q-color-primary)}.follow-btn.followable.hovered[data-v-711b4078]{filter:brightness(1.15);box-shadow:0 0 16px var(--q-color-primary)}.follow-btn.pending[data-v-711b4078]{filter:saturate(0);cursor:not-allowed}.follow-btn.disableFollow[data-v-711b4078]{cursor:not-allowed}#video-splash[data-v-bcdd35fc]{width:100%;height:100%;background-color:#000;color:#fff;opacity:0.85;display:flex;position:absolute;left:0;top:0;z-index:10;justify-content:center;align-items:center}#video-splash>[data-v-bcdd35fc]{flex-direction:column;flex-basis:auto}.loading[data-v-bcdd35fc]{display:flex;width:100%;justify-content:center;align-items:center}.audio-info-container[data-v-d5366250]{position:absolute;left:0;top:0;display:flex;flex-direction:column-reverse;align-items:center;width:100%;height:50%;-webkit-user-select:none;user-select:none;z-index:3}.audio-info-container p[data-v-d5366250]{color:#fff}.vjs-button:focus{border:none;outline:none}.video-js .vjs-big-play-button{height:calc(2rem + 32px);border:none}.video-js .vjs-big-play-button .vjs-icon-placeholder{display:none}.vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-paused .vjs-big-play-button .vjs-big-play-button,.vjs-paused.vjs-has-started .vjs-big-play-button{display:block;background-color:hsla(0,0%,39.2%,0.3)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:hover,.vjs-paused.vjs-has-started .vjs-big-play-button:hover{background-color:hsla(0,0%,39.2%,0.5)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:before,.vjs-paused.vjs-has-started .vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-16-9{padding-top:0!important}:focus-visible{outline:none!important}.vjs-progress-control .vjs-slider{text-shadow:none!important;box-shadow:none!important;border-style:none!important;border-color:transparent!important}#video-container{height:calc(100% - env(safe-area-inset-bottom));position:absolute;width:100%}#video-container video{background-color:#000}#video-container .vjs-big-play-button{background-color:hsla(0,0%,58.8%,0.3)}#video-container .vjs-big-play-button:hover{background-color:hsla(0,0%,58.8%,0.5)}.body--dark #video-container video{background-color:#1d1d1d}.body--dark #video-container .vjs-big-play-button{background-color:#424242}.body--dark #video-container .vjs-big-play-button:hover{background-color:#616161}.vjs-subs-caps-button li{text-transform:unset;-webkit-user-select:none;user-select:none}.vjs-subs-caps-button .vjs-menu-content{overflow-x:hidden;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:200px;right:0}.vjs-subs-caps-button .vjs-menu-content .vjs-menu-item-text{display:block;word-wrap:break-word}.vjs-control-bar{z-index:1}.vjs-control-bar .vjs-remaining-time{width:55px;-webkit-user-select:none;user-select:none}#download-progress{height:100%;width:100%;background:transparent;z-index:2}.open:before{content:""}.open:before,.subs:before{font-family:FontAwesome;cursor:pointer;font-size:15px}.subs:before{content:""}.advanced:before{font-family:FontAwesome;content:"";cursor:pointer;font-size:15px}.add-sub-btn:after{content:"";border-bottom:1px solid grey;display:block;margin:2px 8px -2px 8px}.q-dialog .dialog-actions[data-v-580a0550]{display:block}.dialog-actions[data-v-580a0550]{display:none}.post-channel-info-container[data-v-580a0550]{transition:transform 400ms ease-in-out!important;position:absolute;top:0;width:100%}.post-channel-info-container.hide[data-v-580a0550]{transform:translateY(-100%)}.rate-tip[data-v-580a0550]{max-width:300px;font-size:12px;margin:4px 0}body.screen--xs .q-virtual-scroll__content>.post-card[data-v-580a0550]{margin:8px!important;width:calc(100vw - 20px)}body.screen--xs .q-dialog__inner>.post-card[data-v-580a0550]{margin:0}.post-card[data-v-580a0550]{width:80vw;max-width:640px;margin:16px auto;transition:padding-top 400ms ease-in-out}.post-desc[data-v-580a0550]{justify-content:space-between;flex-direction:column}.favorite-icon[data-v-580a0550]{vertical-align:text-bottom}.desc-main .desc-title[data-v-580a0550]{font-size:1.125rem}.post-desc .post-buttons[data-v-580a0550]{white-space:nowrap;overflow:hidden}.image-container[data-v-580a0550]{height:360px;aspect-ratio:2/3;-webkit-backdrop-filter:saturate(1.5) brightness(0.8);backdrop-filter:saturate(1.5) brightness(0.8);border-radius:4px}.image-container img[data-v-580a0550]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.action-button[data-v-580a0550]{max-width:calc(50% - 8px)}.action-button-content[data-v-580a0550]{max-width:100%;overflow:hidden;text-overflow:ellipsis}.action-button-content i[data-v-580a0550]{margin-right:4px}.back-to-top[data-v-ec8a50cc]{margin:16px;margin-bottom:calc(16px + env(safe-area-inset-bottom));margin-right:calc(16px + env(safe-area-inset-right))}.animate-enter-active[data-v-ec8a50cc],.animate-leave-active[data-v-ec8a50cc]{transition:0.1s}.animate-enter[data-v-ec8a50cc],.animate-leave-to[data-v-ec8a50cc]{transform:translateY(16px);opacity:0}.back-btn[data-v-ec8a50cc]{position:relative;transition:all 0.2s ease-in-out}.back-btn.hide[data-v-ec8a50cc]{opacity:0;transition-duration:0s;transition-delay:0s}.back-btn:hover .fab-inner-text[data-v-ec8a50cc]{width:88px}.fab-inner-text[data-v-ec8a50cc]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.channel-desc[data-v-37cd58ed]{max-height:80px;word-break:break-all;overflow:auto;text-overflow:ellipsis}.channel-card[data-v-37cd58ed]{width:290px;margin:8px;transition:transform 200ms ease-in-out,box-shadow 200ms ease-in-out!important;box-shadow:0 1px 2px rgba(0,0,0,0.24)!important}.channel-card[data-v-37cd58ed]:hover{transform:translateY(-4px);box-shadow:0 4px 16px 2px rgba(0,0,0,0.12)!important}.image-container[data-v-37cd58ed]{overflow:hidden;-webkit-backdrop-filter:saturate(1.5) brightness(0.3);backdrop-filter:saturate(1.5) brightness(0.3);position:relative;word-break:break-all}.channel-image[data-v-37cd58ed]{width:290px}.show-search-channel[data-v-1c919252]{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));transition:all 0.2s ease}.channel-search-btn[data-v-1c919252]{transition:all 0.2s ease}.channel-search-btn.hide[data-v-1c919252]{opacity:0;transition-duration:0s}.channel-search-btn:hover .fab-inner-text[data-v-1c919252]{width:72px}.fab-inner-text[data-v-1c919252]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.higher[data-v-1c919252]{bottom:calc(88px + env(safe-area-inset-bottom));transition-delay:0s}.search-dialog[data-v-1c919252]{width:80vw;max-width:660px;max-height:calc(100vh - 120px)}.search-results>i[data-v-1c919252]{width:290px;height:0;margin:0 8px}.library-inner-container[data-v-872ead0c]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll[data-v-872ead0c]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll.web[data-v-872ead0c]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.preview-image[data-v-872ead0c]{max-height:80vh;max-width:100%;display:block}.no-data[data-v-872ead0c]{width:75%;max-width:640px;height:400px;background-color:#eee;margin:16px auto;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-872ead0c]{background-color:#333}.no-data-btn[data-v-872ead0c]{margin-left:auto;margin-right:auto;margin-top:160px}.scroll-to-top[data-v-872ead0c]{bottom:48px;right:12px}.transparent[data-v-872ead0c]{opacity:0}.library-following[data-v-0a6f4e44]{--appbar-height:30px;--header-height:109px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.library-following.web[data-v-0a6f4e44]{max-height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.library-following>i[data-v-0a6f4e44]{width:290px;height:0;margin:0 8px}.no-data[data-v-0a6f4e44]{width:290px;height:451px;background-color:#eee;display:inline-block;margin:8px;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-0a6f4e44]{background-color:#333}.no-data-btn[data-v-0a6f4e44]{margin-left:auto;margin-right:auto;margin-top:180px}.file-selector-input[data-v-a5acd74c]{display:none}.local-favorite[data-v-c0faef30]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.local-favorite.web[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.web .favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.save-or-load[data-v-c0faef30]{right:16px;bottom:16px;transition:0.2s ease;transition-delay:0.2s}.save-or-load.higher[data-v-c0faef30]{bottom:88px;transition-delay:0s}.preview-image[data-v-c0faef30]{max-height:80vh;max-width:100%;display:block}.backup-btn[data-v-c0faef30]{transition:opacity 0.2s ease}.backup-btn.hide[data-v-c0faef30]{opacity:0;transition-duration:0s}.backup-btn:hover .fab-inner-text[data-v-c0faef30]{width:72px}.fab-inner-text[data-v-c0faef30]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.image-container[data-v-70ea5328]{width:56px;height:100%;border:1px solid #dcdcdc;border-radius:4px;vertical-align:middle}.preview-image[data-v-70ea5328]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.preview-image.error[data-v-70ea5328],.preview-image.loading[data-v-70ea5328]{display:none}.task-select[data-v-48adc3b5]{max-height:100%;overflow:hidden}.set-title[data-v-48adc3b5]{color:#566b94}.from-magnet[data-v-48adc3b5]{color:var(--q-color-primary);cursor:pointer}.library-excel[data-v-27719a2e]{width:100%;max-width:100%;height:100%;max-height:80vh}.excel-card[data-v-27719a2e]{height:100%}.excel-main[data-v-27719a2e]{height:calc(100% - 40px);overflow:auto}.post-table .text-left[data-v-27719a2e]{white-space:pre-wrap;word-break:break-all}.post-table .text-left.post-title[data-v-27719a2e],.post-table .text-left.post-url[data-v-27719a2e]{white-space:nowrap;word-break:keep-all;width:200px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.post-table .post-img[data-v-27719a2e]{width:120px}.post-list-card[data-v-1e291392]{height:80vh}.post-list-title[data-v-1e291392]{position:-webkit-sticky;position:sticky;z-index:1;top:0;background:var(--q-color-page)}.post-table td[data-v-1e291392]{vertical-align:top}.excel-dialog .q-dialog__inner[data-v-1e291392]{width:90vw;margin-left:auto;margin-right:auto}.import-entry[data-v-1e291392]{max-width:720px;width:80vw}.post-title[data-v-1e291392]{max-width:240px;overflow:hidden;text-overflow:ellipsis}.post-desc[data-v-1e291392]{white-space:pre-wrap;word-break:break-all}.card-container[data-v-7e12c2f2]{max-height:calc(100vh - 80px);display:flex;flex-flow:column;overflow:auto;flex:1}.card-footer[data-v-7e12c2f2],.card-header[data-v-7e12c2f2]{flex:1 0 auto}.card-content[data-v-7e12c2f2]{flex:0 1 100%;overflow-y:auto;flex-flow:column}.from-file-or-task[data-v-7e12c2f2]{min-height:96px}.from-upload-task[data-v-7e12c2f2]{width:240px;white-space:nowrap}.edit-main[data-v-755ddde0]{--appbar-height:30px;--header-height:109px;padding:16px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.edit-main>[data-v-755ddde0]{width:290px}.edit-main>i[data-v-755ddde0]{width:290px;height:0;margin:0 8px}.add-channel[data-v-755ddde0]{--fab-radius:36px;width:290px;height:425px;min-height:425px;transition:all 200ms ease-in-out}.add-channel[data-v-755ddde0]:hover{transform:scale(0.95)}.add-channel:hover>.add-channel-panel[data-v-755ddde0]{width:calc(var(--fab-radius)*4 + 8px)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]{box-shadow:0 0 8px var(--q-color-primary)}.add-channel:hover>.add-channel-panel:hover>.q-btn[data-v-755ddde0]{transform:scale(0.9)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]:hover{box-shadow:0 0 16px var(--q-color-primary);transform:scale(1.2);filter:brightness(1.1) saturate(1.3)}.add-channel>.add-channel-panel[data-v-755ddde0]{border-radius:var(--fab-radius)}.add-channel>.add-channel-panel>.q-btn[data-v-755ddde0],.add-channel>.add-channel-panel[data-v-755ddde0]{transition:all 0.2s ease-in-out;width:calc(var(--fab-radius)*2);height:calc(var(--fab-radius)*2)}.creator-title:hover>span[data-v-1d2daf92],.header-channel-info[data-v-1d2daf92]:hover{text-decoration:underline}.channel-header[data-v-1d2daf92]{max-width:640px;min-height:160px}body.screen--xs .channel-header[data-v-1d2daf92]{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important}.channel-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.header-icon[data-v-1d2daf92]{width:120px;height:120px;border:4px solid #fff;border-radius:50%;overflow:hidden;position:absolute;left:12px;top:12px}.body--dark .header-icon[data-v-1d2daf92]{border-color:#1f1f1f}.header-icon img[data-v-1d2daf92]{aspect-ratio:1/1;width:100%;height:100%;background:#282828}.header-badges[data-v-1d2daf92]{max-height:56px}.header-description[data-v-1d2daf92]{max-height:320px;word-break:break-all;overflow:auto}.header-actions[data-v-1d2daf92]{display:flex;justify-content:center}.header-actions .btn[data-v-1d2daf92]{margin:8px 8px 12px 8px;text-align:center;text-transform:uppercase;width:100px;font-size:14px}.header-actions .share-btn[data-v-1d2daf92]{background:transparent;color:var(--q-color-primary);border:2px solid var(--q-color-primary);padding:2px 4px;border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.header-actions .share-btn[data-v-1d2daf92]:hover{color:rgba(209,153,75,0.8666666666666667);border-color:rgba(209,153,75,0.8666666666666667)}.body--dark .header-actions .btn[data-v-1d2daf92]{background:#282828;color:rgba(209,153,75,0.6666666666666666)}.follower-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}#channel-preview-hint[data-v-fb451ef2]{background:grey!important;color:#fff!important;max-width:640px;margin-left:auto;margin-right:auto;margin-top:24px;margin-bottom:24px}.channel-info[data-v-fb451ef2]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto;margin-top:16px}.channel-info-header-space[data-v-fb451ef2]{height:48px;background-color:rgba(0,0,0,0.03137254901960784);margin:-8px -16px -30px;border-radius:4px 4px 0 0}.body--dark .channel-info-header-space[data-v-fb451ef2]{background-color:hsla(0,0%,100%,0.03137254901960784)}.channel-main-info[data-v-fb451ef2]{display:block;margin-left:60px}.channel-icon[data-v-fb451ef2]{margin-top:-3px;display:inline-block}.channel-main-info .channel-title .title-text[data-v-fb451ef2]{font-size:18px;vertical-align:sub;flex-grow:1}.block-hint[data-v-fb451ef2],.hidden-hint[data-v-fb451ef2]{flex-shrink:0}.channel-main-info .channel-title .follower[data-v-fb451ef2]{margin-top:-4px}div.channel-title[data-v-fb451ef2]{display:flex;height:24px}span.channel-title[data-v-fb451ef2]{display:inline-block;max-width:calc(100% - 130px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;line-height:20px}span.channel-title-btns[data-v-fb451ef2]{flex-shrink:0;margin-top:-4px}.channel-main-info .creator[data-v-fb451ef2]{margin-top:12px;height:24px;display:inline-block}.channel-main-info .creator span[data-v-fb451ef2]{vertical-align:bottom}.preview-image[data-v-fb451ef2]{max-height:80vh;max-width:100%;display:block}.follow-btn[data-v-fb451ef2],.share-btn[data-v-fb451ef2]{margin-top:-2px}.creator-flex-layout>i[data-v-5975beaa]{width:290px;height:0;margin:0 8px}.library-creator[data-v-5975beaa]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.creator-section[data-v-5975beaa]{position:relative}.creator-avatar[data-v-5975beaa]{transform:translateY(-50%);outline:4px solid var(--q-color-page)}.creator-info[data-v-5975beaa]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto}.creator-title[data-v-5975beaa]{font-size:22px;background:rgba(0,0,0,0.03137254901960784);padding:12px 12px 12px 108px}.body--dark .creator-title[data-v-5975beaa]{background:#282828}.creator-avatar-container[data-v-5975beaa]{position:absolute;left:12px;top:12px}.body--dark .creator-info-header-space[data-v-5975beaa]{background-color:hsla(0,0%,100%,0.03137254901960784)}.creator-description[data-v-5975beaa]{word-break:break-all;white-space:pre-wrap;max-height:320px}.avatar[data-v-5975beaa]{object-fit:contain}.creator-avatar[data-v-5975beaa]{max-width:100%;border-radius:50%;border:1px solid #dcdcdc;aspect-ratio:1/1;background:#282828}.take-down[data-v-888fffa4]{padding:12px;max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.voted-count.self-voted[data-v-888fffa4]{color:var(--q-color-primary)}.takedown-row[data-v-888fffa4]{vertical-align:top}.takedown-row.add[data-v-888fffa4]{vertical-align:middle}.takedown-id[data-v-888fffa4]{width:240px;max-width:240px;overflow:hidden;text-overflow:ellipsis}.takedown-reason[data-v-888fffa4]{width:180px}.takedown-admins div[data-v-888fffa4]{max-height:72px;width:180px;overflow:auto}.takedown-admins div div[data-v-888fffa4]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.electron .library-index-scroll,.electron .library-inner-container{--appbar-height:30px}.library-index-scroll,.library-inner-container{--appbar-height:0px;--header-height:109px;padding:0!important;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}.library-table .q-table__grid-content{height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-y:scroll;align-items:center;justify-content:center}.library-table .q-table__grid-content>div{flex-shrink:1}.library-table .q-table__middle{display:none}.library-table .q-table__bottom{padding:0!important}.library-table .library-table__loading,.library-table .q-table__bottom.q-table__bottom--nodata{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.library-table .items-center{text-align:center}.library-grid.virtual-scroll-grid-wrapper{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}body.screen--xs .library-table .q-table__grid-content{justify-content:stretch}body.screen--xs .library-table .q-table__grid-content>div{width:100%}.preview-image{max-height:80vh;max-width:100%;display:block}@keyframes highlight-bg-data-v-3671d32d{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.highlight[data-v-3671d32d]{animation:highlight-bg-data-v-3671d32d 833ms linear;animation-iteration-count:3}.torrent-name[data-v-3671d32d]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-3671d32d]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-3671d32d]{margin-right:56px}.space[data-v-3671d32d]{margin-right:10px}.torrent-info .text[data-v-3671d32d]{position:relative;top:16px}.torrent-info .status-text[data-v-3671d32d]{color:var(--q-color-secondary)}.torrent-loading[data-v-3671d32d]{margin:-6px 8px 0 0;vertical-align:middle}.operations[data-v-3671d32d]{display:flex;flex-flow:row;flex-wrap:wrap;gap:12px}.progress-text[data-v-3671d32d]{font-size:14px;color:#000}.body--dark .progress-text[data-v-3671d32d]{color:#fff}.playable-items[data-v-3671d32d]{word-break:break-all}.progress-background[data-v-3671d32d]{height:100%;position:absolute;left:0;top:0;z-index:-1;opacity:.7}.q-btn-toggle[data-v-3671d32d]{border-radius:4px;overflow:hidden}.ab-peer-hint[data-v-3671d32d]{margin-top:12px}.bottom-status[data-v-3671d32d]{display:flex;flex-wrap:wrap}.bottom-status>span[data-v-3671d32d]{display:block;word-break:keep-all;white-space:nowrap;margin-right:10px}.save-to-local-btn[data-v-3671d32d]{margin-right:-12px}.list-before[data-v-0dd405a4]{margin:72px 0}.torrent-list-large .list-before[data-v-0dd405a4]{margin:110px 0}.list-item{width:100%}@keyframes highlight-bg{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.list-item-tr.highlight{animation:highlight-bg 833ms linear;animation-iteration-count:3}.list-item-tr{cursor:normal;-webkit-user-select:none;user-select:none}.w80{width:80px}.w120{width:120px}.w150{width:150px}.badge{font-size:14px}.task-name{overflow:hidden;text-overflow:ellipsis}.name-icon{font-size:24px;position:absolute;top:10px}.name-info{padding-left:32px;overflow:hidden;text-overflow:ellipsis}.no-select{-webkit-user-select:none;user-select:none}.option-btns .q-btn{box-shadow:none}.download-speed{overflow:hidden;text-overflow:ellipsis}.download-speed button{position:absolute;right:0}.list{border-radius:0;max-width:100vw;overflow:hidden}.list,.torrent-list-large .list{max-height:calc(100vh - 150px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.torrent-list-large .list.electron,.torrent-list-large .list.xs{max-height:calc(100vh - 180px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.list thead tr th{position:-webkit-sticky;position:sticky;top:0;z-index:1}.thead-draggable{float:right;cursor:col-resize;font-size:20px;font-weight:300;color:#dcdcdc;line-height:18px}.body--dark .thead-draggable{color:#444}.list .q-table__bottom--nodata{border-top-width:0!important}.list th.thead{--table-head-height:28px;--table-thume-padding:8px;--table-thumb-size:calc(var(--table-thume-padding)*2 + 1px);padding:0 0;background-color:var(--q-color-page)}.list th.thead>span{height:var(--table-head-height);line-height:var(--table-head-height);vertical-align:middle}.list th.thead>.text-ellipsis{overflow:hidden;text-overflow:ellipsis;display:inline-block;width:calc(100% - var(--table-thumb-size))}.list th.thead>.thead-draggable{display:flex;align-items:stretch;padding:0 var(--table-thume-padding)}.list th.thead>.thead-draggable:before{content:"";border-right:1px solid currentColor}.address[data-v-4676c095],.client[data-v-4676c095]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.country-flag[data-v-4676c095]{font-family:Noto Color Emoji;font-size:20px;line-height:0;vertical-align:middle}td.status[data-v-4676c095]{padding:0}.q-card[data-v-560c4343]{height:560px!important;width:700px!important;min-width:50vw;max-width:80vw;overflow-y:scroll}.detail-dialog.capacitor[data-v-560c4343]{height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;min-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.no-select[data-v-560c4343]{-webkit-user-select:none;user-select:none}.magnet[data-v-560c4343]{overflow:scroll}.q-item.text[data-v-560c4343]{line-height:32px}.file-tree[data-v-560c4343]{word-break:keep-all}.file-tree .text[data-v-560c4343]{text-overflow:ellipsis}.file-progress[data-v-560c4343]{width:60px;flex-shrink:0}.file-name[data-v-560c4343]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.peer-table[data-v-560c4343],.tracker-table[data-v-560c4343]{background:transparent}.peers .ip[data-v-560c4343]{width:180px;max-width:180px}.subtitleList-table .url[data-v-560c4343]{max-width:300px}.peers .client[data-v-560c4343]{width:168px;max-width:168px}.tracker-table .url[data-v-560c4343]{max-width:280px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracker-table .status[data-v-560c4343]{max-width:160px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th.text-right[data-v-560c4343]{padding-left:0}.no-path[data-v-560c4343]{color:grey;pointer-events:none}.container[data-v-540e1290]{max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-x:hidden}.sticky-bar[data-v-540e1290]{z-index:1}.sticky-bar .sticky-bar-toolbar[data-v-540e1290]{flex-wrap:wrap;flex-direction:row}.sticky-bar .sticky-bar-toolbar>[data-v-540e1290]{margin:4px}.right-buttons[data-v-540e1290]{display:flex;flex-grow:1}.torrent-list[data-v-540e1290]{width:100%;flex-basis:100%}.body--dark .sticky-bar[data-v-540e1290]{border-bottom-color:hsla(0,0%,88.2%,0.28)}.body--light .sticky-bar[data-v-540e1290]{border-bottom-color:rgba(0,0,0,0.12)}.sticky-bar-large[data-v-540e1290]{height:104px}.body--dark .sticky-bar[data-v-540e1290]{background:rgba(18,18,18,0.5019607843137255)}.configuration-variable[data-v-540e1290]{display:flex;justify-content:center}.download-speed[data-v-540e1290]{flex-shrink:0;width:90px;display:inline-block;text-align:right;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}.action-container[data-v-540e1290]{position:absolute}.magnet-input textarea{white-space:nowrap}.torrent-name[data-v-71beeddd]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-71beeddd]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-71beeddd]{margin-right:56px}.task-container[data-v-71beeddd]{padding:32px 48px}.no-task[data-v-71beeddd]{text-align:center;max-width:480px;border:1px solid #dcdcdc;border-radius:8px;margin:16px auto;padding:8px}.add-hints[data-v-71beeddd]{font-size:18px}.url-input[data-v-71beeddd]{width:60vw;min-width:320px;max-width:480px}@media (max-width:600px){.task-container[data-v-71beeddd]{padding:32px 24px}}.file-selectors[data-v-a418da6e]{display:flex;flex:auto;justify-content:flex-end;padding-top:8px}.global-recommend-page[data-v-67462de2]{position:fixed;left:0;top:0;width:100vw;height:100vh;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:48px;z-index:999}:root{--sat:env(safe-area-inset-top);--sar:env(safe-area-inset-right);--sab:env(safe-area-inset-bottom);--sal:env(safe-area-inset-left)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom);margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top);margin-left:constant(safe-area-inset-left);margin-left:env(safe-area-inset-left);margin-right:constant(safe-area-inset-right);margin-right:env(safe-area-inset-right)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important}.main-area{height:100vh}.q-dialog-plugin hr{display:none}.q-dialog-plugin .q-card__section{padding-bottom:4px}.q-dialog-plugin .q-card__section.q-dialog-plugin__form{padding-top:0;padding-bottom:0}.doc-link{color:#00b4ff;font-weight:500;text-decoration:none;outline:0;border-bottom:1px dotted currentColor;transition:opacity 0.2s;white-space:nowrap}.q-btn--fab .q-btn__content span{margin-left:8px;margin-bottom:-0.2em}.alphabiz-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.alphabiz-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.alphabiz-select-filter-search-bar{box-sizing:border-box;padding:8px}.option-flags{font-family:Noto Color Emoji;font-size:1.22rem;color:#000}.virtual-scroll-grid-wrapper{--virtual-scroll-grid-gutter:16px;--virtual-scroll-grid-item-width:0px;--virtual-scroll-grid-item-height:0px;--virtual-scroll-grid-padding:calc(var(--virtual-scroll-grid-gutter)/2);overflow-x:hidden!important;overflow-y:scroll!important;box-sizing:border-box!important}.virtual-scroll-grid__after,.virtual-scroll-grid__before{padding-left:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2);padding-right:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2 - 1px);overflow:visible!important}.virtual-scroll-grid{--virtual-scroll-offset-top:0px;--virtual-scroll-offset-bottom:0px;padding-top:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-top))!important;padding-bottom:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-bottom))!important;padding-left:var(--virtual-scroll-grid-padding)!important;padding-right:calc(var(--virtual-scroll-grid-padding) - 1px)!important;display:flex;flex-wrap:wrap;box-sizing:border-box!important}.virtual-scroll-grid>*{margin:calc(var(--virtual-scroll-grid-gutter)/2)!important;overflow:hidden;width:var(--virtual-scroll-grid-item-width)!important}.virtual-scroll-grid__dev{z-index:10000;overflow:hidden;padding:16px;background-color:#fff;box-shadow:0 0 8px rgba(0,0,0,0.5);border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-option-group>div>.q-radio{display:flex!important}.dialog-option-group>div>.q-radio>.q-radio__label{flex-grow:1;overflow:hidden}.dialog-prompt-tel>.q-field__inner>.q-field__control-container{width:0!important}.dialog-prompt-tel>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0!important}@font-face{font-family:Noto Color Emoji;src:url(/css/NotoColorEmoji.ttf)}.video-js-player__controller-menu .controller-popup,.video-js-player__controller-menu .controller\:panel,.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top,.video-js-player__controller .controller\:panel{-webkit-backdrop-filter:blur(28px) brightness(0.9);backdrop-filter:blur(28px) brightness(0.9);background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important}.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top{padding:4px 4px}.video-js-player__controller .is-audio-hint{opacity:0.3}.video-js-player__controller .is-audio-hint img{max-width:256px}.video-js-player__controller .is-audio-hint p{color:#ddd}.video-js-player__controller-menu .controller-popup{box-shadow:0 0 0 0.5px hsla(0,0%,100%,0.2),0 0 16px rgba(0,0,0,0.8);border-radius:16px;padding:4px 4px}div:not(.q-item__section)>.video-js-player__subtitle{margin-top:0.625em;margin-bottom:0.625em}.video-js-player__subtitle{font-style:var(--subtitle-style,normal);font-weight:var(--subtitle-weight,normal);font-size:var(--subtitle-size,1.25rem);-webkit-backdrop-filter:blur(28px) brightness(0.9)!important;backdrop-filter:blur(28px) brightness(0.9)!important;background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important;padding:0.2em 0.625em;border-radius:0.625em}.video-js-player__subtitle.fullscreen-subtitle{font-size:max(18px,min(2.8vh,2vw))}.controller\:panel[data-v-18dfdf92]{box-shadow:inset -0.5px 0.5px 0.5px hsla(0,0%,100%,0.2)}.video-js-player__buffer-progress>div[data-v-4e25daec]{transition:left 300ms ease-in-out,width 300ms ease-in-out;background-color:hsla(0,0%,100%,0.4);-webkit-backdrop-filter:saturate(1.2) brightness(1)!important;backdrop-filter:saturate(1.2) brightness(1)!important}.video-js-player__progress-bar{--progress-size:4px;--slider-size:4px;--slider-offset:0px}.video-js-player__progress-bar .video-js-player__buffer-progress{height:4px}.video-js-player__progress-bar .video-js-player__progress-bar-buffered{pointer-events:none;z-index:1}.video-js-player__progress-bar .video-js-player__progress-bar-slider{z-index:2;top:-6px}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__track-container{cursor:pointer!important}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__thumb{z-index:4!important}.video-js-player__page{-webkit-backdrop-filter:blur(28px) brightness(0.6);backdrop-filter:blur(28px) brightness(0.6);background-color:rgba(50,50,50,0.8);color:hsla(0,0%,100%,0.8)!important;overflow:hidden;max-width:100%!important;max-height:100%!important;display:flex;flex-direction:column;align-items:stretch}.video-js-player__page>main{height:auto!important;min-height:0!important;flex-grow:1;overflow-x:hidden;overflow-y:auto}.video-js-player__page>main>div{margin:0 auto;max-width:1280px}.video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb,.video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.3)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.q-item__section>.video-js-player__subtitle{box-shadow:0 0 1px hsla(0,0%,100%,0.3)}.video-js-player__controller .q-btn-group.lorem-ipsum{padding:2px}.video-js-player__controller .q-btn-group.lorem-ipsum .q-btn>.q-btn__wrapper{padding:0 16px;height:1.5em;min-height:1.5em}.video-js-player__controller div.column>.q-btn-group{gap:4px;padding:4px}.video-js-player__controller div.column>.q-btn-group .q-btn{flex-grow:1;border-radius:9999px}.video-js-player__controller div.column>.q-btn-group .q-btn>.q-btn__wrapper{padding:0 16px;height:2em;min-height:2em}.video-js-player__setting-list{border-radius:12px}.video-js-player__setting-list>.q-item{min-height:64px;padding:16px 16px!important}.video-js-player__setting-list>.q-item:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0;border-bottom-right-radius:0}.video-js-player__setting-list>.q-item:last-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player__volume-slider{border-radius:8px!important;overflow:hidden;background-color:hsla(0,0%,100%,0.1);box-shadow:inset 0 0 0 0.5px hsla(0,0%,100%,0.1)!important}.video-js-player__volume-slider>.q-slider__track-container{padding:0}.video-js-player__volume-slider>.q-slider__track-container .q-slider__selection{border-radius:0!important;background-color:hsla(0,0%,100%,0.2)}.controller-popup__transition{transform-origin:50% 100%!important}.controller-popup__transition.q-transition--scale-enter-from,.controller-popup__transition.q-transition--scale-leave-to{transform:scale(0)!important}.controller-popup__transition.q-transition--scale-enter-to,.controller-popup__transition.q-transition--scale-leave-from{transform:scale(1)!important}.controller-popup__transition.q-transition--scale-enter-active,.controller-popup__transition.q-transition--scale-leave-active{transition-property:transform;transition-duration:300ms!important}.controller-popup__transition.q-transition--scale-leave-active{opacity:1!important;transition-timing-function:cubic-bezier(0.65,-0.25,0.37,0.84)}.controller-popup__transition.q-transition--scale-enter-active{opacity:1!important;transition-timing-function:cubic-bezier(0.52,0.51,0.12,1.2)}.video-js-player__controller-btn-toggle{background-color:hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn{border-top:0.25px solid hsla(0,0%,100%,0.1);border-bottom:0.25px solid hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn:first-child{border-top:none}.video-js-player__controller-btn-toggle>.q-btn:last-child{border-bottom:none}.video-js-player__controller-btn-toggle>.q-btn.bg-active{background-color:hsla(0,0%,100%,0.15)}.video-js-player__controller-btn-toggle>.q-btn:first-child{padding-top:4px;border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.video-js-player__controller-btn-toggle>.q-btn:last-child{padding-bottom:4px;border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.controller-popup>.video-js-player__controller-list{border-radius:12px!important;background-color:hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item{border-top:0.125px solid hsla(0,0%,100%,0.1);border-bottom:0.125px solid hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item:first-child{border-top:none}.controller-popup>.video-js-player__controller-list>.q-item:last-child{border-bottom:none}.controller-popup>.video-js-player__controller-list>.q-item{padding:4px 8px}.controller-popup>.video-js-player__controller-list>.q-item>.q-focus-helper{overflow:hidden}.controller-popup>.video-js-player__controller-list>.q-item:first-child,.controller-popup>.video-js-player__controller-list>.q-item:first-child>.q-focus-helper{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.controller-popup>.video-js-player__controller-list>.q-item:last-child,.controller-popup>.video-js-player__controller-list>.q-item:last-child>.q-focus-helper{border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player{min-width:120px;min-height:120px;background:#000}.video-js-player,.video-js-player>.video-js{display:flex;flex-direction:column;justify-content:center;align-items:center}.video-js-player>.video-js{outline:none!important;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:scale-down}.video-js-player>.video-js>video{width:100%;height:auto;max-width:100%;max-height:100%}.video-js-player>.video-js>button,.video-js-player>.video-js>div:not(.video-js-player__controller){display:none!important}.video-js-player>.video-js>.video-js-player__controller{display:flex}.primary[data-v-6fc70cc6]{background-color:#1976d2;color:#fff}.body--dark .grey[data-v-6fc70cc6]{background-color:#424242}.grey[data-v-6fc70cc6]{background-color:#eee}.amplify-card-actions,.amplify-card-description,.amplify-card-form{width:100%;overflow:hidden;word-break:break-word}.amplify-card-form{overflow-x:hidden;overflow-y:hidden}.background-blur .q-dialog__backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.background-mask .q-dialog__backdrop{background-color:hsla(0,0%,49.8%,0.8);-webkit-backdrop-filter:brightness(0.2) contrast(0.8) saturate(0);backdrop-filter:brightness(0.2) contrast(0.8) saturate(0)}.amplify-select{margin-bottom:20px}.amplify-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.amplify-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.amplify-select-filter-search-bar{box-sizing:border-box;padding:8px}.amplify-input-wrapper{display:flex;flex-direction:row}.amplify-input-wrapper>.amplify-input-select{margin-right:4px;flex-shrink:0}.amplify-input-wrapper>.amplify-input-select.focus{width:100%}.amplify-input-wrapper>.amplify-input{flex-shrink:1;flex-grow:1}.amplify-tel-input>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0}.amplify-input>.q-field__inner>.q-field__bottom{padding-top:0;height:24px;align-items:center}.amplify-input>.q-field__inner>.q-field__control>.q-field__control-container>input{margin-bottom:-2px}.amplify-input .amplify-input-phone-number-prefix{margin-left:6px;margin-bottom:-2px;padding:6px 0;font-size:14px;font-weight:400;letter-spacing:0.00937em;line-height:28px!important}.amplify-input .amplify-input-phone-number-prefix:first-child{margin-left:0}input[type=date]{margin:0!important;padding:0!important}input[type=date]::-webkit-datetime-edit{margin-top:2px;margin-left:0}input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-year-field{padding:0;margin:2px 10px 0 10px}input[type=date]::-webkit-inner-spin-button,input[type=number]::-webkit-inner-spin-button{display:none}.underscore[data-v-6e4f640d]:hover,.underscore[data-v-8707a8ce]:hover{text-decoration:underline}.select-none[data-v-8707a8ce]{-webkit-user-select:none;user-select:none}.underscore[data-v-654a46b2]:hover{text-decoration:underline}.panel[data-v-60f74c22]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center}.panel>[data-v-60f74c22]{margin:4px}.dev-info-action[data-v-39f109b1]{width:80px;max-width:80px}.logs .channels{padding:4px;border:1px solid #dcdcdc;word-break:break-all;max-height:400px;overflow:auto}.preload-task[data-v-6f92a449]{padding:4px;border-radius:4px;border:1px solid #dcdcdc;display:inline-block;width:calc(50% - 32px)}.task-name[data-v-6f92a449]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-logs[data-v-a7504d8e]{border:1px solid grey;border-radius:4px;margin-top:16px;padding:8px}.log[data-v-a7504d8e]{margin-top:8px;word-wrap:break-word;white-space:pre-wrap}.log-type[data-v-a7504d8e]{background:#dcdcdc;padding:4px;margin-right:8px;border-radius:4px}.development-container{height:calc(100vh - 50px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container.large{height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container>.q-card{display:flex;flex-direction:column;flex-wrap:nowrap;height:100%;overflow:hidden}.development-container .q-panel>div{height:auto}.electron .development-dialog{padding-top:30px}.development-dialog{margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top)}.signed-out-actions{position:fixed;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:7000}.body--light .ab-backdrop.blur{background-color:rgba(0,0,0,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--light .ab-backdrop.shadow{background-color:rgba(0,0,0,0.4)}.body--dark .ab-backdrop.blur{background-color:rgba(51,51,51,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--dark .ab-backdrop.shadow{background-color:rgba(51,51,51,0.4)}.ab-backdrop{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:6000}.dialog-backdrop-disabled.body--light .q-dialog .q-dialog__backdrop{background-color:rgba(0,0,0,0.1)}.dialog-backdrop-disabled.body--dark .q-dialog .q-dialog__backdrop{background-color:rgba(77,77,77,0.5)}.ab-modal-page .fade-enter-active,.ab-modal-page .fade-leave-active{transition:opacity var(--transition-duration) ease-in-out}.ab-modal-page .fade-enter,.ab-modal-page .fade-leave-to{opacity:0}.ab-modal-page .slide-right-enter-active,.ab-modal-page .slide-right-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .slide-right-enter,.ab-modal-page .slide-right-leave-to{opacity:0.2;transform:translateX(100%)}.ab-modal-page .scale-enter-active,.ab-modal-page .scale-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .scale-enter,.ab-modal-page .scale-leave-to{opacity:0;transform:scale(0)}.ab-modal-page{--transition-duration:300ms;--ab-sign-in-page-offset:0}.electron .ab-modal-page{--ab-modal-page-offset:30px}.ab-modal-page{position:absolute;top:0;left:0}.ab-modal-page .container{pointer-events:none;position:fixed;top:var(--ab-modal-page-offset);left:0;width:100vw;height:calc(100vh - var(--ab-modal-page-offset))}.ab-modal-page .container>*{pointer-events:visible}body.screen--xs .ab-modal-page .container{overflow:auto;width:100vw!important;height:100vh!important}body.screen--xs .ab-modal-page .container .q-card.mobile-fullscreen{min-width:100vw!important;min-height:100vh!important;position:absolute;top:0;left:0;border-radius:0!important}.ab-task-page{max-width:100vw!important;max-height:100vh!important}.ab-task-page,.ab-task-page .q-layout.q-layout--containerized,.ab-task-page .q-layout.q-layout--containerized>.q-page-container{width:100vw!important;height:100vh!important}.electron .ab-task-page .q-header,body.electron .development-dialog{padding-top:30px}.development-dialog{position:fixed;top:0;left:0;background-color:var(--q-color-page)!important;width:100vw;height:100vh!important;min-width:unset!important;max-width:unset!important;min-height:unset!important;max-height:100vh!important;z-index:7000;overflow:hidden;display:flex;flex-direction:column} \ No newline at end of file +@charset "UTF-8";html{--ion-safe-area-top:env(safe-area-inset-top);--ion-safe-area-bottom:env(safe-area-inset-bottom);--ion-safe-area-left:env(safe-area-inset-left);--ion-safe-area-right:env(safe-area-inset-right);background-color:var(--q-color-page)}body{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left);padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}body::-webkit-scrollbar,body ::-webkit-scrollbar{width:8px;height:8px}body::-webkit-scrollbar-corner,body ::-webkit-scrollbar-corner,body::-webkit-scrollbar-track,body ::-webkit-scrollbar-track{background-color:initial}body.electron{--appbar-height:30px}.body--light::-webkit-scrollbar-thumb,.body--light ::-webkit-scrollbar-thumb{background-color:#e0e0e0}.body--light::-webkit-scrollbar-thumb:hover,.body--light ::-webkit-scrollbar-thumb:hover{background-color:#d0d0d0}.body--dark::-webkit-scrollbar-thumb,.body--dark ::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.3137254901960784)}.body--dark::-webkit-scrollbar-thumb:hover,.body--dark ::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.4392156862745098)}#q-app,body,html{height:100%}textarea{cursor:auto}.grecaptcha-badge,.grecaptcha-badge+iframe{display:none}.q-icon.fab{font-size:1.4em}.q-textarea>.q-field__inner>.q-field__control{padding-right:2px;padding-left:2px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container .q-field__label{margin-left:10px}.q-textarea>.q-field__inner>.q-field__control .q-field__control-container textarea{padding:1px 10px 10px}@media print{@page{size:A4;margin:1in}body{width:768pt;aspect-ratio:9/16}body *{display:none}body .printable{display:block;font-size:16pt}}.q-select__dialog>.q-field>.q-field__inner>.q-field__control{align-items:center;background-color:var(--q-color-page)!important;min-height:56px}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:before{background-color:initial;border-bottom:1px solid #7f7f7f}.q-select__dialog>.q-field>.q-field__inner>.q-field__control:after{background-color:var(--q-color-primary);height:1px}body.screen--xs.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{top:0!important;padding:0!important}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;top:0!important;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}@media screen and (max-height:600px) and (orientation:landscape){body.electron .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{padding-top:30px!important}body .q-dialog.fullscreen-dialog>.q-dialog__inner,body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{position:absolute;bottom:0!important;border-radius:0!important;width:100vw!important;height:var(--viewport-height)!important;max-width:100vw!important;max-height:100vh!important}}.q-drawer-container{position:absolute;top:0;width:100%;height:100vh}.q-drawer{position:relative!important;height:100%}.body--light{--q-color-page:#fcfcfc;--q-color-on-page:#4a4a4a}.body--dark{--q-color-page:#1f1f1f;--q-color-on-page:#c5c5c5}.bg-page,.q-card,.q-drawer,.q-footer,.q-menu,.q-tab-panels,.q-table,.q-table--grid,.q-table__card{background-color:var(--q-color-page)!important}.q-card,.q-drawer,.q-footer,.q-menu,.q-notification.bg-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-table,.q-table--grid,.q-table__card,.text-page{color:var(--q-color-page)!important}.bg-page.q-card,.bg-page .q-card,.bg-page.q-drawer,.bg-page .q-drawer,.bg-page.q-footer,.bg-page .q-footer,.bg-page.q-menu,.bg-page .q-menu,.bg-page.q-notification,.bg-page.q-tab-panels,.bg-page .q-tab-panels,.bg-page.q-table,.bg-page .q-table,.bg-page.q-table--grid,.bg-page .q-table--grid,.bg-page.q-table__card,.bg-page .q-table__card,.bg-page.text-page,.bg-page .text-page,.q-card,.q-card .q-card,.q-card .q-drawer,.q-card .q-footer,.q-card .q-menu,.q-card .q-tab-panels,.q-card .q-table,.q-card .q-table--grid,.q-card .q-table__card,.q-card .text-page,.q-drawer,.q-drawer .q-card,.q-drawer .q-drawer,.q-drawer .q-footer,.q-drawer .q-menu,.q-drawer .q-tab-panels,.q-drawer .q-table,.q-drawer .q-table--grid,.q-drawer .q-table__card,.q-drawer .text-page,.q-footer,.q-footer .q-card,.q-footer .q-drawer,.q-footer .q-footer,.q-footer .q-menu,.q-footer .q-tab-panels,.q-footer .q-table,.q-footer .q-table--grid,.q-footer .q-table__card,.q-footer .text-page,.q-menu,.q-menu .q-card,.q-menu .q-drawer,.q-menu .q-footer,.q-menu .q-menu,.q-menu .q-tab-panels,.q-menu .q-table,.q-menu .q-table--grid,.q-menu .q-table__card,.q-menu .text-page,.q-notification.q-card,.q-notification.q-drawer,.q-notification.q-footer,.q-notification.q-menu,.q-notification.q-tab-panels,.q-notification.q-table,.q-notification.q-table--grid,.q-notification.q-table__card,.q-tab-panels,.q-tab-panels .q-card,.q-tab-panels .q-drawer,.q-tab-panels .q-footer,.q-tab-panels .q-menu,.q-tab-panels .q-tab-panels,.q-tab-panels .q-table,.q-tab-panels .q-table--grid,.q-tab-panels .q-table__card,.q-tab-panels .text-page,.q-table,.q-table--grid,.q-table--grid .q-card,.q-table--grid .q-drawer,.q-table--grid .q-footer,.q-table--grid .q-menu,.q-table--grid .q-tab-panels,.q-table--grid .q-table,.q-table--grid .q-table--grid,.q-table--grid .q-table__card,.q-table--grid .text-page,.q-table .q-card,.q-table .q-drawer,.q-table .q-footer,.q-table .q-menu,.q-table .q-tab-panels,.q-table .q-table,.q-table .q-table--grid,.q-table .q-table__card,.q-table .text-page,.q-table__card,.q-table__card .q-card,.q-table__card .q-drawer,.q-table__card .q-footer,.q-table__card .q-menu,.q-table__card .q-tab-panels,.q-table__card .q-table,.q-table__card .q-table--grid,.q-table__card .q-table__card,.q-table__card .text-page{color:var(--q-color-on-page)!important}.body--light{--q-color-general:#eee;--q-color-on-general:#3c3c3c}.body--dark{--q-color-general:#424242;--q-color-on-general:#e6e6e6}.bg-general{background-color:var(--q-color-general)!important}.bg-general.q-notification,.bg-general.text-general,.bg-general .text-general,.q-notification.bg-general,.text-general{color:var(--q-color-on-general)!important}.body--light{--q-color-positive:#388c5f;--q-color-on-positive:#fff}.body--dark{--q-color-positive:#066b46;--q-color-on-positive:#f6faf8}.bg-positive{background-color:var(--q-color-positive)!important}.q-notification.bg-positive,.text-positive{color:var(--q-color-positive)!important}.bg-positive.q-notification,.bg-positive.text-positive,.bg-positive .text-positive{color:var(--q-color-on-positive)!important}.body--light{--q-color-negative:#b03535;--q-color-on-negative:#fff}.body--dark{--q-color-negative:#b30f0f;--q-color-on-negative:#fff;background-color:var(--q-color-page)!important}.bg-negative{background-color:var(--q-color-negative)!important}.q-notification.bg-negative,.text-negative{color:var(--q-color-negative)!important}.bg-negative.q-notification,.bg-negative.text-negative,.bg-negative .text-negative{color:var(--q-color-on-negative)!important}.q-item--active,.q-item.q-router-link--active{color:var(--q-color-txt-primary)!important}.body--light .q-bar{background-color:initial;backdrop-filter:brightness(0.7);-webkit-backdrop-filter:brightness(0.7)}.body--dark .q-bar{background-color:initial;backdrop-filter:brightness(0.8);-webkit-backdrop-filter:brightness(0.8)}.body--dark{--q-color-dark:var(--q-color-page)}.q-menu{z-index:7000!important}.feedback-main{width:480px;min-height:400px}.details-input textarea{resize:none!important}.diagnotic-main[data-v-8fee9c62]{width:80vw;max-width:600px;-webkit-user-select:none;user-select:none}.text-normal[data-v-8fee9c62]{color:#2872f6}.result-name[data-v-8fee9c62]{display:inline-block;width:160px}.markdown-dialog.fullscreen-dialog>.q-dialog__inner{padding:0!important;top:0!important}.markdown-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{top:0!important;border-radius:0!important;width:100vw!important;height:100vh!important;max-width:100vw!important;max-height:100vh!important}.markdown-content *{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:1rem;line-height:1.5}.markdown-content h1{font-size:2rem;line-height:2rem}.markdown-content h2{font-size:1.8rem;line-height:1.8rem}.markdown-content h3{font-size:1.6rem;line-height:1.6rem}.markdown-content h4{font-size:1.4rem;line-height:1.4rem}.markdown-content h5{font-size:1.2rem;line-height:1.2rem}.markdown-content h6{font-size:1rem;line-height:1rem}.body--dark .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(2.2) brightness(0.6)}.body--light .alphabiz-logo[data-v-e4afc3b8]{filter:saturate(1.6) brightness(0.9)}.about-content[data-v-e4afc3b8]{margin:0 auto;font-size:14px;line-height:1.8;font-family:Amazon Ember,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,"sans-serif"}.about-content a[data-v-e4afc3b8]{color:var(--q-color-txt-primary);text-decoration:none}.about-content a[data-v-e4afc3b8]:active,.about-content a[data-v-e4afc3b8]:hover{text-decoration:underline;cursor:pointer}body.electron .application-bar{display:flex}body.electron .fullscreen>.q-table__top{padding-top:40px}.app-draggable{-webkit-app-region:drag}.app-no-draggable{-webkit-app-region:no-drag}.application-bar-icon{filter:brightness(1.2) saturate(1.2)}.application-bar{display:none;position:fixed;z-index:7000;width:100%;height:30px;color:#fff;flex-direction:row;align-items:center}.window-control-button{width:48px;height:30px;border-radius:0;transition:none}.window-close-button{background-color:initial}.window-close-button:hover{background-color:#c62828}.items-center[data-v-1f47903d]{text-align:center}.login-container[data-v-6a9c1d57]{width:480px;max-width:100%;margin-left:auto;margin-right:auto}.library-recommend[data-v-0d732dc4]{overflow:auto;height:calc(100vh - 100px - env(safe-area-inset-bottom) - env(safe-area-inset-top));padding-bottom:24px}.recommend-title.full div[data-v-0d732dc4]{color:var(--q-color-on-primary);font-weight:700;text-shadow:2px 0 2px var(--q-color-primary),0 2px 2px var(--q-color-primary),-2px 0 2px var(--q-color-primary),0 -2px 2px var(--q-color-primary),1px 1px 2px var(--q-color-primary),-1px 1px 2px var(--q-color-primary),1px -1px 2px var(--q-color-primary),-1px -1px 2px var(--q-color-primary)}.recommends[data-v-0d732dc4]{padding-bottom:160px}.recommends>i[data-v-0d732dc4]{width:290px;height:0;margin:0 8px}.channel-description[data-v-0d732dc4]{max-width:256px;display:-webkit-box;overflow:hidden;-webkit-line-clamp:4;-webkit-box-orient:vertical;word-break:break-all;text-overflow:ellipsis}.img-container[data-v-0d732dc4]{aspect-ratio:2/3;background-color:var(--q-color-general)}.img-container img[data-v-0d732dc4]{width:100%;height:100%;display:block;object-fit:cover}.follow-selected[data-v-0d732dc4]{right:12px;bottom:48px}.recommend-actions[data-v-0d732dc4]{width:100%;max-width:100%;padding-top:24px;display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;bottom:calc(env(safe-area-inset-bottom) + 16px)}.action-btn[data-v-0d732dc4]{font-size:13px}@keyframes focus-data-v-0d732dc4{0%,31%,to{transform:scale(2);opacity:0}15%,40%{opacity:0.7}30%,70%{transform:scale(1);opacity:0}}.action-btn.selected[data-v-0d732dc4]:before{content:"";position:absolute;z-index:-1;top:0;left:0;bottom:0;right:0;border:1px solid var(--q-color-primary);border-radius:20px;transform-origin:center;opacity:0;animation:focus-data-v-0d732dc4 1.8s infinite}.peer-dialog-card[data-v-54be07de]{width:80vw;max-width:960px!important;max-height:calc(100vh - 100px)}.list-title[data-v-54be07de]{font-size:18px;margin-left:12px;margin-bottom:4px}.scroll-area[data-v-54be07de]{max-height:calc(100vh - 200px);overflow:auto}.library-container[data-v-203f2a72]{display:flex;flex-direction:column;height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top));width:100%;max-width:100%}.library-container.larger[data-v-203f2a72]{height:calc(100vh - 50px - env(safe-area-inset-bottom, -30px) - env(safe-area-inset-top))}.library-header[data-v-203f2a72]{border-bottom:1px solid #dcdcdc}.body--dark .library-header[data-v-203f2a72]{border-bottom:1px solid #444}.library-view[data-v-203f2a72]{flex:1 1 auto;overflow:hidden}.fade-enter-active[data-v-203f2a72],.fade-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.fade-enter[data-v-203f2a72],.fade-leave-to[data-v-203f2a72]{opacity:0}.slide-enter-active[data-v-203f2a72],.slide-leave-active[data-v-203f2a72]{transition:all 0.2s ease}.slide-leave-to[data-v-203f2a72]{pointer-events:none;opacity:0;transform:translateX(-20%)}.slide-enter[data-v-203f2a72]{opacity:0;transform:translateX(20%)}@media (max-width:599px){.connection-status[data-v-203f2a72],.from-network-hint[data-v-203f2a72]{display:inline-block}}.header-crumbs .q-breadcrumbs .flex{flex-wrap:nowrap}.header-crumbs .q-breadcrumbs__el{flex-wrap:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-view{position:relative}.body--dark .follow-btn[data-v-711b4078]{-webkit-backdrop-filter:brightness(1.1);backdrop-filter:brightness(1.1);filter:brightness(1.6)}.follow-btn[data-v-711b4078]{transition:all 100ms ease-in-out;font-weight:400;text-align:center;text-transform:uppercase;min-width:100px;font-size:0.8rem;padding:6px 8px;background:transparent;color:var(--q-color-txt-primary);border:1px solid var(--q-color-txt-primary);border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.follow-btn.hovered[data-v-711b4078]{color:var(--q-color-negative);border:1px solid var(--q-color-negative)}.follow-btn.followable[data-v-711b4078]{background:var(--q-color-primary);border:var(--q-color-primary);color:var(--q-color-on-primary);filter:brightness(1);transition:box-shadow 400ms ease-in-out,filter 100ms ease-in-out;box-shadow:0 0 4px var(--q-color-primary)}.follow-btn.followable.hovered[data-v-711b4078]{filter:brightness(1.15);box-shadow:0 0 16px var(--q-color-primary)}.follow-btn.pending[data-v-711b4078]{filter:saturate(0);cursor:not-allowed}.follow-btn.disableFollow[data-v-711b4078]{cursor:not-allowed}#video-splash[data-v-bcdd35fc]{width:100%;height:100%;background-color:#000;color:#fff;opacity:0.85;display:flex;position:absolute;left:0;top:0;z-index:10;justify-content:center;align-items:center}#video-splash>[data-v-bcdd35fc]{flex-direction:column;flex-basis:auto}.loading[data-v-bcdd35fc]{display:flex;width:100%;justify-content:center;align-items:center}.audio-info-container[data-v-d5366250]{position:absolute;left:0;top:0;display:flex;flex-direction:column-reverse;align-items:center;width:100%;height:50%;-webkit-user-select:none;user-select:none;z-index:3}.audio-info-container p[data-v-d5366250]{color:#fff}.vjs-button:focus{border:none;outline:none}.video-js .vjs-big-play-button{height:calc(2rem + 32px);border:none}.video-js .vjs-big-play-button .vjs-icon-placeholder{display:none}.vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-paused .vjs-big-play-button .vjs-big-play-button,.vjs-paused.vjs-has-started .vjs-big-play-button{display:block;background-color:hsla(0,0%,39.2%,0.3)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:hover,.vjs-paused.vjs-has-started .vjs-big-play-button:hover{background-color:hsla(0,0%,39.2%,0.5)!important}.vjs-paused .vjs-big-play-button .vjs-big-play-button:before,.vjs-paused.vjs-has-started .vjs-big-play-button:before{font-family:FontAwesome;content:"";font-size:2rem;line-height:100%}.vjs-16-9{padding-top:0!important}:focus-visible{outline:none!important}.vjs-progress-control .vjs-slider{text-shadow:none!important;box-shadow:none!important;border-style:none!important;border-color:transparent!important}#video-container{height:calc(100% - env(safe-area-inset-bottom));position:absolute;width:100%}#video-container video{background-color:#000}#video-container .vjs-big-play-button{background-color:hsla(0,0%,58.8%,0.3)}#video-container .vjs-big-play-button:hover{background-color:hsla(0,0%,58.8%,0.5)}.body--dark #video-container video{background-color:#1d1d1d}.body--dark #video-container .vjs-big-play-button{background-color:#424242}.body--dark #video-container .vjs-big-play-button:hover{background-color:#616161}.vjs-subs-caps-button li{text-transform:unset;-webkit-user-select:none;user-select:none}.vjs-subs-caps-button .vjs-menu-content{overflow-x:hidden;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-width:200px;right:0}.vjs-subs-caps-button .vjs-menu-content .vjs-menu-item-text{display:block;word-wrap:break-word}.vjs-control-bar{z-index:1}.vjs-control-bar .vjs-remaining-time{width:55px;-webkit-user-select:none;user-select:none}#download-progress{height:100%;width:100%;background:transparent;z-index:2}.open:before{content:""}.open:before,.subs:before{font-family:FontAwesome;cursor:pointer;font-size:15px}.subs:before{content:""}.advanced:before{font-family:FontAwesome;content:"";cursor:pointer;font-size:15px}.add-sub-btn:after{content:"";border-bottom:1px solid grey;display:block;margin:2px 8px -2px 8px}.q-dialog .dialog-actions[data-v-580a0550]{display:block}.dialog-actions[data-v-580a0550]{display:none}.post-channel-info-container[data-v-580a0550]{transition:transform 400ms ease-in-out!important;position:absolute;top:0;width:100%}.post-channel-info-container.hide[data-v-580a0550]{transform:translateY(-100%)}.rate-tip[data-v-580a0550]{max-width:300px;font-size:12px;margin:4px 0}body.screen--xs .q-virtual-scroll__content>.post-card[data-v-580a0550]{margin:8px!important;width:calc(100vw - 20px)}body.screen--xs .q-dialog__inner>.post-card[data-v-580a0550]{margin:0}.post-card[data-v-580a0550]{width:80vw;max-width:640px;margin:16px auto;transition:padding-top 400ms ease-in-out}.post-desc[data-v-580a0550]{justify-content:space-between;flex-direction:column}.favorite-icon[data-v-580a0550]{vertical-align:text-bottom}.desc-main .desc-title[data-v-580a0550]{font-size:1.125rem}.post-desc .post-buttons[data-v-580a0550]{white-space:nowrap;overflow:hidden}.image-container[data-v-580a0550]{height:360px;aspect-ratio:2/3;-webkit-backdrop-filter:saturate(1.5) brightness(0.8);backdrop-filter:saturate(1.5) brightness(0.8);border-radius:4px}.image-container img[data-v-580a0550]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.action-button[data-v-580a0550]{max-width:calc(50% - 8px)}.action-button-content[data-v-580a0550]{max-width:100%;overflow:hidden;text-overflow:ellipsis}.action-button-content i[data-v-580a0550]{margin-right:4px}.back-to-top[data-v-ec8a50cc]{margin:16px;margin-bottom:calc(16px + env(safe-area-inset-bottom));margin-right:calc(16px + env(safe-area-inset-right))}.animate-enter-active[data-v-ec8a50cc],.animate-leave-active[data-v-ec8a50cc]{transition:0.1s}.animate-enter[data-v-ec8a50cc],.animate-leave-to[data-v-ec8a50cc]{transform:translateY(16px);opacity:0}.back-btn[data-v-ec8a50cc]{position:relative;transition:all 0.2s ease-in-out}.back-btn.hide[data-v-ec8a50cc]{opacity:0;transition-duration:0s;transition-delay:0s}.back-btn:hover .fab-inner-text[data-v-ec8a50cc]{width:88px}.fab-inner-text[data-v-ec8a50cc]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.channel-desc[data-v-37cd58ed]{max-height:80px;word-break:break-all;overflow:auto;text-overflow:ellipsis}.channel-card[data-v-37cd58ed]{width:290px;margin:8px;transition:transform 200ms ease-in-out,box-shadow 200ms ease-in-out!important;box-shadow:0 1px 2px rgba(0,0,0,0.24)!important}.channel-card[data-v-37cd58ed]:hover{transform:translateY(-4px);box-shadow:0 4px 16px 2px rgba(0,0,0,0.12)!important}.image-container[data-v-37cd58ed]{overflow:hidden;-webkit-backdrop-filter:saturate(1.5) brightness(0.3);backdrop-filter:saturate(1.5) brightness(0.3);position:relative;word-break:break-all}.channel-image[data-v-37cd58ed]{width:290px}.show-search-channel[data-v-1c919252]{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));transition:all 0.2s ease}.channel-search-btn[data-v-1c919252]{transition:all 0.2s ease}.channel-search-btn.hide[data-v-1c919252]{opacity:0;transition-duration:0s}.channel-search-btn:hover .fab-inner-text[data-v-1c919252]{width:72px}.fab-inner-text[data-v-1c919252]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.higher[data-v-1c919252]{bottom:calc(88px + env(safe-area-inset-bottom));transition-delay:0s}.search-dialog[data-v-1c919252]{width:80vw;max-width:660px;max-height:calc(100vh - 120px)}.search-results>i[data-v-1c919252]{width:290px;height:0;margin:0 8px}.library-inner-container[data-v-872ead0c]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll[data-v-872ead0c]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.explore-scroll.web[data-v-872ead0c]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.preview-image[data-v-872ead0c]{max-height:80vh;max-width:100%;display:block}.no-data[data-v-872ead0c]{width:75%;max-width:640px;height:400px;background-color:#eee;margin:16px auto;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-872ead0c]{background-color:#333}.no-data-btn[data-v-872ead0c]{margin-left:auto;margin-right:auto;margin-top:160px}.scroll-to-top[data-v-872ead0c]{bottom:48px;right:12px}.transparent[data-v-872ead0c]{opacity:0}.library-following[data-v-0a6f4e44]{--appbar-height:30px;--header-height:109px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.library-following.web[data-v-0a6f4e44]{max-height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.library-following>i[data-v-0a6f4e44]{width:290px;height:0;margin:0 8px}.no-data[data-v-0a6f4e44]{width:290px;height:451px;background-color:#eee;display:inline-block;margin:8px;border-radius:4px;text-align:center;vertical-align:middle}.body--dark .no-data[data-v-0a6f4e44]{background-color:#333}.no-data-btn[data-v-0a6f4e44]{margin-left:auto;margin-right:auto;margin-top:180px}.file-selector-input[data-v-a5acd74c]{display:none}.local-favorite[data-v-c0faef30]{--appbar-height:30px;--header-height:109px;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.local-favorite.web[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:hidden}.favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.web .favorite-scroll[data-v-c0faef30]{height:calc(100vh - var(--header-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.save-or-load[data-v-c0faef30]{right:16px;bottom:16px;transition:0.2s ease;transition-delay:0.2s}.save-or-load.higher[data-v-c0faef30]{bottom:88px;transition-delay:0s}.preview-image[data-v-c0faef30]{max-height:80vh;max-width:100%;display:block}.backup-btn[data-v-c0faef30]{transition:opacity 0.2s ease}.backup-btn.hide[data-v-c0faef30]{opacity:0;transition-duration:0s}.backup-btn:hover .fab-inner-text[data-v-c0faef30]{width:72px}.fab-inner-text[data-v-c0faef30]{transition:all 0.2s ease-in-out;width:0;overflow:hidden}.image-container[data-v-70ea5328]{width:56px;height:100%;border:1px solid #dcdcdc;border-radius:4px;vertical-align:middle}.preview-image[data-v-70ea5328]{width:100%;height:100%;margin:auto;display:block;object-fit:contain}.preview-image.error[data-v-70ea5328],.preview-image.loading[data-v-70ea5328]{display:none}.task-select[data-v-48adc3b5]{max-height:100%;overflow:hidden}.set-title[data-v-48adc3b5]{color:#566b94}.from-magnet[data-v-48adc3b5]{color:var(--q-color-primary);cursor:pointer}.library-excel[data-v-27719a2e]{width:100%;max-width:100%;height:100%;max-height:80vh}.excel-card[data-v-27719a2e]{height:100%}.excel-main[data-v-27719a2e]{height:calc(100% - 40px);overflow:auto}.post-table .text-left[data-v-27719a2e]{white-space:pre-wrap;word-break:break-all}.post-table .text-left.post-title[data-v-27719a2e],.post-table .text-left.post-url[data-v-27719a2e]{white-space:nowrap;word-break:keep-all;width:200px;max-width:200px;overflow:hidden;text-overflow:ellipsis}.post-table .post-img[data-v-27719a2e]{width:120px}.post-list-card[data-v-1e291392]{height:80vh}.post-list-title[data-v-1e291392]{position:-webkit-sticky;position:sticky;z-index:1;top:0;background:var(--q-color-page)}.post-table td[data-v-1e291392]{vertical-align:top}.excel-dialog .q-dialog__inner[data-v-1e291392]{width:90vw;margin-left:auto;margin-right:auto}.import-entry[data-v-1e291392]{max-width:720px;width:80vw}.post-title[data-v-1e291392]{max-width:240px;overflow:hidden;text-overflow:ellipsis}.post-desc[data-v-1e291392]{white-space:pre-wrap;word-break:break-all}.card-container[data-v-7e12c2f2]{max-height:calc(100vh - 80px);display:flex;flex-flow:column;overflow:auto;flex:1}.card-footer[data-v-7e12c2f2],.card-header[data-v-7e12c2f2]{flex:1 0 auto}.card-content[data-v-7e12c2f2]{flex:0 1 100%;overflow-y:auto;flex-flow:column}.from-file-or-task[data-v-7e12c2f2]{min-height:96px}.from-upload-task[data-v-7e12c2f2]{width:240px;white-space:nowrap}.edit-main[data-v-755ddde0]{--appbar-height:30px;--header-height:109px;padding:16px;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.edit-main>[data-v-755ddde0]{width:290px}.edit-main>i[data-v-755ddde0]{width:290px;height:0;margin:0 8px}.add-channel[data-v-755ddde0]{--fab-radius:36px;width:290px;height:425px;min-height:425px;transition:all 200ms ease-in-out}.add-channel[data-v-755ddde0]:hover{transform:scale(0.95)}.add-channel:hover>.add-channel-panel[data-v-755ddde0]{width:calc(var(--fab-radius)*4 + 8px)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]{box-shadow:0 0 8px var(--q-color-primary)}.add-channel:hover>.add-channel-panel:hover>.q-btn[data-v-755ddde0]{transform:scale(0.9)}.add-channel:hover>.add-channel-panel>.q-btn[data-v-755ddde0]:hover{box-shadow:0 0 16px var(--q-color-primary);transform:scale(1.2);filter:brightness(1.1) saturate(1.3)}.add-channel>.add-channel-panel[data-v-755ddde0]{border-radius:var(--fab-radius)}.add-channel>.add-channel-panel>.q-btn[data-v-755ddde0],.add-channel>.add-channel-panel[data-v-755ddde0]{transition:all 0.2s ease-in-out;width:calc(var(--fab-radius)*2);height:calc(var(--fab-radius)*2)}.creator-title:hover>span[data-v-1d2daf92],.header-channel-info[data-v-1d2daf92]:hover{text-decoration:underline}.channel-header[data-v-1d2daf92]{max-width:640px;min-height:160px}body.screen--xs .channel-header[data-v-1d2daf92]{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important}.channel-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all}.header-icon[data-v-1d2daf92]{width:120px;height:120px;border:4px solid #fff;border-radius:50%;overflow:hidden;position:absolute;left:12px;top:12px}.body--dark .header-icon[data-v-1d2daf92]{border-color:#1f1f1f}.header-icon img[data-v-1d2daf92]{aspect-ratio:1/1;width:100%;height:100%;background:#282828}.header-badges[data-v-1d2daf92]{max-height:56px}.header-description[data-v-1d2daf92]{max-height:320px;word-break:break-all;overflow:auto}.header-actions[data-v-1d2daf92]{display:flex;justify-content:center}.header-actions .btn[data-v-1d2daf92]{margin:8px 8px 12px 8px;text-align:center;text-transform:uppercase;width:100px;font-size:14px}.header-actions .share-btn[data-v-1d2daf92]{background:transparent;color:var(--q-color-primary);border:2px solid var(--q-color-primary);padding:2px 4px;border-radius:32px;-webkit-user-select:none;user-select:none;cursor:pointer}.header-actions .share-btn[data-v-1d2daf92]:hover{color:rgba(209,153,75,0.8666666666666667);border-color:rgba(209,153,75,0.8666666666666667)}.body--dark .header-actions .btn[data-v-1d2daf92]{background:#282828;color:rgba(209,153,75,0.6666666666666666)}.follower-title[data-v-1d2daf92]{overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}#channel-preview-hint[data-v-fb451ef2]{background:grey!important;color:#fff!important;max-width:640px;margin-left:auto;margin-right:auto;margin-top:24px;margin-bottom:24px}.channel-info[data-v-fb451ef2]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto;margin-top:16px}.channel-info-header-space[data-v-fb451ef2]{height:48px;background-color:rgba(0,0,0,0.03137254901960784);margin:-8px -16px -30px;border-radius:4px 4px 0 0}.body--dark .channel-info-header-space[data-v-fb451ef2]{background-color:hsla(0,0%,100%,0.03137254901960784)}.channel-main-info[data-v-fb451ef2]{display:block;margin-left:60px}.channel-icon[data-v-fb451ef2]{margin-top:-3px;display:inline-block}.channel-main-info .channel-title .title-text[data-v-fb451ef2]{font-size:18px;vertical-align:sub;flex-grow:1}.block-hint[data-v-fb451ef2],.hidden-hint[data-v-fb451ef2]{flex-shrink:0}.channel-main-info .channel-title .follower[data-v-fb451ef2]{margin-top:-4px}div.channel-title[data-v-fb451ef2]{display:flex;height:24px}span.channel-title[data-v-fb451ef2]{display:inline-block;max-width:calc(100% - 130px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;line-height:20px}span.channel-title-btns[data-v-fb451ef2]{flex-shrink:0;margin-top:-4px}.channel-main-info .creator[data-v-fb451ef2]{margin-top:12px;height:24px;display:inline-block}.channel-main-info .creator span[data-v-fb451ef2]{vertical-align:bottom}.preview-image[data-v-fb451ef2]{max-height:80vh;max-width:100%;display:block}.follow-btn[data-v-fb451ef2],.share-btn[data-v-fb451ef2]{margin-top:-2px}.creator-flex-layout>i[data-v-5975beaa]{width:290px;height:0;margin:0 8px}.library-creator[data-v-5975beaa]{height:calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.creator-section[data-v-5975beaa]{position:relative}.creator-avatar[data-v-5975beaa]{transform:translateY(-50%);outline:4px solid var(--q-color-page)}.creator-info[data-v-5975beaa]{width:80vw;max-width:640px;margin-left:auto;margin-right:auto}.creator-title[data-v-5975beaa]{font-size:22px;background:rgba(0,0,0,0.03137254901960784);padding:12px 12px 12px 108px}.body--dark .creator-title[data-v-5975beaa]{background:#282828}.creator-avatar-container[data-v-5975beaa]{position:absolute;left:12px;top:12px}.body--dark .creator-info-header-space[data-v-5975beaa]{background-color:hsla(0,0%,100%,0.03137254901960784)}.creator-description[data-v-5975beaa]{word-break:break-all;white-space:pre-wrap;max-height:320px}.avatar[data-v-5975beaa]{object-fit:contain}.creator-avatar[data-v-5975beaa]{max-width:100%;border-radius:50%;border:1px solid #dcdcdc;aspect-ratio:1/1;background:#282828}.take-down[data-v-888fffa4]{padding:12px;max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow:auto}.voted-count.self-voted[data-v-888fffa4]{color:var(--q-color-primary)}.takedown-row[data-v-888fffa4]{vertical-align:top}.takedown-row.add[data-v-888fffa4]{vertical-align:middle}.takedown-id[data-v-888fffa4]{width:240px;max-width:240px;overflow:hidden;text-overflow:ellipsis}.takedown-reason[data-v-888fffa4]{width:180px}.takedown-admins div[data-v-888fffa4]{max-height:72px;width:180px;overflow:auto}.takedown-admins div div[data-v-888fffa4]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.electron .library-index-scroll,.electron .library-inner-container{--appbar-height:30px}.library-index-scroll,.library-inner-container{--appbar-height:0px;--header-height:109px;padding:0!important;height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}.library-table .q-table__grid-content{height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));max-height:calc(100vh - var(--header-height) - var(--appbar-height) - 51px - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-y:scroll;align-items:center;justify-content:center}.library-table .q-table__grid-content>div{flex-shrink:1}.library-table .q-table__middle{display:none}.library-table .q-table__bottom{padding:0!important}.library-table .library-table__loading,.library-table .q-table__bottom.q-table__bottom--nodata{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.library-table .items-center{text-align:center}.library-grid.virtual-scroll-grid-wrapper{height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - var(--header-height) - var(--appbar-height) - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important}body.screen--xs .library-table .q-table__grid-content{justify-content:stretch}body.screen--xs .library-table .q-table__grid-content>div{width:100%}.preview-image{max-height:80vh;max-width:100%;display:block}@keyframes highlight-bg-data-v-3671d32d{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.highlight[data-v-3671d32d]{animation:highlight-bg-data-v-3671d32d 833ms linear;animation-iteration-count:3}.torrent-name[data-v-3671d32d]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-3671d32d]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-3671d32d]{margin-right:56px}.space[data-v-3671d32d]{margin-right:10px}.torrent-info .text[data-v-3671d32d]{position:relative;top:16px}.torrent-info .status-text[data-v-3671d32d]{color:var(--q-color-secondary)}.torrent-loading[data-v-3671d32d]{margin:-6px 8px 0 0;vertical-align:middle}.operations[data-v-3671d32d]{display:flex;flex-flow:row;flex-wrap:wrap;gap:12px}.progress-text[data-v-3671d32d]{font-size:14px;color:#000}.body--dark .progress-text[data-v-3671d32d]{color:#fff}.playable-items[data-v-3671d32d]{word-break:break-all}.progress-background[data-v-3671d32d]{height:100%;position:absolute;left:0;top:0;z-index:-1;opacity:.7}.q-btn-toggle[data-v-3671d32d]{border-radius:4px;overflow:hidden}.ab-peer-hint[data-v-3671d32d]{margin-top:12px}.bottom-status[data-v-3671d32d]{display:flex;flex-wrap:wrap}.bottom-status>span[data-v-3671d32d]{display:block;word-break:keep-all;white-space:nowrap;margin-right:10px}.save-to-local-btn[data-v-3671d32d]{margin-right:-12px}.list-before[data-v-0dd405a4]{margin:72px 0}.torrent-list-large .list-before[data-v-0dd405a4]{margin:110px 0}.list-item{width:100%}@keyframes highlight-bg{0%{background:transparent}50%{background:var(--q-color-primary)}to{background:transparent}}.list-item-tr.highlight{animation:highlight-bg 833ms linear;animation-iteration-count:3}.list-item-tr{cursor:normal;-webkit-user-select:none;user-select:none}.w80{width:80px}.w120{width:120px}.w150{width:150px}.badge{font-size:14px}.task-name{overflow:hidden;text-overflow:ellipsis}.name-icon{font-size:24px;position:absolute;top:10px}.name-info{padding-left:32px;overflow:hidden;text-overflow:ellipsis}.no-select{-webkit-user-select:none;user-select:none}.option-btns .q-btn{box-shadow:none}.download-speed{overflow:hidden;text-overflow:ellipsis}.download-speed button{position:absolute;right:0}.list{border-radius:0;max-width:100vw;overflow:hidden}.list,.torrent-list-large .list{max-height:calc(100vh - 150px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.torrent-list-large .list.electron,.torrent-list-large .list.xs{max-height:calc(100vh - 180px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.list thead tr th{position:-webkit-sticky;position:sticky;top:0;z-index:1}.thead-draggable{float:right;cursor:col-resize;font-size:20px;font-weight:300;color:#dcdcdc;line-height:18px}.body--dark .thead-draggable{color:#444}.list .q-table__bottom--nodata{border-top-width:0!important}.list th.thead{--table-head-height:28px;--table-thume-padding:8px;--table-thumb-size:calc(var(--table-thume-padding)*2 + 1px);padding:0 0;background-color:var(--q-color-page)}.list th.thead>span{height:var(--table-head-height);line-height:var(--table-head-height);vertical-align:middle}.list th.thead>.text-ellipsis{overflow:hidden;text-overflow:ellipsis;display:inline-block;width:calc(100% - var(--table-thumb-size))}.list th.thead>.thead-draggable{display:flex;align-items:stretch;padding:0 var(--table-thume-padding)}.list th.thead>.thead-draggable:before{content:"";border-right:1px solid currentColor}.address[data-v-4676c095],.client[data-v-4676c095]{width:180px;max-width:180px;overflow:hidden;text-overflow:ellipsis}.country-flag[data-v-4676c095]{font-family:Noto Color Emoji;font-size:20px;line-height:0;vertical-align:middle}td.status[data-v-4676c095]{padding:0}.q-card[data-v-560c4343]{height:560px!important;width:700px!important;min-width:50vw;max-width:80vw;overflow-y:scroll}.detail-dialog.capacitor[data-v-560c4343]{height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;max-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;min-height:calc(100vh - env(safe-area-inset-bottom) - env(safe-area-inset-top))!important;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.no-select[data-v-560c4343]{-webkit-user-select:none;user-select:none}.magnet[data-v-560c4343]{overflow:scroll}.q-item.text[data-v-560c4343]{line-height:32px}.file-tree[data-v-560c4343]{word-break:keep-all}.file-tree .text[data-v-560c4343]{text-overflow:ellipsis}.file-progress[data-v-560c4343]{width:60px;flex-shrink:0}.file-name[data-v-560c4343]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.peer-table[data-v-560c4343],.tracker-table[data-v-560c4343]{background:transparent}.peers .ip[data-v-560c4343]{width:180px;max-width:180px}.subtitleList-table .url[data-v-560c4343]{max-width:300px}.peers .client[data-v-560c4343]{width:168px;max-width:168px}.tracker-table .url[data-v-560c4343]{max-width:280px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracker-table .status[data-v-560c4343]{max-width:160px;word-wrap:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th.text-right[data-v-560c4343]{padding-left:0}.no-path[data-v-560c4343]{color:grey;pointer-events:none}.container[data-v-540e1290]{max-width:100%;max-height:calc(100% - env(safe-area-inset-bottom) - env(safe-area-inset-top));overflow-x:hidden}.sticky-bar[data-v-540e1290]{z-index:1}.sticky-bar .sticky-bar-toolbar[data-v-540e1290]{flex-wrap:wrap;flex-direction:row}.sticky-bar .sticky-bar-toolbar>[data-v-540e1290]{margin:4px}.right-buttons[data-v-540e1290]{display:flex;flex-grow:1}.torrent-list[data-v-540e1290]{width:100%;flex-basis:100%}.body--dark .sticky-bar[data-v-540e1290]{border-bottom-color:hsla(0,0%,88.2%,0.28)}.body--light .sticky-bar[data-v-540e1290]{border-bottom-color:rgba(0,0,0,0.12)}.sticky-bar-large[data-v-540e1290]{height:104px}.body--dark .sticky-bar[data-v-540e1290]{background:rgba(18,18,18,0.5019607843137255)}.configuration-variable[data-v-540e1290]{display:flex;justify-content:center}.download-speed[data-v-540e1290]{flex-shrink:0;width:90px;display:inline-block;text-align:right;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;word-break:keep-all;white-space:nowrap}.action-container[data-v-540e1290]{position:absolute}.magnet-input textarea{white-space:nowrap}.torrent-name[data-v-71beeddd]{font-size:20px;font-weight:700;margin-bottom:0}.torrent-info[data-v-71beeddd]{word-break:break-all;white-space:pre-line}.torrent-info.title[data-v-71beeddd]{margin-right:56px}.task-container[data-v-71beeddd]{padding:32px 48px}.no-task[data-v-71beeddd]{text-align:center;max-width:480px;border:1px solid #dcdcdc;border-radius:8px;margin:16px auto;padding:8px}.add-hints[data-v-71beeddd]{font-size:18px}.url-input[data-v-71beeddd]{width:60vw;min-width:320px;max-width:480px}@media (max-width:600px){.task-container[data-v-71beeddd]{padding:32px 24px}}.file-selectors[data-v-a418da6e]{display:flex;flex:auto;justify-content:flex-end;padding-top:8px}.global-recommend-page[data-v-67462de2]{position:fixed;left:0;top:0;width:100vw;height:100vh;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:48px;z-index:999}:root{--sat:env(safe-area-inset-top);--sar:env(safe-area-inset-right);--sab:env(safe-area-inset-bottom);--sal:env(safe-area-inset-left)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom);margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top);margin-left:constant(safe-area-inset-left);margin-left:env(safe-area-inset-left);margin-right:constant(safe-area-inset-right);margin-right:env(safe-area-inset-right)}body.screen--xs .q-dialog.fullscreen-dialog>.q-dialog__inner>.q-card{height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom))!important}.main-area{height:100vh}.q-dialog-plugin hr{display:none}.q-dialog-plugin .q-card__section{padding-bottom:4px}.q-dialog-plugin .q-card__section.q-dialog-plugin__form{padding-top:0;padding-bottom:0}.doc-link{color:#00b4ff;font-weight:500;text-decoration:none;outline:0;border-bottom:1px dotted currentColor;transition:opacity 0.2s;white-space:nowrap}.q-btn--fab .q-btn__content span{margin-left:8px;margin-bottom:-0.2em}.alphabiz-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.alphabiz-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.alphabiz-select-filter-search-bar{box-sizing:border-box;padding:8px}.option-flags{font-family:Noto Color Emoji;font-size:1.22rem;color:#000}.virtual-scroll-grid-wrapper{--virtual-scroll-grid-gutter:16px;--virtual-scroll-grid-item-width:0px;--virtual-scroll-grid-item-height:0px;--virtual-scroll-grid-padding:calc(var(--virtual-scroll-grid-gutter)/2);overflow-x:hidden!important;overflow-y:scroll!important;box-sizing:border-box!important}.virtual-scroll-grid__after,.virtual-scroll-grid__before{padding-left:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2);padding-right:calc(var(--virtual-scroll-grid-padding) + var(--virtual-scroll-grid-gutter)/2 - 1px);overflow:visible!important}.virtual-scroll-grid{--virtual-scroll-offset-top:0px;--virtual-scroll-offset-bottom:0px;padding-top:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-top))!important;padding-bottom:calc(var(--virtual-scroll-grid-gutter)/2 + var(--virtual-scroll-offset-bottom))!important;padding-left:var(--virtual-scroll-grid-padding)!important;padding-right:calc(var(--virtual-scroll-grid-padding) - 1px)!important;display:flex;flex-wrap:wrap;box-sizing:border-box!important}.virtual-scroll-grid>*{margin:calc(var(--virtual-scroll-grid-gutter)/2)!important;overflow:hidden;width:var(--virtual-scroll-grid-item-width)!important}.virtual-scroll-grid__dev{z-index:10000;overflow:hidden;padding:16px;background-color:#fff;box-shadow:0 0 8px rgba(0,0,0,0.5);border-radius:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dialog-option-group>div>.q-radio{display:flex!important}.dialog-option-group>div>.q-radio>.q-radio__label{flex-grow:1;overflow:hidden}.dialog-prompt-tel>.q-field__inner>.q-field__control-container{width:0!important}.dialog-prompt-tel>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0!important}@font-face{font-family:Noto Color Emoji;src:url(/css/NotoColorEmoji.ttf)}.video-js-player__controller-menu .controller-popup,.video-js-player__controller-menu .controller\:panel,.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top,.video-js-player__controller .controller\:panel{-webkit-backdrop-filter:blur(28px) brightness(0.9);backdrop-filter:blur(28px) brightness(0.9);background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important}.video-js-player__controller .controller-bottom,.video-js-player__controller .controller-top{padding:4px 4px}.video-js-player__controller .is-audio-hint{opacity:0.3}.video-js-player__controller .is-audio-hint img{max-width:256px}.video-js-player__controller .is-audio-hint p{color:#ddd}.video-js-player__controller-menu .controller-popup{box-shadow:0 0 0 0.5px hsla(0,0%,100%,0.2),0 0 16px rgba(0,0,0,0.8);border-radius:16px;padding:4px 4px}div:not(.q-item__section)>.video-js-player__subtitle{margin-top:0.625em;margin-bottom:0.625em}.video-js-player__subtitle{font-style:var(--subtitle-style,normal);font-weight:var(--subtitle-weight,normal);font-size:var(--subtitle-size,1.25rem);-webkit-backdrop-filter:blur(28px) brightness(0.9)!important;backdrop-filter:blur(28px) brightness(0.9)!important;background-color:rgba(50,50,50,0.5)!important;color:hsla(0,0%,100%,0.8)!important;padding:0.2em 0.625em;border-radius:0.625em}.video-js-player__subtitle.fullscreen-subtitle{font-size:max(18px,min(2.8vh,2vw))}.controller\:panel[data-v-18dfdf92]{box-shadow:inset -0.5px 0.5px 0.5px hsla(0,0%,100%,0.2)}.video-js-player__buffer-progress>div[data-v-4e25daec]{transition:left 300ms ease-in-out,width 300ms ease-in-out;background-color:hsla(0,0%,100%,0.4);-webkit-backdrop-filter:saturate(1.2) brightness(1)!important;backdrop-filter:saturate(1.2) brightness(1)!important}.video-js-player__progress-bar{--progress-size:4px;--slider-size:4px;--slider-offset:0px}.video-js-player__progress-bar .video-js-player__buffer-progress{height:4px}.video-js-player__progress-bar .video-js-player__progress-bar-buffered{pointer-events:none;z-index:1}.video-js-player__progress-bar .video-js-player__progress-bar-slider{z-index:2;top:-6px}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__track-container{cursor:pointer!important}.video-js-player__progress-bar .video-js-player__progress-bar-slider .q-slider__thumb{z-index:4!important}.video-js-player__page{-webkit-backdrop-filter:blur(28px) brightness(0.6);backdrop-filter:blur(28px) brightness(0.6);background-color:rgba(50,50,50,0.8);color:hsla(0,0%,100%,0.8)!important;overflow:hidden;max-width:100%!important;max-height:100%!important;display:flex;flex-direction:column;align-items:stretch}.video-js-player__page>main{height:auto!important;min-height:0!important;flex-grow:1;overflow-x:hidden;overflow-y:auto}.video-js-player__page>main>div{margin:0 auto;max-width:1280px}.video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb,.video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.body--light .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.3)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,0.1)}.body--dark .video-js-player__page>main::-webkit-scrollbar-thumb:hover{background-color:hsla(0,0%,100%,0.2)}.q-item__section>.video-js-player__subtitle{box-shadow:0 0 1px hsla(0,0%,100%,0.3)}.video-js-player__controller .q-btn-group.lorem-ipsum{padding:2px}.video-js-player__controller .q-btn-group.lorem-ipsum .q-btn>.q-btn__wrapper{padding:0 16px;height:1.5em;min-height:1.5em}.video-js-player__controller div.column>.q-btn-group{gap:4px;padding:4px}.video-js-player__controller div.column>.q-btn-group .q-btn{flex-grow:1;border-radius:9999px}.video-js-player__controller div.column>.q-btn-group .q-btn>.q-btn__wrapper{padding:0 16px;height:2em;min-height:2em}.video-js-player__setting-list{border-radius:12px}.video-js-player__setting-list>.q-item{min-height:64px;padding:16px 16px!important}.video-js-player__setting-list>.q-item:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0;border-bottom-right-radius:0}.video-js-player__setting-list>.q-item:last-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player__volume-slider{border-radius:8px!important;overflow:hidden;background-color:hsla(0,0%,100%,0.1);box-shadow:inset 0 0 0 0.5px hsla(0,0%,100%,0.1)!important}.video-js-player__volume-slider>.q-slider__track-container{padding:0}.video-js-player__volume-slider>.q-slider__track-container .q-slider__selection{border-radius:0!important;background-color:hsla(0,0%,100%,0.2)}.controller-popup__transition{transform-origin:50% 100%!important}.controller-popup__transition.q-transition--scale-enter-from,.controller-popup__transition.q-transition--scale-leave-to{transform:scale(0)!important}.controller-popup__transition.q-transition--scale-enter-to,.controller-popup__transition.q-transition--scale-leave-from{transform:scale(1)!important}.controller-popup__transition.q-transition--scale-enter-active,.controller-popup__transition.q-transition--scale-leave-active{transition-property:transform;transition-duration:300ms!important}.controller-popup__transition.q-transition--scale-leave-active{opacity:1!important;transition-timing-function:cubic-bezier(0.65,-0.25,0.37,0.84)}.controller-popup__transition.q-transition--scale-enter-active{opacity:1!important;transition-timing-function:cubic-bezier(0.52,0.51,0.12,1.2)}.video-js-player__controller-btn-toggle{background-color:hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn{border-top:0.25px solid hsla(0,0%,100%,0.1);border-bottom:0.25px solid hsla(0,0%,100%,0.1)}.video-js-player__controller-btn-toggle>.q-btn:first-child{border-top:none}.video-js-player__controller-btn-toggle>.q-btn:last-child{border-bottom:none}.video-js-player__controller-btn-toggle>.q-btn.bg-active{background-color:hsla(0,0%,100%,0.15)}.video-js-player__controller-btn-toggle>.q-btn:first-child{padding-top:4px;border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.video-js-player__controller-btn-toggle>.q-btn:last-child{padding-bottom:4px;border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.controller-popup>.video-js-player__controller-list{border-radius:12px!important;background-color:hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item{border-top:0.125px solid hsla(0,0%,100%,0.1);border-bottom:0.125px solid hsla(0,0%,100%,0.1)}.controller-popup>.video-js-player__controller-list>.q-item:first-child{border-top:none}.controller-popup>.video-js-player__controller-list>.q-item:last-child{border-bottom:none}.controller-popup>.video-js-player__controller-list>.q-item{padding:4px 8px}.controller-popup>.video-js-player__controller-list>.q-item>.q-focus-helper{overflow:hidden}.controller-popup>.video-js-player__controller-list>.q-item:first-child,.controller-popup>.video-js-player__controller-list>.q-item:first-child>.q-focus-helper{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.controller-popup>.video-js-player__controller-list>.q-item:last-child,.controller-popup>.video-js-player__controller-list>.q-item:last-child>.q-focus-helper{border-top-left-radius:0!important;border-top-right-radius:0!important;border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}.video-js-player{min-width:120px;min-height:120px;background:#000}.video-js-player,.video-js-player>.video-js{display:flex;flex-direction:column;justify-content:center;align-items:center}.video-js-player>.video-js{outline:none!important;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:scale-down}.video-js-player>.video-js>video{width:100%;height:auto;max-width:100%;max-height:100%}.video-js-player>.video-js>button,.video-js-player>.video-js>div:not(.video-js-player__controller){display:none!important}.video-js-player>.video-js>.video-js-player__controller{display:flex}.primary[data-v-6fc70cc6]{background-color:#1976d2;color:#fff}.body--dark .grey[data-v-6fc70cc6]{background-color:#424242}.grey[data-v-6fc70cc6]{background-color:#eee}.amplify-card-actions,.amplify-card-description,.amplify-card-form{width:100%;overflow:hidden;word-break:break-word}.amplify-card-form{overflow-x:hidden;overflow-y:hidden}.background-blur .q-dialog__backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.background-mask .q-dialog__backdrop{background-color:hsla(0,0%,49.8%,0.8);-webkit-backdrop-filter:brightness(0.2) contrast(0.8) saturate(0);backdrop-filter:brightness(0.2) contrast(0.8) saturate(0)}.amplify-select{margin-bottom:20px}.amplify-select>.q-field__inner>.q-field__control>.q-field__control-container>.q-field__native{padding:2px 0 0 0}.amplify-select.q-field--readonly>.q-field__inner>.q-field__control>.q-field__append>.q-select__dropdown-icon{visibility:hidden}.amplify-select-filter-search-bar{box-sizing:border-box;padding:8px}.amplify-input-wrapper{display:flex;flex-direction:row}.amplify-input-wrapper>.amplify-input-select{margin-right:4px;flex-shrink:0}.amplify-input-wrapper>.amplify-input-select.focus{width:100%}.amplify-input-wrapper>.amplify-input{flex-shrink:1;flex-grow:1}.amplify-tel-input>.q-field__inner>.q-field__control>.q-field__prepend{padding-right:0}.amplify-input>.q-field__inner>.q-field__bottom{padding-top:0;height:24px;align-items:center}.amplify-input>.q-field__inner>.q-field__control>.q-field__control-container>input{margin-bottom:-2px}.amplify-input .amplify-input-phone-number-prefix{margin-left:6px;margin-bottom:-2px;padding:6px 0;font-size:14px;font-weight:400;letter-spacing:0.00937em;line-height:28px!important}.amplify-input .amplify-input-phone-number-prefix:first-child{margin-left:0}input[type=date]{margin:0!important;padding:0!important}input[type=date]::-webkit-datetime-edit{margin-top:2px;margin-left:0}input[type=date]::-webkit-datetime-edit-day-field,input[type=date]::-webkit-datetime-edit-month-field,input[type=date]::-webkit-datetime-edit-year-field{padding:0;margin:2px 10px 0 10px}input[type=date]::-webkit-inner-spin-button,input[type=number]::-webkit-inner-spin-button{display:none}.underscore[data-v-6e4f640d]:hover,.underscore[data-v-79ec585c]:hover{text-decoration:underline}.select-none[data-v-79ec585c]{-webkit-user-select:none;user-select:none}.underscore[data-v-654a46b2]:hover{text-decoration:underline}.panel[data-v-60f74c22]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center}.panel>[data-v-60f74c22]{margin:4px}.dev-info-action[data-v-39f109b1]{width:80px;max-width:80px}.logs .channels{padding:4px;border:1px solid #dcdcdc;word-break:break-all;max-height:400px;overflow:auto}.preload-task[data-v-6f92a449]{padding:4px;border-radius:4px;border:1px solid #dcdcdc;display:inline-block;width:calc(50% - 32px)}.task-name[data-v-6f92a449]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-logs[data-v-a7504d8e]{border:1px solid grey;border-radius:4px;margin-top:16px;padding:8px}.log[data-v-a7504d8e]{margin-top:8px;word-wrap:break-word;white-space:pre-wrap}.log-type[data-v-a7504d8e]{background:#dcdcdc;padding:4px;margin-right:8px;border-radius:4px}.development-container{height:calc(100vh - 50px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container.large{height:calc(100vh - 80px - env(safe-area-inset-bottom) - env(safe-area-inset-top))}.development-container>.q-card{display:flex;flex-direction:column;flex-wrap:nowrap;height:100%;overflow:hidden}.development-container .q-panel>div{height:auto}.electron .development-dialog{padding-top:30px}.development-dialog{margin-top:constant(safe-area-inset-top);margin-top:env(safe-area-inset-top)}.signed-out-actions{position:fixed;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:7000}.body--light .ab-backdrop.blur{background-color:rgba(0,0,0,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--light .ab-backdrop.shadow{background-color:rgba(0,0,0,0.4)}.body--dark .ab-backdrop.blur{background-color:rgba(51,51,51,0.7019607843137254);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.body--dark .ab-backdrop.shadow{background-color:rgba(51,51,51,0.4)}.ab-backdrop{position:absolute;top:0;left:0;width:100vw;height:100vh;z-index:6000}.dialog-backdrop-disabled.body--light .q-dialog .q-dialog__backdrop{background-color:rgba(0,0,0,0.1)}.dialog-backdrop-disabled.body--dark .q-dialog .q-dialog__backdrop{background-color:rgba(77,77,77,0.5)}.ab-modal-page .fade-enter-active,.ab-modal-page .fade-leave-active{transition:opacity var(--transition-duration) ease-in-out}.ab-modal-page .fade-enter,.ab-modal-page .fade-leave-to{opacity:0}.ab-modal-page .slide-right-enter-active,.ab-modal-page .slide-right-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .slide-right-enter,.ab-modal-page .slide-right-leave-to{opacity:0.2;transform:translateX(100%)}.ab-modal-page .scale-enter-active,.ab-modal-page .scale-leave-active{transition-property:opacity,transform;transition-duration:var(--transition-duration);transition-timing-function:ease-in-out}.ab-modal-page .scale-enter,.ab-modal-page .scale-leave-to{opacity:0;transform:scale(0)}.ab-modal-page{--transition-duration:300ms;--ab-sign-in-page-offset:0}.electron .ab-modal-page{--ab-modal-page-offset:30px}.ab-modal-page{position:absolute;top:0;left:0}.ab-modal-page .container{pointer-events:none;position:fixed;top:var(--ab-modal-page-offset);left:0;width:100vw;height:calc(100vh - var(--ab-modal-page-offset))}.ab-modal-page .container>*{pointer-events:visible}body.screen--xs .ab-modal-page .container{overflow:auto;width:100vw!important;height:100vh!important}body.screen--xs .ab-modal-page .container .q-card.mobile-fullscreen{min-width:100vw!important;min-height:100vh!important;position:absolute;top:0;left:0;border-radius:0!important}.ab-task-page{max-width:100vw!important;max-height:100vh!important}.ab-task-page,.ab-task-page .q-layout.q-layout--containerized,.ab-task-page .q-layout.q-layout--containerized>.q-page-container{width:100vw!important;height:100vh!important}.electron .ab-task-page .q-header,body.electron .development-dialog{padding-top:30px}.development-dialog{position:fixed;top:0;left:0;background-color:var(--q-color-page)!important;width:100vw;height:100vh!important;min-width:unset!important;max-width:unset!important;min-height:unset!important;max-height:100vh!important;z-index:7000;overflow:hidden;display:flex;flex-direction:column} \ No newline at end of file diff --git a/dist/spa/index.html b/dist/spa/index.html index 460b78f6..b7a2a762 100644 --- a/dist/spa/index.html +++ b/dist/spa/index.html @@ -8,4 +8,4 @@ window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} window.gtag = gtag - }
\ No newline at end of file + }
\ No newline at end of file diff --git a/dist/spa/js/app.3d8e4a3f.js b/dist/spa/js/app.3d8e4a3f.js new file mode 100644 index 00000000..59c8ae69 --- /dev/null +++ b/dist/spa/js/app.3d8e4a3f.js @@ -0,0 +1 @@ +(function(e){function t(t){for(var n,o,s=t[0],l=t[1],c=t[2],d=0,u=[];de+" --- |"),"| ")+"\n";return a+n+e.reduce(((e,t)=>e+t.reduce(((e,t,a)=>a?`${e} \`${t}\` |`:`| ${t} |`),"")+"\n"),"")}function h(e,t){return`
${e}\n\n${t}\n
\n\n`}function g({type:e,text:t,version:a,devInfo:n}){const o=n?h("System info",m(n)):"";return`**Issue type**: ${e}\n\n**Describe the bug**:\n\n${t}\n\n`+(a?`---\n\n**App version**: \`${a}\`\n\n`:"")+(o||"(User disabled submitting system info)")}var f=a("47fc");const b=async()=>{if(Object(p["a"])()){const e=await(await Promise.resolve().then(a.bind(null,"a368"))).Device.getInfo();return[["Key","Value"],["Mode","Mobile(Capacitor)"],["Platform",e.platform],["OS",e.operatingSystem+" "+e.osVersion],["Model",e.model],["Manufacturer",e.manufacturer],["Webview version",e.webViewVersion],["isVirtual",e.isVirtual]]}if(!Object(_["default"])()){const e=Object(f["a"])();return[["Key","Value"],["Mode","Web"],["OS",e.os+" "+e.osVersion],["Browser",e.browser+" "+e.browserVersion],["Mobile",e.mobile?"Yes":"No"],["Platform",navigator.platform||"Unknown"],["User-Agent",navigator.userAgent]]}const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"b052",7));return new Promise((t=>{e.once("dev-info",((e,a)=>{t([["Key","Value"],["Mode","Electron"],["OS",a.osPlatform?a.osPlatform+" "+a.osRelease:"Unknown"],["OS kernel",a.osVer||"Unknown"],["Electron version",a.electronVer||"Unknown"],["Chrome version",a.chromeVer||"Unknown"],["Node version",a.nodeVer||"Unknown"]])})),e.send("dev-info")}))};async function y({type:e,category:t,title:a,details:n,withDevInfo:o=!1}={}){const i=o?await b():null,s=g({type:e,text:n,version:Object(r["a"])("version"),devInfo:i});return{title:`[${t||e}] ${a}`,body:s}}a("dc89"),a("2425");var v=a("d710");const{github:w}=v["update"],k=`https://github.com/${w.username}/${w.repo}/`;function S({title:e,body:t}){const a=new URL("issues/new",k);return a.searchParams.set("title",e),a.searchParams.set("body",t),a.toString()}var C,x=a("aa9c"),$=a("623f"),T=a.n($);const z="https://twitter.com/intent/tweet?text=",P=v["twitterAccount"].trim()+" ";function A(e){return x["a"].parseTweet(P+e).weightedLength}const I=(null===T.a||void 0===T.a||null===(C=T.a.defaults)||void 0===C?void 0:C.maxWeightedTweetLength)||280;function q(e){return A(e)<=I}function O(e){return e.substring(0,x["a"].parseTweet(e).displayRangeEnd-4)+"..."}function E(e){let t=P+e;return q(e)||(t=O(t)),`${z}${encodeURIComponent(t)}`}var D={props:{show:Boolean},data(){return{title:"",details:"",withDevInfo:!0,target:"github",type:{value:"Twitter",label:this.$t("tweet_us")},typeOptions:[{value:"Twitter",label:this.$t("tweet_us")},{value:"Bug report",label:this.$t("report_a_bug")},{value:"Feature request",label:this.$t("request_a_new_feature")}],category:{value:"",label:this.$t("select_a_category")},categoryOptions:[{value:"",label:this.$t("select_a_category")},{value:"Download",label:this.$t("download_or_upload")},{value:"Player",label:this.$t("player")},{value:"Account",label:this.$t("account")},{value:"Credits",label:this.$t("credits")},{value:"Settings",label:this.$t("settings")},{value:"Others",label:this.$t("others")}]}},computed:{isTwitter(){return"Twitter"===this.type.value},descRules(){return this.isTwitter?[e=>q(e)||this.$t("tweet_too_long")]:[]},twitterLength(){return this.isTwitter?A(this.details):0},restChars(){return I-this.twitterLength},twitterHint(){return this.restChars<0?this.$t("delete_characters",[Math.abs(this.restChars)]):this.$t("rest_characters",[this.restChars])},disableSubmit(){return this.isTwitter?this.restChars<0||!this.details.trim():!this.title.trim()}},methods:{submitTwitter(){q(this.details)&&(window.open(E(this.details),"_blank"),this.close())},async submitGithub(){const e=await y({type:this.type.value,category:this.category.value,title:this.title,details:this.details,withDevInfo:this.withDevInfo});let t;switch(this.target){case"github":t=S(e);break}t&&(window.open(t,"_blank"),this.close())},close(){this.$emit("close")},submit(){return this.isTwitter?this.submitTwitter():this.submitGithub()}}},j=D,N=(a("9e98"),a("2b5f")),L=a("b2aa"),U=a("e586"),R=a("d7c7"),M=a("a4ac"),F=a("0e45"),B=a("7498"),W=a("1043"),H=a("09a4"),V=a.n(H),Q=Object(N["a"])(j,d,u,!1,null,null,null),G=Q.exports;V()(Q,"components",{QDialog:L["a"],QCard:U["a"],QCardSection:R["a"],QSelect:M["a"],QInput:F["a"],QCheckbox:B["a"],QBtn:W["a"]});var K=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{staticClass:"diagnotic",attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[a("q-card",{staticClass:"diagnotic-main"},[a("q-card-section",{staticClass:"flex items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bolder"},[e._v(e._s(e.$t("network_diagnotic")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:""}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"row items-center no-wrap full-width",class:{"q-pt-none":!e.screen$xs}},[a("div",{staticClass:"q-mr-md"},[e.isChecking?a("q-avatar",[a("q-circular-progress",{staticStyle:{"margin-left":"-8px"},attrs:{indeterminate:"",color:"positive",size:"md"}})],1):e.isChecked?a("q-avatar",{attrs:{size:"lg",icon:e.isNetworkError?"close":"done",color:e.isNetworkError?"negative":"positive","text-color":e.isNetworkError?"negative":"positive"}}):a("q-avatar",{attrs:{size:"lg",icon:"construction",color:"general","text-color":"general"}})],1),a("div",[e._v(e._s(e.networkStatus))]),a("div",{staticClass:"col-grow row items-center justify-end"},[a("q-btn",{staticStyle:{width:"128px"},attrs:{"no-wrap":"","no-caps":"",unelevated:"",size:"0.8rem",color:"primary",label:e.$t("diagnotic"),disabled:e.isChecking},on:{click:e.checkNetwork}})],1)]),a("q-card-section",{staticClass:"q-px-none q-pt-none"},[e.isOffline?a("div",{staticClass:"offline"},[e._v(e._s(e.$t("offline")))]):a("div",{staticClass:"logs"},[a("q-item",{class:{disabled:"-"===e.dnsStatus.avgTime||e.dnsStatus.isError}},[a("q-item-section",{attrs:{avatar:""}},[e.dnsStatus.isChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):"-"===e.dnsStatus.avgTime?a("q-avatar",{attrs:{size:"lg",icon:"dns",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.dnsStatus.isError?"close":"done",color:e.dnsStatus.isError?"negative":"general","text-color":e.dnsStatus.isError?"negative":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("dns_look_up")))]),e.dnsStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("error")))]):"-"!==e.dnsStatus.avgTime?a("span",{staticClass:"text-primary"},[e._v(e._s(e.dnsStatus.avgTime+" ms"))]):e._e()],1)],1),a("q-expansion-item",{staticClass:"full-width aws",attrs:{disable:!e.awsStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isAwsChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.awsStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isAwsError?"close":"done",color:e.isAwsError?"negative":"general","text-color":e.isAwsError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"account_circle",color:"general","text-color":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("aws_service")))])]},proxy:!0}])},[a("div",{staticClass:"aws-results q-py-md q-px-lg"},e._l(e.awsStatus,(function(t){return a("div",{key:t.name,staticClass:"aws-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.name))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.avgTime?"text-primary":"text-red"},[e._v(e._s(t.avgTime?e.$t("online"):e.$t("offline")))])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.publicPingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPublicChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.publicPingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPublicError?"close":"done",color:e.isPublicError?"negative":"general","text-color":e.isPublicError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"public",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("network_pings")))]),a("small",{staticClass:"q-ml-sm",class:e.isPublicError?"text-red":"text-primary"},[e._v(e._s(e.publicPing))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.publicPingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.privatePingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPrivateChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.privatePingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPrivateError?"close":"done",color:e.isPrivateError?"negative":"general","text-color":e.isPrivateError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"star",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("official_site")))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.privatePingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width",attrs:{disable:e.trackerStatus.success.length+e.trackerStatus.fail.length===0},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isDownloading?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.isDownloadInit?a("q-avatar",{attrs:{size:"lg",icon:"lan",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.isDownloadError?"close":"done",color:e.isDownloadError?"negative":"general","text-color":e.isDownloadError?"negative":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("download_test")))])]},proxy:!0}])},[a("div",{staticClass:"download-results q-px-lg q-py-md"},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTrackerResult,expression:"showTrackerResult"}],staticClass:"trackers"},[a("span",{staticClass:"result-name"},[e._v("Trackers")]),e._v("\n - "+e._s(e.trackerStatus.success.length)+" "+e._s(e.$t("connected"))+"\n ")]),a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTorrentResult,expression:"showTorrentResult"}],staticClass:"torrent"},[a("span",{staticClass:"result-name"},[e._v(e._s(e.$t("test_task",["6.9 MB"])))]),a("span",[e._v(" - ")]),e.torrentStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("download_failed")))]):-1===e.torrentStatus.time?a("span",{staticClass:"text-normal"},[e._v(e._s(e.$t("downloading"))+"...")]):a("span",{staticClass:"text-primary"},[e._v(e._s(e.$t("second_spend",[e.torrentStatus.time])))])])])])],1)]),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],staticClass:"q-px-md q-pb-md q-pt-none",attrs:{align:"right"}},[a("q-btn",{attrs:{unelevated:"",label:e.$t("close")},on:{click:e.close}})],1)],1)],1)},Y=[],J=a("d7df"),Z={props:{show:Boolean},data(){return{isChecked:!1,isChecking:!1,isOnline:!1,networkStatus:this.$t("click_to_check"),dnsStatus:{isChecking:!1,isError:!1,results:[],avgTime:"-"},isPrivateChecking:!1,isPrivateError:!1,privatePingStatus:[],isPublicChecking:!1,isPublicError:!1,publicPing:"",publicPingStatus:[],isAwsChecking:!1,isAwsError:!1,awsStatus:[],trackerStatus:{success:[],fail:[],isChecking:!1,isError:!1},torrentStatus:{isChecking:!1,isError:!1,time:-1}}},computed:{isOffline(){return this.isChecked&&!this.isOnline},showPrivateResult(){return this.privatePingStatus.isChecking||"-"!==this.privatePingStatus.avgTime},isDownloading(){return this.trackerStatus.isChecking||this.torrentStatus.isChecking},isDownloadError(){return this.trackerStatus.isError||this.torrentStatus.isError},isDownloadInit(){return!this.isDownloadError&&!this.trackerStatus.isError&&-1===this.torrentStatus.time},showTrackerResult(){return this.trackerStatus.isChecking||this.trackerStatus.isError||!!this.trackerStatus.success.length},showTorrentResult(){return this.torrentStatus.isChecking||this.torrentStatus.isError||this.torrentStatus.time>-1},isNetworkError(){return this.isChecked&&(!this.isOnline||this.isDownloadError||this.dnsStatus.isError||this.isAwsError||this.privatePingStatus.some((e=>!e.alive))||this.publicPingStatus.every((e=>!e.alive)))}},methods:{initCheck(){this.isChecking=!0,this.dnsStatus={isChecking:!0,isError:!1,results:[],avgTime:"-"},this.isPrivateChecking=!1,this.isPrivateError=!1,this.privatePingStatus=[],this.isPublicChecking=!0,this.publicPing="",this.publicPingStatus=[],this.isPublicError=!1,this.isAwsChecking=!0,this.isAwsError=!1,this.awsStatus=[],this.trackerStatus={success:[],fail:[],isChecking:!0,isError:!1},this.torrentStatus={isChecking:!0,isError:!1,time:-1},this.networkStatus=this.$t("checking")+"..."},checkNetwork(){this.initCheck(),console.log("check"),J["a"].emit("check-network")},onCheckResult(e){switch(e.type){case"isOnline":this.isOnline=e.result;break;case"dnsCheckResult":this.dnsStatus.isChecking=!1,e.result.fail.length?this.dnsStatus.isError=!0:this.dnsStatus.isError=!1,this.dnsStatus.results.splice(0),this.dnsStatus.results.push(...e.result.success,...e.result.fail),this.dnsStatus.avgTime=e.result.avgTime;break;case"publicPingResult":this.isPublicChecking=!0,this.publicPingStatus.push(e.result),e.result.alive||(this.isPublicError=!0);break;case"publicPingEnd":this.isPublicChecking=!1,this.publicPing=e.result;break;case"privatePingResult":this.isPrivateChecking=!0,this.privatePingStatus.push(e.result),e.result.alive||(this.isPrivateError=!0);break;case"privatePingEnd":this.isPrivateChecking=!1;break;case"pingAwsEnd":this.isAwsChecking=!1,this.awsStatus.splice(0),this.awsStatus.push(...e.successServices,...e.errorServices),this.isAwsError=e.error;break;case"trackerCheckResult":"connected"===e.result.result?this.trackerStatus.success.push(e.result.url):this.trackerStatus.fail.push(e.result.url);break;case"trackerCheckEnd":this.trackerStatus.isChecking=!1,this.trackerStatus.success.splice(0),this.trackerStatus.success.push(...e.result.success),this.trackerStatus.fail.splice(0),this.trackerStatus.fail.push(...e.result.fail),e.result.success.length||(this.trackerStatus.isError=!0);break;case"torrentCheckResult":this.torrentStatus.isChecking=!1,this.torrentStatus.isError=e.result.error,this.torrentStatus.time=e.result.time;break}},onCheckEnd(e){console.log("end",e),"isOnline"in e&&(this.isOnline=e.isOnline),this.isChecking=!1,this.isChecked=!0,this.networkStatus=this.$t("click_to_check_again")},close(){this.$emit("close")}},mounted(){J["a"].on("check-network-end",this.onCheckEnd),J["a"].on("check-network-result",this.onCheckResult)},beforeDestroy(){J["a"].off("check-network-end",this.onCheckEnd),J["a"].off("check-network-result",this.onCheckResult)}},X=Z,ee=(a("88f5"),a("990e")),te=a("fc38"),ae=a("9f3e"),ne=a("64e7"),oe=a("b329"),ie=a("25fb"),re=a("79e0"),se=a("5bbd"),le=a("59ba"),ce=a("a431"),de=Object(N["a"])(X,K,Y,!1,null,"8fee9c62",null),ue=de.exports;V()(de,"components",{QDialog:L["a"],QCard:U["a"],QCardSection:R["a"],QSpace:ee["a"],QBtn:W["a"],QSeparator:te["a"],QAvatar:ae["a"],QCircularProgress:ne["a"],QItem:oe["a"],QItemSection:ie["a"],QItemLabel:re["a"],QExpansionItem:se["a"],QCardActions:le["a"]}),V()(de,"directives",{ClosePopup:ce["a"]});var _e=a("9f21");const{github:pe}=v["update"],me=l.a.renderer();var he={name:"AboutDialog",mixins:[_e["a"]],components:{Feedback:G,NetworkDiagnotic:ue},data(){return{displayName:v["displayName"],isElectron:me,isCapacitor:Object(p["a"])(),iconClickTime:0,dialogVisible:!1,appVersion:Object(r["a"])("version"),loading:!1,primaryIcon:"developer/assets/icon-256.png",showFeedback:!1,showNetworkDiagnotic:!1}},created(){i["Bus"].$on("CALL_ABOUT",(()=>{this.dialogVisible=!0})),i["Bus"].$on("CALL_NETWORK_DIAGNOSTIC",(()=>{this.toggleNetworkDiagnotic(!0)})),me&&Promise.resolve().then(a.t.bind(null,"b052",7)).then((({ipcRenderer:e})=>{e.on("about-dialog",(()=>{this.dialogVisible=!0}))}))},computed:{isAlphabizExperimental(){return"Alphabiz"===v["displayName"]&&(this.appVersion.includes("internal")||this.appVersion.includes("nightly"))}},methods:{close(){this.dialogVisible=!1},browserRelease(){const e=`https://github.com/${pe.username}/${pe.repo}/releases`;me?Promise.resolve().then(a.t.bind(null,"b052",7)).then((t=>{t.ipcRenderer.send("to_browserurl",e)})):window.open(e,"_blank")},clickIcon(){this.iconClickTime+=1,setTimeout((()=>{this.iconClickTime-=1}),3e3),5===this.iconClickTime&&(console.log("enable!"),me?(a("b052").ipcRenderer.send("enable_devtools"),c["a"].dispatch("fetchSettings")):c["a"].dispatch("set",{disableDevTools:!1}).then((()=>{c["a"].dispatch("fetchSettings")})),this.$q.notify("DevTools is enabled"))},toggleFeedback(e){console.log("toggle",e),this.showFeedback=e},toggleNetworkDiagnotic(e){this.showNetworkDiagnotic=e}}},ge=he,fe=(a("3c8a"),a("9767")),be=a("4101"),ye=Object(N["a"])(ge,n,o,!1,null,"e4afc3b8",null);t["a"]=ye.exports;V()(ye,"components",{QDialog:L["a"],QCard:U["a"],QCardSection:R["a"],QSpace:ee["a"],QBtn:W["a"],QSeparator:te["a"],QImg:fe["a"],QColor:be["a"]})},"030c":function(e,t,a){"use strict";a("ca31")},"0336":function(e,t,a){},"053d":function(e,t,a){},"058f":function(e,t,a){},"0598":function(e,t,a){"use strict";a.r(t),function(e){a.d(t,"default",(function(){return o}));const n=Boolean((()=>"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof e&&"object"===typeof e.versions&&e.versions.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron"))());function o(){return n}}.call(this,a("28d0"))},"0699":function(e){e.exports=JSON.parse('{"lib_index":"Dom","lib_edit":"Publikować","lib_publish":"Publikować","lib_explore":"Badać","lib_following":"Następny","lib_favorite":"Lokalne ulubione","lib_local_favorites":"Lokalne ulubione","lib_channel":"Kanał","lib_submit":"Składać","lib_from_network":"Korzystanie ze zdecentralizowanej bazy danych z sieci","welcome_to_lib":"Witamy w bibliotece multimediów ${displayName}","register_or_login":"Zarejestruj się/Zaloguj się","lib_recommend":"Polecić","lib_recommend_desc":"Witamy w bibliotece ${displayName}! Ta biblioteka korzysta ze zdecentralizowanej bazy danych z sieci. Aby zacząć z niego korzystać, musisz śledzić niektóre kanały.","follow_any_channel_to_continue":"Śledź dowolny kanał, aby kontynuować","follow_channels_and_continue":"Śledź kanały {0} i kontynuuj","show_more_for_me":"Pokaż mi więcej","no_more_recommend":"Nigdy więcej polecam","key":"Klucz","create_key":"Utwórz klucz","save_key":"Zapisz klucz","save_key_file":"Czy chcesz zapisać swój klucz jako plik?","import_key":"Importuj klucz","import":"Import","invalid_key":"Niewłaściwy klucz","back_to_top":"Powrót do góry","search_for_channel":"Wyszukaj identyfikator kanału","search_channel_no_result":"Nie można znaleźć kanału o identyfikatorze {0}","please_input_channel_id":"Wprowadź identyfikator kanału","welcome_help_text":"Jest to zdecentralizowana biblioteka multimediów. Potrzebujesz\\n aby utworzyć konto dla tej bazy danych. Będziemy\\n automatycznie wygenerować klucz osobisty.\\n Jeśli masz już klucz, możesz również zaimportować\\n to tutaj.","welcome_key_text":"Po zalogowaniu kliknij przycisk [ZAPISZ KLUCZ].\\n w prawym dolnym rogu, aby zapisać swój klucz prywatny.\\n Jeśli zgubisz klucz, możesz nie być w stanie zalogować się ponownie.","redirect_to_recommend":"Wygląda na to, że nie śledziłeś żadnego kanału. Przekierowanie do strony [Eksploruj].","channel":"Kanał","follow":"Podążać","unfollow":"Przestań obserwować","following":"Następny","share":"Udział","unfollow_confirm":"Czy na pewno chcesz przestać obserwować ten kanał? Wszystkie posty z tego kanału na Twojej osi czasu zostaną usunięte.","follow_failed_hint":"Operacja nadal oczekuje w tle. Jeśli operacja nie jest wykonywana przez dłuższy czas, uruchom ponownie aplikację i spróbuj ponownie.","block":"Blok","unblock":"Odblokować","blocked":"Zablokowany","block_channel":"Zablokuj ten kanał","block_channel_confirm":"Zablokuj kanał, aby usunąć go z Twojej osi czasu. Listą zablokowanych możesz zarządzać w ustawieniach konta.","block_creator":"Zablokuj twórcę tego kanału","unblock_creator":"Odblokuj twórcę tego kanału","block_creator_confirm":"Zablokuj twórcę usunie z Twojej osi czasu wszystkie kanały utworzone przez tego twórcę. Listą zablokowanych możesz zarządzać w ustawieniach konta.","share_url_copied":"Udostępniony adres URL jest kopiowany do schowka","follow_time":"Podążaj za czasem","update_time":"Czas aktualizacji","search":"Szukaj","type":"Typ","added":"Dodany","click_to_task":"Kliknij, aby przejść do zadania","lib_already_added":"Ten film wideo został już przez Ciebie dodany","description":"Opis","poster":"Plakat","channel_poster":"Plakat kanału","preview":"Zapowiedź","creator":"Twórca","creator_detail":"Szczegóły twórcy","loading_creator":"Ładuję informacje o twórcy","wait_for_creator_loaded":"Poczekaj na załadowanie informacji o twórcy.","follower":"Zwolennik","followers":"Obserwujący","follower_list":"Lista obserwujących","user":"Użytkownik","channel_title":"Tytuł kanału","channel_id":"ID kanału","post_title":"Tytuł posta","post_id":"Identyfikator wpisu","import_data_from_excel":"Importuj dane z Excela","set_excel_keys":"Ustaw klucze Excela","excel_import_succeded":"Importowanie programu Excel powiodło się","excel_import_success_msg":"Wiersze {0} są gotowe do dodania, {1} nieprawidłowe, a {2} zduplikowane elementy są ignorowane","cannot_find_channel":"Nie można znaleźć kanału","cannot_find_posts":"Nie można znaleźć postów","add_channel":"Dodaj kanał","add_post":"Dodaj wpis","edit_channel":"Edytuj kanał","channel_setting":"Ustawienie kanału","edit_post":"Edytuj post","edit_posts":"Edytuj posty","channel_detail":"Szczegóły kanału","remove":"Usunąć","remove_channel":"Usuń kanał","remove_channel_confirm":"Czy na pewno chcesz usunąć ten post? Nie można tego odzyskać.","remove_post":"Usuń wpis","remove_post_confirm":"Czy na pewno chcesz usunąć ten kanał? Nie można tego odzyskać.","preview_mode":"Tryb podglądu","preview_mode_desc":"To jest podgląd Twojego kanału. Wszystkie stawki filmów są pokazane tutaj.","edit_user_profile":"Edytuj profil użytkownika","name":"Przezwisko","avatar":"Awatara","no_following":"Brak następujących kanałów. Kliknij, aby przejść","no_recommend":"Brak polecanych kanałów. Kliknij, aby przejść","first_recomment_msg":"Może to trochę potrwać, jeśli aplikacja jest uruchamiana po raz pierwszy.","invalid_image":"Nieprawidłowy obraz","image_not_reachable":"Ten adres URL obrazu jest nieosiągalny.","channel_not_found":"Nie znaleziono kanału","cannot_get_channel_info":"Nie można uzyskać informacji o kanale. Ten kanał może zostać usunięty przez jego twórcę i nie będzie już dostępny.","validate_error":"Sprawdź błąd","validate_user_name_no_space":"Nazwa użytkownika nie powinna zawierać spacji","validate_url_no_space":"Adres URL nie powinien zawierać spacji","validate_user_name_length":"Nazwa użytkownika powinna mieć długość od {0} do {1}","validate_user_desc_length":"Opis użytkownika nie powinien zawierać więcej niż {0} znaków","validate_user_avatar_url":"Awatar użytkownika powinien być adresem URL o długości mniejszej niż 2048 znaków","validate_channel_title_length":"Tytuł kanału powinien mieć długość od 1 do 100","validate_channel_desc_length":"Opis kanału powinien mieć długość od 10 do 300","validate_channel_image_url":"Podgląd kanału powinien mieć adres URL zawierający mniej niż 2048 znaków","validate_post_title_length":"Tytuł posta powinien mieć długość od 1 do 100","validate_post_desc_length":"Opis posta powinien mieć długość od 10 do 300","validate_post_image_url":"Plakat powinien być adresem URL zawierającym mniej niż 2048 znaków","validate_post_url":"Nieprawidłowy adres URL ${displayName}","validate_post_url_length":"Adres URL ${displayName} nie powinien mieć więcej niż 2048 znaków","film_rate":"Stawka filmowa","set_film_rate":"Ustaw szybkość filmu","select_a_rate_before_enter":"Musisz wybrać szybkość filmu przed wejściem do biblioteki multimediów.","library_available_rate":"Dostępna cena filmu w bibliotece","rate_g":"G – Publiczność ogólna","rate_g_desc":"Wszystkie grupy wiekowe. Nic, co mogłoby urazić rodziców do oglądania przez dzieci.","rate_pg":"PG – Sugerowane wskazówki rodzicielskie","rate_pg_desc":"Niektóre materiały mogą nie być odpowiednie dla dzieci. Rodzice wezwali do udzielania „kierownictwa rodzicielskiego”. Może zawierać materiały, których rodzice mogą nie lubić dla swoich małych dzieci.","rate_pg_13":"PG-13 – Rodzice zdecydowanie przestrozeni","rate_pg_13_desc":"Niektóre materiały mogą być nieodpowiednie dla dzieci poniżej 13 roku życia. Apelujemy do rodziców o ostrożność. Niektóre materiały mogą być nieodpowiednie dla dzieci w wieku przedszkolnym.","rate_r":"R – Ograniczony","rate_r_desc":"Osoby poniżej 17 roku życia wymagają obecności rodzica lub dorosłego opiekuna. Zawiera materiały dla dorosłych. Zachęcamy rodziców do zapoznania się z filmem, zanim zabiorą ze sobą swoje małe dzieci.","rate_nc_17":"NC-17 – Tylko dla dorosłych","rate_nc_17_desc":"Nikt nie ma 17 lat i mniej. Wyraźnie dorosły. Dzieci nie są przyjmowane.","set_as_private":"Ustaw jako prywatne","hide_in_explore":"Ukryj ten kanał na stronie eksploracji","hidden":"Ukryty","select_a_rate":"Wybierz cenę filmu","select_from_tasks":"Wybierz spośród zadań","import_from_magnet":"Importuj z magnesu:?...","input_magnet_url":"Magnes wejściowy:? adres URL","task_title":"Tytuł zadania","set_title":"Ustaw tytuł","add_to_local_favorites":"Dodaj do lokalnych ulubionych","remove_from_local_favorites":"Usuń z lokalnych ulubionych","removed_favorite":"Usunięto ulubione","import_or_export_favorites":"Importuj/eksportuj ulubione","export_local_favorites":"Eksportuj lokalne ulubione jako kopię zapasową","import_favorites_file":"Importuj plik ulubionych","not_a_favorite_file":"Ten plik nie jest ulubionym plikiem kopii zapasowej","connection_status":"Status połączenia","gun_server_list":"Węzły pamięci podręcznej","custom_nodes":"Niestandardowe węzły pamięci podręcznej","custom_nodes_hint":"Niestandardowe węzły pamięci podręcznej zostaną zastosowane po ponownym uruchomieniu aplikacji","wait_for_reboot":"Oczekiwanie na ponowne uruchomienie...({seconds}s)","reboot_now":"Zrestartuj teraz","reboot_later":"Uruchomić komputer ponownie","peer_list":"Węzły bezpośrednie","server":"Adres URL węzła","peer":"Rówieśnik","peer_id":"Identyfikator węzła","connection":"Połączenie","data_source":"Źródło danych","sync":"Synchronizacja","syncing":"Synchronizacja","sync_completed":"Synchronizacja zakończona","got_all_post":"Masz już wszystkie posty","placeholder_channel_title":"Twoja nazwa kanału","placeholder_channel_desc":"Opis tego kanału","placeholder_post_title":"Nazwa filmu (rok)","placeholder_post_desc":"Opis tego filmu","private_channel":"Prywatny kanał","creator_blocked":"Twórca zablokowany","go_to_library":"Idź do biblioteki?","go_to_library_channel_msg":"Czy chcesz przejść do kanału bibliotecznego {0}?","magnet_does_not_have_name":"Ten magnes: ? url nie ma nazwy, musisz najpierw dodać tytuł posta.","no_available_post":"Brak dostępnego wpisu","following_channel_no_post":"Wszystkie Twoje następujące kanały nie mają dostępnych postów. Może to być spowodowane błędem sieci. Jeśli śledziłeś już niektóre kanały, posty mogą zostać załadowane później.","share_to_library":"Udostępnij w bibliotece","quick_start":"Szybki start","quick_start_desc":"Rozpocznij tworzenie wpisu z zadaniem lub plikiem","select_file":"Wybierz plik...","select_folder":"Wybierz katalog...","post_options":"Opcje publikowania","channel_options":"Opcje kanałów","create_new_channel":"Utwórz nowy kanał","use_existed_channel":"Użyj istniejącego kanału","select_existed_channel":"Wybierz istniejący kanał","uploaded_by":"{title} przesłane przez {name}","created_by":"{title} stworzony przez {name}","creating_new_channel":"Tworzę nowy kanał...","created_new_channel":"Utworzono nowy kanał","creating_new_post":"Tworzenie nowego wpisu...","created_new_post":"Utworzono nowy post","create_new_post":"Utwórz nowy wpis","quick_start_timeout":"{0} limit czasu. Może to być spowodowane błędem sieci. Spróbuj ponownie później.","file_too_large":"Plik zbyt duży","file_too_large_msg":"Ten plik jest większy niż 4 GB ({size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz kontynuować?","resolving_folder_files":"Rozwiązywanie plików folderów...","folder_too_large":"Za duży folder","folder_too_large_msg":"Pliki w tym folderze są większe niż 4 GB (łącznie {size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz przesłać?","creating_new_task":"Tworzenie nowego zadania...","cannot_create_task":"Nie można utworzyć zadania","cannot_create_task_msg":"Może to spowodować jakiś błąd. Jeśli zadanie zostało utworzone poprawnie, możesz później sprawdzić listę zadań.","cannot_get_task_name":"Nie można pobrać nazwy zadania. Najpierw musisz wprowadzić jeden.","remove_old_task":"Usuń stare zadanie","remove_old_task_desc":"W trybie internetowym można utworzyć tylko jedno zadanie naraz. Czy chcesz usunąć stare zadanie?","subtitle_list":"Lista napisów","optional":"opcjonalny","with_subtitle":"Z {language} napisami","maximumSubtitleNum_limit":"Liczba napisów osiągnęła maksimum","add_subtitle_url":"Dodaj link do pobrania napisów","cannot_add_subtitle":"Nie udało się dodać napisów","cannot_add_subtitle_msg":"Nie wybrano języka napisów lub nieprawidłowy link do pobrania.","support_subtitle_type":"Obsługiwane są tylko napisy w formacie srt i vtt.","recommend_opensubtitles":"Zaleca się skorzystanie z łącza lub identyfikatora pobierania napisów na stronie www.opensubtitles.org.","take_down":"Zdjąć","serious_violation":"Poważne naruszenie","copyright_disputes":"Spory dotyczące praw autorskich","adults_only":"Tylko dla dorosłych","takedown_reason":"Powód usunięcia","takedown_mode":"Tryb usuwania","admins":"Administratorzy","takedown_user":"Usuń tego twórcę","takedown_channel":"Usuń ten kanał","takedown_post":"Usuń ten post","select_takedown_reason":"Wybierz powód usunięcia","takedown_invalid_reason":"Nieprawidłowy powód usunięcia","takedown_invalid_user_id":"Nieprawidłowy identyfikator użytkownika. Identyfikator powinien zawierać 87 znaków","takedown_invalid_channel_id":"Nieprawidłowy identyfikator kanału. Identyfikator powinien zawierać 20 znaków","takedown_invalid_post_id":"Nieprawidłowy identyfikator posta. Identyfikator powinien zawierać 20 znaków","takedown_management":"Zlikwiduj zarządzanie","users":"Użytkownicy","channels":"Kanały","posts":"Posty","you":"Ty","preset":"Ustawienie wstępne","admin":"Admin","committee":"Komisja","about_takedown_mode":"Informacje o trybie usuwania:\\nUstawienie wstępne: skonfigurowane w repozytorium github. Wszystkie zostaną usunięte z biblioteki.\\nAdministrator: każdy z administratorów, na którego głosował, zostanie usunięty.\\nKomitet: Co najmniej połowa administratorów głosujących na zostanie usunięta.","cannot_edit_preset":"Nie możesz edytować tego wiersza, ponieważ jest to wiersz ustawiony wstępnie","cannot_edit_not_vote":"Nie możesz edytować tego wiersza, ponieważ nie głosowałeś za nim","remove_vote":"Usuń swój głos","post_preload_failed":"Wstępne załadowanie tego posta nie powiodło się. Link do pobrania może być nieaktualny, więc nie można od razu odtworzyć tego wpisu.","about_cache_node":"Informacje o węźle pamięci podręcznej","edit_cache_node":"Edytuj węzeł pamięci podręcznej","create_cache_node":"Utwórz węzeł pamięci podręcznej","about_cache_node_desc":"${displayName} używa serwera Gun jako węzła pamięci podręcznej. Możesz edytować niestandardowe węzły z wyprzedzeniem","learn_how_to_deploy_gun":"Dowiedz się, jak wdrożyć własny serwer broni","repeat_add":"Zadanie zostało dodane, nie dodawaj go ponownie","upload":"Wgrywać","download":"Pobierać","delete":"Usuwać","delete_task":"Usuń zadanie","delete_confirm_message":"Usunąć to zadanie? To jest nieodwołalne","also_delete_files":"Usuń też pliki","default_delete_files":"Domyślnie usuń pobrane pliki po usunięciu zadania","not_now":"Nie teraz","delete_autoupload_confirm":"To zadanie zawiera plik, który umieściłeś w katalogu automatycznego przesyłania. Usuń to zadanie spowoduje również usunięcie pliku.","delete_anyway":"Usuń mimo to","upload_too_many_files":"Prześlij zbyt wiele plików","ask_if_unlimit_upload_amount":"Katalog automatycznego przesyłania zawiera zbyt wiele plików. Czy chcesz wyłączyć ograniczenie kwoty przesyłania? *Może to powodować problemy z wydajnością","disable_limitation":"Wyłącz ograniczenie","not_length":"Operacja na wielu plikach nie jest obecnie obsługiwana, prosimy o współpracę","download_torrent":"Pobieranie pliku","upload_torrent":"Przesyłanie pliku","files":"Akta","file":"Plik","folder":"Teczka","start_all":"Zacznij wszystko","pause_all":"Wstrzymaj wszystko","remove_all":"Usuń wszystko","upload_all":"Prześlij wszystko","clear_history":"Czysta historia","pause_all_finish_payments":"Spowoduje to zakończenie wszystkich płatności.","accelerating":"Przyspieszenie","link_task":"Połącz zadanie","torrent_task":"Zadanie pliku","ok":"OK","cancel":"Anulować","download_directory_position":"Pobierz pozycję katalogu","torrent_file":"plik zadania","magnetic_link_incorrect":"Format linku jest nieprawidłowy","delete_fail":"Usuwanie nie powiodło się","pause":"Pauza","paused":"Wstrzymane","stop_torrent":"Zatrzymywać się","seed":"Nasionko","resume":"Wznawiać","downloading":"Ściąganie","downloaded":"Pobrane","uploading":"Przesyłanie","auto_uploading":"Automatyczne przesyłanie","uploaded":"Załadowany","pending":"Czekam na inne zadania","verifying":"Weryfikacja","waiting_for_verify":"Czekam na weryfikację","seeding":"Wysiew","completed":"Zakończony","status":"Status","task_name":"Nazwa zadania","size":"Rozmiar","progress":"Postęp","sort":"Sortować","ascending":"Rosnąco","descending":"malejąco","file_loading":"Ładowanie pliku...","loading":"Ładowanie","unknown_status":"Nieznany","play_while_downloading":"Grać...","upload_or_play":"Prześlij / Odtwórz","play":"Grać","ask_if_upload_file":"Przesyłanie pliku?","ask_if_upload_or_play":"Przesłać lub odtworzyć plik?","torrent_error":"Błąd podczas dodawania zadania:","no_peers":"Ponów próbę więcej niż {0} i żaden element równorzędny nie jest dostępny","torrent_exists":"Zadanie już istnieje.","show_origin_torrent":"Uzyskaj oryginalny plik zadania lub adres URL","show_directory":"Otwórz katalog tego torrenta","task_num":"Zadania","total_upload_speed":"Prędkość wysyłania","total_download_speed":"Prędkość pobierania","path_missing":"Błąd: nie można znaleźć ścieżki torrenta","origin_not_found":"Nie można znaleźć informacji o zadaniu pochodzenia.","text_copied":"Adres URL Magnum jest kopiowany do schowka","copy_magnet_uri":"Kopiuj magnes:? URI","copy_download_uri":"Skopiuj identyfikator URI pobierania","copy_share_uri":"Skopiuj identyfikator URI udziału","uri_copied":"Identyfikator URI został pomyślnie skopiowany do schowka","uri_copy_failed":"Nie udało się skopiować uri","more":"Więcej...","toggle_list_mode":"Przełącz tryb listy","comment":"komentarz","operations":"Operacje","open_directory":"Otwarty katalog","no_downloading_task":"Brak zadania pobierania","remove_all_downloading_tasks":"Usunąć wszystkie zadania pobierania?","remove_all_upload_tasks":"Usunąć wszystkie zadania przesyłania?","remove_autoupload_files":"Usuń automatycznie przesyłane pliki","remove_all_history":"Usunąć całą historię?","remaining":"Pozostały","created_time":"Stworzony czas","used_time":"Zużyty czas","completed_time":"Ukończony czas","yesterday":"Wczoraj","before_yesterday":"{empty}","earlier":"Wcześniej","miss_file":"Brak niektórych plików","delete_miss_file_task":"Brakuje plików fome w {0}.","common_peer":"Zwykły rówieśnik","ab_peer":"${displayName} rówieśnik","ab_peer_verified":"Zweryfikowany równorzędny ${displayName}","ab_peer_available":"${displayName} równorzędne dostępne","alphabiz_accelerating":"${displayName} przyspiesza","income":"Dochód","income_info":"Dochód (dziś/ogółem)","total_income_info":"Dochód: {0}(dziś) / {1}(łącznie)","login_to_see_income":"Zaloguj się, aby zobaczyć statystyki dochodów","credit_cost":"Koszty kredytu","downloaded_by_payment":"Pobrane przez Payments","file_not_found":"Nie można znaleźć tego pliku w lokalnym","no_task":"Nie pytaj","no_matched_task":"Brak pasującego zadania","space_not_enough":"Niewystarczająca ilość miejsca na dysku","need_more_space":"Potrzebujesz {0} więcej miejsca, ale obecny dysk ma {1} wolnego miejsca ({2} zarezerwowane). Zadania są wstrzymane. Wstępne ładowanie biblioteki jest wyłączone. Możesz ją ponownie włączyć w [Ustawienia - Zaawansowane].","seeders":"Siewniki","last_update":"Ostatnia aktualizacja","connecting":"Złączony","connected":"Połączony","request_timed_out":"Upłynął limit czasu żądania","connection_failed":"Połączenie nieudane","invalid_download_url":"Nieprawidłowy adres URL pobierania","download_link":"link do pobrania","empty_files":"Brak plików w katalogu","duplicate_task":"Zduplikowane zadanie","duplicate_tracker":"Zduplikowany tracker","this_task_not_ready":"To zadanie nie jest gotowe. Wstrzymanie tego zadania spowoduje jego bezpośrednie usunięcie.","some_task_not_ready":"Niektóre zadania nie są gotowe. Wstrzymanie tych zadań spowoduje ich bezpośrednie usunięcie.","failed_to_delete_files":"Nie udało się usunąć plików","failed_to_delete_files_desc":"Nie udało się usunąć niektórych plików zadania. Może być konieczne ich ręczne usunięcie","unknown_error":"Nieznany błąd: {0}","more_files_are_not_shown":"({0} więcej plików nie jest wyświetlanych ze względu na wydajność)","no_available_file":"Brak dostępnego pliku. Poczekaj, aż zadanie będzie gotowe.","service_worker_error":"Nie można załadować ServiceWorkera do gry. Twoja przeglądarka może nie obsługiwać tej funkcji lub ServiceWorker nie jest aktywowany. Może być konieczne ponowne załadowanie tej strony i ponowna próba.","add_task_first":"Najpierw musisz dodać zadanie.","player_task_time":"Zawodnik poświęca zbyt wiele sekund na przygotowanie się do gry. Może być coś nie tak z zadaniem.","web_mode_hint":"Tryb sieciowy ${displayName} obsługuje tylko peery WebRTC. Aby uzyskać najlepsze wrażenia, pobierz aplikację komputerową ${displayName}.","web_mode_task_hint":"Kliknij przyciski poniżej, aby dodać zadanie. Jednorazowo możesz dodać tylko jedno zadanie.","save_to_local":"Zapisz w lokalnym","save_as_zip":"Zapisz jako ZIP","creating_save_file":"Tworzenie pliku zapisu...","upload_as_one_directory":"Prześlij jako jeden katalog","upload_as_single_files":"Prześlij jako pojedyncze pliki","web_mode_upload_single":"W trybie internetowym można przesłać tylko jeden plik","download_success":"Pobierz pomyślnie","download_fail":"Pobieranie nie udane","wait_for_downloaded_to_share":"Przed udostępnieniem poczekaj na pobranie zadania.","download_with_cellular":"Pobieraj zadania za pomocą sieci komórkowej","download_with_cellular_desc":"Korzystasz z sieci komórkowej. Pobieranie zadań za pomocą sieci komórkowej może wiązać się z dodatkowymi opłatami pobieranymi przez operatora.","download_with_cellular_confirm":"Nadal pobieraj przez sieć komórkową","language":"Język","appearance":"Wygląd","darkModeSystem":"System","darkModeLight":"Światło","darkModeDark":"Ciemny","basic_setting":"Podstawowy","hideMenu":"Ukryj menu aplikacji (tylko Windows i Linux)","autoHide":"Automatyczne ukrywanie okna","autoStart":"Otwórz podczas logowania","restore":"Zachowaj rozmiar i położenie okna przy wyjściu","autoStartUnfinished":"Automatycznie wznawiaj wszystkie niedokończone zadania","default_download_path":"Domyślna ścieżka","download_directory":"Pobierz katalog","upload_directory":"Prześlij katalog","enable_auto_upload":"Włącz automatyczne przesyłanie","unlimit_upload_amount":"Nieograniczona kwota przesyłania","unlimit_upload_warning":"Zezwalaj na przesyłanie dużej liczby plików. Może to powodować problemy z wydajnością","start":"Uruchomienie","transport_setting":"Przenoszenie","upload_limit":"Limit przesyłania","download_limit":"Limit pobierania","payed_user_share_rate":"Współczynnik udziału płatnych użytkowników","unlimited":"Nieograniczony","limit_input_error":"Liczba graniczna powinna być dodatnia","BT_setting":"Ustawienia zadań","saveLinkSeed":"Zapisz łącze jako plik zadania","autoDownload":"Automatycznie pobieraj link i treść","continuousSeeding":"Kontynuuj siew aż do ręcznego zatrzymania","seedSharingRate":"Stosunek nasion","seedTime":"Czas wysiewu (minuty)","task_manage":"Zarządzanie zadaniami","maximumDownloadNum":"Maksymalna liczba aktywnych zadań","maximumConnectionsNum":"Maksymalne połączenie na serwer","range_error":"Zakres powinien mieścić się w przedziale od {0} do {1}","random":"losowy","breakpointContinuation":"Kontynuować","automaticSkip":"Automatycznie pokazuj pobieranie po dodaniu zadania","afterNotification":"Powiadomienie po zakończeniu pobierania","deleteConfirm":"Przed usunięciem zadania nie jest wymagane żadne potwierdzenie","submit":"Zapisz i zastosuj","discard":"Wyrzucać","reset":"Resetowanie","reset_all_settings":"Zresetuj wszystkie ustawienia?","preferences_resetted":"Preferencje zresetowane","traditional_chinese":"tradycyjne chińskie","japanese":"język japoński","english":"język angielski","chinese":"Chiński uproszczony","advancedSettings":"Zaawansowany","autoUpdate":"Automatyczna aktualizacja","autoCheckUpdate":"Automatycznie sprawdzaj dostępność aktualizacji","proxy":"Pełnomocnik","useProxyService":"Włącz serwer proxy","trackerService":"Serwery śledzące","recommendUse":"Zalecana","autoUpdateTrackerServiceList":"Codziennie automatycznie aktualizuj listę trackerów","manualUpdateTracker":"Aktualizacja ręczna","manualUpdateSuccess":"Pomyślnie zaktualizuj serwery śledzenia","manualUpdateFail":"Nie udało się zaktualizować z:","listenPort":"Porty nasłuchowe","BTlistenPort":"Port transmisji danych","DHTlistenPort":"Rozproszony port mieszania","protocols":"Kompatybilne protokoły","setDefaultClientForFollowingProtocols":"Ustaw jako domyślnego klienta dla następujących protokołów","magnetUrl":"Magnes","video_file":"Plik wideo","audio_file":"Plik audio","security":"Bezpieczeństwo","impersonateUserAgent":"Makieta agenta użytkownika","RPCauthorizationkey":"Tajemnica RPC","viewDocument":"Wyświetl tajny podręcznik RPC","developer":"Deweloper","applicationLogPath":"Ścieżka dziennika aplikacji","downloadSessionPath":"Pobierz ścieżkę sesji","resetDownloadSessionRecord":"Zresetuj sesję pobierania","restoreInitialSettings":"Przywrócenie ustawień fabrycznych","preferences_set_successfully":"Zapisz preferencje pomyślnie!","preferences_set_fail":"Zapisywanie preferencji nie powiodło się!","change_not_save":"Zmiany nie zapisują się","discard_all_changes":"Odrzucić wszystkie zmiany i wyjść?","stay_in_page":"Pozostań na stronie","disk_usage":"Użycie dysku","pause_if_less_space":"Wstrzymaj i powiadom, jeśli miejsca jest mniej niż (MB)","default_video_player":"Domyślny odtwarzacz wideo","video_cache_time":"Pamięć podręczna odtwarzania strumieniowego","minutes":"minuty","system_default":"Domyślne ustawienie systemowe","media_player":"Odtwarzacz multimedialny","library_film_rate":"Dostępna cena filmu","library_show_explore":"Pokaż stronę [Eksploruj].","library_setting":"Ustawienie biblioteki","library_sync_setting":"Ustawienie synchronizacji biblioteki","keychain_sync_status":"Stan synchronizacji pęku kluczy","sync_with_aws":"Synchronizuj pęku kluczy z Amazon Web Services","backup_to_local":"Kopia zapasowa do pliku lokalnego","enable_sync_with_aws":"Włącz synchronizację z AWS","disable_sync_with_aws":"Wyłącz synchronizację z AWS","disable_sync_with_aws_desc":"Spowoduje to usunięcie zapisanego klucza na serwerze. Upewnij się, że wyeksportowałeś już swój klucz.","input_independent_password":"Wprowadź niezależne hasło","change_independent_password":"Zmień niezależne hasło","password_error":"Błędne hasło","password_invalid":"Hasło jest nieprawidłowe","key_existed":"Klucz istniał","key_not_found":"Klucz nie odnaleziony","library_recommend":"Polecam bibliotekę","show_all_channels":"Pokaż wszystkie kanały na stronie polecania biblioteki","not_logged_in":"Nie zalogowany","login_to_continue":"Zaloguj się, aby kontynuować","mnemonic_code":"Kod mnemoniczny","wordlist":"Lista słów","restore_code":"Przywróć z kodu","generate_code":"Wygeneruj kod","export_mnemonic_code":"Eksportuj kod mnemoniczny","import_mnemonic_code":"Importuj kod mnemoniczny","print":"Wydrukować","save_as_txt":"Zapisz jako txt","save_as_pdf":"Zapisz jako pdf","from_file":"Z pliku","not_valid_mnemonic_code":"To nie jest prawidłowy kod mnemoniczny","cannot_parse_code_as_key":"Nie można przeanalizować tego kodu mnemotechnicznego jako klucza biblioteki","import_key_hint":"Czy na pewno chcesz zaimportować ten klucz? Spowoduje to odzyskanie starego klucza w bibliotece.","import_key_confirm":"Tak, importuj.","library_preload":"Wstępnie ładuj zadania z biblioteki","show_preload":"Pokaż zadania wstępnego ładowania","set_download":"Ustaw katalog pobierania","set_download_desc":"W przypadku wersji macOS App Store domyślny katalog pobierania znajduje się w piaskownicy aplikacji i zostanie usunięty po odinstalowaniu aplikacji. Jeśli chcesz zachować pobrane pliki, musisz ręcznie wybrać inny katalog pobierania.","home":"Dom","home_caption":"Pobieranie/przesyłanie i pliki multimedialne","library":"Biblioteka","library_caption":"Przeglądaj zasoby multimedialne","player":"Gracz","player_caption":"Odtwarzacz multimedialny","credits":"Kredyty","credits_caption":"Sprawdź saldo konta","account":"Konto","account_caption":"Zaloguj się/Zarejestruj się/Zarządzanie","settings":"Ustawienia","settings_caption":"Ustawienia aplikacji, odtwarzacza, konta","development":"Rozwój","development_caption":"Tryb programisty do użytku wewnętrznego","basic":"Podstawowy","basic_caption":"Podstawowe ustawienia","advanced":"Zaawansowany","advanced_caption":"Zaawansowane ustawienia","blockchain":"Portfel","blockchain_caption":"${displayName} Zdecentralizowany portfel","internal_notice":"Wewnętrzne powiadomienie o wydaniu","release_notes":"Informacje o wydaniu","terms_and_conditions":"Regulamin","license_and_listen_notices":"Licencjonuj i słuchaj powiadomień o otwartym kodzie źródłowym","close":"Zamknąć","success":"Powodzenie","fail":"Ponieść porażkę","account_email_invalid_address":"Niepoprawny adres email","account_email_invalid_domain":"Nieprawidłowa domena e-mail","account_email_unknown_status":"Nieznany stan dostarczania wiadomości e-mail","account_email_unavailable_address":"Niedostępny adres e-mail","account_email_suppressed_address":"Ukryty adres e-mail","account_loading":"Ładowanie...","account_is_required":"jest wymagane","account_sign_in_your_account":"Zalogować się","account_username":"Nazwa użytkownika","account_username_email_phone":"Numer telefonu lub e-mail","account_password":"Hasło","account_new_password":"Nowe hasło","account_re_enter_password":"Wprowadź ponownie hasło","account_password_not_equal":"Dwa hasła nie są równe","account_new_password_same":"Hasło jest takie samo jak oryginalne hasło","account_forgot_your_password":"Zapomniałeś hasła?","account_reset_password":"Zresetuj hasło","account_sign_in":"Zalogować się","account_signed_in":"Wpisany","account_sign_up":"Zapisać się","account_find_your_account":"Znajdź swoje konto","account_enter_your_username":"Wpisz swój numer telefonu lub adres e-mail","account_search":"Szukaj","account_email_sent_tip":"E-mail z kodem weryfikacyjnym został wysłany na Twój adres e-mail:","account_phone_sent_tip":"Na Twój telefon została wysłana wiadomość SMS z kodem weryfikacyjnym:","account_email_phone_sent_tip":"E-mail i SMS z kodem weryfikacyjnym zostały wysłane odpowiednio na Twój adres e-mail i telefon:","account_software_token_tip":"Usługa MFA jest włączona na Twoim koncie. Aby zakończyć logowanie, włącz lub wyświetl swoje urządzenie i wpisz TOTP","account_reset_your_password":"Zresetuj swoje hasło","account_verification_code":"Kod weryfikacyjny","account_resend_code":"Wyślij ponownie kod","account_code_has_been_resent":"Kod weryfikacyjny został wysłany ponownie","account_password_has_been_reset":"Hasło zostało zresetowane","account_submit":"Składać","account_sign_up_your_account":"Zarejestruj swoje konto","account_fill_required_fields":"Wypełnij wymagane pola poniżej.","account_fill_optional_fields":"Wypełnij opcjonalne pola poniżej.","account_email":"E-mail","account_invitation":"Zaproszenie","account_invitation_code":"Kod zaproszenia","account_i_accept":"Akceptuję","account_license_terms":"licencja i warunki","account_next":"Następny","account_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki.","account_verify_fill_optional_fields":"Sprawdź i wypełnij opcjonalne pola.","account_nickname":"Przezwisko","account_gender":"Płeć","account_male":"Mężczyzna","account_female":"Kobieta","account_not_say":"Nie mów","account_birthday":"Urodziny","account_phone_number":"Numer telefonu","account_locale":"Lokalny","account_tip_verified":"Zweryfikowano, loguję się...","account_verified":"zweryfikowane","account_unverified":"niesprawdzony","account_signed_up":"Zapisany","account_verify_your_identity":"Zweryfikować Twoją tożsamość","account_finish":"Skończyć","account_signed_out":"Wylogowany","account_change_password":"Zmień hasło","account_change_email":"Zmień adres e-mail","account_change_phone_number":"Zmień numer telefonu","account_sign_out":"Wyloguj się","account_current_password":"Aktualne hasło","account_re_enter_new_password":"Wprowadź ponownie nowe hasło","account_personal_information":"Informacja","account_edit":"edytować","account_reset":"Resetowanie","account_greeting":"Cześć,","account_cancel":"Anulować","account_change":"zmiana","account_not_set":"nie ustawiony","account_setting":"ustawienie","account_copy_code":"skopiuj kod","account_account_setting":"Konto","account_task_page":"Zadanie kredytowe","account_setting_caption":"Zmień hasło / Edytuj informacje","account_security":"Bezpieczeństwo","account_want_to_join":"Chcesz się dołączyć?","account_sign_in_now":"Zalogować się","account_changed":"Zmieniono","account_clipboard_with_invitation_code":"Skopiowano kod zaproszenia","account_clipboard_with_code":"Kod skopiowany","account_invitation_code_dialog_tip":"Wyślesz znajomemu e-mail lub SMS z kodem zaproszenia:","account_available":"dostępny","account_invited":"zaproszony","account_used":"używany","account_invitation_code_sent":"Kod zaproszenia został wysłany","account_invitation_channel_required":"Wypełnij co najmniej jeden kanał zaproszeń","account_no_verification_code":"Nie możesz otrzymać kodu weryfikacyjnego?","account_no_phone_number":"Brak numeru telefonu?","account_sign_up_by_email":"Zarejestruj się przez e-mail","account_no_email":"Brak e-maila?","account_sign_up_by_phone_number":"Zarejestruj się pod numerem telefonu","account_no_totp":"Brak TOTP?","account_tip_no_totp":"Jeśli nie ma TOTP, skonfiguruj najpierw TOTP","account_setup_totp":"Skonfiguruj TOTP","account_contact_information":"Informacje kontaktowe","account_delete_account":"Usuń konto","account_deleted":"Usunięto","account_can_not_mfa":"Kłopoty MSZ?","account_set_mfa_type":"Skonfiguruj usługę MFA","account_disable_mfa":"Wyłącz uwierzytelnianie wieloskładnikowe","account_disabled_mfa":"Wyłączone MSZ","account_sms_mfa":"SMS MSZ","account_totp_mfa":"TOTP MSZ","account_totp":"TOTP","account_not_recommend":"Nie polecane","account_oauth_sign_in_with":"Zaloguj się za pomocą {provider}","account_sign_in_failed":"Nie udało się zalogować","account_tip_oath_sign_up":"E-mail odpowiadający bieżącemu kontu {provider}: {email} nie utworzył jeszcze konta","account_tip_confirm_delete_account":"Wprowadź bieżące hasło do konta, aby potwierdzić, że chcesz usunąć bieżące konto. (Usuniętych kont nie można przywrócić)","account_tip_config_mfa":"Możesz użyć SMS-a lub hasła jednorazowego opartego na czasie (TOTP) jako dodatkowego uwierzytelnienia","account_error_can_not_enable_mfa":"Aby włączyć MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_sms_mfa":"Aby włączyć SMS MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_totp_mfa":"Musisz powiązać swój adres e-mail i numer telefonu komórkowego, aby włączyć TOTP MFA","account_tip_setup_totp":"Użyj aplikacji, takich jak Authenticator, aby zeskanować poniższy kod QR lub skopiuj kod ręcznie, aby dodać token bezpieczeństwa","account_tip_verify_totp":"Sprawdź swój TOTP","account_link_your_social_account":"Powiąż swoje konto społecznościowe","account_unlink_your_social_account":"Odłącz konto społecznościowe","account_tip_confirm_link":"Czy na pewno chcesz powiązać bieżące konto z kontem {provider}?","account_tip_confirm_unlink":"Czy na pewno chcesz anulować powiązane konto {provider}?","account_tip_linking":"wiążący...","account_tip_unlinking":"Rozwiązywanie...","account_linked":"Zobowiązany","account_unlinked":"Nieoprawny","account_error_can_not_link_to_the_linked_account":"Bieżące konto społecznościowe jest powiązane z innym kontem","account_error_can_not_link_to_the_mismatched_email":"Bieżące konto i adres e-mail konta społecznościowego są niespójne","account_error_can_not_link_before_email_verified":"Nie można połączyć konta społecznościowego, ponieważ bieżące konto nie jest powiązane ze zweryfikowanym adresem e-mail","account_tip_confirm_verify_email_phone":"Czy wysłać kod weryfikacyjny na adres e-mail i numer telefonu bieżącego konta, aby zweryfikować swoją tożsamość?","account_tip_confirm_verify_phone":"Czy wysłać kod weryfikacyjny na aktualny numer telefonu, aby zweryfikować swoją tożsamość?","account_error_1_message_60_seconds":"Tylko jeden SMS lub e-mail może zostać wysłany co 60 sekund, poczekaj kolejne {delta} sekund","account_error_10_messages_per_day":"Każdy telefon komórkowy lub e-mail może wysłać tylko 10 wiadomości w ciągu 24 godzin","account_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","Network Error":"Wystąpił problem z siecią, spróbuj ponownie później","account_error_user_not_exist":"użytkownik nie istnieje","account_error_incorrect_username_or_password":"Niepoprawna nazwa użytkownika lub hasło","account_error_incorrect_original_password":"Nieprawidłowe oryginalne hasło","account_error_incorrect_password":"niepoprawne hasło","account_error_username_not_found":"Nazwa użytkownika nie znaleziona","account_error_can_not_reset_for_no_verified":"Nie można zresetować hasła do niezweryfikowanego konta","account_error_invalid_verification_code":"Nieprawidłowy kod weryfikacyjny, spróbuj ponownie","account_error_expired_verification_code":"Kod weryfikacyjny wygasł, spróbuj ponownie","account_error_password_not_long_enough":"Hasło nie jest wystarczająco długie","account_error_attempt_limit_exceeded":"Przekroczono limit prób, spróbuj za jakiś czas.","account_error_password_attempts_exceeded":"Przekroczono liczbę prób podania hasła.","account_error_invalid_phone_number_format":"Nieprawidłowy format numeru telefonu","account_error_no_cell_phone_prefix":"Wybierz prefiks numeru telefonu","account_error_username_already_exists":"Nazwa użytkownika już istnieje","account_error_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki","account_error_inactive_code":"Kod zaproszenia nie jest kodem aktywowanym","account_error_non_existent_code":"Kod zaproszenia nie istnieje","account_error_unexpected":"Niespodziewany błąd","account_error_can_not_change_email_before_phone_bound":"Adres e-mail nie może zostać zmieniony przed powiązaniem numeru telefonu","account_error_can_not_change_email_before_unbound_social_account":"Adresu e-mail nie można zmienić przed usunięciem konta społecznościowego","account_error_can_not_change_phone_before_email_bound":"Numeru telefonu nie można zmienić przed związaniem wiadomości e-mail","account_error_can_not_change_email_phone_with_mfa_enabled":"Nie można zmienić adresu e-mail ani numeru telefonu komórkowego przed wyłączeniem usługi MFA","account_error_not_supported_yet":"Obecnie nie obsługiwane","account_error_same_email":"Nowy adres e-mail nie może być taki sam jak pierwotny adres e-mail","account_error_same_phone":"Nowy numer telefonu nie może być taki sam jak oryginalny numer telefonu","account_error_email_not_exists":"adres E-mail nie istnieje","account_error_email_already_exists":"Konto o podanym adresie e-mail już istnieje.","account_error_phone_already_exists":"Konto o podanym numerze telefonu już istnieje.","account_error_mfa_token_mismatch":"Niezgodność kodu tokena oprogramowania","account_error_recaptcha_not_loaded":"Wystąpił problem z siecią. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_recaptcha_validation_failed":"Weryfikacja ReCAPTCHA nie powiodła się. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_sign_in_in_progress":"Oczekująca próba logowania już trwa","account_field_range":"Ogranicz wprowadzanie znaków {0}-{1}","account_field_only_alphanumeric":"Obsługuje tylko znaki alfanumeryczne","account_field_only_alphanumeric_and_symbol":"Obsługuje tylko znaki alfanumeryczne i symbole","account_field_only_chinese_alphanumeric_space_underline":"Obsługuje tylko znaki alfanumeryczne, spacje i podkreślenia","account_field_prefix_without_number_space":"Pierwszy znak nie może być cyfrą ani spacją","account_field_suffix_without_space":"Nie może kończyć się spacją","account_field_without_repeat_space":"Nie można użyć wielu spacji z rzędu","account_field_can_not_only_alphanumeric":"Nie możesz używać tylko liter lub cyfr","account_field_must_have_number_characters":"Musi zawierać cyfry","account_field_verification_code":"Kod weryfikacyjny musi składać się z sześciu cyfr","account_field_invitation_code":"Kod zaproszenia musi być alfanumeryczny","account_field_phone_number":"Nieprawidłowy format numeru telefonu","account_invalid_email_format":"niewłaściwy format wiadomości email","account_sign_out_confirm":"Czy na pewno chcesz się wylogować? Spowoduje to zatrzymanie wszystkich zadań.","account_sign_out_anyway":"Wyloguj się mimo wszystko","account_signing_out":"Wylogowanie...","account_request_save_settings":"Ustawienia nie są zapisywane. Musisz zapisać zmiany przed wylogowaniem.","pay":"Płacić","pay_with_credit":"Zapłać za przyspieszenie pobierania. Potrzebuje około {0} kredytu","pay_with_credit_payed":"Przyspieszenie. Nadal potrzebuje około {0} kredytu","create_payment":"Utwórz płatność","pay_target":"Cel","pay_for_torrent":"Zapłać za {0}","your_subid":"Twój identyfikator podrzędny","your_credits":"Twoje kredyty","pay_point_for_data":"Zapłać {0} punktu za {1} danych","auto_renew":"Włącz automatyczne odnawianie","transaction_details":"szczegóły transakcji","transaction_id":"ID","transaction_payer":"Płatnik","transaction_payee":"Odbiorca płatności","transaction_category":"Kategoria","transaction_changed_amount":"Zmieniona kwota","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Czas utworzenia","receipt_code":"Kod odbioru","transfer_amount":"Kwota przelewu","code_the_receipt_code":"Skopiuj poniższy kod paragonu do płatnika","fill_the_receipt_code":"Przelew poprzez wpisanie kodu płatności podanego przez odbiorcę","expense":"Koszt","copied":"Skopiowane","transfer":"Przenosić","receive":"Odbierać","copy":"Kopiuj","withdraw_fund":"Wycofaj fundusz","category_paydata_payer":"Koszt danych","category_paydata_payee":"Dochód z danych","category_transfer":"Przenosić","category_bonus":"Premia","category_recharge":"Naładuj","status_pending":"aż do","status_completed":"zakończony","status_finish":"skończyć","status_failed":"przegrany","tip_invalid_receiver":"Nieprawidłowy kod odbiornika","tip_invalid_amount":"Kwota kredytu powinna być liczbą zmiennoprzecinkową z zakresu 0-1000 (minimalna dokładność to 0,001)","credit_get_more":"Zdobądź więcej kredytów","credit_no_data":"Brak dostępnych danych","credit_loading":"Ładowanie...","credit_not_enough_amount":"Za mało kredytów","credit_amount_not_enough":"Za mało kredytów","credit_payee_not_exist":"Odbiorca płatności nie istnieje","credit_invalid_amount":"Nieprawidłowa kwota kredytu","credit_can_not_transfer_to_yourself":"Nie można przenieść na siebie","credit_latest":"Najnowszy","credit_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","add_subtitles":"Dodaj napisy","open_file":"Otwórz plik...","advanced_options":"Zaawansowane opcje","title":"Tytuł","location":"Lokalizacja","subtitle_file":"plik z napisami","unsupported_subtitle_type":"Typ pliku {0} nie jest obsługiwanym typem napisów","not_default_player":"Domyślny odtwarzacz wideo nie jest ustawiony","this_is_an_audio_file":"To jest plik dźwiękowy","the_added_subtitle_already_exists":"Dodane napisy już istnieją","stop_stream_player":"Media strumieniowe zostały przerwane, ponieważ zadanie zostało wstrzymane lub usunięte","stop_player":"Odtwarzacz został zamknięty, ponieważ plik został usunięty","playing_timeout_hint":"Koniec czasu oczekiwania. Proszę sprawdzić zadanie","autoplay_hint":"Autoodtwarzanie może być zablokowane przez Twoją przeglądarkę. Jeśli odtwarzacz nie gra, spróbuj kliknąć ekran, aby kontynuować","remove_playing_confirm":"{0} jest nadal odtwarzane, usunięcie go zatrzyma gracza. Czy na pewno chcesz to usunąć?","unsupported_in_browser":"Nieobsługiwane jeszcze w trybie przeglądarki","client":"Klient","warning":"Ostrzeżenie","enable":"Włączać","disable":"Wyłączyć","auto":"Automatyczny","encrypt_connection":"Szyfruj połączenie","encrypted_connection":"Szyfrowane połączenie","non_encrypted_connection":"Nieszyfrowane połączenie","connected_wires_not_disconnect":"Podłączone przewody nie zostaną odłączone","audio":"audio","video":"wideo","image":"obraz","subtitle":"podtytuł","zip":"zamek błyskawiczny","text":"tekst","unknown":"nieznany","add":"Dodać","undo":"Cofnij","backup":"Kopia zapasowa","not_default_app":"${displayName} nie jest Twoją domyślną aplikacją do obsługi torrentów i multimediów, czy chcesz ją ustawić jako domyślną?","dont_show_again":"Nie pokazuj więcej","go_to_settings":"Przejdź do ustawień","about_alphabiz":"Około ${displayName}","last_check_at":"Ostatnia kontrola o godz","update_channel":"Zaktualizuj kanał","check_for_update":"Sprawdź aktualizacje","checking_for_update":"Sprawdzanie aktualizacji...","no_update_available":"Brak dostępnych aktualizacji","update_available":"Dostępna aktualizacja","update_now":"Aktualizuj teraz","update_later":"Zaktualizuj później","click_to_update":"Kliknij przycisk AKTUALIZUJ TERAZ, aby pobrać i zaktualizować","update_failed":"Aktualizacja nie powiodła się","update_failed_message":"Wystąpił błąd podczas aktualizacji:","check_shasum_failed":"Nie udało się sprawdzić integralności instalatora","downloading_update":"Pobieranie aktualizacji...","ready_to_update":"Gotowy do aktualizacji","restart_to_update":"Aktualizacja jest pobierana. ${displayName} wyjdzie na chwilę w celu aktualizacji.","already_latest":"Obecna wersja ({0}) jest już najnowsza","update_timeout":"Limit czasu aktualizacji","no_available_release":"Brak dostępnej wersji","no_available_installer":"Brak dostępnego instalatora","feedback":"Informacja zwrotna","select_a_type":"Wybierz typ","category":"Kategoria","select_a_category":"Wybierz kategorię","require_title":"Tytuł jest wymagany","describe_your_problem":"Opisz swój problem","report_a_bug":"Zgłoś błąd","request_a_new_feature":"Poproś o nową funkcję","download_or_upload":"Pobierz Prześlij","others":"Inni","submit_with_system_info":"Prześlij z informacjami o systemie","submit_feedback":"Prześlij opinię","tweet_us":"Tweetnij z nami","tweet_too_long":"Tweet jest za długi","delete_characters":"Usuń co najmniej znak(i) {0}","rest_characters":"Możesz wprowadzić {0} więcej znaków","update_alphabiz":"Zaktualizuj ${displayName}","current_version":"Obecna wersja","cancel_update":"Anuluj aktualizację","slow_download_speed":"Pobieranie jest zbyt wolne","slow_download_speed_caption":"Pobieranie instalatora jest teraz zbyt wolne. Sprawdź stan sieci","update_canceled":"Aktualizacja anulowana","current_version_release_time":"Czas wydania aktualnej wersji","expired_app":"${displayName} Wygasł","version_out_of_date":"Wersja nieaktualna","have_to_update":"Wersja ${displayName} jest nieaktualna. Niektóre protokoły lub interfejsy API są przestarzałe. Musisz zaktualizować ${displayName} przed kontynuowaniem.","exit_alphabiz":"Wyjdź ${displayName}","exit_and_update":"Wyjdź i zastosuj aktualizację","new_version_hint":"Dostępna jest nowa wersja","no_new_version":"Brak nowej wersji","current_is_latest":"Obecna wersja jest już najnowsza","click_to_check_update":"Kliknij przycisk [SPRAWDŹ AKTUALIZACJĘ], aby sprawdzić dostępność aktualizacji","download_latest_version_from_website":"Odwiedź oficjalną stronę internetową, aby pobrać najnowszą wersję","to_the_website":"Do strony internetowej","network_diagnotic":"Diagnostyka sieci","diagnotic":"Diagnostyczny","click_to_check":"Kliknij, aby sprawdzić","click_to_check_again":"Kliknij, aby sprawdzić ponownie","checking":"Kontrola","online":"online","offline":"offline","dns_look_up":"Wyszukiwanie DNS","error":"Błąd","aws_service":"Usługa AWS","network_pings":"Ping sieciowy","not_found":"Nie znaleziono","packet_loss":"Utrata pakietów","official_site":"Oficjalna strona","download_test":"Pobierz test","test_task":"Zadanie testowe {0}","download_failed":"Pobieranie nie udane","second_spend":"{0} s wydatków","open_default_player_failed":"Nie udało się otworzyć domyślnego odtwarzacza","copied_to_clipboard":"Skopiowane do schowka","go_to":"Iść do","region_not_available":"Region niedostępny","region_not_available_message":"Przepraszam! Twój region nie umożliwia korzystania z tej aplikacji. Ta aplikacja zostanie zamknięta po {0} sekundach","confirm":"Potwierdzać","no_available_result":"Brak dostępnych wyników","invalid_password_format":"nieprawidłowy format hasła","invalid_password_format_same":"Hasło jest takie samo jak oryginalne hasło","error_password":"Błędne hasło","keychain_setting":"Brelok do kluczy","setting_description":"Przechowywanie w chmurze: zapisuj kluczowe dane w chmurze.\\nZmień hasło: zmiana hasła do klucza biblioteki multimediów.\\nMnemonik: alternatywna metoda generowania i przywracania kluczy.\\nImportuj klucz lokalny: Importuj lokalnie zapisany klucz do biblioteki multimediów.\\nKlucz eksportu: zapisuje bieżące dane biblioteki multimediów w pliku lokalnym lub w chmurze.\\nKopia zapasowa klucza do chmury: zaktualizuj bieżące dane biblioteki multimediów do chmury w celu wykonania kopii zapasowej.","refresh_status":"Stan aktualizacji","confirm_import_key":"Potwierdź klucz importu","confirm_update_cloud_key":"Masz już klucz w chmurze. Aktualizacja klucza spowoduje zastąpienie oryginalnego klucza. Czy na pewno chcesz zaktualizować klucz przechowywany w chmurze","export_key_with_cloud":"Wprowadź niezależne hasło, które ustawiłeś, aby wyeksportować klucz biblioteki przechowywany w chmurze i zablokuj plik klucza hasłem odblokowania","store_cloud_key_prompt_password":"Wprowadź niezależne hasło, aby przechowywać klucz biblioteczny w chmurze","update_cloud_key_prompt_password":"Ustaw niezależne hasło, aby zaszyfrować klucz biblioteki, a następnie zaktualizuj go do chmury","enable_cloud_storage_prompt_password":"Ustaw hasło do klucza przechowywanego w chmurze, za pomocą którego możesz pobrać klucz z chmury","input_unlock_password":"Ustaw hasło odblokowujące","export_local_prompt_password":"Ustaw hasło odblokowujące, aby zaszyfrować plik klucza. Nie zapiszemy dla Ciebie tego hasła, więc jeśli je zgubisz, nie będziesz mógł odblokować swojego klucza bibliotecznego","require_unlock_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","require_independent_password":"Wprowadź niezależne hasło, aby uzyskać klucz przechowywany w chmurze","import_local_prompt_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","select_encrypt_mode":"Wybierz tryb szyfrowania","update_cloud_key":"Zaktualizuj klucz przechowywany w chmurze","backup_to_cloud":"Utwórz kopię zapasową klucza biblioteki w chmurze","save_local":"Zapisz klucz biblioteki jako lokalny zaszyfrowany plik","create_new_key":"Utwórz nowy klucz biblioteki","creating_lib_key":"Tworzę klucz biblioteki...","loading_lib_key":"Ładowanie klucza biblioteki...","failed_to_create_lib_key":"Nie udało się utworzyć klucza biblioteki","failed_to_load_lib_key":"Nie udało się załadować klucza biblioteki","import_local_key":"Importuj klucz lokalnie","import_lib_key_from_local":"Zaimportuj klucz biblioteki lokalnie","import_from_cloud":"Zaimportuj klucz biblioteki z chmury","create_or_import_key":"Utwórz lub zaimportuj klucz biblioteki","create_or_import_key_desc":"Klucz biblioteczny to niezależny klucz używany do pobierania i publikowania treści w zdecentralizowanej bazie danych.","store_your_lib_key":"Przechowuj swój klucz do biblioteki","export_cloud_key":"Eksportuj klucz z chmury","export_current_key":"Eksportuj bieżący klucz","change_password":"Zmień hasło","enable_cloud_storage":"Włącz przechowywanie w chmurze","disable_cloud_storage":"Wyłącz przechowywanie w chmurze","disable_cloud_storage_desc":"Wyłączenie przechowywania w chmurze spowoduje usunięcie klucza zapisanego w chmurze, upewnij się, że klucz jest zapisany lokalnie","sync_at":"Synchronizuj o: {time}","cloud_storage_enabled":"Synchronizuj pęku kluczy z {storage}","cloud_storage_disabled":"Przechowywanie w chmurze wyłączone","saved_locally":"Zapisane lokalnie","export_key":"Eksportuj plik klucza","cloud_independent_password":"Hasło niezależne od chmury","key_file_unlock_password":"Hasło odblokowania pliku klucza","re_enter_unlock_password":"Wprowadź ponownie hasło odblokowujące","independent_password_not_enabled":"Obecne hasło to hasło do konta Alphabiz (nie jest ustawione żadne niezależne hasło)","use_cognito_hash":"Użyj hasła do konta Alphabiz","use_independent_password":"Użyj niezależnego hasła","keychain_lib":"klucz do biblioteki","loading_keychain_state":"Ładowanie pęku kluczy...","backing_up":"Tworzenie kopii zapasowej...","backup_current_key":"Utwórz kopię zapasową bieżącego klucza w chmurze","cloud_lib_key_not_existed":"klucz biblioteki nie istnieje w chmurze","open_keychain_file":"Otwórz plik pęku kluczy","confirm_open_abk":"Czy chcesz otworzyć plik ABK","use_the_key":"Użyj klucza","backup_the_key":"Utwórz kopię zapasową klucza w chmurze","keychain_data_does_not_exist":"Dane pęku kluczy nie istnieją","timeout of 0ms exceeded":"Wystąpił problem z siecią, spróbuj ponownie później","XhrError":"Wystąpił problem z siecią, spróbuj ponownie później","payer credit amount is not enough":"Za mało kredytów","payee does not exist":"Odbiorca płatności nie istnieje","block_list_manage":"Zarządzaj listą zablokowanych","blocked_users":"Zablokowani użytkownicy","blocked_channels":"Zablokowane kanały","unblock_user":"Odblokuj użytkownika","unblock_channel":"Odblokuj kanał","no_blocked_user":"Brak zablokowanego użytkownika","no_blocked_channel":"Brak zablokowanego kanału","field_required":"{0} jest wymagane","setting":"Ustawienie","unknown_media":"Nieznane media","settings_button_visible":"Przycisk widoczny","settings_setting":"Ustawienie","settings_playback_rate":"Szybkość odtwarzania","settings_subtitle":"Podtytuł","settings_pip":"Pypeć","settings_fullscreen":"Pełny ekran","settings_subtitle_options":"Opcje napisów","settings_normal":"Normalna","settings_italic":"italski","settings_lighter":"Zapalniczka","settings_bolder":"Odważniejszy","settings_small":"Mały","settings_large":"Duży","about":"O","services":"Usługi","hide":"Ukrywać","hide_others":"Ukryj inne","show_all":"Pokaż wszystko","quit":"Zrezygnować","edit":"Edytować","redo":"Przerobić","cut":"Cięcie","paste":"Pasta","select_all":"Zaznacz wszystko","view":"Pogląd","reload":"Przeładować","toggle_full_screen":"Przełącz tryb pełnoekranowy","toggle_developer_tools":"Przełącz Narzędzia dla programistów","window":"Okno","minimize":"Zminimalizować","bring_all_to_front":"Przenieś wszystko na wierzch","help":"Pomoc","github_repo":"Repozytorium Github","issues":"Kwestie","learn_more":"Ucz się więcej","learn_spelling":"Naucz się pisowni","lookup_selection":"Wyszukaj „{selection}”","search_with_google":"Szukaj za pomocą Google","save_as":"Zapisz jako","save_image":"Zapisać obraz","save_image_as":"Zapisz obraz jako ...","copy_link":"Skopiuj link","save_link_as":"Zapisz link jako ...","copy_image":"Skopiuj obraz","copy_image_as":"Kopiuj obraz jako...","copy_image_address":"Kopiuj adres obrazu","download_complete":"Pobieranie zakończone","download_complete_message":"{0} jest pobierany","is_running":"{0} działa","open":"Otwórz {0}","launch_problem":"Problem z uruchomieniem","ask_clear_data":"Wygląda na to, że próbujesz uruchomić {0}, ale kilka razy nie powiodło się.\\nCzy chcesz wyczyścić wszystkie dane aplikacji i spróbować uruchomić ją później?","launch_directly":"Uruchom bezpośrednio","clear_all_data":"Wyczyść wszystkie dane","ask_clear_confirm":"Spowoduje to usunięcie wszystkich konfiguracji, dzienników i danych użytkownika!\\nPo tym może być konieczne ponowne uruchomienie {0}.\\nCzy na pewno usunąć dane?","confirm_launch":"Nie, uruchom bezpośrednio","confirm_clear":"Tak, wyczyść wszystkie dane"}')},"06cd":function(e,t,a){"use strict";a("326b")},"06e8":function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return c}));a("d4b5"),a("de6c"),a("7996");var n=a("e75b");const o=new n["a"].Rest("ABDevRest"),i=e=>{let t,a,n,i;const r=()=>!1!==i,s=e=>{t=e.query_type,a=e.query_params||{},n=[],i=void 0},l=()=>o.post("/credit/transaction/query",{query_type:t,query_params:JSON.stringify(a),next_token:i}).then((e=>{var t;n.push(...e.items),i=null!==(t=e.nextToken)&&void 0!==t&&t}));return e&&s(e),{reset:s,getData:()=>n,hasNext:r,fetch:l}},r=n["a"].GQL,s={enable:async e=>await r.enableUserListener(e),disable:async()=>{r.removeUserListener("credits"),r.disableUserListener()},addHandler:(e,t)=>{r.addUserListener("credits",(a=>{void 0!==a[e]&&t(a[e])}))},addHandlers:(e,t)=>{r.addUserListener("credits",(t=>{Object.entries(t).forEach((([t,a])=>{e[t]&&e[t](a)}))}),t)}},l={state:"disabled",resolver:null,async enable({rootState:e,rootGetters:t,dispatch:a}){const n=()=>e.account.sub,o=()=>t.transactions.expenses,i=e=>a("CREDIT_PAY_DATA_CANCEL",{transactionId:e.id}),r=e=>t=>{const a=2592e5;if("PAYDATA"!==t.category)return!1;if(t.payerId!==n())return!1;if("PENDING"!==t.status)return!1;const o=e.getTime()-new Date(t.createdAt).getTime();return!(o<=a)},s=async()=>{const e=o(),t=e.filter(r(new Date));for(const a of t)console.log("TxnCancellation:",a.id),await i(a)};c.state="idle";const l=3e5;while(!["stopping","disabled"].includes(c.state)){let e=l;if("idle"===c.state){c.state="processing";const t=(new Date).getTime();if(await s(),["stopping","disabled"].includes(c.state))break;const a=(new Date).getTime();e-=Math.max(0,Math.min(l,a-t))}if(e&&(c.state="waiting",await new Promise((t=>setTimeout(t,e))),["stopping","disabled"].includes(c.state)))break;c.state="idle"}console.error("TxnCancellation resolver"),c.resolver?c.resolver():console.error("resolver not found")},async disable(){if(["stopping","disabled"].includes(c.state))return;if(["waiting"].includes(c.state))return void(c.state="disabled");const e=new Promise((e=>{c.resolver=()=>{e(),c.resolver=null}}));c.state="stopping",await e,c.state="disabled"}},c=new Proxy(l,{get(e,t,a){return Reflect.get(e,t,a)},set(e,t,a,n){return"state"===t&&console.log("TxnCancellation:",a),Reflect.set(e,t,a,n)}})},"071f":function(e,t,a){"use strict";a("25b9")},"072b":function(e,t,a){"use strict";a.d(t,"c",(function(){return d})),a.d(t,"d",(function(){return u})),a.d(t,"a",(function(){return _})),a.d(t,"e",(function(){return p})),a.d(t,"h",(function(){return m})),a.d(t,"b",(function(){return h})),a.d(t,"g",(function(){return g})),a.d(t,"f",(function(){return f}));a("de6c");const n="`~!@#$%^&*()\\-_=+[\\]\\\\;',./{}|:\"<>?",o=(e,t)=>{const a=new RegExp(`^[${t.join("")}]*$`);return a.test(e)},i=(e,t=1,a=1/0)=>void 0!==e&&("string"===typeof e&&0===e.length||e.length>=t&&e.length<=a),r=e=>!/\s\s/.test(e),s=e=>/[0-9]/g.test(e),l=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`^[^${t.join("")}]`).test(e)),c=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`[^${t.join("")}]$`).test(e)),d=function(e){const t=["0-9","A-Z","a-z","一-龥","\\s","_"];if(!o(e,t))return this.$t("account_field_only_chinese_alphanumeric_space_underline");const[a,n]=[2,15];return i(e,a,n)?l(e,["0-9","\\s"])?c(e,["\\s"])?!!r(e)||this.$t("account_field_without_repeat_space"):this.$t("account_field_suffix_without_space"):this.$t("account_field_prefix_without_number_space"):this.$t("account_field_range",[a,n])},u=function(e){const t=["0-9","A-Z","a-z",n];if(!o(e,t))return this.$t("account_field_only_alphanumeric_and_symbol");const[a,r]=[8,20];return i(e,a,r)?s(e)?void 0:this.$t("account_field_must_have_number_characters"):this.$t("account_field_range",[a,r])},_=function(e){if(!/^([a-zA-Z]|[0-9])(\w|-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(e))return this.$t("account_invalid_email_format")},p=function(e){if(!o(e,["0-9"]))return this.$t("account_field_phone_number");const[t,a]=[3,11];return i(e,t,a)?void 0:this.$t("account_field_range",[t,a])},m=function(e){return o(e,["0-9"])&&i(e,6,6)?void 0:this.$t("account_field_verification_code")},h=function(e){const t=["0-9","A-Z","a-z"];if(!o(e,t))return this.$t("account_field_invitation_code")},g=function(e){const t=["0-9","a-f","-"];return o(e,t)&&"8-4-4-4-12"===e.split("-").map((e=>e.length)).join("-")||this.$t("tip_invalid_receiver")},f=function(e){return/^((\d{1,3}(\.\d{1,3})?)|(1000(\.0{1,3})?))$/.test(e)?[""+parseFloat(e)===e,parseFloat(e)<=1e3,parseFloat(e)>=.001,parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)].some((e=>!e))?this.$t("tip_invalid_amount"):void 0:this.$t("tip_invalid_amount")}},"0742":function(e,t,a){},"076e":function(e,t,a){"use strict";a("de6c");const n={oauth_stage:{authorize:["Authorizing","授权中...","授權中..."],logging_in:["Logging in","登陆中...","登入中..."],connecting:["Connecting","关联中...","關聯中..."]},oauth_connect:{connect_to:["Connect to {provider}","关联 {provider} 账号","關聯 {provider} 賬號"],notify:{connected:["{provider} connected","已关联 {provider} 账号","已關聯 {provider} 賬號"]}},oauth_disconnect:{disconnect:["Disconnect {provider}","解除 {provider} 账号关联","解除 {provider} 賬號關聯"],notify:{disconnected:["{provider} disconnected","已解除 {provider} 账号关联","已解除 {provider} 賬號關聯"]}},oauth_login:{sign_in_with:["Sign in with {provider}","通过 {provider} 登录","通過 {provider} 登錄"],notify:{signed_in:["Signed in","登录成功","登錄成功"]}},oauth_error:{can_not_login_unconnected_account:["Can not log in to an unconnected {provider} account","无法登录未关联的 {provider} 账号","無法登錄未關聯的 {provider} 賬號"],oauth_account_has_been_connected:["The {provider} account has been connected","该 {provider} 账号已建立关联","該 {provider} 賬號已建立關聯"]},oauth_unset:["unset","未关联","未關聯"]},o=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};t["a"]={messages:o(n)}},"0885":function(e,t,a){"use strict";(function(e){a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));a("7a76"),a("de6c");var n=a("3387"),o=a("f680"),i=a("5584"),r=a("d310"),s=a("1926"),l=a("d7df"),c=a("84f6"),d=a("d558");const u={started:[],toVerify:{},toSubmit:{},toFinish:{},toPause:{}},_={},p=1e7,m="\n background-color: rgb(90,90,90);\n color: white;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(161,161,161);\n",h=()=>{const t={set:t=>e.notified_credit_not_enough_amount=t,get:()=>!!e.notified_credit_not_enough_amount};t.get()||(t.set(!0),o["a"].create({group:"credit_not_enough_amount",message:s["b"].t("credit_not_enough_amount"),type:"negative",position:"bottom-right",timeout:6e3,actions:[{icon:"close",color:"negative",handler:()=>t.set(!1)}]}))};function g(e,t){_[e]=t}function f(e,t=!1){t?(console.log("restart transaction",e),l["a"].emit("restart_payment",e)):l["a"].emit("credit_payment_created",e),u.started.push(e.id)}async function b(e,t=!1,a){console.log("Create payment",e,t);const{infoHash:n,remoteSubId:i,payed:r}=e,l=Date.now().toString();try{const c=await a.dp$request(i,r,{infoHash:n,timestamp:l});f({...e,id:c}),t||o["a"].create(s["b"].t("success"))}catch(c){if(console.log("dp$request failed",c.message),"credit_not_enough_amount"===c.message)return void h();t||o["a"].create(c.message||c)}}function y(e){e.$watch("dp$incomeStatusMapper",((e,t)=>{Object(n["isEqual"])(e,t)||e.PENDING&&e.PENDING.forEach((e=>{u.toVerify[e]&&u.toVerify[e](),u.toSubmit[e]&&u.toSubmit[e]()}))})),e.$watch("dp$expenseStatusMapper",((t,a)=>{Object(n["isEqual"])(t,a)||(t.PENDING&&t.PENDING.forEach((t=>{if(u.started.includes(t))return;const a=e.dp$expenseTxnDict[t],n=JSON.parse(a.meta);console.log("dp$restart from StatusMapper"),f({infoHash:n.infoHash,remoteSubId:a.payeeId,payed:a.amount,autoRenew:!!_[n.infoHash],id:a.id},!0)})),t.COMPLETED&&t.COMPLETED.forEach((e=>{u.toFinish[e]&&u.toFinish[e]()})))})),l["a"].on("verify_payment",(t=>{if(console.log("onVerify",t),void 0===u.toVerify[t.id]){const a=async()=>{u.toVerify[t.id]=!1;const a=e.dp$incomeTxnDict[t.id],n=e=>{throw new Error(`DataPayment(${t.id}) Verify failed: ${e}`)};a.amount!==t.payed&&n("mismatched amount"),l["a"].emit("payment_verified",t)};u.toVerify[t.id]=a}const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.id)&&(u.toVerify[t.id]&&u.toVerify[t.id](),delete u.toVerify[t.id])})),l["a"].on("torrent_metadata",(t=>{var a;l["a"].emit("save_torrent_file",t),g(t,!0);const n=e.dp$expenseHashMapper[t];if(!n)return;const o=null===(a=e.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>n.includes(e)));o&&o.length&&o.forEach((a=>{const n=e.dp$expenseTxnDict[a];console.log("dp$restart from resumeAccelerate"),f({infoHash:t,remoteSubId:n.payeeId,payed:n.amount,autoRenew:_[t],id:n.id},!0)}))})),l["a"].on("request_renew",(t=>{var n;const{subId:o,infoHash:i,peerId:s}=t,l=Object(r["isElectron"])()||Object(d["a"])()?c["a"].allTasks.find((e=>e.infoHash===i)):a("c620").getTaskInstance();if(!l||l.paused||l.done||!l.connections)return;const u=null===(n=l.connections)||void 0===n?void 0:n.find((e=>e.subId===o));if(!u)return;if(!u.hasResource)return void console.log("Remote peer does not have resource. Skip renew.",o,i,s);const _=e.dp$expenseHashMapper[i]||[],m=e.dp$expenseStatusMapper.PENDING||[],h=(null===m||void 0===m?void 0:m.filter((e=>_.includes(e))))||[];if(h.length>10)return console.log("too many pending payments",h);const f=h.filter((t=>{if(!e.dp$expenseTxnDict)return!1;if(e.dp$expenseTxnDict[t]){const a=e.dp$expenseTxnDict[t];return"PENDING"===a.status&&a.payeeId===o}return!1}));if(f.length>3)return console.log(`Too many pending payments for remote subId ${t.subId}`,h);const y=l.length-l.recieved;let v=t.payCount||10;y{console.log("payment completed",t),void 0===u.toSubmit[t.transactionId]&&(u.toSubmit[t.transactionId]=async()=>{u.toSubmit[t.transactionId]=!1,await e.dp$submit(t.transactionId),l["a"].emit("finish_payment",t)});const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.transactionId)&&u.toSubmit[t.transactionId]&&u.toSubmit[t.transactionId]()})),l["a"].on("payment_finished",(t=>{console.log("Finished",t.id),void 0===u.toFinish[t.id]&&(u.toFinish[t.id]=async()=>{u.toFinish[t.id]=!1;try{await e.dp$confirm(t.id);const a=e.dp$expenseTxnDict[t.id];l["a"].emit("payment_closed",{id:a.id,infoHash:JSON.parse(a.meta).infoHash,remoteSub:a.payeeId})}catch(a){console.error("dp$toFinish failed:",a.message)}});const a=e.dp$expenseStatusMapper.COMPLETED;a&&a.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]();const n=e.dp$expenseStatusMapper.PENDING;n&&n.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]()})),l["a"].on("request-provident-payment",(async e=>{console.log("%cRequest provident payment",m,e);try{await i["a"].dispatch("CREDIT_PF_DEPOSIT",{amount:e.count,meta:{infoHash:e.infoHash,timestamp:Date.now().toString()}})}catch(t){"credit_not_enough_amount"===t.message&&h()}}))}t["b"]=y}).call(this,a("0ee4"))},"0925":function(e,t,a){"use strict";function n(e){return{Github:"fab fa-github",Twitter:"fab fa-twitter",Google:"fab fa-google"}[e]}function o({title:e,providerName:t}){const a=(a,o)=>({title:this.$t(e,{provider:t}),ok:!1,cancel:o.cancel,banner:{avatar:n(t),title:this.$t(`oauth_stage.${a}`,{provider:t})}});let o;const i={updateStage:(e,i)=>{o?o.update({banner:{avatar:n(t),title:this.$t(`oauth_stage.${e}`,{provider:t})}}):o=this.$alphabiz.dialog(a(e,i))},hide:()=>{var e;null===(e=o)||void 0===e||e.hide()}};return i}t["a"]={getIcon:n,useOAuthFlowDialog:o}},"0928":function(e,t,a){"use strict";a("7405")},"09e8":function(e,t,a){"use strict";a("d4b5");var n=a("5584");class o{constructor(e){Object.defineProperty(this,"_data",{get(){return e}});const t=()=>{const t=["id","status","payerId","payeeId","amount","meta"],a={};return t.forEach((e=>a[e]=this[e])),Object.defineProperty(a,"_data",{get(){return e}}),a};return t()}get id(){return null}get status(){return null}get payerId(){return null}get payeeId(){return null}get amount(){return null}get meta(){return null}}class i{constructor(e){this.name=e}dp$address(){}dp$credit(){}dp$incomeTxnList(){}dp$expenseTxnList(){}dp$incomeTxnListToday(){}async dp$request(e,t,a){}async dp$cancel(e){}async dp$submit(e,t){}async dp$confirm(e,t){}}a("de6c");const r=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"gainsboro",color:"black"},{bgc:"grey",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)};class s{constructor({parallelCount:e}={}){this.queue=[],this.started=!1,this.parallelCount=e||1}append(...e){return this.queue.push(...e),this}async start(){if(!this.started){this.started=!0;while(this.started)if(this.queue.length>0){const e=this.queue.splice(0,this.parallelCount),t=e=>new Promise((t=>{const a=e();a&&a.then&&a.catch?a.then(t):t()}));await Promise.all(e.map(t))}else await this.wait(3e3)}}stop(){this.started=!1}async wait(e){await new Promise((t=>setTimeout(t,e)))}async promise(e){let t;if(await new Promise((a=>{this.append((()=>e().then(a,(e=>t=e))))})),t)throw t}}const l=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,!["Invalid transaction: status should be PENDING","Invalid transaction: status should be PENDING or COMPLETED","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ConditionalCheckFailed]","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ValidationError]"].includes(e.message)){if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if(["Transaction cancelled, please refer cancellation reasons for specific reasons [None, TransactionConflict]"].includes(e.message))return r("warn",["dp$retry",n,"TransactionConflict",e.code],e.message),!0;if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};class c extends i{constructor(){super("amplify"),this.asyncQueue=new s({parallelCount:1}),this.asyncQueue.start().then((()=>{console.log("dp$asyncQueue: stop")}))}dp$address(){return n["a"].state.account.sub}dp$credit(){return n["a"].state.credits.credit}dp$incomeTxnList(){const e=n["a"].getters.transactions.income.filter((e=>"PAYDATA"===e.category));return e}dp$expenseTxnList(){const e=n["a"].getters.transactions.expenses.filter((e=>"PAYDATA"===e.category));return e}dp$incomeTxnListToday(){const e=n["a"].getters.incomeTodayTransactions.filter((e=>"PAYDATA"===e.category));return e}async dp$request(e,t,a){let o;const i=async()=>{o=await n["a"].dispatch("CREDIT_PAY_DATA_REQUEST",{receiverSub:e,amount:t,meta:a})};return await l(i,5),o.id}async dp$cancel(e){const t=async()=>{await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(t,5)}async dp$submit(e,t){const a=async()=>{t?console.warn("dp$warn: abandoned is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_COMPLETED",{transactionId:e})};await l(a,5)}async dp$confirm(e,t){const a=async()=>{t?console.warn("dp$warn: failed is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(a,5)}}var d=a("7ca3"),u=a.n(d);a("7a76");class _ extends o{__parseStatus(e){const t={0:"PENDING",1:"FINISH",3:"FINISH",4:"COMPLETED",5:"FINISH",6:"FAILED"},a=t[e];if(!a)throw new Error("Unexpected state",e);return a}get id(){return[this._data.publisher,this._data.performer,this._data.index].join("::")}get status(){return this.__parseStatus(this._data.state)}get payerId(){return this._data.publisher}get payeeId(){return this._data.performer}get amount(){return parseInt(this._data.amount)}get meta(){return this._data.meta_data}}const p=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,r("warn",["retryHandler"],e.message),"Out of gas"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("invalid transaction: INSUFFICIENT_BALANCE_FOR_TRANSACTION_FEE"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if("invalid transaction: SEQUENCE_NUMBER_TOO_OLD"===e.message)return r("warn",["dp$retry",n,a,e.code],e.message),!0;if("transaction is rejected: InvalidUpdate - Transaction already in mempool"===e.message)return r("warn",["dp$retry",n,a],e.message),!0;if(e.is_move_error){if("1031"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status was deactivated");if("1281"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status has been changed");throw r("warn",["dp$retry",n,"failed",e.code],e.message),e}if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};let m;class h extends i{constructor(){super("blockchain"),m=window.$blockchain}dp$address(){return m.$store.account.address}dp$credit(){return m.$store.wallet.balance.TestCoin}dp$incomeTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}dp$expenseTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.expensesFilter);return e.map((e=>new _(e)))}dp$incomeTxnListToday(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}async dp$request(e,t,a){const n=async()=>{const n=await m.$store.DataProviding.publishDataProvidingTxn({address:e,amount:t,meta:JSON.stringify(a)}),o=n.getTaskId(),i=[o.publisher,o.performer,o.index].join("::");return i};return await p(n,5)}async dp$cancel(e){const t=async()=>{const t=await m.$store.DataProviding.cancelDataProvidingTxn({txnKey:e});console.log("postTxnCancel >>",t)};await p(t,5)}async dp$submit(e,t){const a=async()=>{const a=await m.$store.DataProviding.submitDataProvidingTxn({txnKey:e,abandoned:t});console.log("postTxnComplete >>",a)};await p(a,5)}async dp$confirm(e,t){const a=async()=>{const a=await m.$store.DataProviding.confirmDataProvidingTxn({txnKey:e,failed:t});console.log("postTxnFinish >>",a)};await p(a,5)}}function g(){const e={},t={},a=b.call(this,{dp$incomeTxnList:"dp$incomeTxnDict",dp$expenseTxnList:"dp$expenseTxnDict"}),n=y.call(this,{dp$incomeStatusMapper:e=>e.status,dp$incomeHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}}),o=y.call(this,{dp$expenseStatusMapper:e=>e.status,dp$expenseHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}});e.updateIncomeData=()=>{a.dp$incomeTxnList(),n("dp$incomeTxnList")},e.updateExpenseData=()=>{a.dp$expenseTxnList(),o("dp$expenseTxnList")};const i=f.call(this,"dp$incomeTxnDict"),r=f.call(this,"dp$expenseTxnDict");e.logIncomeStatus=(e,t)=>i(e,t),e.logExpenseStatus=(e,t)=>r(e,t),this.dp$utils=e}function f(e){const t=(t,a)=>this[e][t]&&r(["dp$status",a||"[payment]","=>",this[e][t].status],t);return(a,n)=>{if(a&&this[e]){if(n)for(const e of Object.keys(n))if(n[e]&&a[e])for(const o of n[e])a[e].includes(o)||t(o,e);if(a.PENDING)for(const e of a.PENDING)n&&n.PENDING&&n.PENDING.includes(e)||t(e)}}}function b(e){const t=(e,t)=>this[e]=t,a=(e,a)=>{const n={};for(const t of this[e])n[t.id]=t;t(a,n)};return Object.entries(e).reduce(((e,[t,n])=>({...e,[t]:()=>a(t,n)})),{})}function y(e){return t=>{const a={};for(const[o,i]of Object.entries(e)){const e={};for(const a of this[t]){const t=i(a);e[t]||(e[t]=[]),e[t].push(a.id)}a[o]=e}const n=(e,t)=>this[e]=t;Object.entries(a).forEach((e=>n(...e)))}}u()(h,"incomeFilter",(e=>m.$store.account.account.address().toShortString()===e.performer)),u()(h,"expensesFilter",(e=>m.$store.account.account.address().toShortString()===e.publisher));const v=[c,h];t["a"]={data(){var e;const t=null!==(e=localStorage.getItem("dataPaymentMixin.mode"))&&void 0!==e?e:"amplify";localStorage.setItem("dataPaymentMixin.mode",t);const a=v.reduce(((e,t)=>{const a=new t;return e[a.name]=a,e}),{});return g.apply(this),{dp$mode:t,dp$interfaces:a,dp$incomeTxnDict:{},dp$incomeStatusMapper:{},dp$incomeHashMapper:{},dp$expenseTxnDict:{},dp$expenseStatusMapper:{},dp$expenseHashMapper:{},dp$source:this}},watch:{dp$mode(e){r(["dp$mode",e]),localStorage.setItem("dataPaymentMixin.mode",e)},dp$incomeTxnList(){this.dp$utils.updateIncomeData()},dp$expenseTxnList(){this.dp$utils.updateExpenseData()}},computed:{dp$credit(){return this.dp$interfaces[this.dp$mode].dp$credit()},dp$address(){return this.dp$interfaces[this.dp$mode].dp$address()},dp$incomeTxnList(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnList()},dp$expenseTxnList(){return this.dp$interfaces[this.dp$mode].dp$expenseTxnList()},dp$incomeTxnListToday(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnListToday()}},methods:{async dp$request(e,t,a){r(["dp$post","request","waiting..."]);const n=await this.dp$interfaces[this.dp$mode].dp$request(e,t,a);return r(["dp$post","request","done"],n),n},async dp$cancel(e){r(["dp$post","cancel","waiting..."],e);const t=await this.dp$interfaces[this.dp$mode].dp$cancel(e);return r(["dp$post","cancel","done"],e),t},async dp$submit(e,t=!1){const a=t?"abandoned":"provided";r(["dp$post","submit",a,"waiting..."],e);const n=await this.dp$interfaces[this.dp$mode].dp$submit(e,t);return r(["dp$post","submit",a,"done"],e),n},async dp$confirm(e,t=!1){const a=t?"failed":"succeeded";r(["dp$post","confirm",a,"waiting..."],e);try{const n=await this.dp$interfaces[this.dp$mode].dp$confirm(e,t);return r(["dp$post","confirm",a,"done"],e),n}catch(o){var n;if(console.warn("Error when confirming transaction",e,o),null!==(n=o.message)&&void 0!==n&&n.includes("payee does not exist")){const t=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]");t.push(e),localStorage.setItem("_transactions_missing_payee_",JSON.stringify(t))}}},__dp$notify__(){const e="amplify"===this.dp$mode?"blockchain":"amplify";this.$q.notify({group:"dp$mode_warning",message:`Current Data Payment Mode: "${this.dp$mode}"`,type:"warning",position:"bottom",timeout:0,actions:[{noCaps:!0,color:"black",label:`Switch to ${e}`,handler:()=>{this.dp$mode=e,location.reload(),a("d310").isElectron()&&a("b052").ipcRenderer.send("reload-webtorrent-window")}},{noCaps:!0,color:"black",label:"Close"}]})}},created(){this.dp$utils.updateIncomeData(),this.dp$utils.updateExpenseData()}}},"0c2f":function(e,t,a){},"0c70":function(e,t,a){},"0c7a":function(e,t,a){},"0cdb":function(e,t,a){"use strict";a.r(t),a.d(t,"notifyGeneralUpdate",(function(){return n})),a.d(t,"notifyMessage",(function(){return o})),a.d(t,"transfer",(function(){return i})),a.d(t,"notifyCreditChange",(function(){return r})),a.d(t,"generalCommand",(function(){return s})),a.d(t,"createUser",(function(){return l})),a.d(t,"updateUser",(function(){return c})),a.d(t,"deleteUser",(function(){return d})),a.d(t,"createInvitation",(function(){return u})),a.d(t,"updateInvitation",(function(){return _})),a.d(t,"deleteInvitation",(function(){return p})),a.d(t,"createMessageTimer",(function(){return m})),a.d(t,"updateMessageTimer",(function(){return h})),a.d(t,"deleteMessageTimer",(function(){return g})),a.d(t,"createTransaction",(function(){return f})),a.d(t,"updateTransaction",(function(){return b})),a.d(t,"deleteTransaction",(function(){return y})),a.d(t,"createTask",(function(){return v})),a.d(t,"updateTask",(function(){return w})),a.d(t,"deleteTask",(function(){return k})),a.d(t,"createProvidentFund",(function(){return S})),a.d(t,"updateProvidentFund",(function(){return C})),a.d(t,"deleteProvidentFund",(function(){return x}));const n="\n mutation NotifyGeneralUpdate(\n $id: String!\n $channel: String!\n $data: String!\n ) {\n notifyGeneralUpdate(id: $id, channel: $channel, data: $data) {\n id\n channel\n data\n }\n }\n",o="\n mutation NotifyMessage($channel: String!, $data: String!) {\n notifyMessage(channel: $channel, data: $data) {\n channel\n data\n }\n }\n",i="\n mutation Transfer(\n $receiver: String!\n $amount: Int!\n $category: Category!\n $meta: String\n ) {\n transfer(\n receiver: $receiver\n amount: $amount\n category: $category\n meta: $meta\n )\n }\n",r="\n mutation NotifyCreditChange($ownerId: String!, $amount: Int!) {\n notifyCreditChange(ownerId: $ownerId, amount: $amount) {\n ownerId\n amount\n }\n }\n",s="\n mutation GeneralCommand($input: String) {\n generalCommand(input: $input)\n }\n",l="\n mutation CreateUser(\n $input: CreateUserInput!\n $condition: ModelUserConditionInput\n ) {\n createUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",c="\n mutation UpdateUser(\n $input: UpdateUserInput!\n $condition: ModelUserConditionInput\n ) {\n updateUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n mutation DeleteUser(\n $input: DeleteUserInput!\n $condition: ModelUserConditionInput\n ) {\n deleteUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n mutation CreateInvitation(\n $input: CreateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n createInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",_="\n mutation UpdateInvitation(\n $input: UpdateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n updateInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n mutation DeleteInvitation(\n $input: DeleteInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n deleteInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n mutation CreateMessageTimer(\n $input: CreateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n createMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",h="\n mutation UpdateMessageTimer(\n $input: UpdateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n updateMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n mutation DeleteMessageTimer(\n $input: DeleteMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n deleteMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n mutation CreateTransaction(\n $input: CreateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n createTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",b="\n mutation UpdateTransaction(\n $input: UpdateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n updateTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n mutation DeleteTransaction(\n $input: DeleteTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n deleteTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n mutation CreateTask(\n $input: CreateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n createTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n mutation UpdateTask(\n $input: UpdateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n updateTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n mutation DeleteTask(\n $input: DeleteTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n deleteTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n mutation CreateProvidentFund(\n $input: CreateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n createProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",C="\n mutation UpdateProvidentFund(\n $input: UpdateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n updateProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n mutation DeleteProvidentFund(\n $input: DeleteProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n deleteProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},"0d10":function(e,t,a){},"0f0c":function(e,t,a){"use strict";a("61af"),a("a3fc");const n=e=>{{const t=a("ae46");return t[e]}};t["a"]=n},"0f74":function(e,t,a){},1:function(e,t,a){e.exports=a("e7ec")},10:function(e,t){},1081:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"10e1":function(e,t,a){},11:function(e,t){},"111a":function(e){e.exports=JSON.parse('{"lib_index":"Ev","lib_edit":"Yayınla","lib_publish":"Yayınla","lib_explore":"Keşfetmek","lib_following":"Takip etme","lib_favorite":"Yerel Favoriler","lib_local_favorites":"Yerel Favoriler","lib_channel":"Kanal","lib_submit":"Göndermek","lib_from_network":"Ağdan merkezi olmayan veritabanı kullanma","welcome_to_lib":"${displayName} Medya Kitaplığına Hoş Geldiniz","register_or_login":"Kayıt Giriş","lib_recommend":"Tavsiye etmek","lib_recommend_desc":"${displayName} Kitaplığına hoş geldiniz! Bu kitaplık, ağdan merkezi olmayan bir veritabanı kullanır. Kullanmaya başlamak için bazı kanalları takip etmeniz gerekiyor.","follow_any_channel_to_continue":"Devam etmek için herhangi bir kanalı takip edin","follow_channels_and_continue":"{0} kanallarını takip edin ve devam edin","show_more_for_me":"Benim için daha fazlasını göster","no_more_recommend":"Daha fazla tavsiye yok","key":"Anahtar","create_key":"Anahtar oluştur","save_key":"Anahtarı kaydet","save_key_file":"Anahtarınızı dosya olarak kaydetmek istiyor musunuz?","import_key":"Anahtarı içe aktar","import":"İçe aktarmak","invalid_key":"geçersiz anahtar","back_to_top":"Başa dönüş","search_for_channel":"kanal kimliği ara","search_channel_no_result":"{0} kimliğine sahip kanal bulunamıyor","please_input_channel_id":"Lütfen kanal kimliğini girin","welcome_help_text":"Bu merkezi olmayan bir medya kitaplığıdır. ihtiyacın var\\n Bu veritabanı için bir hesap oluşturmak için. Yapacağız\\n sizin için otomatik olarak kişisel bir anahtar oluşturun.\\n Zaten bir anahtarınız varsa, içe aktarabilirsiniz.\\n burada","welcome_key_text":"Oturum açtıktan sonra, lütfen [ANAHTARI KAYDET] düğmesine tıklayın\\n Özel anahtarınızı kaydetmek için sağ alt köşedeki\\n Anahtarınızı kaybederseniz, tekrar giriş yapamayabilirsiniz.","redirect_to_recommend":"Görünüşe göre herhangi bir kanalı takip etmemişsiniz. [Keşfet] sayfasına yönlendiriliyor.","channel":"Kanal","follow":"Takip etmek","unfollow":"takibi bırak","following":"Takip etme","share":"Paylaşmak","unfollow_confirm":"Bu kanalı takip etmeyi bıraktığınızdan emin misiniz? Bu kanalın zaman tünelinizdeki tüm gönderileri kaldırılacak.","follow_failed_hint":"İşlem hala arka planda beklemede. İşlem uzun süre uygulanmadıysa lütfen uygulamayı yeniden başlatıp tekrar deneyin.","block":"Engellemek","unblock":"engeli kaldırmak","blocked":"Engellendi","block_channel":"Bu kanalı engelle","block_channel_confirm":"Engellenen kanal, onu zaman çizelgenizden kaldıracaktır. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","block_creator":"Bu kanalın yaratıcısını engelle","unblock_creator":"Bu kanalı oluşturan kişinin engellemesini kaldırın","block_creator_confirm":"Blok oluşturucu, bu oluşturucu tarafından oluşturulan tüm kanalları zaman çizelgenizden kaldıracak. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","share_url_copied":"Paylaşım URL\'si panonuza kopyalandı","follow_time":"Zamanı takip et","update_time":"Güncelleme zamanı","search":"Aramak","type":"Tip","added":"Katma","click_to_task":"Göreve gitmek için tıklayın","lib_already_added":"Bu videoyu zaten eklediniz","description":"Tanım","poster":"Afiş","channel_poster":"kanal afişi","preview":"Ön izleme","creator":"Yaratıcı","creator_detail":"Yaratıcı ayrıntısı","loading_creator":"Yaratıcı bilgisi yükleniyor","wait_for_creator_loaded":"Lütfen içerik oluşturucu bilgilerinin yüklenmesini bekleyin.","follower":"takipçi","followers":"Takipçiler","follower_list":"takipçi listesi","user":"kullanıcı","channel_title":"Kanal başlığı","channel_id":"Kanal Kimliği","post_title":"Yazı başlığı","post_id":"Posta kimliği","import_data_from_excel":"Excel\'den veri içe aktarma","set_excel_keys":"excel anahtarlarını ayarla","excel_import_succeded":"Excel içe aktarma başarılı oldu","excel_import_success_msg":"{0} satırları eklenmeye hazır, {1} geçersiz ve yinelenen {2} öğeler yoksayılıyor","cannot_find_channel":"kanal bulunamıyor","cannot_find_posts":"gönderiler bulunamıyor","add_channel":"kanal ekle","add_post":"Gönderi ekle","edit_channel":"Kanalı düzenle","channel_setting":"kanal ayarı","edit_post":"Gönderiyi düzenle","edit_posts":"Gönderileri düzenle","channel_detail":"kanal detayı","remove":"Kaldırmak","remove_channel":"Kanalı kaldır","remove_channel_confirm":"Bu yayını kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","remove_post":"Gönderiyi kaldır","remove_post_confirm":"Bu kanalı kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","preview_mode":"Önizleme modu","preview_mode_desc":"Bu, kanalınızın bir önizlemesidir. Tüm film oranları burada gösterilmektedir.","edit_user_profile":"kullanıcı profilini düzenle","name":"Takma ad","avatar":"avatarı","no_following":"Takip edilen kanal yok. Gitmek için tıklayın","no_recommend":"Önerilen kanal yok. Gitmek için tıklayın","first_recomment_msg":"Uygulama ilk kez başlatılıyorsa biraz zaman alabilir.","invalid_image":"geçersiz resim","image_not_reachable":"Bu resim url\'sine ulaşılamıyor.","channel_not_found":"kanal bulunamadı","cannot_get_channel_info":"Kanal bilgisi alınamıyor. Bu kanal, yaratıcısı tarafından kaldırılabilir ve artık kullanılamayabilir.","validate_error":"Doğrulama hatası","validate_user_name_no_space":"Kullanıcı adı boşluk içermemelidir","validate_url_no_space":"URL boşluk içermemelidir","validate_user_name_length":"Kullanıcı adının uzunluğu {0} ile {1} arasında olmalıdır","validate_user_desc_length":"Kullanıcı açıklaması {0} karakterden fazla olmamalıdır","validate_user_avatar_url":"Kullanıcı avatarı, 2048 karakterden az bir url olmalıdır","validate_channel_title_length":"Kanal başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_channel_desc_length":"Kanal açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_channel_image_url":"Kanal önizlemesi, 2048 karakterden az bir URL olmalıdır","validate_post_title_length":"Gönderi başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_post_desc_length":"Gönderi açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_post_image_url":"Poster, 2048 karakterden az bir url olmalıdır","validate_post_url":"Geçersiz ${displayName} URL","validate_post_url_length":"${displayName} URL, 2048 karakterden uzun olmamalıdır","film_rate":"film hızı","set_film_rate":"Film hızını ayarla","select_a_rate_before_enter":"Ortam kitaplığına girmeden önce bir film hızı seçmeniz gerekir.","library_available_rate":"Kitaplık kullanılabilir film oranı","rate_g":"G – Genel İzleyiciler","rate_g_desc":"Her yaştan kabul edildi. Çocuklar tarafından görüntülendiği için ebeveynleri rahatsız edecek hiçbir şey yok.","rate_pg":"PG – Ebeveyn Rehberliği Önerilir","rate_pg_desc":"Bazı materyaller çocuklar için uygun olmayabilir. Ebeveynler \\"ebeveyn rehberliği\\" vermeye çağırdı. Ebeveynlerin küçük çocukları için sevmeyebilecekleri bazı materyaller içerebilir.","rate_pg_13":"PG-13 – Ebeveynler Kesinlikle Dikkatli","rate_pg_13_desc":"Bazı materyaller 13 yaşından küçük çocuklar için uygun olmayabilir. Ebeveynlerin dikkatli olmaları önerilir. Bazı materyaller ergenlik öncesi çocuklar için uygun olmayabilir.","rate_r":"R – Kısıtlı","rate_r_desc":"17 yaş altı, eşlik eden ebeveyn veya yetişkin vasi gerektirir. Bazı yetişkin materyalleri içerir. Ebeveynlerin, küçük çocuklarını yanlarına almadan önce film hakkında daha fazla bilgi edinmeleri isteniyor.","rate_nc_17":"NC-17 – Yalnızca Yetişkinler","rate_nc_17_desc":"17 Yaş ve Altı Kimse Kabul Edilmez. Açıkça yetişkin. Çocuklar kabul edilmemektedir.","set_as_private":"Özel olarak ayarla","hide_in_explore":"Keşfet sayfasında bu kanalı gizle","hidden":"Gizlenmiş","select_a_rate":"Lütfen bir film oranı seçin","select_from_tasks":"Görevler arasından seçim yapın","import_from_magnet":"Mıknatıstan içe aktar:?...","input_magnet_url":"Giriş mıknatısı:? url","task_title":"Görev başlığı","set_title":"Başlığı ayarla","add_to_local_favorites":"Yerel favorilere ekle","remove_from_local_favorites":"Yerel favorilerden kaldır","removed_favorite":"favori kaldırıldı","import_or_export_favorites":"Sık Kullanılanları İçe/Dışa Aktar","export_local_favorites":"Yerel sık kullanılanları yedek olarak dışa aktarın","import_favorites_file":"Sık kullanılanlar dosyasını içe aktar","not_a_favorite_file":"Bu dosya favori bir yedekleme dosyası değil","connection_status":"Bağlantı durumu","gun_server_list":"Önbellek Düğümleri","custom_nodes":"Özel önbellek düğümleri","custom_nodes_hint":"Uygulama yeniden başlatıldıktan sonra özel önbellek düğümleri uygulanacak","wait_for_reboot":"Yeniden başlatma bekleniyor...({seconds}s)","reboot_now":"Şimdi yeniden başlat","reboot_later":"Daha sonra yeniden başlat","peer_list":"Doğrudan Düğümler","server":"Düğüm URL\'si","peer":"Akran","peer_id":"düğüm kimliği","connection":"Bağlantı","data_source":"Veri kaynağı","sync":"senkronize et","syncing":"senkronizasyon","sync_completed":"Senkronizasyon tamamlandı","got_all_post":"Zaten tüm gönderilere sahipsin","placeholder_channel_title":"Kanal Adınız","placeholder_channel_desc":"Bu kanal hakkında açıklama","placeholder_post_title":"Film Adı (Yıl)","placeholder_post_desc":"Bu film hakkında açıklama","private_channel":"Özel kanal","creator_blocked":"Oluşturan engellendi","go_to_library":"Kütüphaneye git?","go_to_library_channel_msg":"{0} kütüphane kanalına gitmek ister misiniz?","magnet_does_not_have_name":"Bu mıknatıs:? url\'nin bir adı yok, önce bir gönderi başlığı eklemeniz gerekiyor.","no_available_post":"Yayın yok","following_channel_no_post":"Takip ettiğiniz kanalların hiçbirinde yayın yok. Bu, ağ hatasından kaynaklanabilir. Halihazırda bazı kanalları takip ettiyseniz, gönderiler daha sonra yüklenebilir.","share_to_library":"Kitaplıkta paylaş","quick_start":"Hızlı başlangıç","quick_start_desc":"Bir görev veya dosya ile gönderi oluşturmaya başlayın","select_file":"Dosya Seç...","select_folder":"Dosya Seç...","post_options":"Gönderi seçenekleri","channel_options":"kanal seçenekleri","create_new_channel":"Yeni kanal oluştur","use_existed_channel":"Mevcut kanalı kullan","select_existed_channel":"Mevcut kanalı seçin","uploaded_by":"{title}, {name} tarafından yüklendi","created_by":"{title}, {name} tarafından oluşturuldu","creating_new_channel":"Yeni kanal oluşturuluyor...","created_new_channel":"Yeni kanal oluşturuldu","creating_new_post":"Yeni gönderi oluşturuluyor...","created_new_post":"Yeni gönderi oluşturuldu","create_new_post":"Yeni gönderi oluştur","quick_start_timeout":"{0} zaman aşımı. Bunun nedeni ağ hatası olabilir. Lütfen daha sonra tekrar deneyiniz.","file_too_large":"Dosya çok büyük","file_too_large_msg":"Bu dosya 4GB\'tan ({size}) daha büyük ve hazırlanması uzun zaman alabilir. Devam edeceğinizden emin misiniz?","resolving_folder_files":"Klasör dosyaları çözümleniyor...","folder_too_large":"Klasör çok büyük","folder_too_large_msg":"Bu klasördeki dosyalar 4GB\'tan büyüktür (toplam {size}) ve hazırlanma görevi uzun sürebilir. Yükleyeceğinizden emin misiniz?","creating_new_task":"Yeni görev oluşturuluyor...","cannot_create_task":"Görev oluşturulamıyor","cannot_create_task_msg":"Bu bazı hatalardan kaynaklanabilir. Görev doğru oluşturulduysa görev listesini daha sonra kontrol edebilirsiniz.","cannot_get_task_name":"Görev adı alınamıyor. Önce bir tane girmeniz gerekiyor.","remove_old_task":"Eski görevi kaldır","remove_old_task_desc":"Web modu aynı anda yalnızca bir görev oluşturabilir. Eski görevi kaldırmak istiyor musunuz?","subtitle_list":"Altyazı listesi","optional":"isteğe bağlı","with_subtitle":"{language} altyazılı","maximumSubtitleNum_limit":"Altyazı sayısı maksimuma ulaştı","add_subtitle_url":"Alt yazı indirme linki ekle","cannot_add_subtitle":"Altyazı eklenemedi","cannot_add_subtitle_msg":"Altyazı dili seçilmemiş veya geçersiz indirme bağlantısı.","support_subtitle_type":"Yalnızca srt ve vtt biçimindeki altyazılar desteklenir.","recommend_opensubtitles":"www.opensubtitles.org adresindeki altyazı indirme bağlantısını veya kimliğini kullanmanız önerilir.","take_down":"Devirmek","serious_violation":"Ciddi İhlal","copyright_disputes":"Telif Hakkı Anlaşmazlıkları","adults_only":"Sadece yetişkinler","takedown_reason":"Yayından kaldırma nedeni","takedown_mode":"Yayından kaldırma modu","admins":"Yöneticiler","takedown_user":"Bu yaratıcıyı yayından kaldır","takedown_channel":"Bu kanalı yayından kaldır","takedown_post":"Bu gönderiyi yayından kaldır","select_takedown_reason":"Yayından kaldırma nedenini seçin","takedown_invalid_reason":"Geçersiz yayından kaldırma nedeni","takedown_invalid_user_id":"Geçersiz kullanıcı kimliği. Kimlik 87 karakter içermelidir","takedown_invalid_channel_id":"Geçersiz kanal kimliği. Kimlik 20 karakter içermelidir","takedown_invalid_post_id":"Geçersiz gönderi kimliği. Kimlik 20 karakter içermelidir","takedown_management":"Yönetimi devirmek","users":"Kullanıcılar","channels":"Kanallar","posts":"Gönderiler","you":"Sen","preset":"ön ayar","admin":"yönetici","committee":"Kurul","about_takedown_mode":"Yayından kaldırma modu hakkında:\\nÖn Ayar: Github deposunda yapılandırılmıştır. Hepsi kütüphaneden kaldırılacak.\\nYönetici: Yöneticilerin oy verdiği herhangi biri kaldırılacaktır.\\nKomite: Adminlerin en az yarısının oyları kaldırılacaktır.","cannot_edit_preset":"Önceden ayarlanmış bir satır olduğu için bu satırı düzenleyemezsiniz.","cannot_edit_not_vote":"Oy vermediğiniz için bu satırı düzenleyemezsiniz.","remove_vote":"Oyunuzu kaldırın","post_preload_failed":"Bu gönderi önceden yüklenemedi. İndirme bağlantısı güncel olmayabilir, bu nedenle bu gönderi hemen oynatılamaz.","about_cache_node":"Önbellek düğümü hakkında","edit_cache_node":"Önbellek düğümünü düzenle","create_cache_node":"Önbellek düğümü oluştur","about_cache_node_desc":"${displayName}, silah sunucusunu önbellek düğümü olarak kullanır. Özel düğümleri önceden düzenleyebilirsiniz","learn_how_to_deploy_gun":"Kendi silah sunucunuzu nasıl konuşlandıracağınızı öğrenin","repeat_add":"Görev eklendi, lütfen tekrar eklemeyin.","upload":"Yüklemek","download":"İndirmek","delete":"Silmek","delete_task":"Görevi sil","delete_confirm_message":"Bu görev silinsin mi? bu geri alınamaz","also_delete_files":"Dosyaları da sil","default_delete_files":"Görevi kaldırdıktan sonra indirilen dosyaları varsayılan olarak sil","not_now":"Şimdi değil","delete_autoupload_confirm":"Bu görev, otomatik yükleme dizinine koyduğunuz dosyayı içerir. Bu görevi sil, dosyayı da siler.","delete_anyway":"Yine de sil","upload_too_many_files":"Çok fazla dosya yükle","ask_if_unlimit_upload_amount":"Otomatik yükleme dizini çok fazla dosya içeriyor. Yükleme miktarı sınırlamasını devre dışı bırakmak istiyor musunuz? *Bu, performans sorununa neden olabilir","disable_limitation":"Sınırlamayı devre dışı bırak","not_length":"Çoklu dosya işlemi şu anda desteklenmiyor, lütfen işbirliği yapın","download_torrent":"Dosyayı indir","upload_torrent":"Dosya yükleme","files":"Dosyalar","file":"Dosya","folder":"Dosya","start_all":"Hepsini başlat","pause_all":"Hepsini durdur","remove_all":"Hepsini kaldır","upload_all":"hepsini yükle","clear_history":"Geçmişi temizle","pause_all_finish_payments":"Bu, tüm ödemeleri tamamlayacaktır.","accelerating":"hızlanma","link_task":"Bağlantı görevi","torrent_task":"Dosya görevi","ok":"TAMAM","cancel":"İptal etmek","download_directory_position":"Dizin konumunu indir","torrent_file":"görev dosyası","magnetic_link_incorrect":"Bağlantı formatı yanlış","delete_fail":"Sil başarısız","pause":"Duraklat","paused":"duraklatıldı","stop_torrent":"Durmak","seed":"Tohum","resume":"Sürdürmek","downloading":"indiriliyor","downloaded":"İndirildi","uploading":"yükleniyor","auto_uploading":"otomatik yükleme","uploaded":"yüklendi","pending":"Diğer görevler için bekleniyor","verifying":"Doğrulanıyor","waiting_for_verify":"doğrulama bekleniyor","seeding":"tohumlama","completed":"Tamamlanmış","status":"Durum","task_name":"Görev adı","size":"Boyut","progress":"İlerlemek","sort":"Düzenlemek","ascending":"artan","descending":"Azalan","file_loading":"Dosya yükleniyor...","loading":"Yükleniyor","unknown_status":"Bilinmeyen","play_while_downloading":"Oynamak...","upload_or_play":"Yükle / Oynat","play":"Oynamak","ask_if_upload_file":"Dosya yükleme?","ask_if_upload_or_play":"Dosya yükle veya oynat?","torrent_error":"Görev eklerken hata oluştu:","no_peers":"{0} defadan fazla yeniden deneyin ve uygun eş yok","torrent_exists":"Görev zaten bulunuyor.","show_origin_torrent":"Orijinal görev dosyasını veya url\'yi alın","show_directory":"Bu torrentin açık dizini","task_num":"Görevler","total_upload_speed":"Yükleme hızı","total_download_speed":"İndirme hızı","path_missing":"Hata: torrent yolu bulunamıyor","origin_not_found":"Kaynak görev bilgisi bulunamıyor.","text_copied":"Magnum url panonuza kopyalandı","copy_magnet_uri":"Kopya mıknatıs:? URI","copy_download_uri":"İndirme URI\'sini kopyala","copy_share_uri":"Paylaşım URI\'sini kopyala","uri_copied":"URI başarıyla panonuza kopyalandı","uri_copy_failed":"uri kopyalanamadı","more":"Daha fazla...","toggle_list_mode":"Liste modunu değiştir","comment":"Yorum","operations":"Operasyonlar","open_directory":"Açık sözlük","no_downloading_task":"İndirme görevi yok","remove_all_downloading_tasks":"Tüm indirme görevleri kaldırılsın mı?","remove_all_upload_tasks":"Tüm yükleme görevleri kaldırılsın mı?","remove_autoupload_files":"Otomatik yükleme dosyalarını kaldır","remove_all_history":"Tüm geçmiş kaldırılsın mı?","remaining":"Geriye kalan","created_time":"Oluşturma zamanı","used_time":"Kullanılan zaman","completed_time":"Tamamlanan süre","yesterday":"Dün","before_yesterday":"{empty}","earlier":"Daha erken","miss_file":"Bazı dosyalar eksik","delete_miss_file_task":"{0} içinde eksik fom dosyaları var.","common_peer":"ortak akran","ab_peer":"${displayName} emsal","ab_peer_verified":"Doğrulanmış ${displayName} emsal","ab_peer_available":"${displayName} emsal(ler) mevcut","alphabiz_accelerating":"${displayName} hızlanıyor","income":"Gelir","income_info":"Gelir(bugün/toplam)","total_income_info":"Gelir: {0}(bugün) / {1}(toplam)","login_to_see_income":"Gelir istatistiklerini görmek için giriş yapın","credit_cost":"Kredi maliyetleri","downloaded_by_payment":"Payments tarafından indirildi","file_not_found":"Bu dosya yerelde bulunamıyor","no_task":"Sorma","no_matched_task":"Eşleşen görev yok","space_not_enough":"Disk alanı yeterli değil","need_more_space":"{0} daha fazla alana ihtiyaç var ancak mevcut diskte {1} boş yer var ({2} ayrılmış). Görevler duraklatıldı. Kitaplık önyüklemesi devre dışı bırakıldı. [Ayarlar - Gelişmiş]\'te yeniden etkinleştirebilirsiniz.","seeders":"mibzerler","last_update":"Son Güncelleme","connecting":"Bağlanıyor","connected":"bağlı","request_timed_out":"İstek zaman aşımına uğradı","connection_failed":"Bağlantı başarısız oldu","invalid_download_url":"Geçersiz indirme URL\'si","download_link":"İndirme: {link","empty_files":"Dizinde dosya yok","duplicate_task":"Yinelenen görev","duplicate_tracker":"Yinelenen izleyici","this_task_not_ready":"Bu görev hazır değil. Bu görevi duraklatmak onu doğrudan kaldıracaktır.","some_task_not_ready":"Bazı görevler hazır değil. Bu görevleri duraklatmak onları doğrudan kaldıracaktır.","failed_to_delete_files":"dosyalar silinemedi","failed_to_delete_files_desc":"Görevin bazı dosyaları silinemedi. Bunları manuel olarak silmeniz gerekebilir","unknown_error":"Bilinmeyen hata: {0}","more_files_are_not_shown":"({0} daha fazla dosya performans nedeniyle gösterilmez)","no_available_file":"Kullanılabilir dosya yok. Lütfen görevin hazır olmasını bekleyin.","service_worker_error":"Oynamak için ServiceWorker yüklenemiyor. Tarayıcınız bu özelliği desteklemiyor olabilir veya ServiceWorker etkinleştirilmemiş olabilir. Bu sayfayı yeniden yükleyip tekrar denemeniz gerekebilir.","add_task_first":"Önce görev eklemeniz gerekir.","player_task_time":"Oyuncunun oyuna hazırlanması çok fazla saniye alıyor. Görevle ilgili bir sorun olabilir.","web_mode_hint":"${displayName} web modu yalnızca WebRTC eşlerini destekler. En iyi deneyim için lütfen ${displayName} Masaüstü Uygulamasını indirin.","web_mode_task_hint":"Bir görev eklemek için aşağıdaki düğmeleri tıklayın. Aynı anda yalnızca bir görev ekleyebilirsiniz.","save_to_local":"Yerele kaydet","save_as_zip":"ZIP olarak kaydet","creating_save_file":"Kayıt dosyası oluşturuluyor...","upload_as_one_directory":"Tek bir dizin olarak yükle","upload_as_single_files":"Tek dosya olarak yükle","web_mode_upload_single":"Web modunda yalnızca tek bir dosya yükleyebilirsiniz.","download_success":"Başarıyla indir","download_fail":"Yükleme başarısız","wait_for_downloaded_to_share":"Lütfen paylaşmadan önce görevin indirilmesini bekleyin.","download_with_cellular":"Görevleri hücresel kullanarak indir","download_with_cellular_desc":"Hücresel ağ kullanıyorsunuz. Hücresel olarak indirme görevleri, operatörünüz tarafından ek ücretler alabilir.","download_with_cellular_confirm":"Hâlâ hücresel olarak indiriliyor","language":"Dil","appearance":"Dış görünüş","darkModeSystem":"sistem","darkModeLight":"Işık","darkModeDark":"Karanlık","basic_setting":"Temel","hideMenu":"Uygulama Menüsünü Gizle (Yalnızca Windows ve Linux)","autoHide":"Pencereyi Otomatik Gizle","autoStart":"Girişte aç","restore":"Çıkışta pencerenin boyutunu ve konumunu koruyun","autoStartUnfinished":"Tüm tamamlanmamış görevleri otomatik olarak devam ettir","default_download_path":"Varsayılan yol","download_directory":"Dizini İndir","upload_directory":"Dizini Yükle","enable_auto_upload":"Otomatik yüklemeyi etkinleştir","unlimit_upload_amount":"Sınırsız yükleme miktarı","unlimit_upload_warning":"Büyük miktarda dosya yüklemeye izin ver. Bu performans sorununa neden olabilir","start":"Başlatmak","transport_setting":"Bulaşma","upload_limit":"yükleme sınırı","download_limit":"İndirme sınırı","payed_user_share_rate":"Ücretli kullanıcı paylaşım oranı","unlimited":"Sınırsız","limit_input_error":"Limit numarası pozitif olmalıdır","BT_setting":"Görev Ayarları","saveLinkSeed":"Bağlantıyı görev dosyası olarak kaydet","autoDownload":"Bağlantıyı ve içeriği otomatik olarak indir","continuousSeeding":"Manuel olarak durdurana kadar tohumlamaya devam edin","seedSharingRate":"Tohum Oranı","seedTime":"Tohum Süresi (dakika)","task_manage":"Görev yönetimi","maximumDownloadNum":"Maksimum aktif görevler","maximumConnectionsNum":"Sunucu başına maksimum bağlantı","range_error":"Aralık, {0} ile {1} arasında olmalıdır","random":"rastgele","breakpointContinuation":"Devam etmek","automaticSkip":"Görev ekledikten sonra indirmeyi otomatik olarak göster","afterNotification":"İndirme tamamlandıktan sonra bildirim","deleteConfirm":"Görevi silmeden önce onay gerekmez","submit":"Kaydet ve Uygula","discard":"At","reset":"Sıfırla","reset_all_settings":"Bütün ayarları sıfırla?","preferences_resetted":"Tercihler sıfırlandı","traditional_chinese":"Geleneksel çince","japanese":"Japonca","english":"İngilizce","chinese":"Basitleştirilmiş Çince","advancedSettings":"Gelişmiş","autoUpdate":"Otomatik güncelleme","autoCheckUpdate":"Güncellemeyi otomatik olarak kontrol et","proxy":"vekil","useProxyService":"Proxy\'yi Etkinleştir","trackerService":"Takip Sunucuları","recommendUse":"Tavsiye edilen","autoUpdateTrackerServiceList":"İzleyici listesini her gün otomatik olarak güncelleyin","manualUpdateTracker":"Elle güncelleme","manualUpdateSuccess":"İzleyici sunucularını başarıyla güncelleyin","manualUpdateFail":"Şu kaynaktan güncelleme başarısız oldu:","listenPort":"Bağlantı Noktalarını Dinle","BTlistenPort":"Veri İletim Portu","DHTlistenPort":"Dağıtılmış Karma Bağlantı Noktası","protocols":"Uyumlu Protokoller","setDefaultClientForFollowingProtocols":"Aşağıdaki protokoller için varsayılan istemci olarak ayarla","magnetUrl":"Mıknatıs","video_file":"Video dosyası","audio_file":"Ses dosyası","security":"Güvenlik","impersonateUserAgent":"Sahte Kullanıcı Aracısı","RPCauthorizationkey":"RPC Sırrı","viewDocument":"RPC Gizli Kılavuzunu Görüntüle","developer":"Geliştirici","applicationLogPath":"Uygulama günlüğü yolu","downloadSessionPath":"Oturum yolunu indir","resetDownloadSessionRecord":"İndirme oturumunu sıfırla","restoreInitialSettings":"Fabrika ayarları","preferences_set_successfully":"Tercihleri ​​başarıyla kaydedin!","preferences_set_fail":"Kaydetme tercihleri ​​başarısız!","change_not_save":"Değişiklikler kaydedilmedi","discard_all_changes":"Tüm değişiklikler silinsin ve çıkılsın mı?","stay_in_page":"sayfada kal","disk_usage":"Disk kullanımı","pause_if_less_space":"Alan (MB)\'den azsa duraklatın ve bildirin","default_video_player":"varsayılan video oynatıcı","video_cache_time":"Akış oynatma önbelleği","minutes":"dakika","system_default":"Sistem varsayılanı","media_player":"Medya oynatıcı","library_film_rate":"Kullanılabilir film hızı","library_show_explore":"[Keşfet] sayfasını göster","library_setting":"Kitaplık ayarı","library_sync_setting":"Kitaplık senkronizasyon ayarı","keychain_sync_status":"Anahtarlık senkronizasyon durumu","sync_with_aws":"Anahtar Zincirini Amazon Web Services ile Senkronize Etme","backup_to_local":"Yerel dosyaya yedekle","enable_sync_with_aws":"AWS ile senkronizasyonu etkinleştirin","disable_sync_with_aws":"AWS ile senkronizasyonu devre dışı bırakın","disable_sync_with_aws_desc":"Bu, sunucuda kayıtlı anahtarı kaldıracaktır. Lütfen anahtarınızı zaten dışa aktardığınızdan emin olun.","input_independent_password":"Bağımsız parola girin","change_independent_password":"Bağımsız şifreyi değiştir","password_error":"Şifre hatası","password_invalid":"Şifre geçersiz","key_existed":"Anahtar mevcuttu","key_not_found":"Anahtar bulunamadı","library_recommend":"Kitaplık tavsiyesi","show_all_channels":"Kitaplık tavsiye sayfasındaki tüm kanalları göster","not_logged_in":"Giriş yapmadınız","login_to_continue":"Devam etmek için giriş yapın","mnemonic_code":"Anımsatıcı kod","wordlist":"Kelime listesi","restore_code":"Koddan geri yükle","generate_code":"Kodunu oluşturun","export_mnemonic_code":"Anımsatıcı kodu dışa aktar","import_mnemonic_code":"Anımsatıcı kodu içe aktar","print":"Yazdır","save_as_txt":"txt olarak kaydet","save_as_pdf":"pdf olarak kaydet","from_file":"Dosyadan","not_valid_mnemonic_code":"Bu geçerli bir anımsatıcı kod değil","cannot_parse_code_as_key":"Bu anımsatıcı kod kitaplık anahtarı olarak ayrıştırılamıyor","import_key_hint":"Bu anahtarı alacağınızdan emin misiniz? Bu, kütüphanedeki eski anahtarınızı kurtaracaktır.","import_key_confirm":"Evet, içe aktarın.","library_preload":"Görevleri kitaplıktan önceden yükle","show_preload":"Ön yükleme görevlerini göster","set_download":"İndirme dizinini ayarla","set_download_desc":"macOS App Store sürümü için, varsayılan indirme dizini Uygulamanın korumalı alanındadır ve uygulama kaldırıldıktan sonra silinecektir. İndirme dosyalarınızı saklamak istiyorsanız, manuel olarak farklı bir indirme dizini seçmeniz gerekir.","home":"Ev","home_caption":"İndirme/Yükleme ve Medya Dosyaları","library":"Kütüphane","library_caption":"Medya kaynaklarını keşfedin","player":"oyuncu","player_caption":"Medya oynatıcı","credits":"Kredi","credits_caption":"Hesap Bakiyesini Kontrol Edin","account":"Hesap","account_caption":"Giriş Yap/Kaydol/Yönetim","settings":"Ayarlar","settings_caption":"Uygulama, Oyuncu, Hesap Ayarları","development":"Gelişim","development_caption":"Dahili Kullanım için Geliştirici Modu","basic":"Temel","basic_caption":"Temel Ayarlar","advanced":"Gelişmiş","advanced_caption":"Gelişmiş Ayarlar","blockchain":"Cüzdan","blockchain_caption":"${displayName} Merkezi Olmayan Cüzdan","internal_notice":"Dahili Yayın Bildirimi","release_notes":"Sürüm notları","terms_and_conditions":"Şartlar ve koşullar","license_and_listen_notices":"Açık Kaynak Lisanslama ve Dinleme Bildirimleri","close":"Kapalı","success":"Başarı","fail":"Hata","account_email_invalid_address":"Geçersiz e-posta adresi","account_email_invalid_domain":"Geçersiz e-posta alanı","account_email_unknown_status":"Bilinmeyen e-posta teslim durumu","account_email_unavailable_address":"Kullanılamayan e-posta adresi","account_email_suppressed_address":"Gizli e-posta adresi","account_loading":"Yükleniyor...","account_is_required":"gereklidir","account_sign_in_your_account":"Kayıt olmak","account_username":"Kullanıcı adı","account_username_email_phone":"Telefon numarası veya e-posta","account_password":"Şifre","account_new_password":"Yeni Şifre","account_re_enter_password":"Şifrenizi tekrar girin","account_password_not_equal":"İki şifre eşit değil","account_new_password_same":"Parola, orijinal parola ile aynıdır","account_forgot_your_password":"Parolanızı mı unuttunuz?","account_reset_password":"Şifreyi yenile","account_sign_in":"Kayıt olmak","account_signed_in":"Giriş yapıldı","account_sign_up":"Üye olmak","account_find_your_account":"Hesabını bul","account_enter_your_username":"Telefon numaranızı veya e-postanızı girin","account_search":"Aramak","account_email_sent_tip":"E-postanıza doğrulama kodu içeren bir e-posta gönderildi:","account_phone_sent_tip":"Telefonunuza doğrulama kodu içeren bir SMS gönderildi:","account_email_phone_sent_tip":"Doğrulama kodunu içeren e-posta ve SMS sırasıyla e-postanıza ve telefonunuza gönderildi:","account_software_token_tip":"Hesabınız için MFA etkinleştirildi. Oturum açmayı tamamlamak için lütfen cihazınızı açın veya görüntüleyin ve TOTP\'yi yazın.","account_reset_your_password":"şifrenizi sıfırlayın","account_verification_code":"Doğrulama kodu","account_resend_code":"Yeniden gönderme kodu","account_code_has_been_resent":"Doğrulama kodu yeniden gönderildi","account_password_has_been_reset":"Şifre sıfırlandı","account_submit":"Göndermek","account_sign_up_your_account":"hesabınızı kaydedin","account_fill_required_fields":"Aşağıda gerekli alanları doldurunuz.","account_fill_optional_fields":"Aşağıdaki isteğe bağlı alanları doldurun.","account_email":"E-posta","account_invitation":"Davet","account_invitation_code":"Davet Kodu","account_i_accept":"Kabul ediyorum","account_license_terms":"lisans ve şartlar","account_next":"Sonraki","account_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir.","account_verify_fill_optional_fields":"İsteğe bağlı alanları doğrulayın ve doldurun.","account_nickname":"Takma ad","account_gender":"Cinsiyet","account_male":"Erkek","account_female":"Dişi","account_not_say":"Söylememek","account_birthday":"Doğum günü","account_phone_number":"Telefon numarası","account_locale":"Yerel","account_tip_verified":"Doğrulandı, Oturum açılıyor...","account_verified":"doğrulandı","account_unverified":"doğrulanmamış","account_signed_up":"kayıt oldu","account_verify_your_identity":"Kimliginizi dogrulayin","account_finish":"Sona ermek","account_signed_out":"Oturum kapatıldı","account_change_password":"Şifre değiştir","account_change_email":"Değişim e-posta","account_change_phone_number":"Telefon numarasını değiştir","account_sign_out":"oturumu Kapat","account_current_password":"Mevcut Şifre","account_re_enter_new_password":"yeni şifreyi tekrar giriniz","account_personal_information":"Bilgi","account_edit":"düzenlemek","account_reset":"Sıfırla","account_greeting":"Merhaba,","account_cancel":"İptal etmek","account_change":"değiştirmek","account_not_set":"ayarlanmadı","account_setting":"ayar","account_copy_code":"kodu kopyala","account_account_setting":"Hesap","account_task_page":"Kredi görevi","account_setting_caption":"Şifreyi Değiştir / Bilgileri Düzenle","account_security":"Güvenlik","account_want_to_join":"Katılmak istiyorum?","account_sign_in_now":"Kayıt olmak","account_changed":"değişti","account_clipboard_with_invitation_code":"Davet kodu kopyalandı","account_clipboard_with_code":"Kod kopyalandı","account_invitation_code_dialog_tip":"Arkadaşınıza bir davet kodu içeren bir e-posta veya kısa mesaj göndereceksiniz:","account_available":"mevcut","account_invited":"davet edildi","account_used":"kullanılmış","account_invitation_code_sent":"Davet kodu gönderildi","account_invitation_channel_required":"En az bir davet kanalını doldurun","account_no_verification_code":"Doğrulama kodu alamıyor musunuz?","account_no_phone_number":"Telefon numarası yok mu?","account_sign_up_by_email":"e-posta ile kaydol","account_no_email":"Email yok?","account_sign_up_by_phone_number":"Telefon numarası ile kaydolun","account_no_totp":"TOTP yok mu?","account_tip_no_totp":"TOTP yoksa, lütfen önce TOTP\'yi kurun","account_setup_totp":"TOTP\'yi kur","account_contact_information":"İletişim bilgileri","account_delete_account":"Hesabı sil","account_deleted":"silindi","account_can_not_mfa":"MFA\'nın başı dertte mi?","account_set_mfa_type":"MFA\'yı yapılandır","account_disable_mfa":"MFA\'yı devre dışı bırak","account_disabled_mfa":"Engelli MFA","account_sms_mfa":"SMS MFA\'sı","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"tavsiye edilmez","account_oauth_sign_in_with":"{provider} ile oturum açın","account_sign_in_failed":"oturum açılamadı","account_tip_oath_sign_up":"Geçerli {provider} hesabına karşılık gelen e-posta: {email} henüz bir hesap oluşturmadı","account_tip_confirm_delete_account":"Cari hesabı silmek istediğinizi onaylamak için cari hesap şifresini girin.(Silinen hesaplar geri yüklenemez)","account_tip_config_mfa":"İkincil kimlik doğrulama olarak SMS veya zamana dayalı tek seferlik parola (TOTP) kullanmayı seçebilirsiniz.","account_error_can_not_enable_mfa":"MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir","account_tip_can_not_enable_sms_mfa":"SMS MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_can_not_enable_totp_mfa":"TOTP MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_setup_totp":"Aşağıdaki QR kodunu taramak için Kimlik Doğrulayıcı gibi uygulamaları kullanın veya bir güvenlik belirteci eklemek için kodu manuel olarak kopyalayın","account_tip_verify_totp":"TOTP\'nizi doğrulayın","account_link_your_social_account":"Sosyal hesabınızı bağlayın","account_unlink_your_social_account":"Sosyal hesabın bağlantısını kaldır","account_tip_confirm_link":"Cari hesabı {provider} hesabınıza bağlamak istediğinizden emin misiniz?","account_tip_confirm_unlink":"Bağlı {provider} hesabınızı iptal etmek istediğinizden emin misiniz?","account_tip_linking":"bağlayıcı...","account_tip_unlinking":"Çözülüyor...","account_linked":"Ciltli","account_unlinked":"bağlanmamış","account_error_can_not_link_to_the_linked_account":"Mevcut sosyal hesap başka bir hesaba bağlı","account_error_can_not_link_to_the_mismatched_email":"Cari hesap ve sosyal hesap e-posta adresi tutarsız","account_error_can_not_link_before_email_verified":"Mevcut hesap doğrulanmış bir e-postaya bağlı olmadığından sosyal hesap bağlanamıyor","account_tip_confirm_verify_email_phone":"Kimliğinizi doğrulamak için cari hesabın e-postasına ve telefon numarasına bir doğrulama kodu göndermek ister misiniz?","account_tip_confirm_verify_phone":"Kimliğinizi doğrulamak için geçerli telefon numarasına bir doğrulama kodu gönderilip gönderilmeyeceği?","account_error_1_message_60_seconds":"Her 60 saniyede yalnızca bir SMS veya e-posta gönderilebilir, bir {delta} saniye daha bekleyin","account_error_10_messages_per_day":"Her cep telefonu veya e-posta 24 saat içinde yalnızca 10 mesaj gönderebilir","account_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","Network Error":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","account_error_user_not_exist":"Kullanıcı yok","account_error_incorrect_username_or_password":"Yanlış kullanıcı adı ya da parola","account_error_incorrect_original_password":"Yanlış orijinal şifre","account_error_incorrect_password":"yanlış parola","account_error_username_not_found":"Kullanıcı adı bulunamadı","account_error_can_not_reset_for_no_verified":"Doğrulanmamış hesabın şifresi sıfırlanamaz","account_error_invalid_verification_code":"Yanlış doğrulama kodu, lütfen tekrar deneyin","account_error_expired_verification_code":"Doğrulama kodunun süresi doldu, lütfen tekrar deneyin","account_error_password_not_long_enough":"Şifre yeterince uzun değil","account_error_attempt_limit_exceeded":"Deneme sınırı aşıldı, lütfen bir süre sonra deneyin.","account_error_password_attempts_exceeded":"Parola girişimleri aşıldı.","account_error_invalid_phone_number_format":"Geçersiz telefon numarası biçimi","account_error_no_cell_phone_prefix":"Lütfen telefon numarası için önek seçin","account_error_username_already_exists":"Bu kullanıcı adı zaten var","account_error_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir","account_error_inactive_code":"Davet kodu etkinleştirilen bir kod değil","account_error_non_existent_code":"Davet kodu mevcut değil","account_error_unexpected":"Beklenmeyen hata","account_error_can_not_change_email_before_phone_bound":"Telefon numarası bağlanmadan e-posta değiştirilemez","account_error_can_not_change_email_before_unbound_social_account":"Sosyal hesabın bağlayıcılığı kaldırılmadan e-posta değiştirilemez","account_error_can_not_change_phone_before_email_bound":"E-posta bağlanmadan telefon numarası değiştirilemez","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA devre dışı bırakılmadan önce e-posta veya cep telefonu numarası değiştirilemez","account_error_not_supported_yet":"Şu anda desteklenmiyor","account_error_same_email":"Yeni e-posta adresi, orijinal e-posta adresiyle aynı olamaz","account_error_same_phone":"Yeni telefon numarası orijinal telefon numarası ile aynı olamaz","account_error_email_not_exists":"e-posta adresi mevcut değil","account_error_email_already_exists":"Belirtilen e-postaya sahip bir hesap zaten var.","account_error_phone_already_exists":"Belirtilen telefon numarasına sahip bir hesap zaten var.","account_error_mfa_token_mismatch":"Yazılım Token Kodu uyuşmazlığı","account_error_recaptcha_not_loaded":"Ağda bir sorun var. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_recaptcha_validation_failed":"ReCAPTCHA doğrulaması başarısız oldu. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_sign_in_in_progress":"Bekleyen oturum açma girişimi zaten devam ediyor","account_field_range":"{0}-{1} karakter girişini sınırlayın","account_field_only_alphanumeric":"Yalnızca alfanümeriği destekler","account_field_only_alphanumeric_and_symbol":"Yalnızca alfasayısal ve sembolleri destekler","account_field_only_chinese_alphanumeric_space_underline":"Yalnızca alfasayısal, boşluk ve alt çizgiyi destekler","account_field_prefix_without_number_space":"İlk karakter sayı veya boşluk olamaz","account_field_suffix_without_space":"boşlukla bitemez","account_field_without_repeat_space":"Art arda birden çok boşluk kullanılamaz","account_field_can_not_only_alphanumeric":"Sadece harf veya rakam kullanamazsınız","account_field_must_have_number_characters":"Sayı karakterleri olmalıdır","account_field_verification_code":"Doğrulama kodu altı haneli olmalıdır","account_field_invitation_code":"Davet kodu alfasayısal olmalıdır","account_field_phone_number":"Geçersiz telefon numarası biçimi","account_invalid_email_format":"Geçersiz e-posta formatı","account_sign_out_confirm":"Oturumu kapatacağınızdan emin misiniz? Bu, tüm görevleri durduracaktır.","account_sign_out_anyway":"Yine de oturumu kapat","account_signing_out":"Oturum kapatılıyor...","account_request_save_settings":"Ayarlar kaydedilmedi. Oturumu kapatmadan önce değişiklikleri kaydetmeniz gerekir.","pay":"Ödemek","pay_with_credit":"Hızlanan indirme için ödeme yapın. Yaklaşık {0} krediye ihtiyacı var","pay_with_credit_payed":"hızlanıyor. Hala yaklaşık {0} krediye ihtiyacı var","create_payment":"Ödeme Oluştur","pay_target":"Hedef","pay_for_torrent":"{0} için ödeme yapın","your_subid":"alt kimliğiniz","your_credits":"Kredileriniz","pay_point_for_data":"{1} verileri için {0} puan ödeyin","auto_renew":"Otomatik yenilemeyi etkinleştir","transaction_details":"ödeme detayları","transaction_id":"İD","transaction_payer":"ödeyen","transaction_payee":"Alacaklı","transaction_category":"Kategori","transaction_changed_amount":"Değiştirilen Tutar","transaction_meta":"Meta","transaction_status":"Durum","transaction_creation_time":"Oluşturma Zamanı","receipt_code":"Fiş Kodu","transfer_amount":"Transfer miktarı","code_the_receipt_code":"Aşağıdaki makbuz kodunu ödeyene kopyalayın","fill_the_receipt_code":"Alacaklı tarafından sağlanan ödeme kodunu doldurarak transfer edin","expense":"gider","copied":"kopyalandı","transfer":"Aktar","receive":"Almak","copy":"Kopyala","withdraw_fund":"Para Çekme","category_paydata_payer":"veri maliyeti","category_paydata_payee":"veri geliri","category_transfer":"Aktar","category_bonus":"Bonus","category_recharge":"şarj et","status_pending":"askıda olması","status_completed":"tamamlanmış","status_finish":"sona ermek","status_failed":"arızalı","tip_invalid_receiver":"Geçersiz alıcı kodu","tip_invalid_amount":"Kredi tutarı 0-1000 aralığında değişken olmalıdır (Minimum kesinlik 0,001\'dir)","credit_get_more":"Daha fazla kredi alın","credit_no_data":"Veri yok","credit_loading":"Yükleniyor...","credit_not_enough_amount":"Yeterli kredi yok","credit_amount_not_enough":"Yeterli kredi yok","credit_payee_not_exist":"Alacaklı mevcut değil","credit_invalid_amount":"Geçersiz kredi tutarı","credit_can_not_transfer_to_yourself":"Kendinize aktaramazsınız","credit_latest":"En sonuncu","credit_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","add_subtitles":"Altyazı Ekle","open_file":"Açık dosya...","advanced_options":"Gelişmiş seçenekler","title":"Başlık","location":"konum","subtitle_file":"altyazı dosyası","unsupported_subtitle_type":"{0} dosya türü desteklenen bir altyazı türü değil","not_default_player":"Varsayılan video oynatıcı ayarlanmamış","this_is_an_audio_file":"Bu bir ses dosyasıdır","the_added_subtitle_already_exists":"Eklenen altyazı zaten var","stop_stream_player":"Akış ortamı, görev duraklatıldığı veya silindiği için sonlandırıldı","stop_player":"Dosya silindiği için oynatıcı sonlandırıldı","playing_timeout_hint":"Bekle zaman aşımına uğradı. Lütfen görevi kontrol edin","autoplay_hint":"Otomatik oynatma, tarayıcınız tarafından engellenebilir. Oyuncu oynamıyorsa devam etmek için ekrana tıklamayı deneyin","remove_playing_confirm":"{0} hala oynuyor, onu kaldırırsanız oyuncu durur. Kaldıracağınızdan emin misiniz?","unsupported_in_browser":"Tarayıcı modunda henüz desteklenmiyor","client":"Müşteri","warning":"Uyarı","enable":"Olanak vermek","disable":"Devre dışı bırakmak","auto":"Oto","encrypt_connection":"Bağlantıyı şifrele","encrypted_connection":"Şifreli bağlantı","non_encrypted_connection":"Şifrelenmemiş bağlantı","connected_wires_not_disconnect":"Bağlı kabloların bağlantısı kesilmeyecek","audio":"ses","video":"video","image":"resim","subtitle":"alt yazı","zip":"zip","text":"metin","unknown":"Bilinmeyen","add":"Eklemek","undo":"Geri alma","backup":"Destek olmak","not_default_app":"${displayName}, torrent ve medya için varsayılan uygulamanız değil, varsayılan olarak ayarlamak istiyor musunuz?","dont_show_again":"tekrar gösterme","go_to_settings":"Ayarlara git","about_alphabiz":"Yaklaşık ${displayName}","last_check_at":"son kontrol","update_channel":"Kanalı güncelle","check_for_update":"Güncellemeleri kontrol ediniz","checking_for_update":"Güncellemeler kontrol ediliyor...","no_update_available":"Güncelleme mevcut değil","update_available":"Güncelleme uygun","update_now":"Şimdi güncelle","update_later":"Sonra güncelle","click_to_update":"İndirmek ve güncellemek için ŞİMDİ GÜNCELLE düğmesine tıklayın","update_failed":"Güncelleme başarısız oldu","update_failed_message":"Güncelleme sırasında bir hata oluştu:","check_shasum_failed":"Yükleyici için bütünlük kontrol edilemedi","downloading_update":"Güncelleme indiriliyor...","ready_to_update":"Güncellemeye hazır","restart_to_update":"Güncelleme indirildi. ${displayName}, birkaç dakikalığına güncelleme için çıkış yapacak.","already_latest":"Geçerli sürüm({0}) zaten en son sürüm","update_timeout":"Güncelleme zaman aşımı","no_available_release":"Kullanılabilir yayın yok","no_available_installer":"Kullanılabilir yükleyici yok","feedback":"Geri bildirim","select_a_type":"bir tür seçin","category":"Kategori","select_a_category":"bir kategori seç","require_title":"Başlık gerekli","describe_your_problem":"problemini açıkla","report_a_bug":"Hata bildir","request_a_new_feature":"Yeni bir özellik talep edin","download_or_upload":"İndirme yükleme","others":"Diğerleri","submit_with_system_info":"Sistem bilgisi ile gönder","submit_feedback":"Geri bildirim gönder","tweet_us":"bize tweet at","tweet_too_long":"Tweet çok uzun","delete_characters":"Lütfen en az {0} karakter(ler)i silin","rest_characters":"{0} daha fazla karakter girebilirsiniz","update_alphabiz":"${displayName} güncelle","current_version":"Şimdiki versiyonu","cancel_update":"Güncellemeyi iptal et","slow_download_speed":"Çok yavaş indir","slow_download_speed_caption":"Yükleyici indirme işlemi artık çok yavaş. Lütfen ağ durumunu kontrol edin","update_canceled":"Güncelleme iptal edildi","current_version_release_time":"Mevcut sürümün çıkış zamanı","expired_app":"${displayName} Süresi Doldu","version_out_of_date":"Versiyon güncel değil","have_to_update":"${displayName} sürümü güncel değil. Bazı protokoller veya API\'ler kullanımdan kaldırılmıştır. Devam etmeden önce ${displayName} güncellemeniz gerekiyor.","exit_alphabiz":"Çıkış ${displayName}","exit_and_update":"Çık ve güncellemeyi uygula","new_version_hint":"Yeni sürüm mevcut","no_new_version":"Yeni sürüm mevcut değil","current_is_latest":"Geçerli sürüm zaten en son sürüm","click_to_check_update":"Güncellemeyi kontrol etmek için [GÜNCELLEMEYİ KONTROL ET] düğmesine tıklayın","download_latest_version_from_website":"En son sürümü indirmek için lütfen resmi web sitesini ziyaret edin","to_the_website":"Web sitesine","network_diagnotic":"Ağ Teşhisi","diagnotic":"Tanı","click_to_check":"Kontrol etmek için tıklayın","click_to_check_again":"Tekrar kontrol etmek için tıklayın","checking":"Kontrol etme","online":"Çevrimiçi","offline":"çevrimdışı","dns_look_up":"DNS araması","error":"Hata","aws_service":"AWS Hizmeti","network_pings":"Ağ Pingi","not_found":"Bulunamadı","packet_loss":"Paket(ler) kaybı","official_site":"Resmi site","download_test":"Testi İndir","test_task":"Test Görevi {0}","download_failed":"Yükleme başarısız","second_spend":"{0} sn harcama","open_default_player_failed":"Varsayılan oynatıcı açılamadı","copied_to_clipboard":"Panoya kopyalandı","go_to":"git","region_not_available":"Bölge mevcut değil","region_not_available_message":"Üzgünüm! Bölgeniz bu uygulamayı kullanmak için uygun değil. Bu uygulama {0} saniye sonra kapanacak","confirm":"Onaylamak","no_available_result":"Kullanılabilir sonuç yok","invalid_password_format":"Geçersiz şifre biçimi","invalid_password_format_same":"Parola, orijinal parola ile aynıdır","error_password":"Şifre hatası","keychain_setting":"anahtarlık","setting_description":"Bulut depolama: Önemli verileri buluta kaydedin.\\nParolayı değiştir: Ortam kitaplığı anahtarının parolasını değiştirin.\\nAnımsatıcı: anahtarları oluşturmak ve geri yüklemek için alternatif bir yöntem.\\nYerel Anahtarı İçe Aktar: Yerel olarak kaydedilen anahtarı medya kitaplığına aktarın.\\nDışa Aktarma Anahtarı: Geçerli ortam kitaplığı verilerini yerele veya buluta kaydeder.\\nAnahtarı buluta yedekle: Mevcut medya kitaplığı verilerini yedekleme için buluta güncelleyin.","refresh_status":"Güncelleme durumu","confirm_import_key":"İçe aktarma anahtarını onaylayın","confirm_update_cloud_key":"Bulutta zaten bir anahtarınız var. Anahtarın güncellenmesi orijinal anahtarın üzerine yazacaktır. Bulutta saklanan anahtarı güncellemek istediğinizden emin misiniz?","export_key_with_cloud":"Bulutta depolanan kitaplık anahtarını dışa aktarmak için belirlediğiniz bağımsız parolayı girin ve kilit açma parolasıyla anahtar dosyasını kilitleyin","store_cloud_key_prompt_password":"Kitaplık anahtarını bulutta depolamak için bağımsız bir parola girin","update_cloud_key_prompt_password":"Kitaplık anahtarını şifrelemek için bağımsız bir parola ayarlayın ve ardından bunu buluta güncelleyin","enable_cloud_storage_prompt_password":"Bulutta depolanan anahtar için, anahtarı buluttan alabileceğiniz bir parola belirleyin","input_unlock_password":"Kilit açma şifresini ayarla","export_local_prompt_password":"Lütfen anahtar dosyanızı şifrelemek için bir kilit açma şifresi ayarlayın. Bu şifreyi sizin için kaydetmeyeceğiz, dolayısıyla şifrenizi kaybederseniz kütüphane anahtarınızın kilidini açamayacaksınız.","require_unlock_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","require_independent_password":"Bulutta depolanan anahtarı almak için bağımsız parolayı girin","import_local_prompt_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","select_encrypt_mode":"Şifreleme modunu seçin","update_cloud_key":"Bulutta depolanan anahtarı güncelleyin","backup_to_cloud":"Kitaplık anahtarını buluta yedekleyin","save_local":"Kitaplık anahtarını yerel şifreli dosya olarak kaydedin","create_new_key":"Yeni bir kitaplık anahtarı oluştur","creating_lib_key":"Kitaplık anahtarı oluşturuluyor...","loading_lib_key":"Kitaplık anahtarı yükleniyor...","failed_to_create_lib_key":"Kitaplık anahtarı oluşturulamadı","failed_to_load_lib_key":"Kitaplık anahtarı yüklenemedi","import_local_key":"Anahtarı yerel olarak içe aktar","import_lib_key_from_local":"Bir kitaplık anahtarını Yerel Olarak İçe Aktar","import_from_cloud":"Kitaplık anahtarını buluttan içe aktarın","create_or_import_key":"Kitaplık anahtarı oluştur veya içe aktar","create_or_import_key_desc":"Kitaplık anahtarı, merkezi olmayan veritabanıyla içerikleri getirmek ve yayınlamak için kullanılan bağımsız bir anahtardır.","store_your_lib_key":"Kitaplık anahtarınızı saklayın","export_cloud_key":"Anahtarı Buluttan Dışa Aktar","export_current_key":"Geçerli Anahtarı Dışa Aktar","change_password":"Şifre değiştir","enable_cloud_storage":"Bulut depolamayı etkinleştir","disable_cloud_storage":"Bulut depolamayı devre dışı bırak","disable_cloud_storage_desc":"Bulut depolamayı devre dışı bırakmak, bulutta kayıtlı anahtarı kaldırır, lütfen anahtarın yerel olarak kaydedildiğinden emin olun","sync_at":"Senkronizasyon: {time}","cloud_storage_enabled":"Anahtar Zincirini {storage} ile senkronize edin","cloud_storage_disabled":"Bulut depolama devre dışı","saved_locally":"Yerel olarak kaydedildi","export_key":"Anahtar dosyasını dışa aktar","cloud_independent_password":"Buluttan bağımsız parola","key_file_unlock_password":"Anahtar dosya kilidini açma şifresi","re_enter_unlock_password":"Kilit açma şifresini tekrar girin","independent_password_not_enabled":"Mevcut şifre Alphabiz hesap şifresidir (bağımsız bir şifre belirlenmemiştir)","use_cognito_hash":"Alphabiz hesabı şifresini kullan","use_independent_password":"Bağımsız şifre kullan","keychain_lib":"kütüphane anahtarı","loading_keychain_state":"Anahtarlık yükleniyor...","backing_up":"Yedekleme...","backup_current_key":"Geçerli anahtarı Bulut\'a yedekle","cloud_lib_key_not_existed":"kitaplık anahtarı Bulut\'ta mevcut değil","open_keychain_file":"Anahtarlık Dosyasını Aç","confirm_open_abk":"ABK dosyasını açmak istiyor musunuz?","use_the_key":"anahtarı kullan","backup_the_key":"Anahtarı buluta yedekleyin","keychain_data_does_not_exist":"Anahtar zinciri verileri mevcut değil","timeout of 0ms exceeded":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","XhrError":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","payer credit amount is not enough":"Yeterli kredi yok","payee does not exist":"Alacaklı mevcut değil","block_list_manage":"Blok listesi yönetimi","blocked_users":"Engellenmiş kullanıcılar","blocked_channels":"Engellenen kanallar","unblock_user":"Kullanıcının engelini kaldır","unblock_channel":"Kanalın engellemesini kaldır","no_blocked_user":"Engellenen kullanıcı yok","no_blocked_channel":"Engellenen kanal yok","field_required":"{0} gereklidir","setting":"Ayar","unknown_media":"Bilinmeyen Medya","settings_button_visible":"Düğme Görünür","settings_setting":"Ayar","settings_playback_rate":"Çalma oranı","settings_subtitle":"Alt yazı","settings_pip":"PiP","settings_fullscreen":"Tam ekran","settings_subtitle_options":"Altyazı Seçenekleri","settings_normal":"Normal","settings_italic":"İtalik","settings_lighter":"Çakmak","settings_bolder":"Daha cesur","settings_small":"Küçük","settings_large":"Büyük","about":"Hakkında","services":"Hizmetler","hide":"Saklamak","hide_others":"Diğerlerini sakla","show_all":"Hepsini Göster ↓","quit":"Çıkış yapmak","edit":"Düzenlemek","redo":"Yeniden yap","cut":"Kesmek","paste":"Yapıştırmak","select_all":"Hepsini seç","view":"Görüş","reload":"Tekrar yükle","toggle_full_screen":"Tam ekrana geç","toggle_developer_tools":"Geliştirici Araçlarını Değiştir","window":"pencere","minimize":"küçültmek","bring_all_to_front":"Hepsini Öne Getir","help":"Yardım","github_repo":"Github Deposu","issues":"Sorunlar","learn_more":"Daha fazla bilgi edin","learn_spelling":"Yazımı Öğrenin","lookup_selection":"Ara \\"{selection}\\"","search_with_google":"Google ile ara","save_as":"Farklı kaydet","save_image":"Resmi Kaydet","save_image_as":"Resmi Farklı Kaydet...","copy_link":"Bağlantıyı kopyala","save_link_as":"Linki farklı kaydet ...","copy_image":"Resmi kopyala","copy_image_as":"Resmi Farklı Kopyala...","copy_image_address":"Resim Adresini Kopyala","download_complete":"İndirme tamamlandı","download_complete_message":"{0} indirildi","is_running":"{0} çalışıyor","open":"{0} aç","launch_problem":"Başlatma sorunu","ask_clear_data":"Görünüşe göre {0} başlatmaya çalışıyorsunuz, ancak birkaç kez başarısız oldunuz.\\nTüm uygulama verilerini temizleyip daha sonra başlatmayı denemek istiyor musunuz?","launch_directly":"Doğrudan başlat","clear_all_data":"Tüm verileri temizle","ask_clear_confirm":"Bu, tüm yapılandırmaları, günlükleri ve kullanıcı verilerini kaldıracaktır!\\nBundan sonra {0}\'ı yeniden başlatmanız gerekebilir.\\nVerileri temizleyeceğinizden emin misiniz?","confirm_launch":"Hayır, doğrudan başlat","confirm_clear":"Evet, tüm verileri temizle"}')},12:function(e,t){},1254:function(e){e.exports=JSON.parse('{"lib_index":"Maison","lib_edit":"Publier","lib_publish":"Publier","lib_explore":"Explorer","lib_following":"Suivant","lib_favorite":"Favoris locaux","lib_local_favorites":"Favoris locaux","lib_channel":"Canaliser","lib_submit":"Soumettre","lib_from_network":"Utilisation d\'une base de données décentralisée à partir du réseau","welcome_to_lib":"Bienvenue à ${displayName} Médiathèque","register_or_login":"Inscription/Connexion","lib_recommend":"Recommander","lib_recommend_desc":"Bienvenue à la bibliothèque ${displayName} ! Cette bibliothèque utilise une base de données décentralisée du réseau. Pour commencer à l\'utiliser, vous devez suivre certains canaux.","follow_any_channel_to_continue":"Suivez n\'importe quelle chaîne pour continuer","follow_channels_and_continue":"Suivez les chaînes {0} et continuez","show_more_for_me":"Afficher plus pour moi","no_more_recommend":"Ne plus recommander","key":"Clé","create_key":"Créer une clé","save_key":"Enregistrer la clé","save_key_file":"Voulez-vous enregistrer votre clé en tant que fichier ?","import_key":"Clé d\'importation","import":"Importer","invalid_key":"Clé non valide","back_to_top":"Retour au sommet","search_for_channel":"Rechercher l\'ID de la chaîne","search_channel_no_result":"Impossible de trouver la chaîne avec l\'identifiant {0}","please_input_channel_id":"Veuillez saisir l\'ID de la chaîne","welcome_help_text":"Il s\'agit d\'une médiathèque décentralisée. Vous avez besoin\\n pour créer un compte pour cette base de données. Nous allons\\n générer automatiquement une clé personnelle pour vous.\\n Si vous avez déjà eu une clé, vous pouvez également importer\\n c\'est ici.","welcome_key_text":"Une fois connecté, veuillez cliquer sur le bouton [ENREGISTRER LA CLÉ]\\n dans le coin inférieur droit pour enregistrer votre clé privée.\\n Si vous perdez votre clé, vous ne pourrez peut-être pas vous reconnecter.","redirect_to_recommend":"Il semble que vous n\'ayez suivi aucune chaîne. Redirection vers la page [Explorer].","channel":"Canaliser","follow":"Suivre","unfollow":"Ne plus suivre","following":"Suivant","share":"Partager","unfollow_confirm":"Êtes-vous sûr de ne plus suivre cette chaîne ? Tous les messages de cette chaîne dans votre journal seront supprimés.","follow_failed_hint":"L\'opération est toujours en attente en arrière-plan. Si l\'opération n\'est pas appliquée pendant une longue période, veuillez redémarrer l\'application et réessayer.","block":"Bloc","unblock":"Débloquer","blocked":"Bloqué","block_channel":"Bloquer cette chaîne","block_channel_confirm":"Bloquer la chaîne la supprimera de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","block_creator":"Bloquer le créateur de cette chaîne","unblock_creator":"Débloquer le créateur de cette chaîne","block_creator_confirm":"Bloquer le créateur supprimera toutes les chaînes créées par ce créateur de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","share_url_copied":"L\'URL de partage est copiée dans votre presse-papiers","follow_time":"Suivre le temps","update_time":"Temps de mise à jour","search":"Recherche","type":"Taper","added":"Ajoutée","click_to_task":"Cliquez pour accéder à la tâche","lib_already_added":"Vous avez déjà ajouté cette vidéo","description":"Description","poster":"Affiche","channel_poster":"Affiche de la chaîne","preview":"Aperçu","creator":"Créateur","creator_detail":"Détail du créateur","loading_creator":"Chargement des informations sur le créateur","wait_for_creator_loaded":"Veuillez attendre que les informations sur le créateur soient chargées.","follower":"Disciple","followers":"Suiveurs","follower_list":"Liste d\'abonnés","user":"Utilisateur","channel_title":"Titre de la chaîne","channel_id":"Identifiant de la chaine","post_title":"Titre de l\'article","post_id":"ID de publication","import_data_from_excel":"Importer des données depuis Excel","set_excel_keys":"Définir les clés Excel","excel_import_succeded":"L\'importation Excel a réussi","excel_import_success_msg":"{0} les lignes sont prêtes à être ajoutées, {1} les éléments invalides et {2} les éléments en double sont ignorés","cannot_find_channel":"Impossible de trouver la chaîne","cannot_find_posts":"Impossible de trouver des messages","add_channel":"Ajouter une chaîne","add_post":"Ajouter un message","edit_channel":"Modifier la chaîne","channel_setting":"Réglage du canal","edit_post":"Modifier le message","edit_posts":"Modifier les messages","channel_detail":"Détail de la chaîne","remove":"Retirer","remove_channel":"Supprimer la chaîne","remove_channel_confirm":"Êtes-vous sûr de supprimer ce message ? Cela ne peut pas être récupéré.","remove_post":"Supprimer le message","remove_post_confirm":"Voulez-vous vraiment supprimer cette chaîne ? Cela ne peut pas être récupéré.","preview_mode":"Mode Aperçu","preview_mode_desc":"Il s\'agit d\'un aperçu de votre chaîne. Tous les tarifs des films sont affichés ici.","edit_user_profile":"Modifier le profil utilisateur","name":"Surnom","avatar":"Avatar","no_following":"Aucune chaîne suivante. Cliquez pour aller","no_recommend":"Aucune chaîne recommandée. Cliquez pour aller","first_recomment_msg":"Cela peut prendre un certain temps si c\'est la première fois que l\'application est lancée.","invalid_image":"Image invalide","image_not_reachable":"Cette URL d\'image n\'est pas accessible.","channel_not_found":"Chaîne introuvable","cannot_get_channel_info":"Impossible d\'obtenir les informations sur la chaîne. Cette chaîne peut être supprimée par son créateur et ne plus être disponible.","validate_error":"Valider l\'erreur","validate_user_name_no_space":"Le nom d\'utilisateur ne doit pas contenir d\'espaces","validate_url_no_space":"L\'URL ne doit pas contenir d\'espaces","validate_user_name_length":"Le nom d\'utilisateur doit avoir une longueur comprise entre {0} et {1}","validate_user_desc_length":"La description de l\'utilisateur ne doit pas dépasser {0} caractères","validate_user_avatar_url":"L\'avatar de l\'utilisateur doit être une URL contenant moins de 2 048 caractères","validate_channel_title_length":"Le titre de la chaîne doit avoir une longueur comprise entre 1 et 100","validate_channel_desc_length":"La description de la chaîne doit avoir une longueur comprise entre 10 et 300","validate_channel_image_url":"L\'aperçu de la chaîne doit être une URL comportant moins de 2 048 caractères","validate_post_title_length":"Le titre du message doit avoir une longueur comprise entre 1 et 100","validate_post_desc_length":"La description du message doit avoir une longueur comprise entre 10 et 300","validate_post_image_url":"L\'affiche doit être une URL contenant moins de 2 048 caractères","validate_post_url":"URL ${displayName} invalide","validate_post_url_length":"${displayName} L\'URL ne doit pas dépasser 2 048 caractères","film_rate":"Tarif des films","set_film_rate":"Définir le taux de film","select_a_rate_before_enter":"Vous devez sélectionner un tarif de film avant d\'entrer dans la médiathèque.","library_available_rate":"Tarif des films disponibles à la bibliothèque","rate_g":"G – Audiences Générales","rate_g_desc":"Tous âges admis. Rien qui offenserait les parents pour le visionnement par les enfants.","rate_pg":"PG - Surveillance parentale suggérée","rate_pg_desc":"Certains matériaux peuvent ne pas convenir aux enfants. Les parents sont invités à donner une \\"orientation parentale\\". Peut contenir du matériel que les parents pourraient ne pas aimer pour leurs jeunes enfants.","rate_pg_13":"PG-13 – Parents fortement mis en garde","rate_pg_13_desc":"Certains contenus peuvent être inappropriés pour les enfants de moins de 13 ans. Les parents sont priés d\'être prudents. Certains contenus peuvent être inappropriés pour les pré-adolescents.","rate_r":"R – Restreint","rate_r_desc":"Les moins de 17 ans doivent être accompagnés d\'un parent ou d\'un tuteur adulte. Contient du matériel pour adultes. Les parents sont invités à en savoir plus sur le film avant d\'emmener leurs jeunes enfants avec eux.","rate_nc_17":"NC-17 – Adultes seulement","rate_nc_17_desc":"Interdit aux 17 ans et moins. Clairement adulte. Les enfants ne sont pas admis.","set_as_private":"Définir comme privé","hide_in_explore":"Masquer cette chaîne dans la page d\'exploration","hidden":"Caché","select_a_rate":"Veuillez sélectionner un tarif de film","select_from_tasks":"Sélectionnez parmi les tâches","import_from_magnet":"Importer depuis l\'aimant : ?...","input_magnet_url":"Aimant d\'entrée : ? URL","task_title":"Titre de la tâche","set_title":"Définir le titre","add_to_local_favorites":"Ajouter aux favoris locaux","remove_from_local_favorites":"Supprimer des favoris locaux","removed_favorite":"Favori supprimé","import_or_export_favorites":"Importer/exporter des favoris","export_local_favorites":"Exporter les favoris locaux en tant que sauvegarde","import_favorites_file":"Importer le fichier de favoris","not_a_favorite_file":"Ce fichier n\'est pas un fichier de sauvegarde favori","connection_status":"Statut de connexion","gun_server_list":"Cache Nodes","custom_nodes":"Nœuds de cache personnalisés","custom_nodes_hint":"Les nœuds de cache personnalisés seront appliqués après le redémarrage de l\'application","wait_for_reboot":"En attente de redémarrage...({seconds}s)","reboot_now":"Redémarrer maintenant","reboot_later":"Redémarrer plus tard","peer_list":"Nœuds directs","server":"URL du nœud","peer":"Pair","peer_id":"ID de nœud","connection":"Connexion","data_source":"La source de données","sync":"Synchroniser","syncing":"Synchronisation","sync_completed":"Synchronisation terminée","got_all_post":"Vous avez déjà tous les messages","placeholder_channel_title":"Nom de votre chaîne","placeholder_channel_desc":"Description de cette chaîne","placeholder_post_title":"Nom du film (année)","placeholder_post_desc":"Description de ce film","private_channel":"Chaîne privée","creator_blocked":"Créateur bloqué","go_to_library":"Aller à la librairie?","go_to_library_channel_msg":"Voulez-vous accéder au canal de la bibliothèque {0} ?","magnet_does_not_have_name":"Cet aimant : ? URL n\'a pas de nom, vous devez d\'abord ajouter un titre de message.","no_available_post":"Aucun poste disponible","following_channel_no_post":"Toutes vos chaînes suivantes n\'ont pas de publication disponible. Cela peut être dû à une erreur de réseau. Si vous avez déjà suivi certaines chaînes, les messages peuvent être chargés plus tard.","share_to_library":"Partager dans la bibliothèque","quick_start":"Démarrage rapide","quick_start_desc":"Commencer à créer une publication avec une tâche ou un fichier","select_file":"Choisir le dossier...","select_folder":"Sélectionner le dossier...","post_options":"Options de publication","channel_options":"Options de chaîne","create_new_channel":"Créer une nouvelle chaîne","use_existed_channel":"Utiliser le canal existant","select_existed_channel":"Sélectionnez une chaîne existante","uploaded_by":"{title} mis en ligne par {name}","created_by":"{title} créé par {name}","creating_new_channel":"Création d\'une nouvelle chaîne...","created_new_channel":"Nouvelle chaîne créée","creating_new_post":"Création d\'un nouveau message...","created_new_post":"Nouveau message créé","create_new_post":"Créer un nouveau message","quick_start_timeout":"{0} délai d\'attente. Cela peut être dû à une erreur de réseau. Veuillez réessayer plus tard.","file_too_large":"Fichier trop large","file_too_large_msg":"Ce fichier fait plus de 4 Go ({size}) et peut prendre beaucoup de temps à préparer. Êtes-vous sûr de continuer ?","resolving_folder_files":"Résolution des fichiers de dossier...","folder_too_large":"Dossier trop volumineux","folder_too_large_msg":"Les fichiers de ce dossier font plus de 4 Go (total {size}) et peuvent prendre beaucoup de temps pour préparer la tâche. Êtes-vous sûr de télécharger ?","creating_new_task":"Création d\'une nouvelle tâche...","cannot_create_task":"Impossible de créer la tâche","cannot_create_task_msg":"Cela peut être dû à une erreur. Si la tâche est créée correctement, vous pouvez vérifier la liste des tâches ultérieurement.","cannot_get_task_name":"Impossible d\'obtenir le nom de la tâche. Vous devez d\'abord en saisir un.","remove_old_task":"Supprimer l\'ancienne tâche","remove_old_task_desc":"Le mode Web ne peut créer qu\'une seule tâche à la fois. Voulez-vous supprimer l\'ancienne tâche ?","subtitle_list":"Liste des sous-titres","optional":"facultatif","with_subtitle":"Avec {language} sous-titres","maximumSubtitleNum_limit":"Le nombre de sous-titres a atteint son maximum","add_subtitle_url":"Ajouter le lien de téléchargement des sous-titres","cannot_add_subtitle":"Impossible d\'ajouter des sous-titres","cannot_add_subtitle_msg":"Langue des sous-titres non sélectionnée ou lien de téléchargement invalide.","support_subtitle_type":"Seuls les sous-titres au format srt et vtt sont pris en charge.","recommend_opensubtitles":"Il est recommandé d\'utiliser le lien ou l\'identifiant de téléchargement des sous-titres sur www.opensubtitles.org.","take_down":"Descendre","serious_violation":"Infraction grave","copyright_disputes":"Litiges de droit d\'auteur","adults_only":"Seulment les adultes","takedown_reason":"Raison du retrait","takedown_mode":"Mode retrait","admins":"Administrateurs","takedown_user":"Retirer ce créateur","takedown_channel":"Retirer cette chaîne","takedown_post":"Retirer ce message","select_takedown_reason":"Sélectionnez la raison du retrait","takedown_invalid_reason":"Motif de retrait non valide","takedown_invalid_user_id":"Identifiant invalide. L\'identifiant doit comprendre 87 caractères","takedown_invalid_channel_id":"ID de chaîne non valide. L\'ID doit inclure 20 caractères","takedown_invalid_post_id":"Identifiant de publication non valide. L\'ID doit inclure 20 caractères","takedown_management":"Gestion des démontages","users":"Utilisateurs","channels":"Chaînes","posts":"Des postes","you":"Toi","preset":"Préréglé","admin":"Administrateur","committee":"Comité","about_takedown_mode":"À propos du mode de retrait :\\nPréréglage : configuré dans le référentiel github. Tous seront supprimés de la bibliothèque.\\nAdmin : tout administrateur qui vote pour sera supprimé.\\nComité : au moins la moitié des administrateurs qui votent pour seront supprimés.","cannot_edit_preset":"Vous ne pouvez pas modifier cette ligne car il s\'agit d\'une ligne prédéfinie","cannot_edit_not_vote":"Vous ne pouvez pas modifier cette ligne puisque vous n\'avez pas voté pour elle","remove_vote":"Supprimer votre vote","post_preload_failed":"Échec du préchargement de ce message. Le lien de téléchargement peut être obsolète, ce message ne peut donc pas être lu immédiatement.","about_cache_node":"À propos du nœud de cache","edit_cache_node":"Edit cache node","create_cache_node":"Créer un nœud de cache","about_cache_node_desc":"${displayName} utilise le serveur gun comme nœud de cache. Vous pouvez modifier les nœuds personnalisés à l\'avance","learn_how_to_deploy_gun":"Apprenez à déployer votre propre serveur d\'armes","repeat_add":"La tâche a été ajoutée, veuillez ne pas l\'ajouter à nouveau","upload":"Télécharger","download":"Télécharger","delete":"Supprimer","delete_task":"Supprimer la tâche","delete_confirm_message":"Supprimer cette tâche ? C\'est irrévocable","also_delete_files":"Supprimer également les fichiers","default_delete_files":"Supprimer par défaut les fichiers téléchargés après la suppression de la tâche","not_now":"Pas maintenant","delete_autoupload_confirm":"Cette tâche contient le fichier que vous avez placé dans le répertoire de téléchargement automatique. Supprimer cette tâche supprimera également le fichier.","delete_anyway":"Supprimer quand même","upload_too_many_files":"Télécharger trop de fichiers","ask_if_unlimit_upload_amount":"Le répertoire de téléchargement automatique contient trop de fichiers. Voulez-vous désactiver la limitation du montant de téléchargement ? *Cela peut entraîner des problèmes de performances","disable_limitation":"Désactiver la limitation","not_length":"L\'opération multi-fichiers n\'est pas prise en charge pour le moment, veuillez coopérer","download_torrent":"Télécharger un fichier","upload_torrent":"Téléverser un fichier","files":"Des dossiers","file":"Déposer","folder":"Dossier","start_all":"Tout commencer","pause_all":"Tout mettre en pause","remove_all":"Enlever tout","upload_all":"Télécharger tout","clear_history":"Histoire claire","pause_all_finish_payments":"Cela terminera tous les paiements.","accelerating":"Accélérer","link_task":"Tâche de liaison","torrent_task":"Tâche de fichier","ok":"D\'ACCORD","cancel":"Annuler","download_directory_position":"Télécharger la position du répertoire","torrent_file":"fichier de tâche","magnetic_link_incorrect":"Le format du lien est incorrect","delete_fail":"Échec de la suppression","pause":"Pause","paused":"En pause","stop_torrent":"Arrêt","seed":"Graine","resume":"CV","downloading":"Téléchargement","downloaded":"Téléchargé","uploading":"Téléchargement","auto_uploading":"Téléchargement automatique","uploaded":"Téléchargé","pending":"En attente d\'autres tâches","verifying":"Vérification","waiting_for_verify":"En attente de vérification","seeding":"Semis","completed":"Complété","status":"Statut","task_name":"Nom de la tâche","size":"Taille","progress":"Progrès","sort":"Trier","ascending":"Ascendant","descending":"Descendant","file_loading":"Chargement du fichier...","loading":"Chargement","unknown_status":"Inconnu","play_while_downloading":"Jouer...","upload_or_play":"Télécharger / Jouer","play":"Jouer","ask_if_upload_file":"Téléverser un fichier?","ask_if_upload_or_play":"Télécharger ou lire un fichier ?","torrent_error":"Erreur lors de l\'ajout de la tâche :","no_peers":"Réessayez plus de {0} fois et aucun pair n\'est disponible","torrent_exists":"La tâche existe déjà.","show_origin_torrent":"Obtenir le fichier ou l\'URL de la tâche d\'origine","show_directory":"Ouvrir le répertoire de ce torrent","task_num":"Tâches","total_upload_speed":"Vitesse de téléchargement","total_download_speed":"Vitesse de téléchargement","path_missing":"Erreur : impossible de trouver le chemin du torrent","origin_not_found":"Impossible de trouver les informations sur la tâche d\'origine.","text_copied":"L\'URL Magnum est copiée dans votre presse-papiers","copy_magnet_uri":"Aimant de copie : ? URI","copy_download_uri":"Copier l\'URI de téléchargement","copy_share_uri":"Copier l\'URI de partage","uri_copied":"L\'URI a été copié avec succès dans votre presse-papiers","uri_copy_failed":"Échec de la copie de l\'URI","more":"Plus...","toggle_list_mode":"Basculer le mode liste","comment":"comment","operations":"Opérations","open_directory":"Ouvrir le répertoire","no_downloading_task":"Aucune tâche de téléchargement","remove_all_downloading_tasks":"Supprimer toutes les tâches de téléchargement ?","remove_all_upload_tasks":"Supprimer toutes les tâches d\'importation ?","remove_autoupload_files":"Supprimer les fichiers de téléchargement automatique","remove_all_history":"Supprimer tout l\'historique ?","remaining":"Restant","created_time":"Temps créé","used_time":"Temps utilisé","completed_time":"Temps terminé","yesterday":"Hier","before_yesterday":"{empty}","earlier":"Plus tôt","miss_file":"Certains fichiers sont manquants","delete_miss_file_task":"Il manque des fichiers dans {0}.","common_peer":"Pair commun","ab_peer":"${displayName} pair","ab_peer_verified":"Pair vérifié ${displayName}","ab_peer_available":"${displayName} homologue(s) disponible(s)","alphabiz_accelerating":"${displayName} accélération","income":"Revenu","income_info":"Revenu(aujourd\'hui/total)","total_income_info":"Revenu : {0}(aujourd\'hui) / {1}(total)","login_to_see_income":"Connectez-vous pour voir les statistiques de revenus","credit_cost":"Frais de crédit","downloaded_by_payment":"Téléchargé par Paiements","file_not_found":"Impossible de trouver ce fichier en local","no_task":"Ne pas demander","no_matched_task":"Aucune tâche correspondante","space_not_enough":"Espace disque insuffisant","need_more_space":"Besoin de {0} plus d\'espace mais le disque actuel a {1} libre ({2} réservé). Les tâches sont mises en pause. Le préchargement de la bibliothèque est désactivé. Vous pouvez le réactiver dans [Paramètres - Avancé].","seeders":"Semoirs","last_update":"Dernière mise à jour","connecting":"De liaison","connected":"Connecté","request_timed_out":"La demande a expiré","connection_failed":"La connexion a échoué","invalid_download_url":"URL de téléchargement invalide","download_link":"lien de téléchargement","empty_files":"Aucun fichier dans le répertoire","duplicate_task":"Tâche en double","duplicate_tracker":"Outil de suivi en double","this_task_not_ready":"Cette tâche n\'est pas prête. Suspendre cette tâche la supprimera directement.","some_task_not_ready":"Certaines tâches ne sont pas prêtes. Suspendre ces tâches les supprimera directement.","failed_to_delete_files":"Échec de la suppression des fichiers","failed_to_delete_files_desc":"Échec de la suppression de certains fichiers de la tâche. Vous devrez peut-être les supprimer manuellement","unknown_error":"Erreur inconnue : {0}","more_files_are_not_shown":"({0} plus de fichiers ne sont pas affichés pour des raisons de performances)","no_available_file":"Aucun fichier disponible. Veuillez attendre que la tâche soit prête.","service_worker_error":"Impossible de charger ServiceWorker pour jouer. Votre navigateur peut ne pas prendre en charge cette fonctionnalité ou le ServiceWorker n\'est pas activé. Vous devrez peut-être recharger cette page et réessayer.","add_task_first":"Vous devez d\'abord ajouter une tâche.","player_task_time":"Le joueur prend trop de secondes pour se préparer à jouer. Il y a peut-être quelque chose qui ne va pas avec la tâche.","web_mode_hint":"Le mode Web de ${displayName} ne prend en charge que les pairs WebRTC. Pour une meilleure expérience, veuillez télécharger l\'application de bureau ${displayName}.","web_mode_task_hint":"Cliquez sur les boutons ci-dessous pour ajouter une tâche. Vous ne pouvez ajouter qu\'une seule tâche à la fois.","save_to_local":"Enregistrer en local","save_as_zip":"Enregistrer au format ZIP","creating_save_file":"Création du fichier de sauvegarde...","upload_as_one_directory":"Télécharger comme un seul répertoire","upload_as_single_files":"Télécharger en tant que fichiers uniques","web_mode_upload_single":"Vous ne pouvez télécharger qu\'un seul fichier en mode Web","download_success":"Télécharger avec succès","download_fail":"Échec du téléchargement","wait_for_downloaded_to_share":"Veuillez attendre que la tâche soit téléchargée avant de partager.","download_with_cellular":"Télécharger des tâches à l\'aide du cellulaire","download_with_cellular_desc":"Vous utilisez le réseau cellulaire. Les tâches de téléchargement avec cellulaire peuvent entraîner des frais supplémentaires par votre opérateur.","download_with_cellular_confirm":"Toujours télécharger avec le cellulaire","language":"Langue","appearance":"Apparence","darkModeSystem":"Système","darkModeLight":"Lumière","darkModeDark":"Sombre","basic_setting":"Basique","hideMenu":"Masquer le menu de l\'application (Windows et Linux uniquement)","autoHide":"Masquer automatiquement la fenêtre","autoStart":"Ouvrir à la connexion","restore":"Conserver la taille et la position de la fenêtre lors de la sortie","autoStartUnfinished":"Reprendre automatiquement toutes les tâches inachevées","default_download_path":"Chemin par défaut","download_directory":"Répertoire de téléchargement","upload_directory":"Répertoire de téléchargement","enable_auto_upload":"Activer le téléchargement automatique","unlimit_upload_amount":"Montant de téléchargement illimité","unlimit_upload_warning":"Autoriser le téléchargement d\'une grande quantité de fichiers. Cela peut causer des problèmes de performances","start":"Démarrer","transport_setting":"Transmission","upload_limit":"Limite de téléchargement","download_limit":"Limite de téléchargement","payed_user_share_rate":"Taux de partage des utilisateurs payants","unlimited":"Illimité","limit_input_error":"Le nombre limite doit être positif","BT_setting":"Paramètres de tâche","saveLinkSeed":"Enregistrer le lien en tant que fichier de tâche","autoDownload":"Télécharger automatiquement le lien et le contenu","continuousSeeding":"Continuez à semer jusqu\'à ce que vous l\'arrêtiez manuellement","seedSharingRate":"Rapport de semences","seedTime":"Temps d\'amorçage (minutes)","task_manage":"Gestion des tâches","maximumDownloadNum":"Tâches actives maximales","maximumConnectionsNum":"Connexion maximale par serveur","range_error":"La plage doit être comprise entre {0} et {1}","random":"aléatoire","breakpointContinuation":"Continuer","automaticSkip":"Afficher automatiquement le téléchargement après l\'ajout d\'une tâche","afterNotification":"Notification une fois le téléchargement terminé","deleteConfirm":"Aucune confirmation n\'est requise avant de supprimer la tâche","submit":"Enregistrer et appliquer","discard":"Jeter","reset":"Réinitialiser","reset_all_settings":"Réinitialiser tous les réglages?","preferences_resetted":"Préférences réinitialisées","traditional_chinese":"chinois traditionnel","japanese":"Japonais","english":"Anglais","chinese":"Chinois simplifié","advancedSettings":"Avancé","autoUpdate":"Mise à jour automatique","autoCheckUpdate":"Vérifier automatiquement la mise à jour","proxy":"Procuration","useProxyService":"Activer le proxy","trackerService":"Serveurs de suivi","recommendUse":"Recommandé","autoUpdateTrackerServiceList":"Mettre à jour automatiquement la liste des trackers tous les jours","manualUpdateTracker":"Mise à jour manuelle","manualUpdateSuccess":"Mise à jour réussie des serveurs de suivi","manualUpdateFail":"Échec de la mise à jour depuis :","listenPort":"Ports d\'écoute","BTlistenPort":"Port de transmission de données","DHTlistenPort":"Port de hachage distribué","protocols":"Protocoles compatibles","setDefaultClientForFollowingProtocols":"Définir comme client par défaut pour les protocoles suivants","magnetUrl":"Aimant","video_file":"Fichier vidéo","audio_file":"Fichier audio","security":"Sécurité","impersonateUserAgent":"Agent utilisateur fictif","RPCauthorizationkey":"Secret RPC","viewDocument":"Afficher le manuel des secrets RPC","developer":"Développeur","applicationLogPath":"Chemin du journal de l\'application","downloadSessionPath":"Télécharger le chemin de la session","resetDownloadSessionRecord":"Réinitialiser la session de téléchargement","restoreInitialSettings":"Retour aux paramètres d\'usine","preferences_set_successfully":"Enregistrez les préférences avec succès !","preferences_set_fail":"Échec de l\'enregistrement des préférences !","change_not_save":"Les modifications ne sont pas enregistrées","discard_all_changes":"Supprimer toutes les modifications et quitter ?","stay_in_page":"Rester à la page","disk_usage":"Utilisation du disque","pause_if_less_space":"Mettre en pause et notifier si l\'espace est inférieur à (Mo)","default_video_player":"Lecteur vidéo par défaut","video_cache_time":"Cache de lecture de flux","minutes":"minutes","system_default":"Défaillance du système","media_player":"Lecteur multimédia","library_film_rate":"Tarif film disponible","library_show_explore":"Afficher la page [Explorer]","library_setting":"Réglage de la bibliothèque","library_sync_setting":"Paramètre de synchronisation de la bibliothèque","keychain_sync_status":"État de synchronisation du trousseau","sync_with_aws":"Synchroniser le trousseau avec Amazon Web Services","backup_to_local":"Sauvegarde dans un fichier local","enable_sync_with_aws":"Activer la synchronisation avec AWS","disable_sync_with_aws":"Désactiver la synchronisation avec AWS","disable_sync_with_aws_desc":"Cela supprimera la clé enregistrée sur le serveur. Veuillez vous assurer que vous avez déjà exporté votre clé.","input_independent_password":"Saisir un mot de passe indépendant","change_independent_password":"Changer le mot de passe indépendant","password_error":"Erreur de mot de passe","password_invalid":"mot de passe invalide","key_existed":"La clé existait","key_not_found":"Clé introuvable","library_recommend":"La bibliothèque recommande","show_all_channels":"Afficher toutes les chaînes dans la page de recommandation de la bibliothèque","not_logged_in":"Pas connecté","login_to_continue":"Connectez-vous pour continuer","mnemonic_code":"Code mnémonique","wordlist":"Liste de mots","restore_code":"Restaurer à partir du code","generate_code":"Générer du code","export_mnemonic_code":"Exporter le code mnémonique","import_mnemonic_code":"Importer le code mnémonique","print":"Imprimer","save_as_txt":"Enregistrer au format txt","save_as_pdf":"Enregistrer au format pdf","from_file":"À partir du fichier","not_valid_mnemonic_code":"Ceci n\'est pas un code mnémonique valide","cannot_parse_code_as_key":"Impossible d\'analyser ce code mnémonique en tant que clé de bibliothèque","import_key_hint":"Êtes-vous sûr d\'importer cette clé ? Cela récupérera votre ancienne clé dans la bibliothèque.","import_key_confirm":"Oui, importez-le.","library_preload":"Précharger les tâches de la bibliothèque","show_preload":"Afficher les tâches de préchargement","set_download":"Définir le répertoire de téléchargement","set_download_desc":"Pour la version macOS App Store, le répertoire de téléchargement par défaut se trouve dans le bac à sable de l\'application et sera supprimé après la désinstallation de l\'application. Si vous souhaitez conserver vos fichiers de téléchargement, vous devez sélectionner manuellement un autre répertoire de téléchargement.","home":"Maison","home_caption":"Téléchargement/téléchargement et fichiers multimédias","library":"Bibliothèque","library_caption":"Explorer les ressources médias","player":"Joueur","player_caption":"Lecteur multimédia","credits":"Crédits","credits_caption":"Vérifier le solde du compte","account":"Compte","account_caption":"Connexion/Inscription/Gestion","settings":"Paramètres","settings_caption":"Paramètres pour l\'application, le lecteur, le compte","development":"Développement","development_caption":"Mode développeur pour usage interne","basic":"Basique","basic_caption":"Paramètres de base","advanced":"Avancé","advanced_caption":"Réglages avancés","blockchain":"Portefeuille","blockchain_caption":"${displayName} Portefeuille décentralisé","internal_notice":"Avis de version interne","release_notes":"Notes de version","terms_and_conditions":"Termes et conditions","license_and_listen_notices":"Avis de licence et d\'écoute Open Source","close":"Fermer","success":"Succès","fail":"Échouer","account_email_invalid_address":"Adresse e-mail invalide","account_email_invalid_domain":"Domaine de messagerie invalide","account_email_unknown_status":"État de livraison des e-mails inconnu","account_email_unavailable_address":"Adresse e-mail indisponible","account_email_suppressed_address":"Adresse e-mail supprimée","account_loading":"Chargement...","account_is_required":"est requis","account_sign_in_your_account":"S\'identifier","account_username":"Nom d\'utilisateur","account_username_email_phone":"Numéro de téléphone ou email","account_password":"Mot de passe","account_new_password":"Nouveau mot de passe","account_re_enter_password":"Entrez à nouveau le mot de passe","account_password_not_equal":"Deux mots de passe ne sont pas égaux","account_new_password_same":"Le mot de passe est le même que le mot de passe d\'origine","account_forgot_your_password":"Mot de passe oublié?","account_reset_password":"Réinitialiser le mot de passe","account_sign_in":"Se connecter","account_signed_in":"Connecté","account_sign_up":"S\'inscrire","account_find_your_account":"Trouvez votre compte","account_enter_your_username":"Entrez votre numéro de téléphone ou email","account_search":"Recherche","account_email_sent_tip":"Un e-mail avec un code de vérification a été envoyé à votre adresse e-mail :","account_phone_sent_tip":"Un SMS avec un code de vérification a été envoyé sur votre téléphone :","account_email_phone_sent_tip":"Un e-mail et un SMS avec le code de vérification ont été envoyés respectivement à votre e-mail et à votre téléphone :","account_software_token_tip":"MFA est activé pour votre compte. Pour terminer la connexion, veuillez allumer ou afficher votre appareil et saisir le TOTP","account_reset_your_password":"réinitialisez votre mot de passe","account_verification_code":"Le code de vérification","account_resend_code":"Renvoyer le code","account_code_has_been_resent":"Le code de vérification a été renvoyé","account_password_has_been_reset":"Le mot de passe a été réinitialisé","account_submit":"Soumettre","account_sign_up_your_account":"Enregistrez votre compte","account_fill_required_fields":"Remplissez les champs obligatoires ci-dessous.","account_fill_optional_fields":"Remplissez les champs optionnels ci-dessous.","account_email":"E-mail","account_invitation":"Invitation","account_invitation_code":"Code d\'invitation","account_i_accept":"J\'accepte","account_license_terms":"la licence et les conditions","account_next":"Suivant","account_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions.","account_verify_fill_optional_fields":"Vérifiez et remplissez les champs optionnels.","account_nickname":"Surnom","account_gender":"Genre","account_male":"Mâle","account_female":"Femelle","account_not_say":"Ne pas dire","account_birthday":"Anniversaire","account_phone_number":"Numéro de téléphone","account_locale":"Locale","account_tip_verified":"Vérifié, Connexion...","account_verified":"vérifié","account_unverified":"non vérifié","account_signed_up":"Signé","account_verify_your_identity":"Vérifiez Votre Identité","account_finish":"Finir","account_signed_out":"Se déconnecter","account_change_password":"Changer le mot de passe","account_change_email":"Changer l\'e-mail","account_change_phone_number":"Changer de numéro de téléphone","account_sign_out":"se déconnecter","account_current_password":"Mot de passe actuel","account_re_enter_new_password":"ré-entrez le nouveau mot de passe","account_personal_information":"Information","account_edit":"modifier","account_reset":"réinitialiser","account_greeting":"Bonjour,","account_cancel":"Annuler","account_change":"changement","account_not_set":"pas encore défini","account_setting":"paramètre","account_copy_code":"copier le code","account_account_setting":"Compte","account_task_page":"Tâche de crédit","account_setting_caption":"Changer le mot de passe / Modifier les informations","account_security":"Sécurité","account_want_to_join":"Vouloirjoindre?","account_sign_in_now":"Se connecter","account_changed":"Modifié","account_clipboard_with_invitation_code":"Code d\'invitation copié","account_clipboard_with_code":"Le code copié","account_invitation_code_dialog_tip":"Vous enverrez à votre ami un e-mail ou un SMS avec un code d\'invitation :","account_available":"disponible","account_invited":"invité","account_used":"utilisé","account_invitation_code_sent":"Le code d\'invitation a été envoyé","account_invitation_channel_required":"Remplissez au moins un canal d\'invitation","account_no_verification_code":"Vous ne pouvez pas recevoir le code de vérification ?","account_no_phone_number":"Pas de numéro de téléphone ?","account_sign_up_by_email":"Inscrivez-vous par email","account_no_email":"Pas d\'e-mail ?","account_sign_up_by_phone_number":"Inscrivez-vous par numéro de téléphone","account_no_totp":"Pas de TOTP ?","account_tip_no_totp":"S\'il n\'y a pas de TOTP, veuillez d\'abord configurer TOTP","account_setup_totp":"Configurer le TOTP","account_contact_information":"Coordonnées","account_delete_account":"Supprimer le compte","account_deleted":"Supprimé","account_can_not_mfa":"MFA en difficulté ?","account_set_mfa_type":"Configurer MFA","account_disable_mfa":"Désactiver MFA","account_disabled_mfa":"MFA désactivé","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Non recommandé","account_oauth_sign_in_with":"Connectez-vous avec {provider}","account_sign_in_failed":"Échec de la connexion","account_tip_oath_sign_up":"L\'email correspondant au compte {provider} actuel : {email} n\'a pas encore créé de compte","account_tip_confirm_delete_account":"Entrez le mot de passe du compte actuel pour confirmer que vous souhaitez supprimer le compte actuel. (Les comptes supprimés ne peuvent pas être restaurés)","account_tip_config_mfa":"Vous pouvez choisir d\'utiliser un SMS ou un mot de passe à usage unique basé sur le temps (TOTP) comme authentification secondaire","account_error_can_not_enable_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer MFA","account_tip_can_not_enable_sms_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer SMS MFA","account_tip_can_not_enable_totp_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer TOTP MFA","account_tip_setup_totp":"Utilisez des applications telles que Authenticator pour scanner le code QR ci-dessous ou copiez le code manuellement pour ajouter un jeton de sécurité","account_tip_verify_totp":"Vérifiez votre TOTP","account_link_your_social_account":"Liez votre compte social","account_unlink_your_social_account":"Dissocier le compte social","account_tip_confirm_link":"Êtes-vous sûr de vouloir lier le compte actuel à votre compte {provider} ?","account_tip_confirm_unlink":"Êtes-vous sûr d\'annuler votre compte lié {provider} ?","account_tip_linking":"obligatoire...","account_tip_unlinking":"Sans engagement...","account_linked":"Bondir","account_unlinked":"Non lié","account_error_can_not_link_to_the_linked_account":"Le compte social actuel est lié à un autre compte","account_error_can_not_link_to_the_mismatched_email":"Le compte actuel et l\'adresse e-mail du compte social sont incohérents","account_error_can_not_link_before_email_verified":"Le compte social ne peut pas être lié car le compte actuel n\'est pas lié à un e-mail vérifié","account_tip_confirm_verify_email_phone":"Voulez-vous envoyer un code de vérification à l\'adresse e-mail et au numéro de téléphone du compte actuel pour vérifier votre identité ?","account_tip_confirm_verify_phone":"Voulez-vous envoyer un code de vérification au numéro de téléphone actuel pour vérifier votre identité ?","account_error_1_message_60_seconds":"Un seul SMS ou e-mail peut être envoyé toutes les 60 secondes, attendez encore {delta} secondes","account_error_10_messages_per_day":"Chaque téléphone mobile ou e-mail ne peut envoyer que 10 messages en 24 heures","account_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","Network Error":"Il y a un problème avec le réseau, veuillez réessayer plus tard","account_error_user_not_exist":"L\'utilisateur n\'existe pas","account_error_incorrect_username_or_password":"identifiant ou mot de passe incorrect","account_error_incorrect_original_password":"Mot de passe d\'origine incorrect","account_error_incorrect_password":"Mot de passe incorrect","account_error_username_not_found":"Nom d\'utilisateur introuvable","account_error_can_not_reset_for_no_verified":"Impossible de réinitialiser le mot de passe pour le compte non vérifié","account_error_invalid_verification_code":"Code de vérification incorrect, veuillez réessayer","account_error_expired_verification_code":"Le code de vérification a expiré, veuillez réessayer","account_error_password_not_long_enough":"Le mot de passe n\'est pas assez long","account_error_attempt_limit_exceeded":"Limite de tentatives dépassée, veuillez réessayer après un certain temps.","account_error_password_attempts_exceeded":"Tentatives de mot de passe dépassées.","account_error_invalid_phone_number_format":"Format de numéro de téléphone invalide","account_error_no_cell_phone_prefix":"Veuillez sélectionner le préfixe du numéro de téléphone","account_error_username_already_exists":"Cet identifiant existe déjà","account_error_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions","account_error_inactive_code":"Le code d\'invitation n\'est pas un code activé","account_error_non_existent_code":"Le code d\'invitation est inexistant","account_error_unexpected":"Erreur inattendue","account_error_can_not_change_email_before_phone_bound":"L\'e-mail ne peut pas être modifié avant que le numéro de téléphone ne soit lié","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail ne peut pas être modifié avant de dissocier le compte social","account_error_can_not_change_phone_before_email_bound":"Le numéro de téléphone ne peut pas être modifié avant que l\'e-mail ne soit lié","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossible de modifier l\'adresse e-mail ou le numéro de téléphone mobile avant de désactiver MFA","account_error_not_supported_yet":"Pas de soutien pour le moment","account_error_same_email":"La nouvelle adresse e-mail ne peut pas être la même que l\'adresse e-mail d\'origine","account_error_same_phone":"Le nouveau numéro de téléphone ne peut pas être le même que le numéro de téléphone d\'origine","account_error_email_not_exists":"L\'adresse e-mail n\'existe pas","account_error_email_already_exists":"Un compte avec l\'adresse e-mail indiquée existe déjà.","account_error_phone_already_exists":"Un compte avec le numéro de téléphone indiqué existe déjà.","account_error_mfa_token_mismatch":"Incompatibilité de code de jeton logiciel","account_error_recaptcha_not_loaded":"Il y a un problème avec le réseau. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_recaptcha_validation_failed":"La validation ReCAPTCHA a échoué. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_sign_in_in_progress":"Tentative de connexion en attente déjà en cours","account_field_range":"Limiter la saisie de {0}-{1} caractères","account_field_only_alphanumeric":"Ne prend en charge que les caractères alphanumériques","account_field_only_alphanumeric_and_symbol":"Ne prend en charge que les caractères alphanumériques et les symboles","account_field_only_chinese_alphanumeric_space_underline":"Ne prend en charge que les caractères alphanumériques, les espaces et les traits de soulignement","account_field_prefix_without_number_space":"Le premier caractère ne peut pas être un chiffre ou un espace","account_field_suffix_without_space":"Ne peut pas se terminer par un espace","account_field_without_repeat_space":"Impossible d\'utiliser plusieurs espaces à la suite","account_field_can_not_only_alphanumeric":"Vous ne pouvez pas simplement utiliser des lettres ou des chiffres","account_field_must_have_number_characters":"Doit contenir des chiffres","account_field_verification_code":"Le code de vérification doit comporter six chiffres","account_field_invitation_code":"Le code d\'invitation doit être alphanumérique","account_field_phone_number":"Format de numéro de téléphone invalide","account_invalid_email_format":"Format d\'email invalide","account_sign_out_confirm":"Êtes-vous sûr de vous déconnecter ? Cela arrêtera toutes les tâches.","account_sign_out_anyway":"Déconnectez-vous quand même","account_signing_out":"Déconnecter...","account_request_save_settings":"Les paramètres ne sont pas enregistrés. Vous devez enregistrer les modifications avant de vous déconnecter.","pay":"Payer","pay_with_credit":"Payez pour l\'accélération du téléchargement. Besoin d\'environ {0} de crédit","pay_with_credit_payed":"Accélération. Encore besoin d\'environ {0} de crédit","create_payment":"Créer un paiement","pay_target":"Cible","pay_for_torrent":"Payer pour {0}","your_subid":"Votre sous-identifiant","your_credits":"Vos crédits","pay_point_for_data":"Payez {0} point pour {1} de données","auto_renew":"Activer le renouvellement automatique","transaction_details":"détails de la transaction","transaction_id":"Identifiant","transaction_payer":"Payer","transaction_payee":"Bénéficiaire","transaction_category":"Catégorie","transaction_changed_amount":"Montant modifié","transaction_meta":"Méta","transaction_status":"Statut","transaction_creation_time":"Temps de creation","receipt_code":"Code de reçu","transfer_amount":"Montant du transfert","code_the_receipt_code":"Copiez le code de reçu ci-dessous au payeur","fill_the_receipt_code":"Virement en renseignant le code de paiement fourni par le bénéficiaire","expense":"Frais","copied":"Copié","transfer":"Transfert","receive":"Recevoir","copy":"Copie","withdraw_fund":"Retirer des fonds","category_paydata_payer":"Coût des données","category_paydata_payee":"Revenu de données","category_transfer":"Transfert","category_bonus":"Prime","category_recharge":"Recharger","status_pending":"en attente","status_completed":"complété","status_finish":"finir","status_failed":"échoué","tip_invalid_receiver":"Code récepteur invalide","tip_invalid_amount":"Le montant du crédit doit être un flottant compris entre 0 et 1 000 (la précision minimale est de 0,001)","credit_get_more":"Obtenez plus de crédits","credit_no_data":"Pas de données disponibles","credit_loading":"Chargement...","credit_not_enough_amount":"Pas assez de crédits","credit_amount_not_enough":"Pas assez de crédits","credit_payee_not_exist":"Le bénéficiaire n\'existe pas","credit_invalid_amount":"Montant du crédit invalide","credit_can_not_transfer_to_yourself":"Impossible de transférer à vous-même","credit_latest":"Dernier","credit_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","add_subtitles":"Ajouter des sous-titres","open_file":"Fichier ouvert...","advanced_options":"Options avancées","title":"Titre","location":"emplacement","subtitle_file":"fichier de sous-titres","unsupported_subtitle_type":"Le type de fichier de {0} n\'est pas un type de sous-titre pris en charge","not_default_player":"Le lecteur vidéo par défaut n\'est pas défini","this_is_an_audio_file":"Ceci est un fichier audio","the_added_subtitle_already_exists":"Le sous-titre ajouté existe déjà","stop_stream_player":"La diffusion multimédia a été interrompue car la tâche a été interrompue ou supprimée","stop_player":"Le lecteur a été fermé car le fichier a été supprimé","playing_timeout_hint":"Délai d\'attente expiré. Veuillez vérifier la tâche","autoplay_hint":"La lecture automatique peut être bloquée par votre navigateur. Si le lecteur ne joue pas, essayez de cliquer sur l\'écran pour continuer","remove_playing_confirm":"{0} est toujours en cours de lecture, supprimez-le pour arrêter le lecteur. Êtes-vous sûr de le supprimer ?","unsupported_in_browser":"Pas encore pris en charge en mode navigateur","client":"Client","warning":"Avertissement","enable":"Activer","disable":"Désactiver","auto":"Auto","encrypt_connection":"Chiffrer la connexion","encrypted_connection":"Connexion cryptée","non_encrypted_connection":"Connexion non cryptée","connected_wires_not_disconnect":"Les fils connectés ne seront pas déconnectés","audio":"l\'audio","video":"vidéo","image":"image","subtitle":"Sous-titre","zip":"zipper","text":"texte","unknown":"inconnu","add":"Ajouter","undo":"annuler","backup":"Sauvegarde","not_default_app":"${displayName} n\'est pas votre application par défaut pour les torrents et les médias, voulez-vous la définir par défaut ?","dont_show_again":"Ne plus afficher","go_to_settings":"Aller aux paramètres","about_alphabiz":"Environ ${displayName}","last_check_at":"Dernière vérification à","update_channel":"Mettre à jour la chaîne","check_for_update":"Vérifier la mise à jour","checking_for_update":"Vérification de la mise à jour...","no_update_available":"Pas de mise a jour disponible","update_available":"Mise à jour disponible","update_now":"Mettez à jour maintenant","update_later":"Mise à jour plus tard","click_to_update":"Cliquez sur le bouton METTRE À JOUR MAINTENANT pour télécharger et mettre à jour","update_failed":"Mise à jour a échoué","update_failed_message":"Une erreur s\'est produite lors de la mise à jour :","check_shasum_failed":"Échec de la vérification de l\'intégrité pour le programme d\'installation","downloading_update":"Téléchargement de la mise à jour...","ready_to_update":"Prêt à mettre à jour","restart_to_update":"La mise à jour est téléchargée. ${displayName} sortira pour mettre à jour pendant quelques instants.","already_latest":"La version actuelle ({0}) est déjà la dernière","update_timeout":"Délai de mise à jour","no_available_release":"Aucune version disponible","no_available_installer":"Aucun programme d\'installation disponible","feedback":"Retour","select_a_type":"Sélectionnez un type","category":"Catégorie","select_a_category":"Choisir une catégorie","require_title":"Le titre est requis","describe_your_problem":"Décrivez votre problème","report_a_bug":"Signaler un bug","request_a_new_feature":"Demander une nouvelle fonctionnalité","download_or_upload":"Téléchargement","others":"Autres","submit_with_system_info":"Soumettre avec les informations système","submit_feedback":"Soumettre des commentaires","tweet_us":"Tweetez-nous","tweet_too_long":"Le tweet est trop long","delete_characters":"Veuillez supprimer au moins {0} caractère(s)","rest_characters":"Vous pouvez saisir {0} plus de caractère(s)","update_alphabiz":"Mettre à jour ${displayName}","current_version":"Version actuelle","cancel_update":"Annuler la mise à jour","slow_download_speed":"Téléchargement trop lent","slow_download_speed_caption":"Le téléchargement du programme d\'installation est trop lent maintenant. Veuillez vérifier l\'état du réseau","update_canceled":"Mise à jour annulée","current_version_release_time":"Date de sortie de la version actuelle","expired_app":"${displayName} Expiré","version_out_of_date":"Version obsolète","have_to_update":"La version de ${displayName} est obsolète. Certains protocoles ou API sont obsolètes. Vous devez mettre à jour ${displayName} avant de continuer.","exit_alphabiz":"Sortie ${displayName}","exit_and_update":"Quitter et appliquer la mise à jour","new_version_hint":"Une nouvelle version est disponible","no_new_version":"Aucune nouvelle version disponible","current_is_latest":"La version actuelle est déjà la plus récente","click_to_check_update":"Cliquez sur le bouton [CHECK FOR UPDATE] pour vérifier la mise à jour","download_latest_version_from_website":"Veuillez visiter le site officiel pour télécharger la dernière version","to_the_website":"Vers le site","network_diagnotic":"Diagnostique réseau","diagnotic":"Diagnostique","click_to_check":"Cliquez pour vérifier","click_to_check_again":"Cliquez pour vérifier à nouveau","checking":"Vérification","online":"En ligne","offline":"Hors ligne","dns_look_up":"Recherche DNS","error":"Erreur","aws_service":"ServicesAWS","network_pings":"Ping réseau","not_found":"Pas trouvé","packet_loss":"Perte de paquet(s)","official_site":"Site officiel","download_test":"Télécharger l\'essai","test_task":"Tâche d\'essai {0}","download_failed":"Échec du téléchargement","second_spend":"{0} dépenses","open_default_player_failed":"Impossible d\'ouvrir le lecteur par défaut","copied_to_clipboard":"Copié dans le presse-papier","go_to":"Aller à","region_not_available":"Région non disponible","region_not_available_message":"Désolé! Votre région n\'est pas disponible pour utiliser cette application. Cette application se fermera après {0} secondes","confirm":"Confirmer","no_available_result":"Aucun résultat disponible","invalid_password_format":"format de mot de passe invalide","invalid_password_format_same":"Le mot de passe est le même que le mot de passe d\'origine","error_password":"Erreur de mot de passe","keychain_setting":"Porte-clés","setting_description":"Stockage dans le cloud : enregistrez les données clés dans le cloud.\\nModifier le mot de passe : modifier le mot de passe de la clé de la bibliothèque multimédia.\\nMnémonique : une méthode alternative pour générer et restaurer des clés.\\nImporter la clé locale : importez la clé enregistrée localement dans la médiathèque.\\nClé d\'exportation : enregistre les données actuelles de la bibliothèque multimédia en local ou dans le cloud.\\nClé de sauvegarde vers le cloud : mettez à jour les données actuelles de la bibliothèque multimédia vers le cloud pour la sauvegarde.","refresh_status":"État de mise à jour","confirm_import_key":"Confirmer la clé d\'importation","confirm_update_cloud_key":"Vous avez déjà une clé dans le cloud. La mise à jour de la clé écrasera la clé d\'origine. Êtes-vous sûr de vouloir mettre à jour la clé stockée dans le cloud","export_key_with_cloud":"Entrez le mot de passe indépendant que vous avez défini pour exporter la clé de bibliothèque stockée dans le cloud et verrouillez le fichier de clé avec le mot de passe de déverrouillage","store_cloud_key_prompt_password":"Entrez un mot de passe indépendant pour stocker la clé de la bibliothèque dans le cloud","update_cloud_key_prompt_password":"Définissez un mot de passe indépendant pour chiffrer la clé de la bibliothèque, puis mettez-la à jour dans le cloud","enable_cloud_storage_prompt_password":"Définissez un mot de passe pour la clé stockée dans le cloud, grâce auquel vous pouvez récupérer la clé depuis le cloud","input_unlock_password":"Définir le mot de passe de déverrouillage","export_local_prompt_password":"Veuillez définir un mot de passe de déverrouillage pour chiffrer votre fichier clé. Nous n\'enregistrerons pas ce mot de passe pour vous, donc si vous perdez votre mot de passe, vous ne pourrez pas déverrouiller votre clé de bibliothèque","require_unlock_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","require_independent_password":"Entrez le mot de passe indépendant pour obtenir la clé stockée dans le cloud","import_local_prompt_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","select_encrypt_mode":"Sélectionnez le mode de cryptage","update_cloud_key":"Mettre à jour la clé stockée dans le cloud","backup_to_cloud":"Sauvegardez la clé de la bibliothèque dans le cloud","save_local":"Enregistrez la clé de la bibliothèque en tant que fichier crypté local","create_new_key":"Créer une nouvelle clé de bibliothèque","creating_lib_key":"Création de la clé de bibliothèque...","loading_lib_key":"Chargement de la clé de bibliothèque...","failed_to_create_lib_key":"Échec de la création de la clé de bibliothèque","failed_to_load_lib_key":"Impossible de charger la clé de la bibliothèque","import_local_key":"Importer la clé localement","import_lib_key_from_local":"Importer une clé de bibliothèque localement","import_from_cloud":"Importer la clé de la bibliothèque depuis le cloud","create_or_import_key":"Créer ou importer une clé de bibliothèque","create_or_import_key_desc":"La clé de bibliothèque est une clé indépendante utilisée pour récupérer et publier du contenu avec une base de données décentralisée.","store_your_lib_key":"Stockez votre clé de bibliothèque","export_cloud_key":"Exporter la clé depuis le cloud","export_current_key":"Exporter la clé actuelle","change_password":"Changer le mot de passe","enable_cloud_storage":"Activer le stockage en nuage","disable_cloud_storage":"Désactiver le stockage cloud","disable_cloud_storage_desc":"Désactiver le stockage dans le cloud supprimera la clé enregistrée dans le cloud, veuillez vous assurer que la clé est enregistrée localement","sync_at":"Synchroniser à : {time}","cloud_storage_enabled":"Synchroniser le trousseau avec {storage}","cloud_storage_disabled":"Stockage cloud désactivé","saved_locally":"Enregistré localement","export_key":"Exporter le fichier clé","cloud_independent_password":"Mot de passe indépendant du cloud","key_file_unlock_password":"Mot de passe de déverrouillage du fichier clé","re_enter_unlock_password":"Entrez à nouveau le mot de passe de déverrouillage","independent_password_not_enabled":"Le mot de passe actuel est le mot de passe du compte Alphabiz (aucun mot de passe indépendant n\'est défini)","use_cognito_hash":"Utiliser le mot de passe du compte Alphabiz","use_independent_password":"Utiliser un mot de passe indépendant","keychain_lib":"clé de la bibliothèque","loading_keychain_state":"Chargement du trousseau...","backing_up":"Sauvegarde...","backup_current_key":"Sauvegarder la clé actuelle sur le Cloud","cloud_lib_key_not_existed":"la clé de bibliothèque n\'existe pas dans le Cloud","open_keychain_file":"Ouvrir le fichier du trousseau","confirm_open_abk":"Voulez-vous ouvrir le fichier ABK","use_the_key":"Utilisez la clé","backup_the_key":"Sauvegardez la clé dans le cloud","keychain_data_does_not_exist":"Les données du trousseau n\'existent pas","timeout of 0ms exceeded":"Il y a un problème avec le réseau, veuillez réessayer plus tard","XhrError":"Il y a un problème avec le réseau, veuillez réessayer plus tard","payer credit amount is not enough":"Pas assez de crédits","payee does not exist":"Le bénéficiaire n\'existe pas","block_list_manage":"Gérer la liste de blocage","blocked_users":"Utilisateurs bloqués","blocked_channels":"Chaînes bloquées","unblock_user":"Débloquer l\'utilisateur","unblock_channel":"Débloquer la chaîne","no_blocked_user":"Aucun utilisateur bloqué","no_blocked_channel":"Aucune chaîne bloquée","field_required":"{0} est requis","setting":"Paramètre","unknown_media":"Média inconnu","settings_button_visible":"Bouton visible","settings_setting":"Paramètre","settings_playback_rate":"Taux de lecture","settings_subtitle":"Sous-titre","settings_pip":"Pépin","settings_fullscreen":"Plein écran","settings_subtitle_options":"Options de sous-titres","settings_normal":"Normale","settings_italic":"Italique","settings_lighter":"Plus léger","settings_bolder":"Plus audacieux","settings_small":"Petit","settings_large":"Grand","about":"À propos","services":"Prestations de service","hide":"Cacher","hide_others":"Masquer les autres","show_all":"Afficher tout","quit":"Arrêter","edit":"Modifier","redo":"Refaire","cut":"Couper","paste":"Pâte","select_all":"Tout sélectionner","view":"Voir","reload":"Recharger","toggle_full_screen":"Basculer en plein écran","toggle_developer_tools":"Basculer les outils de développement","window":"Fenêtre","minimize":"Minimiser","bring_all_to_front":"Amenez tout au premier plan","help":"Aider","github_repo":"Dépôt Github","issues":"Problèmes","learn_more":"Apprendre encore plus","learn_spelling":"Apprendre l\'orthographe","lookup_selection":"Rechercher \\"{selection}\\"","search_with_google":"Rechercher avec Google","save_as":"Enregistrer sous","save_image":"Enregistrer l\'image","save_image_as":"Enregistrer l\'image sous ...","copy_link":"Copier le lien","save_link_as":"Enregistrer le lien sous ...","copy_image":"Copier l\'image","copy_image_as":"Copier l\'image sous...","copy_image_address":"Copier l\'adresse de l\'image","download_complete":"Téléchargement complet","download_complete_message":"{0} est téléchargé","is_running":"{0} est en cours d\'exécution","open":"Ouvert {0}","launch_problem":"Problème de lancement","ask_clear_data":"Il semble que vous essayez de lancer {0} mais que vous avez échoué plusieurs fois.\\nVoulez-vous effacer toutes les données de l\'application et essayer de lancer plus tard ?","launch_directly":"Lancer directement","clear_all_data":"Effacer toutes les données","ask_clear_confirm":"Cela supprimera toutes les configurations, les journaux et les données utilisateur !\\nAprès cela, vous devrez peut-être relancer {0}.\\nVoulez-vous vraiment effacer les données ?","confirm_launch":"Non, lancer directement","confirm_clear":"Oui, effacer toutes les données"}')},1278:function(e,t,a){},13:function(e,t){},1357:function(e,t,a){"use strict";a("5960")},14:function(e,t){},1463:function(e,t,a){"use strict";a("b91a")},15:function(e,t){},"15eb":function(e,t,a){"use strict";(function(e,n){a("de6c"),a("a1c1"),a("d4b5");var o=a("7d96"),i=a("d310"),r=a("4d52"),s=a("e75b"),l=a("c5a5");t["a"]=({Vue:t,app:c,router:d})=>{if(t.use(o["a"],{useComponent:{i18n:c.i18n}}),n.handleAbBlockchain=({url:t,action:a,actionArgs:n})=>{if(t){const o={type:"03",prefix:"ab-blockchain"},i={encode:t=>e.from(t,"utf-8").toString("base64"),decode:t=>e.from(t,"base64").toString("utf-8")},r=e=>{if(!e.startsWith(`${o.prefix}://`))return null;const[t,a]=e.replace(`${o.prefix}://`,"").split("/"),n=JSON.parse(i.decode(a));return{action:t,actionArgs:n}},s=r(t);a=s.action,n=s.actionArgs}if(console.log("ab-blockchain$",a,n),"Blockchain"===d.currentRoute.name){const e=d.currentRoute.matched.find((e=>"Blockchain"===e.name)),t=e.instances.default;t.handleAction(a,n)}else d.push({name:"Blockchain",params:{action:a,action_args:n}})},Object(i["isElectron"])()){const{ipcRenderer:e}=a("b052");e.on(`${r["a"].config.prefix}-action`,((e,t,a)=>{n.handleAbBlockchain({action:t,actionArgs:a})}))}Object.defineProperty(n.$blockchain.wallet,"fundAccountWithFaucet",{configurable:!0,get(){return async({address:e,amount:t})=>{const a=new s["a"].Rest("ABDevRest"),n=await a.post("/development/blockchain/fundAccountWithFaucet",{amount:t,address:e,testToken:"XWZWQFZOZ3"});return n}}}),n.$blockchain.$store.wallet.createCollectionLink=async()=>{const t=async(t,a)=>{const n=(t,a)=>{const n={type:"03",prefix:"ab-blockchain"},o={encode:t=>e.from(t,"utf-8").toString("base64"),decode:t=>e.from(t,"base64").toString("utf-8")},i=o.encode(JSON.stringify(a));return`${n.prefix}://${[t,i].join("/")}`},o=n(t,a);console.log("internalUrl",o);const i=await Object(l["a"])(o);return i},{account:a}=n.$blockchain.$store;await a.assertAccountAccessible();const o=a.address,i=await t("transfer",{to_address:o});return i}}}).call(this,a("eb72").Buffer,a("0ee4"))},16:function(e,t){},17:function(e,t){},1738:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return l}));a("0c26");var n=a("e757"),o=a("47fc"),i=a("d710"),r=a.n(i);const s={MEASUREMENT_ID:"G-9NE14P89WD",STREAM_ID:"4617180072",API_SECRET:"r7q0lwYuQeSimEJ5JnVFuQ"},l=new n["a"](s.MEASUREMENT_ID,s.API_SECRET);function c(){var e;const t=Object(o["a"])(),{packageFormat:n,version:i}=l(),s=i.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:r.a.name,app_type:"website",app_env:"production",app_format:null!==n&&void 0!==n?n:"unknown",app_version:s.version,app_channel:null!==(e=s.channel)&&void 0!==e?e:"stable",app_screen:t.screen,app_os:t.os,app_os_version:t.osVersion,app_arch:t.arch};function l(){return a("ae46")}}t["b"]=(t,{app:a,router:n})=>{(e&&e.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))&&(console.log("DISABLE GOOGLE ANALYTICS"),l.disable()),l.config(),setTimeout((async()=>{const e=c();console.log("[GA] App Data",e),await l.send("analytics_test_app_data",e)}),1e4);let o=Date.now();l.send("app_launch",{timestamp:o}),n.afterEach(((e,t)=>{if("/"===t.path||e.path===t.path)return;const a=Date.now(),n=a-o;o=a,l.send("app_route",{to:e.path,from:t.path,stayTime:n})})),t.prototype.$ga=l,console.log("Init Google Analytics")}}).call(this,a("28d0"))},1761:function(e,t,a){"use strict";a("5d03")},18:function(e,t){},"186c":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},19:function(e,t){},1926:function(e,t,a){"use strict";a.d(t,"b",(function(){return Ae}));a("a1c1"),a("de6c"),a("d4b5"),a("dc89"),a("2425"),a("7a76");var n=a("ff9b"),o=a("4d79"),i=a("d710"),r=a.n(i);const s=r.a.displayName;var l={repeat_add:"任务已添加,请勿重复添加",upload:"上传",download:"下载",delete:"删除",delete_task:"删除任务",delete_confirm_message:"是否删除该任务? 此操作不可恢复",also_delete_files:"同时删除文件",default_delete_files:"删除任务时默认删除已下载的文件",not_now:"暂不处理",delete_autoupload_confirm:"此任务文件位于自动上传文件夹, 删除任务将同时删除对应文件",delete_anyway:"仍要删除",upload_too_many_files:"上传文件过多",ask_if_unlimit_upload_amount:"自动上传文件夹包含过多文件. 是否取消上传数量限制? *此操作可能造成性能问题",disable_limitation:"取消限制",not_length:"暂不支持,多文件操作,请配合",download_torrent:"下载该任务",upload_torrent:"上传该任务",files:"文件",file:"文件",folder:"文件夹",start_all:"全部开始",pause_all:"全部暂停",remove_all:"全部移除",upload_all:"全部上传",clear_history:"清除历史",pause_all_finish_payments:"此操作将完成所有已支付的订单.",accelerating:"加速中",link_task:"链接任务",torrent_task:"文件任务",ok:"好的",cancel:"取消",download_directory_position:"下载目录位置",torrent_file:"任务文件",magnetic_link_incorrect:"链接格式不正确",delete_fail:"删除失败",pause:"暂停",paused:"已暂停",stop_torrent:"结束任务",seed:"上传",resume:"继续",downloading:"下载中",downloaded:"下载完成",uploading:"上传中",auto_uploading:"自动上传中",uploaded:"上传完成",pending:"等待其他任务完成",no_downloading_task:"没有下载中任务",remove_all_downloading_tasks:"是否移除所有下载中任务?",remove_all_upload_tasks:"是否移除所有上传任务?",remove_autoupload_files:"移除所有自动上传任务",remove_all_history:"是否移除历史下载记录?",verifying:"验证文件",waiting_for_verify:"等待验证文件",seeding:"上传中",completed:"已完成",status:"状态",task_name:"任务名",size:"大小",progress:"进度",sort:"排序",ascending:"升序",descending:"降序",file_loading:"文件加载中",loading:"加载中",unknown_status:"未知",play_while_downloading:"边下边播",upload_or_play:"上传 / 播放",play:"播放",ask_if_upload_file:"是否上传文件?",ask_if_upload_or_play:"是否上传/播放文件?",torrent_error:"添加任务时遇到错误:",no_peers:"多次尝试后仍未能与Peers建立连接",torrent_exists:"任务已存在",show_origin_torrent:"显示原始任务文件或链接",show_directory:"打开文件所在位置",task_num:"任务数",total_upload_speed:"上传速度",total_download_speed:"下载速度",path_missing:"Error: 找不到文件位置",origin_not_found:"获取任务信息失败",text_copied:"链接已复制到剪贴板",copy_magnet_uri:"复制链接地址",copy_download_uri:"复制下载链接",copy_share_uri:"复制社交分享链接",uri_copied:"链接已复制至剪贴板",uri_copy_failed:"复制链接失败",more:"更多",toggle_list_mode:"切换显示模式",comment:"评论",operations:"操作",open_directory:"打开所在文件夹",remaining:"剩余时间",created_time:"创建时间",used_time:"用时",completed_time:"完成时间",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分文件缺失.",common_peer:"普通用户",ab_peer:`${s} 用户`,ab_peer_verified:`${s} 注册用户`,ab_peer_available:`${s} peer 可用`,alphabiz_accelerating:`${s} 加速中`,income:"收入",income_info:"收入(今天/总计)",total_income_info:"收入: {0}(今天) / {1}(总计)",login_to_see_income:"登陆以查看收入统计",credit_cost:"积分支出",downloaded_by_payment:"付费下载量",file_not_found:"无法找到本地文件",no_task:"无任务",no_matched_task:"无法找到匹配的任务",space_not_enough:"磁盘空间不足",need_more_space:"需要 {0} 磁盘空间, 磁盘剩余空间为 {1} ({2} 为保留空间). 任务已暂停. 媒体库预加载已禁用. 您可以在[设置 - 进阶设置]中重新启用.",seeders:"做种",last_update:"最后更新",connecting:"连接中",connected:"已连接",request_timed_out:"请求超时",connection_failed:"连接失败",invalid_download_url:"下载链接错误",download_link:"下载链接",empty_files:"文件夹中没有文件",duplicate_task:"重复任务",duplicate_tracker:"重复 tracker",this_task_not_ready:"此任务尚未就绪,暂停该任务将直接移除它",some_task_not_ready:"部分任务尚未就绪,暂停这些任务将直接移除它们",failed_to_delete_files:"删除文件失败",failed_to_delete_files_desc:"无法删除部分任务文件,可能需要手动删除",unknown_error:"未知错误: {0}",more_files_are_not_shown:"(出于性能考虑,{0} 个文件未显示)",no_available_file:"没有可用的文件,请等待任务就绪",service_worker_error:"无法加载 ServiceWorker。您的浏览器可能不支持此特性,或者 ServiceWorker 尚未就绪。请刷新页面后重试。",add_task_first:"请先添加任务",player_task_time:"播放器准备时间过长,请检查任务是否就绪",web_mode_hint:`${s} Web 仅支持 WebRTC 种子。下载 ${s} 桌面版以获得最佳体验。`,web_mode_task_hint:"点击下方链接创建任务。Web 模式同时仅可创建一个任务。",save_to_local:"保存到本地",save_as_zip:"保存为 ZIP",creating_save_file:"正在创建文件...",upload_as_one_directory:"作为一个文件夹上传",upload_as_single_files:"作为单独的文件上传",web_mode_upload_single:"Web 模式下只能上传单个文件",download_success:"下载成功",download_fail:"下载失败",wait_for_downloaded_to_share:"请等待下载完成后进行分享。",download_with_cellular:"使用数据流量下载",download_with_cellular_desc:"您正在使用数据流量,下载时运营商可能会收取额外的费用。",download_with_cellular_confirm:"仍然使用数据流量"},c={language:"语言",appearance:"外观",darkModeSystem:"跟随系统",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基础设置",hideMenu:"隐藏菜单栏(仅支持Windows和Linux)",autoHide:"自动隐藏窗口",start:"启动",autoStart:"开机自动启动",restore:"恢复上次退出时窗口的大小和位置",autoStartUnfinished:"自动开始未完成的任务",default_download_path:"默认下载路径",download_directory:"下载目录",upload_directory:"上传目录",enable_auto_upload:"允许自动上传",unlimit_upload_amount:"不限制上传数量",unlimit_upload_warning:"允许同时上传大量文件. 此选项可能导致性能问题",transport_setting:"传输设置",upload_limit:"上传限速",download_limit:"下载限速",payed_user_share_rate:"付费用户上传比例",unlimited:"不限速",limit_input_error:"限速需为正数",BT_setting:"下载任务设置",saveLinkSeed:"保存链接元数据为任务文件",autoDownload:"自动开始下载链接任务、任务文件",continuousSeeding:"持续上传,直到手动停止",seedSharingRate:"分享率",seedTime:"上传时间(分钟)",task_manage:"任务管理",maximumDownloadNum:"同时下载的最大任务数",maximumConnectionsNum:"每个服务器最大的连接数",range_error:"范围需在{0}-{1}之间",random:"随机",breakpointContinuation:"断点续传",automaticSkip:"新建任务后自动跳转到下载页面",afterNotification:"下载完成后通知",deleteConfirm:"删除任务前无需确认",submit:"保存并应用",discard:"放弃",reset:"重置",reset_all_settings:"重置所有设置?",preferences_resetted:"偏好设置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"进阶设置",autoUpdate:"自动更新",autoCheckUpdate:"自动检查更新",proxy:"代理",useProxyService:"使用代理服务器",trackerService:"Tracker服务器",recommendUse:"推荐使用",autoUpdateTrackerServiceList:"每天自动更新Tracker服务器列表",manualUpdateTracker:"手动更新",manualUpdateSuccess:" Tracker服务器更新成功",manualUpdateFail:"更新以下Tracker服务器失败:",listenPort:"监听端口",BTlistenPort:"数据传输端口",DHTlistenPort:"分布式哈希通讯端口",protocols:"兼容以下协议",setDefaultClientForFollowingProtocols:"设置本软件为以下兼容协议的默认客户端",magnetUrl:"磁力链接",video_file:"视频文件",audio_file:"音频文件",security:"安全性",impersonateUserAgent:"模拟用户代理(UA)",RPCauthorizationkey:"RPC授权密钥",viewDocument:"查看说明文档",developer:"开发者",applicationLogPath:"应用日志路径",downloadSessionPath:"下载会话路径",resetDownloadSessionRecord:"重置下载会话记录",restoreInitialSettings:"恢复初始设置",preferences_set_successfully:"偏好设置成功!",preferences_set_fail:"偏好设置失败!",change_not_save:"修改未保存",discard_all_changes:"是否放弃所有更改?",stay_in_page:"留在此页",disk_usage:"保留磁盘空间",pause_if_less_space:"剩余空间小于此值时暂停并提醒(MB)",default_video_player:"默认视频播放器",video_cache_time:"边下边播缓存时间",minutes:"分钟",system_default:"系统默认",media_player:"媒体播放器",library_film_rate:"可见影片分级",library_show_explore:"显示[探索]页面",library_setting:"媒体库设置",library_sync_setting:"媒体库同步设置",keychain_sync_status:"密钥同步状态",sync_with_aws:"使用 Amazon Web Services 同步密钥",backup_to_local:"保存为本地文件",enable_sync_with_aws:"启用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作将移除保存在云端的密钥,请确保已将密钥保存至本地。",input_independent_password:"输入独立密码",change_independent_password:"修改独立密码",password_error:"密码错误",password_invalid:"密码格式错误",key_existed:"密钥已存在",key_not_found:"密钥不存在",library_recommend:"媒体库推荐",show_all_channels:"在媒体库推荐页显示所有频道",not_logged_in:"尚未登录",login_to_continue:"登陆以继续",mnemonic_code:"助记词",wordlist:"单词表",restore_code:"从助记词恢复",generate_code:"生成助记词",export_mnemonic_code:"导出助记词",import_mnemonic_code:"导入助记词",print:"打印",save_as_txt:"保存为 txt",save_as_pdf:"保存为 pdf",from_file:"从文件导入",not_valid_mnemonic_code:"助记词格式错误",cannot_parse_code_as_key:"无法将此助记词解析为密钥",import_key_hint:"是否确认导入此密钥?此操作将覆盖旧的密钥。",import_key_confirm:"确认导入",library_preload:"媒体库任务预加载",show_preload:"显示预加载任务",set_download:"设置下载文件夹",set_download_desc:"macOS App Store 版本默认保存位置为应用内部沙盒,在应用卸载时会一并删除。为了保留下载文件,您需要手动选择下载位置。"},d={home:"主页",home_caption:"下载/上传媒体文件",library:"媒体库",library_caption:"探索媒体资源",player:"播放器",player_caption:"视频播放",credits:"信用積分",credits_caption:"检查账户积分余额",account:"用户",account_caption:"个人用户配置",settings:"设置",settings_caption:"所有设置项",development:"开发者",development_caption:"应用开发者模式",basic:"主要设置",basic_caption:"主要的设置项",advanced:"进阶设置",advanced_caption:"进阶的设置项",blockchain:"钱包",blockchain_caption:"去中心化钱包",internal_notice:"内部版本声明",release_notes:"发行说明",terms_and_conditions:"条款和章程",license_and_listen_notices:"许可和监听开源说明",close:"关闭",success:"成功",fail:"失败"},u={credits:"信用积分",pay:"支付积分",pay_with_credit:"支付积分加速下载, 预计需要{0}积分",pay_with_credit_payed:"正在加速下载, 预计还需要{0}积分",create_payment:"创建积分订单",pay_target:"支付对象",pay_for_torrent:"为 {0} 支付",your_subid:"用户 subId",your_credits:"当前余额",pay_point_for_data:"支付{0}积分以加速{1}数据",auto_renew:"允许自动续费",transaction_details:"订单明细",transaction_id:"订单编号",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"类型",transaction_changed_amount:"变动金额",transaction_meta:"其他数据",transaction_status:"订单状态",transaction_creation_time:"订单创建时间",receipt_code:"收款码",transfer_amount:"转账金额",code_the_receipt_code:"复制下方收款码给付款人",fill_the_receipt_code:"通过填入收款人提供的收款码进行转账",income:"收入",expense:"支出",copied:"已复制",transfer:"转账",receive:"收款",copy:"复制",withdraw_fund:"提取基金",category_paydata_payer:"数据支付",category_paydata_payee:"数据收入",category_transfer:"个人转账",category_bonus:"系统奖励",category_recharge:"充值",status_pending:"等待中",status_completed:"已传完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"无效的收款码",tip_invalid_amount:"金额应为 0-1000 范围内的数(最小精度为0.001)",credit_get_more:"获得更多积分",credit_no_data:"无可用数据",credit_loading:"加载中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"网络出现异常,请稍后重试","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},_={account_email_invalid_address:"无效的电子邮件地址",account_email_invalid_domain:"无效的电子邮件域",account_email_unknown_status:"未知的邮件发送状态",account_email_unavailable_address:"邮件地址不可用",account_email_suppressed_address:"邮件地址被禁用",account_loading:"加载中...",account_is_required:"不能为空",account_sign_in_your_account:"登录账户",account_username:"用户名",account_username_email_phone:"手机号码或电子邮箱",account_password:"密码",account_new_password:"新密码",account_re_enter_password:"再次输入密码",account_password_not_equal:"输入的两个密码不同。",account_new_password_same:"新密码与原密码相同",account_forgot_your_password:"忘记密码了?",account_reset_password:"重置密码",account_sign_in:"登录",account_signed_in:"登录成功",account_sign_up:"注册",account_find_your_account:"找寻你的账户",account_enter_your_username:"输入你的手机号码或电子邮箱",account_search:"查找",account_email_sent_tip:"一封附带验证码的电子邮件已发送到您的邮箱:",account_phone_sent_tip:"一封附带验证码的短信已发送到您的手机:",account_email_phone_sent_tip:"附带验证码的电子邮件和手机短信已分别发送到您的邮箱和手机:",account_software_token_tip:"您的账户已启用安全令牌。要完成登录,请打开或查看您的设备并输入验证码",account_reset_your_password:"重置账户密码",account_verification_code:"验证码",account_resend_code:"重发验证码",account_code_has_been_resent:"验证码已发送",account_password_has_been_reset:"密码已重置",account_submit:"提交",account_sign_up_your_account:"注册账户",account_fill_required_fields:"填写下方的必填项。",account_fill_optional_fields:"填写下方的选填项。",account_email:"邮箱",account_invitation:"邀请",account_invitation_code:"邀请码",account_i_accept:"我接受",account_license_terms:"服务许可条款",account_next:"下一步",account_you_need_to_accept_license_terms:"请先勾选我接受服务许可条款",account_verify_fill_optional_fields:"验证身份与可选项",account_nickname:"昵称",account_gender:"性别",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手机号码",account_locale:"地区",account_tip_verified:"验证通过,正在登陆...",account_verified:"已验证",account_unverified:"未验证",account_signed_up:"注册成功",account_verify_your_identity:"验证您的身份",account_finish:"完成",account_signed_out:"注销成功",account_change_password:"修改密码",account_change_email:"修改电子邮箱",account_change_phone_number:"修改手机号码",account_sign_out:"注销",account_current_password:"当前密码",account_re_enter_new_password:"再次输入新密码",account_personal_information:"个人信息",account_edit:"编辑",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_not_set:"未设置",account_change:"修改",account_setting:"设置",account_copy_code:"复制代码",account_account_setting:"账户设置",account_task_page:"积分任务",account_setting_caption:"管理你的账户信息",account_security:"安全",account_want_to_join:"登录更精彩",account_sign_in_now:"点击登录",account_changed:"已更改",account_clipboard_with_invitation_code:"已复制邀请码",account_clipboard_with_code:"已复制代码",account_invitation_code_dialog_tip:"你将通过短信或电子邮件的方式发送邀请码:",account_available:"可用",account_invited:"已邀请",account_used:"已使用",account_invitation_code_sent:"邀请码已发送",account_invitation_channel_required:"至少需要填写一项邀请途径",account_no_verification_code:"无法收到验证码?",account_no_phone_number:"没有手机号码?",account_sign_up_by_email:"通过邮箱注册",account_no_email:"没有邮箱?",account_sign_up_by_phone_number:"通过手机注册",account_no_totp:"没有安全令牌?",account_tip_no_totp:"若沒有安全令牌請先設定安全令牌",account_setup_totp:"设置安全令牌",account_contact_information:"联系方式",account_delete_account:"删除账户",account_deleted:"已删除",account_can_not_mfa:"无法进行二级验证?",account_set_mfa_type:"更改二级验证",account_disable_mfa:"关闭二级验证",account_disabled_mfa:"已关闭二级验证",account_sms_mfa:"手机短信验证",account_totp_mfa:"安全令牌验证",account_totp:"安全令牌",account_not_recommend:"不推荐",account_oauth_sign_in_with:"通过 {provider} 登录",account_sign_in_failed:"登录失败",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通过手机短信或安全令牌为账户设置二级验证",account_error_can_not_enable_mfa:"您必须同时绑定邮箱和手机号码,才可以启用二级验证",account_tip_can_not_enable_sms_mfa:"您必须同时绑定邮箱和手机号码,才可以启用短信验证",account_tip_can_not_enable_totp_mfa:"您必须同时绑定邮箱和手机号码,才可以启用安全令牌",account_tip_setup_totp:"使用Authenticator等应用,扫描下方的二维码或手动复制代码来添加安全令牌",account_tip_verify_totp:"验证您的安全令牌",account_link_your_social_account:"绑定您的社交账号",account_unlink_your_social_account:"解除社交账号绑定",account_tip_confirm_link:"确定将当前账号与您的 {provider} 账号进行绑定吗?",account_tip_confirm_unlink:"确定解除您已绑定的 {provider} 账号吗?",account_tip_linking:"正在绑定...",account_tip_unlinking:"解除绑定中...",account_linked:"已绑定",account_unlinked:"已解除绑定",account_error_can_not_link_to_the_linked_account:"当前社交帐号已与其他账号绑定",account_error_can_not_link_to_the_mismatched_email:"当前账号与社交帐号邮箱地址不一致",account_error_can_not_link_before_email_verified:"未绑定邮箱的账户无法绑定社交帐户",account_tip_confirm_verify_email_phone:"是否向当前账户的email和手机号码发送验证码以验证您的身份?",account_tip_confirm_verify_phone:"是否向当前手机号码发送验证码以验证您的身份?",account_error_1_message_60_seconds:"每60秒只能发送一条短信或邮件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手机或电子邮件24小时内只能发送10条信息",account_error_network:"网络出现异常,请稍后重试","Network Error":"网络出现异常,请稍后重试",account_error_user_not_exist:"用户不存在",account_error_incorrect_username_or_password:"用户名或密码错误",account_error_incorrect_original_password:"原密码错误",account_error_incorrect_password:"密码错误",account_error_username_not_found:"找不到该用户名的账户",account_error_can_not_reset_for_no_verified:"账户未进行邮箱验证,无法重置密码",account_error_invalid_verification_code:"验证码错误,请重试",account_error_expired_verification_code:"验证码过期,请重试",account_error_password_not_long_enough:"密码长度不能小于8位",account_error_attempt_limit_exceeded:"尝试次数过多,请稍后重试",account_error_password_attempts_exceeded:"超过密码尝试次数",account_error_invalid_phone_number_format:"手机号码格式不正确",account_error_no_cell_phone_prefix:"请选择手机号前缀",account_error_username_already_exists:"该用户名已存在",account_error_you_need_to_accept_license_terms:"请勾选我接受服务许可条款",account_error_inactive_code:"该邀请码已失效",account_error_non_existent_code:"该邀请码不存在",account_error_unexpected:"未知错误",account_error_can_not_change_email_before_phone_bound:"绑定手机号码前无法更改邮箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帐户绑定前无法更改邮箱",account_error_can_not_change_phone_before_email_bound:"绑定邮箱前无法更改手机号码",account_error_can_not_change_email_phone_with_mfa_enabled:"关闭二级验证前无法更改邮箱或手机号码",account_error_not_supported_yet:"暂不支持",account_error_same_email:"新的邮箱不能与原邮箱相同",account_error_same_phone:"新手机号码不能与原手机号码相同",account_error_email_not_exists:"该邮箱不存在",account_error_email_already_exists:"该邮箱已有账户绑定",account_error_phone_already_exists:"该手机号码已有账户绑定",account_error_mfa_token_mismatch:"安全令牌错误",account_error_recaptcha_not_loaded:"网络出现异常,请重连网络后重启应用重试",account_error_recaptcha_validation_failed:"未通过ReCaptcha验证,请重连网络后重启应用重试",account_error_sign_in_in_progress:"等待登录尝试已在进行中",account_field_range:"字符个数应在{0}-{1}的范围中",account_field_only_alphanumeric:"仅支持字母和数字",account_field_only_alphanumeric_and_symbol:"仅支持字母数字和符号",account_field_only_chinese_alphanumeric_space_underline:"仅支持中英文数字空格下划线",account_field_prefix_without_number_space:"首个字符不能为数字或空格",account_field_suffix_without_space:"不能以空格结尾",account_field_without_repeat_space:"不能连续使用多个空格",account_field_can_not_only_alphanumeric:"不可仅为字母或数字",account_field_must_have_number_characters:"必须包含数字",account_field_verification_code:"验证码必须是六位数数字",account_field_invitation_code:"邀请码必须是字母和数字",account_field_phone_number:"手机号码格式不正确",account_invalid_email_format:"邮箱格式不正确",account_sign_out_confirm:"是否确认注销? 注销后将停止所有任务",account_sign_out_anyway:"仍要注销",account_signing_out:"正在注销...",account_request_save_settings:"设置未保存。在注销前请先保存修改。",invalid_password_format:"密码格式错误",invalid_password_format_same:"新密码与原密码相同",error_password:"密码错误",keychain_setting:"密钥管理",setting_description:"云端储存:将密钥数据保存到云端。\n修改密码:修改媒体库密钥的密码。\n助记词:一种生成和恢复密钥的替代方法。\n导入本地密钥:将本地保存的密钥导入媒体库。\n导出密钥:将当前媒体库数据保存到本地或云端。\n备份密钥到云端:将当前媒体库数据更新到云端进行备份。",refresh_status:"更新状态",confirm_import_key:"确认导入密钥",confirm_update_cloud_key:"你在云端已有密钥,更新密钥将覆盖原有的密钥,确认更新存储在云端的密钥吗",export_key_with_cloud:"输入您所设置的独立密码导出存储在云端的媒体库密钥,并通过解锁密码锁定密钥文件",store_cloud_key_prompt_password:"输入独立密码以存储媒体库密钥到云端",update_cloud_key_prompt_password:"设置独立密码以加密媒体库密钥并更新到云端",enable_cloud_storage_prompt_password:"为存储在云端的密钥设置密码,通过该密码可以从云上取回密钥",input_unlock_password:"设置解锁密码",export_local_prompt_password:"请设置一个解锁密码,该密码用于加密您的密钥文件。我们不会保存此密码,因此若您丢失该密码,密钥文件将无法解锁",require_unlock_password:"该密钥文件已被锁定,请输入解锁密码",require_independent_password:"输入独立密码以获取存储在云端的密钥",import_local_prompt_password:"该密钥文件已被锁定,请输入解锁密码",select_encrypt_mode:"选择加密模式",input_independent_password:"输入独立密码",update_cloud_key:"更新存储在云端的密钥",backup_to_cloud:"将媒体库密钥备份到云端",save_local:"将媒体库密钥保存为本地加密文件",create_new_key:"创建新的媒体库密钥",creating_lib_key:"正在创建媒体库密钥...",loading_lib_key:"正在载入媒体库密钥...",failed_to_create_lib_key:"创建媒体库密钥失败",failed_to_load_lib_key:"载入媒体库密钥失败",import_local_key:"导入本地密钥",import_lib_key_from_local:"从本地导入媒体库密钥",import_from_cloud:"从云端导入媒体库密钥",create_or_import_key:"创建或导入媒体库密钥",create_or_import_key_desc:"媒体库密钥用于与去中心化数据库同步内容。",store_your_lib_key:"存储你的媒体库密钥",export_cloud_key:"导出云端密钥",export_current_key:"导出当前密钥",change_password:"修改密码",enable_cloud_storage:"启用云端存储",disable_cloud_storage:"关闭云端存储",disable_cloud_storage_desc:"关闭云端存储将移除保存在云端的密钥,请确保已将密钥保存在本地",sync_at:"同步于:{time}",keychain_sync_status:"密钥同步状态",cloud_storage_enabled:"使用 {storage} 同步密钥",cloud_storage_disabled:"未启用云端存储",saved_locally:"已保存于本地",export_key:"导出密钥文件",cloud_independent_password:"云端独立密码",key_file_unlock_password:"密钥文件解锁密码",re_enter_unlock_password:"再次输入解锁密码",independent_password_not_enabled:"当前密码为 Alphabiz 账户密码(未设置独立密码)",use_cognito_hash:"使用 Alphabiz 账户密码",use_independent_password:"使用独立密码",keychain_lib:"媒体库密钥",loading_keychain_state:"加载密钥中...",backing_up:"备份中...",backup_current_key:"备份当前密钥到云端",cloud_lib_key_not_existed:"云端媒体库密钥不存在",open_keychain_file:"打开密钥文件",confirm_open_abk:"是否打开ABK文件",use_the_key:"使用该密钥",backup_the_key:"备份该密钥到云端",keychain_data_does_not_exist:"密钥数据不存在","timeout of 0ms exceeded":"网络出现异常,请稍后重试",XhrError:"网络出现异常,请稍后重试"},p={add_subtitles:"添加字幕",open_file:"打开文件...",advanced_options:"高级选项",title:"标题",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默认视频播放器未设置",this_is_an_audio_file:"这是一个音频文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任务被暂停或删除,流媒体播放被终止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超时,请检查任务",autoplay_hint:"自动播放功能可能受浏览器限制,若未开始播放,请手动点击播放器以播放",remove_playing_confirm:"{0} 正在播放中,删除任务将停止播放。是否仍要删除?",subtitle:"字幕",setting:"设置",loading:"加载中",unknown_media:"未知媒体",settings_button_visible:"按钮显示",settings_setting:"设置",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"画中画",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常规",settings_italic:"斜体",settings_lighter:"纤细",settings_bolder:"粗体",settings_small:"较小",settings_large:"较大"},m=a("8097");const h=r.a.displayName;var g={lib_index:"主页",lib_edit:"编辑",lib_publish:"发布",lib_explore:"探索",lib_following:"关注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"频道",lib_submit:"提交",lib_from_network:"使用去中心化数据库,所有数据来源于网络",welcome_to_lib:`欢迎使用 ${h} 媒体库`,register_or_login:"注册/登陆",lib_recommend:"推荐",lib_recommend_desc:`欢迎使用 ${h} 媒体库!本媒体库使用去中心化的数据库,所有数据来源于网络。在开始前,请先关注一些推荐频道。`,follow_any_channel_to_continue:"关注任意频道以继续",follow_channels_and_continue:"关注 {0} 个频道并继续",show_more_for_me:"为我展示更多",no_more_recommend:"没有更多推荐",key:"密钥",create_key:"生成密钥",save_key:"保存密钥",save_key_file:"是否将密钥保存为文件?",import_key:"导入密钥",import:"导入",invalid_key:"密钥格式错误",back_to_top:"回到顶部",search_for_channel:"搜索频道 ID",search_channel_no_result:"找不到 ID 为 {0} 的频道",please_input_channel_id:"请输入频道 ID",welcome_help_text:"\n 这是一个去中心化的媒体库,您需要为此创建一个专用账户,\n 我们将自动为您生成一套密钥。如果您已经拥有密钥了,\n 也可以在此导入密钥".replace(/\s/g,""),welcome_key_text:"\n 当您成功创建账号后,请点击右下角的【保存密钥】按钮导出\n 您的密钥。一旦您丢失密钥,对应的账号将无法找回。".replace(/\s/g,""),redirect_to_recommend:"您似乎没有关注任何频道,即将前往探索页。",channel:"频道",follow:"关注",unfollow:"取消关注",following:"关注中",share:"分享",block:"屏蔽",unblock:"取消屏蔽",blocked:"已屏蔽",block_channel:"屏蔽此频道",block_channel_confirm:"屏蔽频道后,频道的所有内容将从时间线上移除。您可以在账户设置中管理屏蔽列表。",block_creator:"屏蔽此频道的创作者",unblock_creator:"取消屏蔽此频道的创作者",block_creator_confirm:"屏蔽创作者后,该创作者的所有频道将从时间线上移除。您可以在账户设置中管理屏蔽列表",share_url_copied:"分享链接已复制至剪贴板",unfollow_confirm:"是否取消关注?此频道的所有推文将从你的时间线上移除。",follow_failed_hint:"操作仍在后台进行中,请耐心等待。如长时间未完成修改请尝试重启应用。",follow_time:"关注时间",update_time:"更新时间",search:"搜索",type:"类型",added:"已添加",click_to_task:"点击前往对应任务",lib_already_added:"您已添加此视频",description:"描述",poster:"海报",channel_poster:"频道海报",preview:"预览",creator:"创作者",creator_detail:"创作者详情",loading_creator:"正在加载创作者信息",wait_for_creator_loaded:"请等待创作者信息加载完成。",follower:"关注者",followers:"关注者",follower_list:"关注者列表",user:"用户",channel_title:"频道标题",channel_id:"频道 ID",post_title:"推文标题",post_id:"推文 ID",import_data_from_excel:"从 Excel 导入数据",set_excel_keys:"设置excel键",excel_import_succeded:"Excel 导入成功",excel_import_success_msg:"可添加 {0} 条新项目, {1} 条信息不完整及 {2} 条重复项已忽略",cannot_find_channel:"找不到指定频道",cannot_find_posts:"找不到指定视频",add_channel:"添加频道",add_post:"添加推文",edit_channel:"编辑频道",channel_setting:"频道设置",edit_post:"编辑推文",edit_posts:"编辑推文",channel_detail:"频道详情",remove:"移除",remove_channel:"移除频道",remove_channel_confirm:"是否确认移除频道?此操作不可恢复。",remove_post:"移除推文",remove_post_confirm:"是否确认移除推文?此操作不可恢复",preview_mode:"预览模式",preview_mode_desc:"这是频道的预览模式,所有分级的影片均为可见状态。",edit_user_profile:"编辑用户资料",name:"昵称",avatar:"头像",no_following:"没有已关注的频道。点击前往",no_recommend:"没有可推荐的频道。点击前往",first_recomment_msg:"如果您是初次使用,加载时间可能较长",invalid_image:"图片异常",image_not_reachable:"此图片URL不可用",channel_not_found:"找不到频道",cannot_get_channel_info:"无法获取指定的频道信息。该频道可能已被创作者删除而不再可见。",validate_error:"验证错误",validate_user_name_no_space:"用户名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"用户名应为 {0}-{1} 字符",validate_user_desc_length:"用户描述不可多于 {0} 字符",validate_user_avatar_url:"用户头像应为链接且不多于2048字符",validate_channel_title_length:"频道标题应为1-100字符",validate_channel_desc_length:"频道描述应为10-300字符",validate_channel_image_url:"频道预览图应为链接且不多于2048字符",validate_post_title_length:"推文标题应为1-100字符",validate_post_desc_length:"推文描述应为10-300字符",validate_post_image_url:"海报应为链接且不多于2048字符",validate_post_url:`${h} 链接格式错误`,validate_post_url_length:`${h} 链接不可多于2048字符`,film_rate:"影片分级",set_film_rate:"设置影片分级",select_a_rate_before_enter:"您需要设置一个影片分级才可进入媒体库。",library_available_rate:"媒体库可用影片分级",rate_g:"G(大众级)",rate_g_desc:"所有年龄皆可观赏\n此类影片不含或仅含少量会让家长在让儿童观赏时感到被冒犯的内容,无需家长陪同。",rate_pg:"PG(建议家长指导)",rate_pg_desc:"一些内容可能不适合儿童观看\n此类影片包含部分家长可能认为不适合儿童的内容,因此建议家长可同时进行指导。",rate_pg_13:"PG-13(家长特别留意)",rate_pg_13_desc:"一些内容可能不适合13岁以下儿童观看\n此类影片有部分内容对13岁以下儿童不适宜,需要有父母陪同观看。此类影片动作暴力适当,含有少量血腥场面及不雅用语,但也包含可能令人情绪不安的情节。",rate_r:"R(限制级)",rate_r_desc:"未满十七岁人士必须由家长或成年监护人陪同\n此类影片中常有大量血腥暴力、惊悚恐怖、裸露性爱或吸毒场景,且有大量性暗示及不雅用语/ 冒犯性言论等,17岁以下人士必须由父母或者监护陪伴才能观看。",rate_nc_17:"NC-17(只准成人观看)",rate_nc_17_desc:"17岁或以下人士不得观赏\n此类影片其中常有清楚的性爱场面,大量的吸毒或暴力镜头以及脏话等,因此仅适合成人观赏。",set_as_private:"设为私有",hide_in_explore:"在浏览页隐藏此频道",hidden:"已隐藏",select_a_rate:"请选择一个影片分级",select_from_tasks:"从上传任务中选择",import_from_magnet:`从${Object(m["a"])()?"链接":"磁力链接(magnet:?...)"}导入`,input_magnet_url:"输入链接",task_title:"任务标题",set_title:"设为标题",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"从本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"导入/导出收藏",export_local_favorites:"导出收藏文件作为备份",import_favorites_file:"导入备份的收藏",not_a_favorite_file:"此文件并非收藏备份",connection_status:"连接状态",gun_server_list:"缓存节点",custom_nodes:"自定义缓存节点",custom_nodes_hint:"缓存节点将在重启软件后应用",wait_for_reboot:"即将重启软件...({seconds}s)",reboot_now:"立即重启",reboot_later:"稍后重启",peer_list:"节点列表",server:"节点 URL",peer:"节点",peer_id:"节点 ID",connection:"连接",data_source:"数据源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已获取全部推文",placeholder_channel_title:"频道名称",placeholder_channel_desc:"关于此频道的描述",placeholder_post_title:"电影名称 (年份)",placeholder_post_desc:"关于此电影的描述",private_channel:"私有频道",creator_blocked:"已屏蔽创作者",go_to_library:"前往媒体库?",go_to_library_channel_msg:"是否前往媒体库频道 {0}?",magnet_does_not_have_name:"此链接不包含任务名,请输入推文标题后重试。",no_available_post:"无可见推文",following_channel_no_post:"已关注的频道中不含可见的推文。此问题可能由网络错误引起。如果您已关注带有推文的频道,这些推文将在稍后加载完成。",share_to_library:"分享到媒体库",quick_start:"快速开始",quick_start_desc:"选择一个任务或文件快速创建推文",select_file:"选择文件...",select_folder:"选择文件夹...",post_options:"推文选项",channel_options:"频道选项",create_new_channel:"创建新频道",use_existed_channel:"使用已存在的频道",select_existed_channel:"选择一个频道",uploaded_by:"{title} (由 {name} 上传)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在创建新频道...",created_new_channel:"新频道已创建",creating_new_post:"正在创建新推文...",created_new_post:"新推文已创建",create_new_post:"创建推文",quick_start_timeout:"{0}超时。此问题可能由网络错误引起。请稍后再试。",file_too_large:"文件过大",file_too_large_msg:"此文件的大小超过了 4GB ({size}),上传此文件可能需要较长的准备时间,是否仍要上传?",resolving_folder_files:"正在解析文件夹内容...",folder_too_large:"文件夹过大",folder_too_large_msg:"文件夹中的文件大小超过 4GB ({size} 总大小),上传此文件夹可能需要较长的准备时间,是否仍要上传?",creating_new_task:"正在创建新任务...",cannot_create_task:"创建任务异常",cannot_create_task_msg:"创建任务时产生了未知错误。任务可能已被创建,请查看上传列表以确定上传状态。",cannot_get_task_name:"无法获取任务名,请输入推文标题后重试",remove_old_task:"删除旧任务",remove_old_task_desc:"Web 模式仅允许创建一个任务,是否删除旧任务?",subtitle_list:"字幕列表",optional:"可选",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下载链接",maximumSubtitleNum_limit:"字幕数量已达到最大",cannot_add_subtitle:"添加字幕失败",cannot_add_subtitle_msg:"没有选择字幕语言或下载链接无效。",support_subtitle_type:"仅支持srt,vtt格式的字幕。",recommend_opensubtitles:"建议使用www.opensubtitles.org的字幕下载链接或id。",take_down:"下架",serious_violation:"严重违规",copyright_disputes:"版权争议",adults_only:"成人内容",takedown_reason:"下架理由",takedown_mode:"下架模式",admins:"管理员",takedown_user:"下架此创作者",takedown_channel:"下架此频道",takedown_post:"下架此推文",select_takedown_reason:"选择下架理由",takedown_invalid_reason:"下架理由错误",takedown_invalid_user_id:"用户ID错误。ID应为87位字符",takedown_invalid_channel_id:"频道ID错误。ID应为20位字符",takedown_invalid_post_id:"推文ID错误。ID应为20位字符",takedown_management:"下架管理",users:"用户",channels:"频道",posts:"推文",you:"你",preset:"预设",admin:"管理员",committee:"委员会",about_takedown_mode:"模式说明:\n预设:在github添加,所有内容都会移除。\n管理员:任一管理员投票后即会移除。\n委员会:超过半数管理员投票后才会移除。",cannot_edit_preset:"无法编辑此行,因为它是预设内容",cannot_edit_not_vote:"无法编辑此行,因为你未为其投票",remove_vote:"移除你的下架投票",post_preload_failed:"无法预载此推文。下载链接可能已过期,因此无法立即播放。",about_cache_node:"关于缓存节点",edit_cache_node:"编辑缓存节点",create_cache_node:"创建缓存节点",about_cache_node_desc:`${h} 使用 gun 服务器作为缓存节点,您可以在进阶设置中编辑自定义节点。`,learn_how_to_deploy_gun:"查看如何建立自定义节点",library_setting:"媒体库设置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用户",blocked_channels:"已屏蔽的频道",unblock_user:"解除用户屏蔽",unblock_channel:"解除频道屏蔽",no_blocked_user:"没有已屏蔽的用户",no_blocked_channel:"没有已屏蔽的频道",field_required:"{0} 不能为空"};const f=r.a.displayName,b={unsupported_in_browser:"此功能暂不支持浏览器模式",client:"客户端",warning:"警告",enable:"启用",disable:"禁用",auto:"自动",encrypt_connection:"加密连接",encrypted_connection:"已加密的连接",non_encrypted_connection:"未加密的连接",connected_wires_not_disconnect:"已存在的连接不会被断开",audio:"音频",video:"视频",image:"图片",subtitle:"字幕",zip:"压缩文件",text:"文本",unknown:"未知",add:"添加",undo:"撤销",backup:"备份",not_default_app:`${f}不是你的默认应用. 是否设置默认应用?`,dont_show_again:"不再提示",go_to_settings:"前往设置",about_alphabiz:`关于 ${f}`,update_channel:"更新通道",last_check_at:"上次检查更新时间",check_for_update:"检查更新",checking_for_update:"检查更新中...",no_update_available:"没有可用更新",update_available:"更新可用",update_now:"现在更新",update_later:"以后更新",click_to_update:"点击[现在更新]按钮以开始下载更新",update_failed:"更新失败",update_failed_message:"在更新时遇到了一个错误: ",check_shasum_failed:"安装包完整性检查失败",downloading_update:"更新下载中...",ready_to_update:"准备更新",restart_to_update:`更新下载已完成. ${f} 将在数秒后退出以安装更新`,already_latest:"当前版本({0})已是最新",update_timeout:"更新超时",no_available_release:"没有可用的版本",no_available_installer:"没有可用的安装包",feedback:"反馈",select_a_type:"选择一个类型",category:"分类",select_a_category:"选择一个分类",title:"标题",require_title:"请提供标题",describe_your_problem:"描述您遇到的问题",report_a_bug:"报告一个错误(bug)",request_a_new_feature:"请求一个新功能",download_or_upload:"下载/上传",others:"其他",submit_with_system_info:"提交时附带系统信息",submit_feedback:"提交反馈",tweet_us:"发送Twitter",tweet_too_long:"Tweet过长",delete_characters:"请删除{0}个字符",rest_characters:"还能输入{0}个字符",update_alphabiz:`更新 ${f}`,current_version:"当前版本",cancel_update:"取消更新",slow_download_speed:"下载过于缓慢",slow_download_speed_caption:"当前更新包下载过于缓慢,请检查网络状态",update_canceled:"更新已取消",current_version_release_time:"当前版本发布时间",expired_app:`${f} 过期`,version_out_of_date:"版本过旧",have_to_update:`${f} 版本过旧,部分接口或协议已失效。您需要升级 ${f} 才可继续使用。`,exit_alphabiz:`退出 ${f}`,exit_and_update:"退出并应用更新",new_version_hint:"新版本可用",no_new_version:"没有可用的新版本",current_is_latest:"当前版本已是最新版",click_to_check_update:"点击 [检查更新] 按钮以检查更新",download_latest_version_from_website:"请前往官网下载最新版本",to_the_website:"前往官网",network_diagnotic:"网络诊断",diagnotic:"诊断",click_to_check:"点击开始检查",click_to_check_again:"点击再次检查",checking:"检查中",online:"在线",offline:"离线",dns_look_up:"域名解析",error:"错误",aws_service:"AWS 服务",network_pings:"网络 Ping",not_found:"未找到",packet_loss:"丢包率",official_site:"官方网站",download_test:"下载测试",connected:"已连接",test_task:"测试任务 ({0})",download_failed:"下载失败",second_spend:"用时 {0} 秒",open_default_player_failed:"打开默认播放器失败",copied_to_clipboard:"已复制到剪贴板",go_to:"前往",region_not_available:"地区不可用",region_not_available_message:"抱歉,此应用在您的地区不可用。本应用将在{0}秒后退出",confirm:"确认",no_available_result:"无可用结果"};var y={...g,...l,...c,...d,..._,...u,...p,...b};const v=r.a.displayName;var w={repeat_add:"The task has been added, Please do not add it again",upload:"Upload",download:"Download",delete:"Delete",delete_task:"Delete task",delete_confirm_message:"Delete this task? This is irrevocable",also_delete_files:"Also delete files",default_delete_files:"Default delete downloaded files after remove task",not_now:"Not now",delete_autoupload_confirm:"This task contains file you put in auto-upload directory. Delete this task will also delete the file.",delete_anyway:"Delete anyway",upload_too_many_files:"Upload too many files",ask_if_unlimit_upload_amount:"The auto-upload directory contains too many files. Do you want to disable the upload amount limitation? *This may cause performance problem",disable_limitation:"Disable limitation",not_length:"Multi file operation is not supported at present, Please cooperate",download_torrent:"Download file",upload_torrent:"Upload file",files:"Files",file:"File",folder:"Folder",start_all:"Start all",pause_all:"Pause all",remove_all:"Remove all",upload_all:"Upload all",clear_history:"Clear history",pause_all_finish_payments:"This will finish all payments.",accelerating:"Accelerating",link_task:"Link task",torrent_task:"File task",ok:"OK",cancel:"Cancel",download_directory_position:"Download directory position",torrent_file:"task file",magnetic_link_incorrect:"The link format is incorrect",delete_fail:"Delete fail",pause:"Pause",paused:"Paused",stop_torrent:"Stop",seed:"Seed",resume:"Resume",downloading:"Downloading",downloaded:"Downloaded",uploading:"Uploading",auto_uploading:"Auto uploading",uploaded:"Uploaded",pending:"Waiting for other tasks",verifying:"Verifying",waiting_for_verify:"Waiting for verify",seeding:"Seeding",completed:"Completed",status:"Status",task_name:"Task name",size:"Size",progress:"Progress",sort:"Sort",ascending:"Ascending",descending:"Descending",file_loading:"Loading file...",loading:"Loading",unknown_status:"Unknown",play_while_downloading:"Play...",upload_or_play:"Upload / Play",play:"Play",ask_if_upload_file:"Upload file?",ask_if_upload_or_play:"Upload or play file?",torrent_error:"Error when adding task:",no_peers:"Retry for more than {0} times and no peer is available",torrent_exists:"Task already exists.",show_origin_torrent:"Get original task file or url",show_directory:"Open directory of this torrent",task_num:"Tasks",total_upload_speed:"Upload speed",total_download_speed:"Download speed",path_missing:"Error: cannot find torrent path",origin_not_found:"Cannot find origin task info.",text_copied:"Magnum url is copied to your clipboard",copy_magnet_uri:`Copy ${Object(m["a"])()?"link":"magnet:?"} URI`,copy_download_uri:"Copy download URI",copy_share_uri:"Copy share URI",uri_copied:"URI is successfully copied to your clipboard",uri_copy_failed:"Failed to copy uri",more:"More...",toggle_list_mode:"Toggle list mode",comment:"comment",operations:"Operations",open_directory:"Open directory",no_downloading_task:"No downloading task",remove_all_downloading_tasks:"Remove all downloading tasks?",remove_all_upload_tasks:"Remove all upload tasks?",remove_autoupload_files:"Remove auto-upload files",remove_all_history:"Remove all history?",remaining:"Remaining",created_time:"Created time",used_time:"Used time",completed_time:"Completed time",yesterday:"Yesterday",before_yesterday:"{empty}",earlier:"Earlier",miss_file:"Some files are missing",delete_miss_file_task:"There are fome files missing in {0}.",common_peer:"Common peer",ab_peer:`${v} peer`,ab_peer_verified:`Verified ${v} peer`,ab_peer_available:`${v} peer(s) available`,alphabiz_accelerating:`${v} accelerating`,income:"Income",income_info:"Income(today/total)",total_income_info:"Income: {0}(today) / {1}(total)",login_to_see_income:"Login to see income statistics",credit_cost:"Credit costs",downloaded_by_payment:"Downloaded by Payments",file_not_found:"Cannot find this file in local",no_task:"No task",no_matched_task:"No matched task",space_not_enough:"Disk space not enough",need_more_space:"Need {0} more space but current disk has {1} free ({2} reserved). Tasks are paused. Library preload is disabled. You can re-enable it in [Settings - Advanced].",seeders:"Seeders",last_update:"Last update",connecting:"Connecting",connected:"Connected",request_timed_out:"Request timed out",connection_failed:"Connection failed",invalid_download_url:"Invalid download URL",download_link:"download link",empty_files:"No files in directory",duplicate_task:"Duplicate task",duplicate_tracker:"Duplicate tracker",this_task_not_ready:"This task is not ready. Pause this task will directly remove it.",some_task_not_ready:"Some tasks are not ready. Pause these tasks will directly remove them.",failed_to_delete_files:"Failed to delete files",failed_to_delete_files_desc:"Failed to delete some files of the task. You may need to delete them manually",unknown_error:"Unknown error: {0}",more_files_are_not_shown:"({0} more files are not shown for performance reason)",no_available_file:"No available file. Please wait for task ready.",service_worker_error:"Cannot load ServiceWorker for playing. Your browser may not support this feature, or the ServiceWorker is not activated. You may need to reload this page and try again.",add_task_first:"You need to add task first.",player_task_time:"Player takes too many seconds preparing for play. There may be something wrong with the task.",web_mode_hint:`The web mode of ${v} only supports WebRTC peers. For best experience, please download ${v} Desktop App.`,web_mode_task_hint:"Click buttons below to add a task. You can only add one task at one time.",save_to_local:"Save to local",save_as_zip:"Save as ZIP",creating_save_file:"Creating save file...",upload_as_one_directory:"Upload as one directory",upload_as_single_files:"Upload as single files",web_mode_upload_single:"You can only upload a single file in web mode",download_success:"Download successfully",download_fail:"Download failed",wait_for_downloaded_to_share:"Please wait for task downloaded before sharing.",download_with_cellular:"Download tasks using cellular",download_with_cellular_desc:"You are using cellular network. Download tasks with cellular may take additional fees by your carrier.",download_with_cellular_confirm:"Still download with cellular"},k={language:"Language",appearance:"Appearance",darkModeSystem:"System",darkModeLight:"Light",darkModeDark:"Dark",basic_setting:"Basic",hideMenu:"Hide App Menu (Windows & Linux Only)",autoHide:"Auto Hide Window",autoStart:"Open at login",restore:"Keep size and position of the window when exit",autoStartUnfinished:"Automatically resume all unfinished tasks",default_download_path:"Default Path",download_directory:"Download Directory",upload_directory:"Upload Directory",enable_auto_upload:"Enable auto upload",unlimit_upload_amount:"Unlimit upload amount",unlimit_upload_warning:"Allow upload large amount of files. This may cause performance problem",start:"Startup",transport_setting:"Transmission",upload_limit:"Upload limit",download_limit:"Download limit",payed_user_share_rate:"Payed user share rate",unlimited:"Unlimited",limit_input_error:"Limit number should be positive",BT_setting:"Task Settings",saveLinkSeed:"Save link as task file",autoDownload:"Automatically download link and content",continuousSeeding:"Keep seeding until stop it manually",seedSharingRate:"Seed Ratio",seedTime:"Seed Time (minutes)",task_manage:"Task Management",maximumDownloadNum:"Maximum active tasks",maximumConnectionsNum:"Maximum connection per server",range_error:"Range should between {0} and {1}",random:"Random",breakpointContinuation:"Continue",automaticSkip:"Automatically show downloading after adding task",afterNotification:"Notification after download is complete",deleteConfirm:"No confirmation is required before deleting task",submit:"Save & Apply",discard:"Discard",reset:"Reset",reset_all_settings:"Reset all settings?",preferences_resetted:"Preferences resetted",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"Advanced",autoUpdate:"Auto Update",autoCheckUpdate:"Automatically check for update",proxy:"Proxy",useProxyService:"Enable Proxy",trackerService:"Tracker Servers",recommendUse:"Recommended",autoUpdateTrackerServiceList:"Update tracker list every day automatically",manualUpdateTracker:"Manual update",manualUpdateSuccess:"Successfully update tracker servers",manualUpdateFail:"Failed to update from:",listenPort:"Listen Ports",BTlistenPort:"Data Transmission Port",DHTlistenPort:"Distributed Hash Port",protocols:"Compatible Protocols",setDefaultClientForFollowingProtocols:"Set as the default client for the following protocols",magnetUrl:"Magnet",video_file:"Video file",audio_file:"Audio file",security:"Security",impersonateUserAgent:"Mock User-Agent",RPCauthorizationkey:"RPC Secret",viewDocument:"View RPC Secret Manual",developer:"Developer",applicationLogPath:"App log path",downloadSessionPath:"Download session path",resetDownloadSessionRecord:"Reset download session",restoreInitialSettings:"Factory Reset",preferences_set_successfully:"Save preferences successfully!",preferences_set_fail:"Save preferences fail!",change_not_save:"Changes not save",discard_all_changes:"Discard all changes and leave?",stay_in_page:"Stay in page",disk_usage:"Disk usage",pause_if_less_space:"Pause and notify if space is less than (MB)",default_video_player:"Default video player",video_cache_time:"Stream play cache",minutes:"minutes",system_default:"System Default",media_player:"Media Player",library_film_rate:"Available film rate",library_show_explore:"Show [Explore] page",library_setting:"Library setting",library_sync_setting:"Library sync setting",keychain_sync_status:"Keychain sync status",sync_with_aws:"Sync Keychain with Amazon Web Services",backup_to_local:"Backup to local file",enable_sync_with_aws:"Enable sync with AWS",disable_sync_with_aws:"Disable sync with AWS",disable_sync_with_aws_desc:"This will remove saved key in server. Please ensure you have already export your key.",input_independent_password:"Input independent password",change_independent_password:"Change independent password",password_error:"Password error",password_invalid:"Password invalid",key_existed:"Key existed",key_not_found:"Key not found",library_recommend:"Library recommend",show_all_channels:"Show all channels in library recommend page",not_logged_in:"Not logged in",login_to_continue:"Login to continue",mnemonic_code:"Mnemonic code",wordlist:"Wordlist",restore_code:"Restore from code",generate_code:"Generate code",export_mnemonic_code:"Export mnemonic code",import_mnemonic_code:"Import mnemonic code",print:"Print",save_as_txt:"Save as txt",save_as_pdf:"Save as pdf",from_file:"From file",not_valid_mnemonic_code:"This is not a valid mnemonic code",cannot_parse_code_as_key:"Cannot parse this mnemonic code as library key",import_key_hint:"Are you sure to import this key? This will recover your old key in library.",import_key_confirm:"Yes, import it.",library_preload:"Preload tasks from library",show_preload:"Show preload tasks",set_download:"Set download directory",set_download_desc:"For macOS App Store version, the default download directory is in App's sandbox, and will be deleted after app uninstalled. If you want to keep your download files, you need to select a different download directory manually."};const S=r.a.displayName;var C={home:"Home",home_caption:"Download/Upload and Media Files",library:"Library",library_caption:"Explore media resources",player:"Player",player_caption:"Media Player",credits:"Credits",credits_caption:"Check Account Balance",account:"Account",account_caption:"Sign In/Sign Up/Management",settings:"Settings",settings_caption:"Settings for App, Player, Account",development:"Development",development_caption:"Developer Mode for Internal Use",basic:"Basic",basic_caption:"Basic Settings",advanced:"Advanced",advanced_caption:"Advanced Settings",blockchain:"Wallet",blockchain_caption:`${S} Decentralized Wallet`,internal_notice:"Internal Release Notice",release_notes:"Release notes",terms_and_conditions:"Terms and Conditions",license_and_listen_notices:"License and Listen Open Source Notices",close:"Close",success:"Success",fail:"Fail"},x={credits:"Credits",pay:"Pay",pay_with_credit:"Pay for download accelerating. Needs about {0} credit",pay_with_credit_payed:"Accelerating. Still needs about {0} credit",create_payment:"Create Payment",pay_target:"Target",pay_for_torrent:"Pay for {0}",your_subid:"Your subId",your_credits:"Your credits",pay_point_for_data:"Pay {0} point for {1} data",auto_renew:"Enable auto renew",transaction_details:"Transaction Details",transaction_id:"Id",transaction_payer:"Payer",transaction_payee:"Payee",transaction_category:"Category",transaction_changed_amount:"Changed Amount",transaction_meta:"Meta",transaction_status:"Status",transaction_creation_time:"Creation Time",receipt_code:"Receipt Code",transfer_amount:"Transfer Amount",code_the_receipt_code:"Copy the receipt code below to the payer",fill_the_receipt_code:"Transfer by filling in the payment code provided by the payee",income:"Income",expense:"Expense",copied:"Copied",transfer:"Transfer",receive:"Receive",copy:"Copy",withdraw_fund:"Withdraw Fund",category_paydata_payer:"Cost of data",category_paydata_payee:"Income of data",category_transfer:"Transfer",category_bonus:"Bonus",category_recharge:"Recharge",status_pending:"pending",status_completed:"completed",status_finish:"finish",status_failed:"failed",tip_invalid_receiver:"Invalid receiver code",tip_invalid_amount:"Credit amount should be an float in the range 0-1000 (Minimum precision is 0.001)",credit_get_more:"Get more credits",credit_no_data:"No data available",credit_loading:"Loading...",credit_not_enough_amount:"Not enough credits",credit_amount_not_enough:"Not enough credits",credit_payee_not_exist:"Payee does not exist",credit_invalid_amount:"Invalid credit amount",credit_can_not_transfer_to_yourself:"Can not transfer to yourself",credit_latest:"Latest",credit_error_network:"There is a problem with the network, please try again later","payer credit amount is not enough":"Not enough credits","payee does not exist":"Payee does not exist"},$={account_email_invalid_address:"Invalid email address",account_email_invalid_domain:"Invalid email domain",account_email_unknown_status:"Unknown email delivery status",account_email_unavailable_address:"Unavailable email address",account_email_suppressed_address:"Suppressed email address",account_loading:"Loading...",account_is_required:" is required",account_sign_in_your_account:"Sign in",account_username:"Username",account_username_email_phone:"Phone number or email",account_password:"Password",account_new_password:"New password",account_re_enter_password:"Re-enter password",account_password_not_equal:"Two passwords are not equal",account_new_password_same:"The password is the same as the original password",account_forgot_your_password:"Forgot your password? ",account_reset_password:"Reset password",account_sign_in:"Sign in",account_signed_in:"Signed in",account_sign_up:"Sign up",account_find_your_account:"Find your account",account_enter_your_username:"Enter your phone number or email",account_search:"Search",account_email_sent_tip:"An email with a verification code has been sent to your email: ",account_phone_sent_tip:"A SMS with a verification code has been sent to your phone: ",account_email_phone_sent_tip:"Email and SMS with verification code have been sent to your email and phone respectively:",account_software_token_tip:"MFA is enabled for your account. To finish signing in, please turn on or view your device and type the TOTP",account_reset_your_password:"Reset your password",account_verification_code:"Verification code",account_resend_code:"Resend code",account_code_has_been_resent:"Verification code has been resent",account_password_has_been_reset:"Password has been reset",account_submit:"Submit",account_sign_up_your_account:"Sign up your account",account_fill_required_fields:"Fill in the required fields below.",account_fill_optional_fields:"Fill in the optional fields below.",account_email:"Email",account_invitation:"Invitation",account_invitation_code:"Invitation code",account_i_accept:"I accept ",account_license_terms:"the license and terms",account_next:"Next",account_you_need_to_accept_license_terms:"You need to accept the license and terms first.",account_verify_fill_optional_fields:"Verify and fill in optional fields.",account_nickname:"Nickname",account_gender:"Gender",account_male:"Male",account_female:"Female",account_not_say:"Not say",account_birthday:"Birthday",account_phone_number:"Phone number",account_locale:"Locale",account_tip_verified:"Verified, Signing in...",account_verified:"verified",account_unverified:"unverified",account_signed_up:"Signed up",account_verify_your_identity:"Verify your identity",account_finish:"Finish",account_signed_out:"Signed out",account_change_password:"Change password",account_change_email:"Change email",account_change_phone_number:"Change phone number",account_sign_out:"Sign out",account_current_password:"Current password",account_re_enter_new_password:"Re-enter new password",account_personal_information:"Information",account_edit:"edit",account_reset:"reset",account_greeting:"Hello,",account_cancel:"Cancel",account_change:"change",account_not_set:"not set",account_setting:"setting",account_copy_code:"copy the code",account_account_setting:"Account",account_task_page:"Credit task",account_setting_caption:"Change Password / Edit Information",account_security:"Security",account_want_to_join:"Want to Join?",account_sign_in_now:"Sign in",account_changed:"Changed",account_clipboard_with_invitation_code:"Invitation code copied",account_clipboard_with_code:"The Code copied",account_invitation_code_dialog_tip:"You will send your friend an email or text message with an invitation code:",account_available:"available",account_invited:"invited",account_used:"used",account_invitation_code_sent:"Invitation code has been sent",account_invitation_channel_required:"Fill in at least one invitation channel",account_no_verification_code:"Can not receive verification code? ",account_no_phone_number:"No phone number? ",account_sign_up_by_email:"Sign up by email",account_no_email:"No email? ",account_sign_up_by_phone_number:"Sign up by phone number",account_no_totp:"No TOTP? ",account_tip_no_totp:"If there is no TOTP, please setup TOTP first",account_setup_totp:"Setup TOTP",account_contact_information:"Contact information",account_delete_account:"Delete account",account_deleted:"Deleted",account_can_not_mfa:"MFA in trouble? ",account_set_mfa_type:"Config MFA",account_disable_mfa:"Disable MFA",account_disabled_mfa:"Disabled MFA",account_sms_mfa:"SMS MFA",account_totp_mfa:"TOTP MFA",account_totp:"TOTP",account_not_recommend:"Not Recommend",account_oauth_sign_in_with:"Sign in with {provider}",account_sign_in_failed:"Failed to sign in",account_tip_oath_sign_up:"The email corresponding to the current {provider} account: {email} has not yet created an account",account_tip_confirm_delete_account:"Enter the current account password to confirm that you want to delete the current account.(Deleted accounts cannot be restored)",account_tip_config_mfa:"You can choose to use SMS or time-based one-time password (TOTP) as secondary authentication",account_error_can_not_enable_mfa:"You must bind your email address and mobile phone number to enable MFA",account_tip_can_not_enable_sms_mfa:"You must bind your email address and mobile phone number to enable SMS MFA",account_tip_can_not_enable_totp_mfa:"You must bind your email address and mobile phone number to enable TOTP MFA",account_tip_setup_totp:"Use apps such as Authenticator to scan the QR code below or copy the code manually to add a security token",account_tip_verify_totp:"Verify your TOTP",account_link_your_social_account:"Bind your social account",account_unlink_your_social_account:"Unbind social account",account_tip_confirm_link:"Are you sure you want to bind the current account to your {provider} account?",account_tip_confirm_unlink:"Are you sure to cancel your bound {provider} account?",account_tip_linking:"binding...",account_tip_unlinking:"Unbinding...",account_linked:"Bound",account_unlinked:"Unbound",account_error_can_not_link_to_the_linked_account:"The current social account is bound to another account",account_error_can_not_link_to_the_mismatched_email:"The current account and the social account email address are inconsistent",account_error_can_not_link_before_email_verified:"The social account cannot be linked because the current account is not bound to a verified email",account_tip_confirm_verify_email_phone:"Whether to send a verification code to the current account's email and phone number to verify your identity?",account_tip_confirm_verify_phone:"Whether to send a verification code to the current phone number to verify your identity?",account_error_1_message_60_seconds:"Only one SMS or email can be sent every 60 seconds, wait another {delta} seconds",account_error_10_messages_per_day:"Each mobile phone or email can only send 10 messages within 24 hours",account_error_network:"There is a problem with the network, please try again later","Network Error":"There is a problem with the network, please try again later",account_error_user_not_exist:"User does not exist",account_error_incorrect_username_or_password:"Incorrect username or password",account_error_incorrect_original_password:"Incorrect original password",account_error_incorrect_password:"Incorrect password",account_error_username_not_found:"Username not found",account_error_can_not_reset_for_no_verified:"Can not reset password for the unverified account",account_error_invalid_verification_code:"Incorrect verification code, please try again",account_error_expired_verification_code:"Verification code expired, please try again",account_error_password_not_long_enough:"Password is not long enough",account_error_attempt_limit_exceeded:"Attempt limit exceeded, please try after some time.",account_error_password_attempts_exceeded:"Password attempts exceeded.",account_error_invalid_phone_number_format:"Invalid phone number format",account_error_no_cell_phone_prefix:"Please select the prefix for the phone number",account_error_username_already_exists:"The username already exists",account_error_you_need_to_accept_license_terms:"You need to accept the license and terms first",account_error_inactive_code:"The invitation code is not an activated code",account_error_non_existent_code:"The invitation code is non-existent",account_error_unexpected:"Unexpected Error",account_error_can_not_change_email_before_phone_bound:"The email cannot be changed before the phone number is bound",account_error_can_not_change_email_before_unbound_social_account:"The email cannot be changed before unbinding the social account",account_error_can_not_change_phone_before_email_bound:"The phone number cannot be changed before the email is bound",account_error_not_supported_yet:"Not supported yet",account_error_can_not_change_email_phone_with_mfa_enabled:"Cannot change email or mobile phone number before disable MFA",account_error_same_email:"The new email address cannot be the same as the original email address",account_error_same_phone:"The new phone number cannot be the same as the original phone number",account_error_email_not_exists:"Email address does not exist",account_error_email_already_exists:"An account with the given email already exists.",account_error_phone_already_exists:"An account with the given phone number already exists.",account_error_mfa_token_mismatch:"Software Token Code mismatch",account_error_recaptcha_not_loaded:"There is a problem with the network. Please reconnect the network and restart the application to try again.",account_error_recaptcha_validation_failed:"ReCAPTCHA validation failed. Please reconnect the network and restart the application to try again.",account_error_sign_in_in_progress:"Pending sign-in attempt already in progress",account_field_range:"Limit input of {0}-{1} characters",account_field_only_alphanumeric:"Only supports alphanumeric",account_field_only_alphanumeric_and_symbol:"Only supports alphanumeric and symbols",account_field_only_chinese_alphanumeric_space_underline:"Only supports alphanumeric, space, underscore",account_field_prefix_without_number_space:"The first character cannot be a number or a space",account_field_suffix_without_space:"Cannot end with a space",account_field_without_repeat_space:"Cannot use multiple spaces in a row",account_field_can_not_only_alphanumeric:"You can't just use letters or numbers",account_field_must_have_number_characters:"Must have number characters",account_field_verification_code:"Verification code must be six digits",account_field_invitation_code:"Invitation code must be alphanumeric",account_field_phone_number:"Invalid phone number format",account_invalid_email_format:"Invalid email format",account_sign_out_confirm:"Are you sure to sign out? This will stop all tasks.",account_sign_out_anyway:"Sign out anyway",account_signing_out:"Signing out...",account_request_save_settings:"Settings are not saved. You need to save changes before sign out.",invalid_password_format:"Invalid password format",invalid_password_format_same:"The password is the same as the original password",error_password:"Password error",keychain_setting:"Keychain",setting_description:"Cloud storage: Save key data to the cloud.\nChange password: Change the password for the media library key.\nMnemonic: an alternative method for generating and restoring keys.\nImport Local Key: Import the locally saved key into the media library.\nExport Key: Saves the current media library data to the local or cloud.\nBackup key to cloud: Update the current media library data to the cloud for backup.",refresh_status:"Update Status",confirm_import_key:"Confirm import key",confirm_update_cloud_key:"You already have a key in the cloud. Updating the key will overwrite the original key. Are you sure you want to update the key stored in the cloud",export_key_with_cloud:"Enter the independent password you set to export the library key stored in the cloud, and lock the key file by the unlock password",store_cloud_key_prompt_password:"Enter an independent password to store the library key in the cloud",update_cloud_key_prompt_password:"Set an independent password to encrypt the library key then update it to the cloud",enable_cloud_storage_prompt_password:"Set a password for the key stored in the cloud, through which you can retrieve the key from the cloud",input_unlock_password:"Set unlock password",export_local_prompt_password:"Pleasse set an unlock password to encrypt your key file. We will not save this password for you, so if you loss your password, you will be not able to unlock your library key",require_unlock_password:"The key file is locked, please enter the unlock password",require_independent_password:"Enter the independent password to get the key stored in the cloud",import_local_prompt_password:"The key file is locked, please enter the unlock password",select_encrypt_mode:"Select encryption mode",input_independent_password:"Enter independent password",update_cloud_key:"Update the key stored in the cloud",backup_to_cloud:"Backup the library key to the cloud",save_local:"Save the library key as local encrypted file",create_new_key:"Create a new library key",creating_lib_key:"Creating library key...",loading_lib_key:"Loading library key...",failed_to_create_lib_key:"Failed to create library key",failed_to_load_lib_key:"Failed to load library key",import_local_key:"Import key locally",import_lib_key_from_local:"Import a library key Locally",import_from_cloud:"Import the library key from the cloud",create_or_import_key:"Create or import library key",create_or_import_key_desc:"Library key is an independent key used to fetch and publish contents with decentralized database.",store_your_lib_key:"Store your library key",export_cloud_key:"Export Key from Cloud",export_current_key:"Export Current Key",change_password:"Change Password",enable_cloud_storage:"Enable cloud storage",disable_cloud_storage:"Disable cloud storage",disable_cloud_storage_desc:"Disable cloud storage will remove the key saved in the cloud, please ensure the key is saved locally",sync_at:"Sync at: {time}",keychain_sync_status:"Keychain Sync Status",cloud_storage_enabled:"Sync Keychain with {storage}",cloud_storage_disabled:"Cloud storage disabled",saved_locally:"Saved locally",export_key:"Export key file",cloud_independent_password:"Cloud independent password",key_file_unlock_password:"Key file unlock password",re_enter_unlock_password:"Re-enter unlock password",independent_password_not_enabled:"The current password is the Alphabiz account password (no independent password is set)",use_cognito_hash:"Use Alphabiz account password",use_independent_password:"Use independent password",keychain_lib:"library key",loading_keychain_state:"Loading keychain...",backing_up:"Backing up...",backup_current_key:"Backup current key to Cloud",cloud_lib_key_not_existed:"library key does not exist in Cloud",open_keychain_file:"Open Keychain File",confirm_open_abk:"Do you want to open the ABK file",use_the_key:"Use the key",backup_the_key:"Backup the key to the cloud",keychain_data_does_not_exist:"Keychain data does not exist","timeout of 0ms exceeded":"There is a problem with the network, please try again later",XhrError:"There is a problem with the network, please try again later"},T={add_subtitles:"Add Subtitles",open_file:"Open File...",advanced_options:"Advanced options",title:"title",location:"location",subtitle_file:"subtitle file",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"The default video player is not set",this_is_an_audio_file:"This is an audio file",the_added_subtitle_already_exists:"The added subtitle already exists",stop_stream_player:"The streaming media was terminated because the task was paused or deleted",stop_player:"The player was terminated because the file was deleted",playing_timeout_hint:"Wait times out. Please check the task",autoplay_hint:"Autoplay may blocked by your browser. If the player is not playing, try click the screen to continue",remove_playing_confirm:"{0} is still playing, remove it will stop the player. Are you sure to remove it?",subtitle:"Subtitle",setting:"Setting",loading:"Loading",unknown_media:"Unknown Media",settings_button_visible:"Button Visible",settings_setting:"Setting",settings_playback_rate:"Playback Rate",settings_subtitle:"Subtitle",settings_pip:"PiP",settings_fullscreen:"Fullscreen",settings_subtitle_options:"Subtitle Options",settings_normal:"Normal",settings_italic:"Italic",settings_lighter:"Lighter",settings_bolder:"Bolder",settings_small:"Small",settings_large:"Large"};const z=r.a.displayName;var P={lib_index:"Home",lib_edit:"Publish",lib_publish:"Publish",lib_explore:"Explore",lib_following:"Following",lib_favorite:"Local Favorites",lib_local_favorites:"Local Favorites",lib_channel:"Channel",lib_submit:"Submit",lib_from_network:"Using decentralized database from network",welcome_to_lib:`Welcome to ${z} Media Library`,register_or_login:"Register/Login",lib_recommend:"Recommend",lib_recommend_desc:`Welcome to ${z} Library! This library uses decentralized database from network. To start using it, you need to follow some channels.`,follow_any_channel_to_continue:"Follow any channel to continue",follow_channels_and_continue:"Follow {0} channels and continue",show_more_for_me:"Show more for me",no_more_recommend:"No more recommend",key:"Key",create_key:"Create key",save_key:"Save key",save_key_file:"Do you want to save your key as file?",import_key:"Import key",import:"Import",invalid_key:"Invalid key",back_to_top:"Back to top",search_for_channel:"Search for channel ID",search_channel_no_result:"Cannot find channel with ID {0}",please_input_channel_id:"Please input channel ID",welcome_help_text:"\n This is a decentralized media library. You need\n to create an account for this database. We will\n generate a personal key for you automatically.\n If you have already had a key, you can also import\n it here.",welcome_key_text:"\n Once you logged in, please click [SAVE KEY] button\n in the right-bottom corner to save your private key.\n If you loss your key, you may not able to login again.",redirect_to_recommend:"It seems you had not followed any channel. Redirecting to [Explore] page.",channel:"Channel",follow:"Follow",unfollow:"Unfollow",following:"Following",share:"Share",unfollow_confirm:"Are you sure to unfollow this channel? All posts of this channel in your timeline will be removed.",follow_failed_hint:"Operation is still pending in background. If the operation is not applied for a long time, please restart app and try again.",block:"Block",unblock:"Unblock",blocked:"Blocked",block_channel:"Block this channel",block_channel_confirm:"Block channel will remove it from your timeline. You can manage your block list in account setting.",block_creator:"Block the creator of this channel",unblock_creator:"Unblock the creator of this channel",block_creator_confirm:"Block creator will remove all channels created by this creator from your timeline. You can manage your block list in account setting.",share_url_copied:"Share URL is copied to your clipboard",follow_time:"Follow time",update_time:"Update time",search:"Search",type:"Type",added:"Added",click_to_task:"Click to go to task",lib_already_added:"You have already added this video",description:"Description",poster:"Poster",channel_poster:"Channel poster",preview:"Preview",creator:"Creator",creator_detail:"Creator detail",loading_creator:"Loading creator info",wait_for_creator_loaded:"Please wait for creator info loaded.",follower:"Follower",followers:"Followers",follower_list:"Follower list",user:"User",channel_title:"Channel title",channel_id:"Channel ID",post_title:"Post title",post_id:"Post ID",import_data_from_excel:"Import data from excel",set_excel_keys:"Set excel keys",excel_import_succeded:"Excel import succeded",excel_import_success_msg:"{0} rows are ready to add, {1} invalid and {2} duplicated items are ignored",cannot_find_channel:"Cannot find channel",cannot_find_posts:"Cannot find posts",add_channel:"Add channel",add_post:"Add post",edit_channel:"Edit channel",channel_setting:"Channel setting",edit_post:"Edit post",edit_posts:"Edit posts",channel_detail:"Channel detail",remove:"Remove",remove_channel:"Remove channel",remove_channel_confirm:"Are you sure to remove this post? This cannot be recovered.",remove_post:"Remove post",remove_post_confirm:"Are you sure to remove this channel? This cannot be recovered.",preview_mode:"Preview Mode",preview_mode_desc:"This is a preview of your channel. All rates of films are shown here.",edit_user_profile:"Edit user profile",name:"Nickname",avatar:"Avatar",no_following:"No following channels. Click to goto",no_recommend:"No recommend channels. Click to goto",first_recomment_msg:"It may take a while if this is the first time app launched.",invalid_image:"Invalid image",image_not_reachable:"This image url is not reachable.",channel_not_found:"Channel not found",cannot_get_channel_info:"Cannot get channel info. This channel may be removed by its creator and no longer available.",validate_error:"Validate error",validate_user_name_no_space:"User name should not contain spaces",validate_url_no_space:"URL should not contain spaces",validate_user_name_length:"User name should have length between {0} and {1}",validate_user_desc_length:"User description should not be more than {0} characters",validate_user_avatar_url:"User avatar should be url with less than 2048 characters",validate_channel_title_length:"Channel title should have length between 1 and 100",validate_channel_desc_length:"Channel description should have length between 10 and 300",validate_channel_image_url:"Channel preview should be url with less than 2048 characters",validate_post_title_length:"Post title should have length between 1 and 100",validate_post_desc_length:"Post description should have length between 10 and 300",validate_post_image_url:"Poster should be url with less than 2048 characters",validate_post_url:`Invalid ${z} URL`,validate_post_url_length:`${z} URL should not be more than 2048 characters`,film_rate:"Film rate",set_film_rate:"Set film rate",select_a_rate_before_enter:"You need to select a film rate before enter media library.",library_available_rate:"Library available film rate",rate_g:"G – General Audiences",rate_g_desc:"All ages admitted. Nothing that would offend parents for viewing by children.",rate_pg:"PG – Parental Guidance Suggested",rate_pg_desc:'Some material may not be suitable for children. Parents urged to give "parental guidance". May contain some material parents might not like for their young children.',rate_pg_13:"PG-13 – Parents Strongly Cautioned",rate_pg_13_desc:"Some material may be inappropriate for children under 13. Parents are urged to be cautious. Some material may be inappropriate for pre-teenagers.",rate_r:"R – Restricted",rate_r_desc:"Under 17 requires accompanying parent or adult guardian. Contains some adult material. Parents are urged to learn more about the film before taking their young children with them.",rate_nc_17:"NC-17 – Adults Only",rate_nc_17_desc:"No One 17 and Under Admitted. Clearly adult. Children are not admitted.",set_as_private:"Set as private",hide_in_explore:"Hide this channel in explore page",hidden:"Hidden",select_a_rate:"Please select a film rate",select_from_tasks:"Select from tasks",import_from_magnet:`Import from ${Object(m["a"])()?"link":"magnet:?"}...`,input_magnet_url:`Input ${Object(m["a"])()?"link":"magnet:?"} url`,task_title:"Task title",set_title:"Set title",add_to_local_favorites:"Add to local favorites",remove_from_local_favorites:"Remove from local favorites",removed_favorite:"Removed favorite ",import_or_export_favorites:"Import/Export Favorites",export_local_favorites:"Export local favorites as backup",import_favorites_file:"Import favorites file",not_a_favorite_file:"This file is not a favorite backup file",connection_status:"Connection Status",gun_server_list:"Cache Nodes",custom_nodes:"Custom cache nodes",custom_nodes_hint:"Custom cache nodes will be applied after app relaunch",wait_for_reboot:"Waiting for reboot...({seconds}s)",reboot_now:"Reboot now",reboot_later:"Reboot later",peer_list:"Direct Nodes",server:"Node URL",peer:"Peer",peer_id:"Node ID",connection:"Connection",data_source:"Data Source",sync:"Sync",syncing:"Syncing",sync_completed:"Sync completed",got_all_post:"You have already got all posts",placeholder_channel_title:"Your Channel Name",placeholder_channel_desc:"Description about this channel",placeholder_post_title:"Movie Name (Year)",placeholder_post_desc:"Description about this movie",private_channel:"Private channel",creator_blocked:"Creator blocked",go_to_library:"Go to library?",go_to_library_channel_msg:"Do you want to go to the library channel {0}?",magnet_does_not_have_name:`This ${Object(m["a"])()?"link":"magnet:?"} url does not have a name, you need to add a post title first.`,no_available_post:"No available post",following_channel_no_post:"All your following channels do not have available post. This may caused by network error. If you have already followed some channels, the posts may be loaded later.",share_to_library:"Share to library",quick_start:"Quick start",quick_start_desc:"Start creating a post with a task or file",select_file:"Select file...",select_folder:"Select folder...",post_options:"Post options",channel_options:"Channel options",create_new_channel:"Create new channel",use_existed_channel:"Use existed channel",select_existed_channel:"Select existed channel",uploaded_by:"{title} uploaded by {name}",created_by:"{title} created by {name}",creating_new_channel:"Creating new channel...",created_new_channel:"New channel created",creating_new_post:"Creating new post...",created_new_post:"New post created",create_new_post:"Create new post",quick_start_timeout:"{0} timeout. This may be caused by network error. Please try again later.",file_too_large:"File too large",file_too_large_msg:"This file is larger than 4GB ({size}) and may take a long time preparing task. Are you sure to continue?",resolving_folder_files:"Resolving folder files...",folder_too_large:"Folder too large",folder_too_large_msg:"The files in this folder are larger than 4GB ({size} total) and may take a long time preparing task. Are you sure to upload?",creating_new_task:"Creating new task...",cannot_create_task:"Cannot create task",cannot_create_task_msg:"This may cause by some error. If the task is created correctly, you can check for task list later.",cannot_get_task_name:"Cannot get task name. You need to input one first.",remove_old_task:"Remove old task",remove_old_task_desc:"Web mode can only create one task at once. Do you want to remove old task?",subtitle_list:"Subtitle list",optional:"optional",with_subtitle:"With {language} subtitles",maximumSubtitleNum_limit:"The number of subtitles has reached its maximum",add_subtitle_url:"Add subtitle download link",cannot_add_subtitle:"Failed to add subtitles",cannot_add_subtitle_msg:"Subtitle language not selected or invalid download link.",support_subtitle_type:"Only subtitles in srt and vtt format are supported.",recommend_opensubtitles:"It is recommended to use the subtitle download link or id at www.opensubtitles.org.",take_down:"Take down",serious_violation:"Serious Violation",copyright_disputes:"Copyright Disputes",adults_only:"Adults Only",takedown_reason:"Takedown reason",takedown_mode:"Takedown mode",admins:"Admins",takedown_user:"Takedown this creator",takedown_channel:"Takedown this channel",takedown_post:"Takedown this post",select_takedown_reason:"Select takedown reason",takedown_invalid_reason:"Invalid takedown reason",takedown_invalid_user_id:"Invalid user id. Id should include 87 characters",takedown_invalid_channel_id:"Invalid channel id. ID should include 20 characters",takedown_invalid_post_id:"Invalid post id. ID should include 20 characters",takedown_management:"Take down management",users:"Users",channels:"Channels",posts:"Posts",you:"You",preset:"Preset",admin:"Admin",committee:"Committee",about_takedown_mode:"About takedown mode:\nPreset: Configured in github repository. All of them will be removed from library.\nAdmin: Any one of admins votes for will be removed.\nCommittee: At least half of admins vote for will be removed.",cannot_edit_preset:"You cannot edit this row since it is a preset row",cannot_edit_not_vote:"You cannot edit this row since you have not voted for it",remove_vote:"Remove your vote",post_preload_failed:"Failed to preload this post. The download link may be out-of-date, so this post cannot be played immediately.",about_cache_node:"About cache node",edit_cache_node:"Edit cache node",create_cache_node:"Create cache node",about_cache_node_desc:`${r.a.displayName} uses gun server as cache node. You can edit custom nodes in advance setting`,learn_how_to_deploy_gun:"Learn how to deploy your own gun server",library_setting:"Library setting",block_list_manage:"Block list manage",blocked_users:"Blocked users",blocked_channels:"Blocked channels",unblock_user:"Unblock user",unblock_channel:"Unblock channel",no_blocked_user:"No blocked user",no_blocked_channel:"No blocked channel",field_required:"{0} is required"};const A=r.a.displayName,I={unsupported_in_browser:"Not supported in browser mode yet",client:"Client",warning:"Warning",enable:"Enable",disable:"Disable",auto:"Auto",encrypt_connection:"Encrypt connection",encrypted_connection:"Encrypted connection",non_encrypted_connection:"Non-encrypted connection",connected_wires_not_disconnect:"Connected wires will not be disconnected",audio:"audio",video:"video",image:"image",subtitle:"subtitle",zip:"zip",text:"text",unknown:"unknown",add:"Add",undo:"Undo",backup:"Backup",not_default_app:`${A} is not your default app for torrent and media, do you want to set as default?`,dont_show_again:"Don't show again",go_to_settings:"Go to settings",about_alphabiz:`About ${A}`,last_check_at:"Last check at",update_channel:"Update channel",check_for_update:"Check for update",checking_for_update:"Checking for update...",no_update_available:"No update available",update_available:"Update available",update_now:"Update now",update_later:"Update later",click_to_update:"Click UPDATE NOW button to download and update",update_failed:"Update failed",update_failed_message:"An error occured while updating: ",check_shasum_failed:"Failed to check integrity for installer",downloading_update:"Downloading update...",ready_to_update:"Ready to update",restart_to_update:`Update is downloaded. ${A} will exit to update for a few moment.`,already_latest:"Current version({0}) is already latest",update_timeout:"Update timeout",no_available_release:"No available release",no_available_installer:"No available installer",feedback:"Feedback",select_a_type:"Select a type",category:"Category",select_a_category:"Select a category",title:"Title",require_title:"Title is required",describe_your_problem:"Describe your problem",report_a_bug:"Report a bug",request_a_new_feature:"Request a new feature",download_or_upload:"Download/Upload",others:"Others",submit_with_system_info:"Submit with system info",submit_feedback:"Submit feedback",tweet_us:"Tweet us",tweet_too_long:"Tweet is too long",delete_characters:"Please delete at least {0} character(s)",rest_characters:"You can input {0} more character(s)",update_alphabiz:`Update ${A}`,current_version:"Current version",cancel_update:"Cancel update",slow_download_speed:"Download too slow",slow_download_speed_caption:"The installer download is too slow now. Please check the network status",update_canceled:"Update canceled",current_version_release_time:"Release time of current version",expired_app:`${A} Expired`,version_out_of_date:"Version out of date",have_to_update:`The version of ${A} is out of date. Some protocols or APIs are deprecated. You have to update ${A} before continue.`,exit_alphabiz:`Exit ${A}`,exit_and_update:"Exit and apply update",new_version_hint:"New version is available",no_new_version:"No new version available",current_is_latest:"Current version is already latest",click_to_check_update:"Click [CHECK FOR UPDATE] button to check for update",download_latest_version_from_website:"Please visit the official website to download the latest version",to_the_website:"To the website",network_diagnotic:"Network Diagnotic",diagnotic:"Diagnotic",click_to_check:"Click to check",click_to_check_again:"Click to check again",checking:"Checking",online:"Online",offline:"Offline",dns_look_up:"DNS look up",error:"Error",aws_service:"AWS Service",network_pings:"Network Ping",not_found:"Not Found",packet_loss:"Packet(s) loss",official_site:"Official Site",download_test:"Download Test",connected:"Connected",test_task:"Test Task {0}",download_failed:"Download failed",second_spend:"{0} s spend",open_default_player_failed:"Failed to open the default player",copied_to_clipboard:"Copied to clipboard",go_to:"Go to",region_not_available:"Region not available",region_not_available_message:"Sorry! Your region is not available to use this app. This app will quit after {0} seconds",confirm:"Confirm",no_available_result:"No available result"};var q={...P,...w,...k,...C,...$,...x,...T,...I};const O=r.a.displayName;var E={repeat_add:"任務已添加,請勿重複添加",upload:"上傳",download:"下載",delete:"刪除",delete_task:"刪除任務",delete_confirm_message:"是否刪除該任務? 此操作不可恢復",also_delete_files:"同時刪除文檔",default_delete_files:"刪除任務時默認刪除已下載的文件",not_now:"暫不處理",delete_autoupload_confirm:"此任務檔位於自動上傳資料夾, 刪除任務將同時刪除對應檔",delete_anyway:"仍要刪除",upload_too_many_files:"上傳檔過多",ask_if_unlimit_upload_amount:"自動上傳資料夾包含過多檔. 是否取消上傳數量限制? *此操作可能造成性能問題",disable_limitation:"取消限制",not_length:"暫不支持,多檔操作,請配合",download_torrent:"下載該任務",upload_torrent:"上傳該任務",files:"文件",file:"文件",folder:"資料夾",start_all:"全部開始",pause_all:"全部暫停",remove_all:"全部移除",upload_all:"全部上傳",clear_history:"清除歷史",pause_all_finish_payments:"此操作將完成所有已支付的訂單.",accelerating:"加速中",link_task:"連結任務",torrent_task:"文件任務",ok:"好的",cancel:"取消",download_directory_position:"下載目錄位置",torrent_file:"任務檔",magnetic_link_incorrect:"連結格式不正確",delete_fail:"刪除失敗",pause:"暫停",paused:"已暫停",stop_torrent:"結束任務",seed:"上傳",resume:"繼續",downloading:"下載中",downloaded:"下載完成",uploading:"上傳中",auto_uploading:"自動上傳中",uploaded:"上傳完成",pending:"等待其他任務完成",no_downloading_task:"沒有下載中任務",remove_all_downloading_tasks:"是否移除所有下載中任務?",remove_all_upload_tasks:"是否移除所有上傳任務?",remove_autoupload_files:"移除所有自動上傳任務",remove_all_history:"是否移除歷史下載記錄?",verifying:"驗證文件",waiting_for_verify:"等待驗證文件",seeding:"上傳中",completed:"已完成",status:"狀態",task_name:"任務名",size:"大小",progress:"進度",sort:"排序",ascending:"昇冪",descending:"降冪",file_loading:"檔載入中",loading:"載入中",unknown_status:"未知",play_while_downloading:"邊下邊播",upload_or_play:"上傳 / 播放",play:"播放",ask_if_upload_file:"是否上傳檔?",ask_if_upload_or_play:"是否上傳/播放檔?",torrent_error:"添加任務時遇到錯誤:",no_peers:"多次嘗試後仍未能與Peers建立連接",torrent_exists:"任務已存在",show_origin_torrent:"顯示原始任務檔或連結",show_directory:"打開文件所在位置",task_num:"任務數",total_upload_speed:"上傳速度",total_download_speed:"下載速度",path_missing:"Error: 找不到檔位置",origin_not_found:"獲取任務資訊失敗",text_copied:"連結已複製到剪貼板",copy_magnet_uri:"複製連結位址",copy_download_uri:"複製下載連結",copy_share_uri:"複製社交分享連結",uri_copied:"連結已複製至剪貼板",uri_copy_failed:"複製連結失敗",more:"更多",toggle_list_mode:"切換顯示模式",comment:"評論",operations:"操作",open_directory:"打開所在資料夾",remaining:"剩餘時間",created_time:"創建時間",used_time:"用時",completed_time:"完成時間",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分檔缺失.",common_peer:"普通用戶",ab_peer:`${O} 用戶`,ab_peer_verified:`${O} 註冊用戶`,ab_peer_available:`${O} peer 可用`,alphabiz_accelerating:`${O} 加速中`,income:"收入",income_info:"收入(今天/總計)",total_income_info:"收入: {0}(今天) / {1}(總計)",login_to_see_income:"登陸以查看收入統計",credit_cost:"積分支出",downloaded_by_payment:"付費下載量",file_not_found:"無法找到本地檔",no_task:"無任務",no_matched_task:"無法找到匹配的任務",space_not_enough:"磁盤空間不足",need_more_space:"需要 {0} 磁盤空間, 磁盤空間僅剩 {1}, ({2} 為保留空間). 所有任務已暫停. 媒體庫預加載已禁用. 您可以在[設置 - 進階設置]中重新啟用.",seeders:"做種",last_update:"最後更新",connecting:"連接中",connected:"已連接",request_timed_out:"請求超時",connection_failed:"連接失敗",invalid_download_url:"下載鏈接錯誤",download_link:"下载鏈接",empty_files:"目錄中沒有文檔",duplicate_task:"重複任務",duplicate_tracker:"重複 tracker",this_task_not_ready:"此任務尚未就緒,暫停任務將直接刪除該任務",some_task_not_ready:"部分任務尚未就緒,暫停這些任務將直接刪除它們",failed_to_delete_files:"刪除文件失敗",failed_to_delete_files_desc:"無法刪除部分任務文件,可能需要手動刪除",unknown_error:"未知錯誤: {0}",more_files_are_not_shown:"(出於性能考慮,{0} 個文件未顯示",no_available_file:"没有可用的文件,请等待任務就绪",service_worker_error:"無法加載 ServiceWorker。您的瀏覽器可能不支援此特性,或 ServiceWorker 尚未就緒。請刷新頁面後再試",add_task_first:"請先添加任務",player_task_time:"播放器等待時間過長,請檢查任務是否就緒 ",web_mode_hint:`${O} Web 僅支援 WebRTC 種子。下載 ${O} 桌面版以獲得最佳體驗。`,web_mode_task_hint:"點擊下方按鈕創建任務。Web 模式下僅可同時創建一個任務。",save_to_local:"保存到本地",save_as_zip:"保存為 ZIP",creating_save_file:"正在創建文件...",upload_as_one_directory:"作為一個文件夾上傳",upload_as_single_files:"作為單獨的文件上傳",web_mode_upload_single:"Web 模式下只能上傳單個文件",download_success:"下載成功",download_fail:"下載失敗",wait_for_downloaded_to_share:"請等待下載完成後再分享。",download_with_cellular:"使用蜂窩數據下載",download_with_cellular_desc:"您正在使用蜂窩數據,下載時營運商可能會收取額外的費用。",download_with_cellular_confirm:"仍然使用蜂窩數據下載"},D={language:"語言",appearance:"外觀",darkModeSystem:"跟隨系統",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基礎設置",hideMenu:"隱藏功能表欄(僅支援Windows和Linux)",autoHide:"自動隱藏視窗",start:"啟動",autoStart:"開機自動啟動",restore:"恢復上次退出時視窗的大小和位置",autoStartUnfinished:"自動開始未完成的任務",default_download_path:"預設下載路徑",download_directory:"下載目錄",upload_directory:"上傳目錄",enable_auto_upload:"允許自動上傳",unlimit_upload_amount:"不限制上傳數量",unlimit_upload_warning:"允許同時上傳大量檔案,此選項可能導致性能問題",transport_setting:"傳輸設置",upload_limit:"上傳限速",download_limit:"下載限速",payed_user_share_rate:"付費用戶上傳比例",unlimited:"不限速",limit_input_error:"限速需為正數",BT_setting:"下載任務設置",saveLinkSeed:"保存鏈接元數據為任務檔",autoDownload:"自動開始下載鏈接任務、任務檔",continuousSeeding:"持續上傳,直到手動停止",seedSharingRate:"分享率",seedTime:"上傳時間(分鐘)",task_manage:"任務管理",maximumDownloadNum:"同時下載的最大任務數",maximumConnectionsNum:"每個伺服器最大的連接數",range_error:"範圍需在{0}-{1}之間",random:"隨機",breakpointContinuation:"斷點續傳",automaticSkip:"新建任務後自動跳轉到下載頁面",afterNotification:"下載完成後通知",deleteConfirm:"刪除任務前無需確認",submit:"保存並應用",discard:"放棄",reset:"重置",reset_all_settings:"重置所有設置?",preferences_resetted:"偏好設置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"簡體中文",advancedSettings:"進階設置",autoUpdate:"自動更新",autoCheckUpdate:"自動檢查更新",proxy:"代理",useProxyService:"使用代理伺服器",trackerService:"Tracker伺服器",recommendUse:"推薦使用",autoUpdateTrackerServiceList:"每天自動更新Tracker伺服器列表",manualUpdateTracker:"手動更新",manualUpdateSuccess:"Tracker伺服器更新成功",manualUpdateFail:"更新以下Tracker伺服器失敗:",listenPort:"監聽埠",BTlistenPort:"數據傳輸埠",DHTlistenPort:"分散式哈希通訊埠",protocols:"兼容以下協定",setDefaultClientForFollowingProtocols:"設置本軟體為以下相容協定的預設用戶端",magnetUrl:"磁力連結",video_file:"視頻檔",audio_file:"音訊檔",security:"安全性",impersonateUserAgent:"模擬使用者代理(UA)",RPCauthorizationkey:"RPC授權密鑰",viewDocument:"查看說明文檔",developer:"開發者",applicationLogPath:"應用日誌路徑",downloadSessionPath:"下載會話路徑",resetDownloadSessionRecord:"重置下載會話記錄",restoreInitialSettings:"恢復初始設置",preferences_set_successfully:"偏好設置成功!",preferences_set_fail:"偏好設置失敗!",change_not_save:"修改未保存",discard_all_changes:"是否放棄所有更改?",stay_in_page:"留在此頁",disk_usage:"保留磁盘空間",pause_if_less_space:"剩餘空間小於此值時暫停並提醒(MB)",default_video_player:"默認視頻播放機",video_cache_time:"邊下邊播緩存時間",minutes:"分鐘",system_default:"系統預設",media_player:"媒體播放機",library_film_rate:"可見影片分級",library_show_explore:"顯示[探索]頁面",library_setting:"媒體庫設置",library_sync_setting:"媒體庫同步設置",keychain_sync_status:"金鑰同步狀態",sync_with_aws:"使用 Amazon Web Services 同步密鑰",backup_to_local:"保存為本地檔",enable_sync_with_aws:"啟用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作將移除儲存在雲端的金鑰,請確保已將密鑰保存至本地。 ",input_independent_password:"輸入獨立密碼",change_independent_password:"修改獨立密碼",password_error:"密碼錯誤",password_invalid:"密碼格式錯誤",key_existed:"金鑰已存在",key_not_found:"金鑰不存在",library_recommend:"媒體庫推薦",show_all_channels:"在媒體庫推薦頁顯示所有頻道",not_logged_in:"尚未登錄",login_to_continue:"登陸以繼續",mnemonic_code:"助記詞",wordlist:"單詞表",restore_code:"從助記詞恢復",generate_code:"生成助記詞",export_mnemonic_code:"導出助記詞",import_mnemonic_code:"導入助記詞",print:"列印",save_as_txt:"保存為 txt",save_as_pdf:"保存為 pdf",from_file:"從文件導入",not_valid_mnemonic_code:"助記詞格式錯誤",cannot_parse_code_as_key:"無法將此助記詞解析為密鑰",import_key_hint:"是否確認導入此金鑰? 此操作將覆蓋舊的金鑰。 ",import_key_confirm:"確認導入",library_preload:"媒體庫任務預加載",show_preload:"顯示預加載任務",set_download:"設置下載文件夾",set_download_desc:"macOS App Store 版本默認保存位置為應用沙盒,在應用卸載時會一併刪除。為了保留下載文件,您需要手動選擇保存位置。"},j={home:"主頁",home_caption:"下載/上傳媒體文件",library:"媒體庫",library_caption:"探索媒體資源",player:"播放器",player_caption:"視頻播放",credits:"信用積分",credits_caption:"檢查賬戶積分餘額",account:"用戶",account_caption:"個人用戶配置",settings:"設置",settings_caption:"所有設置項",development:"開發者",development_caption:"應用開發者模式",basic:"主要設置",basic_caption:"主要設置項",advanced:"進階設置",advanced_caption:"進階的設置項",blockchain:"錢包",blockchain_caption:"去中心化錢包",internal_notice:"內部版本聲明",release_notes:"發行説明",terms_and_conditions:"條款和章程",license_and_listen_notices:"許可和監聽開源説明",close:"關閉",success:"成功",fail:"失敗"},N={credits:"信用積分",pay:"支付積分",pay_with_credit:"支付積分加速下載, 預計需要{0}積分",pay_with_credit_payed:"正在加速下載, 預計還需要{0}積分",create_payment:"創建積分訂單",pay_target:"支付對象",pay_for_torrent:"為 {0} 支付",your_subid:"用戶 subId",your_credits:"當前餘額",pay_point_for_data:"支付{0}積分以加速{1}數據",auto_renew:"允許自動續費",transaction_details:"訂單明細",transaction_id:"訂單編號",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"類型",transaction_changed_amount:"變動金額",transaction_meta:"其他數據",transaction_status:"訂單狀態",transaction_creation_time:"訂單創建時間",receipt_code:"收款碼",transfer_amount:"轉賬金額",code_the_receipt_code:"複製下方收款碼給付款人",fill_the_receipt_code:"通過填入收款人提供的收款碼進行轉賬",income:"收入",expense:"支出",copied:"已複製",transfer:"轉賬",receive:"收款",copy:"複製",withdraw_fund:"選取基金",category_paydata_payer:"數據支付",category_paydata_payee:"數據收入",category_transfer:"個人轉賬",category_bonus:"系統獎勵",category_recharge:"充值",status_pending:"等待中",status_completed:"已傳完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"無效的收款碼",tip_invalid_amount:"金額應為 0-1000 範圍內的數(最小精度為0.001)",credit_get_more:"獲得更多積分",credit_no_data:"無可用數據",credit_loading:"加載中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"網絡出現異常,請稍後重試","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},L={account_email_invalid_address:"無效的電子郵寄地址",account_email_invalid_domain:"無效的電子郵件域",account_email_unknown_status:"未知的郵件發送狀態",account_email_unavailable_address:"郵寄地址不可用",account_email_suppressed_address:"郵寄地址被禁用",account_loading:"加載中...",account_is_required:"不能為空",account_sign_in_your_account:"登錄賬戶",account_username:"用戶名",account_username_email_phone:"手機號碼或電子郵箱",account_password:"密碼",account_new_password:"新密碼",account_re_enter_password:"再次輸入密碼",account_password_not_equal:"輸入的兩個密碼不同。",account_new_password_same:"新密碼與原密碼相同",account_forgot_your_password:"忘記密碼了?",account_reset_password:"重置密碼",account_sign_in:"登錄",account_signed_in:"登錄成功",account_sign_up:"註冊",account_find_your_account:"找尋你的賬戶",account_enter_your_username:"輸入你的手機號碼或電子郵箱",account_search:"查找",account_email_sent_tip:"一封附帶驗證碼的電子郵件已發送到您的郵箱:",account_phone_sent_tip:"一封附帶驗證碼的短信已發送到您的手機:",account_email_phone_sent_tip:"附帶驗證碼的電子郵件和手機短信已分別發送到您的郵箱和手機:",account_software_token_tip:"您的賬戶已啟用安全令牌。要完成登錄,請打開或查看您的設備並輸入驗證碼",account_reset_your_password:"重置賬戶密碼",account_verification_code:"驗證碼",account_resend_code:"重發驗證碼",account_code_has_been_resent:"驗證碼已發送",account_password_has_been_reset:"密碼已重置",account_submit:"提交",account_sign_up_your_account:"註冊賬戶",account_fill_required_fields:"填寫下方的必填項。",account_fill_optional_fields:"填寫下方的選填項。",account_email:"郵箱",account_invitation:"邀請",account_invitation_code:"邀請碼",account_i_accept:"我接受",account_license_terms:"服務許可條款",account_next:"下一步",account_you_need_to_accept_license_terms:"請先勾選我接受服務許可條款",account_verify_fill_optional_fields:"驗證身份與可選項",account_nickname:"暱稱",account_gender:"性別",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手機號碼",account_locale:"地區",account_tip_verified:"驗證通過,正在登陸…",account_verified:"已驗證",account_unverified:"未驗證",account_signed_up:"註冊成功",account_verify_your_identity:"驗證您的身份",account_finish:"完成",account_signed_out:"註銷成功",account_change_password:"修改密碼",account_change_email:"修改電子郵箱",account_change_phone_number:"修改手機號碼",account_sign_out:"註銷",account_current_password:"當前密碼",account_re_enter_new_password:"再次輸入新密碼",account_personal_information:"個人資訊",account_edit:"編輯",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_change:"更改",account_not_set:"未設置",account_setting:"設置",account_copy_code:"複製程式碼",account_account_setting:"賬戶設置",account_task_page:"積分任務",account_setting_caption:"管理你的賬戶信息",account_security:"安全",account_want_to_join:"登錄更精彩",account_sign_in_now:"點擊登錄",account_changed:"已更改",account_clipboard_with_invitation_code:"已復制邀請碼",account_clipboard_with_code:"已復制程式碼",account_invitation_code_dialog_tip:"你將通過短信或電子郵件的方式發送邀請碼:",account_available:"可用",account_invited:"已邀請",account_used:"已使用",account_invitation_code_sent:"邀請碼已發送",account_invitation_channel_required:"至少需要填寫一項邀請途徑",account_no_verification_code:"無法收到驗證碼?",account_no_phone_number:"沒有手機號碼?",account_sign_up_by_email:"通過郵箱註冊",account_no_email:"沒有郵箱?",account_sign_up_by_phone_number:"通過手機註冊",account_no_totp:"沒有安全令牌?",account_tip_no_totp:"若沒有安全令牌请先設置安全令牌",account_setup_totp:"設置安全令牌",account_contact_information:"聯繫方式",account_delete_account:"删除帳戶",account_deleted:"已删除",account_can_not_mfa:"無法進行二級驗證?",account_set_mfa_type:"更改二級驗證",account_disable_mfa:"關閉二級驗證",account_disabled_mfa:"已關閉二級驗證",account_sms_mfa:"手機短信驗證",account_totp_mfa:"安全令牌驗證",account_totp:"安全令牌",account_not_recommend:"不推薦",account_oauth_sign_in_with:"通過 {provider} 登錄",account_sign_in_failed:"登錄失敗",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通過手機短信或安全令牌為賬戶設置二級驗證",account_error_can_not_enable_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用二級驗證",account_tip_can_not_enable_sms_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用短信驗證",account_tip_can_not_enable_totp_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用安全令牌",account_tip_setup_totp:"使用Authenticator等應用,掃描下方的二維碼或手動複製代碼來添加安全令牌",account_tip_verify_totp:"驗證您的安全令牌",account_link_your_social_account:"綁定您的社交賬號",account_unlink_your_social_account:"解除社交賬號綁定",account_tip_confirm_link:"確定將當前賬號與您的 {provider} 賬號進行綁定嗎?",account_tip_confirm_unlink:"確定解除您已綁定的 {provider} 賬號嗎?",account_tip_linking:"正在綁定...",account_tip_unlinking:"解除綁定中...",account_linked:"已綁定",account_unlinked:"已解除綁定",account_error_can_not_link_to_the_linked_account:"當前社交帳號已與其他賬號綁定",account_error_can_not_link_to_the_mismatched_email:"當前賬號與社交帳號郵箱地址不一致",account_error_can_not_link_before_email_verified:"未綁定郵箱的賬戶無法綁定社交帳戶",account_tip_confirm_verify_email_phone:"是否向當前賬戶的email和手機號碼發送驗證碼以驗證您的身份?",account_tip_confirm_verify_phone:"是否向當前手機號碼發送驗證碼以驗證您的身份?",account_error_1_message_60_seconds:"每60秒只能發送一條簡訊或郵件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手機或電子郵件24小時內只能發送10條資訊",account_error_network:"網絡出現異常,請稍後重試","Network Error":"網絡出現異常,請稍後重試",account_error_user_not_exist:"用戶不存在",account_error_incorrect_username_or_password:"用戶名或密碼錯誤",account_error_incorrect_original_password:"原密碼錯誤",account_error_incorrect_password:"密碼錯誤",account_error_username_not_found:"找不到該用戶名的賬戶",account_error_can_not_reset_for_no_verified:"賬戶未進行郵箱驗證,無法重置密碼",account_error_invalid_verification_code:"驗證碼錯誤,請重試",account_error_expired_verification_code:"驗證碼過期,請重試",account_error_password_not_long_enough:"密碼長度不能小於8位",account_error_attempt_limit_exceeded:"嘗試次數過多,請稍後重試",account_error_password_attempts_exceeded:"超過密碼嘗試次數",account_error_invalid_phone_number_format:"手機號碼格式不正確",account_error_no_cell_phone_prefix:"請選擇手機號前綴",account_error_username_already_exists:"該用戶名已存在",account_error_you_need_to_accept_license_terms:"請勾選我接受服務許可條款",account_error_inactive_code:"該邀請碼已失效",account_error_non_existent_code:"該邀請碼不存在",account_error_unexpected:"未知錯誤",account_error_can_not_change_email_before_phone_bound:"綁定手機號碼前無法更改郵箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帳戶綁定前無法更改郵箱",account_error_can_not_change_phone_before_email_bound:"綁定郵箱前無法更改手機號碼",account_error_can_not_change_email_phone_with_mfa_enabled:"關閉二級驗證前無法更改郵箱或手機號碼",account_error_not_supported_yet:"暫不支持",account_error_same_email:"新的郵箱不能與原郵箱相同",account_error_same_phone:"新手機號碼不能與原手機號碼相同",account_error_email_not_exists:"該郵箱不存在",account_error_email_already_exists:"該郵箱已有帳戶綁定",account_error_phone_already_exists:"該手機號碼已有帳戶綁定",account_error_mfa_token_mismatch:"安全令牌錯誤",account_error_recaptcha_not_loaded:"網絡出現異常,請重連網絡後重啓應用重試",account_error_recaptcha_validation_failed:"未通過ReCaptcha驗證,請重連網絡後重啓應用重試",account_error_sign_in_in_progress:"等待登錄嘗試已在進行中",account_field_range:"字符個數應在{0}-{1}的範圍中",account_field_only_alphanumeric:"僅支持字母和數字",account_field_only_alphanumeric_and_symbol:"僅支持字母數字和符號",account_field_only_chinese_alphanumeric_space_underline:"僅支持中英文數字空格下劃線",account_field_prefix_without_number_space:"首個字符不能為數字或空格",account_field_suffix_without_space:"不能以空格結尾",account_field_without_repeat_space:"不能連續使用多個空格",account_field_can_not_only_alphanumeric:"不可僅為字母或數字",account_field_must_have_number_characters:"必須包含數字",account_field_verification_code:"驗證碼必須是六位數數字",account_field_invitation_code:"邀請碼必須是字母和數字",account_field_phone_number:"手機號碼格式不正確",account_invalid_email_format:"郵箱格式不正確",account_sign_out_confirm:"是否確認註銷? 註銷後將停止所有任務.",account_sign_out_anyway:"仍要註銷",account_signing_out:"正在註銷...",account_request_save_settings:"設置未保存。在註銷前請先保存修改。",invalid_password_format:"密碼格式錯誤",invalid_password_format_same:"新密碼與原密碼相同",error_password:"密碼錯誤",keychain_setting:"密鑰管理",setting_description:"雲端儲存:將金鑰數據保存到雲端。\n修改密碼:修改媒體庫金鑰的密碼。\n助記詞:一種生成和恢復金鑰的替代方法。\n導入本地金鑰:將本地保存的金鑰導入媒體庫。\n匯出金鑰:將當前媒體庫數據保存到本地或雲端。\n備份金鑰到雲端:將當前媒體庫數據更新到雲端進行備份。",refresh_status:"更新狀態",confirm_import_key:"確認導入金鑰",confirm_update_cloud_key:"你在雲端已有金鑰,更新金鑰將覆蓋原有的金鑰,確認更新存儲在雲端的金鑰嗎",export_key_with_cloud:"輸入您所設定的獨立密碼匯出存儲在雲端的媒體庫金鑰,並通過解鎖密碼鎖定密鑰文件",store_cloud_key_prompt_password:"輸入獨立密碼以存儲媒體庫金鑰到雲端",update_cloud_key_prompt_password:"設定獨立密碼以加密媒體庫金鑰並更新到雲端",enable_cloud_storage_prompt_password:"為存儲在雲端的金鑰設置密碼,通過該密碼可以從雲上取回金鑰",input_unlock_password:"設定解鎖密碼",export_local_prompt_password:"請設定一個解鎖密碼,該密碼用於加密您的密鑰文件。我們不會保存此密碼,因此若您丟失該密碼,密鑰文件將無法解鎖。",require_unlock_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",require_independent_password:"輸入獨立密碼以獲取存儲在雲端的金鑰",import_local_prompt_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",select_encrypt_mode:"選擇加密模式",input_independent_password:"輸入獨立秘碼",update_cloud_key:"更新存儲在雲端的金鑰",backup_to_cloud:"將媒體庫金鑰備份到雲端",save_local:"將媒體庫金鑰保存為本地加密檔",create_new_key:"創建新的媒體庫金鑰",creating_lib_key:"正在創建媒體庫金鑰...",loading_lib_key:"正在載入媒體庫金鑰...",failed_to_create_lib_key:"創建媒體庫金鑰失敗",failed_to_load_lib_key:"載入媒體庫金鑰失敗",import_local_key:"導入本地金鑰",import_lib_key_from_local:"從本地導入媒體庫金鑰",import_from_cloud:"從雲端導入媒體庫金鑰",create_or_import_key:"創建或導入媒體庫金鑰",create_or_import_key_desc:"媒體庫金鑰用於与去中心化數據庫同步內容。",store_your_lib_key:"存儲你的媒體庫金鑰",export_cloud_key:"導出雲端密鑰",export_current_key:"導出當前密鑰",change_password:"修改密碼",enable_cloud_storage:"啟用雲端存儲",disable_cloud_storage:"關閉雲端存儲",disable_cloud_storage_desc:"關閉雲端存儲將移除保存在雲端的密鑰,請確保已將密鑰保存在本地",sync_at:"同步於:{time}",keychain_sync_status:"密鑰同步狀態",cloud_storage_enabled:"使用 {storage} 同步密鑰",cloud_storage_disabled:"未啟用雲端存儲",saved_locally:"已保存於本地",export_key:"導出密鑰文件",cloud_independent_password:"雲端獨立密碼",key_file_unlock_password:"密鑰文件解鎖密碼",re_enter_unlock_password:"再次輸入解鎖密碼",independent_password_not_enabled:"當前密碼為 Alphabiz 帳戶密碼(未設定獨立密碼)",use_cognito_hash:"使用 Alphabiz 賬戶密碼",use_independent_password:"使用獨立密碼",keychain_lib:"媒體庫金鑰",loading_keychain_state:"加載密鑰中...",backing_up:"備份中...",backup_current_key:"備份當前金鑰到雲端",cloud_lib_key_not_existed:"雲端媒體庫金鑰不存在",open_keychain_file:"打開金鑰檔案",confirm_open_abk:"是否打開ABK檔案",use_the_key:"使用該金鑰",backup_the_key:"備份該金鑰到雲端",keychain_data_does_not_exist:"金鑰數據不存在","timeout of 0ms exceeded":"網絡出現異常,請稍後重試",XhrError:"網絡出現異常,請稍後重試"},U={add_subtitles:"添加字幕",open_file:"打開文件...",advanced_options:"高級選項",title:"標題",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默認視頻播放器未設置",this_is_an_audio_file:"這是一個音頻文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任務被暫停或刪除,流媒體播放被終止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超時,請檢查任務",autoplay_hint:"自動播放功能可能受瀏覽器限制,若未開始播放,請手動點擊播放器以播放",remove_playing_confirm:"{0} 正在播放中,刪除任務將停止播放。是否仍要刪除?",subtitle:"字幕",setting:"設定",loading:"加載中",unknown_media:"未知媒體",settings_button_visible:"按鈕顯示",settings_setting:"設定",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"畫中畫",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常規",settings_italic:"斜體",settings_lighter:"纖細",settings_bolder:"粗體",settings_small:"較小",settings_large:"較大"};const R=r.a.displayName;var M={lib_index:"主頁",lib_edit:"編輯",lib_publish:"發佈",lib_explore:"探索",lib_following:"關注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"頻道",lib_submit:"提交",lib_from_network:"使用去中心化資料庫,所有數據來源於網路",welcome_to_lib:`歡迎使用 ${R} 媒體庫`,register_or_login:"註冊/登陸",lib_recommend:"推薦",lib_recommend_desc:`歡迎使用 ${R} 媒體庫! 本媒體庫使用去中心化的資料庫,所有數據來源於網路。 在開始前,請先關注一些推薦頻道。`,follow_any_channel_to_continue:"關注任意頻道以繼續",follow_channels_and_continue:"關注 {0} 個頻道並繼續",show_more_for_me:"為我展示更多",no_more_recommend:"沒有更多推薦",key:"金鑰",create_key:"生成金鑰",save_key:"保存金鑰",save_key_file:"是否將金鑰保存為檔案?",import_key:"匯入金鑰",import:"導入",invalid_key:"金鑰格式錯誤",back_to_top:"回到頂部",search_for_channel:"搜索頻道 ID",search_channel_no_result:"找不到 ID 為 {0} 的頻道",please_input_channel_id:"請輸入頻道 ID",welcome_help_text:"\n 這是一個去中心化的媒體庫,您需要為此創建一個專用帳戶,\n 我們將自動為您生成一套金鑰。 如果您已經擁有金鑰了,\n也可以在此導入金鑰".replace(/\s/g,""),welcome_key_text:"\n 當您成功創建帳號后,請點擊右下角的【保存金鑰】按鈕匯出\n您的金鑰。 一旦您丟失金鑰,對應的帳號將無法找回。 ".replace(/\s/g,""),redirect_to_recommend:"您似乎沒有關注任何頻道,即將前往探索頁。 ",channel:"頻道",follow:"關注",unfollow:"取消關注",following:"關注中",share:"分享",block:"遮罩",unblock:"取消遮罩",blocked:"已遮罩",block_channel:"遮罩此頻道",block_channel_confirm:"遮罩頻道後,頻道的所有內容將從時間線上移除。 您可以在帳戶設定中管理遮罩清單。 ",block_creator:"遮罩此頻道的創作者",unblock_creator:"取消遮罩此頻道的創作者",block_creator_confirm:"遮罩創作者後,該創作者的所有頻道將從時間線上移除。 您可以在賬戶設置中管理遮罩清單",share_url_copied:"分享鏈接已複製至剪貼板",unfollow_confirm:"是否取消關注? 此頻道的所有推文將從你的時間線上移除。 ",follow_failed_hint:"操作仍在後台進行中,請耐心等待。如長時間未完成修改請嘗試重啟應用。 ",follow_time:"關注時間",update_time:"更新時間",search:"搜索",type:"類型",added:"已添加",click_to_task:"點擊前往對應任務",lib_already_added:"您已添加此視頻",description:"描述",poster:"海報",channel_poster:"頻道海報",preview:"預覽",creator:"創作者",creator_detail:"創作者詳情",loading_creator:"正在載入創作者資訊",wait_for_creator_loaded:"請等待創作者資訊載入完成。 ",follower:"關注者",followers:"關注者",follower_list:"關注者清單",user:"使用者",channel_title:"頻道標題",channel_id:"頻道 ID",post_title:"推文標題",post_id:"推文 ID",import_data_from_excel:"從 Excel 導入資料",set_excel_keys:"設置excel鍵",excel_import_succeded:"Excel 導入成功",excel_import_success_msg:"可添加 {0} 條新專案, {1} 條資訊不完整及 {2} 條重複項已忽略",cannot_find_channel:"找不到指定頻道",cannot_find_posts:"找不到指定視頻",add_channel:"添加頻道",add_post:"添加推文",edit_channel:"編輯頻道",channel_setting:"頻道設置",edit_post:"編輯推文",edit_posts:"編輯推文",channel_detail:"頻道詳情",remove:"移除",remove_channel:"移除頻道",remove_channel_confirm:"是否確認移除頻道? 此操作不可恢復。 ",remove_post:"移除推文",remove_post_confirm:"是否確認移除推文? 此操作不可恢復",preview_mode:"預覽模式",preview_mode_desc:"這是頻道的預覽模式,所有分級的影片均為可見狀態。 ",edit_user_profile:"編輯使用者資料",name:"昵稱",avatar:"頭像",no_following:"沒有已關注的頻道。 點擊前往",no_recommend:"沒有可推薦的頻道。 點擊前往",first_recomment_msg:"如果您是初次使用,載入時間可能較長",invalid_image:"圖片異常",image_not_reachable:"此圖片URL不可用",channel_not_found:"找不到頻道",cannot_get_channel_info:"無法獲取指定的頻道資訊。 該頻道可能已被創作者刪除而不再可見。 ",validate_error:"驗證錯誤",validate_user_name_no_space:"使用者名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"使用者名應為 {0}-{1} 字元",validate_user_desc_length:"使用者描述不可多於 {0} 字元",validate_user_avatar_url:"使用者頭像應為連結且不多於2048字元",validate_channel_title_length:"頻道標題應為1-100字元",validate_channel_desc_length:"頻道描述應為10-300字元",validate_channel_image_url:"頻道預覽圖應為連結且不多於2048字元",validate_post_title_length:"推文標題應為1-100字元",validate_post_desc_length:"推文描述應為10-300字元",validate_post_image_url:"海報應為連結且不多於2048字元",validate_post_url:`${R} 連結格式錯誤`,validate_post_url_length:`${R} 連結不可多於2048字元`,film_rate:"影片分級",set_film_rate:"設置影片分級",select_a_rate_before_enter:"您需要設置一個影片分級才可進入媒體庫。 ",library_available_rate:"媒體庫可用影片分級",rate_g:"G(大眾級)",rate_g_desc:"所有年齡皆可觀賞\n此類影片不含或僅含少量會讓家長在讓兒童觀賞時感到被冒犯的內容,無需家長陪同。 ",rate_pg:"PG(建議家長指導)",rate_pg_desc:"一些內容可能不適合兒童觀看\n此類影片包含部分家長可能認為不適合兒童的內容,因此建議家長可同時進行指導。 ",rate_pg_13:"PG-13(家長特別留意)",rate_pg_13_desc:"一些內容可能不適合13歲以下兒童觀看\n此類影片有部分內容對 13歲以下兒童不適宜,需要有父母陪同觀看。 此類影片動作暴力適當,含有少量血腥場面及不雅用語,但也包含可能令人情緒不安的情節。 ",rate_r:"R(限制級)",rate_r_desc:"未滿十七歲人士必須由家長或成年監護人陪同\n此類影片中常有大量血腥暴力、驚悚恐怖、裸露性愛或吸毒場景, 且有大量性暗示及不雅用語/ 冒犯性言論等,17歲以下人士必須由父母或者監護陪伴才能觀看。 ",rate_nc_17:"NC-17(只准成人觀看)",rate_nc_17_desc:"17歲或以下人士不得觀賞\n此類影片其中常有清楚的性愛場面,大量的吸毒或暴力鏡頭以及髒話等,因此僅適合成人觀賞。 ",set_as_private:"設為私有",hide_in_explore:"在瀏覽頁隱藏此頻道",hidden:"已隱藏",select_a_rate:"請選擇一個影片分級",select_from_tasks:"從上傳任務中選擇",import_from_magnet:`從${Object(m["a"])()?"連結":"磁力連結(magnet:?...)"}導入`,input_magnet_url:"輸入連結",task_title:"任務標題",set_title:"設為標題",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"從本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"導入/匯出收藏",export_local_favorites:"匯出收藏文件作為備份",import_favorites_file:"導入備份的收藏",not_a_favorite_file:"此文件並非收藏備份",connection_status:"連接狀態",gun_server_list:"緩存節點",custom_nodes:"客製化緩存節點",custom_nodes_hint:"緩存節點將在重啟軟體後應用",wait_for_reboot:"即將重啟軟體...({seconds}s)",reboot_now:"立即重啟",reboot_later:"稍後重啟",peer_list:"節點清單",server:"節點 URL",peer:"節點",peer_id:"節點 ID",connection:"連接",data_source:"數據源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已獲取全部推文",placeholder_channel_title:"頻道名稱",placeholder_channel_desc:"關於此頻道的描述",placeholder_post_title:"電影名稱 (年份)",placeholder_post_desc:"關於此電影的描述",private_channel:"私有頻道",creator_blocked:"已遮罩創作者",go_to_library:"前往媒體庫?",go_to_library_channel_msg:"是否前往媒體庫頻道 {0}?",magnet_does_not_have_name:"此連結不包含任務名,請輸入推文標題后重試。 ",no_available_post:"無可見推文",following_channel_no_post:"已關注的頻道中不含可見的推文。 此問題可能由網路錯誤引起。 如果您已關注帶有推文的頻道,這些推文將在稍後載入完成。 ",share_to_library:"分享到媒體庫",quick_start:"快速開始",quick_start_desc:"選擇一個任務或檔快速創建推文",select_file:"選擇檔...",select_folder:"選擇資料夾...",post_options:"推文選項",channel_options:"頻道選項",create_new_channel:"創建新頻道",use_existed_channel:"使用已存在的頻道",select_existed_channel:"選擇一個頻道",uploaded_by:"{title} (由 {name} 上傳)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在創建新頻道...",created_new_channel:"新頻道已創建",creating_new_post:"正在創建新推文...",created_new_post:"新推文已創建",create_new_post:"創建推文",quick_start_timeout:"{0}超時。此問題可能由網路異常引起。請稍後再試。",file_too_large:"文件過大",file_too_large_msg:"此檔的大小超過了 4GB ({size}),上傳此檔可能需要較長的準備時間,是否仍要上傳? ",resolving_folder_files:"正在解析文件夾內容...",folder_too_large:"資料夾過大",folder_too_large_msg:"資料夾中的檔大小超過 4GB ({size} 總大小),上傳此資料夾可能需要較長的準備時間,是否仍要上傳? ",creating_new_task:"正在創建新任務...",cannot_create_task:"創建任務異常",cannot_create_task_msg:"創建任務時產生了未知錯誤。 任務可能已被創建,請查看上傳清單以確定上傳狀態。 ",cannot_get_task_name:"無法獲取任務名,請輸入推文標題后重試",remove_old_task:"刪除舊任務",remove_old_task_desc:"Web 模式僅允許創建一個任務,是否刪除舊任務? ",subtitle_list:"字幕清單",optional:"可選",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下載連結",maximumSubtitleNum_limit:"字幕數量已達到最大",cannot_add_subtitle:"添加字幕失敗",cannot_add_subtitle_msg:"沒有選擇字幕語言或下載鏈接無效。",support_subtitle_type:"僅支援srt,vtt格式的字幕。",recommend_opensubtitles:"建議使用www.opensubtitles.org的字幕下載鏈接或id。",take_down:"下架",serious_violation:"嚴重違規",copyright_disputes:"版權爭議",adults_only:"成人內容",takedown_reason:"下架原因",takedown_mode:"下架模式",admins:"管理員",takedown_user:"下架此創作者",takedown_channel:"下架此頻道",takedown_post:"下架此推文",select_takedown_reason:"選擇下架原因",takedown_invalid_reason:"下架原因錯誤",takedown_invalid_user_id:"用戶ID錯誤。ID應為87位字符",takedown_invalid_channel_id:"頻道ID錯誤。ID應為20位字符",takedown_invalid_post_id:"推文ID錯誤。ID應為20位字符",takedown_management:"下架管理",users:"用戶",channels:"頻道",posts:"推文",you:"你",preset:"預設",admin:"管理員",committee:"委員會",about_takedown_mode:"模式說明:\n預設:在github添加,所有內容都會從媒體庫移除。\n管理員:任一管理員投票後即會移除。\n委員會:超過半數管理員投票後才會移除。",cannot_edit_preset:"無法編輯此行,因為它是預設內容",cannot_edit_not_vote:"無法編輯此行,因為你未為其投票",remove_vote:"移除你的下架投票",post_preload_failed:"無法預載此推文。下載連結可能已過期,因此無法立即播放。",about_cache_node:"關於緩存節點",edit_cache_node:"編輯緩存節點",create_cache_node:"創建緩存節點",about_cache_node_desc:`${R} 使用 gun 伺服器作為緩存節點,您可以在進階設置中編輯自定義節點。`,learn_how_to_deploy_gun:"查看如何建立自定義節點",library_setting:"媒體庫設置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用戶",blocked_channels:"已屏蔽的頻道",unblock_user:"解除用戶屏蔽",unblock_channel:"解除頻道屏蔽",no_blocked_user:"沒有已屏蔽的用戶",no_blocked_channel:"沒有已屏蔽的頻道",field_required:"{0} 不能為空"};const F=r.a.displayName,B={unsupported_in_browser:"此功能暫不支援瀏覽器模式",client:"客戶端",warning:"警告",enable:"啟用",disable:"禁用",auto:"自動",encrypt_connection:"加密傳輸",encrypted_connection:"已加密的連結",non_encrypted_connection:"未加密的連結",connected_wires_not_disconnect:"已存在的連結不會被斷開",audio:"音頻",video:"視頻",image:"圖片",subtitle:"字幕",zip:"壓縮文件",text:"文本",unknown:"未知",add:"添加",undo:"撤銷",backup:"備份",not_default_app:`${F}不是你的默認應用, 是否設置默認應用?`,dont_show_again:"不再提示",go_to_settings:"前往設置",about_alphabiz:`關於 ${F}`,update_channel:"更新通道",last_check_at:"上次檢查更新時間",check_for_update:"檢查更新",checking_for_update:"檢查更新中...",no_update_available:"沒有可用更新",update_available:"更新可用",update_now:"現在更新",update_later:"以後更新",click_to_update:"點擊[現在更新]按鈕以開始下載更新",update_failed:"更新失敗",update_failed_message:"在更新時遇到了一個錯誤: ",check_shasum_failed:"安裝包完整性檢查失敗",downloading_update:"更新下載中...",ready_to_update:"準備更新",restart_to_update:`更新下載已完成. ${F} 將在數秒後退出以應用更新`,already_latest:"當前版本({0})已是最新",update_timeout:"更新超時",no_available_release:"沒有可能的版本",no_available_installer:"沒有可用的安裝包",feedback:"反饋",select_a_type:"選擇一個類型",category:"分類",select_a_category:"選擇一個分類",title:"標題",require_title:"請提供標題",describe_your_problem:"描述您遇到的問題",report_a_bug:"報告一個錯誤(bug)",request_a_new_feature:"請求一個新功能",download_or_upload:"下載/上傳",others:"其他",submit_with_system_info:"提交時附加系統信息",submit_feedback:"提交反饋",tweet_us:"發送Twitter",tweet_too_long:"Tweet過長",delete_characters:"請刪除{0}個字符",rest_characters:"還能輸入{0}個字符",update_alphabiz:`更新 ${F}`,current_version:"當前版本",cancel_update:"取消更新",slow_download_speed:"下載過於緩慢",slow_download_speed_caption:"當前更新包下載過於緩慢,請檢查網絡狀態",update_canceled:"更新已取消",current_version_release_time:"當前版本發佈時間",expired_app:`${F} 過期`,version_out_of_date:"版本過舊",have_to_update:`${F} 版本過舊,部分接口或協議已失效。您需要升級 ${F} 才可繼續使用。`,exit_alphabiz:`退出 ${F}`,exit_and_update:"退出並應用更新",new_version_hint:"新版本可用",no_new_version:"沒有可用的新版本",current_is_latest:"當前版本已是最新版",click_to_check_update:"點擊 [檢查更新] 按鈕以檢查更新",download_latest_version_from_website:"請前往官網下載最新版本",to_the_website:"前往官網",network_diagnotic:"網路診斷",diagnotic:"診斷",click_to_check:"點擊以開始檢查",click_to_check_again:"點擊以再次檢查",checking:"檢查中",online:"在線",offline:"離線",dns_look_up:"域名解析",error:"錯誤",aws_service:"AWS 服務",network_pings:"網路 Ping",not_found:"未找到",packet_loss:"丟包率",official_site:"官方網站",download_test:"下載測試",connected:"已連結",test_task:"測試任務 ({0})",download_failed:"下載失敗",second_spend:"用時 {0} 秒",open_default_player_failed:"打開默認播放器失敗",copied_to_clipboard:"已複製到剪貼板",go_to:"前往",region_not_available:"地區不可用",region_not_available_message:"抱歉,此應用在您的地區不可用。本應用將在{0}秒後退出。",confirm:"確認",no_available_result:"無可用結果"};var W={...M,...E,...D,...j,...L,...N,...U,...B},H=a("e4a9"),V=a("a282"),Q=a("1254"),G=a("88ba"),K=a("6432"),Y=a("44ce"),J=a("3d2b"),Z=a("68e2"),X=a("5e9a"),ee=a("0699"),te=a("b36c"),ae=a("5d61"),ne=a("4165"),oe=a("111a"),ie=a("45bf"),re=a("186c"),se=a("c65d"),le=a("f3f7"),ce=a("e24e"),de=a("f7b1"),ue=a("1081"),_e=a("2c08"),pe=a("9256"),me=a("be00"),he=a("76b4"),ge=a("e9ac"),fe=a("be0d"),be=a("c9b4"),ye=a("d310");const ve={"zh-CN":y,"en-US":q,"zh-TW":W,"de-DE":H,"es-ES":V,"fr-FR":Q,"hi-IN":G,"id-ID":K,"it-IT":Y,"ja-JP":J,"ko-KR":Z,"nl-NL":X,"pl-PL":ee,"pt-PT":te,"ru-RU":ae,"th-TH":ne,"tr-TR":oe};for(const je in ve){const e=ve[je];for(const t in e)e[t].match(/\${(.+?)}/)&&(e[t]=e[t].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)))}const we={"en-US":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric"},YMDHms:{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}},"zh-CN":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"zh-TW":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"de-DE":ie,"es-ES":re,"fr-FR":se,"hi-IN":le,"id-ID":ce,"it-IT":de,"ja-JP":ue,"ko-KR":_e,"nl-NL":pe,"pl-PL":me,"pt-PT":he,"ru-RU":ge,"th-TH":fe,"tr-TR":be};for(const je in ve)je in we||(we[je]=Object(ye["deepClone"])(we["en-US"]));var ke=a("fe2c"),Se=a("d884"),Ce=a("9ad5"),xe=a.n(Ce),$e=a("5584"),Te=a("d7df");const ze=Se["b"].map((({value:e})=>e));ke["b"].registerHooks(["beforeRouteLeave","beforeRouteEnter"]),n["a"].use(o["a"]);const Pe="undefined"===typeof navigator?"en-US":Se["b"].find((({value:e})=>e===navigator.language))?navigator.language:"en-US";console.log(`[i18n] Default locale: ${Pe}`);const Ae=new o["a"]({locale:Pe,fallbackLocale:"en-US",dateTimeFormats:we,messages:ve,silentTranslationWarn:!0}),Ie={externals:"_i18n_externals_",locale:"_i18n_locale_",trans:"_i18n_translations_",dtf:"_i18n_datetime_"},qe=(e,t,a)=>{if(!e||!e.value)return console.warn(`Failed to add locale ${e}: 'value' is required but not found.`);if("object"!==typeof t||null===t)return console.warn(`Cannot add locale ${e.value}: 'translations' must be object.`);const o=Se["b"].findIndex((t=>t.value===e.value));-1!==o?(console.warn(`Add duplicate language ${e.value} will replace it with new configs`),n["a"].set(Se["b"],o,e)):n["a"].set(Se["b"],Se["b"].length,e);const i=e.value;for(const n in t)t[n].match(/\${(.+?)}/)&&(t[n]=t[n].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)));n["a"].set(ve,i,t),"object"===typeof a&&n["a"].set(we,i,a),console.log("Successfully add new locale",e);const s=[...new Set(JSON.parse(localStorage.getItem(Ie.externals)||"[]"))];if(s.some((e=>e===i))||s.push(i),localStorage.setItem(Ie.externals,JSON.stringify(s)),localStorage.setItem(Ie.locale+i,JSON.stringify(e)),localStorage.setItem(Ie.trans+i,JSON.stringify(t)),a?localStorage.setItem(Ie.dtf+i,JSON.stringify(a)):localStorage.removeItem(Ie.dtf+i),Object(ye["isElectron"])()&&Te["a"].emit("external-locale",{locale:e.value,translations:t}),Ae&&"en-US"===Ae.locale){const e=navigator.languages.map((e=>{const t=e.split("-");if(t.length<=2)return e;const a=t[0],n=t.pop();return[a,n].join("-")}));if(!e.includes(i))return console.log(`User prefer languages ${e.join(",")} does not includes ${i}`);console.log(`Automatically set locale to ${i}`),Ae.locale=i,$e["a"].dispatch("set",{language:i})}},Oe=e=>{const t=Se["b"].find((t=>t.value===e));if(-1===t)return console.warn(`Failed to remove locale ${e}: not found`);Ae&&Ae.locale===e&&(Ae.locale="en-US"),Se["b"].splice(t,1),n["a"].delete(ve,e),n["a"].delete(we,e),console.log("Successfully remove locale",e);const a=JSON.parse(localStorage.getItem(Ie.externals)||"[]");a.includes(e)&&(a.splice(a.indexOf(e),1),localStorage.setItem(Ie.externals,JSON.stringify(a))),localStorage.removeItem(Ie.locale+e),localStorage.removeItem(Ie.trans+e),localStorage.removeItem(Ie.dtf+e)},Ee=async()=>{const e=console.log.bind(console,"[Remote External I18n]");if(!r.a.externalI18n)return e("No external i18n url availabel");try{const t=e=>{let t=r.a.externalI18n;return t.endsWith("/")||(t+="/"),new URL(e,t).href};e(t("locales"));const{data:a}=await xe.a.get(t("locales"));if("string"!==typeof a)throw new Error(`Locale ${a} is not string`);e(`Fetch locales: ${a}`);const n=a.split("\n").map((t=>{const[a,...n]=t.replace(/#.*$/,"").split(" ");let o=n&&n.join(" ");return o||(o=a),a?{value:a,label:o}:(e(`No available locale in ${t}`),null)})).filter((e=>e));if(!n.length)return e(`No available external i18n from ${r.a.externalI18n}`);const o=n.map((async a=>{try{const{data:e}=await xe.a.get(t(`${a.value}/translations.json`)),{data:n}=await xe.a.get(t(`${a.value}/dateTimeFormat.json`)).catch((()=>({})));qe(a,e,n)}catch(n){e(`Failed to get ${a.label} ${a.value} from ${r.a.externalI18n}`)}}));if(await Promise.all(o),!Ae)return;for(const i in Ae.messages)ze.includes(i)||n.find((e=>e.value===i))||(e("Remove locale since external locales file deleted it",i),Oe(i))}catch(t){e(`Failed to get locales from ${r.a.externalI18n} since ${t.message||t}`)}},De=()=>{const e=localStorage.getItem(Ie.externals);if(!e)return console.log("No external i18n available");const t=JSON.parse(e);for(const n of t){const e=localStorage.getItem(Ie.locale+n),t=localStorage.getItem(Ie.trans+n),o=localStorage.getItem(Ie.dtf+n);if(e&&t)try{qe(JSON.parse(e),JSON.parse(t),o?JSON.parse(o):null)}catch(a){console.warn(`Failed to add locale ${n}:`,a.message)}else console.warn(`Failed to get local files for ${n}`,e,t)}};t["a"]=e=>{const{app:t}=e;t.i18n=Ae,new(n["a"].extend({i18n:Ae}))({beforeCreate(){const e=this.$q.notify;this.$q.notify=t=>{const a=e=>{try{const t=Ae.messages[Ae.locale];return Object.keys(t).includes(e)}catch(t){return console.log("Faild @ boot -> i18n",e,Ae.locale,t),!1}};let n;return"string"===typeof t?n=e(a(t)?this.$t(t):t):(a(t.message)&&(t.message=this.$t(t.message,t.i18nData),delete t.i18nData),n=e(t)),n};for(const t in ve){const e={locale:t,translations:ve[t]};Te["a"].emit("external-locale",e)}},created(){De(),Ee(),this.$watch((()=>Ae.locale),(()=>{if(!Ae.messages[Ae.locale]){if(Ae.locale===Ae.fallbackLocale)return console.warn(`Failed to set locale to default[${Ae.fallbackLocale}]`);Ae.locale=Ae.fallbackLocale}}))}})}},"19f3":function(e,t,a){},"1af1":function(e,t){const a={};e.exports=a},"1b99":function(e,t,a){"use strict";a("244a")},"1cda":function(e,t,a){"use strict";a("058f")},"1da1":function(e,t,a){},"1ef4":function(e,t,a){"use strict";(function(e){a("de6c"),a("a1c1");var n=a("fb31"),o=a.n(n);function i(t){return e.from(t,"utf-8").toString("hex")}function r(t){return e.from(t,"hex").toString("utf-8")}t["a"]={fromObject(e){const{protocolType:t,name:a,hash:n,data:i}=e,s=i.type||"channel";if("02"!==t)return null;const l=o.a.shortProtocol;return`${l}-library://${s}/${decodeURIComponent(a)}/${r(n)}`},toObject(e){if(console.log("lib toObj",e),!e.startsWith(o.a.shortProtocol+"-library://"))return null;const[t,a,n]=e.replace(o.a.shortProtocol+"-library://","").split("/"),r={};return"channel"!==t&&(r.type=t),{protocolType:"02",name:encodeURIComponent(a),hash:i(n),data:r}}}}).call(this,a("eb72").Buffer)},2:function(e,t){},20:function(e,t){},21:function(e,t){},"212e":function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));a("de6c");var n=a("229c");function o(e){const t={};return a(),o((()=>{i({handleBatchItem(e){console.log("Analytics.send.batchItem:",e)},handleEndpoint:(e,t)=>{console.log(`Analytics.send: Endpoint(${e})`,t)},handleEvent:(t,a)=>{console.log(`Analytics.send: Event<${a.EventType}>(${t})`,a);const n=e.eventHandlers[a.EventType];n&&n(a,t)}})})),n["a"].$debug=function(){console.log("Analytics$debug:",{_config:n["a"]._config,pinpoint:t.pinpoint,pinpointClient:t.pinpointClient})},n["a"].$context=t,window.Analytics=n["a"],t;function a(){const e=n["a"]._pluggables.find((e=>"AWSPinpoint"===e.getProviderName()));Object.assign(t,{pinpoint:e})}function o(e){Object.defineProperty(t.pinpoint,"pinpointClient",{get(){return t.pinpointClient},set(a){t.pinpointClient=a,e(a)}})}function i({handleEndpoint:e,handleEvent:a,handleBatchItem:n}){const o=t.pinpointClient.send;t.pinpointClient.send=async function(){var i;const r=arguments[0].input;r.EndpointId&&e(r.EndpointId,r.EndpointRequest);const s=await t.pinpoint._config.endpointId,l=null===(i=r.EventsRequest)||void 0===i?void 0:i.BatchItem;if(l&&n(l),l&&l[s]){const{Endpoint:e,Events:t}=l[s];Object.entries(t).forEach((([e,t])=>{a(e,t)}))}return await o.apply(this,arguments)}}}},2163:function(e,t,a){"use strict";a("e836")},22:function(e,t){},2214:function(e,t,a){"use strict";a("0d10")},23:function(e,t){},2377:function(e,t,a){"use strict";a("d7f6")},24:function(e,t){},"244a":function(e,t,a){},25:function(e,t){},"25b9":function(e,t,a){},26:function(e,t){},27:function(e,t){},28:function(e,t){},"28c4":function(e,t,a){"use strict";a("df2b")},29:function(e,t){},"2b49":function(e,t,a){"use strict";var n=a("e74d");const o=()=>"electron"===n["a"]._config.oauth.app_env?"_blank":"_self";var i=e=>{const t=window.open(e,o());return t?Promise.resolve(t):Promise.reject()},r=e=>{let t="",a=e;const n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(;a>0;--a)t+=n[Math.round(Math.random()*(n.length-1))];return t},s=(a("a1c1"),a("98fd")),l=a.n(s),c=a("b858"),d=a.n(c),u=e=>l()(e).toString(d.a).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_");t["a"]={urlOpener:i,generateState:r,generateChallenge:u}},"2c08":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"2cab":function(e,t,a){"use strict";a("4d62")},"2cfd":function(e,t,a){},"2d55":function(e,t,a){},"2e22":function(e,t,a){"use strict";a.d(t,"c",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return g}));a("de6c"),a("f18a");var n=a("5584"),o=a("d310"),i=(a("c49d"),a("36a1")),r=a("1926");const s=e=>new Promise((t=>{const a=setInterval((()=>{const n=e();void 0!==n&&(clearInterval(a),t(n))}),1e3)})),l={data(){return{previewImage:null}},computed:{showPreview:{set(e){this.previewImage=e||null},get(){return!!this.previewImage}}}},c={methods:{async initFilmRate(){const e=e=>{const t=new Date(e);if(!t||!t.valueOf())return;const a=Date.now();return t.setFullYear(t.getFullYear()+7),t.valueOf(){const e={type:"radio",model:"G"};e.items=[{label:r["b"].t("rate_g"),value:"G",tooltip:r["b"].t("rate_g_desc")},{label:r["b"].t("rate_pg"),value:"PG",tooltip:r["b"].t("rate_pg_desc")},{label:r["b"].t("rate_pg_13"),value:"PG-13",tooltip:r["b"].t("rate_pg_13_desc")},{label:r["b"].t("rate_r"),value:"R",tooltip:r["b"].t("rate_r_desc")},{label:r["b"].t("rate_nc_17"),value:"NC-17",tooltip:r["b"].t("rate_nc_17_desc")}];const t=this.$alphabiz.dialog({title:r["b"].t("set_film_rate"),message:r["b"].t("select_a_rate_before_enter"),options:e,ok:r["b"].t("ok")}),a=await t.promise("ok");if(a)return a.option},i=e=>{if(n["a"].dispatch("updateSettings",{libraryRate:e}),Object(o["isElectron"])()){const{ipcRenderer:t}=a("b052");t.send("set_settings",{libraryRate:e})}localStorage.setItem("set-film-rate",e)};if(localStorage.getItem("set-film-rate"))return;const l=await s((()=>{if(n["a"].getters.accountUserInfo&&n["a"].getters.accountUserInfo.sub)return n["a"].getters.accountUserInfo.birthday||null}));let c=e(l);c||(c=await t()),i(c)}},async activated(){await this.initFilmRate()}},d=(...e)=>console.tag.blue("Channel",...e),u=(...e)=>console.tag.blue("Post",...e),_={data(){return{loader$loadedChannels:{}}},created(){this.$watch("followingChannels",(e=>{let t=!1;Object.keys(this.loader$loadedChannels).forEach((a=>{e.some((e=>e.id===a))||(delete this.loader$loadedChannels[a],t=!0)})),t&&(this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels))}),{immediate:!0,deep:!0})},computed:{loader$toLoadChannels(){const e=this.followingChannels;return console.log(e),e.filter((e=>!(!e.title||!e.id)&&!this.loader$loadedChannels[e.id])).reduce(((e,t)=>(e[t.id]=t,e)),{})}},methods:{async loader$enableChannelsLoader({onLoaded:e},t){const a=async({onChannelLoaded:e,onChannelUpdated:t})=>{const a=Object.values(this.loader$toLoadChannels);await Promise.all(a.map((async a=>{await new Promise((e=>setTimeout(e,Math.round(2e3*Math.random()))));const n=await i["a"].getChannelPostIds(a.id,!0);if(!this.loaderEnabled)return;const o=this.loader$loadedChannels[a.id];o?o.ids=n:this.loader$loadedChannels[a.id]={channel:a,ids:n},this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels),await(o?t:e)(a.id)})))},n=()=>({toLoadCount:Object.keys(this.loader$toLoadChannels).length,loadedCount:Object.keys(this.loader$loadedChannels).length}),o=e=>new Promise((t=>setTimeout(t,e)));let r=!0;while(this.loaderEnabled){const i=n();if(!i.toLoadCount){if(r){e(!0),r=!1;continue}await o(t);continue}if(await a({onChannelLoaded:async e=>{if(!this.loaderEnabled)return;const{loadedCount:t,toLoadCount:a}=n(),o=`${t}/${t+a}`;d("onLoaded",o).log(e)},onChannelUpdated:async e=>{this.loaderEnabled&&d("onUpdated").log(e)}}),!this.loaderEnabled)break;const s=n();s.toLoadCount||(e(r),r=!1,await o(t))}}}},p={data(){return{loader$loadedPosts:{}}},computed:{loader$toLoadPosts(){return Object.values(this.loader$loadedChannels).map((({channel:e,ids:t})=>t.map((t=>({id:t,channelId:e.id}))))).flat(1).reduce(((e,t)=>(this.loader$loadedPosts[t.id]||(e[t.id]=t),e)),{})},loader$toLoadPostIdListSorted(){const e=(e,t)=>e&&t?e.localeCompare(t):0;return Object.values(this.loader$loadedChannels).map((({ids:e})=>e.filter((e=>!this.loader$loadedPosts[e])))).flat(1).sort(e)}},methods:{async loader$loadPosts({count:e},{onPostsLoaded:t}){const a=async e=>{const{id:t,channelId:a}=e,n=this.loader$loadedChannels[a].channel,o=await i["a"].getPostById(a,t,!0);return o?(o.channel=n,o):null},n=e=>this.loader$toLoadPostIdListSorted.length?this.loader$toLoadPostIdListSorted.slice(0,e).map((e=>this.loader$toLoadPosts[e])):null,o=n(e);if(!o)return;const r=await Promise.all(o.map((async e=>{const t=await a(e);return t?{success:!0,post:t}:{success:!1,target:e}}))),s=r.filter((e=>e.success)).map((e=>e.post));return s.length&&(s.forEach((e=>{this.loader$loadedPosts[e.id]=e})),this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts),await t(s)),r},async loader$loadPostsNext({count:e}={}){if(!Object.keys(this.loader$toLoadPosts).length)return;if("loaded"!==this.loaderState)return;this.loaderState="fetching",await new Promise((e=>setTimeout(e,1e3)));const t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};await this.loader$loadPosts({count:e},{onPostsLoaded:t}),this.loaderState="loaded"},async loader$initPostLoader({initialCount:e}={},{onPostsLoaded:t}={}){var a;null!==(a=e)&&void 0!==a||(e=24),t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};const n=e=>new Promise((t=>setTimeout(t,e))),o=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),i=()=>{const{toLoadCount:t,loadedCount:a}=o();return a&&(0===t||a>=e)};let r=!0;while(!i())await this.loader$loadPosts({count:10},{onPostsLoaded:t}),r?r=!1:await n(Math.round(3e3*Math.random()));u().log("loaded")}}},m={mixins:[_,p],data(){return{loaderState:"stopped"}},computed:{loaderEnabled(){return["loading","fetching","loaded","timeout"].includes(this.loaderState)}},created(){this.$watch("loaderState",((e,t)=>{const a={red:["timeout"]},n=Object.keys(a).find((t=>a[t].includes(e))),o=console.tag[n||"blue"]("State"),i={loading:"loading...",timeout:"timeout, maybe network error",fetching:"fetching next post slice",loaded:()=>{const e={loading:"loaded",timeout:"loaded but timeout"};return e[t]}};let r=i[e];"function"===typeof r&&(r=r()),r?o.log(r):o.log()}))},methods:{async enableLoader(){const e=e=>new Promise((t=>setTimeout(t,e))),t=async(t,a,n)=>{let o,i=!1;return await Promise.race([t.then((e=>{i=!0,o=e})),e(a).then((()=>{i||n&&(o=n())}))]),o};if(this.loaderEnabled)return;this.loaderState="loading";const a=6e4,n=async()=>{await new Promise((e=>this.loader$enableChannelsLoader({onLoaded:t=>{d().log(t?"loaded":"updated"),e(!0)}},1e4))),await this.loader$initPostLoader()},o=e=>{this.loaderEnabled&&(this.loaderState=e?"timeout":"loaded")};await t((async()=>{await n(),o(!1)})(),a,(()=>{o(!0)}))},async disableLoader(){this.loaderEnabled&&(this.loaderState="stopped")}}},h={methods:{loader$dialog(){const e=this.$alphabiz.dialog({title:r["b"].t("no_available_post"),message:r["b"].t("following_channel_no_post"),cancel:r["b"].t("cancel"),ok:r["b"].t("lib_explore")});return e.promise("ok").then((e=>{e&&(n["a"].getters.settings.libraryShowExplore||n["a"].dispatch("set",{libraryShowExplore:!0}),this.$root.$emit("navigate-to","/library/explore"),this.$router.push("/library/explore"))})),e}}},g={mixins:[m,h],computed:{loadedPosts(){return this.loader$loadedPosts}},created(){let e;this.$watch("loaderState",(t=>{if("timeout"===t);else{if(!e)return;try{e.hide()}catch(a){}finally{e=null}}}))},async activated(){const e=()=>{const e=Object.values(this.loader$loadedChannels).map((({ids:e})=>e)).flat(1),t=Object.keys(this.loader$loadedPosts).filter((t=>!e.includes(t)));t.forEach((e=>{delete this.loader$loadedPosts[e]})),t.length&&(this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts))};e(),await i["a"].whenReady,this.enableLoader()},deactivated(){this.disableLoader()}}},"2e34":function(e,t,a){"use strict";a("3e69")},"2e69":function(e,t,a){"use strict";a("30c9")},3:function(e,t){},30:function(e,t){},3061:function(e,t,a){"use strict";a("aa59")},"30c9":function(e,t,a){},31:function(e,t){},32:function(e,t){},"326b":function(e,t,a){},33:function(e,t){},3334:function(e,t,a){"use strict";a.r(t),a.d(t,"getCurrentUser",(function(){return n})),a.d(t,"getCurrentExpenses",(function(){return o})),a.d(t,"getCurrentIncome",(function(){return i})),a.d(t,"getTransactionById",(function(){return r})),a.d(t,"getUser",(function(){return s})),a.d(t,"listUsers",(function(){return l})),a.d(t,"getInvitation",(function(){return c})),a.d(t,"listInvitations",(function(){return d})),a.d(t,"queryInvitationsByInviterId",(function(){return u})),a.d(t,"getMessageTimer",(function(){return _})),a.d(t,"listMessageTimers",(function(){return p})),a.d(t,"getTransaction",(function(){return m})),a.d(t,"listTransactions",(function(){return h})),a.d(t,"queryTransactionsByPayerId",(function(){return g})),a.d(t,"queryTransactionsByPayeeId",(function(){return f})),a.d(t,"getTask",(function(){return b})),a.d(t,"listTasks",(function(){return y})),a.d(t,"queryTasksByMember",(function(){return v})),a.d(t,"queryTaskByCategory",(function(){return w})),a.d(t,"getProvidentFund",(function(){return k})),a.d(t,"listProvidentFunds",(function(){return S}));const n="\n query GetCurrentUser {\n getCurrentUser {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",o="\n query GetCurrentExpenses($nextToken: String, $params: String) {\n getCurrentExpenses(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",i="\n query GetCurrentIncome($nextToken: String, $params: String) {\n getCurrentIncome(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",r="\n query GetTransactionById($id: String) {\n getTransactionById(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",s="\n query GetUser($id: ID!) {\n getUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",l="\n query ListUsers(\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n credit\n username\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",c="\n query GetInvitation($id: ID!) {\n getInvitation(id: $id) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",d="\n query ListInvitations(\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listInvitations(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",u="\n query QueryInvitationsByInviterId(\n $inviterId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryInvitationsByInviterId(\n inviterId: $inviterId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",_="\n query GetMessageTimer($id: ID!) {\n getMessageTimer(id: $id) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",p="\n query ListMessageTimers(\n $filter: ModelMessageTimerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listMessageTimers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n times\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n",m="\n query GetTransaction($id: ID!) {\n getTransaction(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",h="\n query ListTransactions(\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTransactions(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",g="\n query QueryTransactionsByPayerId(\n $payerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayerId(\n payerId: $payerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",f="\n query QueryTransactionsByPayeeId(\n $payeeId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayeeId(\n payeeId: $payeeId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",b="\n query GetTask($id: ID!) {\n getTask(id: $id) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n query ListTasks(\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTasks(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",v="\n query QueryTasksByMember(\n $member: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTasksByMember(\n member: $member\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",w="\n query QueryTaskByCategory(\n $category: TaskCategory\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTaskByCategory(\n category: $category\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",k="\n query GetProvidentFund($id: ID!) {\n getProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",S="\n query ListProvidentFunds(\n $filter: ModelProvidentFundFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProvidentFunds(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n amount\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n"},3361:function(e,t,a){},34:function(e,t){},3408:function(e,t,a){"use strict";a("8306")},35:function(e,t){},36:function(e,t){},3669:function(e,t,a){"use strict";a("c7ce")},"36a1":function(e,t,a){"use strict";a.d(t,"a",(function(){return Q}));var n=a("ff9b"),o=a("2d62"),i=a("d7df"),r=a("5515"),s=a("f680"),l=a("5584"),c=a("1926"),d=a("c49d"),u=a("3aea"),_=(a("d4b5"),a("de6c"),a("0598")),p=a("9ad5"),m=a.n(p),h=a("a3fc"),g=a("61af"),f=a("d710"),b=a.n(f);const{github:y}=f["update"],v=e=>f["takedown"].admins.includes(e),w="Serious Violation",k="Copyright Disputes",S="Adults Only",C=()=>{const e=Object(_["default"])()?require("developer/take-down.json"):a("9445");return e},x=C(),$=()=>{if(!Object(_["default"])())return null;const{app:e}=a("3be9"),t=e.getPath("userData");if(!t)return null;const n=Object(h["resolve"])(t,"config/take-down.json");return Object(g["existsSync"])(n)?JSON.parse(Object(g["readFileSync"])(n)):null},T=async()=>{const e=`https://raw.githubusercontent.com/${y.username}/${y.repo}/${y.branch}/developer/take-down.json`,{data:t}=await m.a.get(e).catch((()=>({data:null})));return t},z=async()=>{let e=await T();if(console.log("get from remote",e),Object(_["default"])()&&e){const{app:t}=a("3be9"),n=t.getPath("userData");if(!n)return;const o=Object(h["resolve"])(n,"config/take-down.json");Object(g["writeFileSync"])(o,JSON.stringify(e,null,2))}if(e||(e=$(),console.log("get from saved",e)),e&&"object"===typeof e)for(const t in x)x[t].splice(0,x[t].length,...e[t])},P=()=>x,A={users:[],channels:[],posts:[]};let I=!1;const q=()=>A,O=()=>{if(I)return;I=!0;const{admins:e,mode:t}=f["takedown"],a="admin"===t?0:Math.ceil(e.length/2+.5),n=[],i=()=>{console.log("update extra list",n);const e={users:[],channels:[],posts:[]};n.forEach((({id:n,admins:o,reason:i})=>{const[r,s]=n.split("|");if(!r||!s||!e[r])return;const l={id:s,reason:i,admins:o,mode:t,minCount:a};e[r].find((e=>e.id===s))||e[r].push(l)}));for(const t in e)A[t].splice(0,A[t].length,...e[t])},r=()=>{i()},s=(e="",t={})=>{for(const o in t){const i=t[o],r=n.find((e=>e.id===o));if(r)i&&[w,k,S].includes(i)?r.admins.includes(e)||r.admins.push(e):r.admins.includes(e)&&(r.admins.splice(r.admins.indexOf(e),1),0===r.admins.length&&n.splice(n.indexOf(r),1));else{if(!i)continue;if(![w,k,S].includes(i))continue;n.push({id:o,admins:[e],reason:i,minCount:a})}}r()};e.forEach((e=>{console.log("add admin",e),o["v"].user(e).get("takedowns").on((t=>{s(e,t)}))}))};a("7a76"),a("0c26");var E=a("0f0c"),D=a("8097"),j=async()=>{const e=N();console.tag.orange("recommends","urls").log(e);const{data:t,url:a}=await new Promise((async t=>{for(const a of e){const e=await L(a);if(e){t({data:e,url:a});break}}}));return console.tag.orange("recommends","got").log({url:a,data:t}),t};function N(){const e={version:Object(E["a"])("version"),buildTime:Object(E["a"])("buildTime")},t=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),a=[`${f["homepage"]}/recommends/v${e.version}.txt`,`${f["homepage"]}/recommends/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/recommends.txt`,"recommends.txt"];return t?a.splice(1,2):Object(D["a"])()&&a.unshift(`${f["homepage"]}/recommends/store/v${e.version}.txt`,`${f["homepage"]}/recommends/store/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/store/recommends.txt`),Array.from(new Set(a))}async function L(e){const t=async()=>{const t=await fetch(e);if(!t.ok||200!==t.status)return console.tag.orange("recommends","fetch").warn(t.statusText),null;try{const e=await t.text();return U(e)}catch{return null}},a=async n=>{try{return n.count&&console.tag.orange("recommends","fetch:retry",n.count).log(e),await t()}catch(o){if(o instanceof TypeError)return await new Promise((e=>setTimeout(e,1e3))),n.count+=1,await a(n);throw o}};return await a({count:0})}function U(e){if("string"!==typeof e)throw console.tag.orange("recommends","parse").error("Cannot parse data as string",e),new Error("Cannot parse data as string");const t=e.split("\n").map((e=>{var t;return null===(t=e.trim().split(" "))||void 0===t?void 0:t[0]})).filter((e=>e.match(/^[a-z0-9]{20}$/)));return t}var R=a("1738"),M=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};let F=Date.now();i["a"].on("library-db",(e=>M(void 0,void 0,void 0,(function*(){e&&(setTimeout((()=>Object(r["b"])(e)),3e3),setTimeout((()=>Object(r["b"])(e)),3e4),setTimeout((()=>Object(r["b"])(e)),6e4))})))),i["a"].emit("library-db");let B=!1;Object.defineProperty(globalThis,"verb",{get(){return B},set(e){B=e}}),Object.defineProperty(globalThis,"eventBus",{get(){return o["i"]}});const W=["G","PG","PG-13","R","NC-17"];let H=()=>{},V=null;const Q=new n["a"]({data(){return{user:null,ownedChannels:[],ownedChannelInstances:[],ownedChannelMap:new Map,followingChannels:[],showRecommend:!1,recommendPage:0,recommendIdList:[],allChannelList:[],online:!1,onlineStatus:"connecting",gunPeers:[],channelFollowerCount:{},libStatus:"init",whenReady:new Promise((e=>{let t=!1;H=()=>{t||(t=!0,R["a"].send("library_init",{cost:Date.now()-F}),e())}})),search:{text:"",option:{label:"",value:""},options:[]},currentCreator:{name:"",description:"",avatar:"",id:"",channels:[]},currentUserFromGun:null,userData:{},takedownList:{users:[],channels:[],posts:[]},takedownExtraList:{users:[],channels:[],posts:[]},isLibAdmin:!1,isFirstRegister:!1}},computed:{allowAdults(){return"NC-17"===l["a"].state.setting.libraryRate},username(){return this.userData&&"string"===typeof this.userData.name?this.userData.name:"("+c["b"].t("loading")+")"},bannedUsers(){const e=[];return[this.takedownList,this.takedownExtraList].forEach((t=>{t.users.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.channels.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.posts.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{if(t.id){if(e.includes(t.id))return!1;if(e.push(t.id),this.isBannedChannel(t))return!1}return t.title&&(t.creator||t.soul)}))},nonBlockFollowingChannels(){const{blockChannels:e,blockUsers:t}=this.userData;return e&&t?this.followingChannels.filter((a=>!(!a.id||!a.title)&&(!e.includes(a.id)&&!t.includes(a.creator)))):[]},isLoggedIn(){return!!this.user&&("ready"===this.libStatus&&!(!this.user.is||!this.user.is.pub))},sortedChannel(){return this.channelList},filteredChannels(){if(console.log("trigger filter channel"),"channel"!==this.search.option.label)return this.sortedChannel;const e=this.search.text;return this.sortedChannel.filter((t=>{var a;return!!t&&(t.title.toLowerCase().includes(e)||(null===(a=t.id)||void 0===a?void 0:a.includes(e)))}))},recommendChannels(){const e=5,t=this.filteredChannels.length,a=Math.ceil(t/e);while(this.recommendPage>a)this.recommendPage-=a;const n=[],o=this.recommendPage*e;for(let i=0;i<5;i++){const e=o+i;this.filteredChannels[e]&&!this.followingChannels.some((t=>t.id===this.filteredChannels[e].id))&&n.push(this.filteredChannels[e])}return n},addedPostMap(){const e=Object.create(null);for(const t in l["a"].getters.abKeys){const a=l["a"].getters.abKeys[t];a.forEach((a=>{e[a.key]={type:t,infoHash:a.infoHash,playFile:a.playFile}}))}return e}},methods:{register(e,t,a){return M(this,void 0,void 0,(function*(){this.isFirstRegister=!0,yield this.logout();const n=yield Object(o["z"])(e,t,a);return Object(r["c"])(),n}))},login(e){return M(this,void 0,void 0,(function*(){return this.isLibAdmin=!1,this.isLoggedIn?(console.log("should logged out",this.user),Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,console.log("relogin"),this.login(e)):(setTimeout((()=>{!this.followingChannels.length&&this.isLoggedIn&&this.updateFollow()}),1e4),Object(o["w"])(e))}))},logout(){return M(this,void 0,void 0,(function*(){this.isLibAdmin=!1,Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,this.userData={blockChannels:[],blockUsers:[]},this.followingChannels=[],this.ownedChannels=[]}))},prepareData(){var e;return M(this,void 0,void 0,(function*(){if(console.log("prepare data"),this.updateRecommends(),this.user=Object(o["u"])(),this.userData=Object(o["t"])().data,!this.user._||!this.user._.sea)throw new Error("User is not logged in");localStorage.setItem(`library-pair@${o["e"]}`,JSON.stringify(this.user._.sea)),this.isLibAdmin=v(null===(e=this.user.is)||void 0===e?void 0:e.pub),this.$emit("logged-in"),this.libStatus="fetch",yield this.getAllChannels(),this.updateOwn(),console.time("> lib: get private data"),yield this.updateFollow(),console.timeEnd("> lib: get private data"),this.libStatus="ready",H(),O(),this.takedownList=P(),this.takedownExtraList=q(),console.log("Takedown list:",this.takedownList)}))},isBannedChannel(e){return!!this.bannedUsers.includes(e.creator)||!!this.bannedChannels.includes(e.id)},isBannedPost(e){return!!this.bannedPosts.includes(e.id)},isValidRate(e){const t=l["a"].getters.settings.libraryRate,a=W.indexOf(e),n=W.indexOf(t);return a<=n},getAllChannels(){return M(this,void 0,void 0,(function*(){return V||(V=new Promise((e=>M(this,void 0,void 0,(function*(){const t=yield Object(o["k"])();if(t===this.allChannelList)return e();Object(d["a"])("get channel list",t,t.length),this.$set(this,"allChannelList",t),e()})))),V)}))},getRandomChannels(e,t){const a=this.followingChannels.map((e=>e.id)),n=(0===this.recommendIdList.length?this.channelList:this.recommendIdList.map((e=>this.channelList.find((t=>t.id===e))))).filter((e=>e&&!a.includes(e.id))),o=n.filter((e=>!e.hidden&&(!Array.isArray(t)||!t.includes(e.id))));if(0===o.length&&l["a"].getters.settings.libraryShowAllChannels){const e=this.channelList.filter((e=>!e.hidden&&(!!this.recommendIdList.includes(e.id)&&(!Array.isArray(t)||!t.includes(e.id)))));e.length&&o.push(...e)}if(o.length<=e)return o;for(let i=o.length-1;i>0;i--){const e=Math.floor(Math.random()*(i+1));[o[i],o[e]]=[o[e],o[i]]}if(b.a.library.recommends){const e=navigator.language,t=b.a.library.recommends[e]||b.a.library.recommends.default;if(t.length)for(let a=0;a(Object(d["a"])("Created new channel",e.id,e),Q.allChannelList.find((t=>!!t.id&&t.id===e.id))||e.id&&Q.allChannelList.push(e),setTimeout((()=>{Object(o["j"])(e.id).then((e=>{Object(r["c"])()}))}),1e3),e)))):null}))},editChannel(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["f"])(e,t);return Object(r["c"])(),a}))},removeChannel(e){return M(this,void 0,void 0,(function*(){const t=yield Object(o["A"])(e).then((t=>(Object(d["a"])("Removed",t,e),setTimeout((()=>Object(o["A"])(e)),1e3),t)));return Object(r["c"])(),t}))},createPost(e,t){return M(this,void 0,void 0,(function*(){if(!this.isLoggedIn)return null;const a=yield Object(o["b"])(t,e);return Object(r["c"])(),Q.getChannelPosts(t,!1).then((t=>{t.find((t=>!!t.id&&t.id===e.id))||e.id&&t.push(e)})),a}))},addPosts(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["c"])(t,e);return Object(r["c"])(),a}))},editPost(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["g"])(e,t,a);return Object(r["c"])(),n}))},removePost(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["B"])(t,e);return Object(r["c"])(),a}))},getChannelById(e){return Object(o["l"])(e)},getChannelPosts(e,t){return M(this,void 0,void 0,(function*(){return Object(o["o"])(e,t||!1)}))},getChannelPostIds(e,t){return M(this,void 0,void 0,(function*(){return Object(o["q"])(e,t||!1)}))},getPostById(e,t,a){return M(this,void 0,void 0,(function*(){return Object(o["p"])(e,t,a)}))},followChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: follow",e);const t=yield Promise.race([new Promise((t=>{setTimeout((()=>{this.followingChannels.some((t=>t.id===e))?t(null):Object(o["j"])(e).then(t)}),1500)})),Object(o["j"])(e)]);return this.isFirstRegister=!1,Object(r["c"])(),t}))},unfollowChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: unfollow",e);const t=yield Object(o["E"])(e);return Object(r["c"])(),t}))},blockChannel(e){return Object(o["d"])("channel",e)},blockUser(e){return Object(o["d"])("user",e)},unblockChannel(e){return Object(o["D"])("channel",e)},unblockUser(e){return Object(o["D"])("user",e)},takedown(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["C"])(e,t,a);return console.log("Takedown result",n),n}))},setSearchOption(e){this.search.options=e,this.search.text="",e.length&&(this.search.option=e[0])},todo(e){s["a"].create(`Incomplete. info: ${e}`)}},created(){setTimeout((()=>{this.getAllChannels(),this.updateRecommends()}),2e3),z();const e=new Set;console.log("[lib] created"),Object(d["b"])((t=>{e.has(t)||Object(r["a"])(t)}));const t=new Set;setInterval((()=>{var e,a;const n=Object.values(o["v"]._.opt.peers);let i=!1;if(n.length){for(const t of n)if((null===(e=null===t||void 0===t?void 0:t.wire)||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(this.online=!0,this.onlineStatus="connected",i=!0),t.wire instanceof WebSocket){const e={type:"ws",url:t.url,status:(null===(a=t.wire)||void 0===a?void 0:a.readyState)||0},n=this.gunPeers.findIndex((t=>t.url===e.url));-1!==n?this.$set(this.gunPeers,n,e):this.gunPeers.push(e)}this.gunPeers.forEach((e=>{"wrtc"!==e.type&&(n.find((t=>t.url===e.url||t.id===e.url))||this.$set(e,"status",WebSocket.CLOSED))}))}else this.online=!1,"connected"===this.onlineStatus&&(this.onlineStatus="reconnecting");Object.values(r["d"]).forEach((e=>{var t;const a={closed:WebSocket.CLOSED,connected:WebSocket.OPEN,connecting:WebSocket.CONNECTING,disconnected:WebSocket.CLOSED,failed:WebSocket.CLOSED,new:WebSocket.CONNECTING}[e.connectionState];a===WebSocket.OPEN&&(i=!0);const n={type:"wrtc",url:e.id,from:e._from,status:a,statusText:e.connectionState,label:Object(u["f"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||""),syncState:e.syncState,remoteSyncState:e.remoteSyncState,downloaded:e.downloaded,downloadSpeed:e.downloadSpeed,uploaded:e.uploaded,uploadSpeed:e.uploadSpeed},o=this.gunPeers.findIndex((e=>e.url===n.url));-1!==o?this.$set(this.gunPeers,o,n):this.gunPeers.push(n)}));for(let o=0;o0},attrs:{rounded:"",color:"primary",icon:e.selected.length?"star":void 0,label:e.selected.length?e.$t("follow_channels_and_continue",[e.selected.length]):e.$t("follow_any_channel_to_continue"),disable:!e.selected.length},on:{click:e.onFollow}}),a("q-btn",{staticClass:"action-btn q-px-sm q-mr-xl",attrs:{rounded:"",color:"primary",icon:"refresh",label:e.$t("show_more_for_me")},on:{click:e.loadMore}})],1)],2)])},o=[],i=(a("de6c"),a("fb31")),r=a.n(i),s=a("36a1"),l={name:"LibraryRecommend",props:{fullscreen:Boolean},data(){return{initTimer:null,badImage:[],recommends:[],selected:[],lib:s["a"]}},computed:{autoSelectIds(){const e=navigator.language,t=r.a.library.recommends;return t[e]?t[e]:t.default},followings(){return s["a"].followingChannels.map((e=>e.id))},filteredRecommends(){const e=s["a"].recommendIdList.length?this.recommends.filter((e=>s["a"].recommendIdList.includes(e.id))):this.recommends;if(!s["a"].userData)return e;const{blockChannels:t,blockUsers:a}=s["a"].userData;return t&&a?e.filter(((n,o)=>e.findIndex((e=>e.id===n.id))===o&&!t.includes(n.id)&&!a.includes(n.creator))):e}},watch:{filteredRecommends(e){if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}},methods:{async initRecommends(){this.getRecommends(),this.$root.$emit("navigate-to"),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}))},getRecommends(){const e=this.lib.getRandomChannels(5);this.recommends.splice(0,5,...e),0===e.length&&setTimeout((()=>{this.getRecommends()}),2e3)},loadMore(){const e=this.lib.getRandomChannels(6,this.recommends.map((e=>e.id)));if(!e.length)return this.$q.dialog({message:this.$t("no_more_recommend"),ok:this.$t("ok")});this.recommends.push(...e),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}))},select(e){this.selected.includes(e)?this.selected.splice(this.selected.indexOf(e),1):this.selected.push(e)},onFollow(){for(const e of this.selected)s["a"].followChannel(e);this.selected.splice(0),this.autoSelectIds.length&&setTimeout((()=>{for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}),5e3)},onImageError(e){this.badImage.push(e)},onImageLoaded(e){-1!==this.badImage.indexOf(e)&&this.badImage.splice(this.badImage.indexOf(e),1)}},mounted(){const e=()=>{var t;"signedIn"===(null===(t=this.$store.state.account)||void 0===t?void 0:t.authState)?this.initTimer=setTimeout((()=>{this.initRecommends()}),500):this.initTimer=setTimeout(e,1e3)};e()},beforeDestroy(){clearTimeout(this.initTimer)}},c=l,d=(a("7895"),a("2b5f")),u=a("e586"),_=a("d7c7"),p=a("f106"),m=a("1043"),h=a("4101"),g=a("09a4"),f=a.n(g),b=Object(d["a"])(c,n,o,!1,null,"0d732dc4",null);t["a"]=b.exports;f()(b,"components",{QCard:u["a"],QCardSection:_["a"],QIcon:p["a"],QBtn:m["a"],QColor:h["a"]})},37:function(e,t){},"38d2":function(e,t,a){},"39df":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"development-container",class:{large:e.isElectron}},[a("q-card",{attrs:{flat:"",square:""}},[a("q-tabs",{attrs:{align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},e._l(e.tabs,(function(t){return a("q-tab",e._b({key:t.name},"q-tab",t,!1))})),1),a("q-separator"),a("q-tab-panels",{staticClass:"panels",attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[a("q-tab-panel",{attrs:{name:"BasicPanel"}},[a("BasicPanel")],1),a("q-tab-panel",{attrs:{name:"accountInfo"}},[a("account-tab-panel")],1),a("q-tab-panel",{attrs:{name:"amplify"}},[a("amplify-tab-panel")],1),a("q-tab-panel",{attrs:{name:"devInfo"}},[a("dev-info-tab-panel")],1),a("q-tab-panel",{attrs:{name:"capacitorTest"}},[a("CapacitorTest")],1),a("q-tab-panel",{attrs:{name:"urlConvert"}},[a("url-convert")],1),a("q-tab-panel",{attrs:{name:"libraryData"}},[a("library-data")],1),a("q-tab-panel",{attrs:{name:"libraryPreload"}},[a("LibraryPreload")],1),a("q-tab-panel",{attrs:{name:"payment_mode"}},[a("payment-mode")],1),a("q-tab-panel",{attrs:{name:"theme_panel"}},[a("ThemeTabPanel")],1)],1)],1)],1)},o=[],i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"panel"},e._l(e.handlersData,(function(t){var n=t[0],o=t[1];return a("q-btn",e._b({key:n.key,attrs:{"no-caps":"",unelevated:""},on:{click:o}},"q-btn",n,!1))})),1),a("q-separator"),a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v("Dynamic Config")]),a("div",{staticStyle:{"white-space":"pre-wrap"}},[e._v(e._s(JSON.stringify(e.d$cfg,null,2)))])]),a("q-separator"),a("q-card-section")],1)},r=[],s=(a("de6c"),a("a1c1"),a("91ab")),l=a("d310");const c=a("d310").isElectron();var d={name:"BasicPanel",data(){return{handlers:[[{color:"positive",icon:"bug_report"},this.openWebtorrentDevTools],[{color:"positive",icon:"refresh"},this.reloadWebTorrent],[{color:"negative",icon:"delete_forever"},this.delete_config],[{color:"negative",icon:"delete"},this.clearBlockchainConfig],this.getUsersLanguage,this.getVueLocale,this.getLocale]}},computed:{handlersData(){return this.handlers.map((e=>Array.isArray(e)?e:[{},e])).map((([e,t])=>{e=Object.assign({key:t.name.substring(6),label:Object(s["a"])(t.name.substring(6)).replace(/-/g," "),color:"general",textColor:e.color||"general"},e);const a=async()=>{const e=t();e&&e.then&&await e};return[e,a]}))}},methods:{delete_config(){this.$q.electron.ipcRenderer.invoke("deleteConfig").then((e=>{this.$q.notify(e)}))},getLocale(){this.$q.notify(this.$q.lang.getLocale())},getVueLocale(){this.$q.notify(this.$i18n.locale)},getUsersLanguage(){l["localConfigs"].getSettingsItem("language").then((e=>{this.$q.notify({message:e,position:"bottom-right",type:"positive",timeout:3e3})})).catch((()=>{this.$q.notify({message:"未获取到数据项",position:"bottom-right",type:"negative",timeout:3e3})}))},openWebtorrentDevTools(){if(c)return a("b052").ipcRenderer.send("open-webtorrent-devtools")},reloadWebTorrent(){c&&(a("b052").ipcRenderer.send("reload-webtorrent-window"),this.$q.notify("WebTorrent window is reloaded"))},async clearBlockchainConfig(){await new Promise((e=>setTimeout(e,2e3))),await window.$blockchain.$store.account.deleteCurrentAccount(),localStorage.removeItem("blockchain.network");const e=window.$blockchain.network.getNetworkConfig();window.$blockchain.network.updateNetworkConfig(e),location.reload()}}},u=d,_=(a("bc42"),a("2b5f")),p=a("1043"),m=a("fc38"),h=a("d7c7"),g=a("09a4"),f=a.n(g),b=Object(_["a"])(u,i,r,!1,null,"60f74c22",null),y=b.exports;f()(b,"components",{QBtn:p["a"],QSeparator:m["a"],QCardSection:h["a"]});var v=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticStyle:{margin:"-4px"}},e._l(e.$account.$test,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{unelevated:"",color:"general","text-color":"general","no-caps":"",label:n,disable:!!e.test$loadingState,loading:e.test$loadingState===n},on:{click:function(a){return e.test$withLoadingState(n,t)}}})})),1),a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-ma-sm"},[a("q-checkbox",{attrs:{label:"isTestEnv"},model:{value:e.isTest,callback:function(t){e.isTest=t},expression:"isTest"}})],1),a("h4",[e._v(e._s(e.$store.state.account.authState))]),"signedIn"===e.$store.state.account.authState?a("div",{staticClass:"row",staticStyle:{margin:"-4px"}},[e._l(e.$store.getters.accountUserInfo,(function(t,n){return[Array.isArray(t)?[a("div",{key:n,staticClass:"col-12 col-lg-6 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden",attrs:{flat:"",bordered:""}},[Array.isArray(t)?a("q-expansion-item",{attrs:{"content-inset-level":.4,label:n}},e._l(t,(function(t,n){return a("div",{key:n},[e._v(e._s(t)+"\n ")])})),0):e._e()],1)],1)]:[a("div",{key:n,staticClass:"col-6 col-sm-3 col-lg-2 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden q-px-md q-py-sm",staticStyle:{"min-height":"66px"},attrs:{flat:"",bordered:""}},[a("div",{staticClass:"text-capitalize",staticStyle:{"font-size":"0.8rem",opacity:"0.8"}},[e._v(e._s(n)+"\n ")]),a("div",{staticClass:"text-weight-bold text-no-wrap ellipsis"},[e._v(e._s(t))])])],1)]]}))],2):e._e(),"signedIn"===e.$store.state.account.authState?[a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-mb-sm"},[a("q-input",{staticStyle:{"max-width":"300px"},attrs:{label:"TestToken",dense:"",outlined:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.testToken,callback:function(t){e.testToken=t},expression:"testToken"}})],1),a("div",[a("alphabiz-button",{attrs:{label:"Add Credits 100","on-click":e.addCredits}})],1)]:e._e()],2)},w=[],k=a("e75b");const S=new k["a"].Rest("ABDevRest");var C={name:"AccountTabPanel",data(){return{test$loadingState:null,testToken:""}},computed:{isTest:{get(){return this.$root.isTestEnv},set(e){this.$root.isTestEnv=e}}},methods:{async test$withLoadingState(e,t){try{this.test$loadingState=e,await t()}finally{this.test$loadingState=null}},async addCredits(){try{const e=await S.post("/development/addCredits",{testToken:this.testToken});console.log(e)}catch(e){this.$q.notify({message:e.message,type:"negative",position:"bottom-right",timeout:5e3})}}}},x=C,$=a("7498"),T=a("e586"),z=a("5bbd"),P=a("0e45"),A=Object(_["a"])(x,v,w,!1,null,"2975ce9d",null),I=A.exports;f()(A,"components",{QBtn:p["a"],QSeparator:m["a"],QCheckbox:$["a"],QCard:T["a"],QExpansionItem:z["a"],QInput:P["a"]});var q=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{margin:"-12px"}},[a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event"},on:{click:e.dispatchPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"send public event"},on:{click:e.sendPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"subscribe public event"},on:{click:e.subscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"unsubscribe public event"},on:{click:e.unsubscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event [legacy]"},on:{click:e.dispatchPublicEventLegacy}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"rest_dev"},on:{click:e.restDev}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"regInfo"},on:{click:e.regInfo}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dialog"},on:{click:e.dialog}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:trigger_event"},on:{click:e.triggerAnalyticsEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:updateEndpoint"},on:{click:e.updateEndpoint}})],1)},O=[],E=(a("d4b5"),a("61af")),D=a.n(E),j=a("bbac"),N=a("229c");const L=new k["a"].Rest("ABDevRest"),U={mounted(){N["a"].$debug()},methods:{async updateEndpoint(){const e=await N["a"].updateEndpoint({attributes:{foo:"bar"},immediate:!0});console.log("updateEndpoint:",e)},async triggerAnalyticsEvent(){console.log("triggerAnalyticsEvent:","sending");const e=await N["a"].record({immediate:!0,name:"test_analytics",attributes:{source:"triggerAnalyticsEvent"},metrics:{foobar:Math.floor(1e3*Math.random())}});console.log("triggerAnalyticsEvent:","sent",e)}}};var R={name:"AmplifyTabPanel",mixins:[U],data(){return{currentLoadingState:!1}},methods:{async dispatchPublicEvent(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"9865c315-e778-4de3-8045-1af79eba7fb4",channel:"foo_channel",data:JSON.stringify({a:213123,b:"lorem-server"})});console.log(e)},async dispatchPublicEventLegacy(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"*",channel:"foo_channel-legacy",legacy:!0,data:JSON.stringify({a:213123,b:"lorem-server-legacy"})});console.log(e)},async sendPublicEvent(){},async subscribePublicEvent(){},async unsubscribePublicEvent(){},async dialog(){const e=this.$alphabiz.dialog({title:"Tel",prompts:{tel:{type:"tel",model:{countryCode:null,prefixCode:null,phoneNumber:""}}}}),t=await e.promise("ok");console.log(t)},async restDev(){const e=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},t=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e},a=t(),n=await e(a);if(!n)return;const o=this.$root.$children[0];console.log(n.path),o.lib$openABK(n.path)},async regInfo(){let e=null;const t=[],a=()=>L.post("/development/admin/query",{token:"asdasdasd",type:"reg_info",pagination_token:e});while(e||null===e)await a().then((({data:a})=>{e=a.PaginationToken,t.push(...a.Users),console.log(`queried ${t.length} (+${a.Users.length})`,a.PaginationToken)}));console.log("save users",t);const n=async e=>{const t=e=>{const t={};return t.username=e.Username,t.user_status=e.UserStatus,t.user_create_date=e.UserCreateDate,t.user_last_modified_date=e.UserLastModifiedDate,e.Attributes.forEach((({Name:e,Value:a})=>{t[`attr_${e}`]=a})),t},a=e.map(t),n=(()=>{let e=[];return a.forEach((t=>{const a=Object.keys(t);a.length>e.length&&(e=a)})),e=e.map((e=>({header:e,key:e}))),e})();console.log("columns",n);const o=a.map((e=>{const t=[];return n.forEach((a=>{var n;t.push(null!==(n=e[a.key])&&void 0!==n?n:"null")})),t})),i=await new Promise(((e,t)=>{Object(j["stringify"])(o,{header:!0,columns:n},((a,n)=>{a?t(a):e(n)}))}));return i};n(t).then((e=>{console.log("csv saving...",e),D.a.writeFileSync("./users.csv",e),console.log("done")}))}}},M=R,F=Object(_["a"])(M,q,O,!1,null,null,null),B=F.exports;f()(F,"components",{QSeparator:m["a"],QBtn:p["a"]});var W=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e.devInfo.torrentStore?a("div",{staticClass:"full-width"},[e._v("Torrent Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.torrentStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetTorrent}}),a("pre",[e._v(e._s(e.devInfo.torrentStore))])],1):e._e(),e.devInfo.settingStore?a("div",{staticClass:"full-width"},[e._v("Setting Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.settingStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetSetting}}),a("pre",[e._v(e._s(e.devInfo.settingStore))])],1):e._e(),e._v("\n We are using\n "),e.devInfo.electronVer?a("div",{staticClass:"full-width"},[e._v("Electron "+e._s(e.devInfo.electronVer)+"\n ")]):e._e(),e.devInfo.chromeVer?a("div",{staticClass:"full-width"},[e._v("Chrome "+e._s(e.devInfo.chromeVer)+"\n ")]):e._e(),e.devInfo.nodeVer?a("div",{staticClass:"full-width"},[e._v("Node "+e._s(e.devInfo.nodeVer)+"\n ")]):e._e(),a("div",[e._v("Quasar "+e._s(e.$q.version))]),a("div",[e._v("Vue "+e._s(e.vueVersion))]),a("div",[e._v(" "+e._s(e.$q.platform))]),e.devInfo.isCapacitor?a("div",{staticClass:"is-capacitor"},[e._v("[ Capacitor(Mobile) Mode ]")]):e._e(),e.devInfo.processArgv?a("div",{staticClass:"full-width"},[e._v("Process Argv "+e._s(e.devInfo.processArgv))]):e._e(),a("div",{staticClass:"full-width"},[e._v("Platform info: "+e._s(e.devInfo.platformInfo))]),a("div",{staticClass:"full-width"},[e._v("Location href: "+e._s(e.devInfo.locationHref))]),a("q-btn",{attrs:{color:"primary",icon:"aod",label:"capacitor test"},on:{click:e.testCapacitor}})],1)},H=[],V=a("ff9b"),Q=a("908d"),G=a("d7df"),K=a("d558");const Y=a("d310").isElectron(),J=Y?a("b052").ipcRenderer:null;var Z={name:"DevInfoTabPanel",data(){return console.log("PLATFORM",Q["b"].is,location),{io:G["a"],devInfo:{torrentStore:"",settingStore:"",platformInfo:Q["b"].is,locationHref:location.href,isCapacitor:Object(K["a"])()}}},methods:{open(e){this.io.emit("show_torrent_file",e)},resetTorrent(){Y&&J.send("reset-torrent")},resetSetting(){this.$store.dispatch("resetSettings").then((e=>{this.$i18n.locale=e.language,this.$q.notify("Reset success")}))},testCapacitor(){fetch("http://localhost:25742",{mode:"cors"}).then((e=>e.json())).then((e=>{console.log("CAPACITOR test success",e),this.$q.dialog({html:!0,message:"
"+JSON.stringify(e,null,2)+"
",ok:!0})})).catch((e=>{console.log("CAPACITOR test failed",e),console.log(e.message),console.log(e.stack),this.$q.dialog({message:e.message||e,ok:!0})}))}},mounted(){Y&&(J.on("dev-info",((e,t)=>{t.torrentStore&&(this.devInfo.torrentStore=t.torrentStore),t.settingStore&&(this.devInfo.settingStore=t.settingStore),t.electronVer&&(this.devInfo.electronVer=t.electronVer),t.chromeVer&&(this.devInfo.chromeVer=t.chromeVer),t.nodeVer&&(this.devInfo.nodeVer=t.nodeVer),t.argv&&(this.devInfo.processArgv=t.argv)})),J.send("dev-info")),this.io.off("notify",this.notify),this.io.on("notify",this.notify)},computed:{vueVersion(){return V["a"].version}}},X=Z,ee=(a("3fc8"),Object(_["a"])(X,W,H,!1,null,"39f109b1",null)),te=ee.exports;f()(ee,"components",{QBtn:p["a"]});var ae=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e._v("\n Alphabiz URL Convert\n "),a("q-input",{staticClass:"q-my-md",attrs:{type:"text",label:"source url"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.url,callback:function(t){e.url=t},expression:"url"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Convert"},on:{click:e.convert}})],1)},ne=[],oe=a("c5a5"),ie={name:"DevInfoTabPanel",data(){return{url:""}},methods:{convert(){Object(oe["a"])(this.url).then((e=>{this.url=e})).catch((e=>{console.error(e)}))}}},re=ie,se=Object(_["a"])(re,ae,ne,!1,null,"19fc1694",null),le=se.exports;f()(se,"components",{QInput:P["a"],QBtn:p["a"]});var ce=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-data"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"text-h6 q-py-md"},[e._v("Media Library Database")]),a("div",{staticClass:"current-lib-status"},[e._v("There are "+e._s(e.entriesCount)+" entries in library")]),a("q-btn",{attrs:{color:"primary",icon:"save",label:"Export"},on:{click:e.saveDb}}),a("FileSelector",{on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",icon:"upload_file",label:"Import"}})],1),a("br"),a("q-btn",{staticClass:"q-mt-md",attrs:{color:"primary",icon:"bug_report",label:"Library Debug Log"},on:{click:function(t){e.showDebugLog=!0}}}),a("q-dialog",{model:{value:e.showDebugLog,callback:function(t){e.showDebugLog=t},expression:"showDebugLog"}},[a("q-card",{staticStyle:{"max-width":"80%"}},[a("q-card-section",[a("DebugLog")],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",color:"primary",icon:"close",label:"Close"}})],1)],1)],1)],1)},de=[],ue=a("2d62"),_e=a("3aea"),pe=a("5515"),me=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"debug-logs row col-12 q-pa-md"},[a("p",{staticClass:"col-12 q-mt-none",staticStyle:{"font-size":"24px"}},[e._v("Debug pannel")]),a("div",{staticClass:"peers col-6 q-pa-sm",staticStyle:{border:"1px solid gainsboro"}},e._l(e.peers,(function(t){return a("div",{key:t.url,staticClass:"peer"},[a("div",{staticClass:"status"},[a("q-badge",{attrs:{label:t.type}}),a("span",{directives:[{name:"show",rawName:"v-show",value:"wrtc"!==t.type,expression:"peer.type !== 'wrtc'"}],class:"connected"===t.status?"text-green":"text-grey"},[e._v("\n [ "+e._s(t.status)+" ]\n ")]),t.from?a("span",{staticClass:"text-green"},[e._v("[ "+e._s(t.from)+" ]")]):e._e(),a("span",[e._v(e._s(t.url))]),t.remoteSyncState?a("q-icon",{attrs:{color:"primary",name:t.stateIcon}},[a("q-tooltip",[a("span",[e._v("Local sync state: "+e._s(t.syncState))]),a("br"),a("span",[e._v("Remote sync state: "+e._s(t.remoteSyncState))])])],1):e._e()],1)])})),0),a("div",{staticClass:"logs col q-px-sm"},[e._v("\n --info--\n "),a("div",{staticClass:"user"},[e._v("User "+e._s(e.userInfo))]),a("div",{staticClass:"channels"},[e._v("Channels("+e._s(e.channels.length)+"): [\n "),e._l(e.channels,(function(t){return a("div",{key:t.id,staticClass:"channel q-ml-sm"},[e._v("\n "+e._s(t.title)+"\n "),a("span",{staticClass:"text-grey"},[e._v("UID: "+e._s(t.id))])])})),e._v("\n ]\n ")],2)])])},he=[],ge=a("36a1"),fe={data(){return{lib:ge["a"]}},computed:{peers(){const e=[];return this.lib.gunPeers.forEach((t=>{let a="";switch(t.status){case WebSocket.CONNECTING:a="connecting";break;case WebSocket.OPEN:a="connected";break;case WebSocket.CLOSED:a="closed";break;case WebSocket.CLOSING:a="closing";break}let n="arrow_downward";"completed"===t.remoteSyncState?n="completed"===t.syncState?"done_all":"arrow_upward":"completed"!==t.syncState&&(n="sync"),e.push({from:t.from,url:t.label||t.url,type:t.type,syncState:t.syncState,remoteSyncState:t.remoteSyncState,stateIcon:n,status:a})})),e},userInfo(){var e;const t=this.lib.user;return`UID: ${null===t||void 0===t||null===(e=t.is)||void 0===e?void 0:e.pub}`},channels(){return this.lib.channelList.map((e=>({title:e.title,id:e.id})))}}},be=fe,ye=(a("28c4"),a("90c4")),ve=a("f106"),we=a("cf25"),ke=Object(_["a"])(be,me,he,!1,null,null,null),Se=ke.exports;f()(ke,"components",{QBadge:ye["a"],QIcon:ve["a"],QTooltip:we["a"]});var Ce=a("d710"),xe=a.n(Ce),$e=a("9a50"),Te={components:{DebugLog:Se,FileSelector:$e["a"]},name:"LibraryData",data(){return{entriesCount:Object.keys(ue["v"]._.graph).length,showDebugLog:!1,countInterval:null}},methods:{parseLib(){},saveDb(){Object(_e["h"])(JSON.stringify({timestamp:Date.now(),graph:ue["v"]._.graph}),`${xe.a.name}-library-${Date.now()}.json`)},importDb(){this.$refs.fileSelector.click()},put(e){Object(pe["b"])(e),this.$q.notify(`Successfully import ${Object.keys(e).length} entries`)},onFileChange(e){e&&Object(_e["g"])(e).then((e=>{const t=JSON.parse(e);if(!t.graph)return this.$q.notify(`This JSON file is not an ${xe.a.name} library db`);Date.now()-t.timestamp>6048e5?this.$q.dialog({title:"DB file too old",message:"This database file is created long time ago and may not be latest. Latest version of data will overwrite this db. Still import it?",ok:"Import anyway",cancel:"No",persistent:!0}).onOk((()=>{this.put(t.graph)})):console.log("Loaded db")}))}},created(){clearInterval(this.countInterval),this.countInterval=setInterval((()=>{this.entriesCount=Object.keys(ue["v"]._.graph).length}),1e3)},beforeDestroy(){clearInterval(this.countInterval)}},ze=Te,Pe=a("b2aa"),Ae=a("59ba"),Ie=a("a431"),qe=Object(_["a"])(ze,ce,de,!1,null,"0442e706",null),Oe=qe.exports;f()(qe,"components",{QBtn:p["a"],QDialog:Pe["a"],QCard:T["a"],QCardSection:h["a"],QCardActions:Ae["a"]}),f()(qe,"directives",{ClosePopup:Ie["a"]});var Ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v("\n Payment Mode\n ")]),a("q-toggle",{model:{value:e.dp$toggle,callback:function(t){e.dp$toggle=t},expression:"dp$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":e.paymentColor,color:e.paymentColor}},[e._v("\n "+e._s(e.paymentLabel)+"\n ")])],1)],1),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Address",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$address))])]},proxy:!0}])}),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Credits",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$credit))])]},proxy:!0}])}),a("q-list",{staticClass:"q-my-md rounded-borders overflow-hidden non-selectable",staticStyle:{width:"640px",border:"1px solid rgba(127,127,127,0.35)"}},[a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:!this.dp$toggle,expression:"!this.dp$toggle"}],attrs:{tag:"label",disable:!this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showCreditPage,disable:!this.dp$toggle,val:"teal",color:"teal"},on:{input:function(t){return e.leftDrawer.showCreditPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Amplify Credits Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1),a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:this.dp$toggle,expression:"this.dp$toggle"}],attrs:{tag:"label",disable:this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showBlockchainPage,disable:this.dp$toggle,val:"orange",color:"orange"},on:{input:function(t){return e.leftDrawer.showBlockchainPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Blockchain Account Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1)],1),!e.dp$toggle&&e.$store.state.credits.providentFund?a("q-toggle",{model:{value:e.pf$toggle,callback:function(t){e.pf$toggle=t},expression:"pf$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":"general",color:"general"}},[e._v("\n ProvidentFund: "+e._s(e.$store.state.credits.providentFund.enable?"Enabled":"Disabled")+"\n ")])],1):e._e()],1)},De=[],je=a("09e8");const Ne={computed:{pf$toggle:{get(){const e=this.$store.state.credits.providentFund;if(!e){const e=localStorage.getItem("credit.providentFund");return!e||JSON.parse(e).enable}return e.enable},set(e){const t=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},e)})();t.enable=e,localStorage.setItem("credit.providentFund",JSON.stringify(t)),this.$store.commit("CREDIT_UPDATE",{"providentFund.enable":e})}}}};var Le={name:"PaymentMode",mixins:[je["a"],Ne],data(){return{changed:!1}},watch:{dp$toggle(e){e?(this.leftDrawer.showCreditPage=!1,this.leftDrawer.showBlockchainPage=!0):(this.leftDrawer.showCreditPage=!0,this.leftDrawer.showBlockchainPage=!1),this.changed=!this.changed,this.changed&&this.showRestartDialog()}},computed:{dp$toggle:{get(){return this.dp$mode?"blockchain"===this.dp$mode:"blockchain"===localStorage.getItem("dataPaymentMixin.mode")},set(e){this.dp$mode=e?"blockchain":"amplify"}},leftDrawer(){const e=this.$route.matched.find((e=>"MainLayout"===e.name)).instances.default;return e.$refs.leftDrawer},paymentLabel(){return this.dp$toggle?"Blockchain-based Service":"Managed Service (Amplify)"},paymentColor(){return this.dp$toggle?"accent":"positive"}},methods:{showRestartDialog(){this.$q.dialog({title:"Change Payment Mode",message:"you should restart application",ok:"Restart",cancel:"Undo"}).onOk((async()=>{a("d310").isElectron()&&a("b052").ipcRenderer.send("reload-webtorrent-window"),await this.$router.push({name:"Index"}),location.reload()})).onCancel((()=>{this.dp$toggle=!this.dp$toggle}))}}},Ue=Le,Re=a("03bd"),Me=a("b121"),Fe=a("e7c2"),Be=a("b329"),We=a("25fb"),He=a("79e0"),Ve=a("719b"),Qe=Object(_["a"])(Ue,Ee,De,!1,null,"34cd40b6",null),Ge=Qe.exports;f()(Qe,"components",{QToggle:Re["a"],QBadge:ye["a"],QField:Me["a"],QList:Fe["a"],QItem:Be["a"],QItemSection:We["a"],QCheckbox:$["a"],QItemLabel:He["a"]}),f()(Qe,"directives",{Ripple:Ve["a"]});var Ke=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-preload"},[a("q-checkbox",{staticClass:"q-mr-lg",attrs:{value:e.libraryPreload,label:"Enable preload"},on:{input:e.changePreload}}),a("q-checkbox",{directives:[{name:"show",rawName:"v-show",value:e.libraryPreload,expression:"libraryPreload"}],attrs:{value:e.showPreload,label:"Show preload tasks"},on:{input:e.changeShowPreload}}),a("div",{staticClass:"preload-tasks"},e._l(e.preloadTasks,(function(t,n){return a("div",{key:t.abUrl,staticClass:"preload-task q-ma-xs"},[a("div",{staticClass:"task-name q-mr-xs"},[e._v(e._s(n+1)+". "+e._s(t.postTitle||t.torrent&&(t.torrent.postTitle||t.torrent.name)||t.abUrl))]),a("span",{staticClass:"status"},[e._v("Status:\n "),t.failed?a("span",{staticClass:"status-text text-red"},[e._v("Failed")]):t.torrentPath?a("span",{staticClass:"status-text",class:2===t.torrent.preloadStatus?"text-green":""},[e._v("\n "+e._s(2===t.torrent.preloadStatus?"Downloaded":"Downloading")+"\n ")]):a("span",{staticClass:"status-text text-grey"},[e._v("Loading")])]),t.torrent&&2===t.torrent.preloadStatus?a("span",{staticClass:"q-ml-sm"},[a("span",{staticClass:"downloaded"},[e._v("Preload size:")]),a("span",{staticClass:"downloaded-size q-mx-xs"},[e._v(e._s(e.byteToLarger(t.torrent.downloaded)))]),a("q-btn",{attrs:{color:"general","no-caps":"",flat:"",dense:"",size:"xs"},on:{click:function(a){return e.showLocal(t.torrent)}}},[a("q-icon",{attrs:{name:"open_in_new",size:"14px"}}),a("span",{staticClass:"label",staticStyle:{"font-size":"14px"}},[e._v("Local files")])],1)],1):e._e()])})),0)],1)},Ye=[],Je=a("5584"),Ze=a("6422"),Xe={name:"LibraryPreload",data(){return{libraryPreload:Je["a"].state.setting.libraryPreload,showPreload:Je["a"].state.setting.showPreload,preloadTasks:[]}},methods:{byteToLarger(e){return Object(Ze["a"])(e,{gb:!1,byte:!1})},async changePreload(){console.log("change preload"),await Je["a"].dispatch("set",{libraryPreload:!this.libraryPreload}),await Je["a"].dispatch("fetchSettings"),this.libraryPreload=Je["a"].state.setting.libraryPreload},async changeShowPreload(){console.log("change showPreload"),await Je["a"].dispatch("set",{showPreload:!this.showPreload}),await Je["a"].dispatch("fetchSettings"),this.showPreload=Je["a"].state.setting.showPreload},onPreloadTasks(e){this.preloadTasks=e},showLocal(e){G["a"].emit("show_torrent_file",e.path)}},mounted(){console.log("on mounted"),G["a"].on("preload-tasks",this.onPreloadTasks)},beforeDestroy(){console.log("on before destroy"),G["a"].off("preload-tasks",this.onPreloadTasks)}},et=Xe,tt=(a("f817"),Object(_["a"])(et,Ke,Ye,!1,null,"6f92a449",null)),at=tt.exports;f()(tt,"components",{QCheckbox:$["a"],QBtn:p["a"],QIcon:ve["a"]});var nt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"capacitor-test"},[a("q-input",{attrs:{value:e.forceLogin,type:"checkbox",label:"Force Login"},on:{change:e.changeForceLogin}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Network Check"},on:{click:e.checkNetwork}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Homedir Check"},on:{click:e.checkHomedir}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Write to clipboard"},on:{click:e.writeClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Copy from clipboard"},on:{click:e.readClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Crypto"},on:{click:e.checkCrypto}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Simulate wifi/cellular"},on:{click:e.changeNetworkType}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"ReadFile"},on:{click:e.checkReadFile}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"WriteFile"},on:{click:e.checkWriteFile}}),a("div",[a("q-input",{attrs:{type:"text",label:"Filepath"},model:{value:e.filepath,callback:function(t){e.filepath=t},expression:"filepath"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Get file uri"},on:{click:e.getFileUri}})],1),a("div",[a("FollowButton",{attrs:{id:"test",disableFollow:!1}}),a("FileSelector",{on:{select:e.onSelectFile}},[a("q-btn",{attrs:{color:"primary",icon:"folder",label:"File"}})],1)],1),a("div",{staticClass:"debug-logs"},e._l(e.logs,(function(t,n){return a("div",{key:n,staticClass:"log"},[a("span",{staticClass:"log-type"},[e._v(e._s(t.type))]),a("span",{staticClass:"log-value"},[e._v(e._s(t.value))])])})),0)],1)},ot=[],it=a("aa8a"),rt=a("c033"),st=a("a368"),lt=a("a749"),ct={name:"CapacitorCheck",data(){return{logs:[],filepath:"",forceLogin:Je["a"].state.setting.forceLogin,connectionType:"wifi"}},components:{FollowButton:rt["a"],FileSelector:$e["a"]},methods:{log(e,t,...a){this.logs||(this.logs=[]),this.logs.unshift({type:e,value:t}),a.length&&this.logs.unshift({type:e,value:a})},changeForceLogin(e){const t=!this.forceLogin;console.log("vla",e.target.value,this.forceLogin,t),this.forceLogin=t,Je["a"].dispatch("set",{forceLogin:t})},checkHomedir(){G["a"].once("homedir",(e=>this.log("Homedir",e))),G["a"].emit("get-homedir")},checkNetwork(){G["a"].emit("check-network")},onCheckProgress(e){console.log("network check progress",e),this.log(e.type,JSON.stringify(e.result))},onCheckEnd(e){console.log("network check end",e),this.log("isOnline",e.isOnline)},writeClipboard(){const e=Math.random().toString();this.log("Rand string",e),Object(it["b"])(e).then((()=>{this.log("Success",e)})).catch((e=>{this.log("Error",e)}))},async readClipboard(){const e=await Object(it["a"])();e?this.log("Read",e):this.log("Error",e)},onSelectFile(e){this.log("Select file",e,null===e||void 0===e?void 0:e.name,null===e||void 0===e?void 0:e.path,null===e||void 0===e?void 0:e.size)},checkCrypto(){const e=window.crypto;console.log(e),console.log(e.subtle),this.log("subtle",e.subtle),e.subtle&&this.log("digest",typeof e.subtle.digest)},async changeNetworkType(){const e="wifi"===this.connectionType?"cellular":"wifi";Object(lt["a"])({connected:!0,connectionType:e}),await new Promise(setTimeout);const t=await st["Network"].getStatus();this.connectionType=t.connectionType,this.log("Network status",t)},async checkReadFile(){const e=await st["Filesystem"].readFile({path:"some-file.txt",directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8});this.log("Read",e)},async checkWriteFile(){const e=Math.floor(5e4*Math.random())+12e3;await st["Filesystem"].writeFile({path:"some-file.txt",data:e.toString(),directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8}),this.log("Write",e)},async getFileUri(){this.log("Raw",this.filepath);const e=await st["Filesystem"].getUri({path:this.filepath});this.log("URI result",e)}},mounted(){G["a"].on("check-network-result",this.onCheckProgress),G["a"].on("check-network-end",this.onCheckEnd),Object(K["a"])()&&st["Network"].getStatus().then((e=>{this.connectionType=e.connectionType}))},beforeDestroy(){console.log("unmount check"),G["a"].off("check-network-result",this.onCheckProgress),G["a"].off("check-network-end",this.onCheckEnd)},watch:{forceLogin(e){console.log("change",e)}}},dt=ct,ut=(a("b1d8"),Object(_["a"])(dt,nt,ot,!1,null,"a7504d8e",null)),_t=ut.exports;f()(ut,"components",{QInput:P["a"],QBtn:p["a"]});var pt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:!e.floating,expression:"!floating"}]},[a("ThemeEditor",{attrs:{inner:!0},on:{show:e.handleShow}})],1)},mt=[],ht={name:"ThemeTabPanel",data(){return{floating:this.$theme.hasFloatingEditor()}},methods:{handleShow(){this.floating=!0,this.$theme.showFloatingEditor({onClose:()=>{this.floating=!1}})}}},gt=ht,ft=Object(_["a"])(gt,pt,mt,!1,null,null,null),bt=ft.exports,yt={name:"Development",components:{BasicPanel:y,ThemeTabPanel:bt,PaymentMode:Ge,AccountTabPanel:I,AmplifyTabPanel:B,DevInfoTabPanel:te,UrlConvert:le,LibraryData:Oe,LibraryPreload:at,CapacitorTest:_t},data(){const e=[{name:"BasicPanel",icon:"developer_mode",label:"BasicPanel"},{name:"accountInfo",icon:"account_circle",label:"Account Info"},{name:"amplify",icon:"developer_board",label:"Amplify"},{name:"capacitorTest",icon:"app_settings_alt",label:"Capacitor test"},{name:"devInfo",icon:"info",label:"Dev Info"},{name:"urlConvert",icon:"link",label:"Alphabiz URL Convert"},{name:"libraryData",icon:"video_library",label:"Library"},{name:"libraryPreload",icon:"cloud_download",label:"Library Preload"},{name:"payment_mode",icon:"account_balance_wallet",label:"Payment Mode"},{name:"theme_panel",icon:"palette",label:"Theme Panel"}];return{tabs:e,currentTab:e[0].name,isElectron:Object(l["isElectron"])()}}},vt=yt,wt=(a("5bb9"),a("74cb")),kt=a("ec78"),St=a("917f"),Ct=a("c72d"),xt=Object(_["a"])(vt,n,o,!1,null,null,null);t["default"]=xt.exports;f()(xt,"components",{QCard:T["a"],QTabs:wt["a"],QTab:kt["a"],QSeparator:m["a"],QTabPanels:St["a"],QTabPanel:Ct["a"]})},"3a211":function(e,t,a){"use strict";a("10e1")},"3a62":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"audio-info-container"},[a("p",{staticClass:"info"},[e._v(e._s(e.$t("this_is_an_audio_file")))]),a("img",{attrs:{src:e.icon,alt:"favicon",width:"100px"}})])])},o=[],i={name:"AudioInfo",components:{},props:{show:{type:Boolean}},data(){return{icon:"developer/assets/icon-256.png"}},created(){},mounted(){},computed:{},methods:{}},r=i,s=(a("eb21"),a("2b5f")),l=Object(s["a"])(r,n,o,!1,null,"d5366250",null);t["a"]=l.exports},"3aea":function(e,t,a){"use strict";a.d(t,"h",(function(){return c})),a.d(t,"g",(function(){return d})),a.d(t,"f",(function(){return u})),a.d(t,"e",(function(){return _})),a.d(t,"b",(function(){return h})),a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));var n=a("5584"),o=a("d710"),i=a.n(o),r=a("36a1"),s=a("d558"),l=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};function c(e,t){return l(this,void 0,void 0,(function*(){if(Object(s["a"])()){const{Filesystem:n,Directory:o,Encoding:i,Share:r}=yield Promise.resolve().then(a.bind(null,"a368")),s=yield n.writeFile({path:t,data:e,directory:o.Cache,encoding:i.UTF8});return s.uri?(console.log("Save file result",s),(yield r.canShare()).value&&r.share({files:[s.uri],dialogTitle:"Save"}),s):console.log("Failed to save",t)}const n=new Blob([e]),o=document.createElement("a"),i=URL.createObjectURL(n);o.href=i,o.download=t,document.body.appendChild(o),o.click(),setTimeout((function(){document.body.removeChild(o),window.URL.revokeObjectURL(i)}),0)}))}function d(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve("")}function u(e){var t;const a=(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||"",o=e.match(/m=application\s(\d+)\s(\S+)/),i=(null===o||void 0===o?void 0:o[1])||"0",r=(null===o||void 0===o?void 0:o[2])||"unknown type";return n["a"].getters.isDevMode?`${a}:${i} (${r})`:`${a.substring(0,4)+"*"} (${r})`}function _(e){var t;return(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||""}const p=["?","|","*","!",":",'"',":","<",">","/","/"],m=["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"];function h(e){let t=e.replace(/\s*\/\s*/g,"_").replace(/\s*\\\s*/g,"_").replace(/(\s|\.)+$/,"");for(const n of m)while(t.startsWith(n))t=t.replace(n,"");const a=t.split("");for(let n=0;nt.id===e));if(!t)return null;const a=["id","title","soul"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&");return`/library/channel?${a}`}function f(e){if(!e.startsWith(`${i.a.shortProtocol}`))return null;const[t,a,n]=e.replace(`${i.a.shortProtocol}-library://`,"").split("/");return t&&a&&n?{type:t,title:a,id:n}:null}function b(e){return e?e.replace(/ /g," ").trim():""}},"3b4b":function(e,t,a){"use strict";a("9c3b")},"3c15":function(e,t,a){"use strict";a("eec3")},"3c8a":function(e,t,a){"use strict";a("6755")},"3d18":function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return g}));a("de6c"),a("a1c1");const n=a("c577"),o=a("61af"),{exec:i,spawn:r}=a("61af"),s="win32"===e.platform,l="darwin"===e.platform,c=new Map([["VLC Player",{win:"vlc.exe",winRegistry:["VLC.mp4","PlayWithVLC"],drawin:"VLC.app"}],["GOM Player",{win:"GOM.exe",drawin:"GOM Player.app"}],["PotPlayer",{win:"PotPlayerMini64.exe"}],["Kodi",{win:"kodi.exe",drawin:"Kodi.app"}],["KMPlayer",{win:"KMPlayer64.exe",drawin:"KMPlayer.app"}],["SMPlayer",{win:"smplayer.exe",drawin:"SMPlayer.app"}],["MediaMonkey",{win:"MediaMonkey.exe"}],["AllPlayer",{win:"ALLPlayer.exe"}],["5KPlayer",{win:"5KPlayer.exe",drawin:"5KPlayer.app"}],["MPC-HC",{win:"mpc-hc64.exe"}]]),d=async()=>new Promise((e=>{const t=[];if(s){const a={label:"Media Player",value:"Media Player"},i=u();i&&t.push(a);const r=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});r.values(((a,n)=>{if(a)return e(!1);for(let e=0;e{a.win&&new RegExp(a.win).test(n[e].name)&&(o.existsSync(n[e].name)?t.push({label:i,value:i}):console.log("player file does not exist"))}));e(t)}))}else l?o.readdir("/Applications/",((a,n)=>{if(a)return console.error(`error: ${a}`),e(!1);c.forEach(((e,a)=>{e.drawin&&new RegExp(e.drawin).test(n)&&t.push({label:a,value:a})})),e(t)})):e(!1)})),u=()=>{const t=e.arch;let a;return a="x64"===t?"C:\\Program Files\\Windows Media Player\\wmplayer.exe":"C:\\Program Files(x86)\\Windows Media Player\\wmplayer.exe",o.existsSync(a)?a:""},_=async e=>new Promise((t=>{if(s){if("Media Player"===e){const e=u();return t(e||!1)}const a=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});a.values(((a,n)=>{if(a)return t(!1);if(!c.get(e))return t(!1);const i=c.get(e).win;for(let e=0;e{let a;if(s){if(!c.get(e))return;const n=c.get(e).winRegistry;if(!n)return;if("VLC Player"===e){const e=t.slice(2+(t.lastIndexOf(".")-1>>>0));n[0]=`VLC.${e}`,a=[...n]}}return a},m=async e=>new Promise((t=>{if(!e)return t(!1);if(s){const a=new n({hive:n.HKLM,key:`\\SOFTWARE\\Classes\\${e[0]}\\shell\\${e[1]}\\command`});a.values(((e,a)=>{if(e)return t(!1);const n=a[0].value.match(/-(?:-\w+)+/gm);t(n)}))}})),h=async(e,t,a)=>new Promise((n=>{let o,i;s?(o=e,i=a?[...a,t.replace("/","\\")]:[t.replace("/","\\")]):(o="open",i=["-a",e,t]),console.log("openPlayer:",o,i);const l=r(o,[...i]);l.on("error",(e=>{n(!1),console.log(`子进程错误,错误码 ${e}`)})),l.unref(),n(!0)})),g=async(e,t)=>{if("System Default"===e){const{shell:e}=a("b052");return e.openPath(t).catch((e=>{console.log("openPath err",e)}))}const n=await _(e);let o=!1;if(n){const a=p(e,t);let i;a&&(i=await m(a)),o=await h(n,t,i),console.log("openPlayer:"+o)}return o}}).call(this,a("28d0"))},"3d2b":function(e){e.exports=JSON.parse('{"lib_index":"家","lib_edit":"公開","lib_publish":"公開","lib_explore":"探検する","lib_following":"続く","lib_favorite":"地元のお気に入り","lib_local_favorites":"地元のお気に入り","lib_channel":"チャネル","lib_submit":"送信","lib_from_network":"ネットワークから分散データベースを使用する","welcome_to_lib":"${displayName} メディア ライブラリへようこそ","register_or_login":"登録/ログイン","lib_recommend":"推薦する","lib_recommend_desc":"${displayName} ライブラリへようこそ!このライブラリはネットワークからの分散データベースを使用します。使用を開始するには、いくつかのチャネルをフォローする必要があります。","follow_any_channel_to_continue":"続行するには任意のチャンネルをフォローしてください","follow_channels_and_continue":"{0} チャンネルをフォローして続行","show_more_for_me":"もっと見せて","no_more_recommend":"もうお勧めしません","key":"鍵","create_key":"キーの作成","save_key":"キーを保存","save_key_file":"キーをファイルとして保存しますか?","import_key":"インポートキー","import":"輸入","invalid_key":"無効キー","back_to_top":"トップに戻る","search_for_channel":"チャンネルIDを検索","search_channel_no_result":"ID {0} のチャンネルが見つかりません","please_input_channel_id":"チャンネルIDを入力してください","welcome_help_text":"これは分散型メディア ライブラリです。必要です\\n このデータベースのアカウントを作成します。私達はします\\n 個人キーを自動的に生成します。\\n すでにキーを持っている場合は、インポートすることもできます\\n それはここです。","welcome_key_text":"ログインしたら[SAVE KEY]ボタンをクリックしてください。\\n 右下隅にあるをクリックして秘密キーを保存します。\\n キーを紛失した場合、再度ログインできなくなる場合があります。","redirect_to_recommend":"どのチャンネルもフォローしていないようです。 [探索]ページにリダイレクトします。","channel":"チャネル","follow":"従う","unfollow":"フォローを解除する","following":"続く","share":"共有","unfollow_confirm":"このチャンネルのフォローを解除してもよろしいですか?タイムライン内のこのチャンネルの投稿はすべて削除されます。","follow_failed_hint":"操作はバックグラウンドでまだ保留中です。長時間操作が適用されなかった場合は、アプリを再起動して再度お試しください。","block":"ブロック","unblock":"ブロックを解除する","blocked":"ブロックされました","block_channel":"このチャンネルをブロックする","block_channel_confirm":"チャンネルをブロックするとタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","block_creator":"このチャンネルの作成者をブロックする","unblock_creator":"このチャンネルの作成者のブロックを解除する","block_creator_confirm":"クリエイターをブロックすると、このクリエイターが作成したすべてのチャンネルがタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","share_url_copied":"共有 URL がクリップボードにコピーされます","follow_time":"フォロータイム","update_time":"更新時間","search":"検索","type":"タイプ","added":"追加した","click_to_task":"クリックしてタスクに移動します","lib_already_added":"このビデオはすでに追加されています","description":"説明","poster":"ポスター","channel_poster":"チャンネルポスター","preview":"プレビュー","creator":"クリエイター","creator_detail":"クリエイター詳細","loading_creator":"クリエイター情報を読み込み中","wait_for_creator_loaded":"クリエイター情報が読み込まれるまでお待ちください。","follower":"フォロワー","followers":"フォロワー","follower_list":"フォロワーリスト","user":"ユーザー","channel_title":"チャンネルタイトル","channel_id":"チャンネルID","post_title":"記事のタイトル","post_id":"投稿ID","import_data_from_excel":"Excelからデータをインポート","set_excel_keys":"Excelのキーを設定する","excel_import_succeded":"Excelのインポートに成功しました","excel_import_success_msg":"{0} 行は追加する準備ができています。{1} は無効で、{2} の重複項目は無視されます","cannot_find_channel":"チャンネルが見つかりません","cannot_find_posts":"投稿が見つかりません","add_channel":"チャンネルを追加","add_post":"投稿を追加","edit_channel":"チャンネルを編集する","channel_setting":"チャンネル設定","edit_post":"投稿を編集する","edit_posts":"投稿を編集する","channel_detail":"チャンネル詳細","remove":"取り除く","remove_channel":"チャンネルを削除する","remove_channel_confirm":"この投稿を削除してもよろしいですか?これは回復できません。","remove_post":"投稿を削除する","remove_post_confirm":"このチャンネルを削除してもよろしいですか?これは回復できません。","preview_mode":"プレビューモード","preview_mode_desc":"これはチャンネルのプレビューです。映画のすべての料金がここに表示されます。","edit_user_profile":"ユーザープロファイルを編集する","name":"ニックネーム","avatar":"アバター","no_following":"フォローしているチャンネルはありません。クリックして移動","no_recommend":"おすすめチャンネルはありません。クリックして移動","first_recomment_msg":"初めてアプリを起動する場合は、時間がかかる場合があります。","invalid_image":"無効な画像です","image_not_reachable":"この画像の URL にはアクセスできません。","channel_not_found":"チャンネルが見つかりません","cannot_get_channel_info":"チャンネル情報を取得できません。このチャンネルは作成者によって削除され、利用できなくなる可能性があります。","validate_error":"検証エラー","validate_user_name_no_space":"ユーザー名にはスペースを含めないでください","validate_url_no_space":"URL にスペースを含めないでください","validate_user_name_length":"ユーザー名の長さは {0} から {1} の間である必要があります","validate_user_desc_length":"ユーザーの説明は {0} 文字以下にしてください","validate_user_avatar_url":"ユーザーのアバターは 2048 文字未満の URL である必要があります","validate_channel_title_length":"チャンネルタイトルの長さは 1 ~ 100 にする必要があります","validate_channel_desc_length":"チャネルの説明の長さは 10 ~ 300 にする必要があります","validate_channel_image_url":"チャンネル プレビューの URL は 2048 文字未満である必要があります","validate_post_title_length":"投稿タイトルの長さは 1 ~ 100 にする必要があります","validate_post_desc_length":"投稿の説明の長さは 10 ~ 300 にする必要があります","validate_post_image_url":"ポスターの URL は 2048 文字未満である必要があります","validate_post_url":"無効な ${displayName} URL","validate_post_url_length":"${displayName} URL は 2048 文字以下にしてください","film_rate":"フィルムレート","set_film_rate":"フィルムレートを設定する","select_a_rate_before_enter":"メディア ライブラリに入る前に、フィルム レートを選択する必要があります。","library_available_rate":"図書館利用可能なフィルム料金","rate_g":"G – 一般視聴者","rate_g_desc":"すべての年齢層が受け入れられます。お子様が閲覧することで保護者を不快にさせるような内容は一切ありません。","rate_pg":"PG – 保護者による指導の推奨","rate_pg_desc":"一部の教材はお子様には適さない場合があります。保護者らは「保護者指導」を求めた。親が幼い子供にとって好まない内容が含まれる場合があります。","rate_pg_13":"PG-13 – 保護者は強く注意してください","rate_pg_13_desc":"一部のコンテンツは 13 歳未満の子供には不適切である可能性があります。保護者は注意することをお勧めします。内容によっては、10 代未満のお子様には不適切な場合があります。","rate_r":"R – 制限付き","rate_r_desc":"17 歳未満の場合は、親または成人の保護者の同伴が必要です。一部成人向けの内容が含まれております。保護者の方は、小さなお子様を連れて行く前に、この映画について詳しく学ぶことをお勧めします。","rate_nc_17":"NC-17 – 大人限定","rate_nc_17_desc":"17 歳以下は入場できません。明らかに大人っぽい。お子様のご入場はできません。","set_as_private":"プライベートとして設定","hide_in_explore":"探索ページでこのチャンネルを非表示にする","hidden":"隠れた","select_a_rate":"フィルム料金を選択してください","select_from_tasks":"タスクから選択","import_from_magnet":"マグネットからインポート:?...","input_magnet_url":"入力マグネット:? URL","task_title":"タスクのタイトル","set_title":"タイトルを設定する","add_to_local_favorites":"ローカルのお気に入りに追加","remove_from_local_favorites":"ローカルのお気に入りから削除","removed_favorite":"お気に入りを削除しました","import_or_export_favorites":"お気に入りのインポート/エクスポート","export_local_favorites":"ローカルのお気に入りをバックアップとしてエクスポート","import_favorites_file":"お気に入りファイルをインポートする","not_a_favorite_file":"このファイルはお気に入りのバックアップ ファイルではありません","connection_status":"接続ステータス","gun_server_list":"キャッシュノード","custom_nodes":"カスタムキャッシュノード","custom_nodes_hint":"カスタム キャッシュ ノードはアプリの再起動後に適用されます","wait_for_reboot":"再起動を待っています...({seconds}s)","reboot_now":"今すぐ再起動してください","reboot_later":"後で再起動します","peer_list":"ダイレクトノード","server":"ノードURL","peer":"ピア","peer_id":"ノードID","connection":"繋がり","data_source":"情報元","sync":"同期","syncing":"同期中","sync_completed":"同期が完了しました","got_all_post":"すでにすべての投稿を取得しています","placeholder_channel_title":"あなたのチャンネル名","placeholder_channel_desc":"このチャンネルについての説明","placeholder_post_title":"映画名(年)","placeholder_post_desc":"この映画についての説明","private_channel":"プライベートチャンネル","creator_blocked":"クリエイターがブロックされました","go_to_library":"図書館に行きますか?","go_to_library_channel_msg":"ライブラリ チャンネル {0} に行きますか?","magnet_does_not_have_name":"この磁石:? URL には名前がありません。最初に投稿のタイトルを追加する必要があります。","no_available_post":"利用可能なポストがありません","following_channel_no_post":"フォローしているすべてのチャンネルには利用可能な投稿がありません。ネットワークエラーが原因である可能性があります。すでにいくつかのチャンネルをフォローしている場合、投稿は後で読み込まれる可能性があります。","share_to_library":"ライブラリに共有する","quick_start":"クイックスタート","quick_start_desc":"タスクまたはファイルを使用して投稿の作成を開始します","select_file":"ファイルを選ぶ...","select_folder":"フォルダーを選択...","post_options":"投稿オプション","channel_options":"チャンネルオプション","create_new_channel":"新しいチャンネルを作成する","use_existed_channel":"既存のチャネルを使用する","select_existed_channel":"既存のチャンネルを選択","uploaded_by":"{title} が {name} によってアップロードされました","created_by":"{title} 作成者: {name}","creating_new_channel":"新しいチャンネルを作成しています...","created_new_channel":"新しいチャンネルが作成されました","creating_new_post":"新しい投稿を作成しています...","created_new_post":"新しい投稿が作成されました","create_new_post":"新しい投稿を作成する","quick_start_timeout":"{0} タイムアウト。ネットワークエラーが原因である可能性があります。後でもう一度試してください。","file_too_large":"あまりにも大きなファイル","file_too_large_msg":"このファイルは 4GB ({size}) より大きいため、タスクの準備に時間がかかる可能性があります。続けてもよろしいですか?","resolving_folder_files":"フォルダー ファイルを解決しています...","folder_too_large":"フォルダーが大きすぎます","folder_too_large_msg":"このフォルダー内のファイルは 4GB (合計 {size}) を超えており、タスクの準備に時間がかかる可能性があります。アップロードしてもよろしいですか?","creating_new_task":"新しいタスクを作成しています...","cannot_create_task":"タスクを作成できません","cannot_create_task_msg":"何らかの誤差が生じる可能性があります。タスクが正しく作成されていれば、後でタスク リストを確認できます。","cannot_get_task_name":"タスク名を取得できません。最初に 1 つを入力する必要があります。","remove_old_task":"古いタスクを削除する","remove_old_task_desc":"Web モードでは、一度に 1 つのタスクしか作成できません。古いタスクを削除しますか?","subtitle_list":"字幕リスト","optional":"オプション","with_subtitle":"{language} 字幕付き","maximumSubtitleNum_limit":"字幕の数が上限に達しました","add_subtitle_url":"字幕のダウンロードリンクを追加","cannot_add_subtitle":"字幕の追加に失敗しました","cannot_add_subtitle_msg":"字幕言語が選択されていないか、ダウンロード リンクが無効です。","support_subtitle_type":"srt および vtt 形式の字幕のみがサポートされています。","recommend_opensubtitles":"www.opensubtitles.org にある字幕のダウンロード リンクまたは ID を使用することをお勧めします。","take_down":"降ろす","serious_violation":"重大な違反","copyright_disputes":"著作権紛争","adults_only":"大人だけ","takedown_reason":"削除の理由","takedown_mode":"テイクダウンモード","admins":"管理者","takedown_user":"このクリエイターを削除する","takedown_channel":"このチャンネルを削除する","takedown_post":"この投稿を削除する","select_takedown_reason":"削除理由を選択してください","takedown_invalid_reason":"無効な削除理由","takedown_invalid_user_id":"無効なユーザーIDです。 ID には 87 文字を含める必要があります","takedown_invalid_channel_id":"無効なチャンネルIDです。 ID には 20 文字を含める必要があります","takedown_invalid_post_id":"投稿IDが無効です。 ID には 20 文字を含める必要があります","takedown_management":"管理を削除する","users":"ユーザー","channels":"チャンネル","posts":"投稿","you":"あなた","preset":"プリセット","admin":"管理者","committee":"委員会","about_takedown_mode":"テイクダウンモードについて:\\nプリセット: Github リポジトリで設定されます。それらはすべてライブラリから削除されます。\\n管理者: 管理者が投票したいずれかが削除されます。\\n委員会: 管理者投票の少なくとも半数が削除されます。","cannot_edit_preset":"この行はプリセット行であるため編集できません","cannot_edit_not_vote":"この行は投票していないため編集できません","remove_vote":"投票を削除します","post_preload_failed":"この投稿のプリロードに失敗しました。ダウンロード リンクが古い可能性があるため、この投稿はすぐに再生できません。","about_cache_node":"キャッシュノードについて","edit_cache_node":"キャッシュノードの編集","create_cache_node":"キャッシュノードの作成","about_cache_node_desc":"${displayName} はガン サーバーをキャッシュ ノードとして使用します。事前設定でカスタムノードを編集できます","learn_how_to_deploy_gun":"独自のガンサーバーを展開する方法を学ぶ","repeat_add":"タスクが追加されました。再度追加しないでください","upload":"アップロード","download":"ダウンロード","delete":"消去","delete_task":"タスクの削除","delete_confirm_message":"このタスクを削除しますか?これは取り消し不可能です","also_delete_files":"ファイルも削除","default_delete_files":"削除タスク後にダウンロードしたファイルをデフォルトで削除する","not_now":"今はやめろ","delete_autoupload_confirm":"このタスクには、自動アップロード ディレクトリに配置したファイルが含まれています。このタスクを削除すると、ファイルも削除されます。","delete_anyway":"とにかく削除する","upload_too_many_files":"アップロードするファイルが多すぎます","ask_if_unlimit_upload_amount":"自動アップロード ディレクトリに含まれるファイルが多すぎます。アップロード量制限を無効にしますか? ※パフォーマンス上の問題が発生する可能性があります","disable_limitation":"制限を無効にする","not_length":"マルチファイル操作は現在サポートされていません。ご協力ください。","download_torrent":"ダウンロードファイル","upload_torrent":"ファイルをアップロードする","files":"ファイル","file":"ファイル","folder":"フォルダ","start_all":"すべてを開始する","pause_all":"すべて一時停止する","remove_all":"すべて削除する","upload_all":"すべてアップロードする","clear_history":"履歴をクリア","pause_all_finish_payments":"これですべての支払いが完了します。","accelerating":"加速中","link_task":"リンクタスク","torrent_task":"ファイルタスク","ok":"OK","cancel":"キャンセル","download_directory_position":"ダウンロードディレクトリの位置","torrent_file":"タスクファイル","magnetic_link_incorrect":"リンクの形式が正しくありません","delete_fail":"削除失敗","pause":"一時停止","paused":"一時停止中","stop_torrent":"ストップ","seed":"シード","resume":"履歴書","downloading":"ダウンロード中","downloaded":"ダウンロード済み","uploading":"アップロード中","auto_uploading":"自動アップロード","uploaded":"アップロードされました","pending":"他のタスクを待っています","verifying":"検証中","waiting_for_verify":"検証待ち","seeding":"種まき","completed":"完了","status":"スターテス","task_name":"タスク名","size":"サイズ","progress":"進捗","sort":"選別","ascending":"上昇","descending":"降順","file_loading":"ファイルをロード中...","loading":"読み込み中","unknown_status":"未知","play_while_downloading":"遊ぶ...","upload_or_play":"アップロード/再生","play":"遊ぶ","ask_if_upload_file":"ファイルをアップロードする?","ask_if_upload_or_play":"ファイルをアップロードまたは再生しますか?","torrent_error":"タスク追加時のエラー:","no_peers":"{0} 回以上再試行しても使用可能なピアがありません","torrent_exists":"タスクはすでに存在します。","show_origin_torrent":"元のタスク ファイルまたは URL を取得する","show_directory":"この torrent のディレクトリを開く","task_num":"タスク","total_upload_speed":"アップロードの速さ","total_download_speed":"ダウンロード速度","path_missing":"エラー: torrent パスが見つかりません","origin_not_found":"元のタスク情報が見つかりません。","text_copied":"マグナムの URL がクリップボードにコピーされました","copy_magnet_uri":"コピーマグネット:? URI","copy_download_uri":"ダウンロード URI をコピーする","copy_share_uri":"共有URIをコピーする","uri_copied":"URI がクリップボードに正常にコピーされました","uri_copy_failed":"URIのコピーに失敗しました","more":"もっと...","toggle_list_mode":"リストモードの切り替え","comment":"コメント","operations":"オペレーション","open_directory":"ディレクトリを開く","no_downloading_task":"ダウンロードタスクはありません","remove_all_downloading_tasks":"ダウンロードタスクをすべて削除しますか?","remove_all_upload_tasks":"すべてのアップロード タスクを削除しますか?","remove_autoupload_files":"自動アップロードファイルを削除する","remove_all_history":"すべての履歴を削除しますか?","remaining":"残り","created_time":"作成時間","used_time":"使用時間","completed_time":"完了時間","yesterday":"昨日","before_yesterday":"$$$0$$$","earlier":"以前","miss_file":"一部のファイルがありません","delete_miss_file_task":"{0} に欠落しているファイルがあります。","common_peer":"共通ピア","ab_peer":"${displayName} ピア","ab_peer_verified":"確認済み ${displayName} ピア","ab_peer_available":"${displayName} ピアが利用可能","alphabiz_accelerating":"${displayName} 加速","income":"所得","income_info":"収入(今日/合計)","total_income_info":"収入: {0}(今日) / {1}(合計)","login_to_see_income":"ログインして収入統計を確認してください","credit_cost":"信用コスト","downloaded_by_payment":"ペイメントによってダウンロードされました","file_not_found":"このファイルがローカルに見つかりません","no_task":"聞かない","no_matched_task":"一致するタスクがありません","space_not_enough":"ディスク容量が不足しています","need_more_space":"さらに {0} のスペースが必要ですが、現在のディスクには {1} の空き領域があります ({2} は予約されています)。タスクは一時停止されています。ライブラリのプリロードは無効になっています。 [設定 - 詳細]で再度有効にすることができます。","seeders":"シーダー","last_update":"最後の更新","connecting":"接続中","connected":"接続済み","request_timed_out":"リクエストはタイムアウトしました","connection_failed":"接続に失敗しました","invalid_download_url":"無効なダウンロード URL","download_link":"ダウンロードリンク","empty_files":"ディレクトリにファイルがありません","duplicate_task":"タスクの重複","duplicate_tracker":"重複トラッカー","this_task_not_ready":"このタスクは準備ができていません。このタスクを一時停止すると、タスクが直接削除されます。","some_task_not_ready":"一部のタスクは準備ができていません。これらのタスクを一時停止すると、タスクが直接削除されます。","failed_to_delete_files":"ファイルの削除に失敗しました","failed_to_delete_files_desc":"タスクの一部のファイルの削除に失敗しました。手動で削除する必要がある場合があります","unknown_error":"不明なエラー: {0}","more_files_are_not_shown":"(パフォーマンス上の理由から、{0} 以上のファイルは表示されません)","no_available_file":"利用可能なファイルがありません。タスクの準備ができるまでお待ちください。","service_worker_error":"再生のために ServiceWorker をロードできません。お使いのブラウザがこの機能をサポートしていないか、ServiceWorker がアクティブ化されていない可能性があります。このページをリロードして再試行する必要がある場合があります。","add_task_first":"最初にタスクを追加する必要があります。","player_task_time":"プレーヤーはプレイの準備に時間がかかりすぎます。タスクに問題がある可能性があります。","web_mode_hint":"${displayName} の Web モードは WebRTC ピアのみをサポートします。最高のエクスペリエンスを得るには、${displayName} デスクトップ アプリをダウンロードしてください。","web_mode_task_hint":"タスクを追加するには、下のボタンをクリックします。一度に追加できるタスクは 1 つだけです。","save_to_local":"ローカルに保存","save_as_zip":"ZIP 形式で保存","creating_save_file":"保存ファイルを作成しています...","upload_as_one_directory":"1 つのディレクトリとしてアップロードする","upload_as_single_files":"単一ファイルとしてアップロードする","web_mode_upload_single":"Web モードでは 1 つのファイルのみアップロードできます","download_success":"ダウンロードが成功しました","download_fail":"ダウンロードに失敗しました","wait_for_downloaded_to_share":"共有する前に、タスクがダウンロードされるまで待ってください。","download_with_cellular":"携帯電話を使用してタスクをダウンロードする","download_with_cellular_desc":"携帯電話ネットワークを使用しています。携帯電話でタスクをダウンロードすると、携帯通信会社によって追加料金がかかる場合があります。","download_with_cellular_confirm":"携帯電話でもダウンロード可能","language":"言語","appearance":"外観","darkModeSystem":"システム","darkModeLight":"ライト","darkModeDark":"暗い","basic_setting":"基本","hideMenu":"アプリメニューを非表示にする (Windows および Linux のみ)","autoHide":"ウィンドウを自動的に非表示にする","autoStart":"ログイン時に開く","restore":"終了時にウィンドウのサイズと位置を維持する","autoStartUnfinished":"すべての未完了のタスクを自動的に再開します","default_download_path":"デフォルトのパス","download_directory":"ダウンロードディレクトリ","upload_directory":"アップロードディレクトリ","enable_auto_upload":"自動アップロードを有効にする","unlimit_upload_amount":"アップロード量を無制限にする","unlimit_upload_warning":"大量のファイルのアップロードを許可します。これによりパフォーマンスの問題が発生する可能性があります","start":"起動","transport_setting":"伝染 ; 感染","upload_limit":"アップロード制限","download_limit":"ダウンロード制限","payed_user_share_rate":"有料ユーザーシェア率","unlimited":"無制限","limit_input_error":"制限値は正の値である必要があります","BT_setting":"タスクの設定","saveLinkSeed":"リンクをタスクファイルとして保存","autoDownload":"リンクとコンテンツを自動的にダウンロードする","continuousSeeding":"手動で停止するまでシードを継続します","seedSharingRate":"シード率","seedTime":"シード時間 (分)","task_manage":"タスク管理","maximumDownloadNum":"アクティブなタスクの最大数","maximumConnectionsNum":"サーバーあたりの最大接続数","range_error":"範囲は {0} ~ {1} の間でなければなりません","random":"ランダム","breakpointContinuation":"続く","automaticSkip":"タスクを追加した後にダウンロード中を自動的に表示","afterNotification":"ダウンロード完了後の通知","deleteConfirm":"タスクを削除する前に確認は必要ありません","submit":"保存して適用","discard":"破棄","reset":"リセット","reset_all_settings":"すべての設定をリセットしますか?","preferences_resetted":"設定がリセットされました","traditional_chinese":"繁体字中国語","japanese":"日本語","english":"英語","chinese":"簡体字中国語","advancedSettings":"高度な","autoUpdate":"自動更新","autoCheckUpdate":"アップデートを自動的にチェックする","proxy":"プロキシ","useProxyService":"プロキシを有効にする","trackerService":"トラッカーサーバー","recommendUse":"おすすめされた","autoUpdateTrackerServiceList":"トラッカーリストを毎日自動的に更新します","manualUpdateTracker":"手動アップデート","manualUpdateSuccess":"トラッカーサーバーを正常に更新しました","manualUpdateFail":"次からの更新に失敗しました:","listenPort":"リッスンポート","BTlistenPort":"データ送信ポート","DHTlistenPort":"分散ハッシュポート","protocols":"互換性のあるプロトコル","setDefaultClientForFollowingProtocols":"次のプロトコルのデフォルトのクライアントとして設定します","magnetUrl":"磁石","video_file":"ビデオファイル","audio_file":"音声ファイル","security":"安全","impersonateUserAgent":"模擬ユーザーエージェント","RPCauthorizationkey":"RPC シークレット","viewDocument":"RPC シークレット マニュアルを表示する","developer":"デベロッパー","applicationLogPath":"アプリログのパス","downloadSessionPath":"ダウンロードセッションパス","resetDownloadSessionRecord":"ダウンロードセッションをリセットする","restoreInitialSettings":"工場出荷時設定にリセット","preferences_set_successfully":"設定が正常に保存されました。","preferences_set_fail":"設定の保存に失敗しました!","change_not_save":"変更が保存されない","discard_all_changes":"すべての変更を破棄して終了しますか?","stay_in_page":"ページ内に留まる","disk_usage":"ディスクの使用状況","pause_if_less_space":"空き容量が (MB) 未満の場合は一時停止して通知する","default_video_player":"デフォルトのビデオプレーヤー","video_cache_time":"ストリーム再生キャッシュ","minutes":"分","system_default":"システムのデフォルト","media_player":"メディアプレーヤー","library_film_rate":"利用可能なフィルムレート","library_show_explore":"[探索]ページを表示する","library_setting":"ライブラリ設定","library_sync_setting":"ライブラリ同期設定","keychain_sync_status":"キーチェーンの同期ステータス","sync_with_aws":"キーチェーンをアマゾン ウェブ サービスと同期する","backup_to_local":"ローカルファイルへのバックアップ","enable_sync_with_aws":"AWS との同期を有​​効にする","disable_sync_with_aws":"AWS との同期を無効にする","disable_sync_with_aws_desc":"これにより、サーバーに保存されているキーが削除されます。キーをすでにエクスポートしていることを確認してください。","input_independent_password":"独立したパスワードを入力してください","change_independent_password":"独立したパスワードを変更する","password_error":"パスワードエラー","password_invalid":"パスワードが無効です","key_existed":"キーが存在しました","key_not_found":"キーが見つかりません","library_recommend":"図書館のおすすめ","show_all_channels":"ライブラリのおすすめページにすべてのチャンネルを表示する","not_logged_in":"ログインしていない","login_to_continue":"続行するにはログインしてください","mnemonic_code":"ニーモニックコード","wordlist":"単語リスト","restore_code":"コードから復元する","generate_code":"コードを生成する","export_mnemonic_code":"ニーモニックコードのエクスポート","import_mnemonic_code":"ニーモニックコードをインポートする","print":"印刷する","save_as_txt":"txtとして保存","save_as_pdf":"PDFとして保存","from_file":"ファイルから","not_valid_mnemonic_code":"これは有効なニーモニック コードではありません","cannot_parse_code_as_key":"このニーモニック コードをライブラリ キーとして解析できません","import_key_hint":"このキーをインポートしてもよろしいですか?これにより、ライブラリ内の古いキーが回復されます。","import_key_confirm":"はい、インポートします。","library_preload":"ライブラリからタスクをプリロードする","show_preload":"プリロードタスクを表示","set_download":"ダウンロードディレクトリを設定する","set_download_desc":"macOS App Store バージョンの場合、デフォルトのダウンロード ディレクトリはアプリのサンドボックスにあり、アプリのアンインストール後に削除されます。ダウンロード ファイルを保持したい場合は、別のダウンロード ディレクトリを手動で選択する必要があります。","home":"家","home_caption":"ダウンロード/アップロードおよびメディア ファイル","library":"図書館","library_caption":"メディアリソースを調べる","player":"プレーヤー","player_caption":"メディアプレーヤー","credits":"クレジット","credits_caption":"アカウント残高を確認する","account":"アカウント","account_caption":"サインイン/サインアップ/管理","settings":"設定","settings_caption":"アプリ、プレーヤー、アカウントの設定","development":"発達","development_caption":"内部使用のための開発者モード","basic":"基本","basic_caption":"基本設定","advanced":"高度な","advanced_caption":"高度な設定","blockchain":"財布","blockchain_caption":"${displayName} 分散型ウォレット","internal_notice":"内部リリース通知","release_notes":"リリースノート","terms_and_conditions":"規約と条件","license_and_listen_notices":"オープンソースのライセンスとリッスンに関する通知","close":"近い","success":"成功","fail":"失敗","account_email_invalid_address":"無効なメールアドレス","account_email_invalid_domain":"無効なメールドメイン","account_email_unknown_status":"不明なメール配信ステータス","account_email_unavailable_address":"使用できないメールアドレス","account_email_suppressed_address":"抑止されたメールアドレス","account_loading":"読み込み中...","account_is_required":"必要とされている","account_sign_in_your_account":"ログイン","account_username":"ユーザー名","account_username_email_phone":"電話番号またはメールアドレス","account_password":"パスワード","account_new_password":"新しいパスワード","account_re_enter_password":"パスワード再入力","account_password_not_equal":"2 つのパスワードが等しくありません","account_new_password_same":"パスワードは元のパスワードと同じです","account_forgot_your_password":"パスワードをお忘れですか?","account_reset_password":"パスワードを再設定する","account_sign_in":"サインイン","account_signed_in":"サインインしました","account_sign_up":"サインアップ","account_find_your_account":"あなたのアカウントを見つけてください","account_enter_your_username":"電話番号またはメールアドレスを入力してください","account_search":"検索","account_email_sent_tip":"確認コードが記載されたメールがあなたのメールアドレスに送信されました。","account_phone_sent_tip":"確認コードを含む SMS が携帯電話に送信されました。","account_email_phone_sent_tip":"確認コードを含む電子メールと SMS がそれぞれあなたの電子メールと電話に送信されました:","account_software_token_tip":"お使いのアカウントでは MFA が有効になっています。サインインを完了するには、デバイスの電源を入れるか表示して TOTP を入力してください。","account_reset_your_password":"あなたのパスワードをリセット","account_verification_code":"検証コード","account_resend_code":"コードを再送信する","account_code_has_been_resent":"確認コードが再送信されました","account_password_has_been_reset":"パスワードがリセットされました","account_submit":"送信","account_sign_up_your_account":"アカウントにサインアップする","account_fill_required_fields":"以下の必須フィールドに入力します。","account_fill_optional_fields":"以下のオプションのフィールドに入力します。","account_email":"Eメール","account_invitation":"招待","account_invitation_code":"招待コード","account_i_accept":"承諾します","account_license_terms":"ライセンスと規約","account_next":"次","account_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります。","account_verify_fill_optional_fields":"オプションのフィールドを確認して入力します。","account_nickname":"ニックネーム","account_gender":"性別","account_male":"男","account_female":"女性","account_not_say":"言わない","account_birthday":"誕生日","account_phone_number":"電話番号","account_locale":"地元","account_tip_verified":"確認済み、サインイン中...","account_verified":"検証済み","account_unverified":"未確認","account_signed_up":"サインアップ","account_verify_your_identity":"身元を確認する","account_finish":"終了","account_signed_out":"サインアウトしました","account_change_password":"パスワードを変更する","account_change_email":"メールアドレスを変更","account_change_phone_number":"電話番号を変更する","account_sign_out":"サインアウト","account_current_password":"現在のパスワード","account_re_enter_new_password":"新しいパスワードを再入力してください","account_personal_information":"情報","account_edit":"編集","account_reset":"リセット","account_greeting":"こんにちは、","account_cancel":"キャンセル","account_change":"変化","account_not_set":"設定されていません","account_setting":"設定","account_copy_code":"コードをコピーする","account_account_setting":"アカウント","account_task_page":"クレジットタスク","account_setting_caption":"パスワード変更・情報編集","account_security":"安全","account_want_to_join":"参加したいですか?","account_sign_in_now":"ログイン","account_changed":"かわった","account_clipboard_with_invitation_code":"招待コードをコピーしました","account_clipboard_with_code":"コピーされたコード","account_invitation_code_dialog_tip":"招待コードを含む電子メールまたはテキスト メッセージを友達に送信します。","account_available":"利用可能","account_invited":"招待されました","account_used":"使用済み","account_invitation_code_sent":"招待コードが送信されました","account_invitation_channel_required":"少なくとも 1 つの招待チャネルを入力してください","account_no_verification_code":"認証コードが届かないのですが?","account_no_phone_number":"電話番号がありませんか?","account_sign_up_by_email":"メールで登録する","account_no_email":"電子メールがありませんか?","account_sign_up_by_phone_number":"電話番号で登録する","account_no_totp":"TOTPはありませんか?","account_tip_no_totp":"TOTP がない場合は、最初に TOTP を設定してください","account_setup_totp":"TOTPのセットアップ","account_contact_information":"連絡先","account_delete_account":"アカウントを削除する","account_deleted":"削除されました","account_can_not_mfa":"MFA でお困りですか?","account_set_mfa_type":"MFA の構成","account_disable_mfa":"MFA を無効にする","account_disabled_mfa":"無効なMFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"推奨しません","account_oauth_sign_in_with":"{provider} でサインイン","account_sign_in_failed":"サインインに失敗しました","account_tip_oath_sign_up":"現在の {provider} アカウントに対応する電子メール: {email} はまだアカウントを作成していません","account_tip_confirm_delete_account":"現在のアカウントのパスワードを入力して、現在のアカウントの削除を確認します。(削除されたアカウントは復元できません)","account_tip_config_mfa":"二次認証として SMS または時間ベースのワンタイム パスワード (TOTP) を使用することを選択できます。","account_error_can_not_enable_mfa":"MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_sms_mfa":"SMS MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_totp_mfa":"TOTP MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_setup_totp":"Authenticator などのアプリを使用して以下の QR コードをスキャンするか、コードを手動でコピーしてセキュリティ トークンを追加します","account_tip_verify_totp":"TOTP を確認する","account_link_your_social_account":"ソーシャルアカウントをバインドする","account_unlink_your_social_account":"ソーシャルアカウントのバインドを解除する","account_tip_confirm_link":"現在のアカウントを {provider} アカウントにバインドしてもよろしいですか?","account_tip_confirm_unlink":"バインドされた {provider} アカウントをキャンセルしてもよろしいですか?","account_tip_linking":"バインディング...","account_tip_unlinking":"バインドを解除...","account_linked":"バウンド","account_unlinked":"束縛されていない","account_error_can_not_link_to_the_linked_account":"現在のソーシャル アカウントは別のアカウントにバインドされています","account_error_can_not_link_to_the_mismatched_email":"現在のアカウントとソーシャルアカウントのメールアドレスが一致していません","account_error_can_not_link_before_email_verified":"現在のアカウントが確認済みの電子メールにバインドされていないため、ソーシャル アカウントをリンクできません","account_tip_confirm_verify_email_phone":"本人確認のため、現在のアカウントのメールアドレスと電話番号に確認コードを送信するかどうか。","account_tip_confirm_verify_phone":"本人確認のために現在の電話番号に確認コードを送信するかどうか?","account_error_1_message_60_seconds":"60 秒ごとに 1 つの SMS または電子メールのみを送信できます。さらに {delta} 秒待ちます","account_error_10_messages_per_day":"各携帯電話または電子メールで 24 時間以内に送信できるメッセージは 10 件までです","account_error_network":"ネットワークに問題があります。後でもう一度お試しください。","Network Error":"ネットワークに問題があります。後でもう一度お試しください。","account_error_user_not_exist":"ユーザーは存在しません","account_error_incorrect_username_or_password":"ユーザーネームまたはパスワードが違います","account_error_incorrect_original_password":"元のパスワードが間違っています","account_error_incorrect_password":"パスワードが間違っています","account_error_username_not_found":"ユーザー名が見つかりません","account_error_can_not_reset_for_no_verified":"未検証のアカウントのパスワードをリセットできません","account_error_invalid_verification_code":"確認コードが間違っています。もう一度お試しください。","account_error_expired_verification_code":"確認コードの有効期限が切れました。もう一度お試しください。","account_error_password_not_long_enough":"パスワードの長さが足りません","account_error_attempt_limit_exceeded":"試行制限を超えました。しばらくしてからお試しください。","account_error_password_attempts_exceeded":"パスワードの試行回数を超えました。","account_error_invalid_phone_number_format":"電話番号の形式が無効です","account_error_no_cell_phone_prefix":"電話番号のプレフィックスを選択してください","account_error_username_already_exists":"ユーザー名は既に存在します","account_error_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります","account_error_inactive_code":"招待コードは有効化されたコードではありません","account_error_non_existent_code":"招待コードが存在しません","account_error_unexpected":"予期しないエラー","account_error_can_not_change_email_before_phone_bound":"電話番号がバインドされる前に電子メールを変更することはできません","account_error_can_not_change_email_before_unbound_social_account":"ソーシャルアカウントのバインドを解除するまで電子メールを変更することはできません","account_error_can_not_change_phone_before_email_bound":"電子メールがバインドされる前に電話番号を変更することはできません","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA を無効にする前に電子メールまたは携帯電話番号を変更することはできません","account_error_not_supported_yet":"サポートを保留中","account_error_same_email":"新しいメール アドレスは元のメール アドレスと同じにすることはできません","account_error_same_phone":"新しい電話番号を元の電話番号と同じにすることはできません","account_error_email_not_exists":"メールアドレスが存在しません","account_error_email_already_exists":"指定されたメールアドレスを持つアカウントはすでに存在します。","account_error_phone_already_exists":"指定された電話番号を持つアカウントはすでに存在します。","account_error_mfa_token_mismatch":"ソフトウェアトークンコードの不一致","account_error_recaptcha_not_loaded":"ネットワークに問題があります。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_recaptcha_validation_failed":"ReCAPTCHA 検証に失敗しました。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_sign_in_in_progress":"保留中のサインイン試行がすでに進行中です","account_field_range":"{0}-{1} 文字の入力を制限する","account_field_only_alphanumeric":"英数字のみをサポートします","account_field_only_alphanumeric_and_symbol":"英数字と記号のみをサポートします","account_field_only_chinese_alphanumeric_space_underline":"英数字、スペース、アンダースコアのみをサポートします","account_field_prefix_without_number_space":"最初の文字を数字やスペースにすることはできません","account_field_suffix_without_space":"スペースで終わることはできません","account_field_without_repeat_space":"複数のスペースを連続して使用することはできません","account_field_can_not_only_alphanumeric":"文字や数字だけを使用することはできません","account_field_must_have_number_characters":"数字文字が必要です","account_field_verification_code":"認証コードは6桁である必要があります","account_field_invitation_code":"招待コードは英数字である必要があります","account_field_phone_number":"電話番号の形式が無効です","account_invalid_email_format":"無効な電子メール形式","account_sign_out_confirm":"サインアウトしてもよろしいですか?これにより、すべてのタスクが停止します。","account_sign_out_anyway":"とにかくサインアウトしてください","account_signing_out":"サインアウト中...","account_request_save_settings":"設定は保存されません。サインアウトする前に変更を保存する必要があります。","pay":"支払う","pay_with_credit":"ダウンロードの有料化が加速します。約 {0} クレジットが必要です","pay_with_credit_payed":"加速中。 {0} 程度のクレジットがまだ必要です","create_payment":"支払いの作成","pay_target":"目標","pay_for_torrent":"{0} の支払い","your_subid":"あなたのサブID","your_credits":"あなたのクレジット","pay_point_for_data":"{1} データに対して {0} ポイントを支払う","auto_renew":"自動更新を有効にする","transaction_details":"取引詳細","transaction_id":"ID","transaction_payer":"支払者","transaction_payee":"受取人","transaction_category":"カテゴリー","transaction_changed_amount":"変更金額","transaction_meta":"メタ","transaction_status":"スターテス","transaction_creation_time":"作成時間","receipt_code":"受信コード","transfer_amount":"払込金額","code_the_receipt_code":"以下のレシートコードを支払者にコピーしてください","fill_the_receipt_code":"受取人から提供された支払いコードを入力して送金します","expense":"費用","copied":"コピーされました","transfer":"移行","receive":"受け取る","copy":"コピー","withdraw_fund":"資金を引き出す","category_paydata_payer":"データのコスト","category_paydata_payee":"データ収入","category_transfer":"移行","category_bonus":"ボーナス","category_recharge":"リチャージ","status_pending":"保留中","status_completed":"完成した","status_finish":"終了","status_failed":"失敗した","tip_invalid_receiver":"無効な受信機コードです","tip_invalid_amount":"クレジット額は 0 ~ 1000 の範囲の浮動小数点数である必要があります (最小精度は 0.001)。","credit_get_more":"さらにクレジットを取得","credit_no_data":"データなし","credit_loading":"読み込み中...","credit_not_enough_amount":"クレジットが足りません","credit_amount_not_enough":"クレジットが足りません","credit_payee_not_exist":"受取人が存在しません","credit_invalid_amount":"無効なクレジット金額です","credit_can_not_transfer_to_yourself":"自分への転送はできません","credit_latest":"最新","credit_error_network":"ネットワークに問題があります。後でもう一度お試しください。","add_subtitles":"字幕を追加する","open_file":"ファイルを開く...","advanced_options":"高度なオプション","title":"タイトル","location":"位置","subtitle_file":"字幕ファイル","unsupported_subtitle_type":"{0} のファイル タイプはサポートされている字幕タイプではありません","not_default_player":"デフォルトのビデオプレーヤーが設定されていません","this_is_an_audio_file":"これは音声ファイルです","the_added_subtitle_already_exists":"追加されたサブタイトルはすでに存在します","stop_stream_player":"タスクが一時停止または削除されたため、ストリーミング メディアが終了しました","stop_player":"ファイルが削除されたため、プレーヤーは終了しました","playing_timeout_hint":"待ち時間がタイムアウトします。タスクを確認してください","autoplay_hint":"自動再生はブラウザによってブロックされている可能性があります。プレーヤーが再生されていない場合は、画面をクリックして続行してください。","remove_playing_confirm":"{0} はまだ再生中です。削除するとプレーヤーが停止します。本当に削除しますか?","unsupported_in_browser":"ブラウザモードではまだサポートされていません","client":"クライアント","warning":"警告","enable":"有効にする","disable":"無効にする","auto":"自動","encrypt_connection":"接続を暗号化する","encrypted_connection":"暗号化された接続","non_encrypted_connection":"非暗号化接続","connected_wires_not_disconnect":"接続されたワイヤーが切れることはありません","audio":"オーディオ","video":"ビデオ","image":"画像","subtitle":"字幕","zip":"ジップ","text":"文章","unknown":"未知","add":"追加","undo":"元に戻す","backup":"バックアップ","not_default_app":"${displayName} はトレントとメディアのデフォルトのアプリではありません。デフォルトとして設定しますか?","dont_show_again":"二度と表示しないでください","go_to_settings":"設定に移動","about_alphabiz":"${displayName} について","last_check_at":"最終チェック日時","update_channel":"チャンネルを更新する","check_for_update":"更新を確認","checking_for_update":"アップデートをチェックしています...","no_update_available":"利用可能なアップデートはありません","update_available":"利用可能なアップデート","update_now":"今すぐアップデート","update_later":"後で更新","click_to_update":"「今すぐ更新」ボタンをクリックしてダウンロードして更新します","update_failed":"アップデートに失敗しました","update_failed_message":"更新中にエラーが発生しました:","check_shasum_failed":"インストーラーの整合性チェックに失敗しました","downloading_update":"アップデートをダウンロード中...","ready_to_update":"更新の準備ができました","restart_to_update":"アップデートがダウンロードされます。 ${displayName} は更新のためしばらく終了します。","already_latest":"現在のバージョン({0})はすでに最新です","update_timeout":"更新タイムアウト","no_available_release":"利用可能なリリースはありません","no_available_installer":"利用可能なインストーラーがありません","feedback":"フィードバック","select_a_type":"タイプを選択してください","category":"カテゴリー","select_a_category":"カテゴリーを選ぶ","require_title":"タイトルは必須です","describe_your_problem":"問題を説明してください","report_a_bug":"バグを報告","request_a_new_feature":"新しい機能をリクエストする","download_or_upload":"ダウンロードアップロード","others":"その他","submit_with_system_info":"システム情報を含めて送信する","submit_feedback":"フィードバックを送信","tweet_us":"ツイートしてください","tweet_too_long":"ツイートが長すぎます","delete_characters":"少なくとも {0} 文字を削除してください","rest_characters":"さらに {0} 文字を入力できます","update_alphabiz":"${displayName} を更新します","current_version":"現行版","cancel_update":"更新をキャンセルする","slow_download_speed":"ダウンロードが遅すぎる","slow_download_speed_caption":"インストーラーのダウンロードが遅すぎます。ネットワークのステータスを確認してください","update_canceled":"アップデートがキャンセルされました","current_version_release_time":"現在のバージョンのリリース時期","expired_app":"${displayName} 期限切れ","version_out_of_date":"バージョンが古い","have_to_update":"${displayName} のバージョンは古くなっています。一部のプロトコルまたは API は廃止されました。続行する前に ${displayName} を更新する必要があります。","exit_alphabiz":"終了 ${displayName}","exit_and_update":"終了してアップデートを適用する","new_version_hint":"新しいバージョンが利用可能です","no_new_version":"新しいバージョンは利用できません","current_is_latest":"現在のバージョンはすでに最新です","click_to_check_update":"[CHECK FOR UPDATE]ボタンをクリックしてアップデートを確認してください","download_latest_version_from_website":"公式 Web サイトにアクセスして最新バージョンをダウンロードしてください","to_the_website":"ウェブサイトへ","network_diagnotic":"ネットワーク診断","diagnotic":"診断","click_to_check":"クリックして確認してください","click_to_check_again":"クリックして再度確認してください","checking":"チェック中","online":"オンライン","offline":"オフライン","dns_look_up":"DNSルックアップ","error":"エラー","aws_service":"AWSサービス","network_pings":"ネットワークping","not_found":"見つかりません","packet_loss":"パケット損失","official_site":"オフィシャルサイト","download_test":"ダウンロードテスト","test_task":"テスト タスク {0}","download_failed":"ダウンロードに失敗しました","second_spend":"{0} の支出","open_default_player_failed":"デフォルトのプレーヤーを開けませんでした","copied_to_clipboard":"クリップボードにコピーされました","go_to":"に行く","region_not_available":"地域が利用できません","region_not_available_message":"ごめん!お住まいの地域ではこのアプリを使用できません。このアプリは {0} 秒後に終了します","confirm":"確認","no_available_result":"利用可能な結果がありません","invalid_password_format":"無効なパスワード形式です","invalid_password_format_same":"パスワードは元のパスワードと同じです","error_password":"パスワードエラー","keychain_setting":"キーホルダー","setting_description":"クラウドストレージ: 重要なデータをクラウドに保存します。\\nパスワードの変更: メディア ライブラリ キーのパスワードを変更します。\\nニーモニック: キーを生成および復元するための代替方法。\\nローカル キーのインポート: ローカルに保存されたキーをメディア ライブラリにインポートします。\\nエクスポート キー: 現在のメディア ライブラリ データをローカルまたはクラウドに保存します。\\nキーをクラウドにバックアップ: 現在のメディア ライブラリ データをバックアップのためにクラウドに更新します。","refresh_status":"最新状況","confirm_import_key":"インポートキーの確認","confirm_update_cloud_key":"クラウドにはすでにキーがあります。キーを更新すると、元のキーが上書きされます。クラウドに保存されているキーを更新してもよろしいですか?","export_key_with_cloud":"設定した独自のパスワードを入力してクラウドに保存されているライブラリキーをエクスポートし、ロック解除パスワードでキーファイルをロックします","store_cloud_key_prompt_password":"ライブラリキーをクラウドに保存するための独立したパスワードを入力します","update_cloud_key_prompt_password":"独立したパスワードを設定してライブラリキーを暗号化し、クラウドに更新します","enable_cloud_storage_prompt_password":"クラウドに保存されているキーのパスワードを設定します。これにより、クラウドからキーを取得できます。","input_unlock_password":"ロック解除パスワードを設定する","export_local_prompt_password":"キーファイルを暗号化するには、ロック解除パスワードを設定してください。このパスワードは保存されないため、パスワードを紛失するとライブラリ キーのロックを解除できなくなります。","require_unlock_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","require_independent_password":"独立したパスワードを入力して、クラウドに保存されているキーを取得します","import_local_prompt_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","select_encrypt_mode":"暗号化モードの選択","update_cloud_key":"クラウドに保存されているキーを更新する","backup_to_cloud":"ライブラリキーをクラウドにバックアップする","save_local":"ライブラリキーをローカルの暗号化ファイルとして保存します","create_new_key":"新しいライブラリキーを作成する","creating_lib_key":"ライブラリキーを作成しています...","loading_lib_key":"ライブラリキーをロードしています...","failed_to_create_lib_key":"ライブラリキーの作成に失敗しました","failed_to_load_lib_key":"ライブラリキーのロードに失敗しました","import_local_key":"キーをローカルにインポートする","import_lib_key_from_local":"ライブラリキーをローカルにインポートする","import_from_cloud":"クラウドからライブラリキーをインポートする","create_or_import_key":"ライブラリキーを作成またはインポートする","create_or_import_key_desc":"ライブラリ キーは、分散データベースでコンテンツを取得および公開するために使用される独立したキーです。","store_your_lib_key":"ライブラリキーを保管する","export_cloud_key":"クラウドからキーをエクスポート","export_current_key":"現在のキーをエクスポート","change_password":"パスワードを変更する","enable_cloud_storage":"クラウドストレージを有効にする","disable_cloud_storage":"クラウドストレージを無効にする","disable_cloud_storage_desc":"クラウド ストレージを無効にすると、クラウドに保存されているキーが削除されます。キーがローカルに保存されていることを確認してください。","sync_at":"同期先: {time}","cloud_storage_enabled":"キーチェーンを {storage} と同期する","cloud_storage_disabled":"クラウドストレージが無効になっています","saved_locally":"ローカルに保存されました","export_key":"キーファイルのエクスポート","cloud_independent_password":"クラウドに依存しないパスワード","key_file_unlock_password":"キーファイルのロック解除パスワード","re_enter_unlock_password":"ロック解除パスワードを再入力してください","independent_password_not_enabled":"現在のパスワードはAlphabizアカウントのパスワードです(独自のパスワードは設定されていません)","use_cognito_hash":"Alphabiz アカウントのパスワードを使用する","use_independent_password":"独立したパスワードを使用する","keychain_lib":"ライブラリキー","loading_keychain_state":"キーチェーンを読み込んでいます...","backing_up":"バックアップ...","backup_current_key":"現在のキーをクラウドにバックアップする","cloud_lib_key_not_existed":"ライブラリキーがクラウドに存在しません","open_keychain_file":"キーチェーン ファイルを開く","confirm_open_abk":"ABKファイルを開きますか?","use_the_key":"キーを使用する","backup_the_key":"キーをクラウドにバックアップする","keychain_data_does_not_exist":"キーチェーンデータが存在しません","timeout of 0ms exceeded":"ネットワークに問題があります。後でもう一度お試しください。","XhrError":"ネットワークに問題があります。後でもう一度お試しください。","payer credit amount is not enough":"クレジットが足りません","payee does not exist":"受取人が存在しません","block_list_manage":"ブロックリスト管理","blocked_users":"ブロックされたユーザー","blocked_channels":"ブロックされたチャンネル","unblock_user":"ユーザーのブロックを解除する","unblock_channel":"チャンネルのブロックを解除する","no_blocked_user":"ブロックされたユーザーはいません","no_blocked_channel":"ブロックされたチャンネルはありません","field_required":"{0} は必須です","setting":"設定","unknown_media":"不明なメディア","settings_button_visible":"ボタンが表示されます","settings_setting":"設定","settings_playback_rate":"再生速度","settings_subtitle":"字幕","settings_pip":"PiP","settings_fullscreen":"全画面表示","settings_subtitle_options":"字幕オプション","settings_normal":"普通","settings_italic":"イタリック","settings_lighter":"ライター","settings_bolder":"より大胆に","settings_small":"小さい","settings_large":"大きい","about":"について","services":"サービス","hide":"隠れる","hide_others":"他の人を隠す","show_all":"すべて表示する","quit":"やめる","edit":"編集","redo":"やり直し","cut":"切る","paste":"ペースト","select_all":"すべて選択","view":"ビュー","reload":"リロード","toggle_full_screen":"フルスクリーン切り替え","toggle_developer_tools":"開発者ツールの切り替え","window":"窓","minimize":"最小化する","bring_all_to_front":"すべてを前面に出す","help":"ヘルプ","github_repo":"Github リポジトリ","issues":"問題","learn_more":"もっと詳しく知る","learn_spelling":"スペルを学ぶ","lookup_selection":"「{selection}」を調べる","search_with_google":"Googleで検索","save_as":"名前を付けて保存","save_image":"画像を保存","save_image_as":"画像を保存します ...","copy_link":"リンクをコピーする","save_link_as":"リンクを名前を付けて保存 ...","copy_image":"画像をコピー","copy_image_as":"画像をコピー...","copy_image_address":"画像アドレスをコピー","download_complete":"ダウンロード完了","download_complete_message":"{0} がダウンロードされました","is_running":"{0} が実行中です","open":"{0} を開く","launch_problem":"起動の問題","ask_clear_data":"{0} を起動しようとしましたが、数回失敗したようです。\\nすべてのアプリデータをクリアして、後で起動してみますか?","launch_directly":"直接起動","clear_all_data":"すべてのデータをクリア","ask_clear_confirm":"これにより、すべての設定、ログ、ユーザー データが削除されます。\\nこの後、{0} を再度起動する必要がある場合があります。\\nデータを消去してもよろしいですか?","confirm_launch":"いいえ、直接起動します","confirm_clear":"はい、すべてのデータを消去します"}')},"3d7e":function(e,t,a){"use strict";a("b36a")},"3e69":function(e,t,a){},"3fc8":function(e,t,a){"use strict";a("0c2f")},4:function(e,t){},4027:function(e,t,a){"use strict";(function(e){var n=a("7ca3"),o=a.n(n),i=(a("de6c"),a("a1c1"),a("d4b5"),a("c581")),r=a("af04"),s=a("c228"),l=a("072b");const c=Object.values((()=>{const e={};Object.values(s["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})());class d extends i["b"]{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],PHONE_NUMBER:[["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[l["e"].bind(e)]}]}}constructor(e){super(...d.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=d.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class u extends i["a"]{constructor(e,t){if(super({username:new d(e)}),this.assumeData=u.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=s["b"][t])&&void 0!==a?a:s["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(u.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=u.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a])}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const[e,t]=this.items.username.value;console.log("Remove prefix",e,t),this.assume=!1,this.items.username.setMode("GENERAL",t)}get currentMode(){return this.items.username.currentMode}}o()(u,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}}),t["a"]={name:"ForgotPassword",props:{scope:Object},data(){const e=e=>e===this.submitForm.items.password.model||"account_password_not_equal";return{resendInterval:null,resendTimer:0,progress:0,searchForm:new u(this,this.$q.lang.getLocale().toLowerCase()),submitForm:new i["a"]({code:new i["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[l["h"].bind(this)]}),password:new i["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[l["d"].bind(this)]}),reEnterPassword:new i["b"]("",{type:"password",icon:"lock",label:"account_re_enter_password",rules:[l["d"].bind(this),e]})})}},watch:{progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{handleCancel(){0===e&&"PHONE_NUMBER"===this.searchForm.currentMode?this.form.backToGeneralMode():this.progress-=1},async handleSearch(){try{const e=this.searchForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SEND",e.username),this.resendTimer=60,0===this.progress?this.progress+=1:r["a"].showPositive("code_has_been_resent")}catch(e){r["a"].showNegative(e.message),this.searchForm.assume&&this.searchForm.turnToPhoneNumberMode()}},async handleSubmit(){try{const e=this.submitForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SUBMIT",e),r["a"].showPositive("password_has_been_reset"),this.progress=-1}catch(e){r["a"].showNegative(e.message)}},onInput(e){const t=this.searchForm.items.username.currentMode;let a=this.searchForm.items.username.model;if("GENERAL"===t){if(Array.isArray(a)&&(a=a[1]||""),a&&/^\d+$/g.test(a)&&this.searchForm.turnToPhoneNumberMode(),a&&/^\+\d+$/.test(a)){const e=a.substring(1),t=c.find((t=>e.startsWith(t.prefixCode)));if(t){const{prefixCode:a,countryCode:n}=t,o=e.replace(a,""),i=[a,o,n];this.searchForm.turnToPhoneNumberMode(),this.$nextTick((()=>{console.log("To Phone With",i),this.searchForm.items.username.updateModel(i)}))}else console.log(`Cannot find ${e} as prefix`)}}else"PHONE_NUMBER"===t&&(a=this.searchForm.items.username.model[1]||"",(a.includes("@")||a.startsWith("+"))&&this.searchForm.backToGeneralMode())},onPressBack(){const e=this.searchForm.items.username.model;if(Array.isArray(e)){const t=e[1]||"";this.$nextTick((()=>{this.searchForm.items.username.updateModel(t)}))}this.searchForm.backToGeneralMode()}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}}}).call(this,a("28d0"))},4165:function(e){e.exports=JSON.parse('{"lib_index":"บ้าน","lib_edit":"เผยแพร่","lib_publish":"เผยแพร่","lib_explore":"สำรวจ","lib_following":"กำลังติดตาม","lib_favorite":"รายการโปรดในท้องถิ่น","lib_local_favorites":"รายการโปรดในท้องถิ่น","lib_channel":"ช่อง","lib_submit":"ส่ง","lib_from_network":"การใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย","welcome_to_lib":"ยินดีต้อนรับสู่ห้องสมุดสื่อ ${displayName}","register_or_login":"ลงทะเบียน/เข้าสู่ระบบ","lib_recommend":"แนะนำ","lib_recommend_desc":"ยินดีต้อนรับสู่ ${displayName} ห้องสมุด! ห้องสมุดนี้ใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย ในการเริ่มใช้งาน คุณต้องติดตามบางช่อง","follow_any_channel_to_continue":"ติดตามช่องใดก็ได้เพื่อดำเนินการต่อ","follow_channels_and_continue":"ติดตามช่อง {0} และดำเนินการต่อ","show_more_for_me":"แสดงมากขึ้นสำหรับฉัน","no_more_recommend":"ไม่แนะนำเพิ่มเติม","key":"สำคัญ","create_key":"สร้างคีย์","save_key":"บันทึกคีย์","save_key_file":"คุณต้องการบันทึกรหัสของคุณเป็นไฟล์หรือไม่?","import_key":"นำเข้าคีย์","import":"นำเข้า","invalid_key":"กุญแจนี้ใช้ไม่ได้","back_to_top":"กลับไปด้านบน","search_for_channel":"ค้นหารหัสช่อง","search_channel_no_result":"ไม่พบช่องที่มี ID {0}","please_input_channel_id":"โปรดป้อนรหัสช่อง","welcome_help_text":"นี่คือไลบรารีสื่อที่กระจายอำนาจ คุณต้องการ\\n เพื่อสร้างบัญชีสำหรับฐานข้อมูลนี้ เราจะ\\n สร้างรหัสส่วนตัวให้คุณโดยอัตโนมัติ\\n หากคุณมีรหัสอยู่แล้ว คุณสามารถนำเข้าได้เช่นกัน\\n ที่นี่.","welcome_key_text":"เมื่อคุณเข้าสู่ระบบแล้ว โปรดคลิกปุ่ม [SAVE KEY]\\n ที่มุมล่างขวาเพื่อบันทึกคีย์ส่วนตัวของคุณ\\n หากคุณทำกุญแจหาย คุณอาจไม่สามารถเข้าสู่ระบบได้อีก","redirect_to_recommend":"ดูเหมือนว่าคุณไม่ได้ติดตามช่องใดเลย กำลังเปลี่ยนเส้นทางไปยังหน้า [สำรวจ]","channel":"ช่อง","follow":"ติดตาม","unfollow":"เลิกติดตาม","following":"กำลังติดตาม","share":"แบ่งปัน","unfollow_confirm":"คุณแน่ใจหรือไม่ที่จะเลิกติดตามช่องนี้ โพสต์ทั้งหมดของช่องนี้ในไทม์ไลน์ของคุณจะถูกลบออก","follow_failed_hint":"การดำเนินการยังคงค้างอยู่ในพื้นหลัง หากไม่ได้ใช้การดำเนินการเป็นเวลานาน โปรดรีสตาร์ทแอปแล้วลองอีกครั้ง","block":"ปิดกั้น","unblock":"เลิกบล็อก","blocked":"ถูกบล็อก","block_channel":"บล็อกช่องนี้","block_channel_confirm":"ช่องที่ถูกบล็อกจะลบออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","block_creator":"บล็อกผู้สร้างช่องนี้","unblock_creator":"เลิกบล็อกผู้สร้างช่องนี้","block_creator_confirm":"ผู้สร้างบล็อกจะลบช่องทั้งหมดที่สร้างโดยผู้สร้างรายนี้ออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","share_url_copied":"แบ่งปัน URL จะถูกคัดลอกไปยังคลิปบอร์ดของคุณ","follow_time":"ติดตามเวลา","update_time":"เวลาอัปเดต","search":"ค้นหา","type":"พิมพ์","added":"เพิ่ม","click_to_task":"คลิกเพื่อไปที่งาน","lib_already_added":"คุณได้เพิ่มวิดีโอนี้แล้ว","description":"คำอธิบาย","poster":"โปสเตอร์","channel_poster":"โปสเตอร์ช่อง","preview":"ดูตัวอย่าง","creator":"ผู้สร้าง","creator_detail":"รายละเอียดผู้สร้าง","loading_creator":"กำลังโหลดข้อมูลผู้สร้าง","wait_for_creator_loaded":"โปรดรอสักครู่เพื่อโหลดข้อมูลผู้สร้าง","follower":"ผู้ติดตาม","followers":"ผู้ติดตาม","follower_list":"รายชื่อผู้ติดตาม","user":"ผู้ใช้","channel_title":"ชื่อช่อง","channel_id":"รหัสช่อง","post_title":"ชื่อกระทู้","post_id":"รหัสโพสต์","import_data_from_excel":"นำเข้าข้อมูลจาก excel","set_excel_keys":"ตั้งค่าคีย์ excel","excel_import_succeded":"นำเข้า Excel สำเร็จ","excel_import_success_msg":"{0} แถวพร้อมที่จะเพิ่ม {1} ไม่ถูกต้องและ {2} รายการที่ซ้ำกันจะถูกละเว้น","cannot_find_channel":"ไม่พบช่อง","cannot_find_posts":"ไม่พบโพสต์","add_channel":"เพิ่มช่อง","add_post":"เพิ่มโพสต์","edit_channel":"แก้ไขช่อง","channel_setting":"การตั้งค่าช่อง","edit_post":"แก้ไขโพสต์","edit_posts":"แก้ไขข้อความ","channel_detail":"รายละเอียดช่อง","remove":"ลบ","remove_channel":"ลบช่อง","remove_channel_confirm":"คุณแน่ใจหรือไม่ว่าจะนำโพสต์นี้ออก สิ่งนี้ไม่สามารถกู้คืนได้","remove_post":"ลบโพสต์","remove_post_confirm":"คุณแน่ใจหรือว่าต้องการลบช่องนี้ สิ่งนี้ไม่สามารถกู้คืนได้","preview_mode":"โหมดดูตัวอย่าง","preview_mode_desc":"นี่คือตัวอย่างช่องของคุณ อัตราของภาพยนตร์ทั้งหมดแสดงไว้ที่นี่","edit_user_profile":"แก้ไขโปรไฟล์ผู้ใช้","name":"ชื่อเล่น","avatar":"สัญลักษณ์","no_following":"ไม่มีช่องติดตาม คลิกเพื่อข้ามไป","no_recommend":"ไม่มีช่องแนะนำ คลิกเพื่อข้ามไป","first_recomment_msg":"อาจใช้เวลาสักครู่หากนี่เป็นการเปิดแอปครั้งแรก","invalid_image":"รูปภาพไม่ถูกต้อง","image_not_reachable":"ไม่สามารถเข้าถึง URL รูปภาพนี้ได้","channel_not_found":"ไม่พบช่อง","cannot_get_channel_info":"ไม่สามารถรับข้อมูลช่อง ช่องนี้อาจถูกลบโดยผู้สร้างและไม่สามารถใช้งานได้อีกต่อไป","validate_error":"ตรวจสอบข้อผิดพลาด","validate_user_name_no_space":"ชื่อผู้ใช้ไม่ควรมีช่องว่าง","validate_url_no_space":"URL ไม่ควรมีช่องว่าง","validate_user_name_length":"ชื่อผู้ใช้ควรมีความยาวระหว่าง {0} ถึง {1}","validate_user_desc_length":"คำอธิบายผู้ใช้ไม่ควรเกิน {0} อักขระ","validate_user_avatar_url":"อวาตาร์ของผู้ใช้ควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_channel_title_length":"ชื่อช่องควรมีความยาวระหว่าง 1 ถึง 100","validate_channel_desc_length":"คำอธิบายช่องควรมีความยาวระหว่าง 10 ถึง 300","validate_channel_image_url":"การแสดงตัวอย่างช่องควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_title_length":"ชื่อโพสต์ควรมีความยาวระหว่าง 1 ถึง 100","validate_post_desc_length":"คำอธิบายโพสต์ควรมีความยาวระหว่าง 10 ถึง 300","validate_post_image_url":"โปสเตอร์ควรเป็น url ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_url":"URL ${displayName} ไม่ถูกต้อง","validate_post_url_length":"${displayName} URL ไม่ควรเกิน 2,048 อักขระ","film_rate":"อัตราฟิล์ม","set_film_rate":"กำหนดอัตราภาพยนตร์","select_a_rate_before_enter":"คุณต้องเลือกอัตราภาพยนตร์ก่อนเข้าสู่ไลบรารีสื่อ","library_available_rate":"อัตราภาพยนตร์ที่มีอยู่ในห้องสมุด","rate_g":"G – ผู้ชมทั่วไป","rate_g_desc":"รับทุกวัย ไม่มีอะไรที่จะทำให้ผู้ปกครองขุ่นเคืองเมื่อเด็ก ๆ ดู","rate_pg":"PG – ผู้ปกครองแนะนำ","rate_pg_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสำหรับเด็ก ผู้ปกครองควรให้คำแนะนำแก่ผู้ปกครอง อาจมีเนื้อหาบางอย่างที่ผู้ปกครองอาจไม่ชอบสำหรับเด็กเล็ก","rate_pg_13":"PG-13 – ผู้ปกครองควรระมัดระวังเป็นอย่างยิ่ง","rate_pg_13_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสมสำหรับเด็กอายุต่ำกว่า 13 ปี ผู้ปกครองควรระมัดระวัง เนื้อหาบางอย่างอาจไม่เหมาะสมกับเด็กก่อนวัยรุ่น","rate_r":"R – ถูกจำกัด","rate_r_desc":"อายุต่ำกว่า 17 ปีต้องมีพ่อแม่หรือผู้ปกครองที่เป็นผู้ใหญ่มาด้วย มีเนื้อหาสำหรับผู้ใหญ่ ผู้ปกครองควรเรียนรู้เพิ่มเติมเกี่ยวกับภาพยนตร์ก่อนที่จะพาลูกเล็กไปด้วย","rate_nc_17":"NC-17 – สำหรับผู้ใหญ่เท่านั้น","rate_nc_17_desc":"ห้ามใครอายุต่ำกว่า 17 ปีเข้า ผู้ใหญ่ชัดๆ ไม่อนุญาตให้เด็กเข้าพัก","set_as_private":"ตั้งเป็นส่วนตัว","hide_in_explore":"ซ่อนช่องนี้ในหน้าสำรวจ","hidden":"ที่ซ่อนอยู่","select_a_rate":"กรุณาเลือกอัตราภาพยนตร์","select_from_tasks":"เลือกจากงาน","import_from_magnet":"นำเข้าจากแม่เหล็ก:?...","input_magnet_url":"แม่เหล็กอินพุต:? URL","task_title":"ชื่องาน","set_title":"ตั้งชื่อเรื่อง","add_to_local_favorites":"เพิ่มในรายการโปรดในท้องถิ่น","remove_from_local_favorites":"ลบออกจากรายการโปรดในท้องถิ่น","removed_favorite":"ลบรายการโปรดแล้ว","import_or_export_favorites":"นำเข้า/ส่งออกรายการโปรด","export_local_favorites":"ส่งออกรายการโปรดในเครื่องเป็นข้อมูลสำรอง","import_favorites_file":"นำเข้าไฟล์รายการโปรด","not_a_favorite_file":"ไฟล์นี้ไม่ใช่ไฟล์สำรองข้อมูลโปรด","connection_status":"สถานะการเชื่อมต่อ","gun_server_list":"โหนดแคช","custom_nodes":"โหนดแคชที่กำหนดเอง","custom_nodes_hint":"โหนดแคชที่กำหนดเองจะถูกนำไปใช้หลังจากเปิดแอปใหม่","wait_for_reboot":"กำลังรอการรีบูต...({seconds}s)","reboot_now":"รีบูทเดี๋ยวนี้","reboot_later":"รีบูตในภายหลัง","peer_list":"โหนดโดยตรง","server":"โหนด URL","peer":"เพียร์","peer_id":"รหัสโหนด","connection":"การเชื่อมต่อ","data_source":"แหล่งข้อมูล","sync":"ซิงค์","syncing":"กำลังซิงค์","sync_completed":"ซิงค์เสร็จสมบูรณ์","got_all_post":"คุณได้รับโพสต์ทั้งหมดแล้ว","placeholder_channel_title":"ชื่อช่องของคุณ","placeholder_channel_desc":"คำอธิบายเกี่ยวกับช่องนี้","placeholder_post_title":"ชื่อภาพยนตร์ (ปี)","placeholder_post_desc":"คำอธิบายเกี่ยวกับหนังเรื่องนี้","private_channel":"ช่องส่วนตัว","creator_blocked":"ผู้สร้างบล็อก","go_to_library":"ไปห้องสมุด?","go_to_library_channel_msg":"คุณต้องการไปที่ช่องไลบรารี {0} หรือไม่","magnet_does_not_have_name":"แม่เหล็กนี้:? url ไม่มีชื่อ คุณต้องเพิ่มชื่อโพสต์ก่อน","no_available_post":"ไม่มีโพสต์","following_channel_no_post":"ช่องที่คุณติดตามทั้งหมดไม่มีโพสต์ อาจเกิดจากข้อผิดพลาดของเครือข่าย หากคุณเคยติดตามบางช่องแล้ว โพสต์อาจถูกโหลดในภายหลัง","share_to_library":"แบ่งปันไปที่ห้องสมุด","quick_start":"เริ่มต้นอย่างรวดเร็ว","quick_start_desc":"เริ่มสร้างโพสต์ด้วยงานหรือไฟล์","select_file":"เลือกไฟล์...","select_folder":"เลือกโฟลเดอร์...","post_options":"โพสต์ตัวเลือก","channel_options":"ตัวเลือกช่อง","create_new_channel":"สร้างช่องใหม่","use_existed_channel":"ใช้ช่องทางที่มีอยู่","select_existed_channel":"เลือกช่องที่มีอยู่","uploaded_by":"{title} อัพโหลดโดย {name}","created_by":"{title} สร้างโดย {name}","creating_new_channel":"กำลังสร้างช่องใหม่...","created_new_channel":"สร้างช่องใหม่แล้ว","creating_new_post":"กำลังสร้างโพสต์ใหม่...","created_new_post":"สร้างโพสต์ใหม่แล้ว","create_new_post":"สร้างโพสต์ใหม่","quick_start_timeout":"{0} หมดเวลา อาจเกิดจากข้อผิดพลาดของเครือข่าย กรุณาลองใหม่อีกครั้งในภายหลัง.","file_too_large":"ไฟล์ใหญ่เกินไป","file_too_large_msg":"ไฟล์นี้มีขนาดใหญ่กว่า 4GB ({size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจหรือไม่ว่าจะดำเนินการต่อ","resolving_folder_files":"กำลังแก้ไขไฟล์โฟลเดอร์...","folder_too_large":"โฟลเดอร์ใหญ่เกินไป","folder_too_large_msg":"ไฟล์ในโฟลเดอร์นี้มีขนาดใหญ่กว่า 4GB (รวม {size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจว่าจะอัปโหลดหรือไม่","creating_new_task":"กำลังสร้างงานใหม่...","cannot_create_task":"ไม่สามารถสร้างงาน","cannot_create_task_msg":"ซึ่งอาจเกิดจากข้อผิดพลาดบางอย่าง หากงานถูกสร้างขึ้นอย่างถูกต้อง คุณสามารถตรวจสอบรายการงานได้ในภายหลัง","cannot_get_task_name":"ไม่สามารถรับชื่องาน คุณต้องป้อนข้อมูลก่อน","remove_old_task":"ลบงานเก่า","remove_old_task_desc":"โหมดเว็บสามารถสร้างได้ครั้งละหนึ่งงานเท่านั้น คุณต้องการลบงานเก่าหรือไม่?","subtitle_list":"รายการคำบรรยาย","optional":"ไม่จำเป็น","with_subtitle":"พร้อมคำบรรยาย {language}","maximumSubtitleNum_limit":"จำนวนคำบรรยายถึงขีดสุดแล้ว","add_subtitle_url":"เพิ่มลิงค์ดาวน์โหลดคำบรรยาย","cannot_add_subtitle":"ไม่สามารถเพิ่มคำบรรยาย","cannot_add_subtitle_msg":"ไม่ได้เลือกภาษาคำบรรยายหรือลิงก์ดาวน์โหลดไม่ถูกต้อง","support_subtitle_type":"รองรับคำบรรยายในรูปแบบ srt และ vtt เท่านั้น","recommend_opensubtitles":"ขอแนะนำให้ใช้ลิงค์ดาวน์โหลดคำบรรยายหรือรหัสที่ www.opensubtitles.org","take_down":"ลง","serious_violation":"การละเมิดอย่างร้ายแรง","copyright_disputes":"ข้อพิพาทด้านลิขสิทธิ์","adults_only":"ผู้ใหญ่เท่านั้น","takedown_reason":"เหตุผลในการลบออก","takedown_mode":"โหมดลบออก","admins":"ผู้ดูแลระบบ","takedown_user":"ลบผู้สร้างรายนี้","takedown_channel":"ลบช่องนี้","takedown_post":"ลบโพสต์นี้","select_takedown_reason":"เลือกเหตุผลในการลบออก","takedown_invalid_reason":"เหตุผลในการลบออกไม่ถูกต้อง","takedown_invalid_user_id":"รหัสผู้ใช้ไม่ถูกต้อง รหัสควรมีอักขระ 87 ตัว","takedown_invalid_channel_id":"รหัสช่องไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_invalid_post_id":"รหัสโพสต์ไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_management":"จัดการลง","users":"ผู้ใช้","channels":"ช่อง","posts":"กระทู้","you":"คุณ","preset":"ตั้งค่าล่วงหน้า","admin":"ผู้ดูแลระบบ","committee":"คณะกรรมการ","about_takedown_mode":"เกี่ยวกับโหมดลบออก:\\nตั้งค่าล่วงหน้า: กำหนดค่าในที่เก็บ github พวกเขาทั้งหมดจะถูกลบออกจากห้องสมุด\\nผู้ดูแลระบบ: คนใดคนหนึ่งที่ผู้ดูแลระบบโหวตให้จะถูกลบออก\\nคณะกรรมการ: แอดมินอย่างน้อยครึ่งหนึ่งโหวตให้จะถูกลบออก","cannot_edit_preset":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากเป็นแถวที่กำหนดไว้ล่วงหน้า","cannot_edit_not_vote":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากคุณยังไม่ได้ลงคะแนน","remove_vote":"ลบการลงคะแนนของคุณ","post_preload_failed":"โหลดโพสต์นี้ล่วงหน้าไม่สำเร็จ ลิงก์ดาวน์โหลดอาจล้าสมัย ดังนั้นโพสต์นี้จึงไม่สามารถเล่นได้ทันที","about_cache_node":"เกี่ยวกับโหนดแคช","edit_cache_node":"แก้ไขโหนดแคช","create_cache_node":"สร้างโหนดแคช","about_cache_node_desc":"${displayName} ใช้เซิร์ฟเวอร์ปืนเป็นโหนดแคช คุณสามารถแก้ไขโหนดที่กำหนดเองได้ในการตั้งค่าล่วงหน้า","learn_how_to_deploy_gun":"เรียนรู้วิธีการปรับใช้เซิร์ฟเวอร์ปืนของคุณเอง","repeat_add":"เพิ่มงานแล้ว โปรดอย่าเพิ่มอีกครั้ง","upload":"ที่อัพโหลด","download":"ดาวน์โหลด","delete":"ลบ","delete_task":"ลบงาน","delete_confirm_message":"ลบงานนี้ไหม สิ่งนี้ไม่สามารถเพิกถอนได้","also_delete_files":"ลบไฟล์ด้วย","default_delete_files":"เริ่มต้นลบไฟล์ที่ดาวน์โหลดหลังจากลบงาน","not_now":"ไม่ใช่ตอนนี้","delete_autoupload_confirm":"งานนี้มีไฟล์ที่คุณใส่ไว้ในไดเร็กทอรีอัปโหลดอัตโนมัติ การลบงานนี้จะเป็นการลบไฟล์ด้วย","delete_anyway":"ลบต่อไป","upload_too_many_files":"อัปโหลดไฟล์มากเกินไป","ask_if_unlimit_upload_amount":"ไดเร็กทอรีอัปโหลดอัตโนมัติมีไฟล์มากเกินไป คุณต้องการปิดการจำกัดจำนวนการอัปโหลดหรือไม่ *สิ่งนี้อาจทำให้เกิดปัญหาด้านประสิทธิภาพ","disable_limitation":"ปิดการใช้งานข้อ จำกัด","not_length":"ขณะนี้ยังไม่รองรับการทำงานหลายไฟล์ โปรดให้ความร่วมมือ","download_torrent":"ดาวน์โหลดไฟล์","upload_torrent":"อัพโหลดไฟล์","files":"ไฟล์","file":"ไฟล์","folder":"โฟลเดอร์","start_all":"เริ่มต้นทั้งหมด","pause_all":"หยุดทั้งหมด","remove_all":"ลบทั้งหมด","upload_all":"อัปโหลดทั้งหมด","clear_history":"ล้างประวัติ","pause_all_finish_payments":"การดำเนินการนี้จะเสร็จสิ้นการชำระเงินทั้งหมด","accelerating":"กำลังเร่ง","link_task":"งานเชื่อมโยง","torrent_task":"งานไฟล์","ok":"ตกลง","cancel":"ยกเลิก","download_directory_position":"ดาวน์โหลดตำแหน่งไดเร็กทอรี","torrent_file":"ไฟล์งาน","magnetic_link_incorrect":"รูปแบบลิงค์ไม่ถูกต้อง","delete_fail":"ลบล้มเหลว","pause":"หยุดชั่วคราว","paused":"หยุดชั่วคราว","stop_torrent":"หยุด","seed":"เมล็ดพันธุ์","resume":"ประวัติย่อ","downloading":"กำลังดาวน์โหลด","downloaded":"ดาวน์โหลดแล้ว","uploading":"กำลังอัปโหลด","auto_uploading":"อัปโหลดอัตโนมัติ","uploaded":"อัปโหลดแล้ว","pending":"รองานอื่นๆ","verifying":"กำลังตรวจสอบ","waiting_for_verify":"กำลังรอการตรวจสอบ","seeding":"การเพาะเมล็ด","completed":"สมบูรณ์","status":"สถานะ","task_name":"ชื่องาน","size":"ขนาด","progress":"ความคืบหน้า","sort":"เรียงลำดับ","ascending":"จากน้อยไปมาก","descending":"จากมากไปน้อย","file_loading":"กำลังโหลดไฟล์...","loading":"กำลังโหลด","unknown_status":"ไม่ทราบ","play_while_downloading":"เล่น...","upload_or_play":"อัปโหลด / เล่น","play":"เล่น","ask_if_upload_file":"อัพโหลดไฟล์?","ask_if_upload_or_play":"อัปโหลดหรือเล่นไฟล์?","torrent_error":"เกิดข้อผิดพลาดเมื่อเพิ่มงาน:","no_peers":"ลองใหม่มากกว่า {0} ครั้ง แต่ไม่มีเพียร์","torrent_exists":"งานมีอยู่แล้ว","show_origin_torrent":"รับไฟล์งานหรือ URL ต้นฉบับ","show_directory":"เปิดไดเร็กทอรีของทอร์เรนต์นี้","task_num":"งาน","total_upload_speed":"ความเร็วในการอัปโหลด","total_download_speed":"ความเร็วดาวน์โหลด","path_missing":"ข้อผิดพลาด: ไม่พบเส้นทาง torrent","origin_not_found":"ไม่พบข้อมูลงานต้นทาง","text_copied":"Magnum url ถูกคัดลอกไปยังคลิปบอร์ดของคุณ","copy_magnet_uri":"คัดลอกแม่เหล็ก:? ยูอาร์ไอ","copy_download_uri":"คัดลอก URI ดาวน์โหลด","copy_share_uri":"คัดลอก URI ที่ใช้ร่วมกัน","uri_copied":"คัดลอก URI ไปยังคลิปบอร์ดของคุณเรียบร้อยแล้ว","uri_copy_failed":"คัดลอก uri.dll ไม่สำเร็จ","more":"มากกว่า...","toggle_list_mode":"สลับโหมดรายการ","comment":"ความคิดเห็น","operations":"การดำเนินงาน","open_directory":"เปิดไดเรกทอรี","no_downloading_task":"ไม่มีงานดาวน์โหลด","remove_all_downloading_tasks":"นำงานดาวน์โหลดทั้งหมดออกไหม","remove_all_upload_tasks":"นำงานอัปโหลดทั้งหมดออกไหม","remove_autoupload_files":"ลบไฟล์ที่อัปโหลดอัตโนมัติ","remove_all_history":"นำประวัติทั้งหมดออกไหม","remaining":"ที่เหลืออยู่","created_time":"สร้างเวลา","used_time":"เวลาที่ใช้","completed_time":"ครบเวลา","yesterday":"เมื่อวาน","before_yesterday":"{empty}","earlier":"ก่อนหน้านี้","miss_file":"ไฟล์บางไฟล์หายไป","delete_miss_file_task":"มีไฟล์ fome หายไปใน {0}","common_peer":"เพื่อนทั่วไป","ab_peer":"${displayName} เพื่อน","ab_peer_verified":"ยืนยันแล้ว ${displayName} เพียร์","ab_peer_available":"${displayName} เพียร์ที่มีอยู่","alphabiz_accelerating":"${displayName} เร่ง","income":"รายได้","income_info":"รายได้(วันนี้/ทั้งหมด)","total_income_info":"รายได้: {0}(วันนี้) / {1}(ทั้งหมด)","login_to_see_income":"เข้าสู่ระบบเพื่อดูสถิติรายได้","credit_cost":"ต้นทุนเครดิต","downloaded_by_payment":"ดาวน์โหลดโดยการชำระเงิน","file_not_found":"ไม่พบไฟล์นี้ในเครื่อง","no_task":"ไม่มีงาน","no_matched_task":"ไม่มีงานที่ตรงกัน","space_not_enough":"พื้นที่ดิสก์ไม่เพียงพอ","need_more_space":"ต้องการพื้นที่เพิ่ม {0} แต่ดิสก์ปัจจุบันมี {1} ฟรี (สงวน {2}) งานถูกหยุดชั่วคราว การโหลดไลบรารีล่วงหน้าถูกปิดใช้งาน คุณสามารถเปิดใช้งานอีกครั้งได้ใน [การตั้งค่า - ขั้นสูง]","seeders":"เครื่องหยอดเมล็ด","last_update":"การปรับปรุงครั้งล่าสุด","connecting":"กำลังเชื่อมต่อ","connected":"เชื่อมต่อแล้ว","request_timed_out":"คำขอหมดเวลา","connection_failed":"การเชื่อมต่อล้มเหลว","invalid_download_url":"URL ดาวน์โหลดไม่ถูกต้อง","download_link":"ลิ้งค์ดาวน์โหลด","empty_files":"ไม่มีไฟล์ในไดเรกทอรี","duplicate_task":"งานที่ซ้ำกัน","duplicate_tracker":"ตัวติดตามที่ซ้ำกัน","this_task_not_ready":"งานนี้ไม่พร้อม การหยุดงานนี้ชั่วคราวจะเป็นการลบออกโดยตรง","some_task_not_ready":"งานบางอย่างไม่พร้อม การหยุดงานเหล่านี้จะลบออกโดยตรง","failed_to_delete_files":"ลบไฟล์ไม่สำเร็จ","failed_to_delete_files_desc":"ลบบางไฟล์ของงานไม่สำเร็จ คุณอาจต้องลบออกด้วยตนเอง","unknown_error":"ข้อผิดพลาดที่ไม่รู้จัก: {0}","more_files_are_not_shown":"(ไฟล์เพิ่มเติม ${0} ไม่แสดงเนื่องจากเหตุผลด้านประสิทธิภาพ)","no_available_file":"ไม่มีไฟล์ที่ใช้ได้ กรุณารองานพร้อม","service_worker_error":"ไม่สามารถโหลด ServiceWorker เพื่อเล่นได้ เบราว์เซอร์ของคุณอาจไม่รองรับคุณลักษณะนี้ หรือไม่ได้เปิดใช้งาน ServiceWorker คุณอาจต้องโหลดหน้านี้ใหม่แล้วลองอีกครั้ง","add_task_first":"คุณต้องเพิ่มงานก่อน","player_task_time":"ผู้เล่นใช้เวลาหลายวินาทีในการเตรียมตัวสำหรับการเล่น อาจมีบางอย่างผิดปกติกับงาน","web_mode_hint":"โหมดเว็บของ ${displayName} รองรับเฉพาะ WebRTC เพียร์ เพื่อประสบการณ์ที่ดีที่สุด โปรดดาวน์โหลด ${displayName} Desktop App","web_mode_task_hint":"คลิกปุ่มด้านล่างเพื่อเพิ่มงาน คุณสามารถเพิ่มได้ครั้งละหนึ่งงานเท่านั้น","save_to_local":"บันทึกไปยังท้องถิ่น","save_as_zip":"บันทึกเป็น ZIP","creating_save_file":"กำลังสร้างไฟล์บันทึก...","upload_as_one_directory":"อัปโหลดเป็นไดเร็กทอรีเดียว","upload_as_single_files":"อัปโหลดเป็นไฟล์เดียว","web_mode_upload_single":"คุณสามารถอัปโหลดไฟล์เดียวในโหมดเว็บเท่านั้น","download_success":"ดาวน์โหลดสำเร็จ","download_fail":"การดาวน์โหลดล้มเหลว","wait_for_downloaded_to_share":"โปรดรอให้ดาวน์โหลดงานก่อนแชร์","download_with_cellular":"ดาวน์โหลดงานโดยใช้เซลลูลาร์","download_with_cellular_desc":"คุณกำลังใช้เครือข่ายเซลลูลาร์ การดาวน์โหลดงานด้วยเซลลูลาร์อาจมีค่าธรรมเนียมเพิ่มเติมจากผู้ให้บริการของคุณ","download_with_cellular_confirm":"ยังคงดาวน์โหลดด้วยมือถือ","language":"ภาษา","appearance":"รูปร่าง","darkModeSystem":"ระบบ","darkModeLight":"แสงสว่าง","darkModeDark":"มืด","basic_setting":"ขั้นพื้นฐาน","hideMenu":"ซ่อนเมนูแอพ (Windows & Linux เท่านั้น)","autoHide":"ซ่อนหน้าต่างอัตโนมัติ","autoStart":"เปิดที่เข้าสู่ระบบ","restore":"รักษาขนาดและตำแหน่งของหน้าต่างเมื่อออก","autoStartUnfinished":"ดำเนินงานที่ยังไม่เสร็จทั้งหมดต่อโดยอัตโนมัติ","default_download_path":"เส้นทางเริ่มต้น","download_directory":"ดาวน์โหลดไดเรกทอรี","upload_directory":"อัปโหลดไดเร็กทอรี","enable_auto_upload":"เปิดใช้งานการอัปโหลดอัตโนมัติ","unlimit_upload_amount":"ไม่จำกัดจำนวนอัพโหลด","unlimit_upload_warning":"อนุญาตให้อัปโหลดไฟล์จำนวนมาก ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพ","start":"สตาร์ทอัพ","transport_setting":"การแพร่เชื้อ","upload_limit":"ขีดจำกัดการอัปโหลด","download_limit":"ขีดจำกัดการดาวน์โหลด","payed_user_share_rate":"อัตราส่วนแบ่งของผู้ใช้ที่ชำระเงิน","unlimited":"ไม่ จำกัด","limit_input_error":"จำนวนจำกัดควรเป็นค่าบวก","BT_setting":"การตั้งค่างาน","saveLinkSeed":"บันทึกลิงค์เป็นไฟล์งาน","autoDownload":"ดาวน์โหลดลิงค์และเนื้อหาโดยอัตโนมัติ","continuousSeeding":"เก็บเมล็ดไว้จนกว่าจะหยุดด้วยตนเอง","seedSharingRate":"อัตราส่วนเมล็ด","seedTime":"เวลาเมล็ด (นาที)","task_manage":"การจัดการงาน","maximumDownloadNum":"งานที่ใช้งานสูงสุด","maximumConnectionsNum":"การเชื่อมต่อสูงสุดต่อเซิร์ฟเวอร์","range_error":"ช่วงควรอยู่ระหว่าง {0} ถึง {1}","random":"สุ่ม","breakpointContinuation":"ดำเนินการต่อ","automaticSkip":"แสดงการดาวน์โหลดโดยอัตโนมัติหลังจากเพิ่มงาน","afterNotification":"การแจ้งเตือนหลังจากการดาวน์โหลดเสร็จสิ้น","deleteConfirm":"ไม่จำเป็นต้องมีการยืนยันก่อนที่จะลบงาน","submit":"บันทึกและสมัคร","discard":"ทิ้ง","reset":"รีเซ็ต","reset_all_settings":"รีเซ็ตการตั้งค่าทั้งหมดไหม","preferences_resetted":"รีเซ็ตค่ากำหนดแล้ว","traditional_chinese":"จีนดั้งเดิม","japanese":"ญี่ปุ่น","english":"ภาษาอังกฤษ","chinese":"ภาษาจีนตัวย่อ","advancedSettings":"ขั้นสูง","autoUpdate":"อัปเดตอัตโนมัติ","autoCheckUpdate":"ตรวจสอบการอัปเดตโดยอัตโนมัติ","proxy":"หนังสือมอบฉันทะ","useProxyService":"เปิดใช้งานพร็อกซี","trackerService":"เซิร์ฟเวอร์ติดตาม","recommendUse":"ที่แนะนำ","autoUpdateTrackerServiceList":"อัปเดตรายการติดตามทุกวันโดยอัตโนมัติ","manualUpdateTracker":"อัปเดตด้วยตนเอง","manualUpdateSuccess":"อัปเดตเซิร์ฟเวอร์ตัวติดตามสำเร็จแล้ว","manualUpdateFail":"ไม่สามารถอัปเดตจาก:","listenPort":"ฟังพอร์ต","BTlistenPort":"พอร์ตส่งข้อมูล","DHTlistenPort":"แฮชพอร์ตแบบกระจาย","protocols":"โปรโตคอลที่เข้ากันได้","setDefaultClientForFollowingProtocols":"ตั้งเป็นไคลเอนต์เริ่มต้นสำหรับโปรโตคอลต่อไปนี้","magnetUrl":"แม่เหล็ก","video_file":"ไฟล์วิดีโอ","audio_file":"ไฟล์เสียง","security":"ความปลอดภัย","impersonateUserAgent":"จำลอง User-Agent","RPCauthorizationkey":"ความลับของ RPC","viewDocument":"ดูคู่มือลับ RPC","developer":"นักพัฒนา","applicationLogPath":"เส้นทางบันทึกแอป","downloadSessionPath":"ดาวน์โหลดเส้นทางเซสชัน","resetDownloadSessionRecord":"รีเซ็ตเซสชันการดาวน์โหลด","restoreInitialSettings":"รีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน","preferences_set_successfully":"บันทึกค่ากำหนดเรียบร้อยแล้ว!","preferences_set_fail":"บันทึกค่ากำหนดล้มเหลว!","change_not_save":"ไม่ได้บันทึกการเปลี่ยนแปลง","discard_all_changes":"ยกเลิกการเปลี่ยนแปลงทั้งหมดแล้วออกไหม","stay_in_page":"อยู่ในหน้า","disk_usage":"การใช้ดิสก์","pause_if_less_space":"หยุดชั่วคราวและแจ้งเตือนหากพื้นที่ว่างน้อยกว่า (MB)","default_video_player":"เครื่องเล่นวิดีโอเริ่มต้น","video_cache_time":"แคชการเล่นสตรีม","minutes":"นาที","system_default":"ค่าเริ่มต้นของระบบ","media_player":"เครื่องเล่นสื่อ","library_film_rate":"อัตราฟิล์มที่มีอยู่","library_show_explore":"แสดงหน้า [สำรวจ]","library_setting":"การตั้งค่าห้องสมุด","library_sync_setting":"การตั้งค่าการซิงค์ไลบรารี","keychain_sync_status":"สถานะการซิงค์พวงกุญแจ","sync_with_aws":"ซิงค์พวงกุญแจกับ Amazon Web Services","backup_to_local":"สำรองข้อมูลไปยังไฟล์ในเครื่อง","enable_sync_with_aws":"เปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws":"ปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws_desc":"นี่จะเป็นการลบรหัสที่บันทึกไว้ในเซิร์ฟเวอร์ โปรดตรวจสอบว่าคุณได้ส่งออกคีย์ของคุณแล้ว","input_independent_password":"ป้อนรหัสผ่านอิสระ","change_independent_password":"เปลี่ยนรหัสผ่านอิสระ","password_error":"รหัสผ่านผิดพลาด","password_invalid":"รหัสผ่านไม่ถูกต้อง","key_existed":"มีคีย์อยู่","key_not_found":"ไม่พบคีย์","library_recommend":"ห้องสมุดแนะนำ","show_all_channels":"แสดงช่องทั้งหมดในหน้าแนะนำห้องสมุด","not_logged_in":"ไม่ได้เข้าสู่ระบบ","login_to_continue":"เข้าสู่ระบบเพื่อดำเนินการต่อ","mnemonic_code":"รหัสช่วยในการจำ","wordlist":"รายการคำ","restore_code":"กู้คืนจากรหัส","generate_code":"สร้างรหัส","export_mnemonic_code":"ส่งออกรหัสช่วยจำ","import_mnemonic_code":"นำเข้ารหัสช่วยในการจำ","print":"พิมพ์","save_as_txt":"บันทึกเป็น txt","save_as_pdf":"บันทึกเป็น pdf","from_file":"จากไฟล์","not_valid_mnemonic_code":"นี่ไม่ใช่รหัสช่วยจำที่ถูกต้อง","cannot_parse_code_as_key":"ไม่สามารถแยกวิเคราะห์รหัสช่วยจำนี้เป็นรหัสไลบรารี","import_key_hint":"คุณแน่ใจหรือไม่ที่จะนำเข้าคีย์นี้ นี่จะกู้คืนรหัสเก่าของคุณในห้องสมุด","import_key_confirm":"ใช่ นำเข้าเลย","library_preload":"โหลดงานล่วงหน้าจากห้องสมุด","show_preload":"แสดงงานโหลดล่วงหน้า","set_download":"ตั้งค่าไดเร็กทอรีการดาวน์โหลด","set_download_desc":"สำหรับเวอร์ชัน macOS App Store ไดเร็กทอรีการดาวน์โหลดเริ่มต้นจะอยู่ในแซนด์บ็อกซ์ของแอพ และจะถูกลบหลังจากถอนการติดตั้งแอพ หากคุณต้องการเก็บไฟล์ดาวน์โหลด คุณต้องเลือกไดเร็กทอรีดาวน์โหลดอื่นด้วยตนเอง","home":"บ้าน","home_caption":"ดาวน์โหลด/อัพโหลดและไฟล์มีเดีย","library":"ห้องสมุด","library_caption":"สำรวจทรัพยากรสื่อ","player":"ผู้เล่น","player_caption":"เครื่องเล่นสื่อ","credits":"เครดิต","credits_caption":"ตรวจสอบยอดเงินในบัญชี","account":"บัญชี","account_caption":"ลงชื่อเข้าใช้/ลงทะเบียน/การจัดการ","settings":"การตั้งค่า","settings_caption":"การตั้งค่าสำหรับแอพ ผู้เล่น บัญชี","development":"การพัฒนา","development_caption":"โหมดนักพัฒนาสำหรับการใช้งานภายใน","basic":"ขั้นพื้นฐาน","basic_caption":"การตั้งค่าพื้นฐาน","advanced":"ขั้นสูง","advanced_caption":"ตั้งค่าขั้นสูง","blockchain":"กระเป๋าสตางค์","blockchain_caption":"${displayName} กระเป๋าเงินกระจายอำนาจ","internal_notice":"ประกาศการเผยแพร่ภายใน","release_notes":"บันทึกประจำรุ่น","terms_and_conditions":"ข้อกำหนดและเงื่อนไข","license_and_listen_notices":"ใบอนุญาตและฟังประกาศโอเพ่นซอร์ส","close":"ปิด","success":"ความสำเร็จ","fail":"ล้มเหลว","account_email_invalid_address":"ที่อยู่อีเมลที่ไม่ถูกต้อง","account_email_invalid_domain":"โดเมนอีเมลไม่ถูกต้อง","account_email_unknown_status":"สถานะการส่งอีเมลที่ไม่รู้จัก","account_email_unavailable_address":"ที่อยู่อีเมลไม่พร้อมใช้งาน","account_email_suppressed_address":"ที่อยู่อีเมลที่ถูกระงับ","account_loading":"กำลังโหลด...","account_is_required":"ต้องระบุ","account_sign_in_your_account":"เข้าสู่ระบบ","account_username":"ชื่อผู้ใช้","account_username_email_phone":"เบอร์โทรหรืออีเมล์","account_password":"รหัสผ่าน","account_new_password":"รหัสผ่านใหม่","account_re_enter_password":"ป้อนรหัสผ่านอีกครั้ง","account_password_not_equal":"รหัสผ่านสองรหัสไม่เท่ากัน","account_new_password_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","account_forgot_your_password":"ลืมรหัสผ่านหรือไม่?","account_reset_password":"รีเซ็ตรหัสผ่าน","account_sign_in":"เข้าสู่ระบบ","account_signed_in":"ลงทะเบียนเข้า","account_sign_up":"ลงชื่อ","account_find_your_account":"ค้นหาบัญชีของคุณ","account_enter_your_username":"ป้อนหมายเลขโทรศัพท์หรืออีเมลของคุณ","account_search":"ค้นหา","account_email_sent_tip":"อีเมลพร้อมรหัสยืนยันถูกส่งไปยังอีเมลของคุณแล้ว:","account_phone_sent_tip":"SMS พร้อมรหัสยืนยันถูกส่งไปยังโทรศัพท์ของคุณแล้ว:","account_email_phone_sent_tip":"อีเมลและ SMS พร้อมรหัสยืนยันถูกส่งไปยังอีเมลและโทรศัพท์ของคุณตามลำดับแล้ว:","account_software_token_tip":"MFA เปิดใช้งานสำหรับบัญชีของคุณ หากต้องการลงชื่อเข้าใช้ให้เสร็จสิ้น โปรดเปิดหรือดูอุปกรณ์ของคุณและพิมพ์ TOTP","account_reset_your_password":"รีเซ็ตรหัสผ่านของคุณ","account_verification_code":"รหัสยืนยัน","account_resend_code":"ส่งรหัสอีกครั้ง","account_code_has_been_resent":"ส่งรหัสยืนยันแล้ว","account_password_has_been_reset":"รีเซ็ตรหัสผ่านแล้ว","account_submit":"ส่ง","account_sign_up_your_account":"ลงทะเบียนบัญชีของคุณ","account_fill_required_fields":"กรอกข้อมูลในฟิลด์บังคับด้านล่าง","account_fill_optional_fields":"กรอกข้อมูลในฟิลด์ตัวเลือกด้านล่าง","account_email":"อีเมล","account_invitation":"การเชิญ","account_invitation_code":"รหัสการเชิญ","account_i_accept":"ฉันยอมรับ","account_license_terms":"ใบอนุญาตและเงื่อนไข","account_next":"ต่อไป","account_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_verify_fill_optional_fields":"ตรวจสอบและกรอกข้อมูลในช่องเพิ่มเติม","account_nickname":"ชื่อเล่น","account_gender":"เพศ","account_male":"ชาย","account_female":"หญิง","account_not_say":"ไม่พูด","account_birthday":"วันเกิด","account_phone_number":"หมายเลขโทรศัพท์","account_locale":"ท้องถิ่น","account_tip_verified":"ยืนยันแล้ว กำลังลงชื่อเข้าใช้...","account_verified":"ตรวจสอบแล้ว","account_unverified":"ไม่ได้รับการยืนยัน","account_signed_up":"ลงทะเบียน","account_verify_your_identity":"ยืนยันตัวตนของคุณ","account_finish":"เสร็จ","account_signed_out":"ออกจากระบบ","account_change_password":"เปลี่ยนรหัสผ่าน","account_change_email":"เปลี่ยนอีเมล","account_change_phone_number":"เปลี่ยนหมายเลขโทรศัพท์","account_sign_out":"ออกจากระบบ","account_current_password":"รหัสผ่านปัจจุบัน","account_re_enter_new_password":"ป้อนรหัสผ่านใหม่","account_personal_information":"ข้อมูล","account_edit":"แก้ไข","account_reset":"รีเซ็ต","account_greeting":"สวัสดี,","account_cancel":"ยกเลิก","account_change":"เปลี่ยน","account_not_set":"ไม่ได้ตั้งค่า","account_setting":"การตั้งค่า","account_copy_code":"คัดลอกรหัส","account_account_setting":"บัญชี","account_task_page":"งานสินเชื่อ","account_setting_caption":"เปลี่ยนรหัสผ่าน / แก้ไขข้อมูล","account_security":"ความปลอดภัย","account_want_to_join":"ต้องการเข้าร่วมหรือไม่","account_sign_in_now":"เข้าสู่ระบบ","account_changed":"เปลี่ยน","account_clipboard_with_invitation_code":"คัดลอกรหัสคำเชิญแล้ว","account_clipboard_with_code":"คัดลอกรหัสแล้ว","account_invitation_code_dialog_tip":"คุณจะส่งอีเมลหรือข้อความถึงเพื่อนพร้อมรหัสคำเชิญ:","account_available":"มีอยู่","account_invited":"เชิญ","account_used":"ใช้แล้ว","account_invitation_code_sent":"ส่งรหัสคำเชิญแล้ว","account_invitation_channel_required":"กรอกช่องเชิญอย่างน้อยหนึ่งช่อง","account_no_verification_code":"ไม่สามารถรับรหัสยืนยันได้?","account_no_phone_number":"ไม่มีหมายเลขโทรศัพท์?","account_sign_up_by_email":"ลงทะเบียนทางอีเมล","account_no_email":"ไม่มีอีเมล?","account_sign_up_by_phone_number":"ลงทะเบียนด้วยหมายเลขโทรศัพท์","account_no_totp":"ไม่มีทีโอที?","account_tip_no_totp":"หากไม่มี TOTP ให้ตั้งค่า TOTP ก่อน","account_setup_totp":"ตั้งค่า TOTP","account_contact_information":"ข้อมูลติดต่อ","account_delete_account":"ลบบัญชี","account_deleted":"ลบแล้ว","account_can_not_mfa":"MFA มีปัญหา?","account_set_mfa_type":"กำหนดค่า MFA","account_disable_mfa":"ปิดใช้งาน MFA","account_disabled_mfa":"MFA พิการ","account_sms_mfa":"SMS มฟ","account_totp_mfa":"ทีโอที สพม","account_totp":"ทีโอพี","account_not_recommend":"ไม่แนะนำ","account_oauth_sign_in_with":"ลงชื่อเข้าใช้ด้วย {provider}","account_sign_in_failed":"ลงชื่อเข้าใช้ไม่สำเร็จ","account_tip_oath_sign_up":"อีเมลที่เกี่ยวข้องกับบัญชี {provider} ปัจจุบัน: {email} ยังไม่ได้สร้างบัญชี","account_tip_confirm_delete_account":"ป้อนรหัสผ่านบัญชีปัจจุบันเพื่อยืนยันว่าคุณต้องการลบบัญชีปัจจุบัน (บัญชีที่ถูกลบไม่สามารถกู้คืนได้)","account_tip_config_mfa":"คุณสามารถเลือกใช้ SMS หรือรหัสผ่านครั้งเดียวตามเวลา (TOTP) เป็นการรับรองความถูกต้องรอง","account_error_can_not_enable_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน MFA","account_tip_can_not_enable_sms_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน SMS MFA","account_tip_can_not_enable_totp_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน TOTP MFA","account_tip_setup_totp":"ใช้แอพ เช่น Authenticator เพื่อสแกนรหัส QR ด้านล่างหรือคัดลอกรหัสด้วยตนเองเพื่อเพิ่มโทเค็นความปลอดภัย","account_tip_verify_totp":"ตรวจสอบ TOTP ของคุณ","account_link_your_social_account":"ผูกบัญชีโซเชียลของคุณ","account_unlink_your_social_account":"ยกเลิกการผูกบัญชีโซเชียล","account_tip_confirm_link":"คุณแน่ใจหรือไม่ว่าต้องการผูกบัญชีปัจจุบันกับบัญชี {provider} ของคุณ?","account_tip_confirm_unlink":"แน่ใจไหมว่าจะยกเลิกบัญชี {provider} ที่ผูกไว้","account_tip_linking":"ผูกพัน...","account_tip_unlinking":"ไม่ผูกพัน...","account_linked":"ผูกพัน","account_unlinked":"หลุด","account_error_can_not_link_to_the_linked_account":"บัญชีโซเชียลปัจจุบันเชื่อมโยงกับบัญชีอื่น","account_error_can_not_link_to_the_mismatched_email":"บัญชีปัจจุบันและที่อยู่อีเมลบัญชีโซเชียลไม่สอดคล้องกัน","account_error_can_not_link_before_email_verified":"ไม่สามารถเชื่อมโยงบัญชีโซเชียลได้เนื่องจากบัญชีปัจจุบันไม่ได้เชื่อมโยงกับอีเมลที่ยืนยันแล้ว","account_tip_confirm_verify_email_phone":"จะส่งรหัสยืนยันไปยังอีเมลและหมายเลขโทรศัพท์ของบัญชีปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_tip_confirm_verify_phone":"จะส่งรหัสยืนยันไปยังหมายเลขโทรศัพท์ปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_error_1_message_60_seconds":"สามารถส่ง SMS หรืออีเมลได้เพียง 1 ฉบับทุกๆ 60 วินาที โปรดรออีก {delta} วินาที","account_error_10_messages_per_day":"โทรศัพท์มือถือหรืออีเมลแต่ละเครื่องสามารถส่งข้อความได้ 10 ข้อความภายใน 24 ชั่วโมง","account_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","Network Error":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","account_error_user_not_exist":"ไม่มีผู้ใช้","account_error_incorrect_username_or_password":"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง","account_error_incorrect_original_password":"รหัสผ่านเดิมไม่ถูกต้อง","account_error_incorrect_password":"รหัสผ่านผิดพลาด","account_error_username_not_found":"ไม่พบชื่อผู้ใช้","account_error_can_not_reset_for_no_verified":"ไม่สามารถรีเซ็ตรหัสผ่านสำหรับบัญชีที่ไม่ได้รับการยืนยัน","account_error_invalid_verification_code":"รหัสยืนยันไม่ถูกต้อง โปรดลองอีกครั้ง","account_error_expired_verification_code":"รหัสยืนยันหมดอายุ โปรดลองอีกครั้ง","account_error_password_not_long_enough":"รหัสผ่านยาวไม่พอ","account_error_attempt_limit_exceeded":"เกินขีดจำกัดความพยายาม โปรดลองอีกครั้งในภายหลัง","account_error_password_attempts_exceeded":"เกินความพยายามรหัสผ่าน","account_error_invalid_phone_number_format":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_error_no_cell_phone_prefix":"โปรดเลือกคำนำหน้าสำหรับหมายเลขโทรศัพท์","account_error_username_already_exists":"ชื่อผู้ใช้นี้มีอยู่แล้ว","account_error_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_error_inactive_code":"รหัสเชิญไม่ใช่รหัสเปิดใช้งาน","account_error_non_existent_code":"รหัสเชิญไม่มีอยู่จริง","account_error_unexpected":"ข้อผิดพลาดที่ไม่คาดคิด","account_error_can_not_change_email_before_phone_bound":"เปลี่ยนอีเมลก่อนผูกเบอร์โทรไม่ได้","account_error_can_not_change_email_before_unbound_social_account":"ไม่สามารถเปลี่ยนอีเมลได้ก่อนที่จะยกเลิกการเชื่อมโยงบัญชีโซเชียล","account_error_can_not_change_phone_before_email_bound":"เปลี่ยนเบอร์โทรก่อนอีเมลผูกมัดไม่ได้","account_error_can_not_change_email_phone_with_mfa_enabled":"ไม่สามารถเปลี่ยนอีเมลหรือหมายเลขโทรศัพท์มือถือก่อนปิดใช้งาน MFA","account_error_not_supported_yet":"ไม่รองรับชั่วคราว","account_error_same_email":"ที่อยู่อีเมลใหม่ต้องไม่เหมือนกับที่อยู่อีเมลเดิม","account_error_same_phone":"หมายเลขโทรศัพท์ใหม่ต้องไม่ซ้ำกับหมายเลขโทรศัพท์เดิม","account_error_email_not_exists":"ไม่มีที่อยู่อีเมล","account_error_email_already_exists":"มีบัญชีที่ใช้อีเมลที่ระบุอยู่แล้ว","account_error_phone_already_exists":"มีบัญชีที่ใช้หมายเลขโทรศัพท์ที่ระบุอยู่แล้ว","account_error_mfa_token_mismatch":"รหัสโทเค็นของซอฟต์แวร์ไม่ตรงกัน","account_error_recaptcha_not_loaded":"มีปัญหากับเครือข่าย โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_recaptcha_validation_failed":"การตรวจสอบ ReCAPTCHA ล้มเหลว โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_sign_in_in_progress":"กำลังพยายามลงชื่อเข้าใช้ที่รอดำเนินการอยู่","account_field_range":"จำกัดการป้อนอักขระ {0}-{1} ตัว","account_field_only_alphanumeric":"รองรับเฉพาะตัวอักษรและตัวเลขเท่านั้น","account_field_only_alphanumeric_and_symbol":"รองรับเฉพาะตัวอักษรและตัวเลขและสัญลักษณ์เท่านั้น","account_field_only_chinese_alphanumeric_space_underline":"รองรับเฉพาะตัวอักษร ตัวเลข เว้นวรรค ขีดล่าง","account_field_prefix_without_number_space":"อักขระตัวแรกไม่สามารถเป็นตัวเลขหรือช่องว่างได้","account_field_suffix_without_space":"ไม่สามารถลงท้ายด้วยช่องว่าง","account_field_without_repeat_space":"ไม่สามารถใช้หลายช่องว่างในแถว","account_field_can_not_only_alphanumeric":"คุณไม่สามารถใช้ตัวอักษรหรือตัวเลขได้","account_field_must_have_number_characters":"ต้องมีอักขระตัวเลข","account_field_verification_code":"รหัสยืนยันต้องเป็นตัวเลขหกหลัก","account_field_invitation_code":"รหัสเชิญต้องเป็นตัวอักษรและตัวเลข","account_field_phone_number":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_invalid_email_format":"รูปแบบอีเมลไม่ถูกต้อง","account_sign_out_confirm":"คุณแน่ใจหรือที่จะออกจากระบบ? สิ่งนี้จะหยุดงานทั้งหมด","account_sign_out_anyway":"ออกจากระบบต่อไป","account_signing_out":"กำลังออกจากระบบ...","account_request_save_settings":"ไม่ได้บันทึกการตั้งค่า คุณต้องบันทึกการเปลี่ยนแปลงก่อนออกจากระบบ","pay":"จ่าย","pay_with_credit":"จ่ายสำหรับการเร่งความเร็วการดาวน์โหลด ต้องการเครดิตประมาณ {0}","pay_with_credit_payed":"กำลังเร่ง ยังคงต้องการเครดิตประมาณ {0}","create_payment":"สร้างการชำระเงิน","pay_target":"เป้า","pay_for_torrent":"จ่าย ${0}","your_subid":"รหัสย่อยของคุณ","your_credits":"เครดิตของคุณ","pay_point_for_data":"จ่ายคะแนน {0} สำหรับข้อมูล {1}","auto_renew":"เปิดใช้งานการต่ออายุอัตโนมัติ","transaction_details":"รายละเอียดการทำธุรกรรม","transaction_id":"รหัส","transaction_payer":"ผู้ชำระเงิน","transaction_payee":"ผู้รับเงิน","transaction_category":"หมวดหมู่","transaction_changed_amount":"จำนวนเงินที่เปลี่ยนแปลง","transaction_meta":"เมตา","transaction_status":"สถานะ","transaction_creation_time":"เวลาในการสร้าง","receipt_code":"รหัสใบเสร็จ","transfer_amount":"ยอดโอน","code_the_receipt_code":"คัดลอกรหัสใบเสร็จด้านล่างไปยังผู้ชำระเงิน","fill_the_receipt_code":"โอนเงินโดยกรอกรหัสการชำระเงินที่ผู้รับเงินให้ไว้","expense":"ค่าใช้จ่าย","copied":"คัดลอก","transfer":"โอนย้าย","receive":"รับ","copy":"สำเนา","withdraw_fund":"ถอนเงิน","category_paydata_payer":"ค่าใช้จ่ายของข้อมูล","category_paydata_payee":"รายได้ของข้อมูล","category_transfer":"โอนย้าย","category_bonus":"โบนัส","category_recharge":"เติมเงิน","status_pending":"รอดำเนินการ","status_completed":"สมบูรณ์","status_finish":"เสร็จ","status_failed":"ล้มเหลว","tip_invalid_receiver":"รหัสผู้รับไม่ถูกต้อง","tip_invalid_amount":"จำนวนเครดิตควรเป็นแบบลอยตัวในช่วง 0-1000 (ความแม่นยำขั้นต่ำคือ 0.001)","credit_get_more":"รับเครดิตมากขึ้น","credit_no_data":"ไม่มีข้อมูลที่สามารถใช้ได้","credit_loading":"กำลังโหลด...","credit_not_enough_amount":"เครดิตไม่เพียงพอ","credit_amount_not_enough":"เครดิตไม่เพียงพอ","credit_payee_not_exist":"ไม่มีผู้รับเงิน","credit_invalid_amount":"จำนวนเครดิตไม่ถูกต้อง","credit_can_not_transfer_to_yourself":"ไม่สามารถโอนเป็นของตนเองได้","credit_latest":"ล่าสุด","credit_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","add_subtitles":"เพิ่มคำบรรยาย","open_file":"เปิดไฟล์...","advanced_options":"ตัวเลือกขั้นสูง","title":"ชื่อ","location":"ที่ตั้ง","subtitle_file":"ไฟล์คำบรรยาย","unsupported_subtitle_type":"ประเภทไฟล์ {0} ไม่ใช่ประเภทคำบรรยายที่รองรับ","not_default_player":"ไม่ได้ตั้งค่าเครื่องเล่นวิดีโอเริ่มต้น","this_is_an_audio_file":"นี่คือไฟล์เสียง","the_added_subtitle_already_exists":"มีคำบรรยายที่เพิ่มเข้ามาแล้ว","stop_stream_player":"สื่อการสตรีมถูกยกเลิกเนื่องจากงานถูกหยุดชั่วคราวหรือถูกลบ","stop_player":"เครื่องเล่นถูกยกเลิกเนื่องจากไฟล์ถูกลบ","playing_timeout_hint":"หมดเวลารอ กรุณาตรวจสอบงาน","autoplay_hint":"การเล่นอัตโนมัติอาจถูกบล็อกโดยเบราว์เซอร์ของคุณ หากผู้เล่นไม่ได้เล่น ให้ลองคลิกที่หน้าจอเพื่อดำเนินการต่อ","remove_playing_confirm":"{0} ยังเล่นอยู่ ลบออกจะหยุดเล่น แน่ใจหรือว่าจะเอาออก?","unsupported_in_browser":"ยังไม่รองรับโหมดเบราว์เซอร์","client":"ลูกค้า","warning":"คำเตือน","enable":"เปิดใช้งาน","disable":"ปิดการใช้งาน","auto":"อัตโนมัติ","encrypt_connection":"เข้ารหัสการเชื่อมต่อ","encrypted_connection":"การเชื่อมต่อที่เข้ารหัส","non_encrypted_connection":"การเชื่อมต่อที่ไม่ได้เข้ารหัส","connected_wires_not_disconnect":"สายที่เชื่อมต่อจะไม่ถูกตัดการเชื่อมต่อ","audio":"เสียง","video":"วิดีโอ","image":"ภาพ","subtitle":"คำบรรยาย","zip":"ซิป","text":"ข้อความ","unknown":"ไม่ทราบ","add":"เพิ่ม","undo":"เลิกทำ","backup":"การสำรองข้อมูล","not_default_app":"${displayName} ไม่ใช่แอปเริ่มต้นของคุณสำหรับทอร์เรนต์และสื่อ คุณต้องการตั้งค่าเป็นค่าเริ่มต้นหรือไม่","dont_show_again":"ไม่ต้องแสดงอีก","go_to_settings":"ไปที่การตั้งค่า","about_alphabiz":"ประมาณ ${displayName}","last_check_at":"ตรวจครั้งล่าสุดเมื่อ","update_channel":"อัพเดทช่อง","check_for_update":"ตรวจสอบสำหรับการปรับปรุง","checking_for_update":"กำลังตรวจสอบการอัปเดต...","no_update_available":"ไม่มีการอัพเดท","update_available":"มีการปรับปรุง","update_now":"อัพเดทเลย","update_later":"อัปเดตในภายหลัง","click_to_update":"คลิกปุ่ม UPDATE NOW เพื่อดาวน์โหลดและอัปเดต","update_failed":"การอัพเดทล้มเหลว","update_failed_message":"เกิดข้อผิดพลาดขณะอัปเดต:","check_shasum_failed":"ตรวจสอบความสมบูรณ์ของตัวติดตั้งไม่สำเร็จ","downloading_update":"กำลังดาวน์โหลดอัปเดต...","ready_to_update":"พร้อมอัพเดท","restart_to_update":"ดาวน์โหลดการอัปเดตแล้ว ${displayName} จะออกจากการอัปเดตสักครู่","already_latest":"เวอร์ชันปัจจุบัน ({0}) เป็นเวอร์ชันล่าสุดแล้ว","update_timeout":"หมดเวลาอัปเดต","no_available_release":"ไม่มีรุ่นที่วางจำหน่าย","no_available_installer":"ไม่มีตัวติดตั้งที่ใช้ได้","feedback":"ข้อเสนอแนะ","select_a_type":"เลือกประเภท","category":"หมวดหมู่","select_a_category":"เลือกหมวดหมู่","require_title":"ต้องระบุชื่อเรื่อง","describe_your_problem":"อธิบายปัญหาของคุณ","report_a_bug":"รายงานข้อผิดพลาด","request_a_new_feature":"ขอคุณสมบัติใหม่","download_or_upload":"ดาวน์โหลด/อัพโหลด","others":"คนอื่น","submit_with_system_info":"ส่งพร้อมข้อมูลระบบ","submit_feedback":"ส่งความคิดเห็น","tweet_us":"ทวีตหาเรา","tweet_too_long":"ทวีตยาวเกินไป","delete_characters":"โปรดลบอักขระอย่างน้อย {0} ตัว","rest_characters":"คุณสามารถป้อนอักขระได้อีก {0} ตัว","update_alphabiz":"อัปเดต ${displayName}","current_version":"รุ่นปัจจุบัน","cancel_update":"ยกเลิกการปรับปรุง","slow_download_speed":"ดาวน์โหลดช้าเกินไป","slow_download_speed_caption":"การดาวน์โหลดตัวติดตั้งช้าเกินไปในขณะนี้ กรุณาตรวจสอบสถานะเครือข่าย","update_canceled":"ยกเลิกการอัปเดตแล้ว","current_version_release_time":"เวลาวางจำหน่ายของเวอร์ชันปัจจุบัน","expired_app":"${displayName} หมดอายุ","version_out_of_date":"เวอร์ชันล้าสมัย","have_to_update":"เวอร์ชัน ${displayName} ล้าสมัย โปรโตคอลหรือ API บางอย่างเลิกใช้แล้ว คุณต้องอัปเดต ${displayName} ก่อนดำเนินการต่อ","exit_alphabiz":"ออกจาก ${displayName}","exit_and_update":"ออกและใช้การอัปเดต","new_version_hint":"มีเวอร์ชันใหม่","no_new_version":"ไม่มีเวอร์ชั่นใหม่","current_is_latest":"เวอร์ชันปัจจุบันเป็นเวอร์ชันล่าสุดแล้ว","click_to_check_update":"คลิกปุ่ม [ตรวจสอบการอัปเดต] เพื่อตรวจสอบการอัปเดต","download_latest_version_from_website":"โปรดไปที่เว็บไซต์อย่างเป็นทางการเพื่อดาวน์โหลดเวอร์ชันล่าสุด","to_the_website":"ไปที่เว็บไซต์","network_diagnotic":"การวินิจฉัยเครือข่าย","diagnotic":"การวินิจฉัย","click_to_check":"คลิกเพื่อตรวจสอบ","click_to_check_again":"คลิกเพื่อตรวจสอบอีกครั้ง","checking":"กำลังตรวจสอบ","online":"ออนไลน์","offline":"ออฟไลน์","dns_look_up":"การค้นหา DNS","error":"ข้อผิดพลาด","aws_service":"บริการของ AWS","network_pings":"เครือข่ายปิง","not_found":"ไม่พบ","packet_loss":"การสูญเสียแพ็คเก็ต","official_site":"เว็บไซต์อย่างเป็นทางการ","download_test":"ดาวน์โหลดแบบทดสอบ","test_task":"งานทดสอบ {0}","download_failed":"การดาวน์โหลดล้มเหลว","second_spend":"การใช้จ่าย ${0}","open_default_player_failed":"ไม่สามารถเปิดโปรแกรมเล่นเริ่มต้นได้","copied_to_clipboard":"คัดลอกไปที่คลิปบอร์ดแล้ว","go_to":"ไปที่","region_not_available":"ภูมิภาคไม่พร้อมใช้งาน","region_not_available_message":"ขอโทษ! ภูมิภาคของคุณไม่สามารถใช้แอพนี้ได้ แอปนี้จะออกหลังจาก {0} วินาที","confirm":"ยืนยัน","no_available_result":"ไม่มีผลลัพธ์","invalid_password_format":"รูปแบบรหัสผ่านไม่ถูกต้อง","invalid_password_format_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","error_password":"รหัสผ่านผิดพลาด","keychain_setting":"พวงกุญแจ","setting_description":"ที่เก็บข้อมูลบนคลาวด์: บันทึกข้อมูลสำคัญไปยังคลาวด์\\nเปลี่ยนรหัสผ่าน: เปลี่ยนรหัสผ่านสำหรับคีย์ไลบรารีสื่อ\\nช่วยในการจำ: วิธีอื่นสำหรับการสร้างและกู้คืนคีย์\\nนำเข้ารหัสภายในเครื่อง: นำเข้ารหัสที่บันทึกไว้ในเครื่องไปยังไลบรารีสื่อ\\nคีย์ส่งออก: บันทึกข้อมูลไลบรารีสื่อปัจจุบันลงในเครื่องหรือระบบคลาวด์\\nคีย์สำรองไปยังคลาวด์: อัปเดตข้อมูลไลบรารีสื่อปัจจุบันไปยังคลาวด์เพื่อสำรองข้อมูล","refresh_status":"อัปเดตสถานะ","confirm_import_key":"ยืนยันคีย์นำเข้า","confirm_update_cloud_key":"คุณมีรหัสในระบบคลาวด์แล้ว การอัปเดตคีย์จะเขียนทับคีย์เดิม คุณแน่ใจหรือไม่ว่าต้องการอัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","export_key_with_cloud":"ป้อนรหัสผ่านอิสระที่คุณตั้งไว้เพื่อส่งออกคีย์ไลบรารีที่จัดเก็บไว้ในระบบคลาวด์ และล็อคไฟล์คีย์ด้วยรหัสผ่านปลดล็อค","store_cloud_key_prompt_password":"ป้อนรหัสผ่านอิสระเพื่อจัดเก็บรหัสห้องสมุดในระบบคลาวด์","update_cloud_key_prompt_password":"ตั้งรหัสผ่านอิสระเพื่อเข้ารหัสคีย์ไลบรารี จากนั้นอัปเดตไปยังระบบคลาวด์","enable_cloud_storage_prompt_password":"ตั้งรหัสผ่านสำหรับคีย์ที่จัดเก็บไว้ในคลาวด์ ซึ่งคุณสามารถดึงคีย์จากคลาวด์ได้","input_unlock_password":"ตั้งรหัสผ่านปลดล็อค","export_local_prompt_password":"โปรดตั้งรหัสผ่านปลดล็อคเพื่อเข้ารหัสไฟล์คีย์ของคุณ เราจะไม่บันทึกรหัสผ่านนี้ให้คุณ ดังนั้นหากคุณทำรหัสผ่านหาย คุณจะไม่สามารถปลดล็อกรหัสห้องสมุดของคุณได้","require_unlock_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","require_independent_password":"ป้อนรหัสผ่านอิสระเพื่อรับรหัสที่จัดเก็บไว้ในระบบคลาวด์","import_local_prompt_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","select_encrypt_mode":"เลือกโหมดการเข้ารหัส","update_cloud_key":"อัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","backup_to_cloud":"สำรองคีย์ไลบรารีไปยังระบบคลาวด์","save_local":"บันทึกคีย์ไลบรารีเป็นไฟล์เข้ารหัสในเครื่อง","create_new_key":"สร้างรหัสห้องสมุดใหม่","creating_lib_key":"กำลังสร้างรหัสห้องสมุด...","loading_lib_key":"กำลังโหลดรหัสห้องสมุด...","failed_to_create_lib_key":"สร้างรหัสห้องสมุดไม่สำเร็จ","failed_to_load_lib_key":"โหลดรหัสห้องสมุดไม่สำเร็จ","import_local_key":"นำเข้าคีย์ในเครื่อง","import_lib_key_from_local":"นำเข้าคีย์ไลบรารีในเครื่อง","import_from_cloud":"นำเข้ารหัสห้องสมุดจากระบบคลาวด์","create_or_import_key":"สร้างหรือนำเข้ารหัสห้องสมุด","create_or_import_key_desc":"คีย์ไลบรารีเป็นคีย์อิสระที่ใช้ในการดึงข้อมูลและเผยแพร่เนื้อหาด้วยฐานข้อมูลแบบกระจายอำนาจ","store_your_lib_key":"เก็บรหัสห้องสมุดของคุณ","export_cloud_key":"ส่งออกคีย์จากคลาวด์","export_current_key":"ส่งออกคีย์ปัจจุบัน","change_password":"เปลี่ยนรหัสผ่าน","enable_cloud_storage":"เปิดใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage":"ปิดการใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage_desc":"การปิดใช้ที่เก็บข้อมูลบนคลาวด์จะลบคีย์ที่บันทึกไว้ในคลาวด์ โปรดตรวจสอบให้แน่ใจว่าคีย์นั้นบันทึกไว้ในเครื่อง","sync_at":"ซิงค์ที่: {time}","cloud_storage_enabled":"ซิงค์พวงกุญแจกับ {storage}","cloud_storage_disabled":"ที่เก็บข้อมูลบนคลาวด์ถูกปิดใช้งาน","saved_locally":"บันทึกไว้ในเครื่อง","export_key":"ส่งออกไฟล์คีย์","cloud_independent_password":"รหัสผ่านอิสระบนคลาวด์","key_file_unlock_password":"รหัสผ่านปลดล็อคไฟล์ที่สำคัญ","re_enter_unlock_password":"ป้อนรหัสผ่านปลดล็อคอีกครั้ง","independent_password_not_enabled":"รหัสผ่านปัจจุบันคือรหัสผ่านบัญชี Alphabiz (ไม่ได้ตั้งรหัสผ่านอิสระ)","use_cognito_hash":"ใช้รหัสผ่านบัญชี Alphabiz","use_independent_password":"ใช้รหัสผ่านอิสระ","keychain_lib":"กุญแจห้องสมุด","loading_keychain_state":"กำลังโหลดพวงกุญแจ...","backing_up":"สำรอง...","backup_current_key":"สำรองคีย์ปัจจุบันไปยัง Cloud","cloud_lib_key_not_existed":"รหัสห้องสมุดไม่มีอยู่ในคลาวด์","open_keychain_file":"เปิดไฟล์พวงกุญแจ","confirm_open_abk":"คุณต้องการเปิดไฟล์ ABK หรือไม่","use_the_key":"ใช้กุญแจ","backup_the_key":"สำรองคีย์ไปยังคลาวด์","keychain_data_does_not_exist":"ไม่มีข้อมูลพวงกุญแจ","timeout of 0ms exceeded":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","XhrError":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","payer credit amount is not enough":"เครดิตไม่เพียงพอ","payee does not exist":"ไม่มีผู้รับเงิน","block_list_manage":"จัดการรายการบล็อก","blocked_users":"ผู้ใช้ที่ถูกบล็อก","blocked_channels":"ช่องที่ถูกบล็อก","unblock_user":"ผู้ใช้ยกเลิกการปิดกั้น","unblock_channel":"เลิกบล็อกช่อง","no_blocked_user":"ไม่มีผู้ใช้ที่ถูกบล็อก","no_blocked_channel":"ไม่มีช่องที่ถูกบล็อก","field_required":"จำเป็นต้องมี {0}","setting":"การตั้งค่า","unknown_media":"สื่อที่ไม่รู้จัก","settings_button_visible":"ปุ่มที่มองเห็นได้","settings_setting":"การตั้งค่า","settings_playback_rate":"อัตราการเล่น","settings_subtitle":"คำบรรยาย","settings_pip":"ปี๊บ","settings_fullscreen":"เต็มจอ","settings_subtitle_options":"ตัวเลือกคำบรรยาย","settings_normal":"ปกติ","settings_italic":"ตัวเอียง","settings_lighter":"ไฟแช็ก","settings_bolder":"โดดเด่นยิ่งขึ้น","settings_small":"เล็ก","settings_large":"ใหญ่","about":"เกี่ยวกับ","services":"บริการ","hide":"ซ่อน","hide_others":"ซ่อนอื่น ๆ","show_all":"แสดงทั้งหมด","quit":"ล้มเลิก","edit":"แก้ไข","redo":"ทำซ้ำ","cut":"ตัด","paste":"แปะ","select_all":"เลือกทั้งหมด","view":"ดู","reload":"โหลดใหม่","toggle_full_screen":"สลับโหมดเต็มหน้าจอ","toggle_developer_tools":"สลับเครื่องมือสำหรับนักพัฒนา","window":"หน้าต่าง","minimize":"ย่อเล็กสุด","bring_all_to_front":"นำทั้งหมดมาไว้ข้างหน้า","help":"ช่วย","github_repo":"Github Repo","issues":"ปัญหา","learn_more":"เรียนรู้เพิ่มเติม","learn_spelling":"เรียนรู้การสะกดคำ","lookup_selection":"ค้นหา \\"{selection}\\"","search_with_google":"ค้นหาด้วย Google","save_as":"บันทึกเป็น","save_image":"บันทึกภาพ","save_image_as":"บันทึกภาพเป็น ...","copy_link":"คัดลอกลิงค์","save_link_as":"บันทึกลิงค์เป็น ...","copy_image":"คัดลอกรูปภาพ","copy_image_as":"คัดลอกรูปภาพเป็น ...","copy_image_address":"คัดลอกที่อยู่รูปภาพ","download_complete":"ดาวน์โหลดเสร็จสิ้น","download_complete_message":"ดาวน์โหลด {0} แล้ว","is_running":"{0} กำลังดำเนินการ","open":"เปิด {0}","launch_problem":"ปัญหาการเปิดตัว","ask_clear_data":"ดูเหมือนว่าคุณกำลังพยายามเปิด {0} แต่ล้มเหลวหลายครั้ง\\nคุณต้องการล้างข้อมูลแอปทั้งหมดแล้วลองเปิดใช้งานในภายหลังหรือไม่","launch_directly":"เปิดตัวโดยตรง","clear_all_data":"ล้างข้อมูลทั้งหมด","ask_clear_confirm":"การดำเนินการนี้จะลบการกำหนดค่า บันทึก และข้อมูลผู้ใช้ทั้งหมด!\\nหลังจากนี้ คุณอาจต้องเปิดใช้ {0} อีกครั้ง\\nคุณแน่ใจว่าจะล้างข้อมูลหรือไม่","confirm_launch":"ไม่ เปิดใช้โดยตรง","confirm_clear":"ใช่ ล้างข้อมูลทั้งหมด"}')},"41c7":function(e,t){e.exports={mode:"committee",admins:["FQi3UfsB5zY7SSfLMPdl9Fdh7_EeM4og0ZGivp4tfJU.yXhvCAmmUz1Pw9-Iwhf9hpo9-H4WDHwezzRAGE5Oipk","an_id_of_admin","an_id_of_other_admin"]}},"44ce":function(e){e.exports=JSON.parse('{"lib_index":"Casa","lib_edit":"Pubblicare","lib_publish":"Pubblicare","lib_explore":"Esplorare","lib_following":"Seguente","lib_favorite":"Preferiti locali","lib_local_favorites":"Preferiti locali","lib_channel":"Canale","lib_submit":"Invia","lib_from_network":"Utilizzo di database decentralizzati dalla rete","welcome_to_lib":"Benvenuto nella libreria multimediale ${displayName}","register_or_login":"Registrati/Accedi","lib_recommend":"Consiglia","lib_recommend_desc":"Benvenuto nella libreria ${displayName}! Questa libreria utilizza un database decentralizzato dalla rete. Per iniziare a usarlo, devi seguire alcuni canali.","follow_any_channel_to_continue":"Segui qualsiasi canale per continuare","follow_channels_and_continue":"Segui i canali {0} e continua","show_more_for_me":"Mostra di più per me","no_more_recommend":"Non più raccomandare","key":"Chiave","create_key":"Crea chiave","save_key":"Salva chiave","save_key_file":"Vuoi salvare la tua chiave come file?","import_key":"Chiave di importazione","import":"Importare","invalid_key":"Chiave non valida","back_to_top":"Torna in cima","search_for_channel":"Cerca ID canale","search_channel_no_result":"Impossibile trovare il canale con ID {0}","please_input_channel_id":"Inserisci l\'ID del canale","welcome_help_text":"Questa è una libreria multimediale decentralizzata. Hai bisogno\\n per creare un account per questo database. Noi\\n generare automaticamente una chiave personale per te.\\n Se hai già avuto una chiave, puoi anche importare\\n qui.","welcome_key_text":"Una volta effettuato l\'accesso, fare clic sul pulsante [SALVA CHIAVE].\\n nell\'angolo in basso a destra per salvare la tua chiave privata.\\n Se perdi la tua chiave, potresti non essere in grado di accedere nuovamente.","redirect_to_recommend":"Sembra che tu non abbia seguito nessun canale. Reindirizzamento alla pagina [Esplora].","channel":"Canale","follow":"Seguire","unfollow":"Smetti di seguire","following":"Seguente","share":"Condividere","unfollow_confirm":"Sei sicuro di smettere di seguire questo canale? Tutti i post di questo canale nella tua cronologia verranno rimossi.","follow_failed_hint":"L\'operazione è ancora in sospeso in background. Se l\'operazione non viene applicata per molto tempo, riavviare l\'app e riprovare.","block":"Bloccare","unblock":"Sbloccare","blocked":"Bloccato","block_channel":"Blocca questo canale","block_channel_confirm":"Blocca il canale lo rimuoverà dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","block_creator":"Blocca il creatore di questo canale","unblock_creator":"Sblocca il creatore di questo canale","block_creator_confirm":"Blocca creatore rimuoverà tutti i canali creati da questo creatore dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","share_url_copied":"L\'URL di condivisione viene copiato negli appunti","follow_time":"Segui il tempo","update_time":"Tempo di aggiornamento","search":"Ricerca","type":"Tipo","added":"Aggiunto","click_to_task":"Fare clic per andare all\'attività","lib_already_added":"Hai già aggiunto questo video","description":"Descrizione","poster":"Manifesto","channel_poster":"Manifesto del canale","preview":"Anteprima","creator":"Creatore","creator_detail":"Dettaglio del creatore","loading_creator":"Caricamento delle informazioni sull\'autore","wait_for_creator_loaded":"Attendi il caricamento delle informazioni sul creatore.","follower":"Seguace","followers":"Seguaci","follower_list":"Elenco seguaci","user":"Utente","channel_title":"Titolo del canale","channel_id":"Canale ID","post_title":"Titolo del post","post_id":"Post ID","import_data_from_excel":"Importa dati da excel","set_excel_keys":"Imposta chiavi excel","excel_import_succeded":"L\'importazione di Excel è riuscita","excel_import_success_msg":"{0} le righe sono pronte per essere aggiunte, {1} non valide e {2} gli elementi duplicati vengono ignorati","cannot_find_channel":"Impossibile trovare il canale","cannot_find_posts":"Impossibile trovare i post","add_channel":"Aggiungi canale","add_post":"Aggiungi post","edit_channel":"Modifica canale","channel_setting":"Impostazione del canale","edit_post":"Modifica post","edit_posts":"Modifica post","channel_detail":"Dettaglio del canale","remove":"Rimuovere","remove_channel":"Rimuovi canale","remove_channel_confirm":"Sei sicuro di rimuovere questo post? Questo non può essere recuperato.","remove_post":"Rimuovi messaggio","remove_post_confirm":"Sei sicuro di rimuovere questo canale? Questo non può essere recuperato.","preview_mode":"Modalità anteprima","preview_mode_desc":"Questa è un\'anteprima del tuo canale. Tutte le tariffe dei film sono mostrate qui.","edit_user_profile":"Modifica profilo utente","name":"Soprannome","avatar":"Avatar","no_following":"Nessun canale successivo. Clicca per andare a","no_recommend":"Nessun canale consigliato. Clicca per andare a","first_recomment_msg":"Potrebbe volerci un po\' se questa è la prima volta che l\'app viene avviata.","invalid_image":"Immagine non valida","image_not_reachable":"L\'URL di questa immagine non è raggiungibile.","channel_not_found":"Canale non trovato","cannot_get_channel_info":"Impossibile ottenere informazioni sul canale. Questo canale potrebbe essere rimosso dal suo creatore e non essere più disponibile.","validate_error":"Convalida errore","validate_user_name_no_space":"Il nome utente non deve contenere spazi","validate_url_no_space":"L\'URL non deve contenere spazi","validate_user_name_length":"Il nome utente deve avere una lunghezza compresa tra {0} e {1}","validate_user_desc_length":"La descrizione dell\'utente non deve contenere più di {0} caratteri","validate_user_avatar_url":"L\'avatar dell\'utente deve essere un URL con meno di 2048 caratteri","validate_channel_title_length":"Il titolo del canale deve avere una lunghezza compresa tra 1 e 100","validate_channel_desc_length":"La descrizione del canale deve avere una lunghezza compresa tra 10 e 300","validate_channel_image_url":"L\'anteprima del canale deve essere un URL con meno di 2048 caratteri","validate_post_title_length":"Il titolo del post deve avere una lunghezza compresa tra 1 e 100","validate_post_desc_length":"La descrizione del post dovrebbe avere una lunghezza compresa tra 10 e 300","validate_post_image_url":"Il poster deve essere un URL con meno di 2048 caratteri","validate_post_url":"URL ${displayName} non valido","validate_post_url_length":"${displayName} L\'URL non deve superare i 2048 caratteri","film_rate":"Tasso di film","set_film_rate":"Imposta la velocità del film","select_a_rate_before_enter":"È necessario selezionare una tariffa film prima di accedere alla libreria multimediale.","library_available_rate":"Tasso di film disponibile in biblioteca","rate_g":"G – Udienze generali","rate_g_desc":"Ammesse tutte le età. Niente che possa offendere i genitori per la visione da parte dei bambini.","rate_pg":"PG - Suggerimenti per la guida dei genitori","rate_pg_desc":"Alcuni materiali potrebbero non essere adatti ai bambini. I genitori hanno esortato a dare \\"una guida dei genitori\\". Può contenere del materiale che i genitori potrebbero non gradire per i loro figli piccoli.","rate_pg_13":"PG-13 – Genitori fortemente avvertiti","rate_pg_13_desc":"Alcuni materiali potrebbero essere inappropriati per i bambini sotto i 13 anni. I genitori sono invitati a essere cauti. Alcuni materiali potrebbero non essere adatti ai preadolescenti.","rate_r":"R – Limitato","rate_r_desc":"I minori di 17 anni richiedono un genitore accompagnatore o un tutore adulto. Contiene del materiale per adulti. I genitori sono invitati a saperne di più sul film prima di portare con sé i loro figli piccoli.","rate_nc_17":"NC-17 – Solo per adulti","rate_nc_17_desc":"Nessuno sotto i 17 anni ammesso. Chiaramente adulto. I bambini non sono ammessi.","set_as_private":"Imposta come privato","hide_in_explore":"Nascondi questo canale nella pagina Esplora","hidden":"Nascosto","select_a_rate":"Seleziona una tariffa per il film","select_from_tasks":"Seleziona dalle attività","import_from_magnet":"Importazione da magnete:?...","input_magnet_url":"Magnete di ingresso:? URL","task_title":"Titolo dell\'attività","set_title":"Imposta titolo","add_to_local_favorites":"Aggiungi ai preferiti locali","remove_from_local_favorites":"Rimuovi dai preferiti locali","removed_favorite":"Preferito rimosso","import_or_export_favorites":"Importa/esporta preferiti","export_local_favorites":"Esporta i preferiti locali come backup","import_favorites_file":"Importa il file dei preferiti","not_a_favorite_file":"Questo file non è un file di backup preferito","connection_status":"Stato della connessione","gun_server_list":"Nodi di cache","custom_nodes":"Nodi di cache personalizzati","custom_nodes_hint":"I nodi di cache personalizzati verranno applicati dopo il riavvio dell\'app","wait_for_reboot":"In attesa di riavvio...({seconds}s)","reboot_now":"Riavvia ora","reboot_later":"Riavvia in seguito","peer_list":"Nodi diretti","server":"URL del nodo","peer":"Pari","peer_id":"ID nodo","connection":"Connessione","data_source":"Fonte di dati","sync":"Sincronizza","syncing":"Sincronizzazione","sync_completed":"Sincronizzazione completata","got_all_post":"Hai già tutti i post","placeholder_channel_title":"Il nome del tuo canale","placeholder_channel_desc":"Descrizione di questo canale","placeholder_post_title":"Nome film (anno)","placeholder_post_desc":"Descrizione di questo film","private_channel":"Canale privato","creator_blocked":"Creatore bloccato","go_to_library":"Vai in biblioteca?","go_to_library_channel_msg":"Vuoi andare al canale della biblioteca {0}?","magnet_does_not_have_name":"Questo magnete:? url non ha un nome, devi prima aggiungere un titolo al post.","no_available_post":"Nessun post disponibile","following_channel_no_post":"Tutti i tuoi canali seguenti non hanno post disponibili. Ciò potrebbe essere causato da un errore di rete. Se hai già seguito alcuni canali, i post potrebbero essere caricati in seguito.","share_to_library":"Condividi nella libreria","quick_start":"Avvio rapido","quick_start_desc":"Inizia a creare un post con un\'attività o un file","select_file":"Seleziona il file...","select_folder":"Seleziona cartella...","post_options":"Posta opzioni","channel_options":"Opzioni canale","create_new_channel":"Crea nuovo canale","use_existed_channel":"Usa canale esistente","select_existed_channel":"Seleziona il canale esistente","uploaded_by":"{title} caricato da {name}","created_by":"{title} creato da {name}","creating_new_channel":"Creazione nuovo canale...","created_new_channel":"Nuovo canale creato","creating_new_post":"Creazione nuovo post...","created_new_post":"Nuovo post creato","create_new_post":"Crea nuovo post","quick_start_timeout":"{0} timeout. Ciò potrebbe essere causato da un errore di rete. Per favore riprova più tardi.","file_too_large":"File troppo grande","file_too_large_msg":"Questo file è più grande di 4 GB ({size}) e potrebbe richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di continuare?","resolving_folder_files":"Risoluzione dei file delle cartelle...","folder_too_large":"Cartella troppo grande","folder_too_large_msg":"I file in questa cartella sono più grandi di 4 GB ({size} in totale) e potrebbero richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di caricare?","creating_new_task":"Creazione nuova attività...","cannot_create_task":"Impossibile creare l\'attività","cannot_create_task_msg":"Questo può causare qualche errore. Se l\'attività è stata creata correttamente, puoi controllare l\'elenco delle attività in un secondo momento.","cannot_get_task_name":"Impossibile ottenere il nome dell\'attività. Devi prima inserirne uno.","remove_old_task":"Rimuovi la vecchia attività","remove_old_task_desc":"La modalità Web può creare solo un\'attività alla volta. Vuoi rimuovere la vecchia attività?","subtitle_list":"Elenco dei sottotitoli","optional":"opzionale","with_subtitle":"Con sottotitoli {language}","maximumSubtitleNum_limit":"Il numero di sottotitoli ha raggiunto il massimo","add_subtitle_url":"Aggiungi il link per il download dei sottotitoli","cannot_add_subtitle":"Impossibile aggiungere i sottotitoli","cannot_add_subtitle_msg":"Lingua dei sottotitoli non selezionata o collegamento per il download non valido.","support_subtitle_type":"Sono supportati solo i sottotitoli in formato srt e vtt.","recommend_opensubtitles":"Si consiglia di utilizzare il collegamento o l\'ID per il download dei sottotitoli su www.opensubtitles.org.","take_down":"Prendere nota","serious_violation":"Violazione grave","copyright_disputes":"Controversie sul copyright","adults_only":"Solo adulti","takedown_reason":"Motivo della rimozione","takedown_mode":"Modalità abbattimento","admins":"Amministratori","takedown_user":"Rimuovi questo creatore","takedown_channel":"Rimuovi questo canale","takedown_post":"Rimuovi questo post","select_takedown_reason":"Seleziona il motivo della rimozione","takedown_invalid_reason":"Motivo della rimozione non valido","takedown_invalid_user_id":"ID utente non valido. L\'ID deve includere 87 caratteri","takedown_invalid_channel_id":"ID canale non valido. L\'ID deve includere 20 caratteri","takedown_invalid_post_id":"ID post non valido. L\'ID deve includere 20 caratteri","takedown_management":"Abbatti la gestione","users":"Utenti","channels":"Canali","posts":"Messaggi","you":"Voi","preset":"Preimpostato","admin":"Amministratore","committee":"Comitato","about_takedown_mode":"Informazioni sulla modalità di rimozione:\\nPredefinito: configurato nel repository github. Verranno tutti rimossi dalla libreria.\\nAmministratore: tutti i voti degli amministratori verranno rimossi.\\nComitato: almeno la metà degli amministratori che votano a favore verrà rimossa.","cannot_edit_preset":"Non puoi modificare questa riga poiché è una riga preimpostata","cannot_edit_not_vote":"Non puoi modificare questa riga perché non l\'hai votata","remove_vote":"Rimuovi il tuo voto","post_preload_failed":"Impossibile precaricare questo post. Il link per il download potrebbe non essere aggiornato, quindi questo post non può essere riprodotto immediatamente.","about_cache_node":"Informazioni sul nodo della cache","edit_cache_node":"Modifica il nodo della cache","create_cache_node":"Crea nodo cache","about_cache_node_desc":"${displayName} utilizza il server della pistola come nodo della cache. È possibile modificare i nodi personalizzati nelle impostazioni anticipate","learn_how_to_deploy_gun":"Scopri come distribuire il tuo server di armi","repeat_add":"L\'attività è stata aggiunta, non aggiungerla di nuovo","upload":"Caricamento","download":"Scaricamento","delete":"Eliminare","delete_task":"Elimina attività","delete_confirm_message":"Eliminare questa attività? Questo è irrevocabile","also_delete_files":"Elimina anche i file","default_delete_files":"Per impostazione predefinita, elimina i file scaricati dopo aver rimosso l\'attività","not_now":"Non adesso","delete_autoupload_confirm":"Questa attività contiene il file inserito nella directory di caricamento automatico. Elimina questa attività eliminerà anche il file.","delete_anyway":"Elimina comunque","upload_too_many_files":"Carica troppi file","ask_if_unlimit_upload_amount":"La directory di caricamento automatico contiene troppi file. Vuoi disabilitare la limitazione della quantità di upload? *Ciò potrebbe causare problemi di prestazioni","disable_limitation":"Disabilita limitazione","not_length":"L\'operazione su più file non è attualmente supportata, si prega di collaborare","download_torrent":"Download file","upload_torrent":"Caricare un file","files":"File","file":"File","folder":"Cartella","start_all":"Inizia tutto","pause_all":"Metti in pausa tutto","remove_all":"Rimuovi tutto","upload_all":"Carica tutto","clear_history":"Cancellare la cronologia","pause_all_finish_payments":"Questo terminerà tutti i pagamenti.","accelerating":"Accelerando","link_task":"Attività di collegamento","torrent_task":"Attività di archiviazione","ok":"OK","cancel":"Annulla","download_directory_position":"Scarica la posizione della directory","torrent_file":"file di attività","magnetic_link_incorrect":"Il formato del collegamento non è corretto","delete_fail":"Elimina fallita","pause":"Pausa","paused":"In pausa","stop_torrent":"Fermare","seed":"Seme","resume":"Riprendere","downloading":"Download","downloaded":"Scaricato","uploading":"Caricamento in corso","auto_uploading":"Caricamento automatico","uploaded":"Caricato","pending":"In attesa di altri compiti","verifying":"Verifica","waiting_for_verify":"In attesa di verifica","seeding":"Semina","completed":"Completato","status":"Stato","task_name":"Nome dell\'attività","size":"Misurare","progress":"Progresso","sort":"Ordinare","ascending":"Ascendente","descending":"Discendente","file_loading":"Caricamento file...","loading":"Caricamento","unknown_status":"Sconosciuto","play_while_downloading":"Giocare...","upload_or_play":"Carica / Riproduci","play":"Giocare","ask_if_upload_file":"Caricare un file?","ask_if_upload_or_play":"Caricare o riprodurre file?","torrent_error":"Errore durante l\'aggiunta dell\'attività:","no_peers":"Riprova per più di {0} volte e nessun peer è disponibile","torrent_exists":"L\'attività esiste già.","show_origin_torrent":"Ottieni il file o l\'URL dell\'attività originale","show_directory":"Apri la directory di questo torrent","task_num":"Compiti","total_upload_speed":"Velocità di caricamento","total_download_speed":"Velocità di download","path_missing":"Errore: impossibile trovare il percorso del torrent","origin_not_found":"Impossibile trovare le informazioni sull\'attività di origine.","text_copied":"L\'URL Magnum viene copiato negli appunti","copy_magnet_uri":"Copia magnete:? URI","copy_download_uri":"Copia l\'URI di download","copy_share_uri":"Copia l\'URI di condivisione","uri_copied":"L\'URI è stato copiato con successo negli appunti","uri_copy_failed":"Impossibile copiare l\'URI","more":"Di più...","toggle_list_mode":"Attiva/disattiva la modalità elenco","comment":"commento","operations":"Operazioni","open_directory":"Apri rubrica","no_downloading_task":"Nessuna attività di download","remove_all_downloading_tasks":"Rimuovere tutte le attività di download?","remove_all_upload_tasks":"Rimuovere tutte le attività di caricamento?","remove_autoupload_files":"Rimuovi i file di caricamento automatico","remove_all_history":"Rimuovere tutta la cronologia?","remaining":"Residuo","created_time":"Tempo creato","used_time":"Tempo utilizzato","completed_time":"Tempo completato","yesterday":"Ieri","before_yesterday":"{empty}","earlier":"Prima","miss_file":"Mancano alcuni file","delete_miss_file_task":"Ci sono file fome mancanti in {0}.","common_peer":"Pari comune","ab_peer":"${displayName} peer","ab_peer_verified":"Peer ${displayName} verificato","ab_peer_available":"${displayName} peer disponibili","alphabiz_accelerating":"${displayName} in accelerazione","income":"Reddito","income_info":"Reddito(oggi/totale)","total_income_info":"Entrate: {0}(oggi) / {1}(totale)","login_to_see_income":"Accedi per vedere le statistiche sul reddito","credit_cost":"Costi del credito","downloaded_by_payment":"Scaricato da Payments","file_not_found":"Impossibile trovare questo file in locale","no_task":"Non chiedere","no_matched_task":"Nessuna attività corrispondente","space_not_enough":"Lo spazio su disco non è sufficiente","need_more_space":"Hai bisogno di {0} di spazio in più ma il disco corrente ha {1} liberi ({2} riservati). Le attività sono sospese. Il precaricamento della libreria è disabilitato. Puoi riattivarlo in [Impostazioni - Avanzate].","seeders":"Seminatrici","last_update":"Ultimo aggiornamento","connecting":"Collegamento","connected":"Collegato","request_timed_out":"Tempo scaduto per la richiesta","connection_failed":"Connessione fallita","invalid_download_url":"URL di download non valido","download_link":"Link per scaricare","empty_files":"Nessun file nella directory","duplicate_task":"Compito duplicato","duplicate_tracker":"Tracker duplicato","this_task_not_ready":"Questa attività non è pronta. Metti in pausa questa attività la rimuoverà direttamente.","some_task_not_ready":"Alcune attività non sono pronte. Mettere in pausa queste attività le rimuoverà direttamente.","failed_to_delete_files":"Impossibile eliminare i file","failed_to_delete_files_desc":"Impossibile eliminare alcuni file dell\'attività. Potrebbe essere necessario eliminarli manualmente","unknown_error":"Errore sconosciuto: {0}","more_files_are_not_shown":"({0} altri file non vengono visualizzati per motivi di prestazioni)","no_available_file":"Nessun file disponibile. Attendere che l\'attività sia pronta.","service_worker_error":"Impossibile caricare ServiceWorker per giocare. Il tuo browser potrebbe non supportare questa funzione o ServiceWorker non è attivato. Potrebbe essere necessario ricaricare questa pagina e riprovare.","add_task_first":"Devi prima aggiungere l\'attività.","player_task_time":"Il giocatore impiega troppi secondi a prepararsi per il gioco. Potrebbe esserci qualcosa di sbagliato nell\'attività.","web_mode_hint":"La modalità web di ${displayName} supporta solo peer WebRTC. Per un\'esperienza migliore, scarica l\'app desktop ${displayName}.","web_mode_task_hint":"Fai clic sui pulsanti sottostanti per aggiungere un\'attività. Puoi aggiungere solo un\'attività alla volta.","save_to_local":"Salva in locale","save_as_zip":"Salva come CAP","creating_save_file":"Creazione del file di salvataggio...","upload_as_one_directory":"Carica come un\'unica directory","upload_as_single_files":"Carica come file singoli","web_mode_upload_single":"Puoi caricare un solo file in modalità web","download_success":"Scarica con successo","download_fail":"Scaricamento fallito","wait_for_downloaded_to_share":"Attendere il download dell\'attività prima di condividerla.","download_with_cellular":"Scarica le attività utilizzando il cellulare","download_with_cellular_desc":"Stai utilizzando una rete cellulare. Le attività di download con cellulare potrebbero richiedere costi aggiuntivi da parte del tuo operatore.","download_with_cellular_confirm":"Scarica ancora con il cellulare","language":"Lingua","appearance":"Aspetto","darkModeSystem":"Sistema","darkModeLight":"Leggero","darkModeDark":"Buio","basic_setting":"Di base","hideMenu":"Nascondi menu app (solo Windows e Linux)","autoHide":"Nascondi automaticamente la finestra","autoStart":"Apri al login","restore":"Mantieni le dimensioni e la posizione della finestra quando esci","autoStartUnfinished":"Riprendi automaticamente tutte le attività non completate","default_download_path":"Percorso predefinito","download_directory":"Scarica Rubrica","upload_directory":"Carica directory","enable_auto_upload":"Abilita il caricamento automatico","unlimit_upload_amount":"Quantità di caricamento illimitata","unlimit_upload_warning":"Consenti il ​​caricamento di grandi quantità di file. Ciò potrebbe causare problemi di prestazioni","start":"Avviare","transport_setting":"Trasmissione","upload_limit":"Limite di caricamento","download_limit":"Limite di download","payed_user_share_rate":"Tasso di condivisione degli utenti a pagamento","unlimited":"Illimitato","limit_input_error":"Il numero limite deve essere positivo","BT_setting":"Impostazioni attività","saveLinkSeed":"Salva collegamento come file attività","autoDownload":"Scarica automaticamente link e contenuti","continuousSeeding":"Continua a seminare finché non lo interrompi manualmente","seedSharingRate":"Rapporto seme","seedTime":"Tempo di semina (minuti)","task_manage":"Gestione dei compiti","maximumDownloadNum":"Attività attive massime","maximumConnectionsNum":"Connessione massima per server","range_error":"L\'intervallo dovrebbe essere compreso tra {0} e {1}","random":"casuale","breakpointContinuation":"Continua","automaticSkip":"Mostra automaticamente il download dopo aver aggiunto l\'attività","afterNotification":"Notifica dopo il completamento del download","deleteConfirm":"Non è richiesta alcuna conferma prima di eliminare l\'attività","submit":"Salva e applica","discard":"Scartare","reset":"Ripristina","reset_all_settings":"Resettare tutte le impostazioni?","preferences_resetted":"Preferenze ripristinate","traditional_chinese":"cinese tradizionale","japanese":"giapponese","english":"Inglese","chinese":"Cinese semplificato","advancedSettings":"Avanzate","autoUpdate":"Auto Update","autoCheckUpdate":"Controlla automaticamente l\'aggiornamento","proxy":"Delega","useProxyService":"Abilita proxy","trackerService":"Server di monitoraggio","recommendUse":"Consigliato","autoUpdateTrackerServiceList":"Aggiorna automaticamente l\'elenco dei tracker ogni giorno","manualUpdateTracker":"Aggiornamento manuale","manualUpdateSuccess":"Aggiorna correttamente i server del tracker","manualUpdateFail":"Impossibile aggiornare da:","listenPort":"Ascolta Porti","BTlistenPort":"Porta di trasmissione dati","DHTlistenPort":"Porta hash distribuita","protocols":"Protocolli compatibili","setDefaultClientForFollowingProtocols":"Imposta come client predefinito per i seguenti protocolli","magnetUrl":"Magnete","video_file":"File video","audio_file":"Fascicolo audio","security":"Sicurezza","impersonateUserAgent":"Agente utente fittizio","RPCauthorizationkey":"Segreto RPC","viewDocument":"Visualizza il manuale segreto RPC","developer":"Sviluppatore","applicationLogPath":"Percorso del registro dell\'app","downloadSessionPath":"Scarica il percorso della sessione","resetDownloadSessionRecord":"Reimposta sessione di download","restoreInitialSettings":"Ripristino delle impostazioni di fabbrica","preferences_set_successfully":"Salva le preferenze con successo!","preferences_set_fail":"Il salvataggio delle preferenze fallisce!","change_not_save":"Modifiche non salvate","discard_all_changes":"Annullare tutte le modifiche e andarsene?","stay_in_page":"Rimani nella pagina","disk_usage":"Uso del disco","pause_if_less_space":"Metti in pausa e notifica se lo spazio è inferiore a (MB)","default_video_player":"Lettore video predefinito","video_cache_time":"Cache di riproduzione in streaming","minutes":"minuti","system_default":"Default del sistema","media_player":"Media Player","library_film_rate":"Tasso di film disponibile","library_show_explore":"Mostra la pagina [Esplora].","library_setting":"Impostazione della libreria","library_sync_setting":"Impostazione della sincronizzazione della libreria","keychain_sync_status":"Stato di sincronizzazione del portachiavi","sync_with_aws":"Sincronizza il portachiavi con Amazon Web Services","backup_to_local":"Backup su file locale","enable_sync_with_aws":"Abilita la sincronizzazione con AWS","disable_sync_with_aws":"Disabilita la sincronizzazione con AWS","disable_sync_with_aws_desc":"Questo rimuoverà la chiave salvata nel server. Assicurati di aver già esportato la tua chiave.","input_independent_password":"Immettere una password indipendente","change_independent_password":"Cambia password indipendente","password_error":"Password errata","password_invalid":"password non valida","key_existed":"La chiave esisteva","key_not_found":"Chiave non trovata","library_recommend":"Libreria consigliata","show_all_channels":"Mostra tutti i canali nella pagina dei consigli della biblioteca","not_logged_in":"Accesso non effettuato","login_to_continue":"Accedi per continuare","mnemonic_code":"Codice mnemonico","wordlist":"Elenco di parole","restore_code":"Ripristina da codice","generate_code":"Genera codice","export_mnemonic_code":"Esporta codice mnemonico","import_mnemonic_code":"Importa il codice mnemonico","print":"Stampa","save_as_txt":"Salva come txt","save_as_pdf":"Salva come pdf","from_file":"Dal file","not_valid_mnemonic_code":"Questo non è un codice mnemonico valido","cannot_parse_code_as_key":"Impossibile analizzare questo codice mnemonico come chiave di libreria","import_key_hint":"Sei sicuro di importare questa chiave? Questo ripristinerà la tua vecchia chiave nella libreria.","import_key_confirm":"Sì, importalo.","library_preload":"Precarica le attività dalla libreria","show_preload":"Mostra le attività di precarico","set_download":"Imposta la directory di download","set_download_desc":"Per la versione macOS App Store, la directory di download predefinita si trova nella sandbox dell\'app e verrà eliminata dopo la disinstallazione dell\'app. Se desideri conservare i file di download, devi selezionare manualmente una directory di download diversa.","home":"Casa","home_caption":"Download/caricamento e file multimediali","library":"Biblioteca","library_caption":"Esplora le risorse multimediali","player":"Giocatore","player_caption":"Media Player","credits":"Crediti","credits_caption":"Controlla il saldo del conto","account":"Account","account_caption":"Accedi/Registrati/Gestisci","settings":"Impostazioni","settings_caption":"Impostazioni per app, lettore, account","development":"Sviluppo","development_caption":"Modalità sviluppatore per uso interno","basic":"Di base","basic_caption":"Impostazioni di base","advanced":"Avanzate","advanced_caption":"Impostazioni avanzate","blockchain":"Portafoglio","blockchain_caption":"${displayName} Portafoglio decentralizzato","internal_notice":"Avviso di rilascio interno","release_notes":"Note di rilascio","terms_and_conditions":"Termini e Condizioni","license_and_listen_notices":"Licenza e ascolto Avvisi open source","close":"Vicino","success":"Successo","fail":"Fallire","account_email_invalid_address":"indirizzo email non valido","account_email_invalid_domain":"Dominio e-mail non valido","account_email_unknown_status":"Stato di recapito email sconosciuto","account_email_unavailable_address":"Indirizzo email non disponibile","account_email_suppressed_address":"Indirizzo email soppresso","account_loading":"Caricamento...","account_is_required":"è obbligatorio","account_sign_in_your_account":"Registrazione","account_username":"Nome utente","account_username_email_phone":"Numero di telefono o e-mail","account_password":"Parola d\'ordine","account_new_password":"Nuova password","account_re_enter_password":"Reinserire la password","account_password_not_equal":"Due password non sono uguali","account_new_password_same":"La password è la stessa della password originale","account_forgot_your_password":"Hai dimenticato la password?","account_reset_password":"Resetta la password","account_sign_in":"Registrazione","account_signed_in":"Registrato in","account_sign_up":"Iscrizione","account_find_your_account":"Trova il tuo account","account_enter_your_username":"Inserisci il tuo numero di telefono o email","account_search":"Ricerca","account_email_sent_tip":"Un\'email con un codice di verifica è stata inviata alla tua email:","account_phone_sent_tip":"Un SMS con un codice di verifica è stato inviato al tuo telefono:","account_email_phone_sent_tip":"L\'e-mail e l\'SMS con il codice di verifica sono stati inviati rispettivamente alla tua e-mail e al tuo telefono:","account_software_token_tip":"MFA è abilitato per il tuo account. Per terminare l\'accesso, accendi o visualizza il tuo dispositivo e digita il TOTP","account_reset_your_password":"reimposta la tua password","account_verification_code":"Codice di verifica","account_resend_code":"Codice di rispedizione","account_code_has_been_resent":"Il codice di verifica è stato inviato di nuovo","account_password_has_been_reset":"La password è stata reimpostata","account_submit":"Invia","account_sign_up_your_account":"Registra il tuo account","account_fill_required_fields":"Compila i campi richiesti di seguito.","account_fill_optional_fields":"Compila i campi facoltativi di seguito.","account_email":"E-mail","account_invitation":"Invito","account_invitation_code":"Codice invito","account_i_accept":"Accetto","account_license_terms":"la licenza e le condizioni","account_next":"Prossimo","account_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini.","account_verify_fill_optional_fields":"Verifica e compila i campi facoltativi.","account_nickname":"Soprannome","account_gender":"Genere","account_male":"Maschio","account_female":"Femmina","account_not_say":"Non dire","account_birthday":"Compleanno","account_phone_number":"Numero di telefono","account_locale":"Locale","account_tip_verified":"Verificato, accesso...","account_verified":"verificato","account_unverified":"non verificato","account_signed_up":"Iscritto","account_verify_your_identity":"Verifica la tua identità","account_finish":"Fine","account_signed_out":"Disconnesso","account_change_password":"Cambiare la password","account_change_email":"Cambia email","account_change_phone_number":"Cambia numero di telefono","account_sign_out":"disconnessione","account_current_password":"Password attuale","account_re_enter_new_password":"Reinserire la nuova password","account_personal_information":"Informazione","account_edit":"modificare","account_reset":"Ripristina","account_greeting":"Ciao,","account_cancel":"Annulla","account_change":"modifica","account_not_set":"non impostato","account_setting":"collocamento","account_copy_code":"copiare il codice","account_account_setting":"Account","account_task_page":"Attività di credito","account_setting_caption":"Cambia password / Modifica informazioni","account_security":"Sicurezza","account_want_to_join":"Voglio aderire?","account_sign_in_now":"Registrazione","account_changed":"Cambiato","account_clipboard_with_invitation_code":"Codice invito copiato","account_clipboard_with_code":"Il Codice copiato","account_invitation_code_dialog_tip":"Invierai al tuo amico un\'e-mail o un messaggio di testo con un codice di invito:","account_available":"disponibile","account_invited":"invitato","account_used":"usato","account_invitation_code_sent":"Il codice di invito è stato inviato","account_invitation_channel_required":"Compila almeno un canale di invito","account_no_verification_code":"Non riesci a ricevere il codice di verifica?","account_no_phone_number":"Nessun numero di telefono?","account_sign_up_by_email":"Iscriviti tramite e-mail","account_no_email":"Nessuna e-mail?","account_sign_up_by_phone_number":"Iscriviti per numero di telefono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se non è presente TOTP, impostare prima TOTP","account_setup_totp":"Imposta TOTP","account_contact_information":"Informazioni sui contatti","account_delete_account":"Eliminare l\'account","account_deleted":"Eliminato","account_can_not_mfa":"MFA nei guai?","account_set_mfa_type":"Configurazione MFA","account_disable_mfa":"Disabilita l\'autenticazione a più fattori","account_disabled_mfa":"AMF disabilitato","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOP","account_not_recommend":"Non consigliato","account_oauth_sign_in_with":"Accedi con {provider}","account_sign_in_failed":"Impossibile accedere","account_tip_oath_sign_up":"L\'e-mail corrispondente all\'attuale account {provider}: {email} non ha ancora creato un account","account_tip_confirm_delete_account":"Immettere la password dell\'account corrente per confermare che si desidera eliminare l\'account corrente. (Gli account eliminati non possono essere ripristinati)","account_tip_config_mfa":"Puoi scegliere di utilizzare SMS o password monouso basata sul tempo (TOTP) come autenticazione secondaria","account_error_can_not_enable_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'MFA","account_tip_can_not_enable_sms_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'autenticazione a più fattori SMS","account_tip_can_not_enable_totp_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare TOTP MFA","account_tip_setup_totp":"Usa app come Authenticator per scansionare il codice QR qui sotto o copia il codice manualmente per aggiungere un token di sicurezza","account_tip_verify_totp":"Verifica il tuo TOTP","account_link_your_social_account":"Associa il tuo account social","account_unlink_your_social_account":"Scollega account social","account_tip_confirm_link":"Sei sicuro di voler associare l\'account corrente al tuo account {provider}?","account_tip_confirm_unlink":"Sei sicuro di cancellare il tuo account {provider} associato?","account_tip_linking":"legame...","account_tip_unlinking":"Non vincolante...","account_linked":"Limite","account_unlinked":"Non legato","account_error_can_not_link_to_the_linked_account":"L\'attuale account social è associato a un altro account","account_error_can_not_link_to_the_mismatched_email":"L\'account corrente e l\'indirizzo email dell\'account social non sono coerenti","account_error_can_not_link_before_email_verified":"L\'account social non può essere collegato perché l\'account corrente non è associato a un\'e-mail verificata","account_tip_confirm_verify_email_phone":"Se inviare un codice di verifica all\'e-mail e al numero di telefono dell\'account corrente per verificare la tua identità?","account_tip_confirm_verify_phone":"Se inviare un codice di verifica al numero di telefono corrente per verificare la tua identità?","account_error_1_message_60_seconds":"È possibile inviare un solo SMS o e-mail ogni 60 secondi, attendere altri {delta} secondi","account_error_10_messages_per_day":"Ogni telefono cellulare o e-mail può inviare solo 10 messaggi entro 24 ore","account_error_network":"Si è verificato un problema con la rete, riprova più tardi","Network Error":"Si è verificato un problema con la rete, riprova più tardi","account_error_user_not_exist":"l\'utente non esiste","account_error_incorrect_username_or_password":"nome utente o password errati","account_error_incorrect_original_password":"Password originale errata","account_error_incorrect_password":"password errata","account_error_username_not_found":"Nome utente non trovato","account_error_can_not_reset_for_no_verified":"Impossibile reimpostare la password per l\'account non verificato","account_error_invalid_verification_code":"Codice di verifica errato, riprova","account_error_expired_verification_code":"Codice di verifica scaduto, riprova","account_error_password_not_long_enough":"La password non è abbastanza lunga","account_error_attempt_limit_exceeded":"Limite di tentativi superato, riprova dopo un po\' di tempo.","account_error_password_attempts_exceeded":"Tentativi password superati.","account_error_invalid_phone_number_format":"Formato del numero di telefono non valido","account_error_no_cell_phone_prefix":"Seleziona il prefisso per il numero di telefono","account_error_username_already_exists":"Il nome utente esiste già","account_error_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini","account_error_inactive_code":"Il codice di invito non è un codice attivato","account_error_non_existent_code":"Il codice di invito è inesistente","account_error_unexpected":"Errore inaspettato","account_error_can_not_change_email_before_phone_bound":"L\'e-mail non può essere modificata prima che il numero di telefono sia associato","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail non può essere modificata prima di annullare l\'associazione dell\'account social","account_error_can_not_change_phone_before_email_bound":"Il numero di telefono non può essere modificato prima che l\'e-mail sia vincolata","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossibile modificare l\'e-mail o il numero di cellulare prima di disabilitare l\'MFA","account_error_not_supported_yet":"Attualmente non supportato","account_error_same_email":"Il nuovo indirizzo email non può essere uguale all\'indirizzo email originale","account_error_same_phone":"Il nuovo numero di telefono non può essere uguale al numero di telefono originale","account_error_email_not_exists":"L\'indirizzo email non esiste","account_error_email_already_exists":"Esiste già un account con l\'indirizzo email indicato.","account_error_phone_already_exists":"Esiste già un account con il numero di telefono indicato.","account_error_mfa_token_mismatch":"Codice token software non corrispondente","account_error_recaptcha_not_loaded":"C\'è un problema con la rete. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_recaptcha_validation_failed":"Convalida ReCAPTCHA non riuscita. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_sign_in_in_progress":"Tentativo di accesso in sospeso già in corso","account_field_range":"Limita l\'immissione di {0}-{1} caratteri","account_field_only_alphanumeric":"Supporta solo caratteri alfanumerici","account_field_only_alphanumeric_and_symbol":"Supporta solo caratteri alfanumerici e simboli","account_field_only_chinese_alphanumeric_space_underline":"Supporta solo caratteri alfanumerici, spazio, trattino basso","account_field_prefix_without_number_space":"Il primo carattere non può essere un numero o uno spazio","account_field_suffix_without_space":"Non può terminare con uno spazio","account_field_without_repeat_space":"Non è possibile utilizzare più spazi di seguito","account_field_can_not_only_alphanumeric":"Non puoi usare solo lettere o numeri","account_field_must_have_number_characters":"Deve contenere caratteri numerici","account_field_verification_code":"Il codice di verifica deve essere di sei cifre","account_field_invitation_code":"Il codice di invito deve essere alfanumerico","account_field_phone_number":"Formato del numero di telefono non valido","account_invalid_email_format":"formato email non valido","account_sign_out_confirm":"Sei sicuro di uscire? Questo interromperà tutte le attività.","account_sign_out_anyway":"Esci comunque","account_signing_out":"Uscita...","account_request_save_settings":"Le impostazioni non vengono salvate. Devi salvare le modifiche prima di uscire.","pay":"Paga","pay_with_credit":"Paga per l\'accelerazione del download. Ha bisogno di circa {0} di credito","pay_with_credit_payed":"Accelerando. Ha ancora bisogno di circa {0} di credito","create_payment":"Crea pagamento","pay_target":"Bersaglio","pay_for_torrent":"Paga per {0}","your_subid":"Il tuo ID secondario","your_credits":"I tuoi crediti","pay_point_for_data":"Paga {0} punto per dati {1}","auto_renew":"Abilita il rinnovo automatico","transaction_details":"Dettagli di Transazione","transaction_id":"Id","transaction_payer":"Pagatore","transaction_payee":"Beneficiario","transaction_category":"Categoria","transaction_changed_amount":"Importo modificato","transaction_meta":"Meta","transaction_status":"Stato","transaction_creation_time":"Tempo di creazione","receipt_code":"Codice scontrino","transfer_amount":"Importo del trasferimento","code_the_receipt_code":"Copia il codice della ricevuta qui sotto per il pagatore","fill_the_receipt_code":"Bonifico compilando il codice di pagamento fornito dal beneficiario","expense":"Spese","copied":"Copiato","transfer":"Trasferimento","receive":"Ricevere","copy":"copia","withdraw_fund":"Ritiro del Fondo","category_paydata_payer":"Costo dei dati","category_paydata_payee":"Entrata di dati","category_transfer":"Trasferimento","category_bonus":"Bonus","category_recharge":"Ricaricare","status_pending":"in attesa di","status_completed":"completato","status_finish":"fine","status_failed":"fallito","tip_invalid_receiver":"Codice ricevitore non valido","tip_invalid_amount":"L\'importo del credito deve essere un float compreso tra 0 e 1000 (la precisione minima è 0,001)","credit_get_more":"Ottieni più crediti","credit_no_data":"Nessun dato disponibile","credit_loading":"Caricamento...","credit_not_enough_amount":"Crediti insufficienti","credit_amount_not_enough":"Crediti insufficienti","credit_payee_not_exist":"Il beneficiario non esiste","credit_invalid_amount":"Importo del credito non valido","credit_can_not_transfer_to_yourself":"Impossibile trasferire a te stesso","credit_latest":"Ultimo","credit_error_network":"Si è verificato un problema con la rete, riprova più tardi","add_subtitles":"Aggiungi sottotitoli","open_file":"Apri il file...","advanced_options":"Opzioni avanzate","title":"Titolo","location":"posizione","subtitle_file":"file di sottotitoli","unsupported_subtitle_type":"Il tipo di file {0} non è un tipo di sottotitoli supportato","not_default_player":"Il lettore video predefinito non è impostato","this_is_an_audio_file":"Questo è un file audio","the_added_subtitle_already_exists":"Il sottotitolo aggiunto esiste già","stop_stream_player":"Lo streaming multimediale è stato interrotto perché l\'attività è stata sospesa o eliminata","stop_player":"Il lettore è stato chiuso perché il file è stato eliminato","playing_timeout_hint":"I tempi di attesa sono scaduti. Si prega di controllare l\'attività","autoplay_hint":"La riproduzione automatica potrebbe essere bloccata dal tuo browser. Se il giocatore non sta giocando, prova a fare clic sullo schermo per continuare","remove_playing_confirm":"{0} è ancora in riproduzione, rimuoverlo fermerà il giocatore. Sei sicuro di rimuoverlo?","unsupported_in_browser":"Non ancora supportato in modalità browser","client":"Cliente","warning":"Avvertimento","enable":"Abilitare","disable":"disattivare","auto":"Auto","encrypt_connection":"Crittografare la connessione","encrypted_connection":"Connessione crittografata","non_encrypted_connection":"Connessione non crittografata","connected_wires_not_disconnect":"I cavi collegati non verranno scollegati","audio":"Audio","video":"video","image":"Immagine","subtitle":"sottotitolo","zip":"cerniera lampo","text":"testo","unknown":"sconosciuto","add":"Aggiungere","undo":"Disfare","backup":"Backup","not_default_app":"${displayName} non è la tua app predefinita per torrent e media, vuoi impostarla come predefinita?","dont_show_again":"Non mostrare più","go_to_settings":"Vai alle impostazioni","about_alphabiz":"Circa ${displayName}","last_check_at":"Ultimo controllo alle","update_channel":"Aggiorna canale","check_for_update":"Ricerca aggiornamenti","checking_for_update":"Controllo dell\'aggiornamento...","no_update_available":"Nessun aggiornamento disponibile","update_available":"Aggiornamento disponibile","update_now":"Aggiorna ora","update_later":"Aggiorna dopo","click_to_update":"Fare clic sul pulsante AGGIORNA ORA per scaricare e aggiornare","update_failed":"Aggiornamento non riuscito","update_failed_message":"Si è verificato un errore durante l\'aggiornamento:","check_shasum_failed":"Impossibile controllare l\'integrità per il programma di installazione","downloading_update":"Download dell\'aggiornamento...","ready_to_update":"Pronto per l\'aggiornamento","restart_to_update":"L\'aggiornamento viene scaricato. ${displayName} uscirà per aggiornarsi per qualche istante.","already_latest":"La versione corrente ({0}) è già l\'ultima","update_timeout":"Timeout di aggiornamento","no_available_release":"Nessuna versione disponibile","no_available_installer":"Nessun programma di installazione disponibile","feedback":"Feedback","select_a_type":"Seleziona un tipo","category":"Categoria","select_a_category":"Seleziona una categoria","require_title":"Il titolo è obbligatorio","describe_your_problem":"Descrivi il tuo problema","report_a_bug":"Segnalare un bug","request_a_new_feature":"Richiedi una nuova funzionalità","download_or_upload":"Scaricare caricare","others":"Altri","submit_with_system_info":"Invia con informazioni di sistema","submit_feedback":"Invia feedback","tweet_us":"Twittaci","tweet_too_long":"Il tweet è troppo lungo","delete_characters":"Elimina almeno {0} caratteri","rest_characters":"Puoi inserire {0} più caratteri","update_alphabiz":"Aggiorna ${displayName}","current_version":"Versione attuale","cancel_update":"Annulla Aggiornamento","slow_download_speed":"Download troppo lento","slow_download_speed_caption":"Il download del programma di installazione è troppo lento ora. Controlla lo stato della rete","update_canceled":"Aggiornamento annullato","current_version_release_time":"Tempo di rilascio della versione corrente","expired_app":"${displayName} Scaduto","version_out_of_date":"Versione obsoleta","have_to_update":"La versione di ${displayName} non è aggiornata. Alcuni protocolli o API sono obsoleti. Devi aggiornare ${displayName} prima di continuare.","exit_alphabiz":"Esci ${displayName}","exit_and_update":"Esci e applica l\'aggiornamento","new_version_hint":"La nuova versione è disponibile","no_new_version":"Nessuna nuova versione disponibile","current_is_latest":"La versione attuale è già l\'ultima","click_to_check_update":"Fare clic sul pulsante [VERIFICA AGGIORNAMENTI] per verificare la presenza di aggiornamenti","download_latest_version_from_website":"Visitare il sito Web ufficiale per scaricare l\'ultima versione","to_the_website":"Al sito web","network_diagnotic":"Diagnostica di rete","diagnotic":"Diagnostico","click_to_check":"Fare clic per verificare","click_to_check_again":"Fare clic per controllare di nuovo","checking":"Controllo","online":"in linea","offline":"disconnesso","dns_look_up":"Ricerca DNS","error":"Errore","aws_service":"Servizio AWS","network_pings":"Ping di rete","not_found":"Non trovato","packet_loss":"Perdita di pacchetti","official_site":"Sito ufficiale","download_test":"Scarica Prova","test_task":"Compito di prova {0}","download_failed":"Scaricamento fallito","second_spend":"{0} s spendere","open_default_player_failed":"Impossibile aprire il lettore predefinito","copied_to_clipboard":"Copiato negli appunti","go_to":"Vai a","region_not_available":"Regione non disponibile","region_not_available_message":"Scusa! La tua regione non è disponibile per utilizzare questa app. Questa app si chiuderà dopo {0} secondi","confirm":"Confermare","no_available_result":"Nessun risultato disponibile","invalid_password_format":"formato della password invalido","invalid_password_format_same":"La password è la stessa della password originale","error_password":"Password errata","keychain_setting":"Portachiavi","setting_description":"Archiviazione cloud: salva i dati chiave nel cloud.\\nModifica password: consente di modificare la password per la chiave del catalogo multimediale.\\nMnemonico: un metodo alternativo per generare e ripristinare le chiavi.\\nImporta chiave locale: importa la chiave salvata localmente nel catalogo multimediale.\\nChiave di esportazione: salva i dati della libreria multimediale corrente in locale o nel cloud.\\nChiave di backup su cloud: aggiorna i dati della libreria multimediale corrente sul cloud per il backup.","refresh_status":"Aggiorna stato","confirm_import_key":"Conferma la chiave di importazione","confirm_update_cloud_key":"Hai già una chiave nel cloud. L\'aggiornamento della chiave sovrascriverà la chiave originale. Sei sicuro di voler aggiornare la chiave archiviata nel cloud?","export_key_with_cloud":"Immettere la password indipendente impostata per esportare la chiave della libreria archiviata nel cloud e bloccare il file della chiave con la password di sblocco","store_cloud_key_prompt_password":"Immettere una password indipendente per archiviare la chiave della libreria nel cloud","update_cloud_key_prompt_password":"Imposta una password indipendente per crittografare la chiave della libreria, quindi aggiornala nel cloud","enable_cloud_storage_prompt_password":"Imposta una password per la chiave memorizzata nel cloud, attraverso la quale puoi recuperare la chiave dal cloud","input_unlock_password":"Imposta la password di sblocco","export_local_prompt_password":"Si prega di impostare una password di sblocco per crittografare il file chiave. Non salveremo questa password per te, quindi se perdi la password, non sarai in grado di sbloccare la tua chiave della biblioteca","require_unlock_password":"Il file chiave è bloccato, inserisci la password di sblocco","require_independent_password":"Inserisci la password indipendente per ottenere la chiave memorizzata nel cloud","import_local_prompt_password":"Il file chiave è bloccato, inserisci la password di sblocco","select_encrypt_mode":"Seleziona la modalità di crittografia","update_cloud_key":"Aggiorna la chiave archiviata nel cloud","backup_to_cloud":"Eseguire il backup della chiave della libreria nel cloud","save_local":"Salva la chiave della libreria come file crittografato locale","create_new_key":"Crea una nuova chiave di libreria","creating_lib_key":"Creazione della chiave della libreria...","loading_lib_key":"Caricamento della chiave della libreria...","failed_to_create_lib_key":"Impossibile creare la chiave della libreria","failed_to_load_lib_key":"Impossibile caricare la chiave della libreria","import_local_key":"Importa la chiave localmente","import_lib_key_from_local":"Importa una chiave di libreria in locale","import_from_cloud":"Importa la chiave della libreria dal cloud","create_or_import_key":"Crea o importa la chiave della libreria","create_or_import_key_desc":"La chiave della libreria è una chiave indipendente utilizzata per recuperare e pubblicare contenuti con un database decentralizzato.","store_your_lib_key":"Memorizza la chiave della libreria","export_cloud_key":"Esporta chiave dal cloud","export_current_key":"Esporta chiave corrente","change_password":"Cambiare la password","enable_cloud_storage":"Abilita l\'archiviazione cloud","disable_cloud_storage":"Disabilita l\'archiviazione cloud","disable_cloud_storage_desc":"Disabilitare l\'archiviazione cloud rimuoverà la chiave salvata nel cloud, assicurati che la chiave sia salvata localmente","sync_at":"Sincronizza a: {time}","cloud_storage_enabled":"Sincronizza il portachiavi con {storage}","cloud_storage_disabled":"Archiviazione cloud disattivata","saved_locally":"Salvato localmente","export_key":"Esporta file chiave","cloud_independent_password":"Password indipendente dal cloud","key_file_unlock_password":"Password di sblocco del file chiave","re_enter_unlock_password":"Reinserire la password di sblocco","independent_password_not_enabled":"La password corrente è la password dell\'account Alphabiz (non è impostata alcuna password indipendente)","use_cognito_hash":"Usa la password dell\'account Alphabiz","use_independent_password":"Usa una password indipendente","keychain_lib":"chiave della biblioteca","loading_keychain_state":"Caricamento portachiavi...","backing_up":"Backup in corso...","backup_current_key":"Esegui il backup della chiave corrente su Cloud","cloud_lib_key_not_existed":"la chiave della libreria non esiste in Cloud","open_keychain_file":"Apri file portachiavi","confirm_open_abk":"Vuoi aprire il file ABK","use_the_key":"Usa la chiave","backup_the_key":"Eseguire il backup della chiave nel cloud","keychain_data_does_not_exist":"I dati del portachiavi non esistono","timeout of 0ms exceeded":"Si è verificato un problema con la rete, riprova più tardi","XhrError":"Si è verificato un problema con la rete, riprova più tardi","payer credit amount is not enough":"Crediti insufficienti","payee does not exist":"Il beneficiario non esiste","block_list_manage":"Gestione elenco blocchi","blocked_users":"Utenti bloccati","blocked_channels":"Canali bloccati","unblock_user":"Sblocca utente","unblock_channel":"Sblocca canale","no_blocked_user":"Nessun utente bloccato","no_blocked_channel":"Nessun canale bloccato","field_required":"{0} è obbligatorio","setting":"Collocamento","unknown_media":"Media sconosciuti","settings_button_visible":"Pulsante visibile","settings_setting":"Collocamento","settings_playback_rate":"Velocità di riproduzione","settings_subtitle":"Sottotitolo","settings_pip":"PiP","settings_fullscreen":"A schermo intero","settings_subtitle_options":"Opzioni sottotitoli","settings_normal":"Normale","settings_italic":"Corsivo","settings_lighter":"Accendino","settings_bolder":"Più audace","settings_small":"Piccolo","settings_large":"Grande","about":"Di","services":"Servizi","hide":"Nascondere","hide_others":"Nascondi altri","show_all":"Mostra tutto","quit":"Esentato","edit":"Modificare","redo":"Rifare","cut":"Taglio","paste":"Impasto","select_all":"Seleziona tutto","view":"Visualizzazione","reload":"Ricaricare","toggle_full_screen":"Passare a schermo intero","toggle_developer_tools":"Attiva/disattiva Strumenti per sviluppatori","window":"Finestra","minimize":"Minimizzare","bring_all_to_front":"Porta tutto in primo piano","help":"Aiuto","github_repo":"Github Repo","issues":"Problemi","learn_more":"Saperne di più","learn_spelling":"Impara l\'ortografia","lookup_selection":"Cerca \\"{selection}\\"","search_with_google":"Cerca con Google","save_as":"Salva come","save_image":"Salva immagine","save_image_as":"Salva l\'immagine come ...","copy_link":"Copia link","save_link_as":"Salva collegamento come ...","copy_image":"Copia l\'immagine","copy_image_as":"Copia immagine come...","copy_image_address":"Copia l\'indirizzo dell\'immagine","download_complete":"Download completato","download_complete_message":"{0} viene scaricato","is_running":"{0} è in esecuzione","open":"Apri {0}","launch_problem":"Problema di avvio","ask_clear_data":"Sembra che tu stia tentando di avviare {0} ma non ci sei riuscito più volte.\\nVuoi cancellare tutti i dati dell\'app e provare ad avviarla più tardi?","launch_directly":"Avvia direttamente","clear_all_data":"Cancella tutti i dati","ask_clear_confirm":"Questo rimuoverà tutte le configurazioni, i registri e i dati utente!\\nDopo questo potrebbe essere necessario lanciare di nuovo {0}.\\nSei sicuro di cancellare i dati?","confirm_launch":"No, avvia direttamente","confirm_clear":"Sì, cancella tutti i dati"}')},4544:function(e,t,a){},"45bf":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"46a2":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],attrs:{id:"video-splash"}},[a("div",{staticClass:"loading"},[a("q-circular-progress",{staticClass:"q-ma-md",attrs:{indeterminate:"",size:"24px",color:"warning"}}),a("p",[e._v(e._s(e.videoLoadingHint))])],1)])])},o=[],i={name:"VideoSplash",props:{show:{type:Boolean},videoLoadingHint:{type:String}},data(){return{}},created(){},mounted(){},computed:{},methods:{}},r=i,s=(a("e0e1"),a("2b5f")),l=a("64e7"),c=a("09a4"),d=a.n(c),u=Object(s["a"])(r,n,o,!1,null,"bcdd35fc",null);t["a"]=u.exports;d()(u,"components",{QCircularProgress:l["a"]})},"47fc":function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));a("a1c1");const n=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"macOS",r:/Mac OS X/},{s:"UNIX",r:/UNIX/}];let o="unknown",i=()=>{};const r=new Promise((e=>i=e));function s(){const e="Unknown";let t=e;if(screen){const e=screen.width||"",a=screen.height||"";t=e+" x "+a}const a=navigator.appVersion,i=navigator.userAgent;let s,l,c,d=navigator.appName,u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10);-1!==(l=i.indexOf("Opera"))&&(d="Opera",u=i.substring(l+6),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))),-1!==(l=i.indexOf("Electron"))?(d="Electron",u=i.substring(l+9)):-1!==(l=i.indexOf("OPR"))?(d="Opera",u=i.substring(l+4)):-1!==(l=i.indexOf("Edge"))?(d="Microsoft Legacy Edge",u=i.substring(l+5)):-1!==(l=i.indexOf("Edg"))?(d="Microsoft Edge",u=i.substring(l+4)):-1!==(l=i.indexOf("MSIE"))?(d="Microsoft Internet Explorer",u=i.substring(l+5)):-1!==(l=i.indexOf("Chrome"))?(d="Chrome",u=i.substring(l+7)):-1!==(l=i.indexOf("Safari"))?(d="Safari",u=i.substring(l+7),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))):-1!==(l=i.indexOf("Firefox"))?(d="Firefox",u=i.substring(l+8)):-1!==i.indexOf("Trident/")?(d="Microsoft Internet Explorer",u=i.substring(i.indexOf("rv:")+3)):(s=i.lastIndexOf(" ")+1)<(l=i.lastIndexOf("/"))&&(d=i.substring(s,l),u=i.substring(l+1),d.toLowerCase()===d.toUpperCase()&&(d=navigator.appName)),-1!==(c=u.indexOf(";"))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(" "))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(")"))&&(u=u.substring(0,c)),_=parseInt(""+u,10),isNaN(_)&&(u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10));const p=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(a),m=navigator.cookieEnabled;let h=e;for(const o in n){const e=n[o];if(e.r.test(i)){h=e.s;break}}let g=e;switch(/Windows/.test(h)&&(g=/Windows (.*)/.exec(h)[1],h="Windows"),h){case"macOS":case"Android":g=/(?:Android|Mac OS|Mac OS X|MacIntel) ([._\d]+)/.exec(i)[1],g=g.replace(/_/g,".");break;case"iOS":g=/OS (\d+)_(\d+)_?(\d+)?/.exec(a),g=g[1]+"."+g[2]+"."+(g[3]||0);break}console.log("getSystemInfo");const f={screen:t,os:h,browser:d,osVersion:g,browserVersion:u,browserMajorVersion:_,mobile:p,cookies:m,arch:o};return r.then((()=>{f.arch=o})),f}"userAgentData"in navigator&&(console.log("Init userAgentData"),navigator.userAgentData.getHighEntropyValues(["architecture","bitness"]).then((({architecture:e,bitness:t})=>{console.log("Navigator userAgentData",e,t),"string"===typeof e&&(o=e),"string"===typeof t&&(o.includes("arm")?o+=t:o+="_"+t),i(o)})))},"49d6":function(e,t,a){},"4b8c":function(e,t,a){"use strict";a("80f4")},"4d52":function(e,t,a){"use strict";(function(e){a("d4b5"),a("de6c"),a("a1c1"),a("7a76");var n=a("fb31");const o={type:"03",prefix:n["shortProtocol"]+"-blockchain"},i={encode:t=>e.from(t,"utf-8").toString("hex"),decode:t=>e.from(t,"hex").toString("utf-8")},r={encode:t=>e.from(t,"utf-8").toString("base64"),decode:t=>e.from(t,"base64").toString("utf-8")},s={stringifyProtocolObject(e){const t=JSON.parse(i.decode(e.hash)),a=e.data,n={to_address:t.to_address,coin_type:a.coin_type,amount:a.amount,expiration:a.expiration},o=r.encode(JSON.stringify(n));return[t.action,o].join("/")},parseProtocolObject(e){const t=`Transfer to ${e.to_address.substr(2,10)}`,a=JSON.stringify({action:"transfer",to_address:e.to_address}),n={};return["coin_type","amount","expiration"].forEach((t=>{n[t]=e[t]})),{name:t,id:a,data:n}}},l={transfer:s},c=e=>{if(!e.startsWith(`${o.prefix}://`))return null;const[t,a]=e.replace(`${o.prefix}://`,"").split("/");if(!l[t])throw new Error("Unexpected action: "+t);const n=JSON.parse(r.decode(a));return{action:t,actionArgs:n}},d=(e,t)=>{const a=r.encode(JSON.stringify(t));return`${o.prefix}://${[e,a].join("/")}`};t["a"]={config:o,parseAction:c,stringifyAction:d,fromObject(e){if(e.protocolType!==o.type)return null;const{action:t}=JSON.parse(i.decode(e.hash));if(!l[t])throw new Error("Unexpected action: "+t);return`${o.prefix}://${l[t].stringifyProtocolObject(e)}`},toObject(e){const{action:t,actionArgs:a}=c(e),{name:n,id:r,data:s}=l[t].parseProtocolObject(a);return{protocolType:o.type,name:encodeURIComponent(n),hash:i.encode(r),data:s}}}}).call(this,a("eb72").Buffer)},"4d62":function(e,t,a){},"4d89":function(e,t,a){"use strict";a("c294")},"4dbc":function(e,t,a){"use strict";a("fe8f")},"4eaf":function(e,t,a){},"4ec4":function(e,t,a){"use strict";a("cb96")},"4fd2":function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return d}));a("de6c"),a("a1c1");const n=a("d310").isElectron(),o=new Map,i=e=>{if(!n)return!1;if("string"!==typeof e)return!1;if(o.has(e))return o.get(e);const t=a("61af");return!!t.existsSync(e)&&(o.set(e,t.statSync(e).isDirectory()),o.get(e))},r=["mp3","wav","aac","flac","m4a","wma"],s=["mp4","mkv","flv","avi","mov","wmv","rmvb","flv","webm"],l=e=>r.includes(e),c=e=>s.includes(e);function d(e){const t=e.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!t)return!1;const a=t[0].slice(1);if(!a.length)return!1;const n=r.includes(a.toLowerCase())||s.includes(a.toLowerCase());return!!n&&!i(e)}},5:function(e,t){},"508e":function(e,t){const a=["udp://open.tracker.cl:1337/announce","udp://tracker.opentrackr.org:1337/announce","udp://9.rarbg.com:2810/announce","udp://tracker.openbittorrent.com:6969/announce","udp://exodus.desync.com:6969/announce","udp://www.torrent.eu.org:451/announce","udp://tracker1.bt.moack.co.kr:80/announce","udp://tracker.zerobytes.xyz:1337/announce","udp://tracker.torrent.eu.org:451/announce","udp://tracker.theoks.net:6969/announce","udp://tracker.srv00.com:6969/announce","udp://tracker.pomf.se:80/announce","udp://tracker.ololosh.space:6969/announce","udp://tracker.monitorit4.me:6969/announce","udp://tracker.moeking.me:6969/announce","udp://tracker.lelux.fi:6969/announce","udp://tracker.jordan.im:6969/announce","udp://tracker-udp.gbitt.info:80/announce","udp://retracker.sevstar.net:2710/announce","udp://retracker.netbynet.ru:2710/announce","udp://186.10.181.71:1337/announce","udp://93.158.213.92:1337/announce","udp://151.80.120.113:2810/announce","udp://45.154.253.6:6969/announce","udp://208.83.20.20:6969/announce","udp://91.216.110.52:451/announce","udp://156.234.201.18:80/announce","udp://62.210.217.207:1337/announce","udp://89.234.156.205:451/announce","udp://209.141.59.16:6969/announce","udp://62.109.31.95:6969/announce","udp://65.108.63.133:80/announce","udp://93.104.214.40:6969/announce","udp://163.172.170.127:6969/announce","udp://95.217.161.135:6969/announce","udp://213.108.105.23:6969/announce","udp://109.72.83.209:80/announce","udp://78.30.254.12:2710/announce","udp://212.1.226.176:2710/announce","udp://tracker.leechers-paradise.org:6969","udp://tracker.coppersurfer.tk:6969","udp://tracker.opentrackr.org:1337","udp://explodie.org:6969","udp://tracker.empire-js.us:1337","wss://tracker.btorrent.xyz","wss://tracker.openwebtorrent.com"],n=e=>a.indexOf(e),o=e=>a[e];e.exports={getTrackerById:o,getIdByTracker:n,trackerList:a}},"50de":function(e,t,a){"use strict";a("bba7")},"512b":function(e,t,a){},"525c":function(e,t,a){},"536e":function(e,t,a){"use strict";a("a5d3")},5415:function(e,t,a){"use strict";a("512b")},5515:function(e,t,a){"use strict";(function(e){a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"b",(function(){return v}));a("de6c"),a("d4b5"),a("4db2"),a("a1c1");var n=a("2d62"),o=a("d7df"),i=a("d710"),r=a("ddf9"),s=a("c49d");const l=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100),c=(e="",t={})=>{if(e.startsWith("ab-")||e.startsWith(i["appName"].toLowerCase()))return!1;if(!e.startsWith("~"))return!0;if(e.startsWith("~@"))return 42!==e.length;const a=e.split("/");if(1===a.length){const[e,n]=a[0].split(".");if(!e||!n)return!0;if(e.length<40||n.length<40)return!0;const o=Object.keys(t);return o.some((e=>!["_","alias","auth","pub","epub","profile","follow","channels","blockChannels","blockUsers","takedowns"].includes(e)))}const n=a[1];if(!["follow","profile","channels","takedowns"].includes(n))return!0;const o=a[2]?[a[2]]:Object.keys(t);return"profile"===n?o.some((e=>!["_","#",">","avatar","description","name","id","blockChannels","blockUsers"].includes(e))):"follow"===n?o.some((e=>!(!e.match(/[^.]{43}\.[^.]{43}/)||e.includes("channels")))):Object.values(t).some((e=>"string"===typeof e&&e.includes("data:image")))},d=(e,t)=>{for(const r in t){const e=t[r];if("string"===typeof e&&e.includes("data:image"))return[]}const a=[],n=t._;if(!n||!n["#"]||!n[">"])return[];let o={[e]:{_:{"#":n["#"],">":{}}}},i=0;for(const r in t){if("_"===r)continue;const s=t[r];if("string"===typeof s&&s.includes("data:image"))return[];o[e][r]=s,i+=(JSON.stringify(s).length||0)+r.length,o[e]._[">"][r]=n[">"][r],i>1e4&&(a.push(o),i=0,o={[e]:{_:{"#":n["#"],">":{}}}})}return Object.keys(o).length&&a.push(o),a},u=(e,t,a)=>{if(e[t]){const n=e[t];e[t]=(...e)=>{n(...e),a(...e)}}else e[t]=a},_={timer:null,pending:!1,last:Date.now(),lastSize:0},p=async()=>{if(_.pending)return;const e=n["v"]._.graph;console.time("saveGraph"),_.pending=!0,_.last=Date.now();const t=Object.keys(e);if(_.lastSize>t.length)return console.log("Skip saving library");_.lastSize=t.length,console.log("start sending splice graph",t.length);let a=Object.create(null);o["a"].emit("save-library-db-start");for(const n of t){const t=e[n];if(!t)continue;if(c(n,t))continue;a[n]=t;const i=JSON.stringify(a);i.length>5e4&&(await new Promise((e=>l((()=>{o["a"].emit("save-library-db-partial",a),e()})))),a=Object.create(null))}Object.keys(a).length&&o["a"].emit("save-library-db-partial",a),l((()=>{o["a"].emit("save-library-db-end"),_.pending=!1,_.last=Date.now(),Object(s["a"])("Save partials",(new Date).toLocaleString()),console.timeEnd("saveGraph")}))},m=()=>{if(clearTimeout(_.timer),Date.now()-_.last>6e5)return p();_.timer=setTimeout(p,6e4)},h={};Object.defineProperty(window,"wrtcPeers",{get(){return h}}),Object.defineProperty(window,"saveGraph",{get(){return m}});let g=null;const f=async e=>{const t=g;return g=new Promise((a=>{const n=()=>{const t=e();t instanceof Promise?t.then(a):l((()=>a(t)))};t instanceof Promise?t.then(n):n()})),g};function b(t){const a=Object(r["a"])()?2:5;if(Object.keys(h).length>a)return Object(s["d"])(),void(t._destroy&&t._destroy(null,(()=>{})));const o=t.wire;if(!o)return;const i=n["v"]._.root;if(t.syncState="waiting",t.remoteSyncState="waiting",h[t.id]&&"open"===h[t.id].wire.readyState)return;h[t.id]=t;let l=!1;t.downloaded=0,t.uploaded=0,t.downloadSpeed=0,t.uploadSpeed=0;const _={time:Date.now(),downloaded:0,uploaded:0},p=setInterval((()=>{if(l)return clearInterval(p);const e=Date.now(),a=e-_.time;t.downloadSpeed=Math.floor((t.downloaded-_.downloaded)/a*1e3),t.uploadSpeed=Math.floor((t.uploaded-_.uploaded)/a*1e3),_.time=e,_.downloaded=t.downloaded,_.uploaded=t.uploaded}),1e3),g=async(e="")=>(o.bufferedAmount>o.bufferedAmountLowThreshold&&await new Promise((e=>{o.onbufferedamountlow=e})),f((()=>{"open"===o.readyState?(t.uploaded+=e.length,o.send(e)):l=!0}))),b=()=>{if(!i.graph)return setTimeout(b,5e3);let e=-1;for(const a in i.graph){var t;const n=i.graph[a],o=null===n||void 0===n||null===(t=n._)||void 0===t?void 0:t[">"];o&&o>e&&(e=o)}g("ABINFO"+JSON.stringify({timestamp:e}))};b(),t.lastUpdate=-1,t.syncTimer=null;const y=async()=>{if(l)return;if(t.syncTimer&&clearTimeout(t.syncTimer),!i.graph)return void(t.syncTimer=setTimeout(y,5e3));t.syncState="syncing";const e=Object.keys(i.graph);for(let t=e.length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1));[e[t],e[a]]=[e[a],e[t]]}let a=Object.create(null);const n=Date.now();let r=0,u=0;for(const m of e){if("open"!==o.readyState){"connecting"!==o.readyState&&(delete h[t.id],l=!0,t.close(),t._destroy&&t._destroy(null,(()=>{})),Object.keys(h).length<5&&Object(s["c"])());break}r++;const e=i.graph[m];if(!e)continue;if(e._&&e._[">"]){const a=Object.values(e._[">"]);if(a.every((e=>e5e4){const t=d(m,e);if(!t.length)continue;window.verb&&Object(s["a"])("SPLICES",t,JSON.stringify(e).length);for(const e of t)await g("ABSYNC"+JSON.stringify(e)),u++;continue}a[m]=e;const n="ABSYNC"+JSON.stringify(a);if(n.length>5e4&&(await g(n),u++,a=Object.create(null)),l)return}Object.keys(a).length&&u++,u&&(t.lastUpdate=n,m(),Object(s["a"])("Synced",r,"items to",t.id));const _=Object.keys(a).length?JSON.stringify(a):"{}",p="ABSYNC!"+_;"open"===o.readyState&&g(p),t.syncState="completed",t.syncTimer=setTimeout(y,1e4)};return u(o,"onclose",(function(){l=!0,delete h[t.id],clearTimeout(t.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(o,"onerror",(function(){l=!0,delete h[t.id],clearTimeout(t.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(o,"onmessage",(function(a){if(!a)return;let o=a.data;if("string"!==typeof o&&(o instanceof ArrayBuffer?o=e.from(o).toString("utf-8"):(Object(s["a"])("unknown data",typeof o,o),o=o.toString())),o)if(o.startsWith("ABSYNC")){t.downloaded+=o.length,o.startsWith("ABSYNC!")?(t.remoteSyncState="completed",m()):t.remoteSyncState="syncing";try{if("ABSYNC!{}"===o)return;const e=JSON.parse(o.replace(/ABSYNC(!?)/,"")),t={put:e,_:function(){},$:n["v"]};f((()=>i.on.put(t)))}catch(r){Object(s["a"])("put error",r,o)}}else if(o.startsWith("ABINFO")){const e=JSON.parse(o.substring(6));e.timestamp&&(t.lastUpdate=e.timestamp,y())}})),u(t,"ondatachannel",(function(e){const t=e.channel;t.onmessage=o.onmessage,t.onopen=o.onopen,t.onclose=o.onclose})),t}function y(e){if(h[e.id])return;const t=e._pc;return t.id=e.id,t.wire=e._channel,t._from="tracker",e.on("error",(e=>window.verb&&Object(s["a"])("peer error",e))),t._destroy=()=>{e._destroy&&e._destroy(null,(()=>{}))},b(t)}async function v(e){let t=Object.create(null),a=0;const o=Object.keys(e);for(const i of o)if(a++,t[i]=e[i],a>300||a===o.length){const e={...t},i={put:e,_:function(){},$:n["v"]};if(await f((()=>n["v"]._.root.on.put(i))),a===o.length){for(const e in h)h[e].lastUpdate=-1;Object(s["a"])(`Put ${o.length} items from local db`)}else await new Promise((e=>l(e)));t=Object.create(null)}}n["v"]._.opt.onWrtcPeer=function(e){return e._from="gun",b(e)},t["a"]=y,setInterval((()=>{Object.keys(h).length>=5||n["v"]._.opt&&"function"===typeof n["v"]._.opt.announce&&n["v"]._.opt.announce()}),6e4)}).call(this,a("eb72").Buffer)},5584:function(e,t,a){"use strict";(function(e){var n=a("ff9b"),o=a("358c"),i=a("79e7"),r=a("d310"),s=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};n["a"].use(o["a"]);const l=new o["a"].Store({modules:i["a"],strict:!1});t["a"]=l,Object.defineProperty(e,"vuex",{get(){return l}});const c=e=>["us"].includes(e.toLowerCase());if(Object(r["isElectron"])()){const{ipcRenderer:t}=a("b052");t.on("app-init",(()=>s(void 0,void 0,void 0,(function*(){const t=e["require"]("geoip-country"),a=yield(yield fetch("https://api.ipify.org")).text(),n=t.lookup(a);n&&(console.log("Init user with ip",a,n),c(n.country)&&(console.log(`User country: ${n.country}. Enable secure.'`),l.dispatch("set",{secureOption:"enable"})))}))))}}).call(this,a("0ee4"))},"55e6":function(e,t,a){"use strict";a("0336")},5653:function(e,t,a){"use strict";(function(e){a.d(t,"b",(function(){return y}));a("de6c"),a("a1c1"),a("dc89"),a("2425"),a("d4b5");var n=a("eb7a"),o=a("d6ab"),i=a("5fc6"),r=a("4fd2"),s=a("3d18"),l=a("5584"),c=a("e3c7"),d=a("46a2"),u=a("3a62"),_=a("00dd"),p=a("d710"),m=a.n(p),h=a("908d"),g=a("d558");const f=a("d310").isElectron();window.videojs=n["default"],a("4b37"),a("94ce"),a("63f2");const b=m.a.fileName,y={toggleSplash(){},updatePlayer(){}};t["a"]={name:"Player",inject:["rootApp","io"],components:{VideoSplash:d["a"],AudioInfo:u["a"],AdvancedOptions:_["a"]},data(){return{player:null,playerOptions:{fill:!1,autoplay:!0,responsive:!0,fluid:!0,preload:"auto",controls:!0,controlBar:{volumePanel:{inline:!1}}},subsBtn:null,progress:[],fileName:"",playerLang:"",playerCacheTime:0,showSplash:!1,videoLoadingHint:"",showAdvancedOptions:!1,isUpdateSubtitle:"",isAudio:!1,isPause:!1}},created(){this.initVideoComponent(),this.playerLang=l["a"].state.setting.language,this.playerCacheTime=l["a"].state.setting.videoCacheTime,window.addEventListener("error",(e=>{console.log("Uncaught global error",e.message,"\nThis has no effect to app and can be ignore")})),f&&(c["ipcRenderer"].once("ask-for-player",(()=>{this.$q.notify({message:this.$t("not_default_player"),actions:[{label:this.$t("dont_show_again"),textColor:"warning",handler:()=>{l["a"].dispatch("set",{dontAskForPlayer:!0})}},{label:this.$t("go_to_settings"),textColor:"warning",handler:()=>{this.$router.push("/basicSetting")}}]}),l["a"].dispatch("set",{dontAskForPlayer:!0})})),this.$root.$on("pause-player-before-close",(()=>{this.player&&(this.isPause=!0,l["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),l["a"].state.video.currentVideo.status&&this.player&&this.player.pause())})));for(const e in y)"function"===typeof this[e]&&(y[e]=(...t)=>this[e](...t))},mounted(){console.log("player mounted"),this.loadPlayer(!0)},async activated(){if(this.playerLang!==l["a"].state.setting.language&&(this.playerLang=l["a"].state.setting.language,this.languageChange()),this.playerCacheTime!==l["a"].state.setting.videoCacheTime){console.log("videoCacheTime change",l["a"].state.setting.videoCacheTime),this.playerCacheTime=l["a"].state.setting.videoCacheTime;const e=this.updateCacheRate(l["a"].state.setting.videoCacheTime);if(e){this.updateSrc(l["a"].state.video.currentVideo.url,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(l["a"].state.video.currentVideo.currentTime);const e=l["a"].state.video.currentVideo.currentTime/this.player.duration(),t=document.querySelector(".vjs-play-progress");t&&setTimeout((()=>{t.style.width=100*e+"%"}),500)}}if(f||Object(g["a"])()){if(l["a"].state.video.currentVideo.remotePlay){this.isUpdateSubtitle="",this.isPause=!1,this.loadPlayer(!0),this.toggleSplash(!0),this.player.bigPlayButton.hide();const t=setTimeout((()=>{this.videoLoadingHint=this.$t("playing_timeout_hint")}),18e4);c["ipcRenderer"].send("get-stream-address"),c["ipcRenderer"].once("stream-address",((a,n)=>{console.log("got stream address",n),this.toggleSplash(!1),clearTimeout(t);let{address:o,filepath:i}=n;console.log("Stream play, try update player.src",n,"address",o,"filepath",i),i||(i="win32"===e.platform?decodeURI(o).replace("play:///","").replace(/\//g,"\\"):decodeURI(o).replace("play://","")),l["a"].dispatch("currentVideoUrl",o),l["a"].dispatch("currentVideoPath",i),l["a"].dispatch("currentVideoCurrentTime",0);try{this.updateSrc(o),this.isPause?(setTimeout((()=>{this.player.pause()}),1e3),this.isPause=!1):this.player.play(),this.player.readyState()&&l["a"].dispatch("resetRemotePlay"),this.clearOldSubtitle(),this.addSubtitle(i),this.changeSubtitleForLang()}catch(a){console.log("src err",a),l["a"].dispatch("resetRemotePlay")}}))}l["a"].state.video.currentVideo.url||l["a"].state.video.currentVideo.infoHash||this.loadPlayer(!0),c["ipcRenderer"].on("pause-player",(()=>{this.player&&(this.isPause=!0,l["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),l["a"].state.video.currentVideo.status&&this.player&&this.player.pause())}))}else l["a"].state.video.currentVideo.url!==this.player.src()&&console.log("url changed",l["a"].state.video.currentVideo.url,this.player.src());this.io.on("server_progress",(e=>{var t;if("/player"!==this.$router.currentRoute.path)return;if(!this.player&&!this.player.readyState())return;if(null===(t=l["a"].state.video.currentVideo)||void 0===t||!t.url)return;const a=e.find((e=>{var t;return null===(t=l["a"].state.video.currentVideo)||void 0===t?void 0:t.url.includes(e.name)}));if(a&&a.progress){const e=[],t=a.progress.length;let n=a.progress[0],o=1;for(let i=1;i{this.isUpdateSubtitle||(this.isUpdateSubtitle=e,console.log("update_subtitleList!!!",e,"path:",l["a"].state.video.currentVideo.path,t))})),this.io.on("clear_player",(e=>{const t=l["a"].state.video.currentVideo.url;if(l["a"].state.video.currentVideo.infoHash!==e.infoHash)return;const a=/^http/gm.test(t),n=/^play:\/\//gm.test(t);n&&"paused"===e.status||(a||n)&&(console.log("is",a,n),l["a"].state.video.currentVideo.pipStatus&&this.player.exitPictureInPicture(),l["a"].dispatch("resetPlayer"),this.$destroy(),setTimeout((()=>{console.log("timeout",a,n),this.$router.push("/player");try{this.loadPlayer(!0)}catch(e){console.log("Failed to force load player. This will not go wrong.",e.message||e)}a&&this.$q.notify(this.$t("stop_stream_player")),n&&this.$q.notify(this.$t("stop_player"))}),500))}))},beforeDestroy(){this&&this.player&&this.player.dispose()},computed:{lang(){const e=l["a"].state.setting.language?l["a"].state.setting.language:"en-US";return this.player&&this.player.language(e),e},settings(){const e=l["a"].state.setting;return{defaultVideoPlayer:e.defaultVideoPlayer,language:e.language}},advancedOpt(){let e=l["a"].state.video.currentVideo.path;const t=l["a"].state.video.currentVideo.url;t&&t.startsWith("play://")&&(e=decodeURI(t).replace("play:///",""));const a=e?e.replace(/^.*[\\\/]/,""):this.fileName;return[{name:this.$t("title"),value:decodeURIComponent(a).replace("\\","")},{name:this.$t("location"),value:e},{name:this.$t("subtitle_file"),value:l["a"].state.video.currentVideo.subtitleList}]}},watch:{"$store.state.video.currentVideo.updatePlayer"(e,t){console.log("watch updatePlayer:",e),e&&e!==t&&(console.log("need update player"),l["a"].dispatch("updatePlayer",!1),this.updatePlayer(l["a"].state.video.currentVideo.url))}},methods:{toggleSplash(e,t=""){this.showSplash=e,this.videoLoadingHint=t},toggleAudio(e){this.isAudio=e},toggleAdvancedOptions(e){this.showAdvancedOptions=e},openFile(){console.log("click",this.$refs.file),this.$refs.file.click()},bigPlayBtnOpenFile(){const e=document.querySelector("#my-video video").src;console.log("bigPlayBtn",e),e?this.player.play():this.openFile()},async languageChange(){this.player&&(this.player.language(this.lang),this.updateComponentText(),l["a"].state.video.currentVideo.url&&await this.loadPlayer(!0))},manualAddFile(e){console.log("Open Media File: "+e.target.files[0]),0!==e.target.files.length&&(e.target.files[0].path&&l["a"].dispatch("currentVideoPath",e.target.files[0].path),this.updatePlayer(e.target.files[0]),setTimeout((()=>{this.$refs.file.value=null}),500))},async manualAddSubtitle(e){const t=e.target.files;if(!t.length)return;const a=t[0],n=this.player.textTracks(),o=await this.addSubtitle(a,a.name);console.log("manualAddSubtitle",a,a.name,o);let i=-1;setTimeout((()=>{for(let e=0;e`,this.updateTitle=function(e){this.el_.innerHTML=``}}})),n["default"].registerComponent("SubsButton",n["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Add subtitles...",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}})),n["default"].registerComponent("AddSubButton",n["default"].extend(t,{constructor:function(){t.apply(this,arguments);const e=arguments[1];this._text=e.text||"Add subtitles...",this.el_.innerHTML+=`${this._text}`}})),n["default"].registerComponent("AdvancedOptionsButton",n["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Advanced Options",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}}));const a=n["default"].getComponent("SeekBar");a.prototype.getPercent=function(){const e=this.player_.currentTime(),t=e/this.player_.duration();return t>=1?1:t},a.prototype.handleMouseMove=function(e){let t=this.calculateDistance(e)*this.player_.duration();t===this.player_.duration()&&(t-=.1),this.player_.currentTime(t),this.update()}},addControlBarComponent(){const e=this.player.controlBar.addChild("FileButton",{text:this.$t("open_file")},1),t=h["b"].is.mobile?"touchend":"click";e.on(t,this.openFile),this.subsBtn=this.player.controlBar.addChild("SubsButton",{text:this.$t("add_subtitles")+"..."},14),this.subsBtn.on(t,(()=>this.$refs.subtitle.click()));const a=this.player.controlBar.addChild("AdvancedOptionsButton",{text:this.$t("advanced_options")},16);a.on(t,(()=>{this.player.isFullscreen()&&this.player.exitFullscreen(),this.toggleAdvancedOptions(!0)}))},updateComponentText(){const e=this.player.controlBar.getChild("FileButton");e.updateTitle(this.$t("open_file")),this.subsBtn.updateTitle(this.$t("add_subtitles")+"...");const t=this.player.controlBar.getChild("AdvancedOptionsButton");t.updateTitle(this.$t("advanced_options"))},loadPlayer(e=!1){let t=()=>{};const a=new Promise((e=>{t=e}));if(!n["default"].getPlayer("my-video")||e){if(e){Object(n["default"])("my-video")&&(Object(n["default"])("my-video").isInPictureInPicture()&&Object(n["default"])("my-video").exitPictureInPicture(),Object(n["default"])("my-video").dispose());const e=document.querySelector("#video-container");e&&(e.innerHTML='')}try{this.player=Object(n["default"])("my-video",this.playerOptions,(()=>t()))}catch(o){console.log("loadPlayer error",o);const e=o.message;e.includes("The element or ID supplied is not valid.")&&(l["a"].dispatch("resetPlayer"),this.$destroy())}if(this.player.on("ready",(async()=>{l["a"].dispatch("updateVideoStatus",!1)})),this.player.on("canplay",(async()=>{l["a"].dispatch("resetRemotePlay");const e=(f?l["a"].state.video.currentVideo.path:this.fileName||l["a"].state.video.currentVideo.url).split(".").pop();if(this.toggleAudio(Object(r["b"])(e)),this.isUpdateSubtitle&&l["a"].state.video.currentVideo.infoHash===this.isUpdateSubtitle&&l["a"].state.video.currentVideo.path&&(await this.addSubtitle(l["a"].state.video.currentVideo.path),this.changeSubtitleForLang(),this.isUpdateSubtitle=""),!l["a"].state.video.currentVideo.url){const e=document.querySelector("#my-video video").src;l["a"].dispatch("currentVideoUrl",e);const t=e.split("/"),a=t[t.length-1];"undefined"!==typeof a&&(this.fileName=a),this.loadPlayer(!0),setTimeout((()=>this.player.play()),500)}setTimeout((()=>{!1===l["a"].state.video.currentVideo.status&&this.player.paused()&&this.player.bigPlayButton.show()}),700)})),this.player.on("play",(async()=>{if(this.settings.defaultVideoPlayer!==b&&l["a"].state.video.currentVideo.url.startsWith("play://")&&l["a"].state.video.currentVideo.infoHash){this.player.pause(),this.player.exitPictureInPicture();const e=l["a"].state.video.currentVideo.path;return console.log("player will pause,open default player,"+e),await Object(s["b"])(this.settings.defaultVideoPlayer,e),l["a"].dispatch("resetPlayer"),this.loadPlayer(!0)}this.player.bigPlayButton.hide(),l["a"].dispatch("updateVideoStatus",!0)})),this.player.on("pause",(()=>{4===this.player.readyState()&&this.player.bigPlayButton.show(),l["a"].dispatch("updateVideoStatus",!1)})),this.player.on("seeked",(()=>{setTimeout((()=>{const e=document.querySelector(".vjs-load-progress"),t=document.querySelector(".vjs-play-progress");e.style.width=t.style.width}),200)})),this.player.on("waiting",(()=>{const e=document.querySelector("#my-video video");e&&(e.style.backgroundColor="black")})),this.player.on("loadedmetadata",(()=>{const e=l["a"].state.video.currentVideo.url;if(!e||!/^http/gm.test(e))return;if(!/wait=0$/gm.test(e)||0===l["a"].state.setting.videoCacheTime)return;const t=this.updateCacheRate(l["a"].state.setting.videoCacheTime);console.log("loadedmetadata!",t),t&&(this.updateSrc(e,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(l["a"].state.video.currentVideo.currentTime))})),this.player.on("leavepictureinpicture",(()=>{this.player&&this.player.bigPlayButton.hide(),l["a"].dispatch("updateVideoPIPStatus",!1),setTimeout((()=>{try{this.player.paused()?this.player.bigPlayButton.show():this.$router.push("/player")}catch(o){console.log("Failed to check pause status, but nothing will go wrong with this.",o.message||o)}}),500)})),this.player.on("enterpictureinpicture",(()=>{l["a"].dispatch("updateVideoPIPStatus",!0),this.player.paused()||setTimeout((()=>this.player.play()),500)})),this.player.on("timeupdate",(()=>{l["a"].dispatch("currentVideoCurrentTime",this.player.currentTime())})),this.player.on("error",(()=>{this.toggleSplash(!1),console.log("player error event!",this.player.error_.message);const e=this.player.languages()[this.player.language()],t=e&&e[this.player.error_.message]||this.player.error_.message;if(4!==this.player.error_.code||f||Object(g["a"])())this.$q.notify(t);else{const e='open_in_new',a=`${this.$t("download")} ${b} Desktop${e}`,n=`${a}`,o=this.$q.notify({html:!0,message:`${t}${n}`,actions:[{label:this.$t("close"),color:"green",handler(){o()}}],timeout:0})}l["a"].dispatch("resetPlayer"),this.$q.loading.hide(),this.loadPlayer(!0)})),l["a"].state.video.currentVideo.url&&!l["a"].state.video.currentVideo.remotePlay){this.player&&this.player.bigPlayButton.hide();const e=l["a"].state.video.currentVideo.subtitleList,t=l["a"].state.video.currentVideo.status,a=l["a"].state.video.currentVideo.updatePlayer;if(this.updateSrc(l["a"].state.video.currentVideo.url),this.player.currentTime(a?0:l["a"].state.video.currentVideo.currentTime),console.log("loadplayer(force) status",a,t,e,this.player),!a&&!t&&!/^https:\/\/localhost:8080\/webtorrent/gm.test(l["a"].state.video.currentVideo.url)){const e=()=>{this.player.pause(),this.player.off("play",e)};this.player.on("play",e)}"undefined"!==typeof e&&e.length?this.restoreSub(e):this.addSubtitle(l["a"].state.video.currentVideo.path),l["a"].dispatch("updatePlayer",!1)}return h["b"].is.mobile?this.player.bigPlayButton.on("touchend",this.bigPlayBtnOpenFile):this.player.bigPlayButton.on("click",this.bigPlayBtnOpenFile),this.addControlBarComponent(),l["a"].dispatch("updateVideoPIPStatus",!1),a}this.player=n["default"].getPlayer("my-video")},async updatePlayer(e){if(!e)return;this.player||await this.loadPlayer(!0);const t="string"===typeof e?e:URL.createObjectURL(e);console.log("update Player",e,t),this.fileName=e.name,l["a"].dispatch("currentVideoUrl",t);try{this.updateSrc(t)}catch(a){console.debug("updateSrc error",a.message||a),await this.loadPlayer(!0)}l["a"].dispatch("resetInfoHash"),this.clearOldSubtitle(),l["a"].state.video.currentVideo.path?await this.addSubtitle(l["a"].state.video.currentVideo.path):await this.addSubtitle(e,e.name),this.changeSubtitleForLang()},updateSrc(e,t={clearSubtitle:!0,clearProgress:!0}){this.toggleAudio(!1),t.clearProgress&&this.clearProgress(),t.clearSubtitle&&l["a"].dispatch("currentVideoSubtitleList",[]),e.startsWith("play://")&&(e+=`?infoHash=${l["a"].state.video.currentVideo.infoHash}`),console.log("updateSrc()",e),this.player.src([{src:e,type:"video/mp4"}])},updateCacheRate(e){if(!this.player.duration())return;const t=60*e/this.player.duration(),a=l["a"].state.video.currentVideo.url;return!!a&&(l["a"].dispatch("currentVideoUrl",a.replace(/wait=.*/gm,`wait=${t}`)),!0)},updateProgress(e){if(e){let t=document.querySelector("#download-progress");if(!t){const e=document.querySelector(".vjs-progress-holder");if(!e)return;t=e.appendChild(document.createElement("div")),t.id="download-progress"}const a=e=>{let t=0;for(let a=0;a1?t+e[a].length:t+1,e[a].rate=t;return e},n=a(e);t.style.background=n.reduce(((e,t)=>e+`, ${t.color} 0%, ${t.color} ${t.rate}%`),"linear-gradient(90deg")+")"}},clearProgress(){let e=document.querySelector("#download-progress");if(!e){const t=document.querySelector(".vjs-progress-holder");if(!t)return;e=t.appendChild(document.createElement("div")),e.id="download-progress"}e.style.background=""},async addSubtitle(e,t){var a;console.log("sub",e,t);let n=e;if("string"===typeof e){if(e.startsWith("blob:"))return;n=e.startsWith("play://")?Object(i["a"])(decodeURI(e.replace("play:///",""))):Object(i["a"])(e)}t||(t=(null===(a=n)||void 0===a?void 0:a.name)||"");const r=t.match(/\.[^.]+$/);if(!r)return;const s=r[0].toLowerCase();console.log("addSubtitle sub",n,t);let l=!1,c=!1;if(f)[".ass"].includes(s)?console.log("add .ass sub"):await Promise.all(Object(o["a"])(n).map((e=>new Promise((a=>{setTimeout((()=>{c=this.isRepeatSubtitle(e.label,e.path),"number"!==typeof c&&(this.player.addRemoteTextTrack({kind:"captions",label:e.label||t,src:e.src},!0),this.updateSubtitleList(e.label||t,{path:e.path}),l=!0),a()}))})))));else{if(console.log("web addSubtitle"),![".srt",".vtt"].includes(s))return;c=this.isRepeatSubtitle(t),"number"!==typeof c&&await new Promise((e=>{const a=new FileReader;a.readAsText(n),a.onload=a=>{const n=".vtt"===s?a.target.result:Object(o["b"])(a.target.result);console.log(a.target.result),this.player.addRemoteTextTrack({src:URL.createObjectURL(new Blob([n])),kind:"captions",label:t},!0),this.updateSubtitleList(t),l=!0,e()}}))}if(l&&this.subsBtn){this.subsBtn.addClass("hidden"),this.listenSubsCapsMenuItem();const e=this.player.textTracks();e&&e[0]&&(e[0].mode="showing",this.updateSubtitleList(e[0].label,{isShow:!0})),this.appendAddSubBtn()}return c},isRepeatSubtitle(e,t){const a=l["a"].state.video.currentVideo.subtitleList;let n=!1;for(let o=0;o{a[o].label===e&&(n=o),a[o].isShow=!1})),"number"===typeof t.index?a[t.index].isShow=!0:-1!==n&&(a[n].isShow=!0)}else a.push({label:e,path:t.path,isShow:t.isShow});l["a"].dispatch("currentVideoSubtitleList",a)},listenSubsCapsMenuItem(){const e=this.player.controlBar.subsCapsButton,t=e.menu.children();t.forEach(((e,t)=>{if("SubsCapsMenuItem"===e.constructor.name){const a=h["b"].is.mobile?"touchend":"click";e.on(a,(()=>{this.updateSubtitleList(e.track.label,{index:t-2,isShow:!0})}))}}))},clearOldSubtitle(){if(!this.subsBtn)return;this.subsBtn.removeClass("hidden");const e=this.player.remoteTextTracks();for(let t=e.length-1;t>=0;t--)this.player.removeRemoteTextTrack(e[t])},async restoreSub(e){let t;console.log("restoreSub",e),l["a"].dispatch("currentVideoSubtitleList",[]);for(const a in e){if(!e[a].path)return;await this.addSubtitle(e[a].path),e[a].isShow&&(t=a)}if("string"===typeof t){const e=this.player.textTracks();for(let t=0;t{const t=this.player.controlBar.subsCapsButton,a=t.menu.children();if(!a)return;if(a.some((e=>"AddSubButton"===e.name_)))return;const n=t.menu.addChild("AddSubButton",{text:e.$t("add_subtitles")+"..."},2);n.addClass("add-sub-btn");const o=h["b"].is.mobile?"touchend":"click";n.on(o,(()=>{this.$refs.subtitle.click()}))}),1e3)}}}}).call(this,a("28d0"))},"571b":function(e,t,a){},"586d":function(e,t,a){"use strict";a.r(t),a.d(t,"onGeneralUpdate",(function(){return n})),a.d(t,"onMessage",(function(){return o})),a.d(t,"onUpdateUserFromId",(function(){return i})),a.d(t,"onCreditChange",(function(){return r})),a.d(t,"onUpdateExpensesFromId",(function(){return s})),a.d(t,"onUpdateIncomeFromId",(function(){return l})),a.d(t,"onCreateUser",(function(){return c})),a.d(t,"onUpdateUser",(function(){return d})),a.d(t,"onDeleteUser",(function(){return u})),a.d(t,"onCreateInvitation",(function(){return _})),a.d(t,"onUpdateInvitation",(function(){return p})),a.d(t,"onDeleteInvitation",(function(){return m})),a.d(t,"onCreateMessageTimer",(function(){return h})),a.d(t,"onUpdateMessageTimer",(function(){return g})),a.d(t,"onDeleteMessageTimer",(function(){return f})),a.d(t,"onCreateTransaction",(function(){return b})),a.d(t,"onUpdateTransaction",(function(){return y})),a.d(t,"onDeleteTransaction",(function(){return v})),a.d(t,"onCreateTask",(function(){return w})),a.d(t,"onUpdateTask",(function(){return k})),a.d(t,"onDeleteTask",(function(){return S})),a.d(t,"onCreateProvidentFund",(function(){return C})),a.d(t,"onUpdateProvidentFund",(function(){return x})),a.d(t,"onDeleteProvidentFund",(function(){return $}));const n="\n subscription OnGeneralUpdate($id: String!) {\n onGeneralUpdate(id: $id) {\n id\n channel\n data\n }\n }\n",o="\n subscription OnMessage($channel: String!, $params: String) {\n onMessage(channel: $channel, params: $params) {\n channel\n data\n }\n }\n",i="\n subscription OnUpdateUserFromId($id: String!) {\n onUpdateUserFromId(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",r="\n subscription OnCreditChange($ownerId: String!) {\n onCreditChange(ownerId: $ownerId) {\n ownerId\n amount\n }\n }\n",s="\n subscription OnUpdateExpensesFromId($payerId: String!) {\n onUpdateExpensesFromId(payerId: $payerId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",l="\n subscription OnUpdateIncomeFromId($payeeId: String!) {\n onUpdateIncomeFromId(payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",c="\n subscription OnCreateUser($id: String) {\n onCreateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n subscription OnUpdateUser($id: String) {\n onUpdateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n subscription OnDeleteUser($id: String) {\n onDeleteUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",_="\n subscription OnCreateInvitation($inviterId: String) {\n onCreateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n subscription OnUpdateInvitation($inviterId: String) {\n onUpdateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n subscription OnDeleteInvitation($inviterId: String) {\n onDeleteInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",h="\n subscription OnCreateMessageTimer {\n onCreateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n subscription OnUpdateMessageTimer {\n onUpdateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n subscription OnDeleteMessageTimer {\n onDeleteMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",b="\n subscription OnCreateTransaction($payerId: String, $payeeId: String) {\n onCreateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n subscription OnUpdateTransaction($payerId: String, $payeeId: String) {\n onUpdateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n subscription OnDeleteTransaction($payerId: String, $payeeId: String) {\n onDeleteTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n subscription OnCreateTask {\n onCreateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n subscription OnUpdateTask {\n onUpdateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n subscription OnDeleteTask {\n onDeleteTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",C="\n subscription OnCreateProvidentFund($id: String) {\n onCreateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n subscription OnUpdateProvidentFund($id: String) {\n onUpdateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",$="\n subscription OnDeleteProvidentFund($id: String) {\n onDeleteProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},5960:function(e,t,a){},5984:function(e,t,a){},"5a2f":function(e,t,a){"use strict";a("7447")},"5ab7":function(e,t,a){"use strict";a("3361")},"5bb9":function(e,t,a){"use strict";a("cf6e")},"5ccc":function(e,t,a){},"5d03":function(e,t,a){},"5d61":function(e){e.exports=JSON.parse('{"lib_index":"Дом","lib_edit":"Публиковать","lib_publish":"Публиковать","lib_explore":"Исследовать","lib_following":"Следующий","lib_favorite":"Местные избранные","lib_local_favorites":"Местные избранные","lib_channel":"Канал","lib_submit":"Представлять на рассмотрение","lib_from_network":"Использование децентрализованной базы данных из сети","welcome_to_lib":"Добро пожаловать в ${displayName} Медиатеку","register_or_login":"Регистрация Войти","lib_recommend":"Рекомендовать","lib_recommend_desc":"Добро пожаловать в библиотеку ${displayName}! Эта библиотека использует децентрализованную базу данных из сети. Чтобы начать использовать его, вам нужно следить за некоторыми каналами.","follow_any_channel_to_continue":"Подпишитесь на любой канал, чтобы продолжить","follow_channels_and_continue":"Следите за каналами {0} и продолжайте","show_more_for_me":"Показать больше для меня","no_more_recommend":"Больше не рекомендую","key":"Ключ","create_key":"Создать ключ","save_key":"Сохранить ключ","save_key_file":"Вы хотите сохранить свой ключ в виде файла?","import_key":"Ключ импорта","import":"Импортировать","invalid_key":"Неправильный ключ","back_to_top":"Наверх","search_for_channel":"Поиск идентификатора канала","search_channel_no_result":"Не удается найти канал с идентификатором {0}","please_input_channel_id":"Пожалуйста, введите идентификатор канала","welcome_help_text":"Это децентрализованная медиатека. Тебе нужно\\n создать учетную запись для этой базы данных. Мы будем\\n автоматически сгенерирует для вас персональный ключ.\\n Если у вас уже есть ключ, вы также можете импортировать\\n это здесь.","welcome_key_text":"После входа в систему нажмите кнопку [СОХРАНИТЬ КЛЮЧ].\\n в правом нижнем углу, чтобы сохранить закрытый ключ.\\n Если вы потеряете свой ключ, вы не сможете снова войти в систему.","redirect_to_recommend":"Кажется, вы не следили за каким-либо каналом. Перенаправление на страницу [Обзор].","channel":"Канал","follow":"Следовать","unfollow":"Отписаться","following":"Следующий","share":"Делиться","unfollow_confirm":"Вы уверены, что хотите отписаться от этого канала? Все сообщения этого канала в вашей хронике будут удалены.","follow_failed_hint":"Операция все еще выполняется в фоновом режиме. Если операция не применяется в течение длительного времени, перезапустите приложение и повторите попытку.","block":"Блокировать","unblock":"Разблокировать","blocked":"Заблокировано","block_channel":"Заблокировать этот канал","block_channel_confirm":"Заблокировать канал удалит его из вашей временной шкалы. Вы можете управлять своим черным списком в настройках учетной записи.","block_creator":"Заблокировать создателя этого канала","unblock_creator":"Разблокировать создателя этого канала","block_creator_confirm":"Создатель блока удалит все каналы, созданные этим создателем, из вашей хроники. Вы можете управлять своим черным списком в настройках учетной записи.","share_url_copied":"URL-адрес общего доступа скопирован в буфер обмена","follow_time":"Следите за временем","update_time":"Время обновления","search":"Поиск","type":"Тип","added":"Добавлен","click_to_task":"Нажмите, чтобы перейти к задаче","lib_already_added":"Вы уже добавили это видео","description":"Описание","poster":"Плакат","channel_poster":"Афиша канала","preview":"Предварительный просмотр","creator":"Создатель","creator_detail":"Сведения о создателе","loading_creator":"Загрузка информации о создателе","wait_for_creator_loaded":"Подождите, пока загрузится информация о создателе.","follower":"Последователь","followers":"Последователи","follower_list":"Список подписчиков","user":"Пользователь","channel_title":"Название канала","channel_id":"Идентификатор канала","post_title":"Заголовок поста","post_id":"Идентификатор сообщения","import_data_from_excel":"Импортировать данные из excel","set_excel_keys":"Установить клавиши Excel","excel_import_succeded":"Импорт Excel выполнен успешно","excel_import_success_msg":"Строки {0} готовы к добавлению, {1} недействительны, а повторяющиеся элементы {2} игнорируются.","cannot_find_channel":"Не могу найти канал","cannot_find_posts":"Не могу найти сообщения","add_channel":"Добавить канал","add_post":"Добавить сообщение","edit_channel":"Изменить канал","channel_setting":"Настройка канала","edit_post":"Редактировать пост","edit_posts":"Редактировать сообщения","channel_detail":"Сведения о канале","remove":"Удалять","remove_channel":"Удалить канал","remove_channel_confirm":"Вы уверены, что хотите удалить этот пост? Это не может быть восстановлено.","remove_post":"Удалить сообщение","remove_post_confirm":"Вы уверены, что хотите удалить этот канал? Это не может быть восстановлено.","preview_mode":"Режим предварительного просмотра","preview_mode_desc":"Это предварительный просмотр вашего канала. Здесь показаны все рейтинги фильмов.","edit_user_profile":"Изменить профиль пользователя","name":"Псевдоним","avatar":"Аватар","no_following":"Нет следующих каналов. Нажмите, чтобы перейти","no_recommend":"Нет рекомендуемых каналов. Нажмите, чтобы перейти","first_recomment_msg":"Это может занять некоторое время, если это первое приложение, которое запускается.","invalid_image":"Недопустимое изображение","image_not_reachable":"URL этого изображения недоступен.","channel_not_found":"Канал не найден","cannot_get_channel_info":"Не могу получить информацию о канале. Этот канал может быть удален его создателем и больше недоступен.","validate_error":"Подтвердить ошибку","validate_user_name_no_space":"Имя пользователя не должно содержать пробелов","validate_url_no_space":"URL не должен содержать пробелов","validate_user_name_length":"Имя пользователя должно иметь длину от {0} до {1}.","validate_user_desc_length":"Описание пользователя не должно превышать {0} символов.","validate_user_avatar_url":"Аватар пользователя должен быть URL длиной менее 2048 символов.","validate_channel_title_length":"Название канала должно иметь длину от 1 до 100.","validate_channel_desc_length":"Описание канала должно иметь длину от 10 до 300","validate_channel_image_url":"URL-адрес предварительного просмотра канала должен содержать менее 2048 символов.","validate_post_title_length":"Заголовок сообщения должен иметь длину от 1 до 100.","validate_post_desc_length":"Описание поста должно иметь длину от 10 до 300","validate_post_image_url":"Плакат должен быть URL-адресом, содержащим менее 2048 символов.","validate_post_url":"Недействительный URL-адрес ${displayName}","validate_post_url_length":"${displayName} Длина URL не должна превышать 2048 символов.","film_rate":"Скорость фильма","set_film_rate":"Установить скорость фильма","select_a_rate_before_enter":"Перед входом в медиатеку необходимо выбрать скорость фильма.","library_available_rate":"Доступная в библиотеке скорость фильма","rate_g":"G – обычная аудитория","rate_g_desc":"Допускаются все возрасты. Ничего, что могло бы обидеть родителей за просмотр детьми.","rate_pg":"PG – рекомендуется родительский контроль","rate_pg_desc":"Некоторые материалы могут не подходить для детей. Родителей призвали дать «родительское руководство». Может содержать некоторые материалы, которые родителям могут не понравиться для их маленьких детей.","rate_pg_13":"PG-13 – Родители строго предупреждены","rate_pg_13_desc":"Некоторые материалы могут быть неприемлемы для детей младше 13 лет. Родителям настоятельно рекомендуется быть осторожными. Некоторые материалы могут быть неподходящими для подростков.","rate_r":"R - Ограничено","rate_r_desc":"До 17 лет требуется сопровождающий родитель или взрослый опекун. Содержит материалы для взрослых. Родителям настоятельно рекомендуется узнать больше о фильме, прежде чем брать с собой маленьких детей.","rate_nc_17":"NC-17 – Только для взрослых","rate_nc_17_desc":"Никто в возрасте 17 лет и младше не допускается. Явно взрослый. Дети не допускаются.","set_as_private":"Установить как личное","hide_in_explore":"Скрыть этот канал на странице исследования","hidden":"Скрытый","select_a_rate":"Пожалуйста, выберите рейтинг фильма","select_from_tasks":"Выбрать из задач","import_from_magnet":"Импорт из магнита:?...","input_magnet_url":"Входной магнит:? URL","task_title":"Название задачи","set_title":"Установить заголовок","add_to_local_favorites":"Добавить в избранное","remove_from_local_favorites":"Удалить из местных избранных","removed_favorite":"Удалено из избранного","import_or_export_favorites":"Импорт/экспорт избранного","export_local_favorites":"Экспорт локального избранного в качестве резервной копии","import_favorites_file":"Импорт файла избранного","not_a_favorite_file":"Этот файл не является любимым файлом резервной копии","connection_status":"Состояние подключения","gun_server_list":"Узлы кэша","custom_nodes":"Пользовательские узлы кэша","custom_nodes_hint":"Пользовательские узлы кэша будут применены после перезапуска приложения.","wait_for_reboot":"Ожидание перезагрузки...({seconds}s)","reboot_now":"Перезагрузить сейчас","reboot_later":"Перезагрузить позже","peer_list":"Прямые узлы","server":"URL-адрес узла","peer":"Вглядеться","peer_id":"Идентификатор узла","connection":"Связь","data_source":"Источник данных","sync":"Синхронизировать","syncing":"Синхронизации","sync_completed":"Синхронизация завершена","got_all_post":"Вы уже получили все сообщения","placeholder_channel_title":"Название вашего канала","placeholder_channel_desc":"Описание этого канала","placeholder_post_title":"Название фильма (год)","placeholder_post_desc":"Описание этого фильма","private_channel":"Частный канал","creator_blocked":"Создатель заблокирован","go_to_library":"Идти в библиотеку?","go_to_library_channel_msg":"Хотите перейти на библиотечный канал {0}?","magnet_does_not_have_name":"Этот магнит:? URL-адрес не имеет имени, вам нужно сначала добавить заголовок сообщения.","no_available_post":"Нет доступной записи","following_channel_no_post":"На всех ваших следующих каналах нет доступных сообщений. Это может быть вызвано сетевой ошибкой. Если вы уже подписались на некоторые каналы, сообщения могут быть загружены позже.","share_to_library":"Поделиться в библиотеке","quick_start":"Быстрый старт","quick_start_desc":"Начните создавать пост с заданием или файлом","select_file":"Выберите файл...","select_folder":"Выберите папку...","post_options":"Параметры публикации","channel_options":"Параметры канала","create_new_channel":"Создать новый канал","use_existed_channel":"Использовать существующий канал","select_existed_channel":"Выберите существующий канал","uploaded_by":"{title} загружено пользователем {name}","created_by":"{title} создано {name}","creating_new_channel":"Создание нового канала...","created_new_channel":"Создан новый канал","creating_new_post":"Создание нового поста...","created_new_post":"Создан новый пост","create_new_post":"Создать новый пост","quick_start_timeout":"{0} тайм-аут. Это может быть вызвано сетевой ошибкой. Пожалуйста, повторите попытку позже.","file_too_large":"Файл слишком большой","file_too_large_msg":"Размер этого файла превышает 4 ГБ ({size}), и его подготовка может занять много времени. Вы уверены, что хотите продолжить?","resolving_folder_files":"Разрешение файлов папки...","folder_too_large":"Папка слишком большая","folder_too_large_msg":"Размер файлов в этой папке превышает 4 ГБ (всего {size}), поэтому подготовка задачи может занять много времени. Вы уверены, что загрузите?","creating_new_task":"Создание новой задачи...","cannot_create_task":"Не могу создать задачу","cannot_create_task_msg":"Это может быть вызвано некоторой ошибкой. Если задача создана правильно, вы можете проверить список задач позже.","cannot_get_task_name":"Не удается получить имя задачи. Сначала вам нужно ввести один.","remove_old_task":"Удалить старую задачу","remove_old_task_desc":"В веб-режиме можно создать только одну задачу за раз. Удалить старую задачу?","subtitle_list":"Список субтитров","optional":"необязательный","with_subtitle":"С субтитрами {language}","maximumSubtitleNum_limit":"Количество субтитров достигло своего максимума","add_subtitle_url":"Добавьте ссылку на скачивание субтитров","cannot_add_subtitle":"Не удалось добавить субтитры","cannot_add_subtitle_msg":"Не выбран язык субтитров или недействительная ссылка для скачивания.","support_subtitle_type":"Поддерживаются только субтитры в формате srt и vtt.","recommend_opensubtitles":"Рекомендуется использовать ссылку или идентификатор загрузки субтитров на www.opensubtitles.org.","take_down":"Снять","serious_violation":"Серьезное нарушение","copyright_disputes":"Споры об авторских правах","adults_only":"Только для взрослых","takedown_reason":"Причина удаления","takedown_mode":"Режим тейкдауна","admins":"Админы","takedown_user":"Удалить этого автора","takedown_channel":"Удалить этот канал","takedown_post":"Удалить этот пост","select_takedown_reason":"Выберите причину удаления","takedown_invalid_reason":"Неверная причина удаления","takedown_invalid_user_id":"Недопустимый идентификатор пользователя. Идентификатор должен содержать 87 символов.","takedown_invalid_channel_id":"Недопустимый идентификатор канала. ID должен содержать 20 символов.","takedown_invalid_post_id":"Неверный идентификатор сообщения. ID должен содержать 20 символов.","takedown_management":"Снять управление","users":"Пользователи","channels":"каналы","posts":"Сообщения","you":"Ты","preset":"Предустановка","admin":"Администратор","committee":"комитет","about_takedown_mode":"О режиме удаления:\\nПредустановка: настроена в репозитории github. Все они будут удалены из библиотеки.\\nАдминистратор: Любой из админов, за которого проголосовали, будет удален.\\nКомитет: Не менее половины админов проголосовали за удаление.","cannot_edit_preset":"Вы не можете редактировать эту строку, так как это предустановленная строка.","cannot_edit_not_vote":"Вы не можете редактировать эту строку, так как вы не проголосовали за нее","remove_vote":"Удалить свой голос","post_preload_failed":"Не удалось предварительно загрузить это сообщение. Ссылка для скачивания может быть устаревшей, поэтому этот пост нельзя воспроизвести сразу.","about_cache_node":"Об узле кеша","edit_cache_node":"Изменить узел кеша","create_cache_node":"Создать кеш-узел","about_cache_node_desc":"${displayName} использует пушечный сервер в качестве кеш-узла. Вы можете редактировать пользовательские узлы в предварительной настройке","learn_how_to_deploy_gun":"Узнайте, как развернуть собственный оружейный сервер","repeat_add":"Задача добавлена, больше не добавляйте","upload":"Загрузить","download":"Скачать","delete":"Удалить","delete_task":"Удалить задачу","delete_confirm_message":"Удалить эту задачу? Это необратимо","also_delete_files":"Также удалить файлы","default_delete_files":"Удаление загруженных файлов по умолчанию после удаления задачи","not_now":"Не сейчас","delete_autoupload_confirm":"Эта задача содержит файл, который вы поместили в каталог автозагрузки. Удаление этой задачи также приведет к удалению файла.","delete_anyway":"Все равно удалить","upload_too_many_files":"Загрузить слишком много файлов","ask_if_unlimit_upload_amount":"Каталог автозагрузки содержит слишком много файлов. Вы хотите отключить ограничение суммы загрузки? * Это может вызвать проблемы с производительностью","disable_limitation":"Отключить ограничение","not_length":"Работа с несколькими файлами в настоящее время не поддерживается. Пожалуйста, сотрудничайте","download_torrent":"Загрузить файл","upload_torrent":"Загрузить файл","files":"Файлы","file":"Файл","folder":"Папка","start_all":"Начать все","pause_all":"Приостановить все","remove_all":"Убрать все","upload_all":"Загрузить все","clear_history":"Чистая история","pause_all_finish_payments":"На этом все платежи закончатся.","accelerating":"Ускорение","link_task":"Связать задачу","torrent_task":"Файловая задача","ok":"ХОРОШО","cancel":"Отмена","download_directory_position":"Загрузить положение каталога","torrent_file":"файл задачи","magnetic_link_incorrect":"Неверный формат ссылки","delete_fail":"Удалить не удалось","pause":"Пауза","paused":"Приостановлено","stop_torrent":"Останавливаться","seed":"Семя","resume":"Резюме","downloading":"Загрузка","downloaded":"Скачано","uploading":"Загрузка","auto_uploading":"Автоматическая загрузка","uploaded":"Загружено","pending":"Жду других задач","verifying":"Проверка","waiting_for_verify":"Ожидание проверки","seeding":"Посев","completed":"Завершенный","status":"Положение дел","task_name":"Название задачи","size":"Размер","progress":"Прогресс","sort":"Сортировать","ascending":"Восходящий","descending":"По убыванию","file_loading":"Загрузка файла...","loading":"Загрузка","unknown_status":"Неизвестный","play_while_downloading":"Играть...","upload_or_play":"Загрузить / Воспроизвести","play":"Играть","ask_if_upload_file":"Загрузить файл?","ask_if_upload_or_play":"Загрузить или воспроизвести файл?","torrent_error":"Ошибка при добавлении задачи:","no_peers":"Повторите попытку более {0} раз, и нет доступных одноранговых узлов","torrent_exists":"Задача уже существует.","show_origin_torrent":"Получить исходный файл задачи или URL-адрес","show_directory":"Открыть каталог этого торрента","task_num":"Задания","total_upload_speed":"Скорость загрузки","total_download_speed":"Скорость загрузки","path_missing":"Ошибка: не удается найти торрент-путь","origin_not_found":"Не удается найти информацию об исходной задаче.","text_copied":"URL Magnum скопирован в буфер обмена","copy_magnet_uri":"Копировать магнит:? URI","copy_download_uri":"Скопировать URI загрузки","copy_share_uri":"Скопировать общий URI","uri_copied":"URI успешно скопирован в буфер обмена","uri_copy_failed":"Не удалось скопировать uri","more":"Более...","toggle_list_mode":"Переключить режим списка","comment":"комментарий","operations":"Операции","open_directory":"Открыть каталог","no_downloading_task":"Нет задачи загрузки","remove_all_downloading_tasks":"Удалить все задачи загрузки?","remove_all_upload_tasks":"Удалить все задачи загрузки?","remove_autoupload_files":"Убрать автозагрузку файлов","remove_all_history":"Удалить всю историю?","remaining":"Оставшийся","created_time":"Время создания","used_time":"Использованное время","completed_time":"Завершенное время","yesterday":"Вчера","before_yesterday":"{empty}","earlier":"Ранее","miss_file":"Некоторые файлы отсутствуют","delete_miss_file_task":"Отсутствуют файлы fome в {0}.","common_peer":"Общий пир","ab_peer":"${displayName} коллега","ab_peer_verified":"Подтвержденный партнер ${displayName}","ab_peer_available":"${displayName} доступный пир(ы)","alphabiz_accelerating":"${displayName} ускорение","income":"Доход","income_info":"Доход(сегодня/всего)","total_income_info":"Доход: {0}(сегодня) / {1}(всего)","login_to_see_income":"Войдите, чтобы увидеть статистику доходов","credit_cost":"Стоимость кредита","downloaded_by_payment":"Скачано платежами","file_not_found":"Не удается найти этот файл в локальной","no_task":"Не спрашивай","no_matched_task":"Нет подходящей задачи","space_not_enough":"Недостаточно места на диске","need_more_space":"Требуется больше места на {0}, но на текущем диске свободно {1} (зарезервировано {2}). Задачи приостановлены. Предварительная загрузка библиотеки отключена. Вы можете снова включить его в [Настройки - Дополнительные].","seeders":"Сеялки","last_update":"Последнее обновление","connecting":"Подключение","connected":"Связанный","request_timed_out":"Истекло время запроса","connection_failed":"Ошибка подключения","invalid_download_url":"Неверный URL-адрес загрузки","download_link":"ссылка для скачивания","empty_files":"Нет файлов в каталоге","duplicate_task":"Дублировать задачу","duplicate_tracker":"Дублирующий трекер","this_task_not_ready":"Эта задача не готова. Приостановка этой задачи приведет к ее непосредственному удалению.","some_task_not_ready":"Некоторые задачи не готовы. Приостановка этих задач приведет к их непосредственному удалению.","failed_to_delete_files":"Не удалось удалить файлы","failed_to_delete_files_desc":"Не удалось удалить некоторые файлы задания. Возможно, вам придется удалить их вручную","unknown_error":"Неизвестная ошибка: {0}","more_files_are_not_shown":"({0} дополнительные файлы не отображаются из соображений производительности)","no_available_file":"Нет доступного файла. Пожалуйста, дождитесь готовности задачи.","service_worker_error":"Не удается загрузить ServiceWorker для игры. Возможно, ваш браузер не поддерживает эту функцию, или ServiceWorker не активирован. Возможно, вам придется перезагрузить эту страницу и повторить попытку.","add_task_first":"Сначала нужно добавить задачу.","player_task_time":"Игрок слишком долго готовится к игре. Возможно, что-то не так с заданием.","web_mode_hint":"Веб-режим ${displayName} поддерживает только одноранговые узлы WebRTC. Для получения наилучших результатов загрузите настольное приложение ${displayName}.","web_mode_task_hint":"Нажмите кнопки ниже, чтобы добавить задачу. Вы можете добавить только одну задачу за один раз.","save_to_local":"Сохранить в локальном","save_as_zip":"Сохранить как ZIP","creating_save_file":"Создание файла сохранения...","upload_as_one_directory":"Загрузить как один каталог","upload_as_single_files":"Загружать отдельными файлами","web_mode_upload_single":"Вы можете загрузить только один файл в веб-режиме","download_success":"Скачать успешно","download_fail":"Загрузка не удалась","wait_for_downloaded_to_share":"Пожалуйста, дождитесь загрузки задания, прежде чем делиться им.","download_with_cellular":"Скачивайте задания с помощью сотовой связи","download_with_cellular_desc":"Вы используете сотовую сеть. Загрузка задач с помощью сотовой связи может взимать дополнительную плату с вашего оператора связи.","download_with_cellular_confirm":"Еще скачать с сотовой связи","language":"Язык","appearance":"Появление","darkModeSystem":"Система","darkModeLight":"Свет","darkModeDark":"Темный","basic_setting":"Базовый","hideMenu":"Скрыть меню приложений (только для Windows и Linux)","autoHide":"Автоматическое скрытие окна","autoStart":"Открыть при входе","restore":"Сохранять размер и положение окна при выходе","autoStartUnfinished":"Автоматически возобновлять все незавершенные задачи","default_download_path":"Путь по умолчанию","download_directory":"Скачать каталог","upload_directory":"Загрузить каталог","enable_auto_upload":"Включить автоматическую загрузку","unlimit_upload_amount":"Неограниченная сумма загрузки","unlimit_upload_warning":"Разрешить загружать большое количество файлов. Это может вызвать проблемы с производительностью","start":"Запускать","transport_setting":"Передача инфекции","upload_limit":"Лимит загрузки","download_limit":"Лимит загрузки","payed_user_share_rate":"Доля оплаченных пользователей","unlimited":"Неограниченный","limit_input_error":"Число лимита должно быть положительным","BT_setting":"Параметры задачи","saveLinkSeed":"Сохранить ссылку как файл задачи","autoDownload":"Автоматически загружать ссылку и контент","continuousSeeding":"Продолжайте заполнение, пока не остановите его вручную","seedSharingRate":"Соотношение семян","seedTime":"Начальное время (минуты)","task_manage":"Управление задачами","maximumDownloadNum":"Максимальное количество активных задач","maximumConnectionsNum":"Максимальное количество подключений на сервер","range_error":"Диапазон должен быть между {0} и {1}.","random":"случайный","breakpointContinuation":"Продолжать","automaticSkip":"Автоматически показывать загрузку после добавления задачи","afterNotification":"Уведомление после завершения загрузки","deleteConfirm":"Перед удалением задачи не требуется подтверждение","submit":"Сохранить и применить","discard":"Отказаться","reset":"Перезагрузить","reset_all_settings":"Сбросить все настройки?","preferences_resetted":"Настройки сброшены","traditional_chinese":"традиционный китайский","japanese":"Японский","english":"Английский","chinese":"Упрощенный китайский","advancedSettings":"Передовой","autoUpdate":"Автоматическое обновление","autoCheckUpdate":"Автоматически проверять наличие обновлений","proxy":"Прокси","useProxyService":"Включить прокси","trackerService":"Трекерные серверы","recommendUse":"рекомендуемые","autoUpdateTrackerServiceList":"Автоматически обновлять список трекеров каждый день","manualUpdateTracker":"Ручное обновление","manualUpdateSuccess":"Успешно обновить серверы отслеживания","manualUpdateFail":"Не удалось обновить с:","listenPort":"Прослушивание портов","BTlistenPort":"Порт передачи данных","DHTlistenPort":"Распределенный хэш-порт","protocols":"Совместимые протоколы","setDefaultClientForFollowingProtocols":"Установить в качестве клиента по умолчанию для следующих протоколов","magnetUrl":"Магнит","video_file":"Видеофайл","audio_file":"Аудиофайл","security":"Безопасность","impersonateUserAgent":"Имитация пользовательского агента","RPCauthorizationkey":"Секрет RPC","viewDocument":"Посмотреть секретное руководство RPC","developer":"Разработчик","applicationLogPath":"Путь к журналу приложения","downloadSessionPath":"Скачать путь сеанса","resetDownloadSessionRecord":"Сбросить сеанс загрузки","restoreInitialSettings":"Сброс к заводским настройкам","preferences_set_successfully":"Сохраните настройки успешно!","preferences_set_fail":"Не удалось сохранить настройки!","change_not_save":"Изменения не сохраняются","discard_all_changes":"Отменить все изменения и уйти?","stay_in_page":"Оставайтесь на странице","disk_usage":"Использование диска","pause_if_less_space":"Пауза и уведомление, если места меньше (МБ)","default_video_player":"Видеопроигрыватель по умолчанию","video_cache_time":"Кэш потокового воспроизведения","minutes":"минуты","system_default":"Системные установки по умолчанию","media_player":"Медиа плеер","library_film_rate":"Доступная скорость фильма","library_show_explore":"Показать страницу [Исследовать]","library_setting":"Настройка библиотеки","library_sync_setting":"Настройка синхронизации библиотеки","keychain_sync_status":"Статус синхронизации связки ключей","sync_with_aws":"Синхронизируйте связку ключей с Amazon Web Services","backup_to_local":"Резервное копирование в локальный файл","enable_sync_with_aws":"Включить синхронизацию с AWS","disable_sync_with_aws":"Отключить синхронизацию с AWS","disable_sync_with_aws_desc":"Это удалит сохраненный ключ на сервере. Пожалуйста, убедитесь, что вы уже экспортировали свой ключ.","input_independent_password":"Введите независимый пароль","change_independent_password":"Изменить независимый пароль","password_error":"Ошибка пароля","password_invalid":"Неверный пароль","key_existed":"Ключ существовал","key_not_found":"Ключ не найден","library_recommend":"Библиотека рекомендует","show_all_channels":"Показать все каналы на странице рекомендаций библиотеки","not_logged_in":"Не вошел","login_to_continue":"Войдите, чтобы продолжить","mnemonic_code":"Мнемонический код","wordlist":"Список слов","restore_code":"Восстановить из кода","generate_code":"Сгенерировать код","export_mnemonic_code":"Экспорт мнемонического кода","import_mnemonic_code":"Импорт мнемонического кода","print":"Распечатать","save_as_txt":"Сохранить как текст","save_as_pdf":"Сохранить как PDF","from_file":"Из файла","not_valid_mnemonic_code":"Это неверный мнемонический код.","cannot_parse_code_as_key":"Не удается разобрать этот мнемонический код как библиотечный ключ","import_key_hint":"Вы уверены, что хотите импортировать этот ключ? Это восстановит ваш старый ключ в библиотеке.","import_key_confirm":"Да, импортировать.","library_preload":"Предварительно загрузить задачи из библиотеки","show_preload":"Показать задачи предварительной загрузки","set_download":"Установить каталог загрузки","set_download_desc":"Для версии App Store для macOS каталог загрузки по умолчанию находится в песочнице приложения и будет удален после удаления приложения. Если вы хотите сохранить загруженные файлы, вам нужно выбрать другой каталог загрузки вручную.","home":"Дом","home_caption":"Загрузка/выгрузка и медиафайлы","library":"Библиотека","library_caption":"Исследуйте медиа-ресурсы","player":"Игрок","player_caption":"Медиа плеер","credits":"Кредиты","credits_caption":"Проверить баланс счета","account":"Счет","account_caption":"Войти/Зарегистрироваться/Управление","settings":"Настройки","settings_caption":"Настройки для приложения, плеера, учетной записи","development":"Разработка","development_caption":"Режим разработчика для внутреннего использования","basic":"Базовый","basic_caption":"Базовые настройки","advanced":"Передовой","advanced_caption":"Расширенные настройки","blockchain":"Кошелек","blockchain_caption":"${displayName} Децентрализованный кошелек","internal_notice":"Уведомление о внутреннем выпуске","release_notes":"Примечания к выпуску","terms_and_conditions":"Условия и положения","license_and_listen_notices":"Лицензия и прослушивание уведомлений с открытым исходным кодом","close":"Закрывать","success":"Успех","fail":"Неудача","account_email_invalid_address":"Неверный адрес электронной почты","account_email_invalid_domain":"Недействительный домен электронной почты","account_email_unknown_status":"Неизвестный статус доставки электронной почты","account_email_unavailable_address":"Недоступный адрес электронной почты","account_email_suppressed_address":"Заблокированный адрес электронной почты","account_loading":"Загрузка...","account_is_required":"требуется","account_sign_in_your_account":"Войти","account_username":"Имя пользователя","account_username_email_phone":"Номер телефона или электронная почта","account_password":"Пароль","account_new_password":"Новый пароль","account_re_enter_password":"Повторно введите пароль","account_password_not_equal":"Два пароля не равны","account_new_password_same":"Пароль такой же, как исходный пароль","account_forgot_your_password":"Забыли пароль?","account_reset_password":"Сброс пароля","account_sign_in":"Войти","account_signed_in":"Вошел","account_sign_up":"Зарегистрироваться","account_find_your_account":"Найти ваш аккаунт","account_enter_your_username":"Введите свой номер телефона или адрес электронной почты","account_search":"Поиск","account_email_sent_tip":"На вашу электронную почту отправлено письмо с кодом подтверждения:","account_phone_sent_tip":"На ваш телефон отправлено SMS с кодом подтверждения:","account_email_phone_sent_tip":"Электронное письмо и SMS с кодом подтверждения были отправлены на ваш адрес электронной почты и телефон соответственно:","account_software_token_tip":"Для вашей учетной записи включена функция MFA. Чтобы завершить вход, включите или просмотрите свое устройство и введите TOTP.","account_reset_your_password":"Сбросить пароль","account_verification_code":"Проверочный код","account_resend_code":"Отправить код еще раз","account_code_has_been_resent":"Код подтверждения отправлен повторно","account_password_has_been_reset":"Пароль был сброшен","account_submit":"Представлять на рассмотрение","account_sign_up_your_account":"Зарегистрируйтесь","account_fill_required_fields":"Заполните необходимые поля ниже.","account_fill_optional_fields":"Заполните необязательные поля ниже.","account_email":"Электронная почта","account_invitation":"Приглашение","account_invitation_code":"Код приглашения","account_i_accept":"Я принимаю","account_license_terms":"лицензия и условия","account_next":"Следующий","account_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия.","account_verify_fill_optional_fields":"Проверьте и заполните необязательные поля.","account_nickname":"Псевдоним","account_gender":"Пол","account_male":"Мужской","account_female":"Женский","account_not_say":"Не сказать","account_birthday":"День рождения","account_phone_number":"Номер телефона","account_locale":"Местный","account_tip_verified":"Подтверждено, вход...","account_verified":"проверено","account_unverified":"непроверенный","account_signed_up":"Подписали","account_verify_your_identity":"Подтвердите вашу личность","account_finish":"Заканчивать","account_signed_out":"Вышел","account_change_password":"Изменить пароль","account_change_email":"Изменить e-mail","account_change_phone_number":"Изменить номер телефона","account_sign_out":"выход","account_current_password":"Текущий пароль","account_re_enter_new_password":"Повторно введите новый пароль","account_personal_information":"Информация","account_edit":"редактировать","account_reset":"перезагрузить","account_greeting":"Привет,","account_cancel":"Отмена","account_change":"изменять","account_not_set":"не задано","account_setting":"параметр","account_copy_code":"скопируйте код","account_account_setting":"Счет","account_task_page":"Кредитная задача","account_setting_caption":"Изменить пароль/редактировать информацию","account_security":"Безопасность","account_want_to_join":"Хочу присоединиться?","account_sign_in_now":"Войти","account_changed":"Измененный","account_clipboard_with_invitation_code":"Код приглашения скопирован","account_clipboard_with_code":"Код скопирован","account_invitation_code_dialog_tip":"Вы отправите другу электронное письмо или текстовое сообщение с кодом приглашения:","account_available":"доступный","account_invited":"приглашенный","account_used":"использовал","account_invitation_code_sent":"Пригласительный код отправлен","account_invitation_channel_required":"Заполните хотя бы один канал приглашения","account_no_verification_code":"Не можете получить код подтверждения?","account_no_phone_number":"Нет номера телефона?","account_sign_up_by_email":"Зарегистрироваться по электронной почте","account_no_email":"Нет электронной почты?","account_sign_up_by_phone_number":"Запись по номеру телефона","account_no_totp":"Нет ТОТП?","account_tip_no_totp":"Если нет TOTP, сначала настройте TOTP","account_setup_totp":"Настройка ТОТП","account_contact_information":"Контактная информация","account_delete_account":"Удалить аккаунт","account_deleted":"Удалено","account_can_not_mfa":"МИД в беде?","account_set_mfa_type":"Конфигурация многофакторной идентификации","account_disable_mfa":"Отключить многофакторную идентификацию","account_disabled_mfa":"Отключено многофакторной идентификации","account_sms_mfa":"СМС МФА","account_totp_mfa":"ТОТП МИД","account_totp":"ТОТП","account_not_recommend":"Не рекомендую","account_oauth_sign_in_with":"Войти с помощью {provider}","account_sign_in_failed":"Не удалось войти","account_tip_oath_sign_up":"Адрес электронной почты, соответствующий текущей учетной записи {provider}: {email} еще не создал учетную запись","account_tip_confirm_delete_account":"Введите пароль текущей учетной записи, чтобы подтвердить, что вы хотите удалить текущую учетную запись. (Удаленные учетные записи не могут быть восстановлены)","account_tip_config_mfa":"Вы можете использовать SMS или одноразовый пароль на основе времени (TOTP) в качестве вторичной аутентификации.","account_error_can_not_enable_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить MFA","account_tip_can_not_enable_sms_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить SMS MFA","account_tip_can_not_enable_totp_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить TOTP MFA.","account_tip_setup_totp":"Используйте приложения, такие как Authenticator, для сканирования приведенного ниже QR-кода или скопируйте код вручную, чтобы добавить токен безопасности.","account_tip_verify_totp":"Подтвердите свой TOTP","account_link_your_social_account":"Привяжите свой социальный аккаунт","account_unlink_your_social_account":"Отвязать социальный аккаунт","account_tip_confirm_link":"Вы уверены, что хотите привязать текущую учетную запись к своей учетной записи {provider}?","account_tip_confirm_unlink":"Вы уверены, что хотите отменить привязанную учетную запись {provider}?","account_tip_linking":"связывание...","account_tip_unlinking":"Отвязка...","account_linked":"Граница","account_unlinked":"Свободный","account_error_can_not_link_to_the_linked_account":"Текущая социальная учетная запись привязана к другой учетной записи","account_error_can_not_link_to_the_mismatched_email":"Текущая учетная запись и адрес электронной почты социальной учетной записи несовместимы","account_error_can_not_link_before_email_verified":"Невозможно связать социальную учетную запись, поскольку текущая учетная запись не привязана к подтвержденному адресу электронной почты.","account_tip_confirm_verify_email_phone":"Нужно ли отправлять код подтверждения на адрес электронной почты и номер телефона текущей учетной записи для подтверждения вашей личности?","account_tip_confirm_verify_phone":"Нужно ли отправлять код подтверждения на текущий номер телефона для подтверждения личности?","account_error_1_message_60_seconds":"Каждые 60 секунд можно отправлять только одно SMS или электронное письмо, подождите еще {delta} секунд","account_error_10_messages_per_day":"Каждый мобильный телефон или адрес электронной почты может отправлять только 10 сообщений в течение 24 часов.","account_error_network":"Возникла проблема с сетью, повторите попытку позже","Network Error":"Возникла проблема с сетью, повторите попытку позже","account_error_user_not_exist":"Пользователь не существует","account_error_incorrect_username_or_password":"Неверное имя пользователя или пароль","account_error_incorrect_original_password":"Неверный исходный пароль","account_error_incorrect_password":"неверный пароль","account_error_username_not_found":"Имя пользователя не найдено","account_error_can_not_reset_for_no_verified":"Невозможно сбросить пароль для неподтвержденной учетной записи","account_error_invalid_verification_code":"Неверный проверочный код, попробуйте еще раз","account_error_expired_verification_code":"Срок действия кода подтверждения истек, попробуйте еще раз","account_error_password_not_long_enough":"Пароль недостаточно длинный","account_error_attempt_limit_exceeded":"Превышен лимит попыток, попробуйте через некоторое время.","account_error_password_attempts_exceeded":"Превышено количество попыток ввода пароля.","account_error_invalid_phone_number_format":"Неверный формат номера телефона","account_error_no_cell_phone_prefix":"Пожалуйста, выберите префикс для номера телефона","account_error_username_already_exists":"Имя пользователя уже существует","account_error_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия","account_error_inactive_code":"Код приглашения не является активированным кодом","account_error_non_existent_code":"Код приглашения не существует","account_error_unexpected":"Неожиданная ошибка","account_error_can_not_change_email_before_phone_bound":"Электронная почта не может быть изменена до привязки номера телефона","account_error_can_not_change_email_before_unbound_social_account":"Электронная почта не может быть изменена до отвязки социальной учетной записи","account_error_can_not_change_phone_before_email_bound":"Номер телефона нельзя изменить, пока электронная почта не будет привязана","account_error_can_not_change_email_phone_with_mfa_enabled":"Невозможно изменить адрес электронной почты или номер мобильного телефона до отключения MFA","account_error_not_supported_yet":"Временно не поддерживается","account_error_same_email":"Новый адрес электронной почты не может совпадать с исходным адресом электронной почты.","account_error_same_phone":"Новый номер телефона не может совпадать с исходным номером телефона.","account_error_email_not_exists":"Адрес электронной почты не существует","account_error_email_already_exists":"Учетная запись с указанным адресом электронной почты уже существует.","account_error_phone_already_exists":"Учетная запись с указанным номером телефона уже существует.","account_error_mfa_token_mismatch":"Несоответствие кода программного токена","account_error_recaptcha_not_loaded":"Есть проблема с сетью. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_recaptcha_validation_failed":"Ошибка проверки ReCAPTCHA. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_sign_in_in_progress":"Ожидающая попытка входа уже выполняется","account_field_range":"Ограничьте ввод {0}-{1} символов","account_field_only_alphanumeric":"Поддерживает только буквенно-цифровые","account_field_only_alphanumeric_and_symbol":"Поддерживает только буквенно-цифровые и символы","account_field_only_chinese_alphanumeric_space_underline":"Поддерживает только буквы, цифры, пробел, подчеркивание","account_field_prefix_without_number_space":"Первый символ не может быть цифрой или пробелом","account_field_suffix_without_space":"Не может заканчиваться пробелом","account_field_without_repeat_space":"Нельзя использовать несколько пробелов подряд","account_field_can_not_only_alphanumeric":"Вы не можете просто использовать буквы или цифры","account_field_must_have_number_characters":"Должен содержать числовые символы","account_field_verification_code":"Код подтверждения должен состоять из шести цифр.","account_field_invitation_code":"Код приглашения должен быть буквенно-цифровым","account_field_phone_number":"Неверный формат номера телефона","account_invalid_email_format":"Неверный формат электронной почты","account_sign_out_confirm":"Вы уверены, что хотите выйти? Это остановит все задачи.","account_sign_out_anyway":"Выйти в любом случае","account_signing_out":"Выписка...","account_request_save_settings":"Настройки не сохраняются. Перед выходом необходимо сохранить изменения.","pay":"Платить","pay_with_credit":"Плата за ускорение скачивания. Нужно около {0} кредита","pay_with_credit_payed":"Ускорение. Все еще требуется около {0} кредита","create_payment":"Создать платеж","pay_target":"Цель","pay_for_torrent":"Оплатить {0}","your_subid":"Ваш субидентификатор","your_credits":"Ваши кредиты","pay_point_for_data":"Заплатите {0} баллов за {1} данных","auto_renew":"Включить автоматическое продление","transaction_details":"Детали транзакции","transaction_id":"Идентификатор","transaction_payer":"Плательщик","transaction_payee":"Получатель платежа","transaction_category":"Категория","transaction_changed_amount":"Изменена сумма","transaction_meta":"Мета","transaction_status":"Положение дел","transaction_creation_time":"Время создания","receipt_code":"Код получения","transfer_amount":"Сумма перевода","code_the_receipt_code":"Скопируйте код квитанции ниже плательщику","fill_the_receipt_code":"Перевод путем заполнения кода платежа, предоставленного получателем платежа","expense":"Расход","copied":"Скопировано","transfer":"Передача","receive":"Получать","copy":"Копировать","withdraw_fund":"Вывод средств","category_paydata_payer":"Стоимость данных","category_paydata_payee":"Доход от данных","category_transfer":"Передача","category_bonus":"Бонус","category_recharge":"Перезарядка","status_pending":"в ожидании","status_completed":"завершенный","status_finish":"заканчивать","status_failed":"неуспешный","tip_invalid_receiver":"Неверный код получателя","tip_invalid_amount":"Сумма кредита должна быть числом с плавающей запятой в диапазоне 0-1000 (минимальная точность 0,001).","credit_get_more":"Получите больше кредитов","credit_no_data":"Данные недоступны","credit_loading":"Загрузка...","credit_not_enough_amount":"Недостаточно кредитов","credit_amount_not_enough":"Недостаточно кредитов","credit_payee_not_exist":"Плательщик не существует","credit_invalid_amount":"Неверная сумма кредита","credit_can_not_transfer_to_yourself":"Не могу перевести на себя","credit_latest":"Последний","credit_error_network":"Возникла проблема с сетью, повторите попытку позже","add_subtitles":"Добавить субтитры","open_file":"Открыть файл...","advanced_options":"Расширенные настройки","title":"Заголовок","location":"расположение","subtitle_file":"файл субтитров","unsupported_subtitle_type":"Тип файла {0} не является поддерживаемым типом субтитров.","not_default_player":"Видеоплеер по умолчанию не установлен","this_is_an_audio_file":"это аудиофайл","the_added_subtitle_already_exists":"Добавленный субтитр уже существует","stop_stream_player":"Потоковое мультимедиа было прекращено, потому что задача была приостановлена ​​или удалена","stop_player":"Работа плеера была завершена, так как файл был удален","playing_timeout_hint":"Время ожидания истекло. Пожалуйста, проверьте задание","autoplay_hint":"Автозапуск может быть заблокирован вашим браузером. Если плеер не играет, попробуйте нажать на экран, чтобы продолжить","remove_playing_confirm":"{0} все еще воспроизводится, удалите его, чтобы остановить проигрыватель. Вы уверены, что хотите удалить его?","unsupported_in_browser":"Пока не поддерживается в режиме браузера","client":"Клиент","warning":"Предупреждение","enable":"Давать возможность","disable":"Запрещать","auto":"Авто","encrypt_connection":"Зашифровать соединение","encrypted_connection":"Зашифрованное соединение","non_encrypted_connection":"Незашифрованное соединение","connected_wires_not_disconnect":"Подключенные провода не будут отсоединены","audio":"аудио","video":"видео","image":"изображение","subtitle":"подзаголовок","zip":"молния","text":"текст","unknown":"неизвестный","add":"Добавлять","undo":"Отменить","backup":"Резервное копирование","not_default_app":"${displayName} не является вашим приложением по умолчанию для торрентов и мультимедиа, вы хотите установить его по умолчанию?","dont_show_again":"Больше не показывать","go_to_settings":"Перейдите в настройки","about_alphabiz":"Около ${displayName}","last_check_at":"Последняя проверка в","update_channel":"Обновить канал","check_for_update":"Проверить обновления","checking_for_update":"Проверка обновлений...","no_update_available":"Нет доступных обновлений","update_available":"Доступно обновление","update_now":"Обновить сейчас","update_later":"Обновить позже","click_to_update":"Нажмите кнопку ОБНОВИТЬ СЕЙЧАС, чтобы загрузить и обновить","update_failed":"Не удалось обновить","update_failed_message":"При обновлении произошла ошибка:","check_shasum_failed":"Не удалось проверить целостность установщика","downloading_update":"Загрузка обновления...","ready_to_update":"Готов к обновлению","restart_to_update":"Обновление скачивается. ${displayName} на некоторое время выйдет из режима обновления.","already_latest":"Текущая версия ({0}) уже является последней","update_timeout":"Время ожидания обновления","no_available_release":"Нет доступных выпусков","no_available_installer":"Нет доступного установщика","feedback":"Обратная связь","select_a_type":"Выберите тип","category":"Категория","select_a_category":"Выберите категорию","require_title":"Требуется заголовок","describe_your_problem":"Опишите вашу проблему","report_a_bug":"Сообщить об ошибке","request_a_new_feature":"Запросить новую функцию","download_or_upload":"Загрузка выгрузка","others":"Другие","submit_with_system_info":"Отправить с информацией о системе","submit_feedback":"Отправить отзыв","tweet_us":"Напишите нам","tweet_too_long":"Твит слишком длинный","delete_characters":"Удалите как минимум {0} символов.","rest_characters":"Вы можете ввести еще {0} символов","update_alphabiz":"Обновить ${displayName}","current_version":"Текущая версия","cancel_update":"Отменить обновление","slow_download_speed":"Загрузка слишком медленная","slow_download_speed_caption":"Загрузка установщика теперь слишком медленная. Пожалуйста, проверьте состояние сети","update_canceled":"Обновление отменено","current_version_release_time":"Время выпуска текущей версии","expired_app":"${displayName} Просрочено","version_out_of_date":"Версия устарела","have_to_update":"Версия ${displayName} устарела. Некоторые протоколы или API устарели. Вы должны обновить ${displayName}, прежде чем продолжить.","exit_alphabiz":"Выход ${displayName}","exit_and_update":"Выйти и применить обновление","new_version_hint":"Доступна новая версия","no_new_version":"Нет новой версии","current_is_latest":"Текущая версия уже является последней","click_to_check_update":"Нажмите кнопку [ПРОВЕРИТЬ ОБНОВЛЕНИЕ], чтобы проверить наличие обновлений.","download_latest_version_from_website":"Пожалуйста, посетите официальный сайт, чтобы загрузить последнюю версию","to_the_website":"На сайт","network_diagnotic":"Диагностика сети","diagnotic":"Диагностика","click_to_check":"Нажмите, чтобы проверить","click_to_check_again":"Нажмите, чтобы проверить еще раз","checking":"Проверка","online":"В сети","offline":"Не в сети","dns_look_up":"DNS-поиск","error":"Ошибка","aws_service":"Сервис AWS","network_pings":"Сетевой пинг","not_found":"Не найдено","packet_loss":"Потеря пакетов","official_site":"Официальный сайт","download_test":"Скачать тест","test_task":"Тестовое задание {0}","download_failed":"Загрузка не удалась","second_spend":"{0} потрачено","open_default_player_failed":"Не удалось открыть проигрыватель по умолчанию","copied_to_clipboard":"Скопировано в буфер обмена","go_to":"Идти к","region_not_available":"Регион недоступен","region_not_available_message":"Извини! Ваш регион недоступен для использования этого приложения. Это приложение будет закрыто через {0} секунд","confirm":"Подтверждать","no_available_result":"Нет доступных результатов","invalid_password_format":"Неверный формат пароля","invalid_password_format_same":"Пароль такой же, как исходный пароль","error_password":"Ошибка пароля","keychain_setting":"Брелок","setting_description":"Облачное хранилище: Сохраняйте ключевые данные в облаке.\\nИзменить пароль: изменить пароль для ключа библиотеки мультимедиа.\\nМнемоника: альтернативный метод генерации и восстановления ключей.\\nИмпортировать локальный ключ: Импорт локально сохраненного ключа в медиатеку.\\nКлюч экспорта: сохраняет текущие данные медиатеки в локальном хранилище или в облаке.\\nКлюч резервного копирования в облако: обновите данные текущей медиатеки в облаке для резервного копирования.","refresh_status":"Обновить состояние","confirm_import_key":"Подтвердить ключ импорта","confirm_update_cloud_key":"У вас уже есть ключ в облаке. Обновление ключа перезапишет исходный ключ. Вы уверены, что хотите обновить ключ, хранящийся в облаке?","export_key_with_cloud":"Введите независимый пароль, который вы установили для экспорта ключа библиотеки, хранящегося в облаке, и заблокируйте файл ключа с помощью пароля разблокировки.","store_cloud_key_prompt_password":"Введите независимый пароль для хранения ключа библиотеки в облаке","update_cloud_key_prompt_password":"Установите независимый пароль для шифрования ключа библиотеки, а затем обновите его в облаке.","enable_cloud_storage_prompt_password":"Установите пароль для ключа, хранящегося в облаке, с помощью которого вы сможете получить ключ из облака","input_unlock_password":"Установить пароль разблокировки","export_local_prompt_password":"Пожалуйста, установите пароль разблокировки, чтобы зашифровать файл ключа. Мы не сохраним этот пароль для вас, поэтому, если вы потеряете свой пароль, вы не сможете разблокировать ключ библиотеки.","require_unlock_password":"Файл ключа заблокирован, введите пароль разблокировки","require_independent_password":"Введите независимый пароль, чтобы получить ключ, хранящийся в облаке.","import_local_prompt_password":"Файл ключа заблокирован, введите пароль разблокировки","select_encrypt_mode":"Выберите режим шифрования","update_cloud_key":"Обновите ключ, хранящийся в облаке","backup_to_cloud":"Резервное копирование ключа библиотеки в облако","save_local":"Сохраните ключ библиотеки как локальный зашифрованный файл.","create_new_key":"Создайте новый ключ библиотеки","creating_lib_key":"Создание ключа библиотеки...","loading_lib_key":"Загрузка ключа библиотеки...","failed_to_create_lib_key":"Не удалось создать ключ библиотеки","failed_to_load_lib_key":"Не удалось загрузить ключ библиотеки","import_local_key":"Импортировать ключ локально","import_lib_key_from_local":"Импортировать библиотечный ключ локально","import_from_cloud":"Импортировать ключ библиотеки из облака","create_or_import_key":"Создать или импортировать библиотечный ключ","create_or_import_key_desc":"Библиотечный ключ — это независимый ключ, используемый для извлечения и публикации содержимого в децентрализованной базе данных.","store_your_lib_key":"Сохраните ключ библиотеки","export_cloud_key":"Экспорт ключа из облака","export_current_key":"Экспорт текущего ключа","change_password":"Изменить пароль","enable_cloud_storage":"Включить облачное хранилище","disable_cloud_storage":"Отключить облачное хранилище","disable_cloud_storage_desc":"Отключение облачного хранилища приведет к удалению ключа, сохраненного в облаке, убедитесь, что ключ сохранен локально.","sync_at":"Синхронизировать по адресу: {time}","cloud_storage_enabled":"Синхронизировать связку ключей с {storage}","cloud_storage_disabled":"Облачное хранилище отключено","saved_locally":"Сохранено локально","export_key":"Экспорт файла ключа","cloud_independent_password":"Независимый от облака пароль","key_file_unlock_password":"Пароль разблокировки файла ключа","re_enter_unlock_password":"Повторно введите пароль разблокировки","independent_password_not_enabled":"Текущий пароль — это пароль учетной записи Alphabiz (независимый пароль не установлен)","use_cognito_hash":"Использовать пароль учетной записи Alphabiz","use_independent_password":"Используйте независимый пароль","keychain_lib":"ключ библиотеки","loading_keychain_state":"Загрузка связки ключей...","backing_up":"Резервное копирование...","backup_current_key":"Резервное копирование текущего ключа в облако","cloud_lib_key_not_existed":"ключ библиотеки не существует в облаке","open_keychain_file":"Открыть файл связки ключей","confirm_open_abk":"Вы хотите открыть файл ABK?","use_the_key":"Используйте ключ","backup_the_key":"Резервное копирование ключа в облако","keychain_data_does_not_exist":"Данные связки ключей не существуют","timeout of 0ms exceeded":"Возникла проблема с сетью, повторите попытку позже","XhrError":"Возникла проблема с сетью, повторите попытку позже","payer credit amount is not enough":"Недостаточно кредитов","payee does not exist":"Плательщик не существует","block_list_manage":"Управление черным списком","blocked_users":"Заблокированные пользователи","blocked_channels":"Заблокированные каналы","unblock_user":"Разблокировать пользователя","unblock_channel":"Разблокировать канал","no_blocked_user":"Нет заблокированных пользователей","no_blocked_channel":"Нет заблокированного канала","field_required":"{0} требуется","setting":"Параметр","unknown_media":"Неизвестные СМИ","settings_button_visible":"Кнопка видна","settings_setting":"Параметр","settings_playback_rate":"Скорость воспроизведения","settings_subtitle":"Подзаголовок","settings_pip":"Картинка в картинке","settings_fullscreen":"Полноэкранный","settings_subtitle_options":"Параметры субтитров","settings_normal":"Нормальный","settings_italic":"Курсив","settings_lighter":"Более легкий","settings_bolder":"Смелее","settings_small":"Маленький","settings_large":"Большой","about":"О","services":"Услуги","hide":"Скрывать","hide_others":"Скрыть другие","show_all":"Показать все","quit":"Покидать","edit":"Редактировать","redo":"Повторить","cut":"Резать","paste":"Вставить","select_all":"Выбрать все","view":"Вид","reload":"Перезагрузить","toggle_full_screen":"Включить полноэкранный режим","toggle_developer_tools":"Переключить инструменты разработчика","window":"Окно","minimize":"Минимизировать","bring_all_to_front":"Вывести всех на передний план","help":"Помощь","github_repo":"Репозиторий Github","issues":"Проблемы","learn_more":"Узнать больше","learn_spelling":"Учиться правописанию","lookup_selection":"Посмотрите вверх \\"{selection}\\"","search_with_google":"Поиск с помощью Google","save_as":"Сохранить как","save_image":"Сохранить изображение","save_image_as":"Сохранить изображение как ...","copy_link":"Копировать ссылку","save_link_as":"Сохранить ссылку как ...","copy_image":"Копировать изображение","copy_image_as":"Копировать изображение как...","copy_image_address":"Копировать адрес изображения","download_complete":"Загрузка завершена","download_complete_message":"{0} скачивается","is_running":"{0} выполняется","open":"Открыть {0}","launch_problem":"Проблема с запуском","ask_clear_data":"Кажется, вы пытаетесь запустить {0}, но это несколько раз не удалось.\\nВы хотите очистить все данные приложения и попробовать запустить его позже?","launch_directly":"Запустить напрямую","clear_all_data":"Удалить все данные","ask_clear_confirm":"Это удалит все конфиги, логи и пользовательские данные!\\nПосле этого вам может понадобиться снова запустить {0}.\\nВы уверены, что хотите очистить данные?","confirm_launch":"Нет, запустить напрямую","confirm_clear":"Да, удалить все данные"}')},"5e65":function(e,t,a){},"5e6d":function(e,t,a){},"5e87":function(e,t,a){"use strict";a("8fd4")},"5e95":function(e,t,a){"use strict";a("0c7a")},"5e9a":function(e){e.exports=JSON.parse('{"lib_index":"Thuis","lib_edit":"Publiceren","lib_publish":"Publiceren","lib_explore":"Ontdekken","lib_following":"Als vervolg op","lib_favorite":"Lokale favorieten","lib_local_favorites":"Lokale favorieten","lib_channel":"Kanaal","lib_submit":"Indienen","lib_from_network":"Gebruik van gedecentraliseerde database van netwerk","welcome_to_lib":"Welkom bij ${displayName} Mediabibliotheek","register_or_login":"Registreren/Inloggen","lib_recommend":"Aanbevelen","lib_recommend_desc":"Welkom bij ${displayName} Bibliotheek! Deze bibliotheek maakt gebruik van een gedecentraliseerde database van het netwerk. Om het te gaan gebruiken, moet je enkele kanalen volgen.","follow_any_channel_to_continue":"Volg een willekeurig kanaal om door te gaan","follow_channels_and_continue":"Volg {0} kanalen en ga verder","show_more_for_me":"Laat meer zien voor mij","no_more_recommend":"Niet meer aanbevelen","key":"Sleutel","create_key":"Sleutel maken","save_key":"Bewaar sleutel","save_key_file":"Wilt u uw sleutel opslaan als bestand?","import_key":"Sleutel importeren","import":"Importeren","invalid_key":"Ongeldige sleutel","back_to_top":"Terug naar boven","search_for_channel":"Zoek naar kanaal-ID","search_channel_no_result":"Kan kanaal met ID {0} niet vinden","please_input_channel_id":"Voer de kanaal-ID in","welcome_help_text":"Dit is een gedecentraliseerde mediabibliotheek. Jij hebt nodig\\n om een ​​account aan te maken voor deze database. Wij zullen\\n automatisch een persoonlijke sleutel voor u genereren.\\n Als u al een sleutel heeft gehad, kunt u ook importeren\\n het hier.","welcome_key_text":"Nadat u bent ingelogd, klikt u op de knop [SLEUTEL OPSLAAN].\\n in de rechterbenedenhoek om uw privésleutel op te slaan.\\n Als u uw sleutel kwijtraakt, kunt u mogelijk niet meer inloggen.","redirect_to_recommend":"Het lijkt erop dat je geen enkel kanaal hebt gevolgd. Omleiding naar de pagina [Verkennen].","channel":"Kanaal","follow":"Volgen","unfollow":"Ontvolgen","following":"Als vervolg op","share":"Deel","unfollow_confirm":"Weet je zeker dat je dit kanaal niet meer wilt volgen? Alle berichten van dit kanaal in je tijdlijn worden verwijderd.","follow_failed_hint":"De bewerking is nog steeds in behandeling op de achtergrond. Als de bewerking lange tijd niet wordt toegepast, start u de app opnieuw en probeert u het opnieuw.","block":"Blok","unblock":"Deblokkeren","blocked":"Geblokkeerd","block_channel":"Blokkeer dit kanaal","block_channel_confirm":"Door kanaal te blokkeren wordt het van je tijdlijn verwijderd. U kunt uw blokkeerlijst beheren in de accountinstellingen.","block_creator":"Blokkeer de maker van dit kanaal","unblock_creator":"Deblokkeer de maker van dit kanaal","block_creator_confirm":"De maker van het blok verwijdert alle kanalen die door deze maker zijn gemaakt van je tijdlijn. U kunt uw blokkeerlijst beheren in de accountinstellingen.","share_url_copied":"Share-URL wordt gekopieerd naar uw klembord","follow_time":"Volg de tijd","update_time":"Update tijd","search":"Zoekopdracht","type":"Type","added":"Toegevoegd","click_to_task":"Klik om naar de taak te gaan","lib_already_added":"Je hebt deze video al toegevoegd","description":"Beschrijving","poster":"Poster","channel_poster":"Kanaalposter","preview":"Voorbeeld","creator":"Schepper","creator_detail":"Creator-detail","loading_creator":"Informatie over maker laden","wait_for_creator_loaded":"Wacht tot de informatie over de maker is geladen.","follower":"Volgeling","followers":"Volgers","follower_list":"Lijst met volgers","user":"Gebruiker","channel_title":"Kanaal titel","channel_id":"Kanaal Nr","post_title":"Titel posten","post_id":"Post-ID","import_data_from_excel":"Importeer gegevens uit Excel","set_excel_keys":"Excel-sleutels instellen","excel_import_succeded":"Excel-import gelukt","excel_import_success_msg":"{0} rijen zijn klaar om toe te voegen, {1} ongeldige en {2} gedupliceerde items worden genegeerd","cannot_find_channel":"Kan zender niet vinden","cannot_find_posts":"Kan berichten niet vinden","add_channel":"Kanaal toevoegen","add_post":"Bericht toevoegen","edit_channel":"Kanaal bewerken","channel_setting":"Kanaal instelling","edit_post":"Bericht bewerken","edit_posts":"Berichten bewerken","channel_detail":"Kanaaldetail","remove":"Verwijderen","remove_channel":"Kanaal verwijderen","remove_channel_confirm":"Weet je zeker dat je dit bericht wilt verwijderen? Dit kan niet worden hersteld.","remove_post":"Bericht verwijderen","remove_post_confirm":"Weet je zeker dat je dit kanaal wilt verwijderen? Dit kan niet worden hersteld.","preview_mode":"Preview-modus","preview_mode_desc":"Dit is een voorbeeld van je kanaal. Alle tarieven van films worden hier getoond.","edit_user_profile":"Gebruikersprofiel bewerken","name":"Bijnaam","avatar":"Avatar","no_following":"Geen volgende kanalen. Klik om te gaan","no_recommend":"Geen aanbevolen kanalen. Klik om te gaan","first_recomment_msg":"Het kan even duren als dit de eerste keer is dat de app wordt gelanceerd.","invalid_image":"Ongeldige afbeelding","image_not_reachable":"Deze afbeeldings-URL is niet bereikbaar.","channel_not_found":"Kanaal niet gevonden","cannot_get_channel_info":"Kan kanaalinfo niet ophalen. Dit kanaal kan door de maker worden verwijderd en is niet langer beschikbaar.","validate_error":"Fout valideren","validate_user_name_no_space":"Gebruikersnaam mag geen spaties bevatten","validate_url_no_space":"URL mag geen spaties bevatten","validate_user_name_length":"De gebruikersnaam moet een lengte hebben tussen {0} en {1}","validate_user_desc_length":"De gebruikersbeschrijving mag niet langer zijn dan {0} tekens","validate_user_avatar_url":"Gebruikersavatar moet een URL zijn met minder dan 2048 tekens","validate_channel_title_length":"De kanaaltitel moet een lengte hebben tussen 1 en 100","validate_channel_desc_length":"De kanaalbeschrijving moet een lengte hebben tussen 10 en 300","validate_channel_image_url":"Kanaalvoorbeeld moet een URL zijn met minder dan 2048 tekens","validate_post_title_length":"De titel van het bericht moet een lengte hebben tussen 1 en 100","validate_post_desc_length":"De berichtbeschrijving moet een lengte hebben tussen 10 en 300","validate_post_image_url":"Poster moet een URL zijn met minder dan 2048 tekens","validate_post_url":"Ongeldige URL ${displayName}","validate_post_url_length":"${displayName} URL mag niet langer zijn dan 2048 tekens","film_rate":"Film tarief","set_film_rate":"Filmsnelheid instellen","select_a_rate_before_enter":"U moet een filmsnelheid selecteren voordat u naar de mediabibliotheek gaat.","library_available_rate":"Bibliotheek beschikbaar filmtarief","rate_g":"G – Algemeen publiek","rate_g_desc":"Alle leeftijden toegelaten. Niets dat ouders zou beledigen voor het bekijken door kinderen.","rate_pg":"PG - Ouderlijk toezicht voorgesteld","rate_pg_desc":"Sommige materialen zijn mogelijk niet geschikt voor kinderen. Ouders worden aangespoord om \\"ouderlijke begeleiding\\" te geven. Kan materiaal bevatten dat ouders misschien niet leuk vinden voor hun jonge kinderen.","rate_pg_13":"PG-13 – Ouders sterk gewaarschuwd","rate_pg_13_desc":"Sommige materialen kunnen ongeschikt zijn voor kinderen onder de 13 jaar. Ouders worden dringend verzocht voorzichtig te zijn. Sommige materialen zijn mogelijk niet geschikt voor pre-tieners.","rate_r":"R - Beperkt","rate_r_desc":"Onder de 17 jaar is een begeleidende ouder of volwassen voogd vereist. Bevat wat materiaal voor volwassenen. Ouders worden dringend verzocht meer over de film te weten te komen voordat ze hun jonge kinderen meenemen.","rate_nc_17":"NC-17 - Alleen volwassenen","rate_nc_17_desc":"Niemand van 17 jaar en jonger toegelaten. Duidelijk volwassen. Kinderen worden niet toegelaten.","set_as_private":"Instellen als privé","hide_in_explore":"Verberg dit kanaal op de verkenningspagina","hidden":"Verborgen","select_a_rate":"Selecteer een filmtarief","select_from_tasks":"Kies uit taken","import_from_magnet":"Importeren van magneet:?...","input_magnet_url":"Ingangsmagneet:? url","task_title":"Taak titel","set_title":"Titel instellen","add_to_local_favorites":"Toevoegen aan lokale favorieten","remove_from_local_favorites":"Verwijderen uit lokale favorieten","removed_favorite":"Favoriet verwijderd","import_or_export_favorites":"Favorieten importeren/exporteren","export_local_favorites":"Exporteer lokale favorieten als back-up","import_favorites_file":"Favorietenbestand importeren","not_a_favorite_file":"Dit bestand is geen favoriet back-upbestand","connection_status":"Verbindingsstatus","gun_server_list":"Cache-knooppunten","custom_nodes":"Aangepaste cacheknooppunten","custom_nodes_hint":"Aangepaste cacheknooppunten worden toegepast nadat de app opnieuw is gestart","wait_for_reboot":"Wachten op opnieuw opstarten...({seconds}s)","reboot_now":"Herstart nu","reboot_later":"Start later opnieuw op","peer_list":"Directe knooppunten","server":"Knooppunt-URL","peer":"Gelijke","peer_id":"Knooppunt-ID","connection":"Verbinding","data_source":"Databron","sync":"Synchroniseren","syncing":"synchroniseren","sync_completed":"Synchronisatie voltooid","got_all_post":"Je hebt al alle berichten","placeholder_channel_title":"Je kanaalnaam","placeholder_channel_desc":"Beschrijving over dit kanaal","placeholder_post_title":"Filmnaam (jaar)","placeholder_post_desc":"Beschrijving over deze film","private_channel":"Privé kanaal","creator_blocked":"Maker geblokkeerd","go_to_library":"Ga naar de bibliotheek?","go_to_library_channel_msg":"Wil je naar het bibliotheekkanaal {0}?","magnet_does_not_have_name":"Deze magneet:? url heeft geen naam, je moet eerst een berichttitel toevoegen.","no_available_post":"Geen beschikbaar bericht","following_channel_no_post":"Al je volgende kanalen hebben geen beschikbare post. Dit kan worden veroorzaakt door een netwerkfout. Als je al enkele kanalen hebt gevolgd, kunnen de berichten later worden geladen.","share_to_library":"Delen met bibliotheek","quick_start":"Snelle start","quick_start_desc":"Begin met het maken van een bericht met een taak of bestand","select_file":"Selecteer bestand...","select_folder":"Selecteer map...","post_options":"Plaats opties","channel_options":"Kanaal opties","create_new_channel":"Nieuw kanaal maken","use_existed_channel":"Gebruik bestaand kanaal","select_existed_channel":"Selecteer bestaand kanaal","uploaded_by":"{title} geüpload door {name}","created_by":"{title} gemaakt door {name}","creating_new_channel":"Nieuw kanaal maken...","created_new_channel":"Nieuw kanaal gemaakt","creating_new_post":"Nieuw bericht maken...","created_new_post":"Nieuw bericht gemaakt","create_new_post":"Nieuw bericht maken","quick_start_timeout":"{0} time-out. Dit kan worden veroorzaakt door een netwerkfout. Probeer het later opnieuw.","file_too_large":"Bestand te groot","file_too_large_msg":"Dit bestand is groter dan 4 GB ({size}) en kan een lange voorbereidingstijd in beslag nemen. Weet je zeker dat je door wilt gaan?","resolving_folder_files":"Mapbestanden oplossen...","folder_too_large":"Map te groot","folder_too_large_msg":"De bestanden in deze map zijn groter dan 4 GB ({size} totaal) en het kan een lange voorbereidingstijd kosten. Weet je zeker dat je wilt uploaden?","creating_new_task":"Nieuwe taak maken...","cannot_create_task":"Kan taak niet maken","cannot_create_task_msg":"Dit kan een fout veroorzaken. Als de taak correct is gemaakt, kunt u later controleren op de takenlijst.","cannot_get_task_name":"Kan de taaknaam niet ophalen. U moet er eerst een invoeren.","remove_old_task":"Verwijder oude taak","remove_old_task_desc":"De webmodus kan slechts één taak tegelijk maken. Wilt u de oude taak verwijderen?","subtitle_list":"Ondertitel lijst","optional":"optioneel","with_subtitle":"Met {language} ondertitels","maximumSubtitleNum_limit":"Het aantal ondertitels heeft zijn maximum bereikt","add_subtitle_url":"Downloadlink voor ondertiteling toevoegen","cannot_add_subtitle":"Het toevoegen van ondertitels is mislukt","cannot_add_subtitle_msg":"Ondertitelingstaal niet geselecteerd of ongeldige downloadlink.","support_subtitle_type":"Alleen ondertitels in srt- en vtt-indeling worden ondersteund.","recommend_opensubtitles":"Het wordt aanbevolen om de downloadlink of id voor ondertitels te gebruiken op www.opensubtitles.org.","take_down":"Neerhalen","serious_violation":"Ernstige overtreding","copyright_disputes":"Geschillen over auteursrechten","adults_only":"Alleen volwassenen","takedown_reason":"Reden voor verwijdering","takedown_mode":"Takedown-modus","admins":"Beheerders","takedown_user":"Schakel deze maker uit","takedown_channel":"Verwijder dit kanaal","takedown_post":"Verwijder dit bericht","select_takedown_reason":"Selecteer de verwijderingsreden","takedown_invalid_reason":"Ongeldige verwijderingsreden","takedown_invalid_user_id":"Ongeldige gebruikersnaam. ID moet 87 tekens bevatten","takedown_invalid_channel_id":"Ongeldige kanaal-ID. ID moet 20 tekens bevatten","takedown_invalid_post_id":"Ongeldige post-ID. ID moet 20 tekens bevatten","takedown_management":"Beheer afschaffen","users":"Gebruikers","channels":"Kanalen","posts":"Berichten","you":"Jij","preset":"Vooraf ingesteld","admin":"beheerder","committee":"Commissie","about_takedown_mode":"Over de takedown-modus:\\nVoorinstelling: geconfigureerd in github-repository. Ze worden allemaal uit de bibliotheek verwijderd.\\nAdmin: Elke stem van een admin wordt verwijderd.\\nCommissie: Minstens de helft van de admins die op stemmen, wordt verwijderd.","cannot_edit_preset":"U kunt deze rij niet bewerken omdat het een vooraf ingestelde rij is","cannot_edit_not_vote":"Je kunt deze rij niet bewerken omdat je er niet op hebt gestemd","remove_vote":"Verwijder uw stem","post_preload_failed":"Kan dit bericht niet vooraf laden. De downloadlink is mogelijk verouderd, dus dit bericht kan niet onmiddellijk worden afgespeeld.","about_cache_node":"Over cacheknooppunt","edit_cache_node":"Cacheknooppunt bewerken","create_cache_node":"Cacheknooppunt maken","about_cache_node_desc":"${displayName} gebruikt de wapenserver als cacheknooppunt. U kunt aangepaste knooppunten vooraf instellen","learn_how_to_deploy_gun":"Leer hoe u uw eigen wapenserver kunt inzetten","repeat_add":"De taak is toegevoegd. Voeg deze niet opnieuw toe","upload":"Uploaden","download":"Downloaden","delete":"Verwijderen","delete_task":"Taak verwijderen","delete_confirm_message":"Deze taak verwijderen? Dit is onherroepelijk","also_delete_files":"Verwijder ook bestanden","default_delete_files":"Verwijder standaard gedownloade bestanden na verwijdertaak","not_now":"Niet nu","delete_autoupload_confirm":"Deze taak bevat het bestand dat u in de map voor automatisch uploaden hebt geplaatst. Als u deze taak verwijdert, wordt het bestand ook verwijderd.","delete_anyway":"Hoe dan ook verwijderen","upload_too_many_files":"Upload te veel bestanden","ask_if_unlimit_upload_amount":"De map voor automatisch uploaden bevat te veel bestanden. Wilt u de beperking van het uploadbedrag uitschakelen? *Dit kan prestatieproblemen veroorzaken","disable_limitation":"Beperking uitschakelen","not_length":"Werken met meerdere bestanden wordt momenteel niet ondersteund. Werk alstublieft mee","download_torrent":"Download bestand","upload_torrent":"Upload bestand","files":"Bestanden","file":"Bestand","folder":"Map","start_all":"Begin allemaal","pause_all":"Pauzeer alles","remove_all":"Verwijder alles","upload_all":"Alles uploaden","clear_history":"Geschiedenis wissen","pause_all_finish_payments":"Hiermee worden alle betalingen voltooid.","accelerating":"Versnellen","link_task":"Koppel taak","torrent_task":"Dossier taak","ok":"OK","cancel":"Annuleren","download_directory_position":"Directory positie downloaden","torrent_file":"taak bestand","magnetic_link_incorrect":"Het linkformaat is onjuist","delete_fail":"Verwijderen mislukt","pause":"Pauze","paused":"Gepauzeerd","stop_torrent":"Stop","seed":"Zaad","resume":"Cv","downloading":"downloaden","downloaded":"gedownload","uploading":"Uploaden","auto_uploading":"Auto uploading","uploaded":"Geüpload","pending":"Wachten op andere taken","verifying":"Verifiëren","waiting_for_verify":"Wachten op verificatie","seeding":"Zaaien","completed":"Voltooid","status":"Toestand","task_name":"Opdrachtnaam","size":"Maat","progress":"Voortgang","sort":"Soort","ascending":"Oplopend","descending":"Aflopend","file_loading":"Bestand laden...","loading":"Bezig met laden","unknown_status":"Onbekend","play_while_downloading":"Toneelstuk...","upload_or_play":"Uploaden / afspelen","play":"Toneelstuk","ask_if_upload_file":"Upload bestand?","ask_if_upload_or_play":"Bestand uploaden of afspelen?","torrent_error":"Fout bij het toevoegen van taak:","no_peers":"Probeer het meer dan {0} keer opnieuw en er is geen peer beschikbaar","torrent_exists":"Taak bestaat al.","show_origin_torrent":"Haal het originele taakbestand of de url op","show_directory":"Open directory van deze torrent","task_num":"Taken","total_upload_speed":"Upload snelheid","total_download_speed":"Download snelheid","path_missing":"Fout: kan het torrent-pad niet vinden","origin_not_found":"Kan informatie over oorspronkelijke taak niet vinden.","text_copied":"De Magnum-URL wordt naar uw klembord gekopieerd","copy_magnet_uri":"Magneet kopiëren:? URI","copy_download_uri":"Download-URI kopiëren","copy_share_uri":"Deel-URI kopiëren","uri_copied":"URI is met succes naar uw klembord gekopieerd","uri_copy_failed":"Kopiëren van uri is mislukt","more":"Meer...","toggle_list_mode":"Schakel de lijstmodus in","comment":"opmerking","operations":"Activiteiten","open_directory":"Adresboek openen","no_downloading_task":"Geen downloadtaak","remove_all_downloading_tasks":"Alle downloadtaken verwijderen?","remove_all_upload_tasks":"Alle uploadtaken verwijderen?","remove_autoupload_files":"Verwijder automatisch geüploade bestanden","remove_all_history":"Alle geschiedenis verwijderen?","remaining":"Overig","created_time":"Gecreëerde tijd","used_time":"Gebruikte tijd","completed_time":"Voltooide tijd","yesterday":"Gisteren","before_yesterday":"{empty}","earlier":"Eerder","miss_file":"Er ontbreken enkele bestanden","delete_miss_file_task":"Er ontbreken enkele bestanden in {0}.","common_peer":"Gemeenschappelijke collega","ab_peer":"${displayName} collega","ab_peer_verified":"Geverifieerd ${displayName} peer","ab_peer_available":"${displayName} peer(s) beschikbaar","alphabiz_accelerating":"${displayName} versnellen","income":"Inkomen","income_info":"Inkomen (vandaag/totaal)","total_income_info":"Inkomen: {0}(vandaag) / {1}(totaal)","login_to_see_income":"Log in om inkomensstatistieken te bekijken","credit_cost":"Krediet kosten","downloaded_by_payment":"Gedownload door betalingen","file_not_found":"Kan dit bestand niet vinden in lokaal","no_task":"Niet vragen","no_matched_task":"Geen overeenkomende taak","space_not_enough":"Schijfruimte niet genoeg","need_more_space":"Heb {0} meer ruimte nodig, maar de huidige schijf heeft {1} vrij ({2} gereserveerd). Taken zijn gepauzeerd. Bibliotheek vooraf laden is uitgeschakeld. U kunt het opnieuw inschakelen in [Instellingen - Geavanceerd].","seeders":"Zaaimachines","last_update":"Laatste update","connecting":"Verbinden","connected":"Verbonden","request_timed_out":"Verzoek verlopen","connection_failed":"Verbinding mislukt","invalid_download_url":"Ongeldige download-URL","download_link":"download link","empty_files":"Geen bestanden in map","duplicate_task":"Dubbele taak","duplicate_tracker":"Dubbele tracker","this_task_not_ready":"Deze taak is niet gereed. Pauzeer deze taak om deze direct te verwijderen.","some_task_not_ready":"Sommige taken zijn nog niet klaar. Pauzeer deze taken om ze direct te verwijderen.","failed_to_delete_files":"Kan bestanden niet verwijderen","failed_to_delete_files_desc":"Kan sommige bestanden van de taak niet verwijderen. Mogelijk moet u ze handmatig verwijderen","unknown_error":"Onbekende fout: {0}","more_files_are_not_shown":"({0} meer bestanden worden niet weergegeven om prestatieredenen)","no_available_file":"Geen beschikbaar bestand. Wacht tot de taak gereed is.","service_worker_error":"Kan ServiceWorker niet laden om te spelen. Uw browser ondersteunt deze functie mogelijk niet of de ServiceWorker is niet geactiveerd. Mogelijk moet u deze pagina opnieuw laden en het opnieuw proberen.","add_task_first":"U moet eerst een taak toevoegen.","player_task_time":"De speler heeft te veel seconden nodig om zich voor te bereiden op het spel. Er kan iets mis zijn met de taak.","web_mode_hint":"De webmodus van ${displayName} ondersteunt alleen WebRTC-peers. Download voor de beste ervaring ${displayName} Desktop-app.","web_mode_task_hint":"Klik op onderstaande knoppen om een ​​taak toe te voegen. U kunt slechts één taak tegelijk toevoegen.","save_to_local":"Opslaan in lokaal","save_as_zip":"Opslaan als ZIP","creating_save_file":"Opslaan bestand maken...","upload_as_one_directory":"Uploaden als één map","upload_as_single_files":"Uploaden als afzonderlijke bestanden","web_mode_upload_single":"U kunt slechts één bestand uploaden in de webmodus","download_success":"Succesvol downloaden","download_fail":"Download mislukt","wait_for_downloaded_to_share":"Wacht tot de taak is gedownload voordat u deze deelt.","download_with_cellular":"Taken downloaden met mobiel","download_with_cellular_desc":"U gebruikt een mobiel netwerk. Downloadtaken met mobiel kunnen extra kosten in rekening brengen door uw provider.","download_with_cellular_confirm":"Nog steeds downloaden met mobiel","language":"Taal","appearance":"Verschijning","darkModeSystem":"Systeem","darkModeLight":"Licht","darkModeDark":"Donker","basic_setting":"Eenvoudig","hideMenu":"App-menu verbergen (alleen Windows en Linux)","autoHide":"Venster automatisch verbergen","autoStart":"Openen bij inloggen","restore":"Houd grootte en positie van het raam bij het verlaten","autoStartUnfinished":"Hervat automatisch alle onvoltooide taken","default_download_path":"Standaardpad","download_directory":"Directory downloaden","upload_directory":"Directory uploaden","enable_auto_upload":"Automatisch uploaden inschakelen","unlimit_upload_amount":"Onbeperkt uploadbedrag","unlimit_upload_warning":"Sta het uploaden van een groot aantal bestanden toe. Dit kan prestatieproblemen veroorzaken","start":"Beginnen","transport_setting":"Overdragen","upload_limit":"Uploadlimiet","download_limit":"Downloadlimiet","payed_user_share_rate":"Betaald gebruikerspercentage","unlimited":"Onbeperkt","limit_input_error":"Het limietnummer moet positief zijn","BT_setting":"Taak instellingen","saveLinkSeed":"Link opslaan als taakbestand","autoDownload":"Link en inhoud automatisch downloaden","continuousSeeding":"Blijf zaaien tot het handmatig stopt","seedSharingRate":"Zaad verhouding","seedTime":"Zaaitijd (minuten)","task_manage":"Taak beheer","maximumDownloadNum":"Maximaal actieve taken","maximumConnectionsNum":"Maximale verbinding per server","range_error":"Het bereik moet liggen tussen {0} en {1}","random":"willekeurig","breakpointContinuation":"Doorgaan","automaticSkip":"Laat automatisch downloaden zien na het toevoegen van een taak","afterNotification":"Melding nadat het downloaden is voltooid","deleteConfirm":"Er is geen bevestiging vereist voordat de taak wordt verwijderd","submit":"Opslaan en toepassen","discard":"Weggooien","reset":"Resetten","reset_all_settings":"Alle instellingen resetten?","preferences_resetted":"Voorkeuren gereset","traditional_chinese":"traditioneel Chinees","japanese":"Japans","english":"Engels","chinese":"Vereenvoudigd Chinees","advancedSettings":"Geavanceerd","autoUpdate":"Auto Update","autoCheckUpdate":"Automatisch controleren op updates","proxy":"Volmacht","useProxyService":"Proxy inschakelen","trackerService":"Tracker-servers","recommendUse":"Aanbevolen","autoUpdateTrackerServiceList":"Update de trackerlijst elke dag automatisch","manualUpdateTracker":"Handmatige update","manualUpdateSuccess":"Trackerservers succesvol bijwerken","manualUpdateFail":"Kan niet updaten van:","listenPort":"Luister poorten","BTlistenPort":"Poort voor gegevensoverdracht","DHTlistenPort":"Gedistribueerde hashpoort","protocols":"Compatibele protocollen","setDefaultClientForFollowingProtocols":"Instellen als de standaardclient voor de volgende protocollen","magnetUrl":"Magneet","video_file":"Video bestand","audio_file":"Geluidsbestand","security":"Beveiliging","impersonateUserAgent":"Onechte user-agent","RPCauthorizationkey":"RPC-geheim","viewDocument":"Bekijk de RPC Secret-handleiding","developer":"Ontwikkelaar","applicationLogPath":"App-logboekpad","downloadSessionPath":"Sessiepad downloaden","resetDownloadSessionRecord":"Reset downloadsessie","restoreInitialSettings":"Fabrieksinstellingen","preferences_set_successfully":"Bewaar voorkeuren succesvol!","preferences_set_fail":"Voorkeuren opslaan mislukt!","change_not_save":"Wijzigingen worden niet opgeslagen","discard_all_changes":"Alle wijzigingen negeren en vertrekken?","stay_in_page":"Blijf op de pagina","disk_usage":"Schijfgebruik","pause_if_less_space":"Pauzeren en melden als er minder ruimte is dan (MB)","default_video_player":"Standaard videospeler","video_cache_time":"Stream afspeelcache","minutes":"minuten","system_default":"Systeemfout","media_player":"Mediaspeler","library_film_rate":"Beschikbaar filmtarief","library_show_explore":"Toon [Verkennen] pagina","library_setting":"Bibliotheek instelling","library_sync_setting":"Instelling bibliotheeksynchronisatie","keychain_sync_status":"Synchronisatiestatus van sleutelhanger","sync_with_aws":"Synchroniseer sleutelhanger met Amazon Web Services","backup_to_local":"Back-up naar lokaal bestand","enable_sync_with_aws":"Schakel synchronisatie met AWS in","disable_sync_with_aws":"Schakel synchronisatie met AWS uit","disable_sync_with_aws_desc":"Hiermee wordt de opgeslagen sleutel op de server verwijderd. Zorg ervoor dat u uw sleutel al heeft geëxporteerd.","input_independent_password":"Voer een onafhankelijk wachtwoord in","change_independent_password":"Wijzig onafhankelijk wachtwoord","password_error":"Verkeerd wachtwoord","password_invalid":"Wachtwoord fout","key_existed":"Sleutel bestond","key_not_found":"Sleutel niet gevonden","library_recommend":"Bibliotheek aanbevelen","show_all_channels":"Toon alle kanalen op de aanbevelingspagina van de bibliotheek","not_logged_in":"Niet ingelogd","login_to_continue":"Log in om verder te gaan","mnemonic_code":"Mnemonische code","wordlist":"Woordenlijst","restore_code":"Herstellen vanuit code","generate_code":"Code genereren","export_mnemonic_code":"Export geheugensteuntje code","import_mnemonic_code":"Mnemocode importeren","print":"Afdrukken","save_as_txt":"Opslaan als txt","save_as_pdf":"Opslaan als pdf","from_file":"Van bestand","not_valid_mnemonic_code":"Dit is geen geldige geheugensteuncode","cannot_parse_code_as_key":"Kan deze geheugensteuncode niet ontleden als bibliotheeksleutel","import_key_hint":"Weet u zeker dat u deze sleutel wilt importeren? Hiermee wordt uw oude sleutel in de bibliotheek hersteld.","import_key_confirm":"Ja, importeer het.","library_preload":"Taken vooraf laden vanuit de bibliotheek","show_preload":"Vooraf geladen taken weergeven","set_download":"Downloadmap instellen","set_download_desc":"Voor de macOS App Store-versie bevindt de standaard downloadmap zich in de sandbox van de app en wordt deze verwijderd nadat de app is verwijderd. Als u uw downloadbestanden wilt behouden, moet u handmatig een andere downloaddirectory selecteren.","home":"Thuis","home_caption":"Downloaden/uploaden en mediabestanden","library":"Bibliotheek","library_caption":"Verken mediabronnen","player":"Speler","player_caption":"Mediaspeler","credits":"Credits","credits_caption":"Accountsaldo controleren","account":"Rekening","account_caption":"Aanmelden/Aanmelden/Beheer","settings":"Instellingen","settings_caption":"Instellingen voor app, speler, account","development":"Ontwikkeling","development_caption":"Ontwikkelaarsmodus voor intern gebruik","basic":"Eenvoudig","basic_caption":"Basis instellingen","advanced":"Geavanceerd","advanced_caption":"Geavanceerde instellingen","blockchain":"Portemonnee","blockchain_caption":"${displayName} Gedecentraliseerde portemonnee","internal_notice":"Interne vrijgavemelding","release_notes":"Release-opmerkingen","terms_and_conditions":"Voorwaarden","license_and_listen_notices":"Licentie en Luister Open Source Kennisgevingen","close":"Dichtbij","success":"Succes","fail":"Mislukking","account_email_invalid_address":"Ongeldig e-mailadres","account_email_invalid_domain":"Ongeldig e-maildomein","account_email_unknown_status":"Onbekende status van e-mailbezorging","account_email_unavailable_address":"E-mailadres niet beschikbaar","account_email_suppressed_address":"Onderdrukt e-mailadres","account_loading":"Bezig met laden...","account_is_required":"Is benodigd","account_sign_in_your_account":"Aanmelden","account_username":"Gebruikersnaam","account_username_email_phone":"Telefoonnummer of e-mail","account_password":"Wachtwoord","account_new_password":"Nieuw paswoord","account_re_enter_password":"Geef het wachtwoord opnieuw in","account_password_not_equal":"Twee wachtwoorden zijn niet gelijk","account_new_password_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","account_forgot_your_password":"Je wachtwoord vergeten?","account_reset_password":"Wachtwoord opnieuw instellen","account_sign_in":"Aanmelden","account_signed_in":"Ingelogd","account_sign_up":"Aanmelden","account_find_your_account":"Vind je account","account_enter_your_username":"Voer uw telefoonnummer of e-mailadres in","account_search":"Zoekopdracht","account_email_sent_tip":"Er is een e-mail met een verificatiecode naar uw e-mailadres verzonden:","account_phone_sent_tip":"Er is een sms met een verificatiecode naar je telefoon gestuurd:","account_email_phone_sent_tip":"E-mail en sms met verificatiecode zijn respectievelijk naar uw e-mail en telefoon verzonden:","account_software_token_tip":"MFA is ingeschakeld voor uw account. Om het inloggen te voltooien, schakelt u uw apparaat in of bekijkt u het en typt u de TOTP","account_reset_your_password":"Stel je wachtwoord opnieuw in","account_verification_code":"Verificatie code","account_resend_code":"Code nogmaals versturen","account_code_has_been_resent":"Verificatiecode is opnieuw verzonden","account_password_has_been_reset":"Wachtwoord is gereset","account_submit":"Indienen","account_sign_up_your_account":"Registreer uw account","account_fill_required_fields":"Vul hieronder de verplichte velden in.","account_fill_optional_fields":"Vul onderstaande optionele velden in.","account_email":"E-mail","account_invitation":"Uitnodiging","account_invitation_code":"Uitnodigingscode","account_i_accept":"ik aanvaard","account_license_terms":"de licentie en voorwaarden","account_next":"Volgende","account_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren.","account_verify_fill_optional_fields":"Controleer en vul optionele velden in.","account_nickname":"Bijnaam","account_gender":"Geslacht","account_male":"Mannelijk","account_female":"Vrouwelijk","account_not_say":"Niet zeggen","account_birthday":"Verjaardag","account_phone_number":"Telefoonnummer","account_locale":"Lokaal","account_tip_verified":"Geverifieerd, aanmelden...","account_verified":"geverifieerd","account_unverified":"niet geverifieerd","account_signed_up":"Ingeschreven","account_verify_your_identity":"Verifieer uw identiteit","account_finish":"Finish","account_signed_out":"Uitgelogd","account_change_password":"Verander wachtwoord","account_change_email":"E-mailadres wijzigen","account_change_phone_number":"Wijzig telefoonnummer","account_sign_out":"Afmelden","account_current_password":"Huidig ​​wachtwoord","account_re_enter_new_password":"voer nieuw wachtwoord opnieuw in","account_personal_information":"Informatie","account_edit":"bewerking","account_reset":"resetten","account_greeting":"Hallo,","account_cancel":"Annuleren","account_change":"wijziging","account_not_set":"niet ingesteld","account_setting":"instelling","account_copy_code":"kopieer de code","account_account_setting":"Rekening","account_task_page":"Krediet taak","account_setting_caption":"Wijzig wachtwoord / bewerk informatie","account_security":"Beveiliging","account_want_to_join":"Wil je meedoen?","account_sign_in_now":"Aanmelden","account_changed":"gewijzigd","account_clipboard_with_invitation_code":"Uitnodigingscode gekopieerd","account_clipboard_with_code":"De code gekopieerd","account_invitation_code_dialog_tip":"Je stuurt je vriend een e-mail of sms met een uitnodigingscode:","account_available":"beschikbaar","account_invited":"uitgenodigd","account_used":"gebruikt","account_invitation_code_sent":"Uitnodigingscode is verzonden","account_invitation_channel_required":"Vul minimaal één uitnodigingskanaal in","account_no_verification_code":"Verificatiecode niet ontvangen?","account_no_phone_number":"Geen telefoonnummer?","account_sign_up_by_email":"Aanmelden per e-mail","account_no_email":"Geen e-mail?","account_sign_up_by_phone_number":"Aanmelden via telefoonnummer","account_no_totp":"Geen TOTP?","account_tip_no_totp":"Als er geen TOTP is, stel dan eerst TOTP in","account_setup_totp":"Stel TOTP in","account_contact_information":"Contactgegevens","account_delete_account":"Account verwijderen","account_deleted":"verwijderd","account_can_not_mfa":"MFB in de problemen?","account_set_mfa_type":"MFA configureren","account_disable_mfa":"MFA uitschakelen","account_disabled_mfa":"MFA uitgeschakeld","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFB","account_totp":"TOTP","account_not_recommend":"Niet aan te raden","account_oauth_sign_in_with":"Log in met {provider}","account_sign_in_failed":"Inloggen mislukt","account_tip_oath_sign_up":"Het e-mailadres dat overeenkomt met het huidige {provider}-account: {email} heeft nog geen account aangemaakt","account_tip_confirm_delete_account":"Voer het huidige accountwachtwoord in om te bevestigen dat u het huidige account wilt verwijderen. (Verwijderde accounts kunnen niet worden hersteld)","account_tip_config_mfa":"U kunt ervoor kiezen om SMS of op tijd gebaseerd eenmalig wachtwoord (TOTP) als secundaire authenticatie te gebruiken","account_error_can_not_enable_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om MFA in te schakelen","account_tip_can_not_enable_sms_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om SMS MFA in te schakelen","account_tip_can_not_enable_totp_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om TOTP MFA in te schakelen","account_tip_setup_totp":"Gebruik apps zoals Authenticator om onderstaande QR-code te scannen of kopieer de code handmatig om een ​​security token toe te voegen","account_tip_verify_totp":"Controleer uw TOTP","account_link_your_social_account":"Bind uw sociale account","account_unlink_your_social_account":"Ontkoppel sociaal account","account_tip_confirm_link":"Weet u zeker dat u de lopende rekening aan uw {provider}-rekening wilt binden?","account_tip_confirm_unlink":"Weet u zeker dat u uw gebonden {provider}-account wilt annuleren?","account_tip_linking":"verbindend...","account_tip_unlinking":"Ontbinden...","account_linked":"Gebonden","account_unlinked":"Ongebonden","account_error_can_not_link_to_the_linked_account":"Het huidige sociale account is gekoppeld aan een ander account","account_error_can_not_link_to_the_mismatched_email":"Het huidige account en het e-mailadres van het sociale account zijn niet consistent","account_error_can_not_link_before_email_verified":"Het sociale account kan niet worden gekoppeld omdat het huidige account niet is gebonden aan een geverifieerde e-mail","account_tip_confirm_verify_email_phone":"Of u een verificatiecode naar het e-mailadres en telefoonnummer van het huidige account moet sturen om uw identiteit te verifiëren?","account_tip_confirm_verify_phone":"Of u een verificatiecode naar het huidige telefoonnummer moet sturen om uw identiteit te verifiëren?","account_error_1_message_60_seconds":"Er kan slechts één sms of e-mail per 60 seconden worden verzonden, wacht nog eens {delta} seconden","account_error_10_messages_per_day":"Elke mobiele telefoon of e-mail kan maximaal 10 berichten binnen 24 uur verzenden","account_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","Network Error":"Er is een probleem met het netwerk, probeer het later opnieuw","account_error_user_not_exist":"Gebruiker bestaat niet","account_error_incorrect_username_or_password":"foute gebruikersnaam of wachtwoord","account_error_incorrect_original_password":"Onjuist origineel wachtwoord","account_error_incorrect_password":"Incorrect wachtwoord","account_error_username_not_found":"gebruikersnaam niet gevonden","account_error_can_not_reset_for_no_verified":"Kan het wachtwoord voor het niet-geverifieerde account niet resetten","account_error_invalid_verification_code":"Onjuiste verificatiecode, probeer het opnieuw","account_error_expired_verification_code":"Verificatiecode is verlopen, probeer het opnieuw","account_error_password_not_long_enough":"Wachtwoord is niet lang genoeg","account_error_attempt_limit_exceeded":"Pogingslimiet overschreden, probeer het na enige tijd opnieuw.","account_error_password_attempts_exceeded":"Wachtwoordpogingen overschreden.","account_error_invalid_phone_number_format":"Ongeldig telefoonnummerformaat","account_error_no_cell_phone_prefix":"Selecteer het voorvoegsel voor het telefoonnummer","account_error_username_already_exists":"De gebruikersnaam bestaat al","account_error_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren","account_error_inactive_code":"De uitnodigingscode is geen geactiveerde code","account_error_non_existent_code":"De uitnodigingscode bestaat niet","account_error_unexpected":"Onverwachte fout","account_error_can_not_change_email_before_phone_bound":"Het e-mailadres kan niet worden gewijzigd voordat het telefoonnummer is gebonden","account_error_can_not_change_email_before_unbound_social_account":"De e-mail kan niet worden gewijzigd voordat het sociale account is losgekoppeld","account_error_can_not_change_phone_before_email_bound":"Het telefoonnummer kan niet worden gewijzigd voordat de e-mail is gebonden","account_error_can_not_change_email_phone_with_mfa_enabled":"Kan e-mailadres of mobiel telefoonnummer niet wijzigen voordat MFA is uitgeschakeld","account_error_not_supported_yet":"Momenteel niet ondersteund","account_error_same_email":"Het nieuwe e-mailadres mag niet hetzelfde zijn als het oorspronkelijke e-mailadres","account_error_same_phone":"Het nieuwe telefoonnummer kan niet hetzelfde zijn als het oorspronkelijke telefoonnummer","account_error_email_not_exists":"Email adres bestaat niet","account_error_email_already_exists":"Er bestaat al een account met het opgegeven e-mailadres.","account_error_phone_already_exists":"Er bestaat al een account met het opgegeven telefoonnummer.","account_error_mfa_token_mismatch":"Softwaretokencode komt niet overeen","account_error_recaptcha_not_loaded":"Er is een probleem met het netwerk. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_recaptcha_validation_failed":"ReCAPTCHA-validatie mislukt. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_sign_in_in_progress":"Aanmeldingspoging in behandeling is al bezig","account_field_range":"Beperk de invoer van {0}-{1} tekens","account_field_only_alphanumeric":"Ondersteunt alleen alfanumeriek","account_field_only_alphanumeric_and_symbol":"Ondersteunt alleen alfanumeriek en symbolen","account_field_only_chinese_alphanumeric_space_underline":"Ondersteunt alleen alfanumeriek, spatie, underscore","account_field_prefix_without_number_space":"Het eerste teken mag geen cijfer of spatie zijn","account_field_suffix_without_space":"Kan niet eindigen op een spatie","account_field_without_repeat_space":"Kan niet meerdere spaties achter elkaar gebruiken","account_field_can_not_only_alphanumeric":"U kunt niet alleen letters of cijfers gebruiken","account_field_must_have_number_characters":"Moet cijfertekens hebben","account_field_verification_code":"De verificatiecode moet uit zes cijfers bestaan","account_field_invitation_code":"Uitnodigingscode moet alfanumeriek zijn","account_field_phone_number":"Ongeldig telefoonnummerformaat","account_invalid_email_format":"ongeldige email formaat","account_sign_out_confirm":"Weet u zeker dat u zich wilt afmelden? Hierdoor worden alle taken stopgezet.","account_sign_out_anyway":"Meld je toch af","account_signing_out":"Uitloggen...","account_request_save_settings":"Instellingen worden niet opgeslagen. U moet de wijzigingen opslaan voordat u zich afmeldt.","pay":"Betalen","pay_with_credit":"Betalen voor het versnellen van downloaden. Heeft ongeveer {0} tegoed nodig","pay_with_credit_payed":"Versnellen. Heeft nog ongeveer {0} tegoed nodig","create_payment":"Betaling aanmaken","pay_target":"Doel","pay_for_torrent":"Betaal voor {0}","your_subid":"Uw subID","your_credits":"Uw tegoeden","pay_point_for_data":"Betaal {0} punt voor {1} data","auto_renew":"Automatisch verlengen inschakelen","transaction_details":"transactie details","transaction_id":"ID kaart","transaction_payer":"Betaler","transaction_payee":"Begunstigde","transaction_category":"Categorie","transaction_changed_amount":"Gewijzigd bedrag","transaction_meta":"Meta","transaction_status":"Toestand","transaction_creation_time":"Creatie tijd","receipt_code":"Ontvangstcode","transfer_amount":"Bedrag overmaken","code_the_receipt_code":"Kopieer onderstaande boncode naar de betaler","fill_the_receipt_code":"Maak over door de door de begunstigde verstrekte betaalcode in te vullen","expense":"Kosten","copied":"Gekopieerd","transfer":"Overdracht","receive":"Ontvangen","copy":"Kopiëren","withdraw_fund":"Fonds opnemen","category_paydata_payer":"Kosten van gegevens","category_paydata_payee":"Inkomsten van gegevens","category_transfer":"Overdracht","category_bonus":"Bonus","category_recharge":"Opladen","status_pending":"in behandeling","status_completed":"voltooid","status_finish":"finish","status_failed":"mislukt","tip_invalid_receiver":"Ongeldige ontvangercode","tip_invalid_amount":"Het kredietbedrag moet een float zijn in het bereik van 0-1000 (minimale precisie is 0,001)","credit_get_more":"Krijg meer kredieten","credit_no_data":"Geen gegevens beschikbaar","credit_loading":"Bezig met laden...","credit_not_enough_amount":"Niet genoeg tegoeden","credit_amount_not_enough":"Niet genoeg tegoeden","credit_payee_not_exist":"Begunstigde bestaat niet","credit_invalid_amount":"Ongeldig tegoedbedrag","credit_can_not_transfer_to_yourself":"Kan niet naar jezelf overdragen","credit_latest":"Laatste","credit_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","add_subtitles":"Ondertiteling toevoegen","open_file":"Open bestand...","advanced_options":"Geavanceerde mogelijkheden","title":"Titel","location":"plaats","subtitle_file":"ondertitel bestand","unsupported_subtitle_type":"Het bestandstype {0} is geen ondersteund ondertitelingstype","not_default_player":"De standaard videospeler is niet ingesteld","this_is_an_audio_file":"Dit is een audiobestand","the_added_subtitle_already_exists":"De toegevoegde ondertitel bestaat al","stop_stream_player":"De streaming media is beëindigd omdat de taak is onderbroken of verwijderd","stop_player":"De speler is beëindigd omdat het bestand is verwijderd","playing_timeout_hint":"Wacht tijden uit. Controleer de taak","autoplay_hint":"Autoplay kan worden geblokkeerd door uw browser. Als de speler niet speelt, klik dan op het scherm om door te gaan","remove_playing_confirm":"{0} speelt nog steeds, verwijder het om de speler te stoppen. Weet je zeker dat je het wilt verwijderen?","unsupported_in_browser":"Nog niet ondersteund in browsermodus","client":"Cliënt","warning":"Waarschuwing","enable":"Inschakelen","disable":"Uitzetten","auto":"Auto","encrypt_connection":"Versleutel de verbinding","encrypted_connection":"Versleutelde verbinding","non_encrypted_connection":"Niet-versleutelde verbinding","connected_wires_not_disconnect":"Aangesloten draden worden niet losgekoppeld","audio":"geluid","video":"video","image":"afbeelding","subtitle":"ondertitel","zip":"ritssluiting","text":"tekst","unknown":"onbekend","add":"Toevoegen","undo":"Ongedaan maken","backup":"Back-up","not_default_app":"${displayName} is niet je standaard app voor torrent en media, wil je deze als standaard instellen?","dont_show_again":"Niet meer laten zien","go_to_settings":"Ga naar Instellingen","about_alphabiz":"Over ${displayName}","last_check_at":"Laatste controle om","update_channel":"Kanaal bijwerken","check_for_update":"Controleer op updates","checking_for_update":"Controleren op updates...","no_update_available":"Geen update beschikbaar","update_available":"Update beschikbaar","update_now":"Update nu","update_later":"Later bijwerken","click_to_update":"Klik op de knop NU UPDATEN om te downloaden en bij te werken","update_failed":"Update mislukt","update_failed_message":"Er is een fout opgetreden tijdens het updaten:","check_shasum_failed":"Kan de integriteit van het installatieprogramma niet controleren","downloading_update":"Update downloaden...","ready_to_update":"Klaar om te updaten","restart_to_update":"Update wordt gedownload. ${displayName} wordt afgesloten om even bij te werken.","already_latest":"De huidige versie ({0}) is al de laatste","update_timeout":"Time-out bijwerken","no_available_release":"Geen beschikbare uitgave","no_available_installer":"Geen beschikbaar installatieprogramma","feedback":"Feedback","select_a_type":"Selecteer een soort","category":"Categorie","select_a_category":"Kies een categorie","require_title":"Titel is vereist","describe_your_problem":"Beschrijf uw probleem","report_a_bug":"Meld een fout","request_a_new_feature":"Vraag een nieuwe functie aan","download_or_upload":"Downloaden uploaden","others":"Anderen","submit_with_system_info":"Dien in met systeeminfo","submit_feedback":"Feedback verzenden","tweet_us":"Tweet ons","tweet_too_long":"Tweet is te lang","delete_characters":"Verwijder ten minste {0} karakter(s)","rest_characters":"U kunt {0} meer teken(s) invoeren","update_alphabiz":"Bijwerken ${displayName}","current_version":"Huidige versie","cancel_update":"Update annuleren","slow_download_speed":"Te langzaam downloaden","slow_download_speed_caption":"Het downloaden van het installatieprogramma is nu te traag. Controleer de netwerkstatus","update_canceled":"Update geannuleerd","current_version_release_time":"Releasetijd van de huidige versie","expired_app":"${displayName} Verlopen","version_out_of_date":"Versie verouderd","have_to_update":"De versie van ${displayName} is verouderd. Sommige protocollen of API\'s zijn verouderd. U moet ${displayName} updaten voordat u doorgaat.","exit_alphabiz":"Uitgang ${displayName}","exit_and_update":"Sluit af en pas de update toe","new_version_hint":"Nieuwe versie is beschikbaar","no_new_version":"Geen nieuwe versie beschikbaar","current_is_latest":"De huidige versie is al de nieuwste","click_to_check_update":"Klik op de knop [CHECK FOR UPDATE] om te controleren op updates","download_latest_version_from_website":"Bezoek de officiële website om de nieuwste versie te downloaden","to_the_website":"Naar de website","network_diagnotic":"Netwerk diagnose","diagnotic":"Diagnostisch","click_to_check":"Klik om te controleren","click_to_check_again":"Klik om opnieuw te controleren","checking":"Controleren","online":"Online","offline":"offline","dns_look_up":"DNS-zoekopdracht","error":"Fout","aws_service":"AWS-service","network_pings":"Netwerkping","not_found":"Niet gevonden","packet_loss":"Pakket(ten) verloren","official_site":"Officiële site","download_test":"Test downloaden","test_task":"Testtaak {0}","download_failed":"Download mislukt","second_spend":"{0} s uitgeven","open_default_player_failed":"Kan de standaardspeler niet openen","copied_to_clipboard":"Gekopieerd naar het klembord","go_to":"Ga naar","region_not_available":"Regio niet beschikbaar","region_not_available_message":"Sorry! Uw regio is niet beschikbaar om deze app te gebruiken. Deze app stopt na {0} seconden","confirm":"Bevestigen","no_available_result":"Geen beschikbaar resultaat","invalid_password_format":"ongeldig wachtwoord formaat","invalid_password_format_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","error_password":"Verkeerd wachtwoord","keychain_setting":"Sleutelhanger","setting_description":"Cloudopslag: sla belangrijke gegevens op in de cloud.\\nWachtwoord wijzigen: Wijzig het wachtwoord voor de mediabibliotheeksleutel.\\nMnemonic: een alternatieve methode voor het genereren en herstellen van sleutels.\\nLokale sleutel importeren: importeer de lokaal opgeslagen sleutel in de mediabibliotheek.\\nExportsleutel: Slaat de huidige mediabibliotheekgegevens op naar de lokale of cloud.\\nBack-upsleutel naar cloud: werk de huidige mediabibliotheekgegevens bij naar de cloud voor back-up.","refresh_status":"Status bijwerken","confirm_import_key":"Bevestig de importsleutel","confirm_update_cloud_key":"Je hebt al een sleutel in de cloud. Als u de sleutel bijwerkt, wordt de originele sleutel overschreven. Weet u zeker dat u de in de cloud opgeslagen sleutel wilt bijwerken","export_key_with_cloud":"Voer het onafhankelijke wachtwoord in dat u hebt ingesteld om de bibliotheeksleutel die in de cloud is opgeslagen te exporteren en vergrendel het sleutelbestand met het ontgrendelingswachtwoord","store_cloud_key_prompt_password":"Voer een onafhankelijk wachtwoord in om de bibliotheeksleutel in de cloud op te slaan","update_cloud_key_prompt_password":"Stel een onafhankelijk wachtwoord in om de bibliotheeksleutel te coderen en update deze vervolgens naar de cloud","enable_cloud_storage_prompt_password":"Stel een wachtwoord in voor de sleutel die in de cloud is opgeslagen, waarmee u de sleutel uit de cloud kunt ophalen","input_unlock_password":"Stel het ontgrendelingswachtwoord in","export_local_prompt_password":"Stel een ontgrendelingswachtwoord in om uw sleutelbestand te versleutelen. We slaan dit wachtwoord niet voor u op, dus als u uw wachtwoord kwijtraakt, kunt u uw bibliotheeksleutel niet ontgrendelen","require_unlock_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","require_independent_password":"Voer het onafhankelijke wachtwoord in om de sleutel in de cloud op te slaan","import_local_prompt_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","select_encrypt_mode":"Selecteer de coderingsmodus","update_cloud_key":"Werk de sleutel bij die in de cloud is opgeslagen","backup_to_cloud":"Maak een back-up van de bibliotheeksleutel naar de cloud","save_local":"Sla de bibliotheeksleutel op als lokaal gecodeerd bestand","create_new_key":"Maak een nieuwe bibliotheeksleutel aan","creating_lib_key":"Bibliotheeksleutel maken...","loading_lib_key":"Bibliotheeksleutel laden...","failed_to_create_lib_key":"Kan bibliotheeksleutel niet maken","failed_to_load_lib_key":"Kan bibliotheeksleutel niet laden","import_local_key":"Sleutel lokaal importeren","import_lib_key_from_local":"Importeer lokaal een bibliotheeksleutel","import_from_cloud":"Importeer de bibliotheeksleutel uit de cloud","create_or_import_key":"Bibliotheeksleutel maken of importeren","create_or_import_key_desc":"Bibliotheeksleutel is een onafhankelijke sleutel die wordt gebruikt om inhoud op te halen en te publiceren met een gedecentraliseerde database.","store_your_lib_key":"Bewaar uw bibliotheeksleutel","export_cloud_key":"Sleutel exporteren vanuit de cloud","export_current_key":"Exporteer huidige sleutel","change_password":"Verander wachtwoord","enable_cloud_storage":"Schakel cloudopslag in","disable_cloud_storage":"Schakel cloudopslag uit","disable_cloud_storage_desc":"Als u cloudopslag uitschakelt, wordt de in de cloud opgeslagen sleutel verwijderd. Zorg ervoor dat de sleutel lokaal wordt opgeslagen","sync_at":"Synchroniseren op: {time}","cloud_storage_enabled":"Synchroniseer sleutelhanger met {storage}","cloud_storage_disabled":"Cloudopslag uitgeschakeld","saved_locally":"Lokaal opgeslagen","export_key":"Sleutelbestand exporteren","cloud_independent_password":"Cloudonafhankelijk wachtwoord","key_file_unlock_password":"Sleutelbestand ontgrendelingswachtwoord","re_enter_unlock_password":"Voer het ontgrendelingswachtwoord opnieuw in","independent_password_not_enabled":"Het huidige wachtwoord is het wachtwoord van het Alphabiz-account (er is geen onafhankelijk wachtwoord ingesteld)","use_cognito_hash":"Gebruik het wachtwoord van het Alphabiz-account","use_independent_password":"Gebruik onafhankelijk wachtwoord","keychain_lib":"bibliotheek sleutel","loading_keychain_state":"Sleutelhanger laden...","backing_up":"Ondersteunen...","backup_current_key":"Maak een back-up van de huidige sleutel naar de cloud","cloud_lib_key_not_existed":"bibliotheeksleutel bestaat niet in Cloud","open_keychain_file":"Open Sleutelhangerbestand","confirm_open_abk":"Wilt u het ABK-bestand openen","use_the_key":"Gebruik de sleutel","backup_the_key":"Maak een back-up van de sleutel naar de cloud","keychain_data_does_not_exist":"Sleutelhangergegevens bestaan ​​niet","timeout of 0ms exceeded":"Er is een probleem met het netwerk, probeer het later opnieuw","XhrError":"Er is een probleem met het netwerk, probeer het later opnieuw","payer credit amount is not enough":"Niet genoeg tegoeden","payee does not exist":"Begunstigde bestaat niet","block_list_manage":"Blokkeerlijst beheren","blocked_users":"Geblokkeerde gebruikers","blocked_channels":"Geblokkeerde kanalen","unblock_user":"Deblokkeer gebruiker","unblock_channel":"Kanaal deblokkeren","no_blocked_user":"Geen geblokkeerde gebruiker","no_blocked_channel":"Geen geblokkeerd kanaal","field_required":"{0} is vereist","setting":"Instelling","unknown_media":"Onbekende media","settings_button_visible":"Knop zichtbaar","settings_setting":"Instelling","settings_playback_rate":"Afspeelsnelheid","settings_subtitle":"Ondertitel","settings_pip":"Pip","settings_fullscreen":"Volledig scherm","settings_subtitle_options":"Ondertitel opties","settings_normal":"Normaal","settings_italic":"Cursief","settings_lighter":"Aansteker","settings_bolder":"Bolder","settings_small":"Klein","settings_large":"Groot","about":"Over","services":"Diensten","hide":"Verbergen","hide_others":"Verberg anderen","show_all":"Toon alles","quit":"Ontslag nemen","edit":"Bewerking","redo":"Opnieuw doen","cut":"Snee","paste":"Plakken","select_all":"Selecteer alles","view":"Weergave","reload":"Herladen","toggle_full_screen":"Volledig scherm activeren","toggle_developer_tools":"Schakel ontwikkelaarstools in","window":"Raam","minimize":"Minimaliseren","bring_all_to_front":"Breng alles naar voren","help":"Hulp","github_repo":"Github-opslagplaats","issues":"Problemen","learn_more":"Kom meer te weten","learn_spelling":"Leer spelling","lookup_selection":"Zoek \\"{selection}\\" op","search_with_google":"Zoek met Google","save_as":"Opslaan als","save_image":"Afbeelding opslaan","save_image_as":"Sla afbeelding op als ...","copy_link":"Kopieer link","save_link_as":"Link opslaan als ...","copy_image":"Kopieer afbeelding","copy_image_as":"Afbeelding kopiëren als...","copy_image_address":"Kopieer afbeeldingsadres","download_complete":"Download compleet","download_complete_message":"{0} wordt gedownload","is_running":"{0} is actief","open":"{0} openen","launch_problem":"Start probleem","ask_clear_data":"Het lijkt erop dat je {0} probeert te starten, maar meerdere keren is mislukt.\\nWilt u alle app-gegevens wissen en later proberen te starten?","launch_directly":"Start direct","clear_all_data":"Wis alle gegevens","ask_clear_confirm":"Hiermee worden alle configuraties, logs en gebruikersgegevens verwijderd!\\nHierna moet u mogelijk {0} opnieuw starten.\\nWeet u zeker dat u gegevens wilt wissen?","confirm_launch":"Nee, start direct","confirm_clear":"Ja, wis alle gegevens"}')},"5fa3":function(e,t,a){"use strict";(function(e){var n=a("e75b"),o=a("9572"),i=a("e74d"),r=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const s=new n["a"].Rest("ABDevRest"),l={currentRoute:"/library",user:{id:"",name:"",description:"",avatar:""},userLoggedIn:!1,keychainState:{keychainData:{},unset:!0,hash:"",timestamps:{metadata:0},lib:null},followQueue:[]},c={updateRoute(e,t){e.currentRoute=t},setUser(e,t){e.user=t},setKeychainState(e,t){Object.assign(e.keychainState,t)},addFollowQueue(e,t){e.followQueue.includes(t)||e.followQueue.push(t)},removeFollowQueue(e,t){while(e.followQueue.includes(t))e.followQueue.splice(e.followQueue.indexOf(t),1)}},d=()=>r(void 0,void 0,void 0,(function*(){const e=()=>r(void 0,void 0,void 0,(function*(){const t=yield i["a"].currentUserInfo();return t&&t.attributes?t.attributes:yield e()}));return yield e()})),u={syncKeychainState({state:e,commit:t}){return r(this,void 0,void 0,(function*(){const a=()=>r(this,void 0,void 0,(function*(){const e=yield d();let{"custom:key_metadata":t,"custom:key_lib":a}=e;return t=t?JSON.parse(t):{unset:!0,timestamps:{}},{metadata:t,lib:a}})),n=yield a();if(n){const e=e=>{if(!e.lib)return null;if(e.lib.startsWith("{"))return JSON.parse(e.lib);throw new Error("Failed to parseLib")};t("setKeychainState",{keychainData:n,unset:n.metadata.unset,hash:n.metadata.hash||"",timestamps:n.metadata.timestamps||{},lib:e(n)})}return e.keychainState}))},changeKeychainPassword(e,{oldPassword:t,password:a}){return r(this,void 0,void 0,(function*(){if(!t&&!a)throw Error("Invalid arguments");let e;t||(e="from_cognito"),a||(e="to_cognito"),yield s.post("/keychain/changePassword",{password:t?o["a"].digestPassword(t):void 0,newPassword:a?o["a"].digestPassword(a):void 0,type:e})}))},getKeychainCloud({state:e,commit:t,dispatch:a},{password:n,mode:i,keyName:l}){return r(this,void 0,void 0,(function*(){const e=()=>r(this,void 0,void 0,(function*(){if(!["lib"].includes(l))throw new Error("invalid_keychain_keyname");const e=yield d().then((e=>!!e[`custom:key_${l}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>r(this,void 0,void 0,(function*(){if("cognito_hash"===i){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===i){if(!n)throw new Error("keychain_password_not_found");return o["a"].digestPassword(n)}throw new Error("invalid_keychain_mode")})))(),c=yield s.post("/keychain/getKeychain",{password:t,keyName:l});if(!c)throw new Error("password_error");if(["epriv","epub","priv","pub"].some((e=>!c[e])))throw new Error("invalid_key");return console.log("getKeychainFromCloud:",c),c}))},createKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:i,mode:l,keyName:c}){return r(this,void 0,void 0,(function*(){const e=()=>r(this,void 0,void 0,(function*(){if(!["lib"].includes(c))throw new Error("invalid_keychain_keyname");const e=yield d().then((e=>!!e[`custom:key_${c}`]));if(e)throw new Error("keychain_data_existed")}));yield e();const t=yield(()=>r(this,void 0,void 0,(function*(){if("cognito_hash"===l){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===l){if(!i)throw new Error("keychain_password_not_found");return o["a"].digestPassword(i)}throw new Error("invalid_keychain_mode")})))();yield s.post("/keychain/enableLibKey",Object.assign(Object.assign(Object.assign({},"cognito_hash"===l?{}:{password:t}),"cognito_hash"===l?{type:"cognito"}:{}),{keyName:c,keyData:JSON.stringify(n)})).catch(console.log)}))},updateKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:i,mode:l,keyName:c}){return r(this,void 0,void 0,(function*(){const e=()=>r(this,void 0,void 0,(function*(){if(!["lib"].includes(c))throw new Error("invalid_keychain_keyname");const e=yield d().then((e=>!!e[`custom:key_${c}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>r(this,void 0,void 0,(function*(){if("cognito_hash"===l){const e=yield a("syncKeychainState");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===l){if(!i)throw new Error("keychain_password_not_found");return o["a"].digestPassword(i)}throw new Error("invalid_keychain_mode")})))();yield s.post("/keychain/updateKeychain",Object.assign(Object.assign(Object.assign({},"cognito_hash"===l?{}:{password:t}),"cognito_hash"===l?{type:"cognito"}:{}),{keyName:c,keyData:JSON.stringify(n)}))}))},disableKeychainCloud(e){return r(this,void 0,void 0,(function*(){yield s.post("/keychain/disableKeychain")}))}};Object.defineProperty("undefined"===typeof window?e:window,"rest",{get(){return s}});const _={libraryRoute(e){return e.currentRoute},libraryUser(){return l.user},keychainState(){return l.keychainState},followQueue(e){return e.followQueue}},p={namespaced:!1,state:l,mutations:c,actions:u,getters:_};t["a"]=p}).call(this,a("0ee4"))},"5fc6":function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));const n=a("d310").isElectron();function o(e){if(!n||"string"!==typeof e)return e;const t=a("a3fc"),o=t.basename(e);return{name:o,path:e}}},6:function(e,t){},"603c":function(e,t,a){},"61a1":function(e,t,a){"use strict";a.d(t,"b",(function(){return xi}));var n=a("ff9b"),o=a("fe87"),i=(a("de6c"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-container",class:{larger:!e.isElectron}},[a("q-toolbar",{staticClass:"library-header q-py-sm flex",staticStyle:{"flex-wrap":"nowrap","max-height":"57px"}},[e.lib.search.options.length?[e.$q.screen.xs?a("q-btn",{attrs:{unelevated:"",round:"",icon:"search"}},[a("q-menu",[a("q-card",{staticClass:"q-pa-md"},[a("q-select",{staticClass:"q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}}),a("q-input",{attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})],1)],1)],1):a("q-input",{staticStyle:{width:"320px"},attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"before",fn:function(){return[a("q-select",{staticStyle:{"min-width":"120px"},attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}})]},proxy:!0},{key:"append",fn:function(){return[a("q-icon",{attrs:{name:"search"}})]},proxy:!0}],null,!1,311008788),model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})]:e._e(),a("q-space"),a("div",{staticClass:"header-bar-status text-grey q-my-sm q-ml-xs flex no-wrap items-center text-right overflow-hidden"},[a("div",{staticClass:"from-network-hint",staticStyle:{"flex-shrink":"1"}},[e._v(e._s(e.$t("lib_from_network")))]),a("q-badge",{staticClass:"connection-status cursor-pointer q-ml-xs",attrs:{"text-color":"white",color:e.statusColor},on:{click:function(t){e.peerDialog=!0}}},[e.lib.online?a("q-icon",{staticClass:"status-icon",attrs:{name:"flash_on"}}):e._e(),a("span",{staticClass:"status-label"},[e._v(e._s(e.statusLabel))])],1)],1)],2),a("div",{staticClass:"library-view"},[a("transition",{attrs:{name:"slide",mode:"out-in"}},[a("keep-alive",{attrs:{exclude:"LibraryChannel,LibraryRecommend"}},[e.isLoggedIn?e.showRecommend?a("Recommend"):a("router-view"):a("Login")],1)],1)],1),a("ConnectionStatus",{model:{value:e.peerDialog,callback:function(t){e.peerDialog=t},expression:"peerDialog"}})],1)}),r=[],s=(a("a1c1"),a("36a1")),l=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"login-container"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".abk"},on:{change:e.onFileChange}}),a("q-dialog",{model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[a("q-card",[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("import_key")))]),a("q-input",{staticStyle:{width:"480px"},attrs:{type:"text",label:e.$t("key")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.userKey,callback:function(t){e.userKey=t},expression:"userKey"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{attrs:{flat:"",label:e.$t("import"),color:"primary"},on:{click:e.importKey}})],1)],1)],1),a("Loading",{attrs:{value:!0}})],1)},c=[],d=(a("e39c"),a("5584")),u=a("35f4"),_=a("3aea"),p=a("2d62"),m=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showLoading,expression:"showLoading"}],staticClass:"non-selectable",class:["absolute-top-left","full-width","full-height"].concat(["column","justify-center","items-center"],["bg-page","text-page"])},[a("div",{staticClass:"items-center"},[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])])},h=[],g=a("a449");const f=()=>{let e;return{data(){return{keychainLoadingState:!1,keychain:g["a"]}},watch:{"keychain.loading"(t){e&&clearTimeout(e),t?e=setTimeout((()=>{this.keychainLoadingState=!0}),500):this.keychainLoadingState=!1}}}};var b={name:"Loading",mixins:[f()],props:{value:Boolean},computed:{showLoading(){const e="signedOut"===this.$store.state.account.authState;return this.value&&!this.keychainLoadingState&&!e}},methods:{onChange(){this.$emit("change",!this.value)}}},y=b,v=(a("9fe7"),a("2b5f")),w=a("53ef"),k=a("09a4"),S=a.n(k),C=Object(v["a"])(y,m,h,!1,null,"1f47903d",null),x=C.exports;S()(C,"components",{QSpinner:w["a"]});const $=Object(u["a"])("abcdefg",5),T=Object(u["a"])("0123456789abcdef",40);var z={data(){return{username:"",password:"",nickname:"",description:"",avatar:"",userKey:"",showImport:!1}},components:{Loading:x},computed:{showLoading(){const e=this.$store.state.account.authState;return null===e}},methods:{validate(){if(!this.nickname){const e=d["a"].getters.accountUserInfo.nickname;this.nickname=e||this.username.substring(0,12)}return!0},showImportDialog(){this.$refs.fileSelector.click()},onFileChange(e){var t,a;null!==e&&void 0!==e&&null!==(t=e.target)&&void 0!==t&&null!==(a=t.files)&&void 0!==a&&a[0]&&Object(_["g"])(e.target.files[0]).then((e=>{if(!e)return this.$q.notify("Cannot read key pair from this file");this.userKey=e,this.importKey()}))},onReset(){this.username=$()+T(35),this.password=T(),this.nickname="",this.description=""},async onSubmit(){const e=this.validate();if("string"===typeof e)return this.$q.dialog({message:e});console.log(this.username,this.password,this.nickname),s["a"].register(this.username,this.password,{name:this.nickname,description:this.description,avatar:this.avatar}).then((()=>{const e=Object(p["t"])();if(console.log(e,s["a"].user),e._&&e._.sea){const t=e._.sea,{epub:a,pub:n,epriv:o,priv:i}=t;if(!a||!n||!o||!i)return;const r=[a,n,o,i].join(":");this.$q.dialog({title:this.$t("save_key"),message:this.$t("save_key_file"),ok:this.$t("save_key"),cancel:this.$t("cancel")}).onOk((()=>{var t,a;Object(_["h"])(r,`${(null===(t=e.data)||void 0===t?void 0:t.name)||(null===(a=s["a"].userData)||void 0===a?void 0:a.name)||"user"}.abk`)})).onDismiss((()=>{s["a"].prepareData()}))}}))},autoCreate(){this.onReset(),this.onSubmit()},importKey(){if(s["a"].isLoggedIn)return;console.log(this.userKey);const[e,t,a,n]=this.userKey.split(":");if(!e||!t||!a||!n)return this.$q.notify(this.$t("invalid_key"));s["a"].login({epub:e,pub:t,epriv:a,priv:n}).then(s["a"].prepareData)}},created(){this.onReset(),s["a"].$on("logged-in",(()=>{const e=[this.username,this.password].join(":");console.log("Logged in",e),this.$emit("login")}))}},P=z,A=(a("86d7"),a("1043")),I=a("b2aa"),q=a("e586"),O=a("d7c7"),E=a("0e45"),D=a("59ba"),j=Object(v["a"])(P,l,c,!1,null,"6a9c1d57",null),N=j.exports;S()(j,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]});var L=a("36a5"),U=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.value,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:function(t){return e.$emit("input",t)}}},[a("q-card",{staticClass:"peer-dialog-card"},[a("q-card-section",{staticClass:"row items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-bold peers-title"},[e._v(e._s(e.$t("connection_status")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{unelevated:"",round:"",icon:"close"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}],staticClass:"q-mb-sm"}),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area gun-server-list"},[a("div",{staticClass:"servers-title q-ml-sm q-mb-sm row items-center"},[a("div",{staticClass:"text-h6 q-mr-sm"},[e._v(e._s(e.$t("gun_server_list")))]),a("q-btn",{attrs:{flat:"",unelevated:"",rounded:"",dense:"",icon:"help_outline"},on:{click:e.showServerHelp}},[a("q-tooltip",[e._v(e._s(e.$t("about_cache_node")))])],1),a("q-space"),a("q-btn",{attrs:{unelevated:"",round:"",icon:"add"},on:{click:e.createCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("create_cache_node")))])],1),a("q-btn",{attrs:{unelevated:"",round:"",icon:"edit"},on:{click:e.editCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("edit_cache_node")))])],1)],1),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("server")))])])]),a("tbody",e._l(e.wsPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left",class:"text-"+e.statusColorMap[t.status]},[e._v(e._s(e.statusTextMap[t.status]))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))])])})),0)])],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area wrtc-peer-list"},[a("div",{staticClass:"peers-title q-ml-sm q-mb-sm text-h6"},[e._v(e._s(e.$t("peer_list")))]),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"}),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("peer_id")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("connection")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("data_source")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("download")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("upload")))])])]),a("tbody",[e.wrtcPeers&&Object.keys(e.wrtcPeers).length?e._l(e.wrtcPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left"},[a("q-icon",{attrs:{name:e.getPeerStatusIcon(t),color:"primary"}},[a("q-tooltip",[e._v(e._s(e.getPeerStatusTooltip(t)))])],1)],1),a("td",{staticClass:"text-left"},[e._v(e._s(e.getPeerId(t)))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.label))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.from))]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.downloaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.downloadSpeed))+" / s")]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.uploaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.uploadSpeed))+" / s")])])})):a("tr",{staticClass:"q-pa-md"},[a("td",{staticClass:"full-width text-center",attrs:{colspan:"8"}},[e._v("\n "+e._s(e.$t("credit_no_data"))+"\n ")])])],2)])],1)])],1)],1)},R=[],M=a("6422"),F={name:"LibraryConnectionStatus",props:{value:Boolean},data(){return{}},computed:{statusTextMap(){return{[WebSocket.CLOSED]:this.$t("offline"),[WebSocket.OPEN]:this.$t("connected"),[WebSocket.CONNECTING]:this.$t("connecting"),[WebSocket.CLOSING]:this.$t("offline")}},statusColorMap(){return{[WebSocket.CLOSED]:"red",[WebSocket.OPEN]:"green",[WebSocket.CONNECTING]:"none",[WebSocket.CLOSING]:"red"}},wsPeers(){return s["a"].gunPeers.filter((e=>"ws"===e.type))},wrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type))}},methods:{getPeerId(e){if("tracker"!==e.from)return e.url;let t=parseInt(e.url.substring(20),16),a="",n=0;while(t>0)n=t%62,t=Math.floor(t/62),a+=n<36?n.toString(36):(n-26).toString(36).toUpperCase();return a.substring(0,9)},getPeerStatusIcon(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?"import_export":"arrow_upward":"syncing"===e.remoteSyncState?"arrow_downward":"completed"===e.syncState?"completed"===e.remoteSyncState?"done_all":"done":"settings_ethernet"},getPeerStatusTooltip(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?this.$t("syncing"):this.$t("uploading"):"syncing"===e.remoteSyncState?this.$t("downloading"):"completed"===e.syncState?"completed"===e.remoteSyncState?this.$t("sync_completed"):this.$t("uploaded"):this.$t("connecting")},byteToLarger(e){return Object(M["a"])(e,{byte:!1,gb:!1})},showServerHelp(){this.$alphabiz.dialog({title:this.$t("about_cache_node"),message:this.$t("about_cache_node_desc"),cancel:!0,ok:{label:this.$t("go_to_settings"),handler:e=>{this.$emit("input",!1),setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300),e.hide()}}})},async createCacheNode(){window.open("https://alpha.biz/blog/how-to-deploy-a-gun-server/","_blank")},editCacheNode(){setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300)}}},B=F,W=(a("9f3a"),a("990e")),H=a("fc38"),V=a("cf25"),Q=a("3714"),G=a("f106"),K=a("a431"),Y=Object(v["a"])(B,U,R,!1,null,"54be07de",null),J=Y.exports;S()(Y,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QTooltip:V["a"],QMarkupTable:Q["a"],QIcon:G["a"]}),S()(Y,"directives",{ClosePopup:K["a"]});var Z=a("d7df"),X=a("d310"),ee=a("3fd2"),te=a.n(ee),ae=(a("d4b5"),a("0598")),ne=a("f680"),oe=a("1926");console.log("===",oe["b"]);const ie={_store:null,store:{favorites:[],ids:[]},_preNotify:null,_init(){if(Object(ae["default"])()){const e=a("f4b7");this._store=new e({name:"favorite",defaults:{favorites:[]}}),this.store=this._store.store}else{const e="ab-local-favorites",t=localStorage.getItem(e);this.store=t?JSON.parse(t):{favorites:[],ids:[]};const a=this.store;this._store={get(e){return console.log("get",e,a),a[e]},set(t,n){console.log("set",t,n,a),a[t]=n,localStorage.setItem(e,JSON.stringify(a))},clear(){console.log("clear"),localStorage.removeItem(e),ie._init()}}}this.store.ids=this.store.favorites.map((e=>e.id))},set(e){for(const t of e)this.add(t)},add(e){if(this.store.ids.find((t=>t===e.id)))return;e.timestamp||(e.timestamp=Date.now());let t=0;for(const a of this.store.favorites){if(!(a.timestamp>e.timestamp))break;t++}this.store.favorites.splice(t,0,e),this.store.ids.splice(t,0,e.id),this._store.set("favorites",this.store.favorites)},remove(e,t){const a="string"===typeof e?e:e.id,n=this.store.ids.findIndex((e=>e===a));if(-1===n)return;const[o]=this.store.favorites.splice(n,1);if(this.store.ids.splice(n,1),this._store.set("favorites",this.store.favorites),!o)return;const i=ne["a"].create({message:oe["b"].t("removed_favorite")+o.title,group:!1,actions:[{label:oe["b"].t("undo"),handler(){ie.add(o),t&&t(o)}}]});this._preNotify&&this._preNotify(),this._preNotify=i},list(){return this.store.favorites.sort(((e,t)=>t.timestamp-e.timestamp))},isFavorite(e){return this.store.ids.includes(e)},clear(){this._store.clear(),this.store.favorites.splice(0),this.store.ids.splice(0),this._store.set("favorites",this.store.favorites)}};ie._init();var re=ie,se={name:"Library",mixins:[g["d"]],components:{Login:N,Recommend:L["a"],ConnectionStatus:J},data(){return{breadcrumbs:[{label:this.$t("library"),icon:"video_library",to:"/library"}],peerDialog:!1,isElectron:Object(X["isElectron"])(),lib:s["a"]}},computed:{showRecommend(){return!!s["a"].isLoggedIn&&(!this.isVisitable(this.$route.fullPath)&&(s["a"].followingChannels.length?!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus:!s["a"].isFirstRegister))},currentView(){const e=this.$route.path.replace(/^\//,"").split("/");return e},hasWrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type)).length},statusColor(){if(this.hasWrtcPeers)return"green";if(!s["a"].online)return"red";switch(s["a"].onlineStatus){case"connected":return"green";case"connecting":return"yellow";case"reconnecting":return"yellow";default:return"red"}},statusLabel(){if(this.hasWrtcPeers)return this.$t("connected");if(!s["a"].online)return this.$t("offline");switch(s["a"].onlineStatus){case"connected":return this.$t("connected");case"connecting":return this.$t("connecting");case"reconnecting":return this.$t("connecting");default:return this.$t("unknown")}},isLoggedIn(){return this.lib.isLoggedIn}},methods:{isVisitable(e){return e.startsWith("/library/edit")||e.includes("preview=1")||e.includes("fromLink=1")||e.startsWith("/library/takedown")},getIcon(e){switch(e){case"following":return"star";case"explore":return"travel_explore";case"edit":return"edit_note"}return"list"}},beforeCreate(){if(te.a.mas()){const e=localStorage.getItem("__mas_library_user__");e||(console.log("clear store since no old user"),re.clear()),s["a"].whenReady.then((()=>{var t;s["a"].user&&null!==(t=s["a"].user.is)&&void 0!==t&&t.pub&&(e&&e!==s["a"].user.is.pub&&(console.log("clear store since user changed",e,s["a"].user.is.pub),re.clear()),localStorage.setItem("__mas_library_user__",s["a"].user.is.pub))}))}},mounted(){Z["a"].on("open-library",(e=>{console.log("open library url:",e);const t=Object(_["d"])(e);if(!t||!t.id)return;let a=0;const n=()=>{const e=Object(_["c"])(t.id);e?(console.log("go library",e),this.$root.$emit("navigate-to"),this.$router.push(e+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",e)))):(console.log("cannot get id from channel list",t.id,e),a||this.$q.notify(this.$t("loading")),a++<5?setTimeout(n,2e3):this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))};s["a"].whenReady.then(n)}))},watch:{"lib.libStatus":{handler(e){"ready"===e&&console.log("> library ready <")},immediate:!0},showRecommend(e){if(e){if(console.log("Show recommend. Redirect to library index"),"/library"===this.$route.path)return;this.$router.replace("/library")}}},beforeRouteUpdate(e,t,a){if(!e.path.startsWith("/library"))return a();const n=()=>!s["a"].isLoggedIn||!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus;if(n()){if("/library/"===e.path||"/library"===e.path)return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to")}));if(this.isVisitable(e.fullPath))return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to",e.path)}));a()}else a()}},le=se,ce=(a("899b5"),a("7285"),a("99c4")),de=a("a829"),ue=a("a4ac"),_e=a("90c4"),pe=a("c6f0"),me=Object(v["a"])(le,i,r,!1,null,"203f2a72",null),he=me.exports;S()(me,"components",{QToolbar:ce["a"],QBtn:A["a"],QMenu:de["a"],QCard:q["a"],QSelect:ue["a"],QInput:E["a"],QIcon:G["a"],QSpace:W["a"],QBadge:_e["a"],QBreadcrumbs:pe["a"]});var ge=a("d558"),fe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-explore"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{followable:"",post:n,disableFollow:e.loadingNext},on:{preview:e.showPreviewImage,follow:e.follow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.mod,o=t.column;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.shouldLoading(t,Math.max(Math.ceil(10/o),2)*o+(n?o-n:0))},expression:"(entry) => shouldLoading(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px - env(safe-area-inset-bottom) - env(safe-area-inset-top))"}},[e.searchFilteredPosts.length||e.loadingPosts||!e.loadedAll?e.loadedAll&&!e.loadingPosts?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):[a("div",[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{directives:[{name:"show",rawName:"v-show",value:!e.loadingPosts||e.filteredPosts.length,expression:"!loadingPosts || filteredPosts.length"}],attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),e.allPosts.length||e.loadingPosts?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToFollowing}},[a("q-tooltip",[e._v(e._s(e.$t("no_recommend"))+" "+e._s(e.$t("lib_following")))])],1)],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPosts&&!e.filteredPosts.length}})],1)},be=[],ye=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"intersection",rawName:"v-intersection",value:{handler:e.triggerPreload,threshold:0},expression:"{ handler: triggerPreload, threshold: 0 }"}],staticClass:"post-card overflow-hidden relative-position column no-wrap",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},on:{mouseenter:function(){return e.onCardHover(!0)},mouseleave:function(){return e.onCardHover(!1)}}},[a("img",{staticClass:"absolute-top-left",staticStyle:{filter:"blur(24px)",transform:"scale(1.25)",opacity:"0.08"},attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}),e.post.channel?a("div",[e.hideChannel?e._e():a("q-card-section",{staticClass:"post-channel-info no-wrap overflow-hidden row items-center"},[a("div",{staticClass:"channel cursor-pointer row items-center no-wrap",on:{click:e.toChannelPage}},[a("q-avatar",{staticClass:"shadow-2",staticStyle:{background:"#282828"},attrs:{size:"18"}},[e.isLoadedChannelImage?a("img",{attrs:{src:e.post.channel.image},on:{error:e.onChannelAvatarError,load:e.onChannelAvatarLoaded}}):e._e(),e.isLoadedChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"30px"}})],1),a("div",{staticClass:"channel-title q-ml-md ellipsis-2-lines",attrs:{title:e.post.channel.title}},[e._v("\n "+e._s(e.post.channel.title||e.$t("loading"))+"\n ")]),e.post.channel.hidden?a("span",{staticClass:"hidden-info text-grey q-ml-xs"},[e._v("("+e._s(e.$t("private_channel"))+")")]):e._e()],1),a("q-space"),a("FollowButton",{attrs:{id:e.post.channel.id,disableFollow:e.disableFollow}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:!e.hideChannel,expression:"!hideChannel"}],staticStyle:{margin:"0 -4px"}})],1):e._e(),a("q-card-section",{staticClass:"post-info q-pa-none overflow-hidden",class:e.$q.screen.width>=790?["row","no-wrap","justify-start","items-stretch"]:["column","no-wrap","justify-start","items-center"],style:{maxHeight:e.$q.screen.width>=790?"calc(16px * 2 + 360px)":"unset",flexGrow:1}},[a("div",{staticClass:"image",class:e.$q.screen.width>=790?["q-pa-md"]:["q-pa-sm"]},[a("div",{staticClass:"image-container row justify-center items-center"},[e.allowClickImage?a("img",{attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}):e._e(),e.allowClickImage?e._e():a("q-icon",{attrs:{size:"80px",name:"video_file",color:"general"}})],1)]),a("div",{staticClass:"overflow-hidden full-width flex-grow column no-wrap q-pb-md",style:{marginLeft:e.$q.screen.width>=790?"-8px !important":"0"}},[a("div",{staticClass:"desc-main q-pa-sm"},[a("div",{staticClass:"text-bold desc-title row overflow-hidden full-width no-wrap items-center"},[a("div",{staticClass:"post-title q-mr-sm overflow-hidden",attrs:{title:e.post.title}},[a("div",{staticClass:"text-no-wrap ellipsis"},[e._v(e._s(e.post.title))])]),a("q-space"),a("q-btn",{staticClass:"favorite-icon block",attrs:{dense:"",flat:"",color:"primary","text-color":"primary",round:"",icon:e.isFavorite?"star":"star_border"},on:{click:e.setFavorite}},[a("q-tooltip",[e._v(e._s(e.isFavorite?e.$t("remove_from_local_favorites"):e.$t("add_to_local_favorites")))])],1),e.post.channel?a("q-btn",{staticClass:"block",attrs:{dense:"",flat:"",round:"",icon:"more_vert"}},[a("q-menu",[a("q-list",{staticStyle:{"min-width":"100px"}},[a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.follow}},[a("q-item-section",[e._v("\n "+e._s(e.followable?e.$t("follow"):e.$t("unfollow"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.share}},[a("q-item-section",[e._v("\n "+e._s(e.$t("share"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockChannel}},[a("q-item-section",[e._v("\n "+e._s(e.isBlocked?e.$t("unblock"):e.$t("block"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockUser}},[a("q-item-section",[e._v(e._s(e.isBlockedUser?e.$t("unblock_creator"):e.$t("block_creator")))])],1),e.lib.isLibAdmin?[a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.takedownPost}},[a("q-item-section",[e._v(e._s(e.$t("takedown_post")))])],1)]:e._e()],2)],1)],1):e._e()],1),a("div",{staticClass:"text-subtitle2 q-mt-xs text-grey desc-time"},[a("span",[e._v(e._s(new Date(e.post.timestamp).toLocaleString()))]),a("q-badge",{staticClass:"q-ml-md bg-primary text-primary"},[e._v("\n "+e._s(e.post.rate||"G")+"\n "),a("q-tooltip",e._l(e.getRateText(e.post.rate).split("\n"),(function(t,n){return a("div",{key:n,staticClass:"rate-tip"},[e._v(e._s(t)+"\n ")])})),0)],1),e.subtitleLang?a("q-btn",{staticClass:"q-ml-sm",attrs:{dense:"",flat:"",size:"xs"}},[a("q-icon",{staticStyle:{"font-size":"22px"},attrs:{name:"subtitles"}}),a("q-tooltip",[e._v(e._s(e.$t("with_subtitle",{language:e.subtitleLang})))])],1):e._e()],1)]),a("div",{staticClass:"overflow-auto q-pa-sm",staticStyle:{"flex-grow":"1","flex-shrink":"1"}},[a("div",{staticClass:"full-width overflow-hidden"},e._l((e.post.description||"").split("\n"),(function(t,n){return a("div",{key:n,staticClass:"desc-para"},[e._v(e._s(t)+"\n ")])})),0)]),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.hideButtons,expression:"!hideButtons"}],staticClass:"text-center post-buttons q-pt-sm"},[e.post.abUrl||e.backAbUrl?a("div",{staticClass:"download-btns"},[e.addedStatus?a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"",flat:"",ripple:!1,"text-color":"primary",color:"primary"},on:{click:e.toTaskInfo}},[a("span",{staticClass:"action-button-content"},[a("q-tooltip",[e._v(e._s(e.$t("lib_already_added"))),a("br"),e._v(e._s(e.$t("click_to_task")))]),a("q-icon",{attrs:{name:"downloading"===e.addedStatus?"download":"done"}}),e._v("\n "+e._s("downloading"===e.addedStatus?e.$t("downloading"):e.$t("completed"))+"\n ")],1)]):a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.download}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("download")}},[a("q-icon",{attrs:{name:"download"}}),e._v(e._s(e.$t("download"))+"\n ")],1)]),e.playFile||e.preloadFailed?!e.playFile&&e.preloadFailed?a("q-btn",{staticClass:"q-ml-sm q-px-sm cursor-inherit",attrs:{unelevated:"",dense:"",flat:"",ripple:!1,"text-color":"primary",color:"primary"}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-tooltip",[e._v(e._s(e.$t("post_preload_failed")))]),a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm",attrs:{unelevated:"",dense:"","text-color":"primary",color:"primary"},on:{click:e.play}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play")}},[a("q-icon",{attrs:{name:"play_arrow"}}),e._v(e._s(e.$t("play"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.triggerPlay}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)])],1):a("div",{staticClass:"no-ab-url"},[a("q-btn",{attrs:{unelevated:"",dense:"",disable:"",label:e.$t("loading")}})],1)])])]),e.screen$xs?a("div",{staticClass:"dialog-actions"},[a("q-separator"),a("q-card-section",{staticClass:"flex q-py-sm"},[a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",label:e.$t("cancel"),color:"general","text-color":"general",unelevated:""}})],1)],1):e._e()],1)},ve=[],we=a("a11f"),ke=a("fc3a"),Se=a("c5a5");a("0c26");const{languages:Ce}=a("1c53"),xe="https://www.opensubtitles.org/subtitleserve/sub/";function $e(){const e=["en","zh","es","fr","de","ru","pt"],t=[],a=[];return Object.entries(Ce).forEach((([n,o])=>{const i={label:`${o.native}(${n})`,value:n,name:o.name};e.includes(n)?a.push(i):t.push(i)})),[...a,...t]}function Te(e){let t="";for(const a of e)(a.lang||a.url)&&(t&&(t+="%%%"),t=t+a.lang+"%%"+a.url);return t}function ze(e){const t=[];if(!e||""===e)return t;let a;a=e.includes("%%%")?e.split("%%%"):[e];for(const n of a){const e=n.split("%%");t.push({lang:e[0],url:e[1]})}return t}function Pe(e){let t=e,a="";if(!Array.isArray(e)&&"string"!==typeof e)return a;"string"===typeof e&&(t=ze(e));for(const n of t)a.includes(n.lang)||(a&&(a+="、"),a+=n.lang);return a}async function Ae(e){const t=a("9ad5");let n=e.trim();return/^\d+$/.test(n)&&(n=`${xe}${n}`),console.log(`requestSubtitleUrl: [${n}]`),!!n.startsWith("http")&&new Promise((e=>{t({method:"get",url:n,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"},responseType:"stream"}).then((t=>{console.log("succ",t.status),e(!0)})).catch((t=>{var a,n;console.log("err",(null===(a=t.response)||void 0===a?void 0:a.status)||t.response||t),429===(null===(n=t.response)||void 0===n?void 0:n.status)&&e(!0),e(!1)}))}))}function Ie(e){return/^\d+$/.test(e)}function qe(e){return Ie(e)?xe+e:e}var Oe=a("c033"),Ee=a("d710"),De=a.n(Ee);const je=n["a"].observable([]);Z["a"].on("preload-failed",(e=>{console.log("preload failed",e),je.includes(e)||(je.push(e),console.log(je))})),Z["a"].on("preload-done",(e=>{console.log("preload done",e),je.includes(e)&&je.splice(je.indexOf(e),1)}));const Ne="requestIdleCallback"in window?requestIdleCallback:e=>setTimeout(e,100);async function Le({url:e,postTitle:t}){if(!je.includes(e))return new Promise((a=>{Ne((()=>{Z["a"].emit("preload-task",{url:e,postTitle:t}),a()}))}))}const Ue=document.querySelector("#q-app"),Re=e=>new Promise((t=>setTimeout(t,e)));var Me={name:"PostCard",inject:["rootApp","io"],components:{FollowButton:Oe["a"]},props:{post:{type:Object,required:!0},hideChannel:{type:Boolean},hideButtons:{type:Boolean},disableFollow:{type:Boolean}},data(){return{scrollRoot:Ue,postCardHover:!1,allowClickImage:!0,animating:!1,followBtnHover:!1,pending:!1,favoriteNotifyFns:[],backAbUrl:"",isLoadedChannelImage:!0,isFavorite:re.isFavorite(this.post.id),lib:s["a"],preloadTriggered:!1,notAvailable:je}},computed:{followable(){return!s["a"].followingChannels.find((e=>{var t;return e.id===(null===(t=this.post.channel)||void 0===t?void 0:t.id)}))},isBlocked(){var e,t;return null===(e=s["a"].userData.blockChannels)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.id)},isBlockedUser(){var e,t;return null===(e=s["a"].userData.blockUsers)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.creator)},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHover?this.$t("unfollow"):this.$t("following")},abKey(){const e=this.post.abUrl||this.backAbUrl;return e?Object(we["a"])(e.includes("://")?e:decodeURIComponent(e)):""},addedStatus(){var e;return(null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.type)||!1},shortChannelTitle(){return this.post.channel&&this.post.channel.title?this.post.channel.title.length>12?this.post.channel.title.substring(0,10)+"...":this.post.channel.title:""},playFile(){var e;return null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.playFile},settings(){var e,t;const a=(null===(e=this.post)||void 0===e||null===(t=e._)||void 0===t?void 0:t["#"])||this.post.soul,n=d["a"].state.setting,o={downloadDirectory:n.downloadDirectory,uploadSpeed:n.uploadSpeed,downloadSpeed:n.downloadSpeed,maximumDownloadNum:n.maximumDownloadNum,maximumConnectionsNum:n.maximumConnectionsNum,payedUserShareRadix:n.payedUserShareRadix,trackers:n.trackerList||[],postTitle:Object(_["b"])(this.post.title)};return a&&(o.fromPost=a),o},subtitleLang(){return Pe(this.post.subtitleList)},preloadFailed(){return this.notAvailable.includes(this.post.abUrl||this.backAbUrl)}},methods:{onCardHover(e){this.postCardHover=e},getRateText(e="G"){switch(e){case"G":return this.$t("rate_g_desc");case"PG":return this.$t("rate_pg_desc");case"PG-13":return this.$t("rate_pg_13_desc");case"R":return this.$t("rate_r_desc");case"NC-17":return this.$t("rate_nc_17_desc")}return this.$t("rate_g_desc")},confirm(e,t={ok:"",cancel:"",message:""}){const a={title:e,ok:t.ok||this.$t("ok"),cancel:t.cancel||this.$t("cancel")};return t.message&&(a.message=t.message),new Promise((e=>{this.$q.dialog(a).onOk((()=>e(!0))).onDismiss((()=>e(!1)))}))},popupImage(){console.log("popup",this.allowClickImage),this.allowClickImage&&this.$emit("preview",this.post.image)},async playAnimation(e,t="#downloading"){if(this.animating)return;this.animating=!0;const a=document.querySelector(t),n=a?a.getBoundingClientRect():{x:0,y:e.clientY,width:0,height:0},o={left:e.clientX-36+"px",top:e.clientY-36+"px"},i={left:n.x+n.width/3-36+"px",top:n.y+n.height/2-36+"px"},r=document.createElement("i");r.classList.add("q-icon","material-icons","text-primary"),r.innerHTML="video_file",r.style.position="absolute",r.style.fontSize="72px",r.style.left=o.left,r.style.top=o.top,r.style.opacity=0,r.style.transform="scale(2.5)",r.style.transition="0.4s ease",document.body.appendChild(r),await Re(0),r.style.opacity=1,r.style.transform="scale(1)",await Re(500),r.style.transition="1s ease",r.style.left=i.left,r.style.top=i.top,r.style.transform="scale(0.5)",r.style.opacity=0,await Re(600),this.animating=!1,document.body.removeChild(r)},async triggerPlay(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);if(!Object(X["isElectron"])()&&!Object(ge["a"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task")+"?",{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.playAnimation(e,"#drawer-player"),await Re(600);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;if(this.io.emit("download-and-play",{type:"magnet",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings}),Object(X["isElectron"])()||Object(ge["a"])()){var i;const e=await Object(Se["a"])(o);if(!e)return;const t=null===(i=e.match(/([0-9a-fA-F]{40})/))||void 0===i?void 0:i[1];t&&d["a"].dispatch("remotePlay",t)}else{const{default:e}=a("7d7c"),{wtClient:t}=a("c620"),n=setInterval((()=>{t.torrents.length&&(clearInterval(n),e())}),100)}},async download(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;console.log(o),console.group("subtitle"),console.log(this.post.subtitleList),console.table(ze(this.post.subtitleList)),console.groupEnd();const i={type:"url",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings};if(!Object(X["isElectron"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task"),{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.io.emit("download_torrent",i),this.playAnimation(e,Object(X["isElectron"])()?"#downloading":"#task-management")},checkChannel(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.id,a=s["a"].channelList.find((e=>e.id===t));return!(!t||!a)||(this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}),!1)},async follow(){if(this.pending)return;if(!this.checkChannel())return;const e=this.post.channel.id,t=!s["a"].followingChannels.find((t=>t&&t.id===e));if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)),this.pending=!1}),2e3),console.log("follow click",t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},async share(){if(!this.checkChannel())return;const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.post.channel.title)}/${this.post.channel.id}`;console.log("share",e);const t=await Object(Se["a"])(e);if(console.log("converted url"),!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(ke["a"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))},async blockChannel(){if(!this.checkChannel())return;if(console.log("block channel",this.post.channel.id,this.isBlocked),this.isBlocked)return s["a"].unblockChannel(this.post.channel.id).then((e=>{console.log("unblock channel result",e)}));const e=await this.confirm(this.$t("block_channel"),{message:this.$t("block_channel_confirm"),ok:this.$t("block")});e&&s["a"].blockChannel(this.post.channel.id).then((e=>{console.log("block channel result",e)}))},async blockUser(){var e;if(console.log("block user",null===(e=this.post.channel)||void 0===e?void 0:e.creator,this.isBlockedUser),!this.post.channel||!this.post.channel.creator)return;if(this.isBlockedUser)return s["a"].unblockUser(this.post.channel.creator).then((e=>{console.log("unblock user result",e)}));const t=await this.confirm(this.$t("block_creator"),{message:this.$t("block_creator_confirm"),ok:this.$t("block")});t&&s["a"].blockUser(this.post.channel.creator).then((e=>{console.log("block user result",e)}))},toChannelPage(){this.checkChannel()&&this.$emit("to-channel",this.post.channel)},toTaskInfo(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.soul;let a=`/downloader?currentTab=${this.addedStatus}&abKey=${this.abKey}`;t&&(a+=`&channel=${encodeURIComponent(t)}`),this.post.id&&(a+=`&postId=${this.post.id}`),t&&this.post.id&&(a+=`&soul=${encodeURIComponent(t+"/posts/"+this.post.id)}`),console.log("to",this.abKey,this.addedStatus,t,this.post.id),console.log(a),this.$router.push(a)},setFavorite(){const e=this.post.id;var t,a,n,o,i,r,s,l,c,d,u,_,p,m,h;this.isFavorite?re.remove({id:e},(()=>{this.isFavorite=re.isFavorite(e)})):re.add({id:this.post.id,title:this.post.title,description:this.post.description,image:this.post.image,abUrl:this.post.abUrl||this.backAbUrl,soul:null===(t=this.post)||void 0===t||null===(a=t._)||void 0===a?void 0:a["#"],subtitleList:this.post.subtitleList,channel:{id:null===(n=this.post)||void 0===n||null===(o=n.channel)||void 0===o?void 0:o.id,title:null===(i=this.post)||void 0===i||null===(r=i.channel)||void 0===r?void 0:r.title,description:null===(s=this.post)||void 0===s||null===(l=s.channel)||void 0===l?void 0:l.description,image:null===(c=this.post)||void 0===c||null===(d=c.channel)||void 0===d?void 0:d.image,soul:null===(u=this.post)||void 0===u||null===(_=u.channel)||void 0===_||null===(p=_._)||void 0===p?void 0:p["#"],creator:null===(m=this.post)||void 0===m||null===(h=m.channel)||void 0===h?void 0:h.creator}});this.isFavorite=re.isFavorite(e)},play(){if(!Object(X["isElectron"])()&&!Object(ge["a"])()&&this.addedStatus){const e=a("7d7c").default;return e()}const{infoHash:e,playFile:t}=s["a"].addedPostMap[this.abKey]||{};console.log("play",e,t);const n=t.path||t;d["a"].dispatch("remotePlay",e),Z["a"].emit("play-torrent",{infoHash:e,filepath:n})},onChannelAvatarError(){this.isLoadedChannelImage=!1},takedownPost(){if(!s["a"].isLibAdmin||!this.post.id)return;if(20!==this.post.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("post",this.post.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))},onChannelAvatarLoaded(e){e.target.src===this.post.channel.image&&(this.isLoadedChannelImage=!0)},onImageError(){this.allowClickImage=!1},onImageLoaded(e){e.target.src===this.post.image&&(this.allowClickImage=!0)},triggerPreload({isIntersecting:e}){if(e&&!this.preloadTriggered&&this.settings.postTitle)return this.preloadFailed?console.log("skip preload failed",this.settings.postTitle):this.addedStatus?console.log("skip added",this.settings.postTitle):void((this.post.abUrl||this.backAbUrl)&&(console.log(`Scroll into view ${this.settings.postTitle}`),this.preloadTriggered=!0,Le({url:this.post.abUrl||this.backAbUrl,postTitle:this.settings.postTitle})))}},activated(){var e,t;this.post.abUrl||(console.log("no aburl",{...this.post}),null!==(e=this.post)&&void 0!==e&&null!==(t=e.channel)&&void 0!==t&&t.soul&&this.post.id&&p["v"].get(this.post.channel.soul+"/posts/"+this.post.id).on(((e,t,a,n)=>{e&&e.abUrl&&(console.log("Get abUrl for",this.post.id,e.abUrl),this.backAbUrl=e.abUrl,n.off())})));this.isFavorite=re.isFavorite(this.post.id)}},Fe=Me,Be=(a("cbf3"),a("9f3e")),We=a("e7c2"),He=a("b329"),Ve=a("25fb"),Qe=a("bcaf"),Ge=a("fa4f"),Ke=Object(v["a"])(Fe,ye,ve,!1,null,"580a0550",null),Ye=Ke.exports;S()(Ke,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QSeparator:H["a"],QBtn:A["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QBadge:_e["a"],QDialog:I["a"],QVirtualScroll:Qe["a"]}),S()(Ke,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Je=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page-sticky",{staticClass:"back-to-top",attrs:{position:"bottom-right"}},[a("transition",{attrs:{name:"animate"}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"back-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"publish"},on:{click:e.onClick}},[a("div",{staticClass:"fab-inner-text"},[e._v("\n "+e._s(e.$t("back_to_top"))+"\n ")])])],1)],1)},Ze=[],Xe={name:"BackToTop",props:{show:Boolean},data(){return{hide:!1,hovered:!1}},methods:{onClick(){this.$emit("click")}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0}},et=Xe,tt=(a("3408"),a("84f9")),at=Object(v["a"])(et,Je,Ze,!1,null,"ec8a50cc",null),nt=at.exports;S()(at,"components",{QPageSticky:tt["a"],QBtn:A["a"]});var ot=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"search-channel"},[a("div",{staticClass:"fixed-bottom-right show-search-channel",class:{higher:e.higher}},[a("q-btn",{staticClass:"channel-search-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"library_add"},on:{click:function(t){e.showDialog=!0}}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("search")))])])],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{hide:e.clearInput},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",{staticClass:"search-dialog overflow-hidden"},[a("q-card-section",{staticClass:"flex items-center q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("search_for_channel")))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(t){e.showDialog=!1}}})],1),a("q-card-section",{staticClass:"column items-stretch q-pt-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"search-textfield"},[a("q-input",{attrs:{type:"text",outlined:"",dense:"",autofocus:"",label:this.$t("channel")+" ID",placeholder:"%abcd1234"},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.search.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{color:"primary",name:"search"},on:{click:e.search}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}})],1),a("q-scroll-area",{staticClass:"items-center",staticStyle:{height:"calc(100vh - 256px)",margin:"4px auto 0",width:"100%"}},[a("div",{staticClass:"search-results full-width flex justify-center items-stretch"},[e._l(e.searchResults,(function(t){return a("ChannelCard",e._b({key:t.id,attrs:{followable:!e.lib.followingChannels.find((function(e){return e.id===t.id}))},on:{detail:e.detail,follow:e.follow}},"ChannelCard",t,!1))})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")],2)])],1)],1)],1)],1)},it=[],rt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-card column relative-position overflow-hidden rounded-borders",style:{border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},attrs:{flat:""}},[a("q-img",{staticClass:"channel-image absolute-top-left full-height",staticStyle:{filter:"blur(24px) saturate(1.5)",opacity:"0.2",transform:"scale(1.25)"},attrs:{src:e.image,ratio:1,"placeholder-src":"platform-assets/windows/icon/Wide310x150Logo.scale-240.png"}}),a("div",{staticClass:"image-container overflow-hidden",staticStyle:{"border-top-left-radius":"4px!important","border-top-right-radius":"4px!important"}},[a("q-img",{staticClass:"channel-image cursor-pointer",attrs:{contain:"",src:e.image,ratio:1},on:{click:e.detail,error:e.onImageError},scopedSlots:e._u([{key:"error",fn:function(){return[a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[a("q-icon",{attrs:{name:"video_library"}}),e._v("\n "+e._s(e.title)+"\n ")],1)]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])]},proxy:!0}])},[e.image&&e.isHaveImage?e._e():a("q-icon",{staticClass:"absolute-center",staticStyle:{color:"#ccc"},attrs:{size:"90px",name:"subscriptions"}}),a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[e._v("\n "+e._s(e.title)+"\n ")])]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])],1)],1),a("q-card-section",{staticClass:"q-py-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"q-pa-none row",staticStyle:{margin:"0 -16px"}},[a("div",{staticClass:"q-py-sm q-px-sm q-pl-md",attrs:{"data-cy":"channel-ID"}},[e._v("ID: "+e._s(e.id))]),a("q-space"),a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyId}}),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"block",size:"xs",dense:""},on:{click:e.takedown}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"q-px-md channel-desc",staticStyle:{margin:"0 -16px"}},[e._v(e._s(e.description))]),a("div",{staticClass:"channel-tags",staticStyle:{margin:"4px -4px 0"}},[e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative"}},[e._v(e._s(e.$t("blocked")))]):e._e(),e.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general"}},[e._v(e._s(e.$t("private_channel")))]):e._e()],1)]),a("q-space"),e.hideFollow?a("q-card-actions",[e.editable?a("q-btn",{attrs:{flat:"",icon:"delete",color:"negative"},on:{click:function(t){return t.stopPropagation(),e.remove.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("remove_channel"))+"\n ")])],1):e._e(),a("q-space"),e.editable?a("q-btn",{attrs:{flat:"",icon:"edit"},on:{click:function(t){return t.stopPropagation(),e.detail.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("edit_channel"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"find_in_page"},on:{click:function(t){return t.stopPropagation(),e.preview.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("preview"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"settings"},on:{click:function(t){return t.stopPropagation(),e.edit.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("channel_setting"))+"\n ")])],1):e._e()],1):a("q-card-actions",{staticClass:"flex justify-center items-center"},[a("FollowButton",{staticClass:"q-my-sm",attrs:{id:e.id}})],1)],1)},st=[],lt=a("aa8a"),ct={name:"ChannelCard",components:{FollowButton:Oe["a"]},data(){return{isHaveImage:!0,lib:s["a"]}},props:{title:{type:String,required:!0},description:{type:String,required:!0},image:{type:String,required:!0},id:{type:String,default:""},soul:{type:String,default:""},hidden:{type:Boolean},editable:{type:Boolean},hideFollow:{type:Boolean},followable:{type:Boolean}},watch:{image(e,t){e&&e!==t&&(this.isHaveImage=!0)}},computed:{isBlocked(){return s["a"].userData.blockChannels.includes(this.id)}},methods:{copyId(){Object(lt["b"])(this.id).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},edit(){this.editable&&this.$emit("edit",this.id)},detail(){this.$emit("detail",this.id)},onImageError(){this.isHaveImage=!1},preview(){this.$emit("preview",this.id)},follow(){this.$emit("follow",this.id)},remove(){this.$emit("remove-channel",this.id)},takedown(){if(!s["a"].isLibAdmin||!this.id)return;if(20!==this.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("channel",this.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))}}},dt=ct,ut=(a("4b8c"),a("9767")),_t=Object(v["a"])(dt,rt,st,!1,null,"37cd58ed",null),pt=_t.exports;S()(_t,"components",{QCard:q["a"],QImg:ut["a"],QIcon:G["a"],QTooltip:V["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QBadge:_e["a"],QCardActions:D["a"]});var mt={name:"SearchChannel",props:{higher:Boolean},components:{ChannelCard:pt},data(){return{hide:!1,showDialog:!1,searchText:"",searchResults:[],lib:s["a"]}},methods:{clearInput(){this.searchText="",this.searchResults=[]},search(){if(console.log("search",this.searchText),!this.searchText||!this.searchText.trim())return this.$q.dialog({message:this.$t("please_input_channel_id"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const e=this.searchText.trim().replace(/^%/,""),t=s["a"].channelList.filter((t=>!!(t&&t.title&&t.id)&&(t.hidden?t.id===e:t.id.includes(e))));this.searchResults=t,t.length||this.$q.dialog({message:this.$t("search_channel_no_result",[e]),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}})},follow(e){const t=!s["a"].followingChannels.find((t=>t.id===e));if(t)return s["a"].followChannel(e);this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},detail(e){const t=s["a"].allChannelList.find((t=>t.id===e&&t.title&&t.creator));if(!t)return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});console.log("find ch",t);const a=["id","title"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0,this.clearInput()}},ht=mt,gt=(a("6792"),a("c782")),ft=Object(v["a"])(ht,ot,it,!1,null,"1c919252",null),bt=ft.exports;S()(ft,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QInput:E["a"],QIcon:G["a"],QScrollArea:gt["a"]});var yt=a("c49d");const vt={data(){return{isActive:!1,searchText:"",lib:s["a"]}},activated(){this.isActive=!0,this.searchText=s["a"].search.text.trim()},deactivated(){this.isActive=!1},watch:{"lib.search.text"(e){this.isActive&&(this.searchText=e.trim())}}};var wt=function(e){const t=function(){return"index"===e||"explore"===e?this.searchFilteredPosts:"favorite"===e?this.filteredFavorites:void 0},a=async function(){this.loader$loadPostsNext?await this.loader$loadPostsNext({count:6}):this.loadNext&&await this.loadNext()};return{data(){return{pagination:{descending:!0,page:1,rowsPerPage:6}}},computed:{tableData:t,pagesNumber(){return Math.ceil(this.tableData.length/this.pagination.rowsPerPage)},currentPageNumber(){return this.pagination.page}},watch:{async currentPageNumber(e){const t=this.$el.querySelector(".library-table>.q-table__grid-content");if(t.scrollTop=0,e===this.pagesNumber)try{this.loading=!0,console.log("query"),await a.call(this)}catch(n){this.$q.notify({type:"negative",position:"bottom-right",message:n.message})}finally{this.loading=!1}}}}};let kt=null;var St={data(){return{showBackToTop:!1,scrollContentSelector:".virtual-scroll-grid-wrapper"}},methods:{handleBackToTop(){if(this.showBackToTop){const e=this.$el.querySelector(this.scrollContentSelector);if(!e)return;e.scrollTop=0}else{if(!this.$refs.vscroll)return;this.$refs.vscroll.scrollTo(0,"start")}}},mounted(){const e=this.$el.querySelector(this.scrollContentSelector),t=()=>{this.showBackToTop=e.scrollTop>0};e&&(e.addEventListener("scroll",t),kt=()=>e.removeEventListener("scroll",t))},beforeDestroy(){kt&&kt()}},Ct={name:"LibraryExplore",components:{PostCard:Ye,BackToTop:nt,SearchChannel:bt,Loading:x},mixins:[vt,wt("explore"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,showPreview:!1,previewImage:"",loadingPosts:!1,loadTimer:null,allPosts:[],loadingNext:!1,loadedAll:!0,loadedChannels:[],loadedPostIds:[],scrollIndex:0,loadingIntersecting:!1,loadStartTime:Date.now(),lib:s["a"]}},computed:{nonFollowingChannels(){const e=this.lib.followingChannels.map((e=>e.id)),t=this.lib.userData.blockChannels,a=this.lib.userData.blockUsers;return this.lib.channelList.filter((n=>!t.includes(null===n||void 0===n?void 0:n.id)&&(!a.includes(null===n||void 0===n?void 0:n.creator)&&!e.includes(null===n||void 0===n?void 0:n.id)))).filter((e=>e))},filteredPosts(){return this.allPosts.filter((e=>e.title&&e.timestamp)).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channel":return e.channel.title;case"channelID":return e.channel.id;default:return e.title}},n=n=>{var o,i;if(!n||!n.title)return!1;if(!e)return!0;const r=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&e===r||(null===(i=n.channel)||void 0===i||!i.hidden)&&r.includes(e)};console.time("filter");const o=this.filteredPosts.filter(n);return console.timeEnd("filter"),o},allPostToFetch(){const e=[];return this.loadedChannels.forEach((({channel:t,ids:a})=>{a.forEach((a=>{this.loadedPostIds.includes(a)||e.push({channel:t,postId:a})}))})),e}},methods:{onScroll(e){this.scrollIndex=e.index},itemsFn(e=0,t=5){return Object(yt["a"])("vitem",e,t),this.searchFilteredPosts.slice(e,e+t)},shouldLoading(e,t){this.loadingIntersecting=e.isIntersecting,e.isIntersecting&&this.loadNext(t)},async loadNext(e=24){if(!this.active)return!1;if(this.loadingNext)return;this.loadingNext=!0,this.allPostToFetch.sort(((e,t)=>e.postId&&t.postId?e.postId.localeCompare(t.postId):0));const t=this.allPostToFetch.slice(0,e);if(Object(yt["a"])("Load Next",t),!t.length)return this.loadingNext=!1,this.loadedAll=!0,void setTimeout((()=>{Object(yt["a"])("try load more"),this.loadPostList()}),3e3);this.loadedAll=!1;const a=await Promise.all(t.map((async({channel:e,postId:t},a)=>(await new Promise((e=>setTimeout(e,Math.floor(Math.random()*a*500)))),{channel:e,post:await s["a"].getPostById(e.id,t,!0)}))));Object(yt["a"])("fetch results",a),a.forEach((({channel:e,post:t})=>{var a;t&&"object"===typeof t&&(e.hidden&&e.creator!==(null===(a=s["a"].user.is)||void 0===a?void 0:a.pub)||(t.channel=e,this.allPosts.push(t)))})),this.loadedPostIds.push(...t.map((e=>e.postId))),this.loadingNext=!1,setTimeout((()=>{Object(yt["a"])("should load next",this.loadingIntersecting),this.loadingIntersecting&&this.loadNext()}),200)},loadPostList(){if(!this.active)return;if(this.loadStartTime+15e3e.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);const e=this.nonFollowingChannels.filter((e=>!(!e.title||!e.id)&&!this.loadedChannels.find((t=>t.channel.id===e.id))));Promise.all(e.map((async(e,t)=>s["a"].getChannelPostIds(e.id,!0).then((t=>{const a=this.loadedChannels.find((t=>t.channel.id===e.id));if(Object(yt["a"])("[Explore] get channel post ids",e.id,t,!a),a?t.forEach((e=>{a.ids.includes(e)||a.ids.push(e)})):this.loadedChannels.push({channel:e,ids:t}),this.active&&!this.allPosts.length){if(this.loadedChannels.length<7&&this.nonFollowingChannels.length>2)return;this.loadNext()}}))))).then((()=>{if(this.allPosts.length)this.loadingPosts=!1;else{if(!this.active)return;setTimeout((()=>{this.loadingPosts=!1,this.allPosts.length||this.loadPostList()}),2e3)}this.active&&this.loadingIntersecting&&this.loadNext()}))},prune(){const e=this.nonFollowingChannels.map((e=>e.id));for(let n=0;n(t.ids&&e.push(...t.ids),e)),[]);for(let n=0;nthis.allPosts[n].id===e));e.includes(null===(a=this.allPosts[n].channel)||void 0===a?void 0:a.id)&&t.includes(this.allPosts[n].id)||(this.allPosts.splice(n--,1),-1!==o&&this.loadedPostIds.splice(o,1))}for(let n=0;ne.id===this.loadedPostIds[n]))||this.loadedPostIds.splice(n--,1)},showPreviewImage(e){this.previewImage=e,this.showPreview=!0},toChannelPage(e){Object(yt["a"])("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},follow(e){this.lib.followChannel(e).then((t=>{Object(yt["a"])("followed",e,t)}))},goToFollowing(){this.$router.push("/library/following")},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.active=!0,this.prune(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/explore"),this.loadStartTime=Date.now(),this.loadPostList();const e=this;"explore"in window||Object.defineProperty(window,"explore",{get(){return e.loadedChannels}})},deactivated(){this.active=!1},mounted(){this.loadPostList(),this.setSearch()},watch:{nonFollowingChannels(e,t){if(e.length!==t.length){for(let t=0;te.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);this.loadPostList()}},"lib.search.text"(e){this.isActive&&(this.searchText=e)},"searchFilteredPosts.length"(e,t){t||!e||this.active||(console.log("change length"),this.$router.push("/library/explore"))},searchText(e){e&&this.active&&this.handleBackToTop()}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},beforeRouteLeave(e,t,a){clearTimeout(this.loadTimer),a()}},xt=Ct,$t=(a("6580"),a("7027")),Tt=a("8a98"),zt=a("526f"),Pt=a("d919"),At=a("32d0"),It=a("f065"),qt=Object(v["a"])(xt,fe,be,!1,null,"872ead0c",null),Ot=qt.exports;S()(qt,"components",{QIcon:G["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QTooltip:V["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(qt,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Et=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"library-following row justify-center",class:{web:!e.isElectron}},[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],followable:!1,blocked:e.blockMap[t.id]},on:{detail:e.showChannelDetail,follow:e.unfollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),e.followings.length?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary","text-color":"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToExplore}},[a("q-tooltip",[e._v(e._s(e.$t("no_following"))+" "+e._s(e.$t("lib_explore")))])],1)],1),a("BackToTop",{attrs:{show:e.scrollOffset>0},on:{click:e.scrollTop}}),a("SearchChannel",{attrs:{higher:e.scrollOffset>0}})],2)},Dt=[],jt=a("018b"),Nt={name:"LibraryFollowing",components:{ChannelCard:pt,SearchChannel:bt,BackToTop:nt},mixins:[vt],data(){return{isElectron:Object(X["isElectron"])(),scrollOffset:0,lib:s["a"]}},computed:{followings(){return this.lib.followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(e.title&&e.id)))},blockMap(){const e={};return s["a"].userData&&s["a"].userData.blockChannels?(this.followings.forEach((t=>{(s["a"].userData.blockChannels.includes(t.id)||s["a"].userData.blockUsers.includes(t.creator))&&(e[t.id]=!0)})),e):e},filteredChannels(){const e=this.searchText.toLowerCase();if(!e)return this.followings;const t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{const n=a(t);return Object(_["a"])(null===n||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.followings.filter(n)}},methods:{scrollTop(){this.$refs.scrollEl.scrollTo(0,0)},showChannelDetail(e){const t=this.followings.find((t=>t.id===e));console.log("to",t);const a=["id","title"].map((e=>{const a=t[e];return encodeURIComponent(e)+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)},unfollow(e){this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},goToExplore(){this.$root.$emit("navigate-to"),this.$router.push("/library/explore")},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/following"),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.scrollTo(0,this.scrollOffset)},mounted(){this.setSearch(),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.addEventListener("scroll",Object(jt["a"])((()=>{this.scrollOffset=this.$refs.scrollEl.scrollTop})))},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Lt=Nt,Ut=(a("3d7e"),Object(v["a"])(Lt,Et,Dt,!1,null,"0a6f4e44",null)),Rt=Ut.exports;S()(Ut,"components",{QBtn:A["a"],QTooltip:V["a"]});var Mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"local-favorite",class:{web:!e.isElectron}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.filteredFavorites.length,itemsFn:function(t,a){return e.filteredFavorites.slice(t,a)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n,followable:!e.lib.followingChannels.some((function(e){return e.id===n.channel.id}))},on:{follow:e.onFollow,preview:e.preview,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"rounded-borders bg-page column justify-center items-center",class:e.filteredFavorites.length?"q-mb-sm q-pa-md":"",style:e.filteredFavorites.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},[e.filteredFavorites.length?e._e():a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)])]},proxy:!0}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("div",{staticClass:"fixed-bottom-right save-or-load",class:{higher:e.scrollIndex>0||e.showBackToTop}},[a("q-btn",{staticClass:"backup-btn q-ma-xs",class:{hide:e.hideBtn},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary",icon:"source"},on:{click:e.saveOrLoad}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("backup")))])])],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("q-dialog",{model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",[a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"text-h6 col-12"},[e._v(e._s(e.$t("import_or_export_favorites")))]),a("div",{staticClass:"col-12"},[e._v("\n Total: "+e._s(e.favorites.length)+"\n ")]),a("div",{staticClass:"btns col-12 text-right q-mt-md"},[a("q-btn",{attrs:{color:"primary",flat:"",icon:"save",label:e.$t("export_local_favorites")},on:{click:e.exportData}}),a("FileSelector",{attrs:{accept:{name:"JSON",extensions:["json"]}},on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",flat:"",icon:"add",label:e.$t("import_favorites_file")}})],1)],1)])],1)],1)],1)},Ft=[],Bt=a("9a50"),Wt={name:"LibraryFavorite",components:{PostCard:Ye,BackToTop:nt,FileSelector:Bt["a"]},mixins:[vt,wt("favorite"),St],data(){return{isElectron:Object(X["isElectron"])(),hideBtn:!1,favorites:re.list(),scrollIndex:0,showPreview:!1,previewImage:"",showDialog:!1,lib:s["a"]}},computed:{filteredFavorites(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"postID":return e.id;case"postDesc":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.favorites.filter(n)}},methods:{onScroll(e){this.scrollIndex=e.index},preview(e){this.previewImage=e,this.showPreview=!0},remove(e){return re.remove(e)},saveOrLoad(){this.showDialog=!0},exportData(){Object(_["h"])(JSON.stringify({favorites:this.favorites}),"favorites.json"),this.showDialog=!1},importData(){console.log(this.$refs.fileSelector),this.$refs.fileSelector.value="",this.$refs.fileSelector.click()},onFileChange(e){e&&Object(_["g"])(e).then((e=>{if(!e)return this.$q.notify("Cannot read data from this file");const t=JSON.parse(e);if(!t.favorites||!Array.isArray(t.favorites))return this.$q.notify(this.$t("not_a_favorite_file"));re.set(t.favorites),this.showDialog=!1}))},onFollow(e){if(s["a"].followingChannels.some((t=>t.id===e||t.soul===e)))return console.log("unfollow"),s["a"].unfollowChannel(e).then(console.log);console.log("follow"),s["a"].followChannel(e).then(console.log)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"postTitle"},{label:this.$t("description"),value:"postDesc"},{label:this.$t("channel_title"),value:"channel"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/favorite"),this.hideBtn=!0,setTimeout((()=>{this.hideBtn=!1}),300)},deactivated(){this.hideBtn=!0},watch:{searchText(e){e&&this.active&&this.handleBackToTop()}}},Ht=Wt,Vt=(a("2377"),Object(v["a"])(Ht,Mt,Ft,!1,null,"c0faef30",null)),Qt=Vt.exports;S()(Vt,"components",{QIcon:G["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSpinnerIos:$t["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(Vt,"directives",{ClosePopup:K["a"]});var Gt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"edit-container"},[a("div",{ref:"scrollArea",staticClass:"edit-main flex items-stretch justify-center"},[a("div",{staticClass:"add-channel rounded-borders bg-general q-ma-sm flex justify-center items-center column",staticStyle:{"min-height":"290px"}},[a("div",{staticClass:"add-channel-panel relative-position"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticClass:"add-channel-btn block absolute-left",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle_outline",size:"24px"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_channel")))])],1),a("q-btn",{staticClass:"quick-start block absolute-right",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle",size:"24px"},on:{click:function(t){e.showQuickStart=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("quick_start_desc")))])],1)],1)]),e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{title:t.title,description:t.description,image:t.image,id:t.id,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],editable:!0,hideFollow:""},on:{edit:e.edit,detail:e.showChannelDetail,preview:e.showPreview,"remove-channel":e.removeChannel}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("ChannelEdit",{attrs:{title:e.modeTitle,show:e.showEdit,channel:e.edittingChannel,rules:{validateChannelTitle:e.validateChannelTitle,validateChannelDesc:e.validateChannelDesc,validateChannelImage:e.validateChannelImage}},on:{close:function(t){e.showEdit=!1},submit:e.submit}}),a("PostEdit",{attrs:{title:e.postModeTitle,show:e.showPostEdit,post:e.edittingPost,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl}},on:{close:function(t){e.showPostEdit=!1},submit:e.submitPost}}),a("QuickStart",{attrs:{show:e.showQuickStart},on:{input:function(t){return e.showQuickStart=t}}})],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}}),a("q-dialog",{attrs:{"full-width":"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showPostList,callback:function(t){e.showPostList=t},expression:"showPostList"}},[a("PostList",{attrs:{channel:e.listChannel,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl},editable:!0},on:{edit:e.showPostEditor,add:e.showPostAdd,"remove-post":e.removePost}})],1)],1)},Kt=[],Yt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[e.channel?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.title))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"column q-pb-none",class:e.screen$xs?"q-pt-md":"q-pt-none",staticStyle:{width:"560px","max-width":"100%","flex-grow":"1"}},[a("q-input",{attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle],placeholder:e.$t("placeholder_channel_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("description"),rules:[e.rules.validateChannelDesc],placeholder:e.$t("placeholder_channel_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("q-toggle",{staticStyle:{"margin-top":"-8px"},attrs:{color:"green"},model:{value:e.hidden,callback:function(t){e.hidden=t},expression:"hidden"}},[a("span",[e._v(e._s(e.$t("set_as_private")))]),a("q-tooltip",[e._v(e._s(e.$t("hide_in_explore")))])],1)],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"q-px-md",class:e.screen$xs?"q-py-sm":"q-py-md",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-px-md",attrs:{unelevated:"",color:"general","text-color":"general",label:e.$t("cancel")}}),a("q-btn",{staticClass:"q-px-md",attrs:{unelevated:"",color:"primary","text-color":"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1):e._e()],1)},Jt=[],Zt=a("d534"),Xt={name:"ChannelEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,channel:Object,title:String,rules:{validateChannelTitle:Function,validateChannelDesc:Function,validateChannelImage:Function}},data(){const e=[{label:this.$t("channel_title"),key:"title",rules:[this.rules.validateChannelTitle],value:""},{label:this.$t("description"),key:"description",rules:[this.rules.validateChannelDesc],value:""},{label:this.$t("preview")+"(url)",key:"image",rules:[this.rules.validateChannelImage],value:""}];return{inputs:e,channelTitle:"",description:"",image:"",isImageLoaded:!1,hidden:!1}},methods:{close(){this.$emit("close")},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.channelTitle,description:this.description,image:this.image,hidden:this.hidden})}},watch:{show(e){e&&this.channel?(this.channelTitle=this.channel.title,this.description=this.channel.description,this.image=this.channel.image,this.channel.hidden?this.hidden=!0:this.hidden=!1):(this.channelTitle="",this.description="",this.image="",this.hidden=!1)}}},ea=Xt,ta=a("03bd"),aa=Object(v["a"])(ea,Yt,Jt,!1,null,"01839ef4",null),na=aa.exports;S()(aa,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QInput:E["a"],QToggle:ta["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(aa,"directives",{ClosePopup:K["a"]});var oa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.close}},[e.post?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))])]),a("q-card-section",{staticClass:"row q-pt-none justify-start items-start"},[a("div",{staticClass:"full-width title-input-container"},[a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"bottom-slots":"","stack-label":"",outlined:"",dense:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle],placeholder:e.$t("placeholder_post_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.titleFromTask,expression:"titleFromTask"}],staticClass:"full-width"},[a("span",{staticClass:"task-prefix"},[e._v(e._s(e.$t("task_title"))+":")]),a("span",{staticClass:"title-from-task q-ml-xs text-grey"},[e._v(e._s(e.titleFromTask))]),a("span",{staticClass:"cursor-pointer q-ml-sm set-title",on:{click:e.setTitleFromTask}},[e._v(e._s(e.$t("set_title")))])])]},proxy:!0}],null,!1,1210891792),model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}})],1),a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"stack-label":"",outlined:"",dense:"",label:e.$t("description"),rules:[e.rules.validatePostDesc],placeholder:e.$t("placeholder_post_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-xs",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("div",{staticClass:"full-width row col-12"},[a("q-input",{staticClass:"col-7 q-pr-md",attrs:{outlined:"",dense:"",label:e.appName+" URL",rules:[e.rules.validatePostUrl],debounce:500},on:{input:e.inputUrl},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("q-select",{staticClass:"col-5",attrs:{outlined:"",dense:"","bottom-slots":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important","use-input":"",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}],null,!1,1979668889),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("q-select",{staticClass:"q-mt-sm",staticStyle:{width:"100%"},attrs:{outlined:"",dense:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}}),a("q-markup-table",{staticClass:"q-mt-lg full-width",attrs:{bordered:"",flat:"",dense:"","no-data-label":"I didn't find anything for you"}},[a("thead",[a("tr",[a("th",{attrs:{colspan:"3"}},[a("div",{staticClass:"flex items-center full-width"},[a("div",[e._v(e._s(e.$t("subtitle_list"))+" ("+e._s(e.$t("optional"))+")")]),a("q-btn",{staticClass:"q-ml-sm",attrs:{flat:"",round:"",icon:"help_outline",size:"0.7rem"}},[a("q-tooltip",[e._v(e._s(e.$t("support_subtitle_type"))),a("br"),e._v(e._s(e.$t("recommend_opensubtitles")))])],1),a("q-btn",{staticClass:"q-mx-xs",attrs:{flat:"",round:"",icon:"add",size:"0.7rem"},on:{click:function(t){return e.editSubtitle()}}},[a("q-tooltip",[e._v(e._s(e.$t("add_subtitles")))])],1)],1)])]),e.subtitleList.length?a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("download_link")))]),a("th",{staticClass:"text-center"})]):e._e()]),a("tbody",e._l(e.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"edit",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.editSubtitle(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1),a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.modifySubtitleList(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1)],1)])})),0)])],1),a("q-space"),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:e.$t("lib_submit"),color:"primary"},on:{click:e.submit}})],1)],1):e._e(),a("q-dialog",{ref:"addSubtitleDialog",on:{hide:function(t){e.subtitle={}}},model:{value:e.showSubtitleInput,callback:function(t){e.showSubtitleInput=t},expression:"showSubtitleInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("add_subtitle_url")))])]),a("q-card-section",{staticClass:"q-pt-none full-width"},[a("q-select",{staticStyle:{width:"200px"},attrs:{dense:"",outlined:"","emit-value":"",label:e.$t("language"),options:e.languageOptions},model:{value:e.subtitle.lang,callback:function(t){e.$set(e.subtitle,"lang",t)},expression:"subtitle.lang"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{label:e.$t("download_link"),outlined:"",dense:"",type:"text",placeholder:"https://www.opensubtitles.org/.../subtitleserve/sub/..."},model:{value:e.subtitle.url,callback:function(t){e.$set(e.subtitle,"url",t)},expression:"subtitle.url"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{attrs:{flat:"",icon:"done",loading:e.loading,disable:e.loading},on:{click:function(t){return e.modifySubtitleList(e.subtitle.index,e.subtitle)}},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])})],1)],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},ia=[],ra={name:"PostEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,post:Object,title:String,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},data(){const e=De.a.displayName;return{appName:e,postTitle:"",titleFromTask:"",description:"",image:"",isImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,rate:{label:this.$t("film_rate"),value:""},showSubtitleInput:!1,loading:!1,subtitle:{},languageOptions:$e(),subtitleList:[],taskOptions:[]}},computed:{rateOptions(){return[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}]},uploadingTasks(){return d["a"].getters.uploading.filter((e=>!!e.title||(console.log("PostEdit.uploadingTasks:",e),!1))).map((e=>{var t;const a=e.title.length>28?e.title.substring(0,24)+"...":e.title;return{label:a,title:e.title,value:(null===(t=e.abUrl.split("&"))||void 0===t?void 0:t[0])||e.abUrl}}))}},methods:{filterOptions(e,t){console.log("filter",e);const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.label.toLowerCase().includes(a)))}))},close(){this.$emit("close")},setTitleFromTask(){this.postTitle=this.titleFromTask,this.titleFromTask=""},inputUrl(e){this.abSelect&&e!==this.abSelect.value&&(this.abSelect=null,this.titleFromTask="")},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});this.abUrl=t},editSubtitle(e){if(this.loading=!1,"number"===typeof e)this.subtitle=JSON.parse(JSON.stringify(this.subtitleList[e])),this.subtitle.index=e;else{if(this.subtitleList.length>=5)return this.$q.notify(this.$t("maximumSubtitleNum_limit"));this.subtitle={index:this.subtitleList.length}}this.showSubtitleInput=!0},async modifySubtitleList(e,t){if(console.log("modifySubtitleList",e),this.loading=!0,t&&"number"===typeof t.index){if(!t.lang||!t.url||""===t.lang)return this.loading=!1,this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("cannot_add_subtitle_msg")+this.$t("recommend_opensubtitles"),ok:this.$t("ok")});const a=await Ae(this.subtitle.url);if(this.loading=!1,!a)return this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("invalid_download_url"),ok:this.$t("ok")});this.subtitleList[e]=t}else this.subtitleList.splice(e,1);this.$refs.addSubtitleDialog.hide()},async checkSubtitleUrl(){if(!/https:\/\/www\.opensubtitles\.org.*\/subtitleserve\/sub\/\d+$/gm.test(this.subtitle.url)&&!/^\d+$/.test(this.subtitle.url))return this.$t("invalid_download_url");const e=await Ae(this.subtitle.url);return e?void 0:this.$t("invalid_download_url")},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.postTitle.trim(),description:this.description.trim(),image:this.image.trim(),rate:this.rate.value,abUrl:this.abUrl.trim(),subtitleList:Te(this.subtitleList).trim()})}},watch:{show(e){if(e&&this.post){if(this.postTitle=this.post.title,this.description=this.post.description,this.image=this.post.image,this.abUrl=this.post.abUrl.includes(":")?this.post.abUrl:decodeURIComponent(this.post.abUrl),this.post.rate){const e=this.rateOptions.find((e=>e.value===this.post.rate));e&&(this.rate={...e})}else this.rate={label:this.$t("film_rate"),value:""};this.subtitleList=ze(this.post.subtitleList)}else this.postTitle="",this.description="",this.image="",this.abUrl="",this.titleFromTask="",this.abSelect=null,this.rate={label:this.$t("film_rate"),value:""},this.subtitleList=[]}}},sa=ra,la=(a("1761"),a("4101")),ca=Object(v["a"])(sa,oa,ia,!1,null,"48adc3b5",null),da=ca.exports;S()(ca,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QSelect:ue["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QSpace:W["a"],QCardActions:D["a"],QSpinner:w["a"],QColor:la["a"]}),S()(ca,"directives",{ClosePopup:K["a"]});var ua=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"post-list-card column no-wrap overflow-hidden relative-position"},[a("q-card-section",{staticClass:"flex items-center bg-page",class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.channel.title))]),a("q-space"),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"add"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_post")))])],1):e._e(),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"file_open"},on:{click:function(t){e.showImport=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("import_data_from_excel")))])],1):e._e(),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-ml-xs",attrs:{"fab-mini":"",flat:"",icon:"close"}})],1),a("q-card-section",{staticClass:"q-py-sm q-pb-none"},[a("div",{staticClass:"description"},[e._v(e._s(e.channel.description))])]),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none",staticStyle:{"flex-grow":"1","flex-shrink":"1","overflow-y":"scroll"}},[a("q-markup-table",{attrs:{square:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("created_time")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("operations")))])])]),a("tbody",{staticClass:"post-table"},e._l(e.sortedPosts,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[a("img",{attrs:{src:t.image,loading:"lazy",width:"64px"}})]),a("td",{staticClass:"text-left post-title"},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc",staticStyle:{"min-width":"240px"}},[e._v(e._s(t.description))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-center"},[e._v(e._s(e.stampToString(t.timestamp)))]),a("td",{staticClass:"text-center"},[e.editable?a("q-btn",{attrs:{icon:"edit",round:"",flat:""},on:{click:function(a){return e.edit(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1):e._e(),e.editable?a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:""},on:{click:function(a){return e.deletePost(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1):e._e()],1)])})),0)])],1),a("q-dialog",{attrs:{"content-class":"fullscreen-dialog excel-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.importDialogChange},model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[e.excelFile?a("Excel",{attrs:{file:e.excelFile,channelId:e.channel.id,channelPosts:e.posts,propKeys:e.excelProps,rules:e.rules}}):a("q-card",{staticClass:"import-entry"},[a("q-card-section",{staticClass:"row items-center no-wrap q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("import_data_from_excel")))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-card-section",{staticClass:"row items-center q-pt-none excel-import-dialog"},[a("div",{staticClass:"prop-settings col-12"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("set_excel_keys")))]),e._l(e.excelProps,(function(t,n){return a("q-input",{key:n,staticClass:"q-my-sm",attrs:{outlined:"",dense:"",label:t.label},model:{value:t.tableKey,callback:function(a){e.$set(t,"tableKey",a)},expression:"conf.tableKey"}})}))],2),a("q-file",{staticClass:"col-12",attrs:{outlined:"",dense:"",label:e.$t("open_file"),accept:".xls,.xlsx"},model:{value:e.excelFile,callback:function(t){e.excelFile=t},expression:"excelFile"}})],1)],1)],1),a("q-inner-loading",{staticClass:"q-pt-xl",attrs:{showing:e.showLoading,label:e.$t("loading")}},[a("q-spinner-gears",{attrs:{size:"50px",color:"primary"}}),a("div",{staticClass:"text-center"},[e._v(e._s(e.$t("lib_from_network")))])],1)],1)},_a=[],pa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-excel"},[a("q-card",{staticClass:"excel-card"},[a("q-card-section",{staticClass:"excel-main"},[a("div",{staticClass:"text-h6"},[e._v("Excel")]),a("q-markup-table",[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-left"},[e._v("Url")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"operation"})])]),a("tbody",{staticClass:"post-table"},e._l(e.posts,(function(t,n){return a("tr",{key:t.title},[a("td",{staticClass:"text-left post-title",attrs:{title:t.title}},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc"},[e._v(e._s(t.description))]),a("td",{staticClass:"text-left post-url",attrs:{title:t.abUrl}},[e._v(e._s(t.abUrl))]),a("td",{staticClass:"text-left post-img"},[a("img",{attrs:{src:t.image,width:"24px",loading:"lazy"}})]),a("td",{staticClass:"text-left post-rating"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-left post-options"},[a("q-btn",{attrs:{dense:"",flat:"",icon:"close",color:"red"},on:{click:function(t){return e.removePost(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("remove")))])],1)],1)])})),0)])],1),a("q-card-actions",{staticClass:"excel-actions q-pb-xs",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",color:"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1)],1)},ma=[],ha=a("8b4c"),ga={name:"LibraryExcel",props:{file:{type:File,default:()=>null},channelId:{type:String,default:""},channelPosts:{type:Array,default:()=>[]},rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function},propKeys:{type:Array,default:()=>[{key:"title",label:(void 0).$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:"Alphabiz URL",tableKey:"AB-S"},{key:"description",label:(void 0).$t("description"),tableKey:"描述"},{key:"image",label:(void 0).$t("poster"),tableKey:"海报"},{key:"rate",label:(void 0).$t("film_rate"),tableKey:"分级"}]}},data(){return{posts:[]}},methods:{removePost(e){this.posts.splice(e,1)},readFile(e){return new Promise(((t,a)=>{const n=new FileReader;n.onload=e=>{const n=e.target.result;try{const e=ha["read"](n);t(e)}catch(e){a(e)}},n.onerror=e=>a(e),n.readAsArrayBuffer(e)}))},async parseXlsx(){console.log("parse xlsx",this.file,ha);const e=await this.readFile(this.file);console.log(e),this.$q.loading.show(),this.posts=[];let t=0,a=0,n=0;for(const o in e.Sheets){const i=e.Sheets[o],r=ha["utils"].sheet_to_json(i);console.log("Parsed",r),r.length&&await r.reduce((async(e,o)=>{await e,await new Promise((e=>setTimeout(e)));const i={};for(const a of this.propKeys){if(!o[a.tableKey]||!o[a.tableKey].length)return console.log("[Excel] Failed",a,a.tableKey,o[a.tableKey]),t++;i[a.key]=o[a.tableKey]}if(this.channelPosts.some((e=>e.title===i.title||e.abUrl===i.abUrl)))return console.log("[Excel] Skip existed",i,this.channelPosts.find((e=>e.title===i.title||e.abUrl===i.abUrl))),a++;if(i.abUrl&&i.abUrl.startsWith("magnet"))try{i.abUrl=await Object(Se["a"])(i.abUrl)}catch(r){console.log("cannot convert abUrl",i.abUrl,r)}if(i.description=i.description.substring(0,299),[this.rules.validatePostTitle(i.title),this.rules.validatePostDesc(i.description),this.rules.validatePostImage(i.image),this.rules.validatePostUrl(i.abUrl)].some((e=>"string"===typeof e)))return console.log("[Excel] Validate error",[i.title,this.rules.validatePostTitle(i.title),i.description,this.rules.validatePostDesc(i.description),i.image,this.rules.validatePostImage(i.image),i.abUrl,this.rules.validatePostUrl(i.abUrl)]),n++;this.posts.push(i)}),Promise.resolve())}this.$q.loading.hide(),this.$q.dialog({title:this.$t("excel_import_succeded"),message:this.$t("excel_import_success_msg",[this.posts.length,t,a,n])})},submit(){return console.log(this.channelId,s["a"],this.posts),this.channelId?this.posts.length?void s["a"].addPosts(this.posts,this.channelId).then(((...e)=>{console.log("add posts",...e)})):this.$q.notify(this.$t("cannot_find_posts")):this.$q.notify(this.$t("cannot_find_channel"))}},watch:{file(e){console.log("file:",e)}},mounted(){console.log("excel mounted"),this.parseXlsx()},activated(){console.log("excel activated")}},fa=ga,ba=(a("5415"),Object(v["a"])(fa,pa,ma,!1,null,"27719a2e",null)),ya=ba.exports;S()(ba,"components",{QCard:q["a"],QCardSection:O["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QCardActions:D["a"]}),S()(ba,"directives",{ClosePopup:K["a"]});const va=e=>("00"+e).slice(-2);var wa={props:{channel:Object,editable:Boolean,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},components:{Excel:ya},data(){const e=De.a.name;return{appName:e,showLoading:!1,showImport:!1,excelFile:null,posts:[],excelProps:[{key:"title",label:this.$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:`${De.a.displayName} URL`,tableKey:"AB-S"},{key:"description",label:this.$t("description"),tableKey:this.$t("description")},{key:"image",label:this.$t("poster"),tableKey:this.$t("poster")},{key:"rate",label:this.$t("film_rate"),tableKey:this.$t("film_rate")}]}},inject:["rootApp"],computed:{sortedPosts(){return[...this.posts].sort(((e,t)=>t.timestamp-e.timestamp))}},methods:{loadPosts(){this.showLoading=!0,console.log("load posts",this.channel.id,this.channel),Object(p["o"])(this.channel.id,!this.editable).then((e=>{this.posts=e,console.log("Got posts",e),this.showLoading=!1}))},edit(e){console.log("edit",e,this.channel),this.$emit("edit",e,this.channel)},add(){this.$emit("add",this.channel)},deletePost(e){this.$emit("remove-post",e.id,this.channel.id)},download(e){this.rootApp.promptDownload(e.abUrl,!0)},stampToString(e){if(isNaN(e))return console.log("stamp is not number",e),"-";const t=new Date(e);return isNaN(t.getFullYear())?(console.log("date is invalid",e,t),"-"):[t.getFullYear(),...[t.getMonth()+1,t.getDate()].map(va)].join("-")+" "+[t.getHours(),t.getMinutes(),t.getSeconds()].map(va).join(":")},importDialogChange(e){e||(this.excelFile=null)}},mounted(){console.log("mounted",this.channel),this.loadPosts()},beforeDestroy(){console.log("destroyed",this.channel),this.channel&&this.channel.id&&Object(p["y"])(this.channel.id)}},ka=wa,Sa=(a("5e95"),a("3927")),Ca=Object(v["a"])(ka,ua,_a,!1,null,"1e291392",null),xa=Ca.exports;S()(Ca,"components",{QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QDialog:I["a"],QInput:E["a"],QFile:Sa["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QColor:la["a"]}),S()(Ca,"directives",{ClosePopup:K["a"]});var $a=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.changeShow}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",id:"file-selector"},on:{change:e.onFileChange}}),a("input",{ref:"folderSelector",staticStyle:{display:"none"},attrs:{type:"file",webkitdirectory:"",id:"folder-selector"},on:{change:e.onFolderChange}}),a("q-card",{staticClass:"card-container"},[a("q-card-section",{staticClass:"card-header non-selectable",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold q-my-none"},[e._v(e._s(e.$t("quick_start")))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("div",{staticClass:"card-content"},[a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"from-file-or-task flex items-start justify-start q-mb-lg"},[e.isCapacitor?e._e():a("div",{staticClass:"from-file-or-folder q-mt-md col-grow"},[a("q-btn",{staticClass:"full-width",class:{"q-mt-sm":!e.isElectron},attrs:{unelevated:"",dense:e.isElectron,color:"primary","text-color":"primary",label:e.$t("select_file")},on:{click:function(){return e.$refs.fileSelector.click()}}}),e.isElectron?a("q-btn",{staticClass:"full-width q-mt-sm",attrs:{unelevated:"",dense:"",color:"primary","text-color":"primary",label:e.$t("select_folder")},on:{click:function(){return e.$refs.folderSelector.click()}}}):e._e()],1),a("q-select",{staticClass:"col-grow q-mt-md from-upload-task",class:e.isCapacitor?"q-ml-none":"q-ml-sm",attrs:{outlined:"",dense:"","bottom-slots":"","use-input":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important",behavior:"menu",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet text-primary cursor-pointer non-selectable",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}]),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("div",{staticClass:"post-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_post_desc"),rules:[e.rules.validatePostDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postDescription,callback:function(t){e.postDescription=t},expression:"postDescription"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.appName+" "+e.$t("download_link"),rules:[e.rules.validatePostUrl]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("ImageWithPreview",{staticClass:"q-mb-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updatePostImageState},model:{value:e.postImage,callback:function(t){e.postImage=t},expression:"postImage"}}),a("q-select",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}})],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"channel-option non-selectable"},[a("label",{staticClass:"text-bold q-mr-sm",staticStyle:{"font-size":"1.125rem"}},[e._v(e._s(e.$t("channel_options")))]),a("q-radio",{attrs:{val:!0,label:e.$t("create_new_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}}),a("q-radio",{attrs:{val:!1,label:e.$t("use_existed_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}})],1),e.createChannel?a("div",{staticClass:"channel-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_channel_desc"),rules:[e.rules.validateChannelDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelDescription,callback:function(t){e.channelDescription=t},expression:"channelDescription"}}),a("ImageWithPreview",{attrs:{label:e.$t("channel_poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateChannelImageState},model:{value:e.channelImage,callback:function(t){e.channelImage=t},expression:"channelImage"}})],1):a("div",{staticClass:"channel-select"},[a("q-select",{staticClass:"full-width",attrs:{outlined:"","bottom-slots":"","use-input":"",dense:"","popup-content-style":"max-height: 320px !important","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"data-cy":"select-direct",behavior:"menu",label:e.$t("select_existed_channel"),options:e.channelOptions},on:{filter:e.filterChannels},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"option",fn:function(t){return[a("q-item",e._g(e._b({},"q-item",t.itemProps,!1),t.itemEvents),[a("q-item-section",[a("q-item-label",[a("span",{staticClass:"label"},[e._v(e._s(t.opt.label))]),a("small",{staticClass:"text-grey q-ml-sm"},[e._v(e._s(t.opt.caption))])])],1)],1)]}}]),model:{value:e.selectedChannel,callback:function(t){e.selectedChannel=t},expression:"selectedChannel"}})],1)])],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"card-footer",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{unelevated:"",label:e.$t("lib_submit"),disable:!e.submitReady,"text-color":"primary",color:"primary"},on:{click:e.submit}})],1)],1),a("q-dialog",{attrs:{value:!!e.progressText,persistent:""}},[a("q-card",{staticClass:"progress-card"},[a("q-card-section",[a("div",{staticClass:"text q-pa-md"},[e._v(e._s(e.progressText))])])],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text",autofocus:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done",color:"primary","text-color":"primary"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},Ta=[],za=(a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("84f6")),Pa=a("a3fc"),Aa=a.n(Pa);function Ia(e){if(!Array.isArray(e)||!e[0])return"";let t=Object(Pa["dirname"])(e[0]);for(let a=1;a1)t=Object(Pa["dirname"])(t);return t}var qa=a("8a63");const Oa=4e9,Ea=e=>new Promise((t=>setTimeout(t,e))),Da=()=>{const e=new Uint8Array(12);return crypto.getRandomValues(e),e.reduce(((e,t)=>{const a=t.toString(16).padStart(2,"0");return e+a}),"")};var ja={components:{ImageWithPreview:Zt["a"]},name:"QuickStart",props:{show:Boolean,preset:{required:!1,default:null}},data(){const e=[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}],t={validateChannelTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||oe["b"].t("validate_channel_image_url"))},validatePostTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||oe["b"].t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return oe["b"].t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?oe["b"].t("validate_post_url"):e.length<2048||oe["b"].t("validate_post_url_length")}},a=De.a.displayName;return{appName:a,rules:t,progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,rateOptions:e,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:e[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""},isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{username(){return s["a"].userData.name?s["a"].userData.name:d["a"].getters.accountUserInfo.nickname?d["a"].getters.accountUserInfo.nickname:s["a"].user.name||"-"},uploadingTasks(){return za["a"].taskList.uploading.map((e=>this.getTaskOption(e)))},channelOptions(){return s["a"].ownedChannels.filter((e=>!!e.id&&e.title.toLowerCase().includes(this.channelFilterInput))).filter((e=>s["a"].channelList.some((t=>e.id===t.id)))).map((e=>{const t=e.title.length>48?e.title.substring(0,44)+"...":e.title;return{label:t,title:e.title,caption:"%"+e.id,id:e.id}}))},submitReady(){if(this.channelImage&&!this.isChannelImageLoaded)return!1;if(this.channelImage&&!0!==this.rules.validateChannelImage(this.channelImage))return!1;if(this.postImage&&!this.isPostImageLoaded)return!1;if(this.postImage&&!0!==this.rules.validatePostImage(this.postImage))return!1;if(!this.rate)return!1;if(this.createChannel){if([this.rules.validateChannelTitle(this.channelTitle),this.rules.validateChannelDesc(this.channelDescription)].some((e=>!0!==e)))return!1}else if(!this.selectedChannel.id)return!1;return!![this.rules.validatePostTitle(this.postTitle),this.rules.validatePostDesc(this.postDescription),this.rules.validatePostUrl(this.abUrl)].every((e=>!0===e))}},methods:{todo(){this.$q.notify("TODO: This is not impl")},changeShow(e){this.$emit("input",e)},clear(){var e;const t={progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:this.rateOptions[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""}};null!==(e=this.channelOptions)&&void 0!==e&&e.length&&(t.createChannel=!1,t.selectedChannel=this.channelOptions[0]);for(const a in t)this.$set(this,a,t[a])},getTaskOption(e){var t;const a=e.postTitle||e.name||e.infoHash,n=a.length>36?a.substring(0,32)+"...":a;let o=Object(M["g"])(e.progress||1);if(e.ready)o="100.00%";else if(e.verifyStatus){const{current:t,total:a}=e.verifyStatus,n=t/a,i=Object(M["g"])(n);isNaN(n)||(o=i)}const i=(null===(t=e.alphabizURI.split("&"))||void 0===t?void 0:t[0])||e.alphabizURI,r=De.a.shortProtocol+"://"+i.split("/").pop();return{label:e.ready?n:n+` (${o})`,title:a,progress:o,value:r,ready:e.ready}},filterOptions(e,t){const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.title.toLowerCase().includes(a)))}))},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title,this.postDescription||(this.postDescription=this.$t("uploaded_by",{title:e.title,name:this.username}))},filterChannels(e,t){const a=e.toLowerCase();t((()=>{this.channelFilterInput=a}))},updatePostImageState(e){this.isPostImageLoaded=1===e},updateChannelImageState(e){this.isChannelImageLoaded=1===e},showProgress(e,...t){console.log(this.$t("progress")+":",e,...t),this.progressText=e},async createNewChannel(){const e=await s["a"].createChannel(this.channelTitle.trim(),this.channelDescription.trim(),this.channelImage.trim());return console.log("Channel created",e),e},async submit(){let e=!1,t=null;const a=async a=>(clearTimeout(t),t=setTimeout((()=>{e=!0,this.$q.dialog({message:this.$t("quick_start_timeout",[a]),ok:this.$t("ok")})}),11e3),new Promise((e=>setTimeout(e,1e4))));let n=this.selectedChannel.id;if(this.createChannel){this.showProgress(this.$t("creating_new_channel")),await Ea(1e3);const o=await Promise.race([this.createNewChannel(),a(this.$t("create_new_channel"))]);if(clearTimeout(t),console.log(o),e||!o)return this.showProgress("");this.showProgress(this.$t("created_new_channel"),o),await Ea(1e3),n=o.id}this.showProgress(this.$t("creating_new_post")),await Ea(1e3);const o=await Promise.race([s["a"].createPost({title:this.postTitle.trim(),description:this.postDescription.trim(),image:this.postImage.trim(),rate:this.rate.value,abUrl:this.abUrl.trim()},n),a(this.$t("create_new_post"))]);if(e||!o)return this.showProgress("");clearTimeout(t),this.showProgress(this.$t("created_new_post"),o),await Ea(2e3),this.showProgress(""),await Ea(500),this.$emit("input",!1),this.$q.dialog({message:this.$t("success"),ok:this.$t("ok")})},async askForConfirm(e,t){return new Promise((a=>{this.$q.dialog({title:e,message:t,ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>a(!0))).onCancel((()=>a(!1)))}))},calcFileSize(e){return e.reduce(((e,t)=>e+t.size),0)},async onFileChange(e){var t,n;const o=null===e||void 0===e||null===(t=e.target)||void 0===t||null===(n=t.files)||void 0===n?void 0:n[0];if(o){if(console.log("file selected",o),e.target.value=null,o.size>Oa){const e=await this.askForConfirm(this.$t("file_too_large"),this.$t("file_too_large_msg",{size:Object(M["a"])(o.size)}));if(!e)return}if(Object(X["isElectron"])())this.createTask(o.path);else{const e=a("c620").wtClient;if(e.torrents.length){const t=await this.askForConfirm(this.$t("remove_old_task"),this.$t("remove_old_task_desc"));if(!t)return;e.torrents[0].destroy(),e.torrents.splice(0)}this.createTask(o)}}},async onFolderChange(e){var t,a,n;console.log("onFolderChange",e),(null===e||void 0===e||null===(t=e.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a.length)>100&&(this.showProgress(this.$t("resolving_folder_files")),await Ea(100));const o=[...null===e||void 0===e||null===(n=e.target)||void 0===n?void 0:n.files];if(!o)return;console.log("folder selected",o),e.target.value=null;const i=this.calcFileSize(o),r=Ia(o.map((e=>e.path)));if(this.showProgress(""),await Ea(50),i>Oa){const e=await this.askForConfirm(this.$t("folder_too_large"),this.$t("folder_too_large_msg",{size:Object(M["a"])(i)}));if(!e)return}console.log("TOTAL:",i),console.log("Create task with folder",r),this.createTask(r)},async createTask(e){const t=Da();this.showProgress(this.$t("creating_new_task")),Object(X["isElectron"])()?Object(qa["g"])(e,t):Z["a"].emit("wt-add",e,{token:t});const a=()=>{const e=setInterval((()=>{const a=za["a"].taskList.uploading.find((e=>e.token===t)),n=()=>{this.showProgress(""),this.selectTask(this.getTaskOption(a))};if(a.ready&&a.alphabizURI)return clearInterval(e),void n();if(!a.verifyStatus)return this.showProgress(this.$t("loading")+"... (0%)");const o=Object(M["g"])(a.verifyStatus.current/a.verifyStatus.total);this.showProgress(this.$t("loading")+`... (${o})`),a.verifyStatus.current>=a.verifyStatus.total&&a.alphabizURI&&(clearInterval(e),setTimeout(n,1e3))}),1e3)},n=Date.now(),o=setInterval((()=>{const e=za["a"].taskList.uploading.find((e=>e.token===t));if(e)clearInterval(o),a();else if(Date.now()-n>3e3)return clearInterval(o),this.showProgress(""),this.askForConfirm(this.$t("cannot_create_task"),this.$t("cannot_create_task_msg"))}),500)},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});const a=e.split("&").find((e=>e.startsWith("dn="))),n=a?decodeURIComponent(a.substring(3)):this.postTitle;if(!n)return this.$q.dialog({title:this.$t("cannot_get_task_name"),ok:this.$t("ok")});this.selectTask({value:t,label:n,title:n})}},watch:{show(e){e&&this.$nextTick((()=>{this.clear(),this.preset&&this.selectTask(this.getTaskOption(this.preset))}))}}},Na=ja,La=(a("50de"),a("2b77")),Ua=a("79e0"),Ra=Object(v["a"])(Na,$a,Ta,!1,null,"7e12c2f2",null),Ma=Ra.exports;S()(Ra,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QBtn:A["a"],QSelect:ue["a"],QInput:E["a"],QRadio:La["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QCardActions:D["a"]}),S()(Ra,"directives",{ClosePopup:K["a"]});var Fa={name:"EditMain",components:{ChannelCard:pt,ChannelEdit:na,PostEdit:da,PostList:xa,BackToTop:nt,QuickStart:Ma},mixins:[vt],data(){return{current:null,showEdit:!1,edittingChannel:null,mode:"edit",currentId:"",listChannelId:"",edittingPost:null,edittingPostId:"",edittingPostChannelId:"",showPostList:!1,showPostEdit:!1,showBackToTop:!1,showQuickStart:!1,postMode:"edit",lib:s["a"]}},computed:{modeTitle(){return"add"===this.mode?this.$t("add_channel"):this.$t("channel_setting")},postModeTitle(){return"add"===this.postMode?this.$t("add_post"):this.$t("edit_post")},ownedChannels(){return this.lib.ownedChannels.filter((e=>s["a"].channelList.some((t=>t.id===e.id))))},filteredChannels(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.ownedChannels.filter(n)},ownedChannelInstances(){return this.lib.ownedChannelInstances},editTitle(){return"edit"===this.mode?this.$t("edit_channel"):this.$t("add_channel")},editPostTitle(){return"edit"===this.postMode?this.$t("edit_post"):this.$t("add_post")},listChannel(){const e=s["a"].ownedChannels.find((e=>e.id===this.listChannelId));return e||{}}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},edit(e){const t=this.ownedChannels.find((t=>t.id===e));t&&(this.edittingChannel=t,this.currentId=e,this.mode="edit",this.showEdit=!0)},add(){this.edittingChannel={title:"",description:"",image:""},this.mode="add",this.showEdit=!0},validateChannelTitle(e){return e.length>0&&e.length<100||this.$t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||this.$t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||this.$t("validate_channel_image_url"))},validateChannel(e){return[this.validateChannelTitle(e.title),this.validateChannelDesc(e.description),this.validateChannelImage(e.image)]},editChannel(e){console.log(e,this.currentId);const t=this.validateChannel(e);t.every((e=>!0===e))?(s["a"].editChannel(this.currentId,e).catch((e=>{console.error(e),this.$q.notify(this.$t("Network Error"))})),this.showEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addChannel(e){console.log(e);const t=this.validateChannel(e);if(t.every((e=>!0===e))){const t=this.lib.createChannel(e.title,e.description,e.image,e.hidden);console.log(t),this.showEdit=!1,t.then(console.log)}else this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submit(e){return"edit"===this.mode?this.editChannel(e):this.addChannel(e)},showPostEditor(e,t){console.log("show",e,t),this.postMode="edit",this.edittingPostId=e.id,this.edittingPostChannelId=t.id,this.edittingPost={...e},this.showPostEdit=!0},showPostAdd(){this.postMode="add",this.edittingPost={title:"",description:"",image:"",abUrl:""},this.showPostEdit=!0},validatePostTitle(e){return e.length>0&&e.length<100||this.$t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||this.$t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||this.$t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return this.$t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?this.$t("validate_post_url"):e.length<2048||this.$t("validate_post_url_length")},validatePost(e){return e.rate?[this.validatePostTitle(e.title),this.validatePostDesc(e.description),this.validateChannelImage(e.image),this.validatePostUrl(e.abUrl)]:[this.$t("select_a_rate")]},editPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("edit",e,this.edittingPostChannelId,this.edittingPostId),s["a"].editPost(this.edittingPostChannelId,this.edittingPostId,e),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("new post to add",e),s["a"].createPost(e,this.edittingPostChannelId),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submitPost(e){return"edit"===this.postMode?this.editPost(e):this.addPost(e)},removePost(e,t){console.log("remove post",e,t),this.$q.dialog({title:this.$t("remove_post"),message:this.$t("remove_post_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removePost(e,t)}))},removeChannel(e){console.log("remove channel by id:",e),this.$q.dialog({title:this.$t("remove_channel"),message:this.$t("remove_channel_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removeChannel(e)}))},showChannelDetail(e){this.listChannelId=e,this.edittingPostChannelId=e,this.showPostList=!0},showPreview(e){const t=s["a"].channelList.find((t=>t.id===e));if(!t)return;const a=["id","title","soul"].map((e=>{const a=t[e];return a?encodeURIComponent(e)+"="+encodeURIComponent(a):""})).filter((e=>e)).join("&"),n=`/library/channel?${a}&fromEdit=1&preview=1`;this.$root.$emit("navigate-to",n),this.$router.push(n)},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},mounted(){this.setSearch()},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/edit")},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Ba=Fa,Wa=(a("61dc"),Object(v["a"])(Ba,Gt,Kt,!1,null,"755ddde0",null)),Ha=Wa.exports;S()(Wa,"components",{QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QColor:la["a"]}),S()(Wa,"directives",{Intersection:Ge["a"]});var Va=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"channel-page"},[a("q-virtual-scroll",{ref:"vscroll",staticClass:"posts",staticStyle:{height:"calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))",padding:"0"},attrs:{separator:"",items:e.filteredPosts,"virtual-scroll-slice-size":10,"virtual-scroll-item-size":385,"virtual-scroll-sticky-size-end":16,"virtual-scroll-sticky-size-start":560},on:{"virtual-scroll":e.onScroll},scopedSlots:e._u([{key:"before",fn:function(){return[e.isPreview?a("q-card",{staticClass:"channel-preview-hint",attrs:{id:"channel-preview-hint"}},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("preview_mode")))]),a("div",{staticClass:"text-subtitle2"},[e._v(e._s(e.$t("preview_mode_desc")))])])],1):e._e(),a("div",{staticClass:"full-width flex justify-center",class:e.screen$xs?["q-pt-sm"]:["q-pt-md"]},[e.channel&&e.channel.id?a("ChannelHeader",{staticClass:"col-grow",class:[e.screen$xs?"q-ml-sm q-mr-xs":"q-mx-md"],attrs:{channel:e.channel},on:{scrollTop:e.scrollTop,intersect:e.intersect}}):e._e()],1)]},proxy:!0},{key:"default",fn:function(t){var n=t.item,o=t.index;return[a("PostCard",{key:o,attrs:{hideChannel:"",post:n},on:{preview:e.preview}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"flex justify-center items-center",class:e.filteredPosts.length?["q-py-xl"]:["full-height"],style:{marginTop:e.filteredPosts.length?"-16px":"0"}},[e.filteredPosts.length?[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])]:[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])]],2)]},proxy:!0}])}),a("BackToTop",{attrs:{show:e.scrollIndex>0&&!e.isIntersecting},on:{click:e.scrollTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPost}})],1)},Qa=[],Ga=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-header relative-position overflow-hidden",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.channel.image,width:"100%"},on:{error:e.onImageError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-pr-none q-mb-md flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black",staticStyle:{transform:"translateY(-50%)"},attrs:{size:"120px"}},[e.isLoadChannelImage?a("img",{attrs:{src:e.channel.image},on:{error:e.onChannelImageError,load:e.onChannelImageLoaded}}):e._e(),e.isLoadChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"65px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"},[a("q-badge",{staticClass:"block q-py-xs cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:function(t){e.showFollowers=!0}}},[a("div",{staticClass:"header-channel-info"},[a("span",{staticClass:"text-weight-bolder"},[e._v(e._s(e.followerCount))]),e._v(" "),a("span",[e._v(e._s(e.$t("followers")))])])]),a("q-space"),a("FollowButton",{attrs:{id:e.channel.id}})],1)],1),a("q-card-section",{staticClass:"q-pt-none column items-stretch",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis col-shrink",attrs:{title:e.channel.title}},[e._v(e._s(e.channel.title))]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.channel.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("channel")+" ID: "))]),a("span",[e._v("%"+e._s(e.channel.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownChannel}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"creator-title cursor-pointer ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"},on:{click:e.gotoCreator}},[e._v("\n "+e._s(e.$t("creator"))+": "),a("span",[e._v(e._s(e.creator.name))])]),a("q-space"),e.creator.id?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.creator.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("creator")+" ID: "))]),a("span",[e._v("@"+e._s(e.creator.id))])])],1):e._e(),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownCreator}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_user")))])],1):e._e()],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"header-description"},[e._v("\n "+e._s(e.channel.description)+"\n ")]),a("div",{staticClass:"header-badges q-mt-sm non-selectable",staticStyle:{height:"min-content"}},[a("div",{staticClass:"overflow-hidden",staticStyle:{margin:"-4px"}},[e.channel.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general",label:e.$t("private_channel")}}):e._e(),e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("blocked")}}):e._e(),e.isBlockedCreator?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("creator_blocked")}}):e._e()],1)])]),a("div",{staticClass:"absolute-top-right q-ma-sm flex"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.$emit("intersect",t)},expression:"e => $emit('intersect', e)"}],attrs:{unelevated:"",round:"",icon:"share","text-color":"white"},on:{click:e.copyShareLink}},[a("q-tooltip",[e._v(e._s(e.$t("share")))])],1)],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showFollowers,callback:function(t){e.showFollowers=t},expression:"showFollowers"}},[a("q-card",{staticClass:"column overflow-hidden no-wrap",style:{minWidth:e.screen$xs?void 0:"560px",maxHeight:e.screen$xs?void 0:"calc(100vh - 120px)"}},[a("q-card-section",{staticClass:"row items-center q-py-sm"},[a("div",{staticClass:"text-h6 follower-title"},[e._v(e._s(e.$t("follower"))+" - "+e._s(e.channel.title))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-separator"),a("q-card-section",{staticClass:"row items-center q-pa-none",staticStyle:{"min-width":"400px","flex-grow":"1","flex-shrink":"1","overflow-y":"auto"}},[a("q-markup-table",{staticStyle:{width:"100%"},attrs:{dense:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("user")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("follow_time")))])])]),a("tbody",e._l(e.followers,(function(t){return a("tr",{key:t.id},[a("td",{staticClass:"text-left"},[e._v(e._s(t.user))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))])])})),0)])],1)],1)],1)],1)},Ka=[],Ya=(a("7a76"),{components:{FollowButton:Oe["a"]},name:"ChannelHeader",props:{channel:{type:Object,required:!0}},data(){return{creator:{name:this.$t("loading"),id:"",avatar:"",description:""},followBtnHovered:!1,pending:!1,showFollowers:!1,offFollower:null,isLoadChannelImage:!0,followers:[],lib:s["a"]}},computed:{currentCreator(){return s["a"].currentCreator},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&s["a"].userData.blockChannels.includes(this.channel.id)},isBlockedCreator(){return!(!s["a"].userData||!s["a"].userData.blockUsers)&&s["a"].userData.blockUsers.includes(this.channel.creator)},followable(){return!s["a"].followingChannels.find((e=>e.id===this.channel.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHovered?this.$t("unfollow"):this.$t("following")},followerCount(){let e=this.followers.length;return e<1e3?e.toString():(e=Math.floor(e/1e3),e<1e3?e.toString()+"K+":(e=Math.floor(e/1e3),e<1e3?e.toString()+"M+":(e=Math.floor(e/1e3),e.toString()+"B+")))}},methods:{loadCreator(){this.channel.creator.id!==this.creator.id&&(this.creator={name:this.$t("loading"),id:"",avatar:"",description:""}),s["a"].getUserProfile(this.channel.creator).then((e=>{this.creator=e}))},loadFollowers(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on(((e,t,a,n)=>{this.offFollower=()=>n.off();const o=Object.values(e);for(let i=0;ie.id===i)),r={id:i,user:a,timestamp:n,time:new Date(n).toLocaleString()};-1!==o?this.followers.splice(o,1,r):this.followers.push(r)}}))},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},async copyShareLink(){const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`,t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("share_url_copied"))}))},async follow(){if(this.pending)return;const e=this.channel.id;if(!e)return;if(!s["a"].allChannelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:!0});const t=this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t&&s["a"].followChannel(e))}),2e3),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},gotoCreator(){if(console.log("goto creator",this.currentCreator),!this.currentCreator||!this.currentCreator.name)return this.$q.dialog({title:this.$t("loading_creator"),message:this.$t("wait_for_creator_loaded"),ok:this.$t("ok")});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(this.currentCreator.name)}`;this.$router.push(e).then((t=>{t instanceof Error||this.$root.$emit("navigate-to",e)}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{console.log(a),["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(){if(!this.channel.id)return this.$q.notify("Cannot get channel id");this.takedown("channel",this.channel.id)},onImageError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onChannelImageError(){this.isLoadChannelImage=!1},onChannelImageLoaded(e){e.target.src===this.channel.image&&(this.isLoadChannelImage=!0)}},mounted(){this.loadCreator(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")}))},activated(){this.loadCreator(),"function"===typeof this.offFollower&&(this.offFollower(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")})))},beforeDestroy(){"function"===typeof this.offFollower&&this.offFollower()},watch:{followable(){this.pending=!1},currentCreator(){this.loadCreator()},channel(e,t){e&&e.image!==t.image&&(this.isLoadChannelImage=!0)}}}),Ja=Ya,Za=(a("ec6d"),Object(v["a"])(Ja,Ga,Ka,!1,null,"1d2daf92",null)),Xa=Za.exports;S()(Za,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QBadge:_e["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QColor:la["a"]}),S()(Za,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var en={name:"LibraryChannel",components:{ChannelHeader:Xa,PostCard:Ye,Loading:x,BackToTop:nt},data(){return{channel:{id:""},posts:[],showPreview:!1,loadingPost:!1,previewImage:"",channelFollowers:[],currentId:"",scrollIndex:0,isIntersecting:!1,isChecking:!1,isPreview:!1,showLoading:!1,lib:s["a"]}},computed:{isDev(){return d["a"].getters.isDevMode},isFollowed(){return s["a"].followingChannels.some((e=>e.id===this.channel.id))},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&(s["a"].userData.blockChannels.includes(this.channel.id)||s["a"].userData.blockUsers.includes(this.channel.creator))},channelPosts(){const e=Object.assign({},this.channel);return this.posts.map((t=>({...t,rate:t.rate||"G",channel:e}))).sort(((e,t)=>t.timestamp-e.timestamp))},filteredPosts(){const e=s["a"].search.text.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.channelPosts.filter((e=>!!this.isPreview||!s["a"].isBannedPost(e)&&s["a"].isValidRate(e.rate))).filter(n)}},methods:{intersect(e){this.isIntersecting=e.isIntersecting},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onScroll(e){this.scrollIndex=e.index},scrollTop(){this.$refs.vscroll.scrollTo(0,"start")},loadChannelPosts(){console.log(this.$route.query);const e=this.lib.allChannelList.find((e=>e.id===this.$route.query.id||e.soul===this.$route.query.soul));if(console.log("load channel",e),e){var t,a;if(this.channel=e,this.loadingPost=!0,this.channel.creator||this.channel.soul)s["a"].setCreator(this.channel.creator||(null===(t=this.channel.soul)||void 0===t||null===(a=t.split("/"))||void 0===a?void 0:a[0]));this.posts=[],s["a"].getChannelPosts(e.id,!0).then((e=>{console.log("Channel posts",e),this.posts=e.sort(((e,t)=>{const a=t.timestamp-e.timestamp;return 0===a?e.title.match(/^\d+/)&&t.title.match(/^\d+/)?parseInt(t.title)-parseInt(e.title):t.title.localeCompare(e.title):a}));const t=Date.now(),a=setInterval((()=>{(this.posts.length||Date.now()-t>5e3)&&(this.loadingPost=!1,clearInterval(a))}),1e3)}))}else{if(this.posts=[],console.log(this.$route.path),"library/channel"!==this.$route.path)return;this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),persistent:!0,ok:this.$t("lib_index")}).onOk((()=>{this.currentId="",this.$root.$emit("navigate-to"),this.$router.push("/library")}))}},loadChannelFollowers(){const e=[];p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on((t=>{if(!t)return;const a=Object.values(t);for(let n=0;ne.id===n));-1!==r?e.splice(r,1,{id:n,user:i,timestamp:o}):e.push({id:n,user:i,timestamp:o})}})),this.channelFollowers=e.sort(((e,t)=>t.timestamp-e.timestamp))},async copyShare(){const e=`ab-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`;if(console.log("share",e),Object(X["isElectron"])()){const t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))}},onFollow(){const e=this.channel.id;console.log("follow",e),s["a"].followingChannels.map((e=>e.id)).includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},preview(e){this.previewImage=e,this.showPreview=!0},gotoCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.name)return this.$q.dialog({title:"Loading creator",message:"Please wait for creator info loaded",ok:!0});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(s["a"].currentCreator.name)}`;this.$root.$emit("navigate-to",e),this.$router.push(e)},checkAndReload(){console.log("check and reload"),this.isChecking||(this.isChecking=!0,setTimeout((()=>{this.isChecking=!1}),1e3),this.currentId===this.$route.query.id&&this.channelPosts.length||(console.log("load channel posts"),p["v"].get(`${p["e"]}/channels:follower/${this.currentId}`).off(),this.channel={},this.posts=[],this.currentId=this.$route.query.id,this.loadChannelPosts(),this.loadChannelFollowers()),this.$route.query.preview?this.isPreview=!0:this.isPreview=!1)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"}])}},mounted(){this.setSearch(),this.checkAndReload()},watch:{"$route.query.id"(e){e&&(console.log("query id check"),this.checkAndReload())},searchText(e){e&&this.active&&this.scrollTop()}},beforeDestroy(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).off()}},tn=en,an=(a("b16a"),Object(v["a"])(tn,Va,Qa,!1,null,"fb451ef2",null)),nn=an.exports;S()(an,"components",{QVirtualScroll:Qe["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QDialog:I["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(an,"directives",{ClosePopup:K["a"]});var on=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.lib.currentCreator?a("div",{ref:"scrollArea",staticClass:"library-creator q-pa-md q-pb-lg"},[a("q-card",{staticClass:"creator-info relative-position overflow-hidden q-mb-sm",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.48)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.profile.avatar,width:"100%"},on:{error:e.onAvatarError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-mb-md q-pr-none flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black creator-avatar",attrs:{size:"120px"}},[e.isLoadCreatorAvatar?a("img",{attrs:{src:e.profile.avatar},on:{error:e.onCreatorAvatarError,load:e.onCreatorAvatarLoaded}}):e._e(),e.isLoadCreatorAvatar?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"account_circle",size:"90px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"})],1),a("q-card-section",{staticClass:"q-pt-none column items-start overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis",staticStyle:{"max-width":"100%"},attrs:{title:e.profile.name}},[e._v("\n "+e._s(e.profile.name)+"\n ")]),e.profile.id?a("div",{staticClass:"flex items-center no-wrap overflow-hidden",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"creator-id ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"}},[a("span",[e._v("@"+e._s(e.profile.id))])]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyCreatorId}},[a("q-tooltip",[a("span",[e._v(e._s("ID: "))]),a("span",[e._v("@"+e._s(e.profile.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"block",size:"xs",dense:""},on:{click:e.takedownCreator}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("takedown_user")))])])],1):e._e()],1):e._e()]),e.profile.description?a("q-card-section",{staticClass:"q-pt-none creator-section overflow-hidden"},[a("div",{staticClass:"creator-description q-mb-sm scroll-y"},[e._v(e._s(e.profile.description))])]):e._e()],1),a("div",{staticClass:"creator-flex-layout flex justify-center"},[e.filteredChannels.length?[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followable:!e.followedIds.includes(t.id)},on:{takedown:e.takedownChannel,detail:e.showChannelDetail,follow:e.onFollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")]:a("div",{staticClass:"empty-placeholder full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),a("span",{staticClass:"empty-hint q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}})],1):e._e()},rn=[],sn={name:"LibraryCreator",components:{ChannelCard:pt,BackToTop:nt},mixins:[vt],data(){return{profile:{name:this.$t("loading"),id:"",avatar:"",description:""},showBackToTop:!1,isLoadCreatorAvatar:!0,lib:s["a"]}},computed:{filteredChannels(){const e=this.searchText.toLowerCase(),t=this.lib.search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=n=>{var o;const i=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&i===e||!(n.hidden&&!s["a"].followingChannels.find((e=>e.id===n.id)))&&i.includes(e)};return this.lib.currentCreator.channels.filter((e=>s["a"].channelList.some((t=>t.id===e.id)))).filter(n)},followedIds(){return s["a"].followingChannels.map((e=>e.id))}},watch:{profile(e,t){if(e&&e.avatar!==t.avatar&&(this.isLoadCreatorAvatar=!0),e&&e.name){const t=`/library/creator?fromChannel=1&name=${encodeURIComponent(e.name)}`;this.$root.$emit("update-path",t)}},searchText(e){e&&this.active&&this.scrollTop()}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},loadProfile(){this.profile={name:this.$t("loading"),id:"",avatar:"",description:""},s["a"].getUserProfile(s["a"].currentCreator.id).then((e=>{this.profile=e}))},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onCreatorAvatarError(){this.isLoadCreatorAvatar=!1},onCreatorAvatarLoaded(e){e.target.src===this.profile.avatar&&(this.isLoadCreatorAvatar=!0)},showChannelDetail(e){const t=Object(_["c"])(e);console.log(t),this.$root.$emit("navigate-to",t),this.$router.push(t)},copyCreatorId(){Object(lt["b"])(this.profile.id).then((()=>{this.$q.notify(this.$t("copied"))}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(e){if(!e||20!==e.length)return this.$q.notify("Cannot parse channel id");this.takedown("channel",e)},onFollow(e){console.log("follow",e),this.followedIds.includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},setSearch(){this.lib.setSearchOption([{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&(e.setSearch(),s["a"].setCreator(s["a"].currentCreator.id))}))},mounted(){this.setSearch()},activated(){this.loadProfile()}},ln=sn,cn=(a("878c"),Object(v["a"])(ln,on,rn,!1,null,"5975beaa",null)),dn=cn.exports;S()(cn,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QColor:la["a"]}),S()(cn,"directives",{Intersection:Ge["a"]});var un=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"take-down"},[a("div",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$t("takedown_management"))+"\n "),a("q-icon",{attrs:{name:"help"}},[a("q-tooltip",e._l(e.$t("about_takedown_mode").split("\n"),(function(t){return a("div",{key:t,staticStyle:{"font-size":"14px"}},[e._v(e._s(t))])})),0)],1)],1),a("div",{staticClass:"take-down-lists"},e._l(e.takedownList,(function(t){var n=t.type,o=t.label,i=t.list,r=t.model;return a("q-table",{key:n,staticStyle:{"max-height":"400px"},attrs:{flat:"",dense:"",title:o,data:i,columns:e.columns,"row-key":"name","virtual-scroll":"","rows-per-page-options":[0]},scopedSlots:e._u([{key:"top-row",fn:function(){return[a("q-tr",{staticClass:"takedown-row add"},[a("q-td",{staticClass:"takedown-id"},[a("q-input",{attrs:{placeholder:e.$t(n)+" ID",dense:""},model:{value:r.id,callback:function(t){e.$set(r,"id",t)},expression:"model.id"}})],1),a("q-td",{staticClass:"takedown-reason"},[a("q-select",{attrs:{options:e.reasonOptions,label:e.$t("takedown_reason"),dense:""},model:{value:r.reason,callback:function(t){e.$set(r,"reason",t)},expression:"model.reason"}})],1),a("q-td",[e._v(e._s(e.$t(e.mode)))]),a("q-td",{staticClass:"takedown-admin"},[e._v("("+e._s(e.$t("you"))+")")]),a("q-td",{staticClass:"text-center"},[a("q-btn",{attrs:{flat:"",dense:"",color:"primary",icon:"add"},on:{click:function(t){return e.addTakedown(n)}}})],1)],1)]},proxy:!0},{key:"body",fn:function(t){var o=t.row;return[a("q-tr",{key:o.id,staticClass:"takedown-row"},[a("q-td",{key:"id",staticClass:"takedown-id",attrs:{title:o.id}},[a("q-btn",{staticClass:"q-mr-sm",attrs:{flat:"",dense:"",color:"general",icon:"content_copy",size:"xs"},on:{click:function(t){return e.copy(o.id)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy"))+" ID")])],1),a("span",[e._v(e._s(o.id))])],1),a("q-td",{key:"reason",staticClass:"takedown-reason"},[e._v(e._s(o.reasonLabel))]),a("q-td",{key:"by",staticClass:"takedown-by"},[e._v(e._s(e.$t(o.by)))]),a("q-td",{key:"admins",staticClass:"takedown-admins"},[o.admins?a("div",[a("span",{staticClass:"voted-count",class:{"text-primary":o.selfVoted}},[a("span",[e._v(e._s(o.admins.length)+" voted")]),o.selfVoted?a("q-tooltip",[e._v("You have voted")]):e._e()],1),"committee"===o.by?a("span",{staticClass:"total-count",class:{"text-primary":o.admins.length>=o.minCount}},[e._v("\n / "+e._s(o.minCount)+" needs to takedown\n ")]):e._e()]):a("div",[e._v("-")])]),a("q-td",{key:"operations",staticClass:"takedown-operations text-center"},[a("q-btn",{attrs:{flat:"",dense:"",size:"xs",color:o.selfVoted?"negative":"positive",icon:o.selfVoted?"close":"add"},on:{click:function(t){return e.changeVote(n,o)}}}),"preset"===o.by?a("q-tooltip",[e._v(e._s(e.$t("cannot_edit_preset")))]):o.selfVoted?a("q-tooltip",[e._v(e._s(e.$t("remove_vote")))]):a("q-tooltip",[e._v(e._s(e.$t("add_vote")))])],1)],1)]}}],null,!0)})})),1)])},_n=[],pn=a("41c7"),mn=a.n(pn);const hn=["Serious Violation","Copyright Disputes","Adults Only"];var gn={name:"TakeDown",data(){return{mode:mn.a.mode,columns:[{name:"id",label:"ID",field:"id",align:"left",sortable:!0},{name:"reason",label:this.$t("takedown_reason"),field:"reason",align:"left",sortable:!0},{name:"by",label:this.$t("takedown_mode"),field:"by",align:"left",sortable:!0},{name:"admins",label:this.$t("admins"),field:"admins",align:"left",sortable:!1},{name:"operations",label:this.$t("operations"),field:"operations",align:"center",sortable:!1}],reasonOptions:[{label:this.$t("serious_violation"),value:"Serious Violation"},{label:this.$t("copyright_disputes"),value:"Copyright Disputes"},{label:this.$t("adults_only"),value:"Adults Only"}],user:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},channel:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},post:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},lib:s["a"]}},computed:{uid(){return s["a"].user&&s["a"].user.is?s["a"].user.is.pub:""},takedownUsers(){const e=s["a"].takedownList.users,t=s["a"].takedownExtraList.users,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownChannels(){const e=s["a"].takedownList.channels,t=s["a"].takedownExtraList.channels,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownPosts(){const e=s["a"].takedownList.posts,t=s["a"].takedownExtraList.posts,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownList(){return[{type:"user",label:this.$t("users"),model:this.user,list:this.takedownUsers},{type:"channel",label:this.$t("channels"),model:this.channel,list:this.takedownChannels},{type:"post",label:this.$t("posts"),model:this.post,list:this.takedownPosts}]}},methods:{takedownUser(){return 87!==this.user.id.length||this.user.id.split(".").some((e=>43!==e.length))?this.$q.notify(this.$t("takedown_invalid_user_id")):hn.includes(this.user.reason.value)?(console.log("takedown user",this.user.id,this.user.reason.value),void s["a"].takedown("user",this.user.id,this.user.reason.value).then(console.log)):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownChannel(){const e=this.channel.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_channel_id")):hn.includes(this.channel.reason.value)?void s["a"].takedown("channel",e,this.channel.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownPost(){const e=this.post.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_post_id")):hn.includes(this.post.reason.value)?void s["a"].takedown("post",e,this.post.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},untakedownUser(e){s["a"].takedown("user",e,"None")},addTakedown(e){return console.log("add",e),"user"===e?this.takedownUser():"channel"===e?this.takedownChannel():"post"===e?this.takedownPost():void 0},removeTakedown(e,t){return console.log("untakedown",e,t),"user"===e?this.untakedownUser(t):"channel"===e?s["a"].takedown("channel",t,"None"):"post"===e?s["a"].takedown("post",t,"None"):void 0},changeVote(e,t){return"preset"===t.by?console.log(t):t.selfVoted?this.removeTakedown(e,t.id):void s["a"].takedown(e,t.id,t.reason).then(console.log)},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied"))}))}},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/takedown"),this.lib.setSearchOption([])}},fn=gn,bn=(a("a44b"),a("85c4")),yn=a("236f"),vn=Object(v["a"])(fn,un,_n,!1,null,"888fffa4",null),wn=vn.exports;S()(vn,"components",{QIcon:G["a"],QTooltip:V["a"],QTable:Tt["a"],QTr:bn["a"],QTd:yn["a"],QInput:E["a"],QSelect:ue["a"],QBtn:A["a"],QColor:la["a"]});var kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-index"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n},on:{preview:function(t){return e.showPreview=t},follow:e.unfollow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.column,o=t.mod;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.fetchNext(t,Math.max(Math.ceil(10/n),2)*n+(o?n-o:0))},expression:"(entry) => fetchNext(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},["loaded"!==e.loaderState||e.searchFilteredPosts.length?"loaded"===e.loaderState?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):e.searchFilteredPosts.length?a("div",{staticClass:"column items-center"},[a("div",{staticClass:"flex"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]):[a("div",[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1)],1)},Sn=[],Cn=a("2e22"),xn={name:"LibraryIndex",components:{PostCard:Ye,SearchChannel:bt,BackToTop:nt},mixins:[Cn["c"],Cn["a"],Cn["b"],vt,wt("index"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,scrollIndex:0,lib:s["a"]}},computed:{followingChannels(){var e,t;const a=(null===(e=s["a"].userData)||void 0===e?void 0:e.blockChannels)||[],n=(null===(t=s["a"].userData)||void 0===t?void 0:t.blockUsers)||[];return s["a"].followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(!a.includes(e.id)&&!n.includes(e.creator))))},filteredPosts(){return Object.values(this.loadedPosts).filter((e=>e.title&&e.timestamp)).filter((e=>!s["a"].isBannedPost(e))).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){console.log("search index");const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"channelID":return e.channel.id;case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.filteredPosts.filter(n)}},methods:{async fetchNext({isIntersecting:e},t=10){e&&await this.loader$loadPostsNext({count:t})},itemsFn(e=0,t=5){return this.searchFilteredPosts.slice(e,e+t)},async unfollow(e){const t=this.$alphabiz.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}),a=await t.promise("ok");if(!a)return;const n=await s["a"].unfollowChannel(e);console.log("unfollowed",e,n)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)}},async activated(){this.active=!0;const e=()=>{this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])};this.$root.$emit("navigate-to"),e()},deactivated(){this.active=!1},watch:{"searchFilteredPosts.length"(e,t){t||!e||this.active||this.$router.push("/library")},searchText(e){e&&this.active&&this.handleBackToTop()}}},$n=xn,Tn=(a("1b99"),Object(v["a"])($n,kn,Sn,!1,null,null,null)),zn=Tn.exports;S()(Tn,"components",{QIcon:G["a"],QSpinner:w["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Tn,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Pn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar"},[e._l([{tabName:"downloading",label:"start_all",color:"primary",disable:e.isAllStarted,handleClick:e.downloadAll},{tabName:"downloading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.requestPauseAllDownloading},{tabName:"downloading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllDownloading},{tabName:"uploading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.pauseAllUploading},{tabName:"uploading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllUploading},{tabName:"downloaded",label:"clear_history",color:"general",disable:0===e.currentList.length,handleClick:e.clearAll}],(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,style:"negative"===t.color?{marginLeft:"16px"}:{},attrs:{color:t.color,icon:t.icon,label:e.$t(t.label),value:t.disable,dense:e.screen$xs},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),a("q-space"),a("div",{staticClass:"right-buttons"},[a("q-space"),a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!(e.showSearchText||e.searchText.length),expression:"!(showSearchText || searchText.length)"}],attrs:{"button-type":"icon",icon:"search"},on:{click:function(t){return e.toggleSearchText(!0)}}}),a("q-input",{directives:[{name:"show",rawName:"v-show",value:e.showSearchText||e.searchText.length,expression:"showSearchText || searchText.length"}],ref:"searchInput",attrs:{outlined:"",dense:"",type:"text",debounce:"300"},on:{blur:function(t){return e.toggleSearchText(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer text-red",attrs:{name:"close"},on:{click:e.clearSearch}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}}),a("alphabiz-button",{attrs:{"button-type":"icon",icon:"list"===e.listMode?"view_list":"view_agenda"},on:{click:e.changeListMode}},[a("q-tooltip",[e._v(e._s(e.$t("toggle_list_mode")))])],1),a("SortMenu",{on:{changeSortSequence:e.changeSortSequence,changeSortOption:e.changeSortOption}})],1)],2),"downloading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("q-linear-progress",{staticStyle:{"flex-shrink":"1","max-width":"calc(100% - 110px)"},attrs:{value:e.downloadingProgress.value,rounded:"",size:"20px"}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.downloadingProgress.label))])])]),a("div",{staticClass:"download-speed"},[e._v(e._s(e.totalDownloadSpeed))])],1):e._e(),"uploading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("div",[e._v(e._s(e.totalIncomeInfo))]),a("q-space"),a("div",[e._v(e._s(e.$t("total_upload_speed"))+": "+e._s(e.totalUploadSpeed))])],1):e._e()],1),a("q-tab-panels",{staticClass:"torrent-list bg-transparent",class:{"torrent-list-large":"downloaded"!==e.currentTab},model:{value:e.displayTab,callback:function(t){e.displayTab=t},expression:"displayTab"}},e._l(e.displayList,(function(t){return a("q-tab-panel",{key:"panel_"+t.label,staticClass:"q-pa-none",attrs:{name:t.key}},[a(e.listComponent,{key:"task-list-"+t.label,tag:"component",attrs:{list:t,tab:e.currentTab,incomes:e.incomes,noDataMessage:e.noDataMessage},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showOriginTorrent:e.showOriginTorrent,showDirectory:e.showDirectory,setThrottleGroup:e.setThrottleGroup,shareFile:e.shareFile,saveTorrentFile:e.saveTorrentFile,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart}})],1)})),1),a("q-page-sticky",{staticClass:"action-container",attrs:{position:"bottom-right",offset:[16,16]}},e._l({download:{tabName:"downloading",icon:"add",handleClick:function(){return e.showMagnetDialog("download")}},upload:{tabName:"uploading",icon:"cloud_upload",handleClick:function(){return e.showMagnetDialog("upload")}},upload_all:{tabName:"downloaded",icon:"cloud_upload",handleClick:e.uploadAll}},(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,staticClass:"q-ma-xs action-button",attrs:{color:"primary",icon:t.icon,label:e.$t(n),"button-type":"fab"},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TorrentPayment",e._b({attrs:{show:e.showPayment,dp$source:e.dp$source,autoRenew:e.autoRenew},on:{change:function(t){return e.showPayment=t},createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}},"TorrentPayment",e.paymentData,!1)),a("TableListDetail",{attrs:{show:e.showTorrentDetail,torrent:e.torrentDetail},on:{close:e.hideDetail,showDirectory:e.showDirectory,showPaymentPannel:e.showPaymentPannel,play:e.play,shareFile:e.shareFile}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.alphabizTorrent,paymentSize:e.paymentSize},on:{close:e.hideAbPanel,createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.quickStartTask},on:{input:e.hideQuickStartDialog}})],1)},An=[],In=a("61af"),qn=a.n(In),On=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-virtual-scroll",{key:"torrent-list-"+e.list.label,ref:"listIns",class:[e.screen$xs?"q-pt-sm":"q-pt-md",e.isPortrait?"portrait":"landscape"],style:"max-height:"+e.viewHeight,attrs:{items:e.list.list,"virtual-scroll-item-size":178},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("q-item",{key:e.list.label+"-"+n.infoHash,staticClass:"fit",class:[e.screen$xs?"q-px-sm":"q-px-md"],attrs:{dense:""}},[a("card-item",{attrs:{torrent:n,highlight:n.infoHash&&n.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"],saveFile:e.emitEvent["shareFile"]}})],1)]}},{key:"after",fn:function(){return[e.list.list.length?e._e():a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1),a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0}])})},En=[],Dn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{width:"100%"}},[a("q-card",{staticClass:"torrent-item",class:[e.screen$xs?"q-mb-sm":"q-mb-md"],attrs:{flat:"",bordered:""}},[a("q-card-section",{class:{highlight:e.highlight}},[a("div",{staticClass:"row justify-between items-center"},[a("div",{staticClass:"torrent-info title q-mb-xs"},[a("p",{staticClass:"torrent-name"},[e.isReady?e._e():a("q-circular-progress",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.paused&&!e.torrent.pending,expression:"!torrent.paused && !torrent.pending"}],staticClass:"torrent-loading",attrs:{indeterminate:"",size:"24px",color:"primary"}}),a("span",[e._v(e._s(e.displayName))]),e.torrent.isAutoUpload?a("q-icon",{staticClass:"q-ml-md",attrs:{name:"drive_folder_upload"}},[a("q-tooltip",[e._v(e._s(e.$t("auto_uploading")))])],1):e._e()],1)]),a("alphabiz-button",{staticClass:"absolute-top-right q-mt-sm q-mr-md",attrs:{size:"md","button-type":"icon",icon:"more_horiz"},on:{click:e.showDetail}},[a("q-tooltip",[e._v(e._s(e.$t("more")))])],1)],1),a("div",{staticClass:"torrent-info"},[a("div",{staticClass:"operations"},[a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!(e.torrent.paused&&e.torrent.missFile),expression:"!torrent.isAutoUpload && !(torrent.paused && torrent.missFile)"}],attrs:{color:"general",value:e.locked,icon:e.actionIcon,label:e.torrentAction,disabled:e.isProcessingUpload},on:{click:e.switchStateTorrent}}),e.isReady&&e.playable?a("alphabiz-button",{attrs:{color:"general",icon:"smart_display",label:e.torrent.done||e.torrent.isSeeding?e.$t("play"):e.$t("play_while_downloading")}},[a("q-menu",{attrs:{"max-height":"200px"}},[a("q-list",{staticStyle:{"min-width":"100px"}},e._l(e.playableFiles,(function(t,n){return a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],key:n,staticClass:"playable-items",attrs:{clickable:!t.missing,disable:t.missing},on:{click:function(a){return e.play(t.path,e.torrent.infoHash)}}},[a("q-linear-progress",{directives:[{name:"show",rawName:"v-show",value:1!==t.progress||t.isSeeding,expression:"item.progress !== 1 || item.isSeeding"}],staticClass:"progress-background",attrs:{stripe:"",value:t.progress}}),a("q-item-section",[a("p",{staticClass:"q-ma-none"},[a("q-icon",{staticClass:"q-mr-xs",attrs:{name:"play_arrow"}}),e._v("\n "+e._s(t.name)+"\n "),t.missing?a("q-icon",{attrs:{name:"error",color:"primary"}}):1===t.progress?a("q-icon",{attrs:{name:"done",color:"primary"}}):e._e(),t.missing?a("q-tooltip",[e._v(e._s(e.$t("file_not_found")))]):e._e(),1!==t.progress||e.isElectron?e._e():a("q-btn",{staticClass:"save-to-local-btn",attrs:{flat:"",dense:"",color:"primary",size:"sm",icon:e.isCapacitor?"ios_share":"save"},on:{click:function(a){return a.stopPropagation(),a.preventDefault(),e.saveFile(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("save_to_local")))])],1)],1)])],1)})),1)],1)],1):a("alphabiz-button",{attrs:{color:"general",icon:"file_open",label:e.$t("open_file")},on:{click:e.openFile}}),e.isElectron||e.isCapacitor?a("alphabiz-button",{attrs:{color:"general",icon:e.isElectron?"folder":"ios_share",label:e.isElectron?e.$t("open_directory"):e.$t("share")},on:{click:e.showDirectory}}):e._e(),e.torrent.fromPost?a("alphabiz-button",{attrs:{icon:"video_library",label:e.$t("library")},on:{click:e.showPostInfo}}):e._e(),1!==e.torrent.progress&&!e.torrent.upload||e.torrent.paused?e._e():a("alphabiz-button",{attrs:{icon:"present_to_all",label:e.$t("share_to_library"),disabled:e.isProcessingUpload},on:{click:e.showQuickStart}}),e.isElectron||e.isCapacitor||!e.torrent.done?e._e():a("alphabiz-button",{attrs:{label:e.$t("save_as_zip"),icon:"folder_zip"},on:{click:e.saveZip}}),a("alphabiz-button",{attrs:{color:"negative",icon:"close",label:e.$t("delete"),disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}}),a("q-space"),e.showAbButton?a("alphabiz-button",{attrs:{color:"accent",icon:e.isPayed?"flash_auto":"flash_on"},on:{click:e.openAbPanel}},[a("q-tooltip",[e._v(e._s(e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")))])],1):e._e()],1),e.torrent.upload||e.torrent.isSeeding?e._e():a("q-linear-progress",{staticClass:"q-mt-md",attrs:{value:e.torrent.done?1:e.torrent.progress,size:"18px",rounded:""}},[a("div",{staticClass:"progress-text flex flex-center absolute-full"},[e._v(e._s(e.progress||"0%"))])]),a("p",{staticClass:"text q-mb-xs bottom-status"},[e.statusText?a("span",{staticClass:"hint status-text"},[a("small",[e._v(e._s(e.statusText))]),a("br")]):e._e(),a("span",{staticStyle:{"margin-right":"10px"}},[e._v(e._s(this.$t("status"))+": "+e._s(e.torrentStatus))]),a("span",[e.torrent.paused||e.torrent.done||e.torrent.pending||e.torrent.isSeeding?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.downloadSpeed)+"\n ")]),e.torrent.upload?e._e():a("span",{staticStyle:{"margin-right":"10px"}},[e.torrent.done?e._e():a("span",[e._v("↓ "+e._s(e.downloaded)+" /")]),e._v("\n "+e._s(e.total))])]),a("span",[e.torrent.paused||e.torrent.pending?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.uploadSpeed)+"\n ")]),a("span",{staticStyle:{"margin-right":"10px"}},[e._v("↑ "+e._s(e.uploaded))])])]),a("p",{staticClass:"text timers q-mt-xs bottom-status"},[e.torrent.timeRemaining&&e.torrent.download?a("span",{staticClass:"remaining q-mr-md"},[e._v(e._s(e.$t("remaining"))+": "+e._s(e.remaining))]):e._e(),e.createdTime?a("span",[e._v(e._s(e.$t("created_time")+": "+e.createdTime))]):e._e(),e.completedTime?a("span",[e._v(e._s(e.$t("completed_time")+": "+e.completedTime))]):e._e(),e.usedTime?a("span",[e._v(e._s(e.$t("used_time")+": "+e.usedTime))]):e._e()])],1)])],1)],1)},jn=[],Nn=a("4fd2"),Ln=a("908d"),Un={name:"CardItem",inject:["io"],props:{torrent:{type:Object,required:!0},statusText:String,highlight:Boolean},data(){return{levelOptions:[{label:" Low ",value:"low"},{label:" Middle ",value:"mid"},{label:" High ",value:"high"}],locked:!1,loading:!1,isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},torrentAction(){return this.torrent.paused?this.torrent.done||1===this.torrent.progress||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},isReady(){return this.torrent&&this.torrent.name&&this.torrent.length},downloadSpeed(){return this.byteToLargerSize(this.torrent.downloadSpeed,{fix:1})+"/s"},downloaded(){return this.byteToLargerSize(this.torrent.downloaded)},uploadSpeed(){return this.byteToLargerSize(this.torrent.uploadSpeed,{fix:1})+"/s"},uploaded(){return this.byteToLargerSize(this.torrent.uploaded)},total(){return this.byteToLargerSize(this.torrent.length)},remaining(){return!this.torrent.timeRemaining||this.torrent.paused?"-":this.msToTime(this.torrent.timeRemaining)},createdTime(){return this.torrent.createdTime?new Date(this.torrent.createdTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},completedTime(){return this.torrent.completedTime&&this.torrent.done?new Date(this.torrent.completedTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},usedTime(){return this.torrent.usedTime?this.msToTime(this.torrent.usedTime):""},torrentStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.paused?this.$t("downloaded"):this.$t("uploading")}if(this.paused)return this.$t("paused");if(this.torrent.paused)return this.torrent.done||this.torrent.isSeeding?this.$t("completed"):this.$t("paused");if(this.torrent.isSeeding)return this.$t("seeding");if(this.torrent.upload)return this.$t("uploading");if(this.torrent.pending)return this.$t("pending");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(!this.torrent.ready){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.download?this.torrent.done?this.$t("downloaded"):this.$t("downloading"):this.$t("unknown_status")},displayName(){let e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e||"string"!==typeof e){if(!(e&&e instanceof File))return this.$t("loading");e=e.name}if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win?"\\":"/";if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},progress(){return Object(M["g"])(this.torrent.progress)},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return!this.torrent.done&&!this.torrent.isSeeding&&(this.isDevMode&&this.abPeers.length)},payedConnections(){return this.abPeers.filter((e=>"high"===e.remoteGroup))},isPayed(){return this.payedConnections.length},showAbPeerHint(){return this.abPeers.length},connectedPeers(){const e={};for(const t of this.abPeers){const a=t.subId||t.id;e[a]?e[a].isAbPeer|=t.isAbPeer:(e[a]=t,e[a].addresses=[]),e[a].addresses.includes(t.address)||e[a].addresses.push(t.address)}return Object.values(e).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0))},playableFiles(){return this.torrent.files.filter((e=>Object(Nn["a"])(e.name)))},playable(){return this.playableFiles.length}},methods:{byteToLargerSize(e,t={}){return Object(M["a"])(e,{byte:!1,gb:!0,...t})},msToTime(e){const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n>60){const e=n%60,t=(n-e)/60;return t>24?"> 24h":`${t}:${("0"+e).slice(-2)}:${("0"+a).slice(-2)}`}return`${("0"+n).slice(-2)}:${("0"+a).slice(-2)}`},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},switchStateTorrent(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash)}},openAbPanel(){console.log("open"),this.$emit("showAbPanel",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},setThrottleGroup(e,t,a){this.$emit("setThrottleGroup",{infoHash:this.torrent.infoHash,id:e,subId:t,level:a})},saveTorrentFile(){this.$emit("saveTorrentFile",this.torrent.infoHash)},play(e,t){this.$emit("play",e,t)},copyMagnetURI(){let e=this.torrent.alphabizURI||this.torrent.magnetURI;e||(e="magnet:?xt=urn:btih:"+this.torrent.infoHash,this.torrent.name&&(e+="&dn="+encodeURIComponent(this.torrent.name))),Object(lt["b"])(e),this.$q.notify(this.$t("text_copied"))},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},showOriginTorrent(){this.$emit("showOriginTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showPaymentPannel(e){this.$emit("showPaymentPannel",{infoHash:this.torrent.infoHash,torrentName:this.torrent.name,peerId:e.id,address:e.address,remoteUser:e.user,remoteSubId:e.subId})},showQuickStart(){this.$emit("showQuickStart",this.torrent)},saveFile(e){if(this.isCapacitor)return this.$emit("saveFile",e.path);this.$emit("saveFile",e)},saveZip(){this.$emit("saveZip")}},watch:{torrentStatus(e,t){t!==e&&this.$emit("sortByStatus")}},mounted(){this.loading=this.torrent.loading}},Rn=Un,Mn=(a("1357"),a("64e7")),Fn=a("834d"),Bn=Object(v["a"])(Rn,Dn,jn,!1,null,"3671d32d",null),Wn=Bn.exports;S()(Bn,"components",{QCard:q["a"],QCardSection:O["a"],QCircularProgress:Mn["a"],QIcon:G["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QLinearProgress:zt["a"],QItemSection:Ve["a"],QBtn:A["a"],QSpace:W["a"],QColor:la["a"],QBtnToggle:Fn["a"]}),S()(Bn,"directives",{ClosePopup:K["a"]});var Hn={name:"CardList",props:{list:Object,noDataMessage:String},data(){const e=this;return{isElectron:Object(X["isElectron"])(),safeArea:"env(safe-area-inset-bottom) - env(safe-area-inset-top)",emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),highlightItem:{}}},computed:{viewHeight(){const e=(this.list.key.startsWith("downloaded")?150:180)+(this.isPortrait||this.isElectron?0:-30);return`calc(100vh - ${this.safeArea} - ${e}px);`}},components:{CardItem:Wn},methods:{findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.listIns){var a;if(Date.now()-e<1e3)return;clearInterval(t);const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.listIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},Vn=Hn,Qn=(a("536e"),Object(v["a"])(Vn,On,En,!1,null,"0dd405a4",null)),Gn=Qn.exports;S()(Qn,"components",{QVirtualScroll:Qe["a"],QItem:He["a"],QIcon:G["a"]});var Kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-table",{ref:"tableIns",staticClass:"list bg-page text-page",class:{xs:e.isPortrait,electron:e.isElectron},attrs:{data:e.list.list,columns:e.columns,"row-key":"name",dense:"",flat:"","virtual-scroll":"","hide-bottom":!!e.list.list.length,"rows-per-page-options":[0],"visible-columns":e.visibleColumns,"no-data-label":e.noDataMessage},nativeOn:{mousemove:function(t){return e.onDrag(t)},touchmove:function(t){return e.onDrag(t)},mouseleave:function(t){return e.onDragEnd.apply(null,arguments)},mouseup:function(t){return e.onDragEnd.apply(null,arguments)},touchend:function(t){return e.onDragEnd.apply(null,arguments)},touchcancel:function(t){return e.onDragEnd.apply(null,arguments)}},scopedSlots:e._u([{key:"header",fn:function(t){return[a("q-tr",{attrs:{props:t}},e._l(t.cols,(function(n){return a("q-th",{key:n.name,staticClass:"thead",attrs:{props:t}},[a("span",{staticClass:"text-ellipsis"},[e._v(e._s(n.label))]),"options"!==n.name?a("span",{staticClass:"thead-draggable",on:{mousedown:function(t){return e.onDragStart(n,t)},mouseup:e.onDragEnd,touchstart:function(t){return e.onDragStart(n,t)},touchmove:function(t){return e.onDrag(t)},touchend:e.onDragEnd,touchcancel:e.onDragEnd}}):e._e()])})),1)]}},{key:"body",fn:function(t){return[a("ListItem",{key:t.row.infoHash,attrs:{torrent:t.row,visibleColumns:e.visibleColumns,showCols:e.showCols,incomes:e.taskIncomes[t.row.infoHash],colWidth:e.colWidthText,highlight:t.row.infoHash&&t.row.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"]}})]}},{key:"bottom-row",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0},{key:"no-data",fn:function(){return[a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1)]},proxy:!0}])})},Yn=[],Jn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-tr",{key:e.torrent.infoHash||e.torrent.origin,staticClass:"list-item-tr",class:{highlight:e.highlight}},[a("q-td",{key:"name",staticClass:"no-select task-name",style:e.colWidth.name,on:{dblclick:e.onDoubleClick}},[a("IconWithTooltip",e._b({staticClass:"q-mr-xs name-icon"},"IconWithTooltip",e.taskIcon,!1)),a("div",{staticClass:"name-info"},[a("span",{staticClass:"torrent-name",attrs:{title:e.displayName}},[e._v(e._s(e.displayName))]),a("br"),e._m(0),a("span",{staticClass:"text-grey"},[e._v(e._s(e.downloadStatus))])],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["remaining"],expression:"showCols['remaining']"}],key:"remaining",style:e.colWidth.remaining},[e._v(e._s(e.remaining))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["completedTime"],expression:"showCols['completedTime']"}],key:"completedTime",style:e.colWidth.completedTime},[e._v(e._s(e.completedTime))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["progress"],expression:"showCols['progress']"}],key:"progress",style:e.colWidth.progress},[a("q-linear-progress",{attrs:{value:e.torrent.progress,size:"20px",rounded:""}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.progress||"0%"))])])])],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["uploadSpeed"],expression:"showCols['uploadSpeed']"}],key:"uploadSpeed",style:e.colWidth.uploadSpeed},[e._v(e._s(e.uploadSpeed))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["downloadSpeed"],expression:"showCols['downloadSpeed']"}],key:"downloadSpeed",staticClass:"download-speed",style:e.colWidth.downloadSpeed},[a("span",{attrs:{title:e.downloadSpeed}},[e._v(e._s(e.downloadSpeed))]),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.showAbButton,expression:"showAbButton"}],staticClass:"text-primary float-right",attrs:{flat:"",dense:"",size:"sm"},on:{click:e.openAbPanel}},[a("IconWithTooltip",{attrs:{icon:e.isPayed?"flash_auto":"flash_on",tooltip:e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")}})],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["incomeInfo"],expression:"showCols['incomeInfo']"}],key:"incomeInfo",staticClass:"text-right",style:e.colWidth.incomeInfo},[e._v(e._s(e.incomeInfo))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.visibleColumns.includes("options"),expression:"visibleColumns.includes('options')"}],key:"options",staticClass:"option-btns",style:e.colWidth.options,attrs:{"auto-width":""}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!e.torrent.missFile,expression:"!torrent.isAutoUpload && !torrent.missFile"}],attrs:{flat:"",dense:"",size:"sm",disable:e.locked||e.isProcessingUpload},on:{click:e.toggleStatus}},[a("IconWithTooltip",{attrs:{icon:e.actionIcon,tooltip:e.taskAction,clickable:""}})],1),a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.onDoubleClick}},[a("IconWithTooltip",{attrs:{icon:e.playable?"smart_display":"file_open",tooltip:e.$t("open_file"),clickable:""}})],1),e._m(1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.torrent.fromPost,expression:"torrent.fromPost"}],attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showPostInfo}},[a("IconWithTooltip",{attrs:{icon:"video_library",tooltip:e.$t("library"),clickable:""}})],1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:(1===e.torrent.progress||e.torrent.upload)&&!e.torrent.paused,expression:"(torrent.progress === 1 || torrent.upload) && !torrent.paused"}],attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.showQuickStart}},[a("IconWithTooltip",{attrs:{icon:"present_to_all",tooltip:e.$t("share_to_library"),clickable:""}})],1),e._m(2),a("q-btn",{staticClass:"text-red",attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}},[a("IconWithTooltip",{attrs:{icon:"close",tooltip:e.$t("delete"),clickable:""}})],1)],1)],1)},Zn=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("IconWithTooltip",{directives:[{name:"show",rawName:"v-show",value:e.torrent.isAutoUpload,expression:"torrent.isAutoUpload"}],staticClass:"q-mr-xs text-primary",attrs:{tooltip:e.$t("auto_uploading"),icon:"cloud_upload"}})},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder",tooltip:e.$t("open_directory"),clickable:""}})],1)},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDetail}},[a("IconWithTooltip",{attrs:{icon:"more_horiz",tooltip:e.$t("more"),clickable:""}})],1)}],Xn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-icon",{class:{"cursor-pointer":e.clickable},attrs:{name:e.icon,size:e.size},on:{click:e.emitClick}},[e.tooltip?a("q-tooltip",[e._v("\n "+e._s(e.tooltip)+"\n ")]):e._e()],1)},eo=[],to={name:"IconWithTooltip",props:{icon:{type:String,require:!0},tooltip:{type:String,default:""},clickable:{type:Boolean,default:!1},size:{type:String,default:""}},methods:{emitClick(){this.$emit("click")}}},ao=to,no=Object(v["a"])(ao,Xn,eo,!1,null,null,null),oo=no.exports;S()(no,"components",{QIcon:G["a"],QTooltip:V["a"]});var io={name:"ListItem",props:{torrent:{type:Object,required:!0},visibleColumns:{type:Array,required:!0},showCols:{type:Object,required:!0},incomes:{type:Object,default:()=>({})},colWidth:{type:Object,default:()=>({})},highlight:Boolean},inject:["io"],components:{IconWithTooltip:oo},data(){return{locked:!1}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},displayName(){const e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e)return"";if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win;if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},isReady(){return this.torrent&&this.torrent.name&&this.torrent.ready},taskIcon(){const e=this.torrent,t=e.files?e.files:[],a=Object(M["c"])(t.map((e=>e.path||e)));return{icon:a.icon,tooltip:this.$t(a.tooltip)}},downloadStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return Object(M["a"])(this.torrent.length)}return this.isReady||this.torrent.paused||this.torrent.length?this.torrent.done||this.torrent.downloaded===this.torrent.length?Object(M["a"])(this.torrent.length):`${Object(M["a"])(this.torrent.downloaded)}/${Object(M["a"])(this.torrent.length)}`:"-"},remaining(){return this.torrent.paused||this.torrent.pending?"-":Object(M["e"])(this.torrent.timeRemaining)},completedTime(){const e=(...e)=>this.$t(...e);return this.torrent.completedTime?Object(M["f"])(this.torrent.completedTime,e,null===this||void 0===this?void 0:this.$i18n.locale):Object(M["f"])(this.torrent.createdTime,e,null===this||void 0===this?void 0:this.$i18n.locale)},progress(){return Object(M["g"])(this.torrent.progress)},downloadSpeed(){if(this.torrent.paused)return this.$t("paused");if(this.torrent.pending)return this.$t("pending");if(!this.torrent.ready){if(!this.torrent.hasMetadata)return this.$t("loading");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("verifying")+` (${n})`}return this.$t("verifying")}return Object(M["a"])(this.torrent.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s"},incomeInfo(){return[Number(((this.incomes.today||0)/1e3).toFixed(3)),Number(((this.incomes.total||0)/1e3).toFixed(3))].join(" / ")},uploadSpeed(){return this.torrent.ready?Object(M["a"])(this.torrent.uploadSpeed,{byte:!1,gb:!1,fix:1})+"/s":"-/s"},taskAction(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},playableFiles(){var e;return(null===(e=this.torrent.files)||void 0===e?void 0:e.filter((e=>Object(Nn["a"])(e.name))))||[]},playable(){return this.playableFiles.length},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return this.isDevMode&&this.abPeers.length},isPayed(){return this.abPeers.some((e=>"high"===e.remoteGroup))}},methods:{shouldShow(e){return this.visibleColumns.includes(e)},onDoubleClick(){this.playable?this.$emit("play",this.playableFiles[0].path,this.torrent.infoHash):this.torrent.files&&this.torrent.files.length?this.openFile():this.$q.notify(this.$t("no_available_file"))},toggleStatus(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash||this.torrent.token)}},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},openAbPanel(){this.$emit("showAbPanel",this.torrent)},showQuickStart(){this.$emit("showQuickStart",this.torrent)}}},ro=io,so=(a("bd3b"),Object(v["a"])(ro,Jn,Zn,!1,null,null,null)),lo=so.exports;S()(so,"components",{QTr:bn["a"],QTd:yn["a"],QLinearProgress:zt["a"],QBtn:A["a"],QColor:la["a"]});var co=a("ed1a"),uo={name:"TableList",props:{list:{type:Object,required:!0},tab:{type:String,default:"downloading"},incomes:{type:Object,default:()=>({})},noDataMessage:{type:String,default:()=>""}},components:{ListItem:lo},data(){const e=this;let t={name:250,remaining:80,completedTime:80,progress:120,downloadSpeed:150,uploadSpeed:100,incomeInfo:120,options:165};return localStorage.getItem("table-col-width")||localStorage.setItem("table-col-width",JSON.stringify(t)),t=JSON.parse(localStorage.getItem("table-col-width")),{isElectron:Object(X["isElectron"])(),emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),defaultColumns:{downloading:["name","remaining","progress","downloadSpeed","options"],uploading:["name","completedTime","uploadSpeed","incomeInfo","options"],downloaded:["name","completedTime","options"]},dragData:{start:!1,col:"",pageX:0,pageY:0},highlightItem:{},colWidth:t}},computed:{columns(){return[{name:"name",required:!0,label:this.$t("task_name"),align:"left",headerStyle:this.colWidthText.name+";padding-left: 48px; max-width: calc(100% - 48px);"},{name:"remaining",label:this.$t("remaining"),align:"left",headerStyle:this.colWidthText.remaining+"; max-width: calc(100% - 8px)"},{name:"completedTime",label:this.$t("completed_time"),align:"left",headerStyle:this.colWidthText.completedTime+"; max-width: calc(100% - 8px)"},{name:"progress",label:this.$t("progress"),align:"left",headerStyle:this.colWidthText.progress+"; max-width: calc(100% - 8px)"},{name:"downloadSpeed",label:this.$t("total_download_speed"),align:"left",headerStyle:this.colWidthText.downloadSpeed+"; max-width: calc(100% - 8px)"},{name:"uploadSpeed",label:this.$t("total_upload_speed"),align:"left",headerStyle:this.colWidthText.uploadSpeed+"; max-width: calc(100% - 8px)"},{name:"incomeInfo",label:this.$t("income_info"),align:"right",headerStyle:this.colWidthText.incomeInfo+"; max-width: calc(100% - 8px)"},{name:"options",label:this.$t("operations"),align:"left"}]},visibleColumns(){switch(this.tab){case"downloading":return this.defaultColumns.downloading;case"uploading":return 2!==this.$store.state.credits.isModuleInit?this.defaultColumns.uploading.filter((e=>"incomeInfo"!==e)):this.defaultColumns.uploading;case"downloaded":return this.defaultColumns.downloaded}return this.defaultColumns.downloading},showCols(){const e={};for(const t of this.visibleColumns)e[t]=!0;return e},colWidthText(){const e={};for(const t in this.colWidth){const a=this.colWidth[t];e[t]=`width: ${a}px; min-width: ${a}px; max-width: ${a}px;`}return e},tableList(){var e,t;return(null===(e=this.list)||void 0===e||null===(t=e.list)||void 0===t?void 0:t.map((e=>({name:e.name}))))||[]},taskIncomes(){const{todayTaskIncome:e,allTaskIncome:t}=this.incomes,a={};for(const n in t)a[n]||(a[n]={today:0,total:0}),a[n].total+=t[n],e[n]&&(a[n].today+=e[n]);return a}},methods:{onDragStart(e,t){this.dragData.pageX=t.pageX,this.dragData.pageY=t.pageY,this.dragData.start=!0,this.dragData.col=e.name,document.body.style.cursor="col-resize"},onDragEnd(){this.dragData.start&&(this.dragData.start=!1,document.body.style.cursor="",localStorage.setItem("table-col-width",JSON.stringify(this.colWidth)))},onDrag(e){if(!this.dragData.start)return;const t=this.dragData.pageX-e.pageX;this.dragData.pageX=e.pageX,this.colWidth[this.dragData.col]&&(this.colWidth[this.dragData.col]-=t,this.colWidth[this.dragData.col]<80&&(this.colWidth[this.dragData.col]=80))},onResize(){console.log("table resize"),this.$refs.tableIns.resetVirtualScroll()},findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},created(){this.onDrag=Object(co["a"])(this.onDrag,1e3/60),this.onResize=Object(co["a"])(this.onResize)},beforeDestroy(){window.removeEventListener("resize",this.onResize)},mounted(){window.addEventListener("resize",this.onResize),console.log("table created",this.$route.query)},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.tableIns){var a;if(Date.now()-e<1e3)return;const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.tableIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},_o=uo,po=(a("cdb7"),a("c1f8")),mo=Object(v["a"])(_o,Kn,Yn,!1,null,null,null),ho=mo.exports;S()(mo,"components",{QTable:Tt["a"],QTr:bn["a"],QTh:po["a"],QIcon:G["a"],QColor:la["a"]});var go=function(){var e=this,t=this,a=t.$createElement,n=t._self._c||a;return n("q-dialog",{attrs:{value:t.show},on:{input:function(t){return e.$emit("change",t)},"before-hide":function(){return e.disable=!1}}},[n("q-card",{staticClass:"info"},[n("q-card-section",[n("div",{staticClass:"text-h6"},[t._v(t._s(t.$t("create_payment")))]),n("div",{staticClass:"infohash"},[t._v(t._s(t.$t("pay_for_torrent",[t.torrentName])))]),n("small",{staticClass:"infohash text-secondary"},[t._v("infoHash: "+t._s(t.infoHash))]),n("div",{staticClass:"peer-info"},[t._v(t._s(t.$t("pay_target"))+":\n "),n("div",{staticClass:"q-ml-sm remote"},[t._v("SubId: "+t._s(t.remoteSubId))]),n("div",{staticClass:"peer-address q-ml-md"},[t._v("Address: "+t._s(t.address))]),n("div",{staticClass:"peer-id q-ml-md"},[t._v("PeerId: "+t._s(t.peerId))])]),n("div",{staticClass:"space q-my-md"}),n("div",{staticClass:"user-info"},[n("div",{staticClass:"sub-id"},[t._v(t._s(t.$t("your_subid"))+": "+t._s(t.subId))]),n("div",{staticClass:"credit-count"},[t._v(t._s(t.$t("your_credits"))+": "+t._s(t.credit))])]),n("div",{staticClass:"actions"},[n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[2,"20MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(2)}}}),n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[10,"100MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(10)}}}),n("br"),n("q-toggle",{attrs:{value:t.enableAutoRenew,label:t.$t("auto_renew"),"left-label":""},on:{input:t.setAutoRenew}})],1)])],1)],1)},fo=[],bo={name:"TorrentPayment",props:{dp$source:Object,infoHash:{type:String,default:""},torrentName:{type:String,default:""},peerId:{type:String,default:""},address:{type:String,default:""},remoteUser:{type:String,default:""},remoteSubId:{type:String,default:""},show:{type:Boolean,default:!1},autoRenew:{type:Object,default:()=>({})}},data(){return{disable:!1,sentTransactions:new Set,pendingTransactions:new Map}},computed:{credit(){return this.dp$source.dp$credit},userId(){return this.$store.state.account.username},subId(){return this.dp$source.dp$address},enableAutoRenew(){return this.autoRenew&&this.autoRenew[this.infoHash]||!1},income(){return this.dp$source.dp$incomeTxnList},expenses(){return this.dp$source.dp$expenseTxnList}},methods:{setAutoRenew(e){this.$emit("setAutoRenew",this.infoHash,e)},pay(e=1){if(!this.infoHash.length||!this.peerId.length||!this.remoteSubId.length)return this.$q.notify("Info missing");this.disable=!0,console.log("dp$ create payment from","TorrentPayment::pay"),this.$emit("createPayment",{infoHash:this.infoHash,peerId:this.peerId,remoteSubId:this.remoteSubId,payed:e,autoRenew:this.enableAutoRenew})}}},yo=bo,vo=Object(v["a"])(yo,go,fo,!1,null,null,null),wo=vo.exports;S()(vo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QBtn:A["a"],QToggle:ta["a"]});var ko=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.torrent?a("q-dialog",{staticClass:"detail-dialog",attrs:{value:e.show,position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.closeDialog}},[a("q-card",{staticClass:"detail-dialog",class:e.isCapacitor?"capacitor":""},[a("q-card-section",{staticClass:"flex items-center no-wrap",class:e.screen$xs?"q-py-sm":"q-py-md"},[e.torrent.fromPost?a("q-icon",{staticClass:"q-mr-xs text-primary",attrs:{name:"video_library"}},[a("q-tooltip",[e._v("\n "+e._s(e.$t("library"))+"\n ")])],1):e._e(),a("div",{staticClass:"text-h6 ellipsis",attrs:{title:e.torrent.postTitle||e.torrent.name}},[e._v("\n "+e._s(e.torrent.postTitle||e.torrent.name)+"\n ")]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:"","data-cy":"moreCard-closeBtn"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{class:e.screen$xs?"q-pt-md":"q-pt-none"},[a("q-input",{attrs:{readonly:"",label:e.$t("download")+" URL",outlined:"",dense:""},scopedSlots:e._u([{key:"append",fn:function(){return[a("IconWithTooltip",{attrs:{icon:"content_copy",tooltip:e.$t("copy_download_uri"),clickable:!0},on:{click:e.copyMagnetURI}}),a("IconWithTooltip",{attrs:{icon:"share",tooltip:e.$t("copy_share_uri"),clickable:!0},on:{click:e.copyShortURI}})]},proxy:!0}],null,!1,2307292726),model:{value:e.downloadURI,callback:function(t){e.downloadURI=t},expression:"downloadURI"}})],1),e.fileTree.length?a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"title"},[e.isElectron||e.isCapacitor?a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder_open",tooltip:e.$t("open_directory"),clickable:""}})],1):e._e(),e._v("\n "+e._s(e.$t("files"))+":\n ")],1),a("q-tree",{staticClass:"no-select file-tree",attrs:{nodes:e.fileTree,"node-key":"label",dense:"","no-connectors":""},scopedSlots:e._u([{key:"default-header",fn:function(t){return[a("q-item",{staticClass:"text full-width q-py-none q-px-xs no-margin vertical-middle",class:{"no-path":!t.node.path},attrs:{dense:"",clickable:!t.node.children},on:{dblclick:function(a){return e.onDblClick(t.node)}}},[!t.node.children&&t.node.path?a("IconWithTooltip",e._b({staticClass:"q-mt-xs q-mr-xs"},"IconWithTooltip",e.getFileIcon(t.node.path),!1)):t.node.path?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"folder"}}):e._e(),e.isCapacitor&&t.node.done&&t.node.fullPath?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"ios_share",label:e.$t("open_file")},on:{click:function(a){return e.shareFile(t.node)}}}):e._e(),t.node.progress?a("span",{staticClass:"file-progress"},[e._v(e._s(t.node.progress))]):e._e(),a("span",{staticClass:"file-name"},[e._v("‎"+e._s(t.node.label))])],1)]}}],null,!1,3668704012)})],1):e._e(),e.torrent.subtitleList&&e.torrent.subtitleList.length?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"subtitles",label:e.$t("subtitle")+" ("+e.torrent.subtitleList.length+")",value:!0}},[a("q-markup-table",{staticClass:"subtitleList-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center",staticStyle:{"padding-left":"20px"}},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("download_link")))]),a("th")])]),a("tbody",e._l(e.torrent.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-center",staticStyle:{"padding-left":"20px"},attrs:{title:t.lang}},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left url ellipsis",attrs:{title:e.getSubtitleUrl(t.url)}},[e._v(e._s(e.getSubtitleUrl(t.url)))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"content_copy",size:"xs",dense:"",flat:""},on:{click:function(a){return e.copySubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy_download_uri")))])],1),e.isElectron?a("q-btn",{attrs:{icon:"file_download",size:"xs",dense:"",flat:""},on:{click:function(a){return e.downloadSubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("download_link")))])],1):e._e()],1)])})),0)])],1)],1):e._e(),a("q-card-section",{staticClass:"q-pt-none peers"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"people",label:"Peers ("+e.connectedPeers.length+")",value:!0}},[a("q-markup-table",{staticClass:"peer-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center"}),a("th",{staticClass:"text-left ip",staticStyle:{"padding-left":"32px"}},[e._v("Peer")]),e.isDevMode?a("th",{staticClass:"text-left client"},[e._v(e._s(e.$t("client")))]):e._e(),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_download_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_upload_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("progress")))])])]),a("tbody",e._l(e.connectedPeers,(function(t){return a("PeerInfo",{key:t.id,attrs:{peer:t},on:{showPaymentPannel:e.showPaymentPannel}})})),1)])],1)],1),e.isDevMode?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{directives:[{name:"show",rawName:"v-show",value:e.trackerList.length,expression:"trackerList.length"}],attrs:{icon:"dns",label:"Trackers ("+e.trackerList.length+")"}},[e.isElectron?a("div",{staticClass:"row justify-end q-pa-sm"},[a("q-input",{staticClass:"col",attrs:{dense:"",type:"text",label:"Tracker URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.newTrackerUrl,callback:function(t){e.newTrackerUrl=t},expression:"newTrackerUrl"}}),a("q-btn",{attrs:{dense:"",color:"primary q-mx-sm q-px-sm",icon:"add",label:e.$t("add")},on:{click:e.addTracker}})],1):e._e(),a("q-markup-table",{staticClass:"tracker-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left",staticStyle:{"padding-left":"40px"}},[e._v("URL")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("last_update")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("seeders")))]),a("th",{staticClass:"text-center"},[e._v("Peers")]),e.isElectron?a("th"):e._e()])]),a("tbody",e._l(e.trackerList,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left url",attrs:{title:t.displayUrl+(t.isIpv6?" (IPv6)":"")}},[t.isIpv6?a("IconWithTooltip",{staticStyle:{color:"#4697ec"},attrs:{icon:"looks_6",tooltip:"IPv6",size:"xs"}}):a("q-icon",{attrs:{name:"looks_4",color:"grey",size:"xs"}}),e._v("\n "+e._s(t.displayUrl)+"\n ")],1),a("td",{staticClass:"text-left status",attrs:{title:t.status}},[e._v(e._s(t.status))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.complete))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.incomplete))]),e.isElectron?a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{color:"red",icon:"close",size:"xs",dense:"",flat:""},on:{click:function(a){return e.removeTracker(t.url)}}})],1):e._e()])})),0)])],1)],1):e._e()],1)],1):e._e()},So=[],Co=(a("dc69"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("tr",[a("td",{staticClass:"status text-center"},[e.peer.isAbPeer?"high"===e.peer.level?a("q-icon",{attrs:{name:"done_all"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer_verified")))])],1):a("q-icon",{attrs:{name:"done"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer")))])],1):a("q-icon",{attrs:{name:"remove"}},[a("q-tooltip",[e._v(e._s(e.$t("common_peer")))])],1)],1),a("td",{staticClass:"addresses"},e._l(e.peer.addresses,(function(t){return a("div",{key:e.peer.id+"_"+t,staticClass:"self-center not-outline address"},[a("q-icon",{attrs:{name:e.peer.secure?"lock":"lock_open",size:"xs",color:e.peer.secure?"green":"grey"}},[a("q-tooltip",[e._v(e._s(e.peer.secure?e.$t("encrypted_connection"):e.$t("non_encrypted_connection")))])],1),a("span",{staticClass:"country-flag q-ml-sm",attrs:{title:e.country}},[e._v(e._s(e.countryFlag))]),e.isDevMode?a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t))]):a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t?t.substring(0,4)+"*":"-"))])],1)})),0),e.isDevMode?a("td",{staticClass:"client text-left",class:{"text-primary":"Alphabiz"===e.peerClient},attrs:{title:e.peerClient}},[e._v(e._s(e.peerClient))]):e._e(),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.downloadSpeed}},[e._v(e._s(e.downloadSpeed)+" / s")]),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.uploadSpeed}},[e._v(e._s(e.uploadSpeed)+" / s")]),a("td",{staticClass:"progress text-right"},[e._v(e._s(e.peerProgress))])])}),xo=[],$o=a("c791"),To=$o["a"],zo=(a("2e69"),Object(v["a"])(To,Co,xo,!1,null,"4676c095",null)),Po=zo.exports;S()(zo,"components",{QIcon:G["a"],QTooltip:V["a"]});var Ao={props:{show:{type:Boolean,default:!1},torrent:{type:Object,required:!0}},data(){const e=Object(ae["default"])()?a("b052").ipcRenderer:{};return{newTrackerUrl:"",isCapacitor:Object(ge["a"])(),isElectron:Object(ae["default"])(),ipcRenderer:e}},components:{IconWithTooltip:oo,PeerInfo:Po},inject:["io"],computed:{isDevMode(){return d["a"].getters.isDevMode},fileCount(){if(!this.torrent)return 0;const e=this.torrent.files||this.torrent.file||[];return e&&e.length?e.length:0},fileTree(){if(!this.torrent)return[];const e=this.torrent.files&&this.torrent.files.map?this.torrent.files.map((e=>e.path)):this.torrent.file||[];if(!e||!e.length)return[];const t=this.fileCount>21?e.slice(e.length-20):e,a=Object(M["b"])(t,this.torrent.files);return a?(this.fileCount>21&&a.children&&a.children.push({label:this.$t("more_files_are_not_shown",[this.fileCount-20])}),[a]):[]},downloadURI(){return this.torrent.alphabizURI?this.torrent.alphabizURI:this.torrent.magnetURI},trackerList(){if(!this.torrent.trackerList)return[];const e=this.torrent.trackerList.map((e=>{const t=this.trackerStatus(e.message||e.status),a=e.info||{complete:"-",incomplete:"-"},n=new Date(e.timestamp),o=[n.getHours(),n.getMinutes(),n.getSeconds()].map((e=>("00"+e).slice(-2))).join(":");return{url:e.url,displayUrl:e.url.replace("@6",""),status:t,time:o,isIpv6:e.isIpv6,...a}})).reverse();return Object(ae["default"])()?e:e.filter((e=>{var t;return null===(t=e.url)||void 0===t?void 0:t.startsWith("ws")}))},connectedPeers(){if(!this.torrent||!this.torrent.connections)return[];const e={};for(const n of this.torrent.connections){const t=n.id;e[t]||(e[t]={...n},e[t].addresses=[],e[t].uploadSpeed=0,e[t].downloadSpeed=0,e[t].downloaded=0),e[t].addresses.includes(n.address)||e[t].addresses.push(n.address),e[t].uploadSpeed+=n.uploadSpeed,e[t].downloadSpeed+=n.downloadSpeed,e[t].downloaded+=n.downloaded,e[t].isAbPeer|=n.isAbPeer,e[t].isPayed|="high"===n.remoteGroup,e[t].secure|=n.secure}const t=[],a=Object.values(e).sort(((e,t)=>{var a;return null!==(a=e.id)&&void 0!==a&&a.localeCompare?e.id.localeCompare(t.id):0})).filter((e=>!!e.id&&(!t.includes(e.id)&&(t.push(e.id),!0))));return a}},methods:{getFileIcon(e){const t=Object(M["c"])([e]);return{icon:t.icon,tooltip:this.$t(t.tooltip)}},closeDialog(){this.$emit("close")},copyToClipboard(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("uri_copied"))})).catch((()=>{this.$q.notify(this.$t("uri_copy_failed"))}))},copyMagnetURI(){this.copyToClipboard(this.downloadURI)},copyShortURI(){if(!this.torrent.alphabizURI)return;const e=this.torrent.alphabizURI.match(/[^:/]\/([^&/]+)&/);e&&e[1]&&this.copyToClipboard(De.a.shortProtocol+"://"+e[1])},copySubtitleURL(e){console.log("copySubtitleURL",this.torrent),this.copyToClipboard(qe(e))},downloadSubtitleURL(e){this.ipcRenderer.send("to_browserurl",qe(e))},getSubtitleUrl(e){return qe(e)},showPaymentPannel(e){this.$emit("showPaymentPannel",Object.assign({infoHash:this.torrent.infoHash,name:this.torrent.name},e))},showDirectory(){this.$emit("showDirectory",this.torrent)},onDblClick(e){console.log(e),e.children||(Object(Nn["a"])(e.label)?this.$emit("play",e.path,this.torrent.infoHash):e.path&&this.io.emit("open-external-file",e.path))},shareFile(e){this.$emit("shareFile",e.fullPath)},trackerStatus(e){const t=e.toLowerCase();return"connecting"===t?this.$t("connecting"):"updated"===t?this.$t("connected"):t.includes("timed out")?this.$t("request_timed_out"):t.includes("connection failed")?this.$t("connection_failed"):this.$t("unknown_error",[e])},addTracker(){console.log("add",this.newTrackerUrl,this.torrent.infoHash);const e=this.newTrackerUrl.trim();if(this.torrent.trackerList.find((t=>t.url===e)))return this.$q.notify(this.$t("duplicate_tracker"));this.isElectron&&this.ipcRenderer.send("add-tracker",{infoHash:this.torrent.infoHash,url:e}),this.newTrackerUrl=""},removeTracker(e){console.log("remove",e,this.torrent.infoHash),this.isElectron&&this.ipcRenderer.send("remove-tracker",{infoHash:this.torrent.infoHash,url:e})}}},Io=Ao,qo=(a("860f"),a("348e")),Oo=a("5bbd"),Eo=Object(v["a"])(Io,ko,So,!1,null,"560c4343",null),Do=Eo.exports;S()(Eo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QTooltip:V["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QInput:E["a"],QTree:qo["a"],QItem:He["a"],QExpansionItem:Oo["a"],QMarkupTable:Q["a"]}),S()(Eo,"directives",{ClosePopup:K["a"]});var jo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.showPanel},on:{input:e.close}},[a("q-card",[a("q-card-section",{staticClass:"row items-center"},[a("q-expansion-item",{staticStyle:{width:"400px"},attrs:{"expand-separator":"","default-opened":"",icon:"people",label:"Peers ("+e.abPeers.length+")",caption:"Alphabiz peer"}},[a("div",{staticClass:"total col-12 q-px-md q-ml-sm"},[a("span",[e._v(e._s(e.$t("credit_cost"))+": "+e._s(e.torrentExpensesNum))])]),e._l(e.abPeers,(function(t){return a("q-field",{key:t.id,attrs:{label:t.subId||t.id,"stack-label":"",borderless:"",readonly:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("div",{staticClass:"q-px-sm"})]},proxy:!0},{key:"control",fn:function(){return[e._l(t.addresses,(function(t,n){return a("div",{key:n+"-"+t,staticClass:"self-center full-width not-outline"},[e._v(" - "+e._s(t)+"\n ")])})),a("div",{staticClass:"text full-width q-mt-xs"},[a("span",{staticClass:"peer-speed q-ml-xs q-mr-lg",class:{"text-primary":"0.00 KB"!==t.uploadSpeed}},[e._v("↑ "+e._s(t.uploadSpeed)+" / s")]),t.isPayed?a("q-icon",{staticClass:"text-primary q-mx-xs cursor-pointer",attrs:{name:"bolt"}},[a("q-tooltip",[e._v(" "+e._s(e.$t("accelerating")))])],1):e._e(),a("span",{staticClass:"peer-speed q-mr-md",class:{"text-primary":"0.00 KB"!==t.downloadSpeed}},[e._v("↓ "+e._s(t.downloadSpeed)+" / s")]),a("span",{directives:[{name:"show",rawName:"v-show",value:t.downloaded,expression:"peer.downloaded"}],staticClass:"peer-downloaded text-primary"},[e._v(e._s(t.downloadedData))])],1)]},proxy:!0}],null,!0)})}))],2)],1),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"total text-center"},[e._v("\n "+e._s(e.$t("pay_with_credit_payed",[e.totalCredits]))+"\n ")])]),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("ok")}})],1)],1)],1)},No=[],Lo={props:{dp$source:Object,show:{type:Boolean,required:!0},torrent:{type:Object,required:!0},paymentSize:{type:Number,default:1e7}},computed:{torrentExpensesNum(){let e=0;if(this.dp$source.dp$expenseTxnDict&&this.dp$source.dp$expenseHashMapper){const t=this.dp$source.dp$expenseHashMapper[this.torrent.infoHash];if(console.log("torrentExpensesNum:","infoHash",this.torrent.infoHash),t)for(const a of t)e+=this.dp$source.dp$expenseTxnDict[a].amount}return Number((e/1e3).toFixed(3))},showPanel(){return this.show},totalCredits(){const e=this.torrent.length,t=e-this.torrent.downloaded,a=Number((t/1e10).toFixed(3));return a},abPeers(){if(!this.torrent||!this.torrent.connections)return[];const e=this.torrent.connections.filter((e=>e.isAbPeer&&e.hasResource&&e.subId!==d["a"].getters.accountUserInfo.sub)),t={};for(const a of e){const e=a.subId;e&&(t[e]?(t[e].isAbPeer|=a.isAbPeer,t[e].addresses.push(a.address),t[e].uploadSpeed+=a.uploadSpeed,t[e].downloadSpeed+=a.downloadSpeed,t[e].downloaded+=a.downloaded):(t[e]={...a},t[e].addresses=[a.address]))}return Object.values(t).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0)).map((e=>(e.uploadSpeed=Object(M["a"])(e.uploadSpeed,{byte:!1,gb:!1}),e.downloadSpeed=Object(M["a"])(e.downloadSpeed,{byte:!1,gb:!1}),e.downloadedData=Object(M["a"])(e.downloaded,{byte:!0,gb:!0}),e.isPayed="high"===e.remoteGroup,e)))},payedConnections(){return this.abPeers.filter((e=>e.isPayed))},downloadedFromPayed(){return Object(M["a"])(this.payedConnections.reduce(((e,t)=>e+t.downloaded||0),0),{byte:!0,gb:!0})},hasPayed(){return this.payedConnections.length}},methods:{confirmPayment(){if(!this.abPeers.length)return;let e=10;const t=Math.floor(10*this.torrent.downloadSpeed/this.paymentSize);t>e&&(e=t);const a=this.torrent.length-this.torrent.downloaded;a{console.log("pay for",t),t.isPayed?console.log("skip high level peer",t):(console.log("dp$ create payment from","AlphabizPanel::confirmPayment"),this.$emit("createPayment",{infoHash:this.torrent.infoHash,remoteSubId:t.subId,payed:e,autoRenew:!0},!0))})),this.close()},close(){this.$emit("close")}}},Uo=Lo,Ro=a("b121"),Mo=Object(v["a"])(Uo,jo,No,!1,null,null,null),Fo=Mo.exports;S()(Mo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QExpansionItem:Oo["a"],QField:Ro["a"],QIcon:G["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Mo,"directives",{ClosePopup:K["a"]});var Bo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("alphabiz-button",{attrs:{"button-type":"icon",icon:"sort"}},[a("q-tooltip",[e._v(e._s(e.$t("sort")))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{attrs:{padding:""}},[a("q-item",{staticStyle:{"min-width":"240px"}},[a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("sort")))])],1),a("q-item-section",{attrs:{side:""}},[a("q-badge",{staticClass:"cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:e.changeSortSequence}},[a("span",{staticClass:"q-ml-sm"},[e._v(e._s(1===e.sortSequence?e.$t("ascending"):e.$t("descending")))]),a("q-icon",{attrs:{size:"1.5rem",name:1===e.sortSequence?"arrow_drop_up":"arrow_drop_down"}})],1)],1)],1),a("q-separator"),e._l(e.options,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"}],key:t.value,attrs:{clickable:"",dense:"",tag:"label"}},[a("q-item-section",{attrs:{avatar:""}},[a("q-radio",{attrs:{val:t.value,color:"positive"},model:{value:e.sortOption,callback:function(t){e.sortOption=t},expression:"sortOption"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)}))],2)],1)],1)},Wo=[],Ho={name:"DownloaderSortMenu",inject:["io"],data(){return{sortOption:"createdTime",sortSequence:1}},computed:{options(){switch(this.$route.query.currentTab){case"downloading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_download_speed"),value:"downloadSpeed"},{label:this.$t("progress"),value:"progress"},{label:this.$t("remaining"),value:"timeRemaining"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("used_time"),value:"usedTime"}];case"uploading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_upload_speed"),value:"uploadSpeed"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("income"),value:"income"}];case"downloaded":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("used_time"),value:"usedTime"}]}return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"}]}},methods:{saveSortOptions(){localStorage.setItem("sortOptions_"+this.$route.query.currentTab,JSON.stringify({sortOption:this.sortOption,sortSequence:this.sortSequence}))},changeSortSequence(){this.sortSequence=-1*this.sortSequence,this.$emit("changeSortSequence",this.sortSequence),this.io.emit("set_sort_sequence",this.sortSequence),this.saveSortOptions()}},mounted(){const e=localStorage.getItem("sortOptions_"+this.$route.query.currentTab);if(e){const{sortOption:t,sortSequence:a}=JSON.parse(e);t&&(this.sortOption=t),a&&(this.sortSequence=a)}else this.sortOption="createdTime",this.sortSequence=1,this.saveSortOptions()},watch:{sortOption(e){this.$emit("changeSortOption",e),this.io.emit("set_sort_option",this.sortOption),this.saveSortOptions()},"$route.query.currentTab"(e,t){if(e===t||!e)return;const a=localStorage.getItem("sortOptions_"+e);if(a){const{sortOption:e,sortSequence:t}=JSON.parse(a);e&&(this.sortOption=e),t&&(this.sortSequence=t)}else this.sortOption="createdTime",this.sortSequence=1}}},Vo=Ho,Qo=a("719b"),Go=Object(v["a"])(Vo,Bo,Wo,!1,null,"b08e87f8",null),Ko=Go.exports;S()(Go,"components",{QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QBadge:_e["a"],QIcon:G["a"],QSeparator:H["a"],QRadio:La["a"]}),S()(Go,"directives",{Ripple:Qo["a"]});var Yo=a("0885"),Jo=a("a368");const Zo=a("d310").isElectron();var Xo={name:"Downloader",inject:["rootApp","io","taskQueue","dp$source"],components:{CardList:Gn,TableList:ho,TableListDetail:Do,IconWithTooltip:oo,AlphabizPanel:Fo,TorrentPayment:wo,SortMenu:Ko,PostCard:Ye,QuickStart:Ma},data(){return{isMobile:Ln["b"].is.mobile||Object(ge["a"])(),currentTab:"downloading",loading:!1,listMode:localStorage.getItem("task-list-mode")||"list",searchText:"",showSearchText:!1,autoRenew:JSON.parse(localStorage.getItem("task-autorenew")||"{}"),sortOption:"createdTime",sortSequence:1,statusText:{},info:{downloadSpeed:0,uploadSpeed:0,progress:0,taskNum:0},showPayment:!1,showTorrentDetail:!1,torrentDetailInfoHash:"",paymentData:{infoHash:"",torrentName:"",peerId:"",address:"",remoteUser:"",remoteSubId:""},paymentSize:1e7,showAlphabizPanel:!1,abTorrentInfoHash:"",lib:s["a"],showChannelPost:!1,channelPost:null,showQuickStartDialog:!1,quickStartTask:null}},computed:{torrentList(){return za["a"].taskList},listComponent(){return"card"===this.listMode?"CardList":"TableList"},displayTab:{get(){return this.currentTab+"Torrents"},set(e){const t=e.replace(/Torrents$/,"");this.$router.push({path:this.$route.path,query:{...this.$route.query,currentTab:t}})}},displayList(){return[{key:"downloadingTorrents",label:this.$t("downloading"),open:!0,list:this.filterTorrent(this.downloadingTorrents||[])},{key:"uploadingTorrents",label:this.$t("uploading"),open:!1,list:this.filterTorrent(this.uploadingTorrents||[])},{key:"downloadedTorrents",label:this.$t("downloaded"),open:!1,list:this.filterTorrent(this.downloadedTorrents||[])}]},currentList(){switch(this.displayTab){case"downloadingTorrents":return this.displayList[0].list;case"uploadingTorrents":return this.displayList[1].list;default:return this.displayList[2].list}},isAllStarted(){return this.currentList.every((e=>!e.paused))},isAllPaused(){return this.currentList.every((e=>e.paused))},noDataMessage(){return this.searchText?this.$t("no_matched_task"):this.$t("no_task")},downloadingTorrents(){const e=this.sortTorrents(this.torrentList.downloading);return e},disableDownloadAll(){return this.loading||this.downloadingTorrents.every((e=>!e.paused))},disablePauseAllDownloading(){return this.loading||this.downloadingTorrents.every((e=>e.paused))},downloadingProgress(){const e=this.torrentList.totalDownloadProgress;return isNaN(e)||0===e&&0===this.downloadingNum?{value:0,label:this.$t("no_downloading_task")}:{value:e,label:Object(M["g"])(e)}},uploadingTorrents(){const e=this.sortTorrents(this.torrentList.uploading);return e},totalDownloadSpeed(){return this.torrentList.totalDownloadSpeed?Object(M["a"])(this.torrentList.totalDownloadSpeed,{byte:!1,gb:!1})+" / s":"0.00 KB / s"},totalUploadSpeed(){if(!this.uploadingTorrents)return"-";const e=this.torrentList.totalUploadSpeed;return Object(M["a"])(e,{byte:!1,gb:!1})+" / s"},downloadedTorrents(){return this.sortTorrents(this.torrentList.downloaded)},torrentItems(){return za["a"].allTasks},torrentDetail(){return this.torrentDetailInfoHash&&this.torrentItems.find((e=>e.infoHash===this.torrentDetailInfoHash))||{}},alphabizTorrent(){return this.abTorrentInfoHash&&this.torrentItems.find((e=>e.infoHash===this.abTorrentInfoHash))||{}},downloadingNum(){return this.downloadingTorrents.filter((e=>!e.paused&&!e.pending&&!(!e.download||1===e.progress))).length},incomes(){let e=0;const t={};for(const i of this.dp$source.dp$incomeTxnListToday){if(!i.meta||"FINISH"!==i.status)continue;e+=i.amount;const a=JSON.parse(i.meta);a.infoHash&&(t[a.infoHash]||(t[a.infoHash]=0),t[a.infoHash]+=i.amount)}let a=0;const n={},o=this.dp$source.dp$incomeStatusMapper.FINISH;if(o)for(const i of o){const e=this.dp$source.dp$incomeTxnDict[i];a+=e.amount;const t=JSON.parse(e.meta).infoHash;n[t]||(n[t]=0),n[t]+=e.amount}return{todayIncome:e,todayTaskIncome:t,allIncome:a,allTaskIncome:n}},totalIncomeInfo(){return 2!==d["a"].state.credits.isModuleInit?this.$t("login_to_see_income"):this.$t("total_income_info",[Number((this.incomes.todayIncome/1e3).toFixed(3)),Number((this.incomes.allIncome/1e3).toFixed(3))])},disableTasks(){return!!d["a"].getters.shouldDisableTasks||!!d["a"].getters.settings.forceLogin&&(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{ensureLogin(e){if(this.disableTasks){if(!d["a"].state.account.authState)return;this.$amplify.showSignedOutDialog()}else"function"===typeof e&&e()},async setLoading(){this.loading=!0,await new Promise((e=>setTimeout(e,1e3))),this.loading=!1},toggleSearchText(e){this.showSearchText=e,e&&this.$nextTick((()=>{this.$refs.searchInput.focus()}))},filterTorrent(e){const t=this.searchText.toLowerCase(),a=e.filter((e=>e.name||e.postTitle?e.postTitle?e.postTitle.toLowerCase().includes(t):e.name.toLowerCase().includes(t):""===t));return a},clearSearch(){this.searchText="",this.$refs.searchInput.blur()},changeListMode(){"list"===this.listMode?this.listMode="card":this.listMode="list",localStorage.setItem("task-list-mode",this.listMode)},byteToLargerSize(e){return Object(M["a"])(e,{byte:!0,gb:!0})},getTorrentListName(e){let t="downloading";return e.isSeeding||e.uploading?t="uploading":e.pending?t="pending":1===e.progress||e.done?t="downloaded":e.paused&&(t="paused"),t},showMagnetDialog(e){this.$root.$emit("openTaskDialog",e)},showDetail(e){this.torrentDetailInfoHash=e.infoHash,this.showTorrentDetail=!0},hideDetail(){this.showTorrentDetail=!1,this.torrentDetailInfoHash=""},showAbPanel({infoHash:e}){this.abTorrentInfoHash=e,this.showAlphabizPanel=!0},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},hideAbPanel(){this.showAlphabizPanel=!1,this.abTorrentInfoHash=""},async shareFile(e){const t=await Jo["Share"].canShare();if(!t.value)return;const a=await Jo["Share"].share({files:["file://"+encodeURI(e)]}).catch((e=>{console.log(e)}));this.$q.notify("Result: "+a.activityType)},showOriginTorrent(e){let t=e.token||e.origin;if(e.isSeeding||e.upload?t=e.magnetURI:e.magnetPath&&(t=e.magnetPath),!t)return this.$q.notify("origin_not_found");qn.a.existsSync(t)?this.io.emit("show_torrent_file",t):(t.startsWith("magnet")||(t="magnet:?xt=urn:btih:"+e.infoHash),e.name&&(t+="&dn="+encodeURIComponent(e.name)),Object(lt["b"])(t),this.$q.notify(this.$t("text_copied")))},async showDirectory(e){if(Object(ge["a"])()){if(1!==e.progress&&!e.done)return this.$q.notify(this.$t("wait_for_downloaded_to_share"));if((await Jo["Share"].canShare()).value){const t=e.files.map((e=>"file://"+e.path));console.log("Files",t,e.path);const a=Ia(t);console.log("pub",a),Jo["Share"].share({files:["file://"+encodeURI(a)],title:"Save"}).catch((e=>{console.log("Share error",e)}))}}if(!qn.a.existsSync(e.path))return this.$q.notify(this.$t("path_missing"));if(e.files&&1===e.files.length&&qn.a.existsSync(e.files[0].path))return this.io.emit("show_torrent_file",e.files[0].path);const t=Aa.a.resolve(e.path,e.postTitle||e.name||"");if(!qn.a.existsSync(t))return this.io.emit("show_torrent_file",e.path);this.io.emit("show_torrent_file",t)},setAutoRenew(e,t){return Object(Yo["c"])(e,t),this.$set(this.autoRenew,e,t)},showPaymentPannel(e){this.paymentData=e,this.showPayment=!0},changeSortOption(e){this.sortOption=e},changeSortSequence(e){this.sortSequence=e},sortTorrents(e){const t=this.sortOption,a=t;switch(a){case"income":{const t=this.incomes.allTaskIncome;return[...e].sort(((e,a)=>t[e.infoHash]?t[a.infoHash]?(t[e.infoHash]-t[a.infoHash])*this.sortSequence:-1:t[a.infoHash]?1:0))}default:return e}},async askForConfirm(e){return new Promise((t=>{this.$q.dialog({persistent:!0,message:e,ok:this.$t("confirm"),cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>t(!0))).onCancel((()=>t(!1)))}))},downloadAll(e=!1){if(console.log("download all!"),this.loading)return console.log("skip downloadAll since loading");this.setLoading(),Object(qa["c"])(e)},async pauseAllDownloading(e=!1){if(!this.torrentList.downloading.length)return console.log("skip pause all downloading");console.log("pauseall"),this.setLoading(),Object(qa["d"])(e)},requestPauseAllDownloading(){this.$q.dialog({title:this.$t("pause_all"),message:this.$t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("pause_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.pauseAllDownloading()}))},removeAllDownloading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_downloading_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles");if(t&&d["a"].state.video.currentVideo.infoHash){const e=this.downloadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","download",t);for(const a of this.downloadingTorrents)this.io.emit("delete_torrent",a.infoHash,t);d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},pauseAllUploading(e=!1){this.torrentList.uploading.length&&(this.setLoading(),Object(qa["e"])(e))},removeAllUploading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_upload_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"},{label:this.$t("remove_autoupload_files"),value:"deleteAutoUpload"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles"),a=e.includes("deleteAutoUpload");if(t&&d["a"].state.video.currentVideo.remotePlay&&d["a"].state.video.currentVideo.infoHash){const e=this.uploadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){var n,o,i;const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;console.log(null===(n=this.$refs.videoJsPlayer)||void 0===n?void 0:n.player),null===(o=this.$refs.videoJsPlayer)||void 0===o||null===(i=o.player)||void 0===i||i.stop(),this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","upload",t,a),d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},async uploadAll(e=!1){const t=Object(qa["h"])(e);if(console.log("rest",t),t<=this.downloadedTorrents.length)return void console.log("Skip watch: nothing to upload");this.loading=!0;let a=null;const n=new Promise((e=>a=e)),o=this.$watch("downloadedTorrents",(e=>{e.length<=t&&(o(),this.loading=!1,console.log("upload done"),a())}));return setTimeout((()=>{this.loading&&(this.loading=!1,o(),a())}),5e3),n},pauseTorrent(e){this.setLoading(),Object(qa["f"])(e,this)},resumeTorrent(e){e&&this.ensureLogin((()=>{this.setLoading(),console.log("resume",e),this.io.emit("resume_torrent",e)}))},deleteTorrent(e){this.ensureLogin((async()=>{if(e.infoHash&&d["a"].state.video.currentVideo.remotePlay&&e.infoHash===d["a"].state.video.currentVideo.infoHash){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(a){const t=await za["a"].deleteTask(e);if(!t)return;this.io.emit("trigger_clear_player",e.infoHash)}}else za["a"].deleteTask(e)}))},clearAll(){this.ensureLogin((()=>{this.$q.dialog({title:this.$t("clear_history"),message:this.$t("remove_all_history"),ok:this.$t("remove_all"),cancel:this.$t("not_now")}).onOk((()=>{this.setLoading();for(const e of this.downloadedTorrents)this.io.emit("delete_torrent",e.infoHash)}))}))},startPayment(e,t=!1){Object(Yo["d"])(e,t)},async createPayment(e,t=!1){await Object(Yo["a"])(e,t,this),t||(this.showPayment=!1)},setThrottleGroup(e){this.io.emit("set_throttle_group",e)},saveTorrentFile(e){this.io.emit("save_torrent_file",e)},play(e,t){(Zo||Object(ge["a"])())&&(console.log("run play():"+t+", "+e),d["a"].dispatch("remotePlay",t),this.io.emit("play-torrent",{infoHash:t,filepath:e}))},showQuickStart(e){this.quickStartTask=e,this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1,this.quickStartTask=null}},created(){this.io.on("client_info",(e=>{this.info=e}))},mounted(){if(Object.keys(this.autoRenew).length)for(const e in this.autoRenew)Object(Yo["c"])(e,this.autoRenew[e])},beforeRouteEnter(e,t,a){if(console.log("before enter",e,t),"/downloader"!==e.path)return a();console.log("is downloader"),e.query.currentTab?(console.log("current tab:",e.query.currentTab),a((t=>{t.currentTab=e.query.currentTab}))):(console.log("not current tab",e.query),a({path:e.path,query:{...e.query,currentTab:"downloading"}}))},beforeRouteUpdate(e,t,a){console.log("before update",e,t),this.currentTab=e.query.currentTab,a()},watch:{autoRenew(e){localStorage.setItem("task-autorenew",JSON.stringify(e))}}},ei=Xo,ti=(a("7297"),a("b2b4"),a("9b72")),ai=a("832a"),ni=a("917f"),oi=a("c72d"),ii=Object(v["a"])(ei,Pn,An,!1,null,"540e1290",null),ri=ii.exports;S()(ii,"components",{QPage:ti["a"],QHeader:ai["a"],QToolbar:ce["a"],QSpace:W["a"],QBtn:A["a"],QInput:E["a"],QIcon:G["a"],QTooltip:V["a"],QLinearProgress:zt["a"],QTabPanels:ni["a"],QTabPanel:oi["a"],QPageSticky:tt["a"],QDialog:I["a"]});var si=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"file"},on:{change:e.onFileChange}}),a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("span",[e._v("\n "+e._s(e.$t("web_mode_hint"))+"\n "),a("a",{staticClass:"doc-link",attrs:{href:"https://alpha.biz",target:"_blank"}},[e._v("\n "+e._s(e.$t("go_to"))+" alpha.biz\n "),a("q-icon",{attrs:{name:"open_in_new"}})],1)])])],1),a("div",{staticClass:"task-container"},[e.task.magnetURI||e.task.origin||e.task.isSeeding?a("CardItem",{attrs:{torrent:e.task},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart,saveFile:e.saveFile,saveZip:e.saveZip}}):a("div",{staticClass:"no-task"},[a("div",{staticClass:"add-hints"},[e._v("\n "+e._s(e.$t("web_mode_task_hint"))+"\n ")]),a("q-btn",{staticClass:"add-button",attrs:{color:"primary",icon:"add",size:"lg"},on:{click:e.showDownload}},[a("q-tooltip",[e._v(e._s(e.$t("download")))])],1),a("q-btn",{staticClass:"add-button q-ml-md",attrs:{color:"primary",icon:"cloud_upload",size:"lg"},on:{click:e.showUpload}},[a("q-tooltip",[e._v(e._s(e.$t("upload")))])],1)],1)],1)]),a("q-dialog",{model:{value:e.showInput,callback:function(t){e.showInput=t},expression:"showInput"}},[a("q-card",{staticClass:"url-input"},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("download")))]),a("q-input",{attrs:{type:"text",label:"Task URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.taskUrl,callback:function(t){e.taskUrl=t},expression:"taskUrl"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:"Cancel",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{color:"primary",icon:"add",label:e.$t("add")},on:{click:e.addTask}})],1)],1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TableListDetail",{attrs:{show:e.showTaskDetail,torrent:e.task,paymentSize:10},on:{close:e.hideDetail}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.task,paymentSize:10},on:{close:e.hideAbPanel}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.task},on:{input:e.hideQuickStartDialog}})],1)},li=[],ci=(a("f200"),a("09e8")),di=a("7d7c"),ui=(a("dc89"),a("2425"),a("3cc3")),_i=a.n(ui);const pi=(e,t)=>{const a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=e,document.body.appendChild(n),n.click(),setTimeout((()=>{URL.revokeObjectURL(a),n.remove()}),3e4)};async function mi(e){return new Promise((t=>{e.getBlob(((a,n)=>{if(a)throw a;pi(e.name,n),t()}))}))}async function hi(e){if(!e.done)return;const t=Object(Pa["basename"])(e.name,Object(Pa["extname"])(e.name))+".zip",a=new _i.a,n=e.files;await Promise.all(n.map((e=>new Promise(((t,n)=>{e.getBlob(((o,i)=>{if(o)return n(o);a.file(e.path,i),t()}))}))))),n.length>1&&a.folder(e.postTitle||e.name);const o=await a.generateAsync({type:"blob"});return pi(t,o)}var gi=a("c620"),fi={components:{CardItem:Wn,TableListDetail:Do,AlphabizPanel:Fo,QuickStart:Ma,PostCard:Ye},mixins:[ci["a"]],name:"Downloader",data(){return{locked:!1,showInput:!1,showTaskDetail:!1,showAlphabizPanel:!1,showQuickStartDialog:!1,showChannelPost:!1,channelPost:null,taskUrl:"",task:{}}},computed:{isReady(){return this.task.name&&this.task.length},displayName(){return this.task.postTitle?this.task.postTitle:this.task.name?this.task.name:this.$t("loading")},taskAction(){return this.task.paused?this.task.done?this.$t("upload"):this.$t("resume"):this.task.isSeeding?this.$t("stop_torrent"):this.$t("pause")},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{async showDownload(){this.taskUrl="",this.showInput=!0,await this.$nextTick();const e=await Object(lt["a"])();if(e&&"string"===typeof e){const t=e.trim();if([Ee["protocol"],Ee["shortProtocol"],"magnet"].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(Se["a"])(t);if(!e||!e.startsWith("magnet"))return;this.taskUrl=t}}},async showUpload(){this.$refs.fileSelector.click()},showDetail(){this.showTaskDetail=!0},hideDetail(){this.showTaskDetail=!1},switchState(){console.log("on switch state")},addTask(){Z["a"].emit("wt-add",this.taskUrl)},deleteTorrent(){this.$q.dialog({title:this.$t("delete_task"),message:this.$t("delete_confirm_message"),cancel:{color:"primary",flat:!0,label:this.$t("not_now")},ok:{color:"red",flat:!0,label:this.$t("delete")}}).onOk((()=>{Z["a"].emit("wt-delete",this.task.infoHash),this.task={}}))},pauseTorrent(){Z["a"].emit("wt-pause",this.task.infoHash),this.task.paused=!0},resumeTorrent(){this.task&&this.task.magnetURI&&(this.task.paused=!1,Z["a"].emit("wt-resume",this.task.infoHash))},play(e){console.log("onplay",e),Object(di["default"])(e)},showPaymentPannel(){},showAbPanel(){this.showAlphabizPanel=!0},hideAbPanel(){this.showAlphabizPanel=!1},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},onFileChange(e){const t=e.target;t&&t.files&&t.files.length&&(console.log("To upload",t.files[0]),Z["a"].emit("wt-add",t.files[0])),t.value=null},showQuickStart(){this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1},saveFile(e){const t=gi["wtClient"].torrents[0];if(!t||!t.files)return;const a=t.files.find((t=>t.path===e.path))||t.files.find((t=>t.name===e.name));if(!a)return;const n=this.$q.dialog({title:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{mi(a).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>n.hide()))}))},saveZip(){const e=this.$q.dialog({message:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{hi(gi["wtClient"].torrents[0]).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>e.hide()))}))}},created(){console.log("[wt] created"),Z["a"].on("weberror",((...e)=>this.$q.notify(...e))),Z["a"].on("wt-task",(e=>{this.task=Array.isArray(e)?e[0]:e}))}},bi=fi,yi=(a("5ab7"),Object(v["a"])(bi,si,li,!1,null,"71beeddd",null)),vi=yi.exports;S()(yi,"components",{QPage:ti["a"],QHeader:ai["a"],QToolbar:ce["a"],QIcon:G["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]}),S()(yi,"directives",{ClosePopup:K["a"]});const wi=[{name:"MainLayout",path:"/",redirect:"/library",component:()=>Promise.all([a.e(0),a.e(3)]).then(a.bind(null,"2cae")),children:[{name:"Library",path:"/library",component:he,children:[{name:"LibraryExplore",path:"explore",component:Ot},{name:"LibraryFollowing",path:"following",component:Rt},{name:"LibraryFavorites",path:"favorite",component:Qt},{name:"LibraryEdit",path:"edit",component:Ha},{name:"LibraryChannel",path:"channel",component:nn},{name:"LibraryCreator",path:"creator",component:dn},{name:"LibraryTakeDown",path:"takedown",component:wn},{name:"LibraryIndex",path:"",component:zn}]},{name:"Downloader",path:"/downloader",component:Object(X["isElectron"])()||Object(ge["a"])()?ri:vi},{name:"Player",path:"/player",component:()=>a.e(8).then(a.bind(null,"d8f8"))},{name:"Credits",path:"/credits",component:()=>a.e(6).then(a.bind(null,"316f"))},{name:"Blockchain",path:"/blockchain",component:()=>a.e(9).then(a.bind(null,"4b4f"))},{name:"AccountSettings",path:"/account/settings",component:()=>Promise.all([a.e(0),a.e(2)]).then(a.bind(null,"6b91"))},{name:"BasicSetting",path:"/basicSetting",component:()=>Promise.all([a.e(0),a.e(5)]).then(a.bind(null,"9ff7"))},{name:"AdvanceSetting",path:"/advanceSetting",component:()=>Promise.all([a.e(0),a.e(4)]).then(a.bind(null,"154e"))},{name:"Development",path:"/development",component:()=>Promise.resolve().then(a.bind(null,"39df"))}]},{name:"Error",path:"*",component:()=>a.e(10).then(a.bind(null,"183d"))}];var ki=wi;n["a"].use(o["a"]);const Si=o["a"].prototype.push;o["a"].prototype.push=function(e){return Si.call(this,e).catch((e=>e))};let Ci=null;function xi(){return Ci}t["a"]=function(){const e=new o["a"]({scrollBehavior:()=>({x:0,y:0}),routes:ki,mode:"history",base:"/"});return Ci=e,e}},"61dc":function(e,t,a){"use strict";a("d34c")},6422:function(e,t,a){"use strict";a.d(t,"e",(function(){return i})),a.d(t,"a",(function(){return r})),a.d(t,"g",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return h}));a("a1c1"),a("de6c");var n=a("4fd2");const o=(e,t="0",a=2)=>(t.repeat(a)+e).slice(-a),i=e=>{if("number"!==typeof e)return"-";const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n<60)return`00:${o(n)}:${o(a)}`;const i=n%60,r=(n-i)/60;return r>23?"> 24h":`${o(r)}:${o(i)}:${o(a)}`},r=(e,{byte:t=!0,gb:a=!0,fix:n=2}={})=>{if("number"!==typeof e)return"-";if(e<1e3&&t)return e.toFixed(2)+" Byte";const o=e/1e3;if(isNaN(o))return t?"0 Byte":"0 KB";if(o<1e3)return o.toFixed(n)+" KB";const i=o/1e3;if(i<1e3||!a)return i.toFixed(n)+" MB";const r=i/1e3;return r.toFixed(n)+" GB"},s=e=>"number"!==typeof e?"0%":1===e?"100.00%":e>.9999?"99.99%":(100*e).toFixed(2)+"%",l=e=>{const t={icon:"insert_drive_file",tooltip:"unknown"};if(0===e.length)return t;if(e.length>1)return{icon:"folder",tooltip:"folder"};const a=e[0].match(/\.[^.]+?$/);if(!a)return t;const o=a[0].substring(1);return Object(n["b"])(o)?{icon:"audio_file",tooltip:"audio"}:Object(n["c"])(o)?{icon:"video_file",tooltip:"video"}:["ass","vtt","srt"].includes(o)?{icon:"subtitles",tooltip:"subtitle"}:["jpg","jpeg","png","bmp","gif","webp"].includes(o)?{icon:"image",tooltip:"image"}:["zip","rar","gzip","gz","tar"].includes(o)?{icon:"folder_zip",tooltip:"zip"}:["txt","text"].includes(o)?{icon:"description",tooltip:"text"}:t},c=()=>navigator.userAgent.includes("Windows NT"),d=/(\/private)?\/var\/mobile\/Containers\/Data\/Application\/[a-zA-Z0-9-]+\/Documents\//,u=e=>e.match(d)?e.replace(d,""):e,_=(e,t=[],a=!1)=>{const n=c()||a?"\\":"/",o=e.map((e=>e.split(n))),i={};for(const s of o){let e=i;for(const t of s)e[t]||(e[t]={}),e=e[t]}let r=i,l=null,d="";try{do{const e=Object.keys(r)[0];d=d+e+n,l=r,r=r[e]}while(1===Object.keys(r).length)}catch(m){return null}d=d.split(n).slice(0,-1).join(n);const _={[d]:l[Object.keys(l)[0]]},p=(e,a="")=>{const o=Object.keys(e)[0],i=a?a+n+o:o,r=e[o];if(r&&Object.keys(r).length>0)return{label:u(o),path:u(i),fullPath:i,children:Object.keys(r).map((e=>p({[e]:r[e]},i)))};const l=t.find((e=>e.path===i)),c=u(o),d=c.length>52?c.slice(0,4)+"..."+c.slice(-40):c;return{progress:l?s(l.progress):"-",done:1===l.progress,label:d,fullPath:i,path:i}};return p(_)},p=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),m=e=>[e.getFullYear(),e.getMonth()+1,e.getDate()].map((e=>o(e))).join("-"),h=(e,t,a=navigator.language)=>{if(!e)return"-";const n=new Date(e),o=new Date;return p(n,o)?n.toLocaleTimeString(a):(o.setDate(o.getDate()-1),p(n,o)?t?t("yesterday"):"yesterday":(o.setDate(o.getDate()-1),p(n,o)?t?t("before_yesterday",{empty:m(n)}):"before yesterday":m(n)))}},6432:function(e){e.exports=JSON.parse('{"lib_index":"Rumah","lib_edit":"Menerbitkan","lib_publish":"Menerbitkan","lib_explore":"Mengeksplorasi","lib_following":"Mengikuti","lib_favorite":"Favorit Lokal","lib_local_favorites":"Favorit Lokal","lib_channel":"Saluran","lib_submit":"Kirim","lib_from_network":"Menggunakan database terdesentralisasi dari jaringan","welcome_to_lib":"Selamat datang di ${displayName} Perpustakaan Media","register_or_login":"Daftar/Masuk","lib_recommend":"Menyarankan","lib_recommend_desc":"Selamat datang di ${displayName} Perpustakaan! Perpustakaan ini menggunakan database terdesentralisasi dari jaringan. Untuk mulai menggunakannya, Anda perlu mengikuti beberapa saluran.","follow_any_channel_to_continue":"Ikuti saluran apa pun untuk melanjutkan","follow_channels_and_continue":"Ikuti saluran {0} dan lanjutkan","show_more_for_me":"Tampilkan lebih banyak untuk saya","no_more_recommend":"Tidak ada lagi rekomendasi","key":"Kunci","create_key":"Buat kunci","save_key":"Simpan kunci","save_key_file":"Apakah Anda ingin menyimpan kunci Anda sebagai file?","import_key":"Kunci impor","import":"Impor","invalid_key":"Kunci tidak sesuai","back_to_top":"Kembali ke atas","search_for_channel":"Telusuri ID saluran","search_channel_no_result":"Tidak dapat menemukan saluran dengan ID {0}","please_input_channel_id":"Masukkan ID saluran","welcome_help_text":"Ini adalah perpustakaan media terdesentralisasi. Anda membutuhkan\\n untuk membuat akun untuk database ini. Kami akan\\n menghasilkan kunci pribadi untuk Anda secara otomatis.\\n Jika Anda sudah memiliki kunci, Anda juga dapat mengimpor\\n itu disini.","welcome_key_text":"Setelah Anda masuk, silakan klik tombol [SAVE KEY].\\n di pojok kanan bawah untuk menyimpan kunci pribadi Anda.\\n Jika Anda kehilangan kunci, Anda mungkin tidak dapat masuk lagi.","redirect_to_recommend":"Sepertinya Anda belum mengikuti saluran mana pun. Mengalihkan ke halaman [Jelajahi].","channel":"Saluran","follow":"Mengikuti","unfollow":"Berhenti mengikuti","following":"Mengikuti","share":"Membagikan","unfollow_confirm":"Apakah Anda yakin untuk berhenti mengikuti saluran ini? Semua postingan saluran ini di linimasa Anda akan dihapus.","follow_failed_hint":"Operasi masih tertunda di latar belakang. Jika operasi tidak diterapkan untuk waktu yang lama, harap mulai ulang aplikasi dan coba lagi.","block":"Memblokir","unblock":"Buka blokir","blocked":"Diblokir","block_channel":"Blokir saluran ini","block_channel_confirm":"Blokir saluran akan menghapusnya dari garis waktu Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","block_creator":"Blokir pembuat saluran ini","unblock_creator":"Bebaskan pembuat saluran ini","block_creator_confirm":"Pembuat blok akan menghapus semua saluran yang dibuat oleh pembuat ini dari linimasa Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","share_url_copied":"Bagikan URL disalin ke clipboard Anda","follow_time":"Ikuti waktu","update_time":"Perbarui waktu","search":"Mencari","type":"Jenis","added":"Ditambahkan","click_to_task":"Klik untuk pergi ke tugas","lib_already_added":"Anda telah menambahkan video ini","description":"Keterangan","poster":"Poster","channel_poster":"Poster saluran","preview":"Pratinjau","creator":"Pencipta","creator_detail":"Detail pencipta","loading_creator":"Memuat info kreator","wait_for_creator_loaded":"Harap tunggu info kreator dimuat.","follower":"Pengikut","followers":"Pengikut","follower_list":"Daftar pengikut","user":"Pengguna","channel_title":"Judul saluran","channel_id":"ID saluran","post_title":"Judul postingan","post_id":"ID pos","import_data_from_excel":"Impor data dari excel","set_excel_keys":"Atur kunci excel","excel_import_succeded":"Impor Excel berhasil","excel_import_success_msg":"{0} baris siap untuk ditambahkan, {1} tidak valid dan {2} item duplikat diabaikan","cannot_find_channel":"Tidak dapat menemukan saluran","cannot_find_posts":"Tidak dapat menemukan postingan","add_channel":"Tambahkan saluran","add_post":"Tambahkan postingan","edit_channel":"Edit saluran","channel_setting":"Pengaturan saluran","edit_post":"Sunting pos","edit_posts":"Mengedit posting","channel_detail":"Detail saluran","remove":"Menghapus","remove_channel":"Hapus saluran","remove_channel_confirm":"Yakin ingin menghapus postingan ini? Ini tidak dapat dipulihkan.","remove_post":"Hapus postingan","remove_post_confirm":"Yakin ingin menghapus saluran ini? Ini tidak dapat dipulihkan.","preview_mode":"Mode Pratinjau","preview_mode_desc":"Ini adalah pratinjau saluran Anda. Semua tarif film ditampilkan di sini.","edit_user_profile":"Edit profil pengguna","name":"Nama panggilan","avatar":"Avatar","no_following":"Tidak ada saluran berikut. Klik untuk pergi","no_recommend":"Tidak ada saluran yang direkomendasikan. Klik untuk pergi","first_recomment_msg":"Mungkin perlu beberapa saat jika ini adalah pertama kalinya aplikasi diluncurkan.","invalid_image":"Gambar tidak valid","image_not_reachable":"Url gambar ini tidak dapat dijangkau.","channel_not_found":"Saluran tidak ditemukan","cannot_get_channel_info":"Tidak bisa mendapatkan info saluran. Saluran ini mungkin dihapus oleh pembuatnya dan tidak tersedia lagi.","validate_error":"Validasi kesalahan","validate_user_name_no_space":"Nama pengguna tidak boleh mengandung spasi","validate_url_no_space":"URL tidak boleh mengandung spasi","validate_user_name_length":"Nama pengguna harus memiliki panjang antara {0} dan {1}","validate_user_desc_length":"Deskripsi pengguna tidak boleh lebih dari {0} karakter","validate_user_avatar_url":"Avatar pengguna harus url dengan kurang dari 2048 karakter","validate_channel_title_length":"Judul saluran harus memiliki panjang antara 1 dan 100","validate_channel_desc_length":"Deskripsi saluran harus memiliki panjang antara 10 dan 300","validate_channel_image_url":"Pratinjau saluran harus berupa url dengan kurang dari 2048 karakter","validate_post_title_length":"Judul posting harus memiliki panjang antara 1 dan 100","validate_post_desc_length":"Deskripsi postingan harus memiliki panjang antara 10 dan 300","validate_post_image_url":"Poster harus url dengan kurang dari 2048 karakter","validate_post_url":"URL ${displayName} tidak valid","validate_post_url_length":"${displayName} URL tidak boleh lebih dari 2048 karakter","film_rate":"Tingkat film","set_film_rate":"Tetapkan kecepatan film","select_a_rate_before_enter":"Anda harus memilih kecepatan film sebelum masuk ke perpustakaan media.","library_available_rate":"Tingkat film yang tersedia di perpustakaan","rate_g":"G – Audiens Umum","rate_g_desc":"Semua umur diterima. Tidak ada yang menyinggung perasaan orang tua karena dilihat oleh anak-anak.","rate_pg":"PG – Disarankan Bimbingan Orang Tua","rate_pg_desc":"Beberapa bahan mungkin tidak cocok untuk anak-anak. Orang tua dihimbau untuk memberikan “bimbingan orang tua”. Mungkin berisi beberapa materi yang mungkin tidak disukai orang tua untuk anak kecil mereka.","rate_pg_13":"PG-13 – Orang Tua Sangat Diwaspadai","rate_pg_13_desc":"Beberapa materi mungkin tidak pantas untuk anak di bawah 13 tahun. Orang tua diimbau untuk berhati-hati. Beberapa materi mungkin tidak pantas untuk pra-remaja.","rate_r":"R – Dibatasi","rate_r_desc":"Di bawah 17 tahun membutuhkan pendamping orang tua atau wali dewasa. Berisi beberapa materi dewasa. Orang tua didesak untuk mempelajari lebih lanjut tentang film tersebut sebelum membawa serta anak-anak mereka yang masih kecil.","rate_nc_17":"NC-17 – Khusus Dewasa","rate_nc_17_desc":"Tidak Ada yang Berusia 17 Tahun ke Bawah yang Diakui. Jelas dewasa. Anak-anak tidak diterima.","set_as_private":"Tetapkan sebagai pribadi","hide_in_explore":"Sembunyikan saluran ini di halaman jelajahi","hidden":"Tersembunyi","select_a_rate":"Silakan pilih tarif film","select_from_tasks":"Pilih dari tugas","import_from_magnet":"Impor dari magnet:?...","input_magnet_url":"Masukan magnet:? url","task_title":"Judul tugas","set_title":"Tetapkan judul","add_to_local_favorites":"Tambahkan ke favorit lokal","remove_from_local_favorites":"Hapus dari favorit lokal","removed_favorite":"Favorit dihapus","import_or_export_favorites":"Impor/Ekspor Favorit","export_local_favorites":"Ekspor favorit lokal sebagai cadangan","import_favorites_file":"Impor file favorit","not_a_favorite_file":"File ini bukan file cadangan favorit","connection_status":"Status hubungan","gun_server_list":"Node Cache","custom_nodes":"Node cache khusus","custom_nodes_hint":"Node cache khusus akan diterapkan setelah aplikasi diluncurkan kembali","wait_for_reboot":"Menunggu reboot...({seconds}s)","reboot_now":"Nyalakan ulang","reboot_later":"Mulai ulang nanti","peer_list":"Node Langsung","server":"URL simpul","peer":"Rekan","peer_id":"ID simpul","connection":"Koneksi","data_source":"Sumber data","sync":"Sinkronkan","syncing":"Menyinkronkan","sync_completed":"Sinkronisasi selesai","got_all_post":"Anda sudah mendapatkan semua posting","placeholder_channel_title":"Nama Saluran Anda","placeholder_channel_desc":"Deskripsi tentang saluran ini","placeholder_post_title":"Nama Film (Tahun)","placeholder_post_desc":"Deskripsi tentang film ini","private_channel":"Saluran pribadi","creator_blocked":"Kreator diblokir","go_to_library":"Pergi ke perpustakaan?","go_to_library_channel_msg":"Apakah Anda ingin pergi ke saluran perpustakaan {0}?","magnet_does_not_have_name":"Magnet ini:? url tidak memiliki nama, Anda perlu menambahkan judul posting terlebih dahulu.","no_available_post":"Tidak ada pos yang tersedia","following_channel_no_post":"Semua saluran Anda berikut tidak memiliki pos yang tersedia. Ini mungkin disebabkan oleh kesalahan jaringan. Jika Anda telah mengikuti beberapa saluran, postingan dapat dimuat nanti.","share_to_library":"Bagikan ke perpustakaan","quick_start":"Mulai cepat","quick_start_desc":"Mulailah membuat postingan dengan tugas atau file","select_file":"Pilih file...","select_folder":"Pilih folder...","post_options":"Opsi pos","channel_options":"Opsi saluran","create_new_channel":"Buat saluran baru","use_existed_channel":"Gunakan saluran yang ada","select_existed_channel":"Pilih saluran yang ada","uploaded_by":"{title} diunggah oleh {name}","created_by":"{title} dibuat oleh {name}","creating_new_channel":"Membuat saluran baru...","created_new_channel":"Saluran baru dibuat","creating_new_post":"Membuat postingan baru...","created_new_post":"Posting baru dibuat","create_new_post":"Buat postingan baru","quick_start_timeout":"{0} batas waktu habis. Ini mungkin disebabkan oleh kesalahan jaringan. Coba lagi nanti.","file_too_large":"Berkas terlalu besar","file_too_large_msg":"File ini lebih besar dari 4GB ({size}) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk melanjutkan?","resolving_folder_files":"Menyelesaikan file folder...","folder_too_large":"Folder terlalu besar","folder_too_large_msg":"File dalam folder ini lebih besar dari 4GB ({size} total) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk mengunggah?","creating_new_task":"Membuat tugas baru...","cannot_create_task":"Tidak dapat membuat tugas","cannot_create_task_msg":"Hal ini dapat disebabkan oleh beberapa kesalahan. Jika tugas dibuat dengan benar, Anda dapat memeriksa daftar tugas nanti.","cannot_get_task_name":"Tidak bisa mendapatkan nama tugas. Anda harus memasukkannya terlebih dahulu.","remove_old_task":"Hapus tugas lama","remove_old_task_desc":"Mode web hanya dapat membuat satu tugas sekaligus. Apakah Anda ingin menghapus tugas lama?","subtitle_list":"Daftar subtitle","optional":"opsional","with_subtitle":"Dengan subtitel {language}","maximumSubtitleNum_limit":"Jumlah subtitle telah mencapai maksimum","add_subtitle_url":"Tambahkan tautan unduhan subtitle","cannot_add_subtitle":"Gagal menambahkan subtitel","cannot_add_subtitle_msg":"Bahasa subtitle tidak dipilih atau tautan unduhan tidak valid.","support_subtitle_type":"Hanya subtitle dalam format srt dan vtt yang didukung.","recommend_opensubtitles":"Disarankan untuk menggunakan link atau id download subtitle di www.opensubtitles.org.","take_down":"Menurunkan","serious_violation":"Pelanggaran Berat","copyright_disputes":"Sengketa Hak Cipta","adults_only":"Hanya untuk orang dewasa","takedown_reason":"Alasan penghapusan","takedown_mode":"Modus penghapusan","admins":"Admin","takedown_user":"Hapus kreator ini","takedown_channel":"Hapus saluran ini","takedown_post":"Hapus postingan ini","select_takedown_reason":"Pilih alasan penghapusan","takedown_invalid_reason":"Alasan penghapusan tidak valid","takedown_invalid_user_id":"Id pengguna tidak valid. Id harus menyertakan 87 karakter","takedown_invalid_channel_id":"Id saluran tidak valid. ID harus menyertakan 20 karakter","takedown_invalid_post_id":"ID pos tidak valid. ID harus menyertakan 20 karakter","takedown_management":"Turunkan manajemen","users":"Pengguna","channels":"Saluran","posts":"Posting","you":"Anda","preset":"Prasetel","admin":"Admin","committee":"Komite","about_takedown_mode":"Tentang mode penghapusan:\\nPreset: Dikonfigurasi di repositori github. Semuanya akan dihapus dari perpustakaan.\\nAdmin: Siapa pun yang dipilih oleh admin akan dihapus.\\nKomite: Setidaknya setengah dari suara admin akan dihapus.","cannot_edit_preset":"Anda tidak dapat mengedit baris ini karena merupakan baris preset","cannot_edit_not_vote":"Anda tidak dapat mengedit baris ini karena Anda belum memilihnya","remove_vote":"Hapus suara Anda","post_preload_failed":"Gagal mempramuat pos ini. Tautan unduhan mungkin sudah kedaluwarsa, sehingga postingan ini tidak dapat langsung diputar.","about_cache_node":"Tentang simpul cache","edit_cache_node":"Edit simpul cache","create_cache_node":"Buat simpul cache","about_cache_node_desc":"${displayName} menggunakan server gun sebagai node cache. Anda dapat mengedit node khusus di pengaturan sebelumnya","learn_how_to_deploy_gun":"Pelajari cara menerapkan server senjata Anda sendiri","repeat_add":"Tugas telah ditambahkan, Tolong jangan tambahkan lagi","upload":"Mengunggah","download":"Unduh","delete":"Menghapus","delete_task":"Hapus tugas","delete_confirm_message":"Hapus tugas ini? Ini tidak dapat dibatalkan","also_delete_files":"Hapus juga file","default_delete_files":"Hapus default file yang diunduh setelah menghapus tugas","not_now":"Tidak sekarang","delete_autoupload_confirm":"Tugas ini berisi file yang Anda masukkan ke direktori unggah otomatis. Hapus tugas ini juga akan menghapus file.","delete_anyway":"Tetap hapus","upload_too_many_files":"Unggah terlalu banyak file","ask_if_unlimit_upload_amount":"Direktori upload otomatis berisi terlalu banyak file. Apakah Anda ingin menonaktifkan batasan jumlah unggahan? *Ini dapat menyebabkan masalah kinerja","disable_limitation":"Nonaktifkan batasan","not_length":"Operasi multi file tidak didukung saat ini, Mohon kerjasamanya","download_torrent":"Unduh berkas","upload_torrent":"Unggah data","files":"File","file":"Mengajukan","folder":"Map","start_all":"Mulai semua","pause_all":"Jeda semua","remove_all":"Hapus semua","upload_all":"Unggah semua","clear_history":"Hapus riwayat","pause_all_finish_payments":"Ini akan menyelesaikan semua pembayaran.","accelerating":"Mempercepat","link_task":"Tugas tautan","torrent_task":"Tugas berkas","ok":"OKE","cancel":"Membatalkan","download_directory_position":"Unduh posisi direktori","torrent_file":"berkas tugas","magnetic_link_incorrect":"Format tautan salah","delete_fail":"Hapus gagal","pause":"Berhenti sebentar","paused":"Dijeda","stop_torrent":"Berhenti","seed":"Benih","resume":"Melanjutkan","downloading":"Mengunduh","downloaded":"Diunduh","uploading":"Mengunggah","auto_uploading":"Mengunggah otomatis","uploaded":"Diunggah","pending":"Menunggu tugas lainnya","verifying":"Memverifikasi","waiting_for_verify":"Menunggu verifikasi","seeding":"Penyemaian","completed":"Lengkap","status":"Status","task_name":"Nama tugas","size":"Ukuran","progress":"Kemajuan","sort":"Menyortir","ascending":"Naik","descending":"Menurun","file_loading":"Memuat berkas...","loading":"Memuat","unknown_status":"Tidak dikenal","play_while_downloading":"Bermain...","upload_or_play":"Unggah / Putar","play":"Bermain","ask_if_upload_file":"Unggah data?","ask_if_upload_or_play":"Unggah atau putar file?","torrent_error":"Kesalahan saat menambahkan tugas:","no_peers":"Coba lagi lebih dari {0} kali dan tidak ada peer yang tersedia","torrent_exists":"Tugas sudah ada.","show_origin_torrent":"Dapatkan file atau url tugas asli","show_directory":"Buka direktori torrent ini","task_num":"Tugas","total_upload_speed":"Kecepatan mengunggah","total_download_speed":"Kecepatan unduh","path_missing":"Kesalahan: tidak dapat menemukan jalur torrent","origin_not_found":"Tidak dapat menemukan info tugas asal.","text_copied":"Url magnum disalin ke clipboard Anda","copy_magnet_uri":"Salin magnet:? URI","copy_download_uri":"Salin URI unduhan","copy_share_uri":"Salin bagikan URI","uri_copied":"URI berhasil disalin ke clipboard Anda","uri_copy_failed":"Gagal menyalin uri","more":"Lagi...","toggle_list_mode":"Beralih mode daftar","comment":"komentar","operations":"Operasi","open_directory":"Buka direktori","no_downloading_task":"Tidak ada tugas mengunduh","remove_all_downloading_tasks":"Hapus semua tugas pengunduhan?","remove_all_upload_tasks":"Hapus semua tugas upload?","remove_autoupload_files":"Hapus file unggahan otomatis","remove_all_history":"Hapus semua histori?","remaining":"Tersisa","created_time":"Waktu yang diciptakan","used_time":"Waktu yang digunakan","completed_time":"Selesai waktu","yesterday":"Kemarin","before_yesterday":"{empty}","earlier":"Lebih awal","miss_file":"Beberapa file hilang","delete_miss_file_task":"Ada file fome yang hilang di {0}.","common_peer":"Rekan biasa","ab_peer":"${displayName} sesama","ab_peer_verified":"Terverifikasi ${displayName} peer","ab_peer_available":"${displayName} peer tersedia","alphabiz_accelerating":"${displayName} percepatan","income":"Penghasilan","income_info":"Pendapatan(hari ini/total)","total_income_info":"Penghasilan: {0}(hari ini) / {1}(total)","login_to_see_income":"Login untuk melihat statistik pendapatan","credit_cost":"Biaya kredit","downloaded_by_payment":"Diunduh oleh Pembayaran","file_not_found":"Tidak dapat menemukan file ini di lokal","no_task":"Tidak bertanya","no_matched_task":"Tidak ada tugas yang cocok","space_not_enough":"Ruang disk tidak cukup","need_more_space":"Perlu {0} lebih banyak ruang tetapi disk saat ini memiliki {1} gratis ({2} dicadangkan). Tugas dijeda. Pramuat perpustakaan dinonaktifkan. Anda dapat mengaktifkannya kembali di [Pengaturan - Lanjutan].","seeders":"Seeder","last_update":"Pembaharuan Terakhir","connecting":"Menghubungkan","connected":"Terhubung","request_timed_out":"Waktu permintaan habis","connection_failed":"Koneksi gagal","invalid_download_url":"URL unduhan tidak valid","download_link":"tautan unduhan","empty_files":"Tidak ada file dalam direktori","duplicate_task":"Tugas duplikat","duplicate_tracker":"Pelacak duplikat","this_task_not_ready":"Tugas ini belum siap. Jeda tugas ini akan langsung menghapusnya.","some_task_not_ready":"Beberapa tugas belum siap. Jeda tugas ini akan langsung menghapusnya.","failed_to_delete_files":"Gagal menghapus file","failed_to_delete_files_desc":"Gagal menghapus beberapa file tugas. Anda mungkin perlu menghapusnya secara manual","unknown_error":"Kesalahan tidak diketahui: {0}","more_files_are_not_shown":"({0} lebih banyak file tidak ditampilkan karena alasan kinerja)","no_available_file":"Tidak ada berkas yang tersedia. Harap tunggu tugas siap.","service_worker_error":"Tidak dapat memuat ServiceWorker untuk diputar. Browser Anda mungkin tidak mendukung fitur ini, atau ServiceWorker tidak diaktifkan. Anda mungkin perlu memuat ulang halaman ini dan mencoba lagi.","add_task_first":"Anda perlu menambahkan tugas terlebih dahulu.","player_task_time":"Pemain membutuhkan waktu terlalu lama untuk bersiap bermain. Mungkin ada yang salah dengan tugas itu.","web_mode_hint":"Mode web ${displayName} hanya mendukung rekan WebRTC. Untuk pengalaman terbaik, silakan unduh ${displayName} Aplikasi Desktop.","web_mode_task_hint":"Klik tombol di bawah untuk menambahkan tugas. Anda hanya dapat menambahkan satu tugas pada satu waktu.","save_to_local":"Simpan ke lokal","save_as_zip":"Simpan sebagai ZIP","creating_save_file":"Membuat file penyimpanan...","upload_as_one_directory":"Unggah sebagai satu direktori","upload_as_single_files":"Unggah sebagai file tunggal","web_mode_upload_single":"Anda hanya dapat mengunggah satu file dalam mode web","download_success":"Unduh dengan sukses","download_fail":"Unduhan gagal","wait_for_downloaded_to_share":"Harap tunggu tugas diunduh sebelum berbagi.","download_with_cellular":"Unduh tugas menggunakan seluler","download_with_cellular_desc":"Anda menggunakan jaringan seluler. Mengunduh tugas dengan seluler mungkin memerlukan biaya tambahan dari operator Anda.","download_with_cellular_confirm":"Masih mengunduh dengan seluler","language":"Bahasa","appearance":"Penampilan","darkModeSystem":"Sistem","darkModeLight":"Lampu","darkModeDark":"Gelap","basic_setting":"Dasar","hideMenu":"Sembunyikan Menu Aplikasi (Hanya Windows & Linux)","autoHide":"Sembunyikan Jendela Otomatis","autoStart":"Buka saat masuk","restore":"Pertahankan ukuran dan posisi jendela saat keluar","autoStartUnfinished":"Secara otomatis melanjutkan semua tugas yang belum selesai","default_download_path":"Jalur Default","download_directory":"Unduh Direktori","upload_directory":"Unggah Direktori","enable_auto_upload":"Aktifkan unggahan otomatis","unlimit_upload_amount":"Batasi jumlah unggahan","unlimit_upload_warning":"Izinkan mengunggah file dalam jumlah besar. Hal ini dapat menyebabkan masalah kinerja","start":"Rintisan","transport_setting":"Penularan","upload_limit":"batas unggahan","download_limit":"batas unduhan","payed_user_share_rate":"Tingkat berbagi pengguna berbayar","unlimited":"Tak terbatas","limit_input_error":"Jumlah batas harus positif","BT_setting":"Pengaturan Tugas","saveLinkSeed":"Simpan tautan sebagai file tugas","autoDownload":"Unduh tautan dan konten secara otomatis","continuousSeeding":"Terus penyemaian sampai menghentikannya secara manual","seedSharingRate":"Rasio Benih","seedTime":"Waktu Benih (menit)","task_manage":"Manajemen tugas","maximumDownloadNum":"Tugas aktif maksimum","maximumConnectionsNum":"Koneksi maksimum per server","range_error":"Kisaran harus antara {0} dan {1}","random":"acak","breakpointContinuation":"Melanjutkan","automaticSkip":"Tampilkan pengunduhan secara otomatis setelah menambahkan tugas","afterNotification":"Pemberitahuan setelah pengunduhan selesai","deleteConfirm":"Tidak diperlukan konfirmasi sebelum menghapus tugas","submit":"Simpan & Terapkan","discard":"Membuang","reset":"Mengatur ulang","reset_all_settings":"Atur ulang semua pengaturan?","preferences_resetted":"Preferensi disetel ulang","traditional_chinese":"Cina tradisional","japanese":"Jepang","english":"Bahasa inggris","chinese":"Cina disederhanakan","advancedSettings":"Canggih","autoUpdate":"Pembaruan Otomatis","autoCheckUpdate":"Periksa pembaruan secara otomatis","proxy":"Proksi","useProxyService":"Aktifkan Proksi","trackerService":"Server Pelacak","recommendUse":"Direkomendasikan","autoUpdateTrackerServiceList":"Perbarui daftar pelacak setiap hari secara otomatis","manualUpdateTracker":"Pembaruan manual","manualUpdateSuccess":"Berhasil memperbarui server pelacak","manualUpdateFail":"Gagal memperbarui dari:","listenPort":"Mendengarkan Pelabuhan","BTlistenPort":"Pelabuhan Transmisi Data","DHTlistenPort":"Port Hash Terdistribusi","protocols":"Protokol yang Kompatibel","setDefaultClientForFollowingProtocols":"Tetapkan sebagai klien default untuk protokol berikut","magnetUrl":"Magnet","video_file":"Berkas video","audio_file":"berkas audio","security":"Keamanan","impersonateUserAgent":"Mock User-Agen","RPCauthorizationkey":"Rahasia RPC","viewDocument":"Lihat Manual Rahasia RPC","developer":"Pengembang","applicationLogPath":"Jalur log aplikasi","downloadSessionPath":"Unduh jalur sesi","resetDownloadSessionRecord":"Setel ulang sesi unduhan","restoreInitialSettings":"Atur Ulang Pabrik","preferences_set_successfully":"Simpan preferensi berhasil!","preferences_set_fail":"Simpan preferensi gagal!","change_not_save":"Perubahan tidak disimpan","discard_all_changes":"Buang semua perubahan dan tinggalkan?","stay_in_page":"Tetap di halaman","disk_usage":"Penggunaan disk","pause_if_less_space":"Jeda dan beri tahu jika ruang kurang dari (MB)","default_video_player":"Pemutar video bawaan","video_cache_time":"Streaming tembolok putar","minutes":"menit","system_default":"Default Sistem","media_player":"Pemutar Media","library_film_rate":"Tingkat film yang tersedia","library_show_explore":"Tampilkan halaman [Jelajahi].","library_setting":"Pengaturan perpustakaan","library_sync_setting":"Pengaturan sinkronisasi perpustakaan","keychain_sync_status":"Status sinkronisasi rantai kunci","sync_with_aws":"Sinkronkan Rantai Kunci dengan Layanan Web Amazon","backup_to_local":"Cadangkan ke file lokal","enable_sync_with_aws":"Aktifkan sinkronisasi dengan AWS","disable_sync_with_aws":"Nonaktifkan sinkronisasi dengan AWS","disable_sync_with_aws_desc":"Ini akan menghapus kunci yang disimpan di server. Harap pastikan Anda telah mengekspor kunci Anda.","input_independent_password":"Masukkan kata sandi independen","change_independent_password":"Ubah kata sandi independen","password_error":"Password error","password_invalid":"Kata sandi tidak valid","key_existed":"Kunci ada","key_not_found":"Kunci tidak ditemukan","library_recommend":"Perpustakaan merekomendasikan","show_all_channels":"Tampilkan semua saluran di halaman rekomendasi perpustakaan","not_logged_in":"Belum masuk","login_to_continue":"Masuk untuk melanjutkan","mnemonic_code":"Kode mnemonik","wordlist":"Daftar kata","restore_code":"Pulihkan dari kode","generate_code":"Hasilkan kode","export_mnemonic_code":"Ekspor kode mnemonik","import_mnemonic_code":"Impor kode mnemonik","print":"Mencetak","save_as_txt":"Simpan sebagai txt","save_as_pdf":"Simpan sebagai pdf","from_file":"Dari file","not_valid_mnemonic_code":"Ini bukan kode mnemonik yang valid","cannot_parse_code_as_key":"Tidak dapat mengurai kode mnemonik ini sebagai kunci perpustakaan","import_key_hint":"Apakah Anda yakin akan mengimpor kunci ini? Ini akan memulihkan kunci lama Anda di perpustakaan.","import_key_confirm":"Ya, impor itu.","library_preload":"Pramuat tugas dari perpustakaan","show_preload":"Tampilkan tugas pramuat","set_download":"Tetapkan direktori unduhan","set_download_desc":"Untuk versi macOS App Store, direktori unduhan default ada di kotak pasir Aplikasi, dan akan dihapus setelah aplikasi dihapus. Jika Anda ingin menyimpan file unduhan, Anda harus memilih direktori unduhan yang berbeda secara manual.","home":"Rumah","home_caption":"Unduh/Unggah dan File Media","library":"Perpustakaan","library_caption":"Jelajahi sumber daya media","player":"Pemain","player_caption":"Pemutar Media","credits":"Kredit","credits_caption":"Periksa Saldo Akun","account":"Akun","account_caption":"Masuk/Daftar/Manajemen","settings":"Pengaturan","settings_caption":"Pengaturan untuk Aplikasi, Pemain, Akun","development":"Perkembangan","development_caption":"Mode Pengembang untuk Penggunaan Internal","basic":"Dasar","basic_caption":"Pengaturan dasar","advanced":"Canggih","advanced_caption":"Pengaturan lanjutan","blockchain":"Dompet","blockchain_caption":"${displayName} Dompet Terdesentralisasi","internal_notice":"Pemberitahuan Rilis Internal","release_notes":"Catatan rilis","terms_and_conditions":"syarat dan Ketentuan","license_and_listen_notices":"Lisensi dan Mendengarkan Pemberitahuan Sumber Terbuka","close":"Menutup","success":"Kesuksesan","fail":"Gagal","account_email_invalid_address":"alamat email salah","account_email_invalid_domain":"Domain email tidak valid","account_email_unknown_status":"Status pengiriman email tidak diketahui","account_email_unavailable_address":"Alamat email tidak tersedia","account_email_suppressed_address":"Alamat email yang ditekan","account_loading":"Memuat...","account_is_required":"Dibutuhkan","account_sign_in_your_account":"Masuk","account_username":"Nama belakang","account_username_email_phone":"Nomor telepon atau email","account_password":"Kata sandi","account_new_password":"Kata sandi baru","account_re_enter_password":"Masukkan Kembali password","account_password_not_equal":"Dua kata sandi tidak sama","account_new_password_same":"Passwordnya sama dengan password aslinya","account_forgot_your_password":"lupa kata sandi Anda?","account_reset_password":"Atur ulang kata sandi","account_sign_in":"Masuk","account_signed_in":"Masuk","account_sign_up":"Mendaftar","account_find_your_account":"Temukan akun Anda","account_enter_your_username":"Masukkan nomor telepon atau email Anda","account_search":"Mencari","account_email_sent_tip":"Email dengan kode verifikasi telah dikirim ke email Anda:","account_phone_sent_tip":"SMS dengan kode verifikasi telah dikirim ke ponsel Anda:","account_email_phone_sent_tip":"Email dan SMS dengan kode verifikasi telah dikirimkan ke email dan ponsel Anda masing-masing:","account_software_token_tip":"MFA diaktifkan untuk akun Anda. Untuk menyelesaikan proses masuk, aktifkan atau lihat perangkat Anda dan ketik TOTP","account_reset_your_password":"Mereset password Anda","account_verification_code":"Kode verifikasi","account_resend_code":"Kirim ulang kode","account_code_has_been_resent":"Kode verifikasi telah dikirim ulang","account_password_has_been_reset":"Kata sandi telah diatur ulang","account_submit":"Kirim","account_sign_up_your_account":"Daftarkan akun Anda","account_fill_required_fields":"Isi bidang yang wajib diisi di bawah ini.","account_fill_optional_fields":"Isi bidang opsional di bawah ini.","account_email":"Surel","account_invitation":"Undangan","account_invitation_code":"Kode undangan","account_i_accept":"saya menerima","account_license_terms":"lisensi dan persyaratan","account_next":"Berikutnya","account_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu.","account_verify_fill_optional_fields":"Verifikasi dan isi kolom opsional.","account_nickname":"Nama panggilan","account_gender":"Jenis kelamin","account_male":"Pria","account_female":"Perempuan","account_not_say":"Tidak mengatakan","account_birthday":"Hari ulang tahun","account_phone_number":"Nomor telepon","account_locale":"Lokal","account_tip_verified":"Terverifikasi, Masuk...","account_verified":"diverifikasi","account_unverified":"tidak diverifikasi","account_signed_up":"Mendaftar","account_verify_your_identity":"Verifikasi identitas Anda","account_finish":"Menyelesaikan","account_signed_out":"Keluar","account_change_password":"Ganti kata sandi","account_change_email":"Ganti e-mail","account_change_phone_number":"Ganti nomor telepon","account_sign_out":"Keluar","account_current_password":"Kata sandi saat ini","account_re_enter_new_password":"Masukkan kembali kata sandi baru","account_personal_information":"Informasi","account_edit":"sunting","account_reset":"mengatur ulang","account_greeting":"Halo,","account_cancel":"Membatalkan","account_change":"mengubah","account_not_set":"tidak diatur","account_setting":"pengaturan","account_copy_code":"salin kodenya","account_account_setting":"Akun","account_task_page":"Tugas kredit","account_setting_caption":"Ubah Kata Sandi / Edit Informasi","account_security":"Keamanan","account_want_to_join":"Ingin bergabung?","account_sign_in_now":"Masuk","account_changed":"Berubah","account_clipboard_with_invitation_code":"Kode undangan disalin","account_clipboard_with_code":"Kode disalin","account_invitation_code_dialog_tip":"Anda akan mengirimi teman Anda email atau pesan teks dengan kode undangan:","account_available":"tersedia","account_invited":"diundang","account_used":"digunakan","account_invitation_code_sent":"Kode undangan telah dikirim","account_invitation_channel_required":"Isi minimal satu saluran undangan","account_no_verification_code":"Tidak dapat menerima kode verifikasi?","account_no_phone_number":"Tidak ada nomor telepon?","account_sign_up_by_email":"Daftar melalui email","account_no_email":"Tidak ada email?","account_sign_up_by_phone_number":"Daftar dengan nomor telepon","account_no_totp":"Tidak ada TOTP?","account_tip_no_totp":"Jika tidak ada TOTP, silahkan setup TOTP terlebih dahulu","account_setup_totp":"Siapkan TOTP","account_contact_information":"Kontak informasi","account_delete_account":"Hapus akun","account_deleted":"Dihapus","account_can_not_mfa":"MFA bermasalah?","account_set_mfa_type":"Konfigurasi MFA","account_disable_mfa":"Nonaktifkan MFA","account_disabled_mfa":"MFA yang dinonaktifkan","account_sms_mfa":"SMS MFA","account_totp_mfa":"MFA TOTP","account_totp":"TOTP","account_not_recommend":"Tidak merekomendasikan","account_oauth_sign_in_with":"Masuk dengan {provider}","account_sign_in_failed":"Gagal masuk","account_tip_oath_sign_up":"Email terkait dengan akun {provider} saat ini: {email} belum membuat akun","account_tip_confirm_delete_account":"Masukkan kata sandi akun saat ini untuk mengonfirmasi bahwa Anda ingin menghapus akun saat ini.(Akun yang dihapus tidak dapat dipulihkan)","account_tip_config_mfa":"Anda dapat memilih untuk menggunakan SMS atau sandi satu kali berbasis waktu (TOTP) sebagai autentikasi sekunder","account_error_can_not_enable_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan MFA","account_tip_can_not_enable_sms_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan SMS MFA","account_tip_can_not_enable_totp_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan TOTP MFA","account_tip_setup_totp":"Gunakan aplikasi seperti Authenticator untuk memindai kode QR di bawah atau menyalin kode secara manual untuk menambahkan token keamanan","account_tip_verify_totp":"Verifikasi TOTP Anda","account_link_your_social_account":"Ikat akun sosial Anda","account_unlink_your_social_account":"Lepaskan akun sosial","account_tip_confirm_link":"Yakin ingin menautkan akun saat ini ke akun {provider} Anda?","account_tip_confirm_unlink":"Apakah Anda yakin akan membatalkan akun terikat {provider} Anda?","account_tip_linking":"mengikat...","account_tip_unlinking":"Tidak mengikat...","account_linked":"Melompat","account_unlinked":"Tidak terikat","account_error_can_not_link_to_the_linked_account":"Akun sosial saat ini terikat ke akun lain","account_error_can_not_link_to_the_mismatched_email":"Akun saat ini dan alamat email akun sosial tidak konsisten","account_error_can_not_link_before_email_verified":"Akun sosial tidak dapat ditautkan karena akun saat ini tidak terikat ke email yang diverifikasi","account_tip_confirm_verify_email_phone":"Apakah akan mengirim kode verifikasi ke email dan nomor telepon akun saat ini untuk memverifikasi identitas Anda?","account_tip_confirm_verify_phone":"Apakah akan mengirim kode verifikasi ke nomor telepon saat ini untuk memverifikasi identitas Anda?","account_error_1_message_60_seconds":"Hanya satu SMS atau email yang dapat dikirim setiap 60 detik, tunggu lagi {delta} detik","account_error_10_messages_per_day":"Setiap ponsel atau email hanya dapat mengirim 10 pesan dalam waktu 24 jam","account_error_network":"Ada masalah dengan jaringan, coba lagi nanti","Network Error":"Ada masalah dengan jaringan, coba lagi nanti","account_error_user_not_exist":"pengguna tidak ada","account_error_incorrect_username_or_password":"Username atau kata sandi salah","account_error_incorrect_original_password":"Kata sandi asli salah","account_error_incorrect_password":"kata kunci Salah","account_error_username_not_found":"Nama pengguna tidak ditemukan","account_error_can_not_reset_for_no_verified":"Tidak dapat mengatur ulang kata sandi untuk akun yang belum diverifikasi","account_error_invalid_verification_code":"Kode verifikasi salah, harap coba lagi","account_error_expired_verification_code":"Kode verifikasi kedaluwarsa, harap coba lagi","account_error_password_not_long_enough":"Kata sandi tidak cukup panjang","account_error_attempt_limit_exceeded":"Batas percobaan terlampaui, silakan coba setelah beberapa saat.","account_error_password_attempts_exceeded":"Upaya sandi terlampaui.","account_error_invalid_phone_number_format":"Format nomor telepon tidak valid","account_error_no_cell_phone_prefix":"Silakan pilih awalan untuk nomor telepon","account_error_username_already_exists":"nama pengguna sudah ada","account_error_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu","account_error_inactive_code":"Kode undangan bukan kode yang diaktifkan","account_error_non_existent_code":"Kode undangan tidak ada","account_error_unexpected":"Kesalahan tak terduga","account_error_can_not_change_email_before_phone_bound":"Email tidak dapat diubah sebelum nomor telepon terikat","account_error_can_not_change_email_before_unbound_social_account":"Email tidak dapat diubah sebelum melepaskan ikatan akun sosial","account_error_can_not_change_phone_before_email_bound":"Nomor telepon tidak dapat diubah sebelum email diikat","account_error_can_not_change_email_phone_with_mfa_enabled":"Tidak dapat mengubah email atau nomor ponsel sebelum menonaktifkan MFA","account_error_not_supported_yet":"Tidak didukung saat ini","account_error_same_email":"Alamat email baru tidak boleh sama dengan alamat email asli","account_error_same_phone":"Nomor telepon baru tidak boleh sama dengan nomor telepon asli","account_error_email_not_exists":"Alamat email tidak ada","account_error_email_already_exists":"Akun dengan email yang diberikan sudah ada.","account_error_phone_already_exists":"Akun dengan nomor telepon yang diberikan sudah ada.","account_error_mfa_token_mismatch":"Ketidakcocokan Kode Token Perangkat Lunak","account_error_recaptcha_not_loaded":"Ada masalah dengan jaringan. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_recaptcha_validation_failed":"Validasi ReCAPTCHA gagal. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_sign_in_in_progress":"Upaya masuk tertunda sedang berlangsung","account_field_range":"Batasi input {0}-{1} karakter","account_field_only_alphanumeric":"Hanya mendukung alfanumerik","account_field_only_alphanumeric_and_symbol":"Hanya mendukung alfanumerik dan simbol","account_field_only_chinese_alphanumeric_space_underline":"Hanya mendukung alfanumerik, spasi, garis bawah","account_field_prefix_without_number_space":"Karakter pertama tidak boleh angka atau spasi","account_field_suffix_without_space":"Tidak boleh diakhiri dengan spasi","account_field_without_repeat_space":"Tidak dapat menggunakan beberapa spasi dalam satu baris","account_field_can_not_only_alphanumeric":"Anda tidak bisa hanya menggunakan huruf atau angka","account_field_must_have_number_characters":"Harus memiliki karakter angka","account_field_verification_code":"Kode verifikasi harus enam digit","account_field_invitation_code":"Kode undangan harus alfanumerik","account_field_phone_number":"Format nomor telepon tidak valid","account_invalid_email_format":"format email salah","account_sign_out_confirm":"Apakah Anda yakin untuk keluar? Ini akan menghentikan semua tugas.","account_sign_out_anyway":"Tetap keluar","account_signing_out":"Keluar...","account_request_save_settings":"Setelan tidak disimpan. Anda perlu menyimpan perubahan sebelum keluar.","pay":"Membayar","pay_with_credit":"Bayar untuk mempercepat unduhan. Membutuhkan sekitar {0} kredit","pay_with_credit_payed":"Mempercepat. Masih membutuhkan sekitar {0} kredit","create_payment":"Buat Pembayaran","pay_target":"Target","pay_for_torrent":"Bayar {0}","your_subid":"SubId Anda","your_credits":"kredit Anda","pay_point_for_data":"Bayar {0} poin untuk {1} data","auto_renew":"Aktifkan perpanjangan otomatis","transaction_details":"Detil transaksi","transaction_id":"Pengenal","transaction_payer":"Pembayar","transaction_payee":"Penerima pembayaran","transaction_category":"Kategori","transaction_changed_amount":"Jumlah yang Diubah","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Waktu penciptaan","receipt_code":"Kode Penerimaan","transfer_amount":"Jumlah transfer","code_the_receipt_code":"Salin kode tanda terima di bawah ini ke pembayar","fill_the_receipt_code":"Transfer dengan mengisi kode pembayaran yang diberikan oleh penerima pembayaran","expense":"Pengeluaran","copied":"Disalin","transfer":"Transfer","receive":"Menerima","copy":"Menyalin","withdraw_fund":"Tarik Dana","category_paydata_payer":"Biaya data","category_paydata_payee":"Pendapatan data","category_transfer":"Transfer","category_bonus":"Bonus","category_recharge":"Isi ulang","status_pending":"tertunda","status_completed":"lengkap","status_finish":"menyelesaikan","status_failed":"gagal","tip_invalid_receiver":"Kode penerima tidak valid","tip_invalid_amount":"Jumlah kredit harus mengambang dalam kisaran 0-1000 (Presisi minimum adalah 0,001)","credit_get_more":"Dapatkan lebih banyak kredit","credit_no_data":"Tidak ada data yang tersedia","credit_loading":"Memuat...","credit_not_enough_amount":"Kredit tidak cukup","credit_amount_not_enough":"Kredit tidak cukup","credit_payee_not_exist":"Penerima pembayaran tidak ada","credit_invalid_amount":"Jumlah kredit tidak valid","credit_can_not_transfer_to_yourself":"Tidak dapat mentransfer ke diri sendiri","credit_latest":"Terbaru","credit_error_network":"Ada masalah dengan jaringan, coba lagi nanti","add_subtitles":"Tambahkan Subtitle","open_file":"Membuka file...","advanced_options":"Opsi lanjutan","title":"Judul","location":"lokasi","subtitle_file":"file subtitle","unsupported_subtitle_type":"Jenis file {0} bukan jenis teks film yang didukung","not_default_player":"Pemutar video default tidak disetel","this_is_an_audio_file":"Ini adalah file audio","the_added_subtitle_already_exists":"Subtitel yang ditambahkan sudah ada","stop_stream_player":"Media streaming dihentikan karena tugas dijeda atau dihapus","stop_player":"Pemutar dihentikan karena file telah dihapus","playing_timeout_hint":"Waktu tunggu habis. Silakan periksa tugas","autoplay_hint":"Autoplay mungkin diblokir oleh browser Anda. Jika pemain tidak bermain, coba klik layar untuk melanjutkan","remove_playing_confirm":"{0} masih diputar, hapus akan menghentikan pemutar. Apakah Anda yakin untuk menghapusnya?","unsupported_in_browser":"Belum didukung dalam mode browser","client":"Klien","warning":"Peringatan","enable":"Memungkinkan","disable":"Cacat","auto":"Mobil","encrypt_connection":"Mengenkripsi koneksi","encrypted_connection":"Koneksi terenkripsi","non_encrypted_connection":"Koneksi tidak terenkripsi","connected_wires_not_disconnect":"Kabel yang terhubung tidak akan terputus","audio":"audio","video":"video","image":"gambar","subtitle":"subtitle","zip":"ritsleting","text":"teks","unknown":"tidak dikenal","add":"Menambahkan","undo":"Membuka","backup":"Cadangan","not_default_app":"${displayName} bukan aplikasi default Anda untuk torrent dan media, apakah Anda ingin menyetelnya sebagai default?","dont_show_again":"Jangan tampilkan lagi","go_to_settings":"Pergi ke pengaturan","about_alphabiz":"Tentang ${displayName}","last_check_at":"Cek terakhir di","update_channel":"Perbarui saluran","check_for_update":"Memeriksa pembaruan","checking_for_update":"Memeriksa pembaruan...","no_update_available":"Tidak ada pembaruan yang tersedia","update_available":"Pembaruan tersedia","update_now":"Memperbarui sekarang","update_later":"Perbarui nanti","click_to_update":"Klik tombol PERBARUI SEKARANG untuk mengunduh dan memperbarui","update_failed":"Pembaharuan gagal","update_failed_message":"Terjadi kesalahan saat memperbarui:","check_shasum_failed":"Gagal memeriksa integritas penginstal","downloading_update":"Mengunduh pembaruan...","ready_to_update":"Siap memperbarui","restart_to_update":"Pembaruan diunduh. ${displayName} akan keluar untuk memperbarui beberapa saat.","already_latest":"Versi saat ini({0}) sudah terbaru","update_timeout":"Perbarui batas waktu","no_available_release":"Tidak ada rilis yang tersedia","no_available_installer":"Tidak ada pemasang yang tersedia","feedback":"Masukan","select_a_type":"Pilih jenis","category":"Kategori","select_a_category":"Pilih Kategori","require_title":"Judul diperlukan","describe_your_problem":"Jelaskan masalah Anda","report_a_bug":"Laporkan bug","request_a_new_feature":"Minta fitur baru","download_or_upload":"Unduh/Unggah","others":"Yang lain","submit_with_system_info":"Kirim dengan info sistem","submit_feedback":"Berikan umpan balik","tweet_us":"Tweet kami","tweet_too_long":"Tweet terlalu panjang","delete_characters":"Hapus setidaknya {0} karakter","rest_characters":"Anda dapat memasukkan {0} lebih banyak karakter","update_alphabiz":"Perbarui ${displayName}","current_version":"Versi sekarang","cancel_update":"Batalkan pembaruan","slow_download_speed":"Unduh terlalu lambat","slow_download_speed_caption":"Pengunduhan penginstal terlalu lambat sekarang. Periksa status jaringan","update_canceled":"Pembaruan dibatalkan","current_version_release_time":"Waktu rilis versi saat ini","expired_app":"${displayName} Kedaluwarsa","version_out_of_date":"Versi kedaluwarsa","have_to_update":"Versi ${displayName} sudah usang. Beberapa protokol atau API tidak digunakan lagi. Anda harus memperbarui ${displayName} sebelum melanjutkan.","exit_alphabiz":"Keluar ${displayName}","exit_and_update":"Keluar dan terapkan pembaruan","new_version_hint":"Versi baru tersedia","no_new_version":"Tidak ada versi baru yang tersedia","current_is_latest":"Versi saat ini sudah terbaru","click_to_check_update":"Klik tombol [PERIKSA PEMBARUAN] untuk memeriksa pembaruan","download_latest_version_from_website":"Silakan kunjungi situs web resmi untuk mengunduh versi terbaru","to_the_website":"Ke situs web","network_diagnotic":"Diagnostik Jaringan","diagnotic":"Diagnostik","click_to_check":"Klik untuk memeriksa","click_to_check_again":"Klik untuk memeriksa lagi","checking":"Memeriksa","online":"On line","offline":"Luring","dns_look_up":"pencarian DNS","error":"Kesalahan","aws_service":"Layanan AWS","network_pings":"Jaringan Ping","not_found":"Tidak ditemukan","packet_loss":"Kehilangan paket","official_site":"Situs resmi","download_test":"Unduh Tes","test_task":"Uji Tugas {0}","download_failed":"Unduhan gagal","second_spend":"{0} pembelanjaan","open_default_player_failed":"Gagal membuka pemutar default","copied_to_clipboard":"Disalin ke papan klip","go_to":"Pergi ke","region_not_available":"Wilayah tidak tersedia","region_not_available_message":"Maaf! Wilayah Anda tidak tersedia untuk menggunakan aplikasi ini. Aplikasi ini akan berhenti setelah {0} detik","confirm":"Mengonfirmasi","no_available_result":"Tidak ada hasil yang tersedia","invalid_password_format":"Format kata sandi tidak valid","invalid_password_format_same":"Passwordnya sama dengan password aslinya","error_password":"Password error","keychain_setting":"Gantungan kunci","setting_description":"Penyimpanan cloud: Menyimpan data kunci ke cloud.\\nUbah kata sandi: Mengubah kata sandi untuk kunci perpustakaan media.\\nMnemonik: metode alternatif untuk membuat dan memulihkan kunci.\\nImpor Kunci Lokal: Impor kunci yang disimpan secara lokal ke perpustakaan media.\\nKunci Ekspor: Menyimpan data pustaka media saat ini ke lokal atau cloud.\\nKunci cadangan ke cloud: Perbarui data perpustakaan media saat ini ke cloud untuk cadangan.","refresh_status":"Memperbaharui status","confirm_import_key":"Konfirmasi kunci impor","confirm_update_cloud_key":"Anda sudah memiliki kunci di cloud. Memperbarui kunci akan menimpa kunci asli. Apakah Anda yakin ingin memperbarui kunci yang disimpan di awan","export_key_with_cloud":"Masukkan kata sandi independen yang Anda atur untuk mengekspor kunci perpustakaan yang disimpan di cloud, dan kunci file kunci dengan kata sandi buka kunci","store_cloud_key_prompt_password":"Masukkan kata sandi independen untuk menyimpan kunci perpustakaan di cloud","update_cloud_key_prompt_password":"Tetapkan kata sandi independen untuk mengenkripsi kunci perpustakaan, lalu perbarui ke cloud","enable_cloud_storage_prompt_password":"Tetapkan kata sandi untuk kunci yang disimpan di cloud, di mana Anda dapat mengambil kunci dari cloud","input_unlock_password":"Tetapkan kata sandi buka kunci","export_local_prompt_password":"Silakan atur kata sandi buka kunci untuk mengenkripsi file kunci Anda. Kami tidak akan menyimpan kata sandi ini untuk Anda, jadi jika Anda kehilangan kata sandi, Anda tidak akan dapat membuka kunci perpustakaan Anda","require_unlock_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","require_independent_password":"Masukkan kata sandi independen untuk menyimpan kunci di cloud","import_local_prompt_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","select_encrypt_mode":"Pilih mode enkripsi","update_cloud_key":"Perbarui kunci yang disimpan di cloud","backup_to_cloud":"Cadangkan kunci perpustakaan ke cloud","save_local":"Simpan kunci perpustakaan sebagai file terenkripsi lokal","create_new_key":"Buat kunci pustaka baru","creating_lib_key":"Membuat kunci perpustakaan...","loading_lib_key":"Memuat kunci pustaka...","failed_to_create_lib_key":"Gagal membuat kunci perpustakaan","failed_to_load_lib_key":"Gagal memuat kunci perpustakaan","import_local_key":"Impor kunci secara lokal","import_lib_key_from_local":"Impor kunci perpustakaan secara lokal","import_from_cloud":"Impor kunci perpustakaan dari cloud","create_or_import_key":"Buat atau impor kunci perpustakaan","create_or_import_key_desc":"Kunci perpustakaan adalah kunci independen yang digunakan untuk mengambil dan menerbitkan konten dengan basis data terdesentralisasi.","store_your_lib_key":"Simpan kunci perpustakaan Anda","export_cloud_key":"Ekspor Kunci dari Cloud","export_current_key":"Ekspor Kunci Saat Ini","change_password":"Ganti kata sandi","enable_cloud_storage":"Aktifkan penyimpanan awan","disable_cloud_storage":"Nonaktifkan penyimpanan awan","disable_cloud_storage_desc":"Nonaktifkan penyimpanan cloud akan menghapus kunci yang disimpan di cloud, harap pastikan kunci disimpan secara lokal","sync_at":"Sinkronkan di: {time}","cloud_storage_enabled":"Sinkronkan Rantai Kunci dengan {storage}","cloud_storage_disabled":"Penyimpanan cloud dinonaktifkan","saved_locally":"Disimpan secara lokal","export_key":"Ekspor file kunci","cloud_independent_password":"Kata sandi independen cloud","key_file_unlock_password":"Kata sandi buka kunci file kunci","re_enter_unlock_password":"Masukkan kembali kata sandi buka kunci","independent_password_not_enabled":"Kata sandi saat ini adalah kata sandi akun Alphabiz (tidak ada kata sandi independen yang ditetapkan)","use_cognito_hash":"Gunakan kata sandi akun Alphabiz","use_independent_password":"Gunakan kata sandi independen","keychain_lib":"kunci pustaka","loading_keychain_state":"Memuat gantungan kunci...","backing_up":"Mencadangkan...","backup_current_key":"Cadangkan kunci saat ini ke Cloud","cloud_lib_key_not_existed":"kunci perpustakaan tidak ada di Cloud","open_keychain_file":"Buka File Rantai Kunci","confirm_open_abk":"Apakah Anda ingin membuka file ABK","use_the_key":"Gunakan kuncinya","backup_the_key":"Cadangkan kunci ke cloud","keychain_data_does_not_exist":"Data gantungan kunci tidak ada","timeout of 0ms exceeded":"Ada masalah dengan jaringan, coba lagi nanti","XhrError":"Ada masalah dengan jaringan, coba lagi nanti","payer credit amount is not enough":"Kredit tidak cukup","payee does not exist":"Penerima pembayaran tidak ada","block_list_manage":"Daftar blokir mengelola","blocked_users":"Pengguna diblokir","blocked_channels":"Saluran yang diblokir","unblock_user":"Buka blokir pengguna","unblock_channel":"Buka blokir saluran","no_blocked_user":"Tidak ada pengguna yang diblokir","no_blocked_channel":"Tidak ada saluran yang diblokir","field_required":"{0} diperlukan","setting":"Pengaturan","unknown_media":"Media Tidak Dikenal","settings_button_visible":"Tombol Terlihat","settings_setting":"Pengaturan","settings_playback_rate":"Tingkat Pemutaran","settings_subtitle":"Subtitle","settings_pip":"PiP","settings_fullscreen":"Layar penuh","settings_subtitle_options":"Opsi Subtitel","settings_normal":"Normal","settings_italic":"Miring","settings_lighter":"Lebih ringan","settings_bolder":"Lebih berani","settings_small":"Kecil","settings_large":"Besar","about":"Tentang","services":"Jasa","hide":"Bersembunyi","hide_others":"Sembunyikan Lainnya","show_all":"Tunjukkan semua","quit":"Berhenti","edit":"Sunting","redo":"Mengulangi","cut":"Memotong","paste":"Tempel","select_all":"Pilih Semua","view":"Melihat","reload":"Muat ulang","toggle_full_screen":"Alihkan Layar Penuh","toggle_developer_tools":"Alihkan Alat Pengembang","window":"Jendela","minimize":"Memperkecil","bring_all_to_front":"Bawa Semua ke Depan","help":"Membantu","github_repo":"Repo Github","issues":"Masalah","learn_more":"Belajarlah lagi","learn_spelling":"Pelajari Ejaan","lookup_selection":"Cari \\"{selection}\\"","search_with_google":"Telusuri dengan Google","save_as":"Simpan Sebagai","save_image":"Menyimpan gambar","save_image_as":"Menyimpan gambar sebagai ...","copy_link":"Salin tautan","save_link_as":"Simpan tautan sebagai ...","copy_image":"Salin Gambar","copy_image_as":"Salin Gambar Sebagai ...","copy_image_address":"Salin Alamat Gambar","download_complete":"Unduh selesai","download_complete_message":"{0} telah diunduh","is_running":"{0} sedang berjalan","open":"Buka {0}","launch_problem":"Luncurkan masalah","ask_clear_data":"Tampaknya Anda mencoba meluncurkan {0} tetapi gagal beberapa kali.\\nApakah Anda ingin menghapus semua data aplikasi dan mencoba meluncurkannya nanti?","launch_directly":"Luncurkan secara langsung","clear_all_data":"Hapus semua data","ask_clear_confirm":"Ini akan menghapus semua konfigurasi, log, dan data pengguna!\\nSetelah ini, Anda mungkin perlu meluncurkan {0} lagi.\\nApakah Anda yakin ingin menghapus data?","confirm_launch":"Tidak, luncurkan langsung","confirm_clear":"Ya, hapus semua data"}')},6545:function(e,t,a){},6580:function(e,t,a){"use strict";a("0c70")},6755:function(e,t,a){},6792:function(e,t,a){"use strict";a("b031")},"67b6":function(e,t,a){"use strict";a.d(t,"a",(function(){return $}));var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{persistent:!0,"content-class":{"markdown-dialog":!0,"fullscreen-dialog":e.fullscreen},position:e.fullscreen?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")}}},[a("q-card",{staticClass:"overflow-hidden column no-wrap",staticStyle:{"min-width":"320px","max-width":"720px","min-height":"calc(320px - 64px)","max-height":"calc(100vh - 64px)"},style:{paddingTop:(e.fullscreen&&e.$q.platform.is.electron?30:0)+"px"}},[a("q-card-section",{staticClass:"non-selectable flex justify-start items-center",class:{"q-py-sm":e.fullscreen}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],attrs:{"fab-mini":"",icon:e.isFullscreen?"fullscreen_exit":"fullscreen",unelevated:""},on:{click:function(t){e.isFullscreen=!e.isFullscreen}}}),a("q-btn",{attrs:{"fab-mini":"",icon:"close",unelevated:""},on:{click:e.hide}})],1),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:Object.keys(e.contents).length>1,expression:"Object.keys(contents).length > 1"}],staticClass:"q-py-none",staticStyle:{"margin-top":"-8px"}},[a("q-tabs",{staticStyle:{margin:"0 -16px"},attrs:{dense:"",align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(e,t){return[a("q-tab",{key:t,attrs:{ripple:!1,name:t,label:e.label}})]}))],2)],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none scroll-y",staticStyle:{"max-height":"100%"}},[a("q-tab-panels",{attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(t,n){return[a("q-tab-panel",{key:n,staticClass:"markdown-content",attrs:{name:n},domProps:{innerHTML:e._s(t.markdown)}})]}))],2)],1)],1)],1)},o=[],i=(a("de6c"),a("8e03")),r=a.n(i);const s={methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}},l={data(){return{isFullscreen:!1}},computed:{fullscreen(){return this.screen$xs||this.isFullscreen}}};var c={name:"MarkdownDialog",mixins:[s,l],props:{title:String,markdown:[Array,Object]},data(){return{currentTab:null}},computed:{contents(){const e=new r.a("commonmark");if(Array.isArray(this.markdown))return{content:{label:"content",markdown:e.render(this.markdown.join("\n"))}};const t={};return Object.entries(this.markdown).forEach((([a,n])=>{t[a]={label:n.label,markdown:e.render(n.markdown.join("\n"))}})),t}},created(){this.currentTab=Object.keys(this.contents)[0]}},d=c,u=(a("2cab"),a("2b5f")),_=a("b2aa"),p=a("e586"),m=a("d7c7"),h=a("990e"),g=a("1043"),f=a("74cb"),b=a("ec78"),y=a("fc38"),v=a("917f"),w=a("c72d"),k=a("09a4"),S=a.n(k),C=Object(u["a"])(d,n,o,!1,null,null,null),x=C.exports;S()(C,"components",{QDialog:_["a"],QCard:p["a"],QCardSection:m["a"],QSpace:h["a"],QBtn:g["a"],QTabs:f["a"],QTab:b["a"],QSeparator:y["a"],QTabPanels:v["a"],QTabPanel:w["a"]});t["b"]={methods:{createMarkdownDialog({title:e,markdown:t}){return this.$q.dialog({component:x,title:e,markdown:t})}}};function $({title:e,markdown:t}){return this.$q.dialog({component:x,title:e,markdown:t})}},"68e2":function(e){e.exports=JSON.parse('{"lib_index":"집","lib_edit":"게시","lib_publish":"게시","lib_explore":"탐구하다","lib_following":"수행원","lib_favorite":"로컬 즐겨찾기","lib_local_favorites":"로컬 즐겨찾기","lib_channel":"채널","lib_submit":"제출하다","lib_from_network":"네트워크에서 분산 데이터베이스 사용","welcome_to_lib":"${displayName} 미디어 라이브러리에 오신 것을 환영합니다.","register_or_login":"회원가입/로그인","lib_recommend":"추천하다","lib_recommend_desc":"${displayName} 도서관에 오신 것을 환영합니다! 이 라이브러리는 네트워크에서 분산된 데이터베이스를 사용합니다. 사용을 시작하려면 일부 채널을 팔로우해야 합니다.","follow_any_channel_to_continue":"계속하려면 아무 채널이나 팔로우하세요.","follow_channels_and_continue":"{0} 채널을 팔로우하고 계속하기","show_more_for_me":"더 보여줘","no_more_recommend":"더 이상 추천하지 않음","key":"열쇠","create_key":"키 만들기","save_key":"키 저장","save_key_file":"키를 파일로 저장하시겠습니까?","import_key":"키 가져오기","import":"수입","invalid_key":"유효하지 않은 키","back_to_top":"맨 위로","search_for_channel":"채널 ID 검색","search_channel_no_result":"ID가 {0}인 채널을 찾을 수 없습니다.","please_input_channel_id":"채널 ID를 입력하세요.","welcome_help_text":"이것은 분산형 미디어 라이브러리입니다. 당신은 필요\\n 이 데이터베이스에 대한 계정을 생성합니다. 우리는\\n 자동으로 개인 키를 생성합니다.\\n 이미 키가 있는 경우 가져올 수도 있습니다.\\n 여기.","welcome_key_text":"로그인 후 [SAVE KEY] 버튼을 클릭해주세요.\\n 개인 키를 저장하려면 오른쪽 하단 모서리에 있습니다.\\n 키를 분실하면 다시 로그인하지 못할 수 있습니다.","redirect_to_recommend":"팔로우한 채널이 없는 것 같습니다. [탐색] 페이지로 리디렉션 중입니다.","channel":"채널","follow":"따르다","unfollow":"언팔로우","following":"수행원","share":"공유하다","unfollow_confirm":"이 채널을 팔로우 해제하시겠습니까? 타임라인에 있는 이 채널의 모든 게시물이 삭제됩니다.","follow_failed_hint":"작업이 백그라운드에서 아직 보류 중입니다. 오랜 시간 동안 동작이 적용되지 않으면 앱을 다시 시작하고 다시 시도하십시오.","block":"차단하다","unblock":"차단 해제","blocked":"막힌","block_channel":"이 채널 차단","block_channel_confirm":"채널을 차단하면 타임라인에서 제거됩니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","block_creator":"이 채널의 작성자 차단","unblock_creator":"이 채널의 작성자 차단 해제","block_creator_confirm":"블록 작성자는 이 작성자가 생성한 모든 채널을 타임라인에서 제거합니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","share_url_copied":"공유 URL이 클립보드에 복사되었습니다.","follow_time":"팔로우 타임","update_time":"업데이트 시간","search":"찾다","type":"유형","added":"추가됨","click_to_task":"작업으로 이동하려면 클릭하세요.","lib_already_added":"이 동영상을 이미 추가했습니다.","description":"설명","poster":"포스터","channel_poster":"채널 포스터","preview":"시사","creator":"창조자","creator_detail":"크리에이터 세부정보","loading_creator":"크리에이터 정보 로드 중","wait_for_creator_loaded":"크리에이터 정보가 로드될 때까지 기다려 주십시오.","follower":"수행원","followers":"추종자","follower_list":"팔로어 목록","user":"사용자","channel_title":"채널 제목","channel_id":"채널 ID","post_title":"게시물 제목","post_id":"게시물 ID","import_data_from_excel":"엑셀에서 데이터 가져오기","set_excel_keys":"엑셀 키 설정","excel_import_succeded":"엑셀 가져오기 성공","excel_import_success_msg":"{0} 행을 추가할 준비가 되었습니다. {1} 유효하지 않으며 {2} 중복 항목은 무시됩니다.","cannot_find_channel":"채널을 찾을 수 없습니다","cannot_find_posts":"게시물을 찾을 수 없습니다","add_channel":"채널 추가","add_post":"게시물 추가","edit_channel":"채널 수정","channel_setting":"채널 설정","edit_post":"게시물 수정","edit_posts":"게시물 수정","channel_detail":"채널 세부정보","remove":"제거하다","remove_channel":"채널 삭제","remove_channel_confirm":"이 게시물을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","remove_post":"게시물 삭제","remove_post_confirm":"이 채널을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","preview_mode":"미리보기 모드","preview_mode_desc":"채널의 미리보기입니다. 영화의 모든 요금이 여기에 표시됩니다.","edit_user_profile":"사용자 프로필 수정","name":"별명","avatar":"화신","no_following":"다음 채널이 없습니다. 클릭하여 이동","no_recommend":"추천 채널이 없습니다. 클릭하여 이동","first_recomment_msg":"앱을 처음 실행하는 경우 다소 시간이 걸릴 수 있습니다.","invalid_image":"잘못된 이미지","image_not_reachable":"이 이미지 URL에 연결할 수 없습니다.","channel_not_found":"채널을 찾을 수 없음","cannot_get_channel_info":"채널 정보를 가져올 수 없습니다. 이 채널은 제작자에 의해 삭제되어 더 이상 사용할 수 없습니다.","validate_error":"오류 확인","validate_user_name_no_space":"사용자 이름에는 공백이 없어야 합니다.","validate_url_no_space":"URL은 공백을 포함할 수 없습니다.","validate_user_name_length":"사용자 이름은 {0}에서 {1} 사이여야 합니다.","validate_user_desc_length":"사용자 설명은 {0}자를 초과할 수 없습니다.","validate_user_avatar_url":"사용자 아바타는 2048자 미만의 URL이어야 합니다.","validate_channel_title_length":"채널 제목의 길이는 1에서 100 사이여야 합니다.","validate_channel_desc_length":"채널 설명의 길이는 10에서 300 사이여야 합니다.","validate_channel_image_url":"채널 미리보기는 2048자 미만의 URL이어야 합니다.","validate_post_title_length":"게시물 제목의 길이는 1에서 100 사이여야 합니다.","validate_post_desc_length":"게시물 설명의 길이는 10에서 300 사이여야 합니다.","validate_post_image_url":"포스터는 2048자 미만의 URL이어야 합니다.","validate_post_url":"잘못된 ${displayName} URL","validate_post_url_length":"${displayName} URL은 2048자 이하여야 합니다.","film_rate":"영화 비율","set_film_rate":"촬영 속도 설정","select_a_rate_before_enter":"미디어 라이브러리에 들어가기 전에 필름 속도를 선택해야 합니다.","library_available_rate":"도서관 이용 가능 영화 요금","rate_g":"G – 일반 청중","rate_g_desc":"전연령 인정합니다. 아이들이 보는 것에 대해 부모를 화나게 하는 것은 없습니다.","rate_pg":"PG – 학부모 지도 권장","rate_pg_desc":"일부 자료는 어린이에게 적합하지 않을 수 있습니다. 학부모들은 \\"부모의 지도\\"를 해줄 것을 촉구했다. 부모가 어린 자녀에게 좋아하지 않을 수 있는 내용이 포함되어 있을 수 있습니다.","rate_pg_13":"PG-13 – 부모의 강력한 주의","rate_pg_13_desc":"일부 자료는 13세 미만의 어린이에게 부적절할 수 있습니다. 부모는 주의를 기울여야 합니다. 일부 자료는 미성년자에게 부적절할 수 있습니다.","rate_r":"R – 제한됨","rate_r_desc":"17세 미만은 부모 또는 성인 보호자를 동반해야 합니다. 약간의 성인물이 포함되어 있습니다. 부모는 어린 자녀를 데리고 가기 전에 영화에 대해 더 많이 알아야 합니다.","rate_nc_17":"NC-17 – 성인 전용","rate_nc_17_desc":"17세 미만은 허용되지 않습니다. 분명히 성인. 어린이는 입장할 수 없습니다.","set_as_private":"비공개로 설정","hide_in_explore":"탐색 페이지에서 이 채널 숨기기","hidden":"숨겨진","select_a_rate":"영화 요금을 선택하세요","select_from_tasks":"작업에서 선택","import_from_magnet":"자석에서 가져오기:?...","input_magnet_url":"입력 자석:? URL","task_title":"작업 제목","set_title":"제목 설정","add_to_local_favorites":"로컬 즐겨찾기에 추가","remove_from_local_favorites":"로컬 즐겨찾기에서 제거","removed_favorite":"삭제된 즐겨찾기","import_or_export_favorites":"즐겨찾기 가져오기/내보내기","export_local_favorites":"로컬 즐겨찾기를 백업으로 내보내기","import_favorites_file":"즐겨찾기 파일 가져오기","not_a_favorite_file":"이 파일은 즐겨찾는 백업 파일이 아닙니다.","connection_status":"연결 상태","gun_server_list":"캐시 노드","custom_nodes":"커스텀 캐시 노드","custom_nodes_hint":"앱을 다시 시작한 후 맞춤 캐시 노드가 적용됩니다.","wait_for_reboot":"재부팅 대기 중...({seconds}s)","reboot_now":"지금 재부팅하세요","reboot_later":"나중에 재부팅","peer_list":"직접 노드","server":"노드 URL","peer":"또래","peer_id":"노드 ID","connection":"연결","data_source":"데이터 소스","sync":"동조","syncing":"동기화 중","sync_completed":"동기화 완료","got_all_post":"이미 모든 게시물이 있습니다.","placeholder_channel_title":"채널 이름","placeholder_channel_desc":"이 채널에 대한 설명","placeholder_post_title":"영화명(연도)","placeholder_post_desc":"이 영화에 대한 설명","private_channel":"비공개 채널","creator_blocked":"크리에이터가 차단됨","go_to_library":"도서관에 가십니까?","go_to_library_channel_msg":"도서관 채널 {0}로 이동하시겠습니까?","magnet_does_not_have_name":"이 자석:? url에는 이름이 없으므로 먼저 게시물 제목을 추가해야 합니다.","no_available_post":"사용 가능한 게시물이 없습니다.","following_channel_no_post":"다음의 모든 채널에 사용 가능한 게시물이 없습니다. 네트워크 오류로 인해 발생할 수 있습니다. 일부 채널을 이미 팔로우한 경우 게시물이 나중에 로드될 수 있습니다.","share_to_library":"라이브러리에 공유","quick_start":"빠른 시작","quick_start_desc":"작업 또는 파일로 게시물 작성 시작","select_file":"파일 선택...","select_folder":"폴더 선택...","post_options":"게시물 옵션","channel_options":"채널 옵션","create_new_channel":"새 채널 만들기","use_existed_channel":"기존 채널 사용","select_existed_channel":"기존 채널 선택","uploaded_by":"{title} {name} 업로드","created_by":"{title} {name} 생성","creating_new_channel":"새 채널 생성 중...","created_new_channel":"새 채널이 생성되었습니다.","creating_new_post":"새 게시물 작성 중...","created_new_post":"새 게시물이 생성됨","create_new_post":"새 게시물 만들기","quick_start_timeout":"{0} 시간이 초과되었습니다. 네트워크 오류로 인해 발생할 수 있습니다. 나중에 다시 시도 해주십시오.","file_too_large":"파일이 너무 큽니다","file_too_large_msg":"이 파일은 4GB({size})보다 크며 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 계속하시겠습니까?","resolving_folder_files":"폴더 파일을 해결하는 중...","folder_too_large":"폴더가 너무 큼","folder_too_large_msg":"이 폴더의 파일은 4GB({size} 총)보다 크고 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 업로드하시겠습니까?","creating_new_task":"새 작업 생성 중...","cannot_create_task":"작업을 생성할 수 없습니다.","cannot_create_task_msg":"일부 오류로 인해 발생할 수 있습니다. 작업이 올바르게 생성되면 나중에 작업 목록을 확인할 수 있습니다.","cannot_get_task_name":"작업 이름을 가져올 수 없습니다. 먼저 하나를 입력해야 합니다.","remove_old_task":"이전 작업 제거","remove_old_task_desc":"웹 모드는 한 번에 하나의 작업만 만들 수 있습니다. 이전 작업을 제거하시겠습니까?","subtitle_list":"자막 목록","optional":"선택 과목","with_subtitle":"{language} 자막 포함","maximumSubtitleNum_limit":"자막 수가 최대치에 도달했습니다.","add_subtitle_url":"자막 다운로드 링크 추가","cannot_add_subtitle":"자막을 추가하지 못했습니다.","cannot_add_subtitle_msg":"자막 언어가 선택되지 않았거나 다운로드 링크가 유효하지 않습니다.","support_subtitle_type":"srt 및 vtt 형식의 자막만 지원됩니다.","recommend_opensubtitles":"www.opensubtitles.org에서 자막 다운로드 링크 또는 아이디를 사용하는 것을 권장합니다.","take_down":"테이크다운","serious_violation":"심각한 위반","copyright_disputes":"저작권 분쟁","adults_only":"성인 만","takedown_reason":"게시 중단 이유","takedown_mode":"테이크다운 모드","admins":"관리자","takedown_user":"이 크리에이터 게시 중단","takedown_channel":"이 채널 게시 중단","takedown_post":"이 게시물 게시 중단","select_takedown_reason":"게시 중단 이유 선택","takedown_invalid_reason":"잘못된 게시 중단 이유","takedown_invalid_user_id":"잘못된 사용자 ID입니다. ID는 87자를 포함해야 합니다.","takedown_invalid_channel_id":"잘못된 채널 ID입니다. ID는 20자를 포함해야 합니다.","takedown_invalid_post_id":"잘못된 게시물 ID입니다. ID는 20자를 포함해야 합니다.","takedown_management":"테이크다운 관리","users":"사용자","channels":"채널","posts":"게시물","you":"너","preset":"프리셋","admin":"관리자","committee":"위원회","about_takedown_mode":"게시 중단 모드 정보:\\n사전 설정: github 저장소에서 구성됩니다. 모두 라이브러리에서 제거됩니다.\\n관리자: 관리자 투표 중 하나가 제거됩니다.\\n위원회: 투표한 관리자의 절반 이상이 제거됩니다.","cannot_edit_preset":"이 행은 미리 설정된 행이므로 편집할 수 없습니다.","cannot_edit_not_vote":"투표하지 않았으므로 이 행을 편집할 수 없습니다.","remove_vote":"투표 제거","post_preload_failed":"이 게시물을 미리 로드하지 못했습니다. 다운로드 링크가 오래되어 이 게시물을 바로 재생할 수 없습니다.","about_cache_node":"캐시 노드 정보","edit_cache_node":"캐시 노드 편집","create_cache_node":"캐시 노드 생성","about_cache_node_desc":"${displayName}는 건 서버를 캐시 노드로 사용합니다. 사전 설정에서 사용자 정의 노드를 편집할 수 있습니다.","learn_how_to_deploy_gun":"자체 건 서버를 배포하는 방법 알아보기","repeat_add":"작업이 추가되었습니다. 다시 추가하지 마세요.","upload":"업로드","download":"다운로드","delete":"삭제","delete_task":"작업 삭제","delete_confirm_message":"이 작업을 삭제하시겠습니까? 취소할 수 없습니다.","also_delete_files":"파일도 삭제","default_delete_files":"제거 작업 후 기본 삭제 다운로드 파일","not_now":"지금은 아니다","delete_autoupload_confirm":"이 작업에는 자동 업로드 디렉터리에 넣은 파일이 포함되어 있습니다. 이 작업을 삭제하면 파일도 삭제됩니다.","delete_anyway":"무시하고 삭제","upload_too_many_files":"너무 많은 파일 업로드","ask_if_unlimit_upload_amount":"자동 업로드 디렉터리에 너무 많은 파일이 포함되어 있습니다. 업로드 용량 제한을 비활성화하시겠습니까? *성능 문제가 발생할 수 있습니다.","disable_limitation":"제한 비활성화","not_length":"현재 다중 파일 작업이 지원되지 않습니다. 협조해 주시기 바랍니다.","download_torrent":"파일 다운로드","upload_torrent":"파일 업로드","files":"파일","file":"파일","folder":"폴더","start_all":"모두 시작","pause_all":"모두 일시중지","remove_all":"모두 제거","upload_all":"모두 업로드","clear_history":"기록 지우기","pause_all_finish_payments":"이로써 모든 결제가 완료됩니다.","accelerating":"가속","link_task":"작업 연결","torrent_task":"파일 작업","ok":"좋아요","cancel":"취소","download_directory_position":"다운로드 디렉토리 위치","torrent_file":"작업 파일","magnetic_link_incorrect":"링크 형식이 잘못되었습니다.","delete_fail":"삭제 실패","pause":"정지시키다","paused":"일시중지됨","stop_torrent":"멈추다","seed":"씨앗","resume":"재개하다","downloading":"다운로드 중","downloaded":"다운로드됨","uploading":"업로드 중","auto_uploading":"자동 업로드","uploaded":"업로드됨","pending":"다른 작업을 기다리는 중","verifying":"확인 중","waiting_for_verify":"확인 대기 중","seeding":"파종","completed":"완전한","status":"상태","task_name":"작업 이름","size":"크기","progress":"진전","sort":"종류","ascending":"오름차순","descending":"내림차순","file_loading":"파일 로드 중...","loading":"로드 중","unknown_status":"알려지지 않은","play_while_downloading":"놀다...","upload_or_play":"업로드/재생","play":"놀다","ask_if_upload_file":"파일을 업로드하시겠습니까?","ask_if_upload_or_play":"파일을 업로드하거나 재생하시겠습니까?","torrent_error":"작업 추가 시 오류:","no_peers":"{0} 회 이상 재시도하고 사용 가능한 피어가 없습니다.","torrent_exists":"작업이 이미 존재합니다.","show_origin_torrent":"원본 작업 파일 또는 URL 가져오기","show_directory":"이 토렌트의 디렉토리 열기","task_num":"작업","total_upload_speed":"업로드 속도","total_download_speed":"다운로드 속도","path_missing":"오류: 토렌트 경로를 찾을 수 없습니다.","origin_not_found":"원본 작업 정보를 찾을 수 없습니다.","text_copied":"매그넘 URL이 클립보드에 복사됩니다.","copy_magnet_uri":"복사 자석:? URI","copy_download_uri":"다운로드 URI 복사","copy_share_uri":"공유 URI 복사","uri_copied":"URI가 클립보드에 성공적으로 복사되었습니다.","uri_copy_failed":"URI를 복사하지 못했습니다.","more":"더...","toggle_list_mode":"목록 모드 전환","comment":"논평","operations":"운영","open_directory":"디렉토리 열기","no_downloading_task":"다운로드 작업 없음","remove_all_downloading_tasks":"모든 다운로드 작업을 제거하시겠습니까?","remove_all_upload_tasks":"모든 업로드 작업을 제거하시겠습니까?","remove_autoupload_files":"자동 업로드 파일 제거","remove_all_history":"모든 기록을 삭제하시겠습니까?","remaining":"남은","created_time":"만든 시간","used_time":"사용시간","completed_time":"완료된 시간","yesterday":"어제","before_yesterday":"{empty}","earlier":"더 일찍","miss_file":"일부 파일이 누락됨","delete_miss_file_task":"{0}에 누락된 파일이 있습니다.","common_peer":"공통 피어","ab_peer":"${displayName} 피어","ab_peer_verified":"확인된 ${displayName} 피어","ab_peer_available":"${displayName} 피어 사용 가능","alphabiz_accelerating":"${displayName} 가속","income":"소득","income_info":"수입(오늘/총)","total_income_info":"수입: {0}(오늘) / {1}(총)","login_to_see_income":"소득 통계를 보려면 로그인하십시오.","credit_cost":"신용 비용","downloaded_by_payment":"결제로 다운로드","file_not_found":"로컬에서 이 파일을 찾을 수 없습니다.","no_task":"묻지 않는다","no_matched_task":"일치하는 작업 없음","space_not_enough":"디스크 공간이 충분하지 않음","need_more_space":"{0} 더 많은 공간이 필요하지만 현재 디스크에 {1} 여유 공간이 있습니다({2} 예약됨). 작업이 일시 중지되었습니다. 라이브러리 사전 로드가 비활성화되었습니다. [설정 - 고급]에서 다시 활성화할 수 있습니다.","seeders":"파종기","last_update":"마지막 업데이트","connecting":"연결 중","connected":"연결됨","request_timed_out":"요청 시간이 초과되었습니다","connection_failed":"연결에 실패","invalid_download_url":"잘못된 다운로드 URL","download_link":"다운로드 링크","empty_files":"디렉토리에 파일이 없습니다","duplicate_task":"중복 작업","duplicate_tracker":"중복 추적기","this_task_not_ready":"이 작업은 준비되지 않았습니다. 이 작업을 일시 중지하면 바로 제거됩니다.","some_task_not_ready":"일부 작업이 준비되지 않았습니다. 이러한 작업을 일시 중지하면 바로 제거됩니다.","failed_to_delete_files":"파일을 삭제하지 못했습니다.","failed_to_delete_files_desc":"작업의 일부 파일을 삭제하지 못했습니다. 수동으로 삭제해야 할 수도 있습니다.","unknown_error":"알 수 없는 오류: {0}","more_files_are_not_shown":"({0} 더 많은 파일은 성능상의 이유로 표시되지 않음)","no_available_file":"사용 가능한 파일이 없습니다. 작업이 준비될 때까지 기다리십시오.","service_worker_error":"재생을 위해 ServiceWorker를 로드할 수 없습니다. 브라우저가 이 기능을 지원하지 않거나 ServiceWorker가 활성화되지 않았을 수 있습니다. 이 페이지를 새로고침하고 다시 시도해야 할 수도 있습니다.","add_task_first":"먼저 작업을 추가해야 합니다.","player_task_time":"플레이어가 플레이를 준비하는 데 너무 많은 시간이 걸립니다. 작업에 문제가 있을 수 있습니다.","web_mode_hint":"${displayName}의 웹 모드는 WebRTC 피어만 지원합니다. 최상의 경험을 위해 ${displayName} 데스크탑 앱을 다운로드하십시오.","web_mode_task_hint":"작업을 추가하려면 아래 버튼을 클릭하세요. 한 번에 하나의 작업만 추가할 수 있습니다.","save_to_local":"로컬에 저장","save_as_zip":"ZIP으로 저장","creating_save_file":"세이브 파일 생성중...","upload_as_one_directory":"하나의 디렉토리로 업로드","upload_as_single_files":"단일 파일로 업로드","web_mode_upload_single":"웹 모드에서는 단일 파일만 업로드할 수 있습니다.","download_success":"성공적으로 다운로드","download_fail":"다운로드 실패","wait_for_downloaded_to_share":"공유하기 전에 작업이 다운로드될 때까지 기다리십시오.","download_with_cellular":"셀룰러를 사용하여 작업 다운로드","download_with_cellular_desc":"셀룰러 네트워크를 사용하고 있습니다. 셀룰러로 작업을 다운로드하면 이동통신사에서 추가 요금을 부과할 수 있습니다.","download_with_cellular_confirm":"여전히 셀룰러로 다운로드","language":"언어","appearance":"모습","darkModeSystem":"체계","darkModeLight":"빛","darkModeDark":"어두운","basic_setting":"기초적인","hideMenu":"앱 메뉴 숨기기(Windows 및 Linux만 해당)","autoHide":"창 자동 숨기기","autoStart":"로그인 시 열기","restore":"종료 시 창의 크기와 위치 유지","autoStartUnfinished":"완료되지 않은 모든 작업을 자동으로 재개","default_download_path":"기본 경로","download_directory":"디렉토리 다운로드","upload_directory":"디렉토리 업로드","enable_auto_upload":"자동 업로드 사용","unlimit_upload_amount":"무제한 업로드 금액","unlimit_upload_warning":"많은 양의 파일을 업로드할 수 있습니다. 이로 인해 성능 문제가 발생할 수 있습니다.","start":"시작","transport_setting":"전염","upload_limit":"업로드 제한","download_limit":"다운로드 한도","payed_user_share_rate":"유료 사용자 점유율","unlimited":"제한 없는","limit_input_error":"제한 숫자는 양수여야 합니다.","BT_setting":"작업 설정","saveLinkSeed":"작업 파일로 링크 저장","autoDownload":"링크 및 콘텐츠 자동 다운로드","continuousSeeding":"수동으로 중지할 때까지 시드 유지","seedSharingRate":"종자 비율","seedTime":"시드 시간(분)","task_manage":"작업 관리","maximumDownloadNum":"최대 활성 작업","maximumConnectionsNum":"서버당 최대 연결","range_error":"범위는 {0}에서 {1} 사이여야 합니다.","random":"무작위의","breakpointContinuation":"계속하다","automaticSkip":"작업 추가 후 자동으로 다운로드 표시","afterNotification":"다운로드 완료 후 알림","deleteConfirm":"작업을 삭제하기 전에 확인이 필요하지 않습니다.","submit":"저장 및 적용","discard":"버리다","reset":"초기화","reset_all_settings":"모든 설정을 재설정하시겠습니까?","preferences_resetted":"환경설정이 재설정됨","traditional_chinese":"중국어 번체","japanese":"일본어","english":"영어","chinese":"중국어 간체","advancedSettings":"고급의","autoUpdate":"자동 업데이트","autoCheckUpdate":"업데이트 자동 확인","proxy":"대리","useProxyService":"프록시 활성화","trackerService":"트래커 서버","recommendUse":"추천","autoUpdateTrackerServiceList":"매일 자동으로 트래커 목록 업데이트","manualUpdateTracker":"수동 업데이트","manualUpdateSuccess":"트래커 서버를 성공적으로 업데이트했습니다.","manualUpdateFail":"업데이트 실패:","listenPort":"청취 포트","BTlistenPort":"데이터 전송 포트","DHTlistenPort":"분산 해시 포트","protocols":"호환 가능한 프로토콜","setDefaultClientForFollowingProtocols":"다음 프로토콜의 기본 클라이언트로 설정","magnetUrl":"자석","video_file":"비디오 파일","audio_file":"오디오 파일","security":"보안","impersonateUserAgent":"모의 사용자 에이전트","RPCauthorizationkey":"RPC 비밀","viewDocument":"RPC 시크릿 매뉴얼 보기","developer":"개발자","applicationLogPath":"앱 로그 경로","downloadSessionPath":"세션 경로 다운로드","resetDownloadSessionRecord":"다운로드 세션 재설정","restoreInitialSettings":"공장초기화","preferences_set_successfully":"기본 설정을 성공적으로 저장하십시오!","preferences_set_fail":"기본 설정 저장 실패!","change_not_save":"변경 사항이 저장되지 않음","discard_all_changes":"모든 변경사항을 취소하고 종료하시겠습니까?","stay_in_page":"페이지에 머물기","disk_usage":"디스크 사용량","pause_if_less_space":"공간이 (MB) 미만인 경우 일시 중지 및 알림","default_video_player":"기본 비디오 플레이어","video_cache_time":"스트림 재생 캐시","minutes":"분","system_default":"시스템 기본값","media_player":"미디어 플레이어","library_film_rate":"사용 가능한 영화 속도","library_show_explore":"[탐색] 페이지 표시","library_setting":"라이브러리 설정","library_sync_setting":"라이브러리 동기화 설정","keychain_sync_status":"키체인 동기화 상태","sync_with_aws":"Amazon Web Services와 키체인 동기화","backup_to_local":"로컬 파일에 백업","enable_sync_with_aws":"AWS와 동기화 활성화","disable_sync_with_aws":"AWS와의 동기화 비활성화","disable_sync_with_aws_desc":"이렇게 하면 서버에 저장된 키가 제거됩니다. 이미 키를 내보냈는지 확인하십시오.","input_independent_password":"독립적인 암호 입력","change_independent_password":"독립적인 비밀번호 변경","password_error":"비밀번호 오류","password_invalid":"잘못된 비밀번호","key_existed":"키 존재","key_not_found":"키를 찾을 수 없음","library_recommend":"도서관 추천","show_all_channels":"도서관 추천 페이지에 모든 채널 표시","not_logged_in":"로그인하지 않았습니다","login_to_continue":"계속하려면 로그인하세요.","mnemonic_code":"니모닉 코드","wordlist":"단어 목록","restore_code":"코드에서 복원","generate_code":"코드 생성","export_mnemonic_code":"니모닉 코드 내보내기","import_mnemonic_code":"니모닉 코드 가져오기","print":"인쇄","save_as_txt":"txt로 저장","save_as_pdf":"PDF로 저장","from_file":"파일에서","not_valid_mnemonic_code":"유효한 니모닉 코드가 아닙니다.","cannot_parse_code_as_key":"이 니모닉 코드를 라이브러리 키로 구문 분석할 수 없습니다.","import_key_hint":"이 키를 가져오시겠습니까? 이렇게 하면 라이브러리에서 이전 키가 복구됩니다.","import_key_confirm":"예, 가져옵니다.","library_preload":"라이브러리에서 작업 미리 로드","show_preload":"사전 로드 작업 표시","set_download":"다운로드 디렉토리 설정","set_download_desc":"macOS App Store 버전의 경우 기본 다운로드 디렉토리는 앱의 샌드박스에 있으며 앱 제거 후 삭제됩니다. 다운로드 파일을 보관하려면 다른 다운로드 디렉토리를 수동으로 선택해야 합니다.","home":"집","home_caption":"다운로드/업로드 및 미디어 파일","library":"도서관","library_caption":"미디어 리소스 살펴보기","player":"플레이어","player_caption":"미디어 플레이어","credits":"학점","credits_caption":"계정 잔액 확인","account":"계정","account_caption":"로그인/가입/관리","settings":"설정","settings_caption":"앱, 플레이어, 계정 설정","development":"개발","development_caption":"내부용 개발자 모드","basic":"기초적인","basic_caption":"기본 설정","advanced":"고급의","advanced_caption":"고급 설정","blockchain":"지갑","blockchain_caption":"${displayName} 탈중앙화 지갑","internal_notice":"내부 릴리스 공지","release_notes":"릴리즈 노트","terms_and_conditions":"이용약관","license_and_listen_notices":"라이선스 및 오픈 소스 듣기 고지 사항","close":"닫다","success":"성공","fail":"실패하다","account_email_invalid_address":"잘못된 이메일 주소","account_email_invalid_domain":"잘못된 이메일 도메인","account_email_unknown_status":"알 수 없는 이메일 전송 상태","account_email_unavailable_address":"사용할 수 없는 이메일 주소","account_email_suppressed_address":"억제된 이메일 주소","account_loading":"로드 중...","account_is_required":"필요하다","account_sign_in_your_account":"로그인","account_username":"사용자 이름","account_username_email_phone":"전화번호 또는 이메일","account_password":"비밀번호","account_new_password":"새 비밀번호","account_re_enter_password":"비밀번호를 다시 입력하세요","account_password_not_equal":"두 암호가 동일하지 않습니다","account_new_password_same":"비밀번호는 기존 비밀번호와 동일합니다.","account_forgot_your_password":"비밀번호를 잊어 버렸습니까?","account_reset_password":"암호를 재설정","account_sign_in":"로그인","account_signed_in":"로그인","account_sign_up":"가입하기","account_find_your_account":"계정 찾기","account_enter_your_username":"전화번호 또는 이메일을 입력하세요.","account_search":"찾다","account_email_sent_tip":"확인 코드가 포함된 이메일이 귀하의 이메일로 전송되었습니다:","account_phone_sent_tip":"인증 코드가 포함된 SMS가 휴대전화로 전송되었습니다.","account_email_phone_sent_tip":"확인 코드가 포함된 이메일과 SMS가 각각 귀하의 이메일과 전화로 전송되었습니다:","account_software_token_tip":"계정에 대해 MFA가 활성화되었습니다. 로그인을 완료하려면 장치를 켜거나 보고 TOTP를 입력하십시오.","account_reset_your_password":"비밀번호를 재설정","account_verification_code":"확인 코드","account_resend_code":"코드 재전송","account_code_has_been_resent":"인증 코드가 재전송되었습니다","account_password_has_been_reset":"비밀번호가 재설정되었습니다","account_submit":"제출하다","account_sign_up_your_account":"계정 가입","account_fill_required_fields":"아래의 필수 필드를 작성하십시오.","account_fill_optional_fields":"아래의 선택 필드를 채우십시오.","account_email":"이메일","account_invitation":"초대","account_invitation_code":"초대 코드","account_i_accept":"동의 함","account_license_terms":"라이센스 및 조건","account_next":"다음","account_you_need_to_accept_license_terms":"먼저 라이센스 및 약관에 동의해야 합니다.","account_verify_fill_optional_fields":"선택적 필드를 확인하고 채우십시오.","account_nickname":"별명","account_gender":"성별","account_male":"남성","account_female":"여성","account_not_say":"말하지마","account_birthday":"생일","account_phone_number":"전화 번호","account_locale":"현지의","account_tip_verified":"확인됨, 로그인 중...","account_verified":"확인","account_unverified":"확인되지 않은","account_signed_up":"가입","account_verify_your_identity":"신원 확인","account_finish":"마치다","account_signed_out":"로그 아웃","account_change_password":"비밀번호 변경","account_change_email":"이메일을 바꾸다","account_change_phone_number":"전화번호 변경","account_sign_out":"로그아웃","account_current_password":"현재 비밀번호","account_re_enter_new_password":"새 비밀번호를 다시 입력하십시오","account_personal_information":"정보","account_edit":"편집하다","account_reset":"초기화","account_greeting":"안녕하세요,","account_cancel":"취소","account_change":"변화","account_not_set":"설정되지 않음","account_setting":"환경","account_copy_code":"코드 복사","account_account_setting":"계정","account_task_page":"신용 작업","account_setting_caption":"비밀번호 변경 / 정보 수정","account_security":"보안","account_want_to_join":"들어 올래?","account_sign_in_now":"로그인","account_changed":"변경됨","account_clipboard_with_invitation_code":"초대 코드 복사됨","account_clipboard_with_code":"복사된 코드","account_invitation_code_dialog_tip":"초대 코드가 포함된 이메일 또는 문자 메시지를 친구에게 보냅니다.","account_available":"사용 가능","account_invited":"초대","account_used":"사용된","account_invitation_code_sent":"초대 코드가 전송되었습니다","account_invitation_channel_required":"하나 이상의 초대 채널을 작성하십시오.","account_no_verification_code":"인증번호를 받을 수 없나요?","account_no_phone_number":"전화번호가 없나요?","account_sign_up_by_email":"이메일로 가입","account_no_email":"이메일이 없나요?","account_sign_up_by_phone_number":"전화번호로 가입","account_no_totp":"TOTP가 없습니까?","account_tip_no_totp":"TOTP가 없는 경우 TOTP를 먼저 설정하십시오.","account_setup_totp":"TOTP 설정","account_contact_information":"연락처 정보","account_delete_account":"계정 삭제","account_deleted":"삭제됨","account_can_not_mfa":"문제가 있는 MFA?","account_set_mfa_type":"구성 MFA","account_disable_mfa":"MFA 비활성화","account_disabled_mfa":"장애인 MFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"추천하지 않음","account_oauth_sign_in_with":"{provider}로 로그인","account_sign_in_failed":"로그인 실패","account_tip_oath_sign_up":"현재 {provider} 계정에 해당하는 이메일: {email}은 아직 계정을 만들지 않았습니다.","account_tip_confirm_delete_account":"현재 계정의 비밀번호를 입력하여 현재 계정 삭제를 확인합니다.(삭제된 계정은 복구할 수 없습니다.)","account_tip_config_mfa":"2차 인증으로 SMS 또는 시간 기반 일회용 비밀번호(TOTP)를 사용하도록 선택할 수 있습니다.","account_error_can_not_enable_mfa":"MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_sms_mfa":"SMS MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_totp_mfa":"TOTP MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_setup_totp":"Authenticator와 같은 앱을 사용하여 아래 QR 코드를 스캔하거나 코드를 수동으로 복사하여 보안 토큰을 추가하세요.","account_tip_verify_totp":"TOTP 확인","account_link_your_social_account":"소셜 계정 연결","account_unlink_your_social_account":"소셜 계정 바인딩 해제","account_tip_confirm_link":"현재 계정을 {provider} 계정에 연결하시겠습니까?","account_tip_confirm_unlink":"결합된 {provider} 계정을 취소하시겠습니까?","account_tip_linking":"제본...","account_tip_unlinking":"구속 해제...","account_linked":"경계","account_unlinked":"매여 있지 않은","account_error_can_not_link_to_the_linked_account":"현재 소셜 계정은 다른 계정에 연결되어 있습니다.","account_error_can_not_link_to_the_mismatched_email":"현재 계정과 소셜 계정 이메일 주소가 일치하지 않습니다.","account_error_can_not_link_before_email_verified":"현재 계정이 인증된 이메일에 연결되어 있지 않기 때문에 소셜 계정을 연결할 수 없습니다.","account_tip_confirm_verify_email_phone":"신원 확인을 위해 현재 계정의 이메일과 전화번호로 인증 코드를 보낼지 여부","account_tip_confirm_verify_phone":"신원 확인을 위해 현재 전화번호로 인증 코드를 보낼지 여부","account_error_1_message_60_seconds":"60초마다 하나의 SMS 또는 이메일만 보낼 수 있습니다. {delta}초를 더 기다리세요.","account_error_10_messages_per_day":"각 휴대폰 또는 이메일은 24시간 이내에 10개의 메시지만 보낼 수 있습니다.","account_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","Network Error":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","account_error_user_not_exist":"사용자가 존재하지 않습니다","account_error_incorrect_username_or_password":"잘못된 사용자 이름 또는 비밀번호","account_error_incorrect_original_password":"잘못된 원래 암호","account_error_incorrect_password":"잘못된 비밀번호","account_error_username_not_found":"사용자 이름을 찾을 수 없습니다","account_error_can_not_reset_for_no_verified":"확인되지 않은 계정의 비밀번호는 재설정할 수 없습니다.","account_error_invalid_verification_code":"인증 코드가 잘못되었습니다. 다시 시도해 주세요.","account_error_expired_verification_code":"인증 코드가 만료되었습니다. 다시 시도해 주세요.","account_error_password_not_long_enough":"비밀번호가 충분히 길지 않습니다","account_error_attempt_limit_exceeded":"시도 제한을 초과했습니다. 잠시 후에 시도하십시오.","account_error_password_attempts_exceeded":"암호 시도 횟수를 초과했습니다.","account_error_invalid_phone_number_format":"잘못된 전화번호 형식","account_error_no_cell_phone_prefix":"전화번호의 접두사를 선택하세요.","account_error_username_already_exists":"사용자 이름이 이미 존재합니다","account_error_you_need_to_accept_license_terms":"먼저 라이선스 및 약관에 동의해야 합니다.","account_error_inactive_code":"초대 코드는 활성화된 코드가 아닙니다.","account_error_non_existent_code":"초대 코드가 존재하지 않습니다","account_error_unexpected":"예기치 않은 오류","account_error_can_not_change_email_before_phone_bound":"전화번호가 바인딩되기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_email_before_unbound_social_account":"소셜 계정 바인딩을 해제하기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_phone_before_email_bound":"이메일이 바인딩되기 전에는 전화번호를 변경할 수 없습니다.","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA를 비활성화하기 전에는 이메일 또는 휴대폰 번호를 변경할 수 없습니다.","account_error_not_supported_yet":"지원되지 않음","account_error_same_email":"새 이메일 주소는 원래 이메일 주소와 같을 수 없습니다.","account_error_same_phone":"새 전화번호는 원래 전화번호와 같을 수 없습니다.","account_error_email_not_exists":"이메일 주소가 존재하지 않습니다","account_error_email_already_exists":"주어진 이메일을 사용하는 계정이 이미 존재합니다.","account_error_phone_already_exists":"주어진 전화번호를 사용하는 계정이 이미 존재합니다.","account_error_mfa_token_mismatch":"소프트웨어 토큰 코드 불일치","account_error_recaptcha_not_loaded":"네트워크에 문제가 있습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_recaptcha_validation_failed":"ReCAPTCHA 유효성 검사에 실패했습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_sign_in_in_progress":"보류 중인 로그인 시도가 이미 진행 중입니다.","account_field_range":"{0}-{1} 문자 입력 제한","account_field_only_alphanumeric":"영숫자만 지원","account_field_only_alphanumeric_and_symbol":"영숫자 및 기호만 지원","account_field_only_chinese_alphanumeric_space_underline":"영숫자, 공백, 밑줄만 지원합니다.","account_field_prefix_without_number_space":"첫 번째 문자는 숫자나 공백일 수 없습니다.","account_field_suffix_without_space":"공백으로 끝날 수 없습니다.","account_field_without_repeat_space":"연속으로 여러 공백을 사용할 수 없습니다.","account_field_can_not_only_alphanumeric":"문자나 숫자만 사용할 수 없습니다.","account_field_must_have_number_characters":"숫자 문자가 있어야 합니다.","account_field_verification_code":"인증 코드는 6자리여야 합니다.","account_field_invitation_code":"초대 코드는 영숫자여야 합니다.","account_field_phone_number":"잘못된 전화번호 형식","account_invalid_email_format":"잘못된 이메일 형식","account_sign_out_confirm":"로그아웃하시겠습니까? 이렇게 하면 모든 작업이 중지됩니다.","account_sign_out_anyway":"무시하고 로그아웃","account_signing_out":"로그아웃 중...","account_request_save_settings":"설정이 저장되지 않습니다. 로그아웃하기 전에 변경 사항을 저장해야 합니다.","pay":"지불하다","pay_with_credit":"다운로드 가속화 비용을 지불합니다. {0} 크레딧이 필요합니다.","pay_with_credit_payed":"가속. 여전히 약 {0} 크레딧이 필요합니다.","create_payment":"결제 생성","pay_target":"표적","pay_for_torrent":"{0} 지불","your_subid":"당신의 subId","your_credits":"당신의 크레딧","pay_point_for_data":"{1} 데이터에 대해 {0} 포인트 지불","auto_renew":"자동 갱신 활성화","transaction_details":"상세 거래 내역","transaction_id":"ID","transaction_payer":"지불인","transaction_payee":"수취인","transaction_category":"범주","transaction_changed_amount":"변경 금액","transaction_meta":"메타","transaction_status":"상태","transaction_creation_time":"생성 시간","receipt_code":"영수증 코드","transfer_amount":"이체 금액","code_the_receipt_code":"아래의 영수증 코드를 지불인에게 복사하십시오.","fill_the_receipt_code":"수취인이 제공한 결제 코드를 입력하여 송금","expense":"비용","copied":"복사됨","transfer":"옮기다","receive":"받다","copy":"복사","withdraw_fund":"자금 인출","category_paydata_payer":"데이터 비용","category_paydata_payee":"데이터 수입","category_transfer":"옮기다","category_bonus":"보너스","category_recharge":"재충전","status_pending":"보류 중","status_completed":"완전한","status_finish":"마치다","status_failed":"실패한","tip_invalid_receiver":"잘못된 수신자 코드","tip_invalid_amount":"신용 금액은 0-1000 범위의 부동 소수점이어야 합니다(최소 정밀도는 0.001임).","credit_get_more":"더 많은 크레딧 받기","credit_no_data":"자료 없음","credit_loading":"로드 중...","credit_not_enough_amount":"크레딧이 부족합니다","credit_amount_not_enough":"크레딧이 부족합니다","credit_payee_not_exist":"수취인이 존재하지 않습니다.","credit_invalid_amount":"유효하지 않은 크레딧 금액","credit_can_not_transfer_to_yourself":"자신에게 양도할 수 없습니다.","credit_latest":"최신","credit_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","add_subtitles":"자막 추가","open_file":"파일 열기...","advanced_options":"고급 옵션","title":"제목","location":"위치","subtitle_file":"자막 파일","unsupported_subtitle_type":"{0} 파일 형식은 지원되는 자막 형식이 아닙니다.","not_default_player":"기본 비디오 플레이어가 설정되지 않았습니다.","this_is_an_audio_file":"이것은 오디오 파일입니다","the_added_subtitle_already_exists":"추가된 자막이 이미 존재합니다.","stop_stream_player":"작업이 일시 중지 또는 삭제되어 스트리밍 미디어가 종료되었습니다.","stop_player":"파일이 삭제되어 플레이어가 종료되었습니다.","playing_timeout_hint":"대기 시간이 초과되었습니다. 과제를 확인해주세요","autoplay_hint":"브라우저에서 자동 재생을 차단할 수 있습니다. 플레이어가 재생되지 않으면 화면을 클릭하여 계속하십시오.","remove_playing_confirm":"{0}는 아직 재생 중입니다. 제거하면 플레이어가 중지됩니다. 제거하시겠습니까?","unsupported_in_browser":"브라우저 모드에서는 아직 지원되지 않음","client":"고객","warning":"경고","enable":"할 수 있게 하다","disable":"장애를 입히다","auto":"자동","encrypt_connection":"연결 암호화","encrypted_connection":"암호화된 연결","non_encrypted_connection":"암호화되지 않은 연결","connected_wires_not_disconnect":"연결된 전선이 끊어지지 않습니다","audio":"오디오","video":"동영상","image":"영상","subtitle":"부제","zip":"지퍼","text":"텍스트","unknown":"알려지지 않은","add":"추가하다","undo":"실행 취소","backup":"지원","not_default_app":"${displayName}은(는) 토렌트 및 미디어용 기본 앱이 아닙니다. 기본값으로 설정하시겠습니까?","dont_show_again":"다시 표시하지 않음","go_to_settings":"설정으로 바로 가기","about_alphabiz":"약 ${displayName}","last_check_at":"마지막 확인 시간","update_channel":"채널 업데이트","check_for_update":"업데이트를 확인","checking_for_update":"업데이트 확인 중...","no_update_available":"사용 가능한 업데이트 없음","update_available":"업데이트 가능","update_now":"지금 업데이트","update_later":"나중에 업데이트","click_to_update":"지금 업데이트 버튼을 클릭하여 다운로드 및 업데이트","update_failed":"업데이트가 실패","update_failed_message":"업데이트하는 동안 오류가 발생했습니다:","check_shasum_failed":"설치 프로그램의 무결성을 확인하지 못했습니다.","downloading_update":"업데이트 다운로드 중...","ready_to_update":"업데이트 준비 완료","restart_to_update":"업데이트가 다운로드됩니다. ${displayName}는 잠시 동안 업데이트를 위해 종료됩니다.","already_latest":"현재 버전({0})은 이미 최신 버전입니다.","update_timeout":"업데이트 시간 초과","no_available_release":"사용 가능한 릴리스 없음","no_available_installer":"사용 가능한 설치 프로그램 없음","feedback":"피드백","select_a_type":"유형 선택","category":"범주","select_a_category":"카테고리 선택","require_title":"제목은 필수 항목입니다.","describe_your_problem":"문제를 설명하십시오","report_a_bug":"버그 신고","request_a_new_feature":"새 기능 요청","download_or_upload":"다운로드 업로드","others":"기타","submit_with_system_info":"시스템 정보와 함께 제출","submit_feedback":"피드백 제출","tweet_us":"트윗하기","tweet_too_long":"트윗이 너무 깁니다","delete_characters":"최소 {0} 문자를 삭제하십시오.","rest_characters":"{0} 더 많은 문자를 입력할 수 있습니다.","update_alphabiz":"업데이트 ${displayName}","current_version":"현재 버전","cancel_update":"업데이트 취소","slow_download_speed":"너무 느린 다운로드","slow_download_speed_caption":"현재 설치 프로그램 다운로드가 너무 느립니다. 네트워크 상태를 확인하십시오","update_canceled":"업데이트 취소됨","current_version_release_time":"현재 버전의 출시 시간","expired_app":"${displayName} 만료됨","version_out_of_date":"오래된 버전","have_to_update":"${displayName} 버전이 오래되었습니다. 일부 프로토콜 또는 API는 더 이상 사용되지 않습니다. 계속하기 전에 ${displayName}를 업데이트해야 합니다.","exit_alphabiz":"${displayName} 종료","exit_and_update":"종료 및 업데이트 적용","new_version_hint":"새 버전을 사용할 수 있습니다","no_new_version":"사용 가능한 새 버전이 없습니다.","current_is_latest":"현재 버전이 이미 최신 버전입니다.","click_to_check_update":"[업데이트 확인] 버튼을 클릭하여 업데이트 확인","download_latest_version_from_website":"최신 버전을 다운로드하려면 공식 웹 사이트를 방문하십시오.","to_the_website":"웹사이트로","network_diagnotic":"네트워크 진단","diagnotic":"특수 증상","click_to_check":"클릭하여 확인","click_to_check_again":"다시 확인하려면 클릭","checking":"확인 중","online":"온라인","offline":"오프라인","dns_look_up":"DNS 조회","error":"오류","aws_service":"AWS 서비스","network_pings":"네트워크 핑","not_found":"찾을 수 없음","packet_loss":"패킷 손실","official_site":"공식 사이트","download_test":"테스트 다운로드","test_task":"테스트 작업 {0}","download_failed":"다운로드 실패","second_spend":"{0} 지출","open_default_player_failed":"기본 플레이어를 열지 못했습니다.","copied_to_clipboard":"클립보드에 복사됨","go_to":"이동","region_not_available":"사용할 수 없는 지역","region_not_available_message":"죄송합니다! 귀하의 지역은 이 앱을 사용할 수 없습니다. 이 앱은 {0}초 후에 종료됩니다.","confirm":"확인하다","no_available_result":"사용 가능한 결과 없음","invalid_password_format":"비밀번호 포맷이 맞지 않습니다","invalid_password_format_same":"비밀번호는 기존 비밀번호와 동일합니다.","error_password":"비밀번호 오류","keychain_setting":"키체인","setting_description":"클라우드 스토리지: 주요 데이터를 클라우드에 저장합니다.\\n암호 변경: 미디어 라이브러리 키의 암호를 변경합니다.\\nMnemonic: 키 생성 및 복원을 위한 대체 방법입니다.\\n로컬 키 가져오기: 로컬에 저장된 키를 미디어 라이브러리로 가져옵니다.\\n내보내기 키: 현재 미디어 라이브러리 데이터를 로컬 또는 클라우드에 저장합니다.\\n클라우드에 키 백업: 백업을 위해 현재 미디어 라이브러리 데이터를 클라우드로 업데이트합니다.","refresh_status":"업데이트 상태","confirm_import_key":"가져오기 키 확인","confirm_update_cloud_key":"이미 클라우드에 키가 있습니다. 키를 업데이트하면 원래 키를 덮어씁니다. 클라우드에 저장된 키를 업데이트하시겠습니까?","export_key_with_cloud":"클라우드에 저장된 라이브러리 키를 내보내기 위해 설정한 독립 암호를 입력하고 잠금 해제 암호로 키 파일을 잠급니다.","store_cloud_key_prompt_password":"클라우드에 라이브러리 키를 저장하기 위해 독립적인 암호를 입력하십시오.","update_cloud_key_prompt_password":"독립적인 암호를 설정하여 라이브러리 키를 암호화한 다음 클라우드로 업데이트","enable_cloud_storage_prompt_password":"클라우드에 저장된 키의 암호를 설정하여 클라우드에서 키를 검색할 수 있습니다.","input_unlock_password":"잠금해제 비밀번호 설정","export_local_prompt_password":"키 파일을 암호화하려면 잠금 해제 암호를 설정하십시오. 이 비밀번호는 저장되지 않으므로 비밀번호를 분실하면 라이브러리 키를 잠금 해제할 수 없습니다.","require_unlock_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","require_independent_password":"클라우드에 저장된 키를 가져오려면 독립적인 비밀번호를 입력하세요.","import_local_prompt_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","select_encrypt_mode":"암호화 모드 선택","update_cloud_key":"클라우드에 저장된 키 업데이트","backup_to_cloud":"라이브러리 키를 클라우드에 백업","save_local":"라이브러리 키를 로컬 암호화 파일로 저장","create_new_key":"새 라이브러리 키 만들기","creating_lib_key":"라이브러리 키 생성 중...","loading_lib_key":"라이브러리 키 로드 중...","failed_to_create_lib_key":"라이브러리 키를 만들지 못했습니다.","failed_to_load_lib_key":"라이브러리 키를 로드하지 못했습니다.","import_local_key":"로컬로 키 가져오기","import_lib_key_from_local":"라이브러리 키를 로컬로 가져오기","import_from_cloud":"클라우드에서 라이브러리 키 가져오기","create_or_import_key":"라이브러리 키 만들기 또는 가져오기","create_or_import_key_desc":"라이브러리 키는 분산형 데이터베이스로 콘텐츠를 가져오고 게시하는 데 사용되는 독립적인 키입니다.","store_your_lib_key":"라이브러리 키 저장","export_cloud_key":"클라우드에서 키 내보내기","export_current_key":"현재 키 내보내기","change_password":"비밀번호 변경","enable_cloud_storage":"클라우드 스토리지 활성화","disable_cloud_storage":"클라우드 스토리지 비활성화","disable_cloud_storage_desc":"클라우드 저장소를 비활성화하면 클라우드에 저장된 키가 제거됩니다. 키가 로컬에 저장되었는지 확인하십시오.","sync_at":"동기화 위치: {time}","cloud_storage_enabled":"{storage}와 키체인 동기화","cloud_storage_disabled":"클라우드 스토리지 비활성화됨","saved_locally":"로컬에 저장됨","export_key":"키 파일 내보내기","cloud_independent_password":"클라우드 독립 암호","key_file_unlock_password":"키 파일 잠금 해제 암호","re_enter_unlock_password":"잠금해제 비밀번호 재입력","independent_password_not_enabled":"현재 비밀번호는 알파비즈 계정 비밀번호입니다(독립적인 비밀번호는 설정되어 있지 않습니다)","use_cognito_hash":"Alphabiz 계정 비밀번호 사용","use_independent_password":"독립적인 비밀번호 사용","keychain_lib":"도서관 열쇠","loading_keychain_state":"키체인 로드 중...","backing_up":"백업...","backup_current_key":"현재 키를 클라우드에 백업","cloud_lib_key_not_existed":"클라우드에 라이브러리 키가 없습니다.","open_keychain_file":"키체인 파일 열기","confirm_open_abk":"ABK 파일을 여시겠습니까","use_the_key":"열쇠를 사용","backup_the_key":"키를 클라우드에 백업","keychain_data_does_not_exist":"키체인 데이터가 존재하지 않습니다","timeout of 0ms exceeded":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","XhrError":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","payer credit amount is not enough":"크레딧이 부족합니다","payee does not exist":"수취인이 존재하지 않습니다.","block_list_manage":"차단 목록 관리","blocked_users":"차단된 사용자","blocked_channels":"차단된 채널","unblock_user":"사용자 차단 해제","unblock_channel":"채널 차단 해제","no_blocked_user":"차단된 사용자 없음","no_blocked_channel":"차단된 채널 없음","field_required":"{0}이(가) 필요합니다.","setting":"환경","unknown_media":"알 수 없는 미디어","settings_button_visible":"버튼 표시","settings_setting":"환경","settings_playback_rate":"재생 속도","settings_subtitle":"부제","settings_pip":"씨","settings_fullscreen":"전체 화면","settings_subtitle_options":"자막 옵션","settings_normal":"정상","settings_italic":"이탤릭체","settings_lighter":"거룻배","settings_bolder":"대담한","settings_small":"작은","settings_large":"크기가 큰","about":"에 대한","services":"서비스","hide":"숨다","hide_others":"다른 사람 숨기기","show_all":"모두 보이기","quit":"그만두다","edit":"편집하다","redo":"다시 하다","cut":"자르다","paste":"반죽","select_all":"모두 선택","view":"보다","reload":"새로고침","toggle_full_screen":"전체 화면 전환","toggle_developer_tools":"개발자 도구 전환","window":"창문","minimize":"최소화","bring_all_to_front":"모두 앞으로 가져오기","help":"돕다","github_repo":"Github 레포","issues":"문제","learn_more":"더 알아보기","learn_spelling":"맞춤법 배우기","lookup_selection":"\\"{selection}\\" 검색","search_with_google":"Google로 검색","save_as":"다른 이름으로 저장","save_image":"이미지를 저장","save_image_as":"이미지를 다른 이름으로 저장...","copy_link":"링크 복사","save_link_as":"다른 이름으로 링크 저장...","copy_image":"복사 이미지","copy_image_as":"다음으로 이미지 복사...","copy_image_address":"이미지 주소 복사","download_complete":"다운로드를 완료하였습니다","download_complete_message":"{0} 다운로드됨","is_running":"{0} 실행 중","open":"{0} 열기","launch_problem":"시작 문제","ask_clear_data":"{0}를 실행하려고 시도했지만 여러 번 실패한 것 같습니다.\\n모든 앱 데이터를 지우고 나중에 실행하시겠습니까?","launch_directly":"직접 실행","clear_all_data":"모든 데이터 지우기","ask_clear_confirm":"이렇게 하면 모든 구성, 로그 및 사용자 데이터가 제거됩니다!\\n그런 다음 {0}를 다시 시작해야 할 수도 있습니다.\\n데이터를 지우시겠습니까?","confirm_launch":"아니요, 직접 시작합니다.","confirm_clear":"예, 모든 데이터를 삭제합니다."}')},"6ce4":function(e,t,a){},7:function(e,t){},7285:function(e,t,a){"use strict";a("c066")},7297:function(e,t,a){"use strict";a("a5fe")},7405:function(e,t,a){},7447:function(e,t,a){},7471:function(e,t,a){"use strict";(function(e){var n=a("3fd2"),o=a.n(n);let i;if(o.a.main())i=a("9e8c"),Object.defineProperty(e,"lzma",{get(){return i}});else if(o.a.renderer())i=require("lzma-native"),Object.defineProperty(e,"lzma",{get(){return i}});else{const t=a("6ca2").LZMA;i=new t,Object.defineProperty("undefined"===typeof window?e:window,"lzma",{get(){return i}})}t["a"]=i}).call(this,a("0ee4"))},7686:function(e,t,a){},"76b4":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"76ec":function(e,t,a){"use strict";t["a"]=[" GNU GENERAL PUBLIC LICENSE"," Version 2, June 1991",""," Copyright (C) 1989, 1991 Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA"," Everyone is permitted to copy and distribute verbatim copies"," of this license document, but changing it is not allowed.",""," Preamble",""," The licenses for most software are designed to take away your","freedom to share and change it. By contrast, the GNU General Public","License is intended to guarantee your freedom to share and change free","software--to make sure the software is free for all its users. This","General Public License applies to most of the Free Software","Foundation's software and to any other program whose authors commit to","using it. (Some other Free Software Foundation software is covered by","the GNU Lesser General Public License instead.) You can apply it to","your programs, too.",""," When we speak of free software, we are referring to freedom, not","price. Our General Public Licenses are designed to make sure that you","have the freedom to distribute copies of free software (and charge for","this service if you wish), that you receive source code or can get it","if you want it, that you can change the software or use pieces of it","in new free programs; and that you know you can do these things.",""," To protect your rights, we need to make restrictions that forbid","anyone to deny you these rights or to ask you to surrender the rights.","These restrictions translate to certain responsibilities for you if you","distribute copies of the software, or if you modify it.",""," For example, if you distribute copies of such a program, whether","gratis or for a fee, you must give the recipients all the rights that","you have. You must make sure that they, too, receive or can get the","source code. And you must show them these terms so they know their","rights.",""," We protect your rights with two steps: (1) copyright the software, and","(2) offer you this license which gives you legal permission to copy,","distribute and/or modify the software.",""," Also, for each author's protection and ours, we want to make certain","that everyone understands that there is no warranty for this free","software. If the software is modified by someone else and passed on, we","want its recipients to know that what they have is not the original, so","that any problems introduced by others will not reflect on the original","authors' reputations.",""," Finally, any free program is threatened constantly by software","patents. We wish to avoid the danger that redistributors of a free","program will individually obtain patent licenses, in effect making the","program proprietary. To prevent this, we have made it clear that any","patent must be licensed for everyone's free use or not licensed at all.",""," The precise terms and conditions for copying, distribution and","modification follow.",""," GNU GENERAL PUBLIC LICENSE"," TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION",""," 0. This License applies to any program or other work which contains","a notice placed by the copyright holder saying it may be distributed",'under the terms of this General Public License. The "Program", below,','refers to any such program or work, and a "work based on the Program"',"means either the Program or any derivative work under copyright law:","that is to say, a work containing the Program or a portion of it,","either verbatim or with modifications and/or translated into another","language. (Hereinafter, translation is included without limitation in",'the term "modification".) Each licensee is addressed as "you".',"","Activities other than copying, distribution and modification are not","covered by this License; they are outside its scope. The act of","running the Program is not restricted, and the output from the Program","is covered only if its contents constitute a work based on the","Program (independent of having been made by running the Program).","Whether that is true depends on what the Program does.",""," 1. You may copy and distribute verbatim copies of the Program's","source code as you receive it, in any medium, provided that you","conspicuously and appropriately publish on each copy an appropriate","copyright notice and disclaimer of warranty; keep intact all the","notices that refer to this License and to the absence of any warranty;","and give any other recipients of the Program a copy of this License","along with the Program.","","You may charge a fee for the physical act of transferring a copy, and","you may at your option offer warranty protection in exchange for a fee.",""," 2. You may modify your copy or copies of the Program or any portion","of it, thus forming a work based on the Program, and copy and","distribute such modifications or work under the terms of Section 1","above, provided that you also meet all of these conditions:",""," a) You must cause the modified files to carry prominent notices"," stating that you changed the files and the date of any change.",""," b) You must cause any work that you distribute or publish, that in"," whole or in part contains or is derived from the Program or any"," part thereof, to be licensed as a whole at no charge to all third"," parties under the terms of this License.",""," c) If the modified program normally reads commands interactively"," when run, you must cause it, when started running for such"," interactive use in the most ordinary way, to print or display an"," announcement including an appropriate copyright notice and a"," notice that there is no warranty (or else, saying that you provide"," a warranty) and that users may redistribute the program under"," these conditions, and telling the user how to view a copy of this"," License. (Exception: if the Program itself is interactive but"," does not normally print such an announcement, your work based on"," the Program is not required to print an announcement.)","","These requirements apply to the modified work as a whole. If","identifiable sections of that work are not derived from the Program,","and can be reasonably considered independent and separate works in","themselves, then this License, and its terms, do not apply to those","sections when you distribute them as separate works. But when you","distribute the same sections as part of a whole which is a work based","on the Program, the distribution of the whole must be on the terms of","this License, whose permissions for other licensees extend to the","entire whole, and thus to each and every part regardless of who wrote it.","","Thus, it is not the intent of this section to claim rights or contest","your rights to work written entirely by you; rather, the intent is to","exercise the right to control the distribution of derivative or","collective works based on the Program.","","In addition, mere aggregation of another work not based on the Program","with the Program (or with a work based on the Program) on a volume of","a storage or distribution medium does not bring the other work under","the scope of this License.",""," 3. You may copy and distribute the Program (or a work based on it,","under Section 2) in object code or executable form under the terms of","Sections 1 and 2 above provided that you also do one of the following:",""," a) Accompany it with the complete corresponding machine-readable"," source code, which must be distributed under the terms of Sections"," 1 and 2 above on a medium customarily used for software interchange; or,",""," b) Accompany it with a written offer, valid for at least three"," years, to give any third party, for a charge no more than your"," cost of physically performing source distribution, a complete"," machine-readable copy of the corresponding source code, to be"," distributed under the terms of Sections 1 and 2 above on a medium"," customarily used for software interchange; or,",""," c) Accompany it with the information you received as to the offer"," to distribute corresponding source code. (This alternative is"," allowed only for noncommercial distribution and only if you"," received the program in object code or executable form with such"," an offer, in accord with Subsection b above.)","","The source code for a work means the preferred form of the work for","making modifications to it. For an executable work, complete source","code means all the source code for all modules it contains, plus any","associated interface definition files, plus the scripts used to","control compilation and installation of the executable. However, as a","special exception, the source code distributed need not include","anything that is normally distributed (in either source or binary","form) with the major components (compiler, kernel, and so on) of the","operating system on which the executable runs, unless that component","itself accompanies the executable.","","If distribution of executable or object code is made by offering","access to copy from a designated place, then offering equivalent","access to copy the source code from the same place counts as","distribution of the source code, even though third parties are not","compelled to copy the source along with the object code.",""," 4. You may not copy, modify, sublicense, or distribute the Program","except as expressly provided under this License. Any attempt","otherwise to copy, modify, sublicense or distribute the Program is","void, and will automatically terminate your rights under this License.","However, parties who have received copies, or rights, from you under","this License will not have their licenses terminated so long as such","parties remain in full compliance.",""," 5. You are not required to accept this License, since you have not","signed it. However, nothing else grants you permission to modify or","distribute the Program or its derivative works. These actions are","prohibited by law if you do not accept this License. Therefore, by","modifying or distributing the Program (or any work based on the","Program), you indicate your acceptance of this License to do so, and","all its terms and conditions for copying, distributing or modifying","the Program or works based on it.",""," 6. Each time you redistribute the Program (or any work based on the","Program), the recipient automatically receives a license from the","original licensor to copy, distribute or modify the Program subject to","these terms and conditions. You may not impose any further","restrictions on the recipients' exercise of the rights granted herein.","You are not responsible for enforcing compliance by third parties to","this License.",""," 7. If, as a consequence of a court judgment or allegation of patent","infringement or for any other reason (not limited to patent issues),","conditions are imposed on you (whether by court order, agreement or","otherwise) that contradict the conditions of this License, they do not","excuse you from the conditions of this License. If you cannot","distribute so as to satisfy simultaneously your obligations under this","License and any other pertinent obligations, then as a consequence you","may not distribute the Program at all. For example, if a patent","license would not permit royalty-free redistribution of the Program by","all those who receive copies directly or indirectly through you, then","the only way you could satisfy both it and this License would be to","refrain entirely from distribution of the Program.","","If any portion of this section is held invalid or unenforceable under","any particular circumstance, the balance of the section is intended to","apply and the section as a whole is intended to apply in other","circumstances.","","It is not the purpose of this section to induce you to infringe any","patents or other property right claims or to contest validity of any","such claims; this section has the sole purpose of protecting the","integrity of the free software distribution system, which is","implemented by public license practices. Many people have made","generous contributions to the wide range of software distributed","through that system in reliance on consistent application of that","system; it is up to the author/donor to decide if he or she is willing","to distribute software through any other system and a licensee cannot","impose that choice.","","This section is intended to make thoroughly clear what is believed to","be a consequence of the rest of this License.",""," 8. If the distribution and/or use of the Program is restricted in","certain countries either by patents or by copyrighted interfaces, the","original copyright holder who places the Program under this License","may add an explicit geographical distribution limitation excluding","those countries, so that distribution is permitted only in or among","countries not thus excluded. In such case, this License incorporates","the limitation as if written in the body of this License.",""," 9. The Free Software Foundation may publish revised and/or new versions","of the General Public License from time to time. Such new versions will","be similar in spirit to the present version, but may differ in detail to","address new problems or concerns.","","Each version is given a distinguishing version number. If the Program",'specifies a version number of this License which applies to it and "any','later version", you have the option of following the terms and conditions',"either of that version or of any later version published by the Free","Software Foundation. If the Program does not specify a version number of","this License, you may choose any version ever published by the Free Software","Foundation.",""," 10. If you wish to incorporate parts of the Program into other free","programs whose distribution conditions are different, write to the author","to ask for permission. For software which is copyrighted by the Free","Software Foundation, write to the Free Software Foundation; we sometimes","make exceptions for this. Our decision will be guided by the two goals","of preserving the free status of all derivatives of our free software and","of promoting the sharing and reuse of software generally.",""," NO WARRANTY",""," 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY","FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN","OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES",'PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED',"OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF","MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS","TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE","PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,","REPAIR OR CORRECTION.",""," 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING","WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR","REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,","INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING","OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED","TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY","YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER","PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE","POSSIBILITY OF SUCH DAMAGES.",""," END OF TERMS AND CONDITIONS",""," How to Apply These Terms to Your New Programs",""," If you develop a new program, and you want it to be of the greatest","possible use to the public, the best way to achieve this is to make it","free software which everyone can redistribute and change under these terms.",""," To do so, attach the following notices to the program. It is safest","to attach them to the start of each source file to most effectively","convey the exclusion of warranty; and each file should have at least",'the "copyright" line and a pointer to where the full notice is found.',""," "," Copyright (C) ",""," This program is free software; you can redistribute it and/or modify"," it under the terms of the GNU General Public License as published by"," the Free Software Foundation; either version 2 of the License, or"," (at your option) any later version.",""," This program is distributed in the hope that it will be useful,"," but WITHOUT ANY WARRANTY; without even the implied warranty of"," MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"," GNU General Public License for more details.",""," You should have received a copy of the GNU General Public License along"," with this program; if not, write to the Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.","","Also add information on how to contact you by electronic and paper mail.","","If the program is interactive, make it output a short notice like this","when it starts in an interactive mode:",""," Gnomovision version 69, Copyright (C) year name of author"," Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'."," This is free software, and you are welcome to redistribute it"," under certain conditions; type `show c' for details.","","The hypothetical commands `show w' and `show c' should show the appropriate","parts of the General Public License. Of course, the commands you use may","be called something other than `show w' and `show c'; they could even be","mouse-clicks or menu items--whatever suits your program.","","You should also get your employer (if you work as a programmer) or your",'school, if any, to sign a "copyright disclaimer" for the program, if',"necessary. Here is a sample; alter the names:",""," Yoyodyne, Inc., hereby disclaims all copyright interest in the program"," `Gnomovision' (which makes passes at compilers) written by James Hacker.",""," , 1 April 1989"," Ty Coon, President of Vice","","This General Public License does not permit incorporating your program into","proprietary programs. If your program is a subroutine library, you may","consider it more useful to permit linking proprietary applications with the","library. If this is what you want to do, use the GNU Lesser General","Public License instead of this License.",""]},7895:function(e,t,a){"use strict";a("ae24")},"79e7":function(e,t,a){"use strict";var n=a("ff9b"),o=(a("de6c"),a("3387")),i=a.n(o);function r(e,t,a){const i=a?e=>e[a]:e=>e;for(const s of t){const t=e.findIndex((e=>i(e)===i(s)));-1===t?e.push(s):"object"===typeof s?Array.isArray(s)?r(e[t],s):Object(o["isEqual"])(e[t],s)||n["a"].set(e,t,s):n["a"].set(e,t,s)}for(let n=0;ni(t)===i(e[n])))||e.splice(n--,1);return e}const s={tasksCount:{downloading:0,uploading:0,downloaded:0},abKeys:{},uploadingTasks:[],shouldDisableTasks:!1,uploadingLoading:!1,updatingTaskList:!1},l=new n["a"]({data(){return{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0}}}),c={DOWNLOADER_UPDATE_DOWNLOADING_TASK_COUNT(e,t){e.tasksCount.downloading=t},DOWNLOADER_UPDATE_UPLOADING_TASK_COUNT(e,t){e.tasksCount.uploading=t},DOWNLOADER_UPDATE_DOWNLOADED_TASK_COUNT(e,t){e.tasksCount.downloaded=t},DOWNLOADER_SET_UPLOADING_LOADING(e,t){e.uploadingLoading=t},updateTaskCount(e,t){Object.assign(e.tasksCount,t)},changeDisableTasks(e,t){e.shouldDisableTasks=t},updateABKeys(e,t){for(const a in t){const n=t[a],o=e.abKeys[a];o?e.abKeys[a]=[...r(o,n,"key")]:e.abKeys=t}},updateUploading(e,t){console.log("updateUploading",t),r(e.uploadingTasks,t,"abUrl")},setUpdatingTasks(e,t){e.updatingTaskList=t},updateTaskInfo(e,t){n["a"].set(l,t.type,t.info)},updateTasks(e,t){const{uploadingTasks:a,tasksCount:n,abKeyObj:o}=t;r(e.uploadingTasks,a,"abUrl");for(const i in n)e.tasksCount[i]=n[i];for(const i in o){const t=o[i],a=e.abKeys[i];a?r(a,t,"key"):e.abKeys=o}}},d={},u={taskCount(e){return e.tasksCount},getDownloadingTaskCount(e){return e.tasksCount.downloading},getUploadingTaskCount(e){return e.tasksCount.uploading},getDownloadedTaskCount(e){return e.tasksCount.downloaded},shouldDisableTasks(e){return e.shouldDisableTasks},isUploadingLoading(e){return e.uploadingLoading},abKeys(e){return e.abKeys},uploading(e){return e.uploadingTasks},tasks(){return l.$data},allTasks(){return[...l.downloading,...l.uploading,...l.downloaded]}},_={namespaced:!1,state:s,mutations:c,actions:d,getters:u};var p=_,m=a("d310"),h=a("8a63"),g=a("9efe"),f=a("e74d"),b=a("e75b"),y=a("d7df"),v=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const w=new b["a"].Rest("ABDevRest"),k=()=>v(void 0,void 0,void 0,(function*(){const e=window.$blockchain.$store.account;if(yield e.initCurrentAccount(),e.account)return;const t=yield e.createNewAccount();yield t.confirm(),yield e.recoveryAccount({key:t.toPrivateKeyObject().privateKeyHex}),console.log("The blockchain account has been created automatically: ",t)})),S=()=>v(void 0,void 0,void 0,(function*(){"blockchain"===localStorage.getItem("dataPaymentMixin.mode")&&(yield k())})),C=e=>{var t,a;return{sub:e.attributes.sub,username:e.username,signingTime:e.attributes["custom:signing_time"],signingIpAddress:e.attributes["custom:signing_ip_address"],lastLoginTime:e.attributes["custom:last_login_time"],lastIpAddress:e.attributes["custom:last_ip_address"],accountLevel:e.attributes["custom:account_level"],msgLocale:e.attributes["custom:msg_locale"],nickname:e.attributes.nickname,gender:e.attributes.gender,birthday:e.attributes.birthdate,locale:e.attributes.locale,email:e.attributes.email,phoneNumber:e.attributes.phone_number,phoneNumberCountryCode:e.attributes["custom:phone_number_code"],emailVerified:e.attributes.email_verified,phoneNumberVerified:e.attributes.phone_number_verified,invitationCode:null===(t=e.dynamo_attrs)||void 0===t?void 0:t.invitation_code,identities:JSON.parse(null!==(a=e.attributes.identities)&&void 0!==a?a:"[]")}},x=["sub","username","email","emailVerified","phoneNumber","phoneNumberCountryCode","phoneNumberVerified","signingTime","signingIpAddress","lastLoginTime","lastIpAddress","accountLevel","msgLocale","invitationCode","identities"],$=["nickname","gender","birthday","locale"],T=Object.assign(Object.assign({authState:null},[...x,...$].reduce(((e,t)=>(e[t]=void 0,e)),{})),{verification:null,preferredMFA:null}),z={ACCOUNT_UPDATE_INFO(e,t){Object.keys(t).forEach((a=>{const n=a;if(void 0!==t[n])e[n]=t[n];else{const t={gender:"notSay",locale:"notSay"};e[n]=t[n]||""}}))},ACCOUNT_CLEAR_INFO(e){[...x,...$].forEach((t=>{e[t]=void 0}))},ACCOUNT_UPDATE_STATE(e,t){if(e.verification&&["forgotPassword","signUpConfirm","signInConfirm","signUp"].includes(e.authState)&&(e.verification=null),e.authState=t,m["Bus"].$emit("update-authstate",t),"signedIn"!==e.authState)return console.log("Skip not sign in",t);console.log("authState:",e.authState),y["a"].emit("user_login","store - account_update_state"),Object(h["a"])()},ACCOUNT_UPDATE_VERIFICATION(e,t){t?(e.verification||(e.verification={}),Object.assign(e.verification,t)):e.verification=null},ACCOUNT_SET_MFA_TYPE(e,t){e.preferredMFA=t}},P={ACCOUNT_UPDATE_INFO({commit:e}){return v(this,void 0,void 0,(function*(){const t=yield Object(g["f"])();return e("ACCOUNT_UPDATE_INFO",C(t)),f["a"].currentAuthenticatedUser().then((e=>f["a"].getPreferredMFA(e))).then((t=>e("ACCOUNT_SET_MFA_TYPE",t))),{message:"success"}}))},ACCOUNT_REDIRECT_TO_INDEX({dispatch:e,commit:t,state:a}){return v(this,void 0,void 0,(function*(){const n=()=>v(this,void 0,void 0,(function*(){yield Promise.all([S(),e("CREDIT_INIT_DATA")]),t("ACCOUNT_UPDATE_STATE","signedIn")})),o=()=>v(this,void 0,void 0,(function*(){yield Promise.all([e("CREDIT_CLEAR_DATA")]),t("ACCOUNT_UPDATE_STATE","signedOut")}));try{const t=yield Object(g["e"])(!1).catch((e=>(console.warn("debug#859: fetchAuthUser"),console.log(e),null)));if(!t)return yield o();yield e("ACCOUNT_UPDATE_INFO"),"signedIn"!==a.authState?yield n():(console.warn("debug#859: state.authState"),console.log(a.authState))}catch(i){console.error('failed to "ACCOUNT_REDIRECT_TO_INDEX"'),console.warn("debug#859: state.authState"),console.log(i),yield o()}}))},ACCOUNT_SIGN_IN({commit:e,dispatch:t},{username:a,password:n}){return v(this,void 0,void 0,(function*(){const o=yield Object(g["l"])(a,n).catch((e=>e));if(o){if("SMS_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"phone_number",mfaType:o.message,destination:o.destination,user:o.user}),o;if("SOFTWARE_TOKEN_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"software_token",mfaType:o.message,user:o.user}),o;if("UserNotConfirmedException"===o.code){e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n});const i=yield t("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND");throw"success"===i.message?new Error(o.code):i}throw o}return e("ACCOUNT_CLEAR_INFO"),yield t("ACCOUNT_UPDATE_INFO"),yield Promise.all([S(),t("CREDIT_INIT_DATA")]),{message:"success"}}))},ACCOUNT_SIGN_OUT({commit:e,dispatch:t}){return v(this,void 0,void 0,(function*(){yield Object(g["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_DELETE_USER({commit:e,dispatch:t},{password:a}){return v(this,void 0,void 0,(function*(){yield Object(g["x"])(a),yield Object(g["d"])(),yield Object(g["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_SET_MFA_TYPE({dispatch:e,commit:t,state:a},n){return v(this,void 0,void 0,(function*(){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(n))throw new Error("Illegal mfa type");const e=yield f["a"].currentAuthenticatedUser();yield f["a"].setPreferredMFA(e,n);const a=yield f["a"].getPreferredMFA(e);t("ACCOUNT_SET_MFA_TYPE",a)}))},ACCOUNT_MFA_RESEND({dispatch:e,commit:t,state:a}){return v(this,void 0,void 0,(function*(){const n=a.verification.username,o=a.verification.password,i=yield e("ACCOUNT_SIGN_IN",{username:n,password:o}).catch((e=>e));if(!i)throw new Error("Unexpected Error");"SMS_MFA"===i.message?t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"phone_number",mfaType:i.message,destination:i.destination,user:i.user}):"SOFTWARE_TOKEN_MFA"===i.message&&t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"software_token",mfaType:i.message,user:i.user})}))},ACCOUNT_MFA_SUBMIT({state:e,commit:t,dispatch:a},n){return v(this,void 0,void 0,(function*(){const o=e.verification.user,i=e.verification.mfaType;yield Object(g["m"])(o,i,n),t("ACCOUNT_CLEAR_INFO"),yield a("ACCOUNT_UPDATE_INFO"),yield a("CREDIT_INIT_DATA")}))},ACCOUNT_CHANGE_ATTRIBUTES({dispatch:e},t){return v(this,void 0,void 0,(function*(){yield Object(g["b"])(t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_UNLINK_OAUTH({dispatch:e,state:t},a){return v(this,void 0,void 0,(function*(){if(t.identities.length<=0)throw new Error("Not oauth provider existed");const n=t.identities.find((e=>e.providerName===a));if(!n)throw new Error("Can not found oauth provider: "+a);yield Object(g["r"])(a,n.userId),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PASSWORD({commit:e},{oldPassword:t,newPassword:a}){return v(this,void 0,void 0,(function*(){const e=yield f["a"].currentAuthenticatedUser();yield w.post("/account/changePassword",{username:e.getUsername(),AccessToken:e.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:t,ProposedPassword:a})}))},ACCOUNT_FORGOT_PASSWORD_SEND({state:e,commit:t,rootGetters:a},n){return v(this,void 0,void 0,(function*(){const e=a.settings.language,o=yield Object(g["g"])(n,{msgLocale:`${e}:F`});return t("ACCOUNT_UPDATE_VERIFICATION",{username:n,type:o.CodeDeliveryDetails.AttributeName,destination:o.CodeDeliveryDetails.Destination}),{message:"success"}}))},ACCOUNT_FORGOT_PASSWORD_SUBMIT({commit:e,state:t},{code:a,password:n}){return v(this,void 0,void 0,(function*(){yield w.postGuest("/account/forgotPasswordSubmit",{ClientId:f["a"].userPool.getClientId(),ConfirmationCode:a,Password:n,Username:t.verification.username})}))},ACCOUNT_SIGN_UP_NECESSARY({rootGetters:e,commit:t},a){return v(this,void 0,void 0,(function*(){if(!a.email&&!a.phoneNumber)throw new Error("Email or Phone Number must be fill when signing up.");const n=e.settings.language;a.msgLocale=`${n}:${a.email?"E":"P"}`;const o=yield Object(g["o"])(a);return t("ACCOUNT_UPDATE_VERIFICATION",{username:o.user.username,password:a.password,type:o.codeDeliveryDetails.AttributeName,destination:{email:a.email,phone_number:a.phoneNumber}[o.codeDeliveryDetails.AttributeName]}),{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND({state:e,commit:t}){return v(this,void 0,void 0,(function*(){const t=e.verification.username;yield Object(g["i"])(t);return{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT({commit:e,state:t},{code:a,optAttrs:n}){return v(this,void 0,void 0,(function*(){try{yield Object(g["c"])(t.verification.username,a,n)}catch(e){if(console.warn("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",e),e instanceof Error&&!["User cannot be confirmed. Current status is CONFIRMED","User is already confirmed"].includes(e.message))throw e}return{message:"success"}}))},ACCOUNT_INVITE_CODE({commit:e,dispatch:t},{code:a,contactEmail:n,contactPhone:o}){return v(this,void 0,void 0,(function*(){return yield Object(g["h"])(a,n,o),yield t("ACCOUNT_UPDATE_INFO"),{message:"success"}}))},ACCOUNT_CHANGE_EMAIL_SEND({rootGetters:e,dispatch:t},a){return v(this,void 0,void 0,(function*(){const n=e.settings.language;return T.msgLocale===`${n}:E`||(yield Object(g["k"])(n,"E")),a&&a===T.email?yield Object(g["t"])("email"):yield Object(g["u"])("email",a),yield t("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_EMAIL_SUBMIT({dispatch:e},t){return v(this,void 0,void 0,(function*(){return yield Object(g["v"])("email",t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SEND({rootGetters:e,state:t,dispatch:a},{phoneNumber:n,phoneNumberCountryCode:o}){return v(this,void 0,void 0,(function*(){const i=e.settings.language;return t.msgLocale===`${i}:P`||(yield Object(g["k"])(i,"P")),n&&o&&n===t.phoneNumber&&o===t.phoneNumberCountryCode?yield Object(g["t"])("phone_number"):yield Object(g["u"])("phone_number",n,o),yield a("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SUBMIT({dispatch:e},t){return v(this,void 0,void 0,(function*(){return yield Object(g["v"])("phone_number",t),yield e("ACCOUNT_UPDATE_INFO")}))}},A={accountUserInfo(e,t){const a={};return Object.assign(a,t.accountUserOptionalInfo),a.preferredMFA=e.preferredMFA,Object.assign(a,t.accountUserReadonlyInfo),a},accountUserReadonlyInfo(){return x.reduce(((e,t)=>(e[t]=T[t],e)),{})},accountUserOptionalInfo(e){return $.reduce(((t,a)=>(t[a]=e[a],t)),{})}},I={namespaced:!1,state:T,mutations:z,actions:P,getters:A};var q=I,O=a("06e8"),E=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const D=new b["a"].Rest("ABDevRest"),j={Mutations:{CREDIT_SET_INIT_STATE:"CREDIT_SET_INIT_STATE",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_UPDATE:"CREDIT_UPDATE",CREDIT_UPDATE_TXN:"CREDIT_UPDATE_TXN",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION",CREDIT_UPDATE_USER:"CREDIT_UPDATE_USER",CREDIT_UPDATE_EXPENSES:"CREDIT_UPDATE_EXPENSES",CREDIT_UPDATE_INCOME_TODAY:"CREDIT_UPDATE_INCOME_TODAY",CREDIT_UPDATE_TOKEN:"CREDIT_UPDATE_TOKEN",CREDIT_UPDATE_INCOME:"CREDIT_UPDATE_INCOME"},Actions:{CREDIT_INIT_DATA:"CREDIT_INIT_DATA",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_TRANSFER:"CREDIT_TRANSFER",CREDIT_FETCH_TRANSACTION:"CREDIT_FETCH_TRANSACTION",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION"}},N=["credit"];var L,U;(function(e){e["TRANSFER"]="TRANSFER",e["PAYDATA"]="PAYDATA",e["RECHARGE"]="RECHARGE",e["BONUS"]="BONUS"})(L||(L={})),function(e){e["PENDING"]="PENDING",e["FAILED"]="FAILED",e["FINISH"]="FINISH",e["COMPLETED"]="COMPLETED"}(U||(U={}));const R=Object.assign({isModuleInit:0,incomeTransactions:[],expensesTransactions:[],incomeTodayTransactions:[],providentFund:null},N.reduce(((e,t)=>(e[t]=void 0,e)),{})),M={CREDIT_SET_INIT_STATE(e,t){e.isModuleInit=t},CREDIT_CLEAR_DATA(e){e.providentFund=null,N.forEach((t=>e[t]=void 0)),e.expensesTransactions=[],e.incomeTransactions=[],e.incomeTodayTransactions=[]},CREDIT_UPDATE(e,t){const a=e=>{const t={};for(const[a,n]of Object.entries(e)){let e=t;if(-1===a.indexOf("."))e[a]=n;else{const t=a.split(".");for(let a=0;aObject.keys(e).forEach((a=>{void 0!==t[a]&&(e[a]=t[a])}));let n=e.incomeTransactions.find((e=>e.id===t.id));if(n){if(a(n,t),n=e.incomeTodayTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}else{if(n=e.expensesTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}},CREDIT_UPDATE_USER(e,t){for(const[a,n]of Object.entries(t))N.includes(a)&&(e[a]=n)},CREDIT_UPDATE_INCOME(e,t){e.incomeTransactions=t},CREDIT_UPDATE_EXPENSES(e,t){e.expensesTransactions=t},CREDIT_UPDATE_INCOME_TODAY(e,t){e.incomeTodayTransactions=t}},F={CREDIT_TRANSFER({dispatch:e},{receiverSub:t,amount:a,meta:n}){return E(this,void 0,void 0,(function*(){const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>R.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield D.post("/credit/transfer",{receiverSub:t,amount:a,meta:n})}))},CREDIT_PAY_DATA_REQUEST({dispatch:e,state:t},{receiverSub:a,amount:n,meta:o}){return E(this,void 0,void 0,(function*(){if(n=Math.min(Number.parseInt(n),1e6),n>=t.credit)throw new Error("credit_not_enough_amount");return yield D.post("/dataProviding/request",{receiverSub:a,amount:n,meta:JSON.stringify(o)})}))},CREDIT_PAY_DATA_COMPLETED({dispatch:e},{transactionId:t}){return E(this,void 0,void 0,(function*(){return yield D.post("/dataProviding/complete",{transactionId:t})}))},CREDIT_PAY_DATA_FINISH({dispatch:e,rootState:t},{transactionId:a}){return E(this,void 0,void 0,(function*(){const e=window.localStorage.getItem("transaction_to_finish"),n=e?JSON.parse(e):{},o=n[t.account.sub]||[],i=o.map(((e,t)=>()=>E(this,void 0,void 0,(function*(){try{yield D.post("/dataProviding/finish",{transactionId:e}),delete o[t]}catch(a){a instanceof Error&&"Network Error"!==a.message&&delete o[t]}}))));i.push((()=>E(this,void 0,void 0,(function*(){try{yield D.post("/dataProviding/finish",{transactionId:a})}catch(e){if(!(e instanceof Error&&"Network Error"===e.message))throw e;o.push(a)}}))));try{yield Promise.all(i.map((e=>e())))}finally{n[t.account.sub]=o.filter((e=>null!==e)),window.localStorage.setItem("transaction_to_finish",JSON.stringify(n))}}))},CREDIT_PAY_DATA_CANCEL({dispatch:e},{transactionId:t}){return E(this,void 0,void 0,(function*(){return yield D.post("/dataProviding/cancel",{transactionId:t})}))},CREDIT_PF_DEPOSIT({commit:e,state:t},{amount:a,meta:n}){return E(this,void 0,void 0,(function*(){if(!t.providentFund||!1===t.providentFund.enable)return;const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>=t.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield D.post("/providentFund/deposit",{amount:a,meta:n})}))},CREDIT_PF_WITHDRAW(){return E(this,void 0,void 0,(function*(){return yield D.post("/providentFund/withdraw")}))},CREDIT_INIT_DATA({state:e,commit:t,dispatch:a,rootState:n,rootGetters:o}){return E(this,void 0,void 0,(function*(){if(e.isModuleInit)return;t(j.Mutations.CREDIT_SET_INIT_STATE,1),yield O["b"].enable(n.account.sub);const i=()=>E(this,void 0,void 0,(function*(){const e=b["a"].GQL.AwsApiGraphQL.injectAllOperations({}),a=()=>E(this,void 0,void 0,(function*(){const a=yield e.getUser(n.account.sub);t(j.Mutations.CREDIT_UPDATE,{credit:a.credit})})),o=()=>E(this,void 0,void 0,(function*(){const a=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},localStorage.setItem("credit.providentFund",JSON.stringify(e)),e)})(),o=yield e.getProvidentFund(n.account.sub);a.value=(null===o||void 0===o?void 0:o.amount)||0,t(j.Mutations.CREDIT_UPDATE,{providentFund:a})}));yield Promise.all([a(),o()]);const i=e=>new Promise((t=>{const a=Object(O["c"])({query_type:"income"});(()=>{E(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),r=e=>new Promise((t=>{const a=Object(O["c"])({query_type:"expense"});(()=>{E(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),s=e=>new Promise((t=>{const a=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[n,o]=a(),i=Object(O["c"])({query_type:"income",query_params:{createdAt:{oldest:n.toISOString(),latest:o.toISOString()}}});(()=>{E(this,void 0,void 0,(function*(){while(i.hasNext())yield i.fetch(),e(i.getData());t()}))})()}));Promise.all([i((e=>t(j.Mutations.CREDIT_UPDATE,{incomeTransactions:Object.values(e)}))),r((e=>t(j.Mutations.CREDIT_UPDATE,{expensesTransactions:Object.values(e)}))),s((e=>t(j.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:Object.values(e)})))])}));yield i(),O["b"].addHandlers({credit_changed:a=>{var n;return t(j.Mutations.CREDIT_UPDATE,{credit:(null!==(n=e.credit)&&void 0!==n?n:0)+a})},dp_expense_txn:a=>{const n=e.expensesTransactions.find((e=>e.id===a.id));n?t(j.Mutations.CREDIT_UPDATE_TXN,a):t(j.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]})},dp_income_txn:a=>{const n=e.incomeTransactions.find((e=>e.id===a.id));n?t(j.Mutations.CREDIT_UPDATE_TXN,a):t(j.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]});const o=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[i,r]=o();if(i.getTime()new Date(a.createdAt).getTime()){const n=e.incomeTodayTransactions.find((e=>e.id===a.id));n?t(j.Mutations.CREDIT_UPDATE_TXN,a):t(j.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:[...e.incomeTodayTransactions,a]})}},pf_value_changed:a=>{var n,o;return t(j.Mutations.CREDIT_UPDATE,{"providentFund.value":(null!==(o=null===(n=e.providentFund)||void 0===n?void 0:n.value)&&void 0!==o?o:0)+a})},pf_deposit_txn:a=>t(j.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]}),pf_withdraw_txn:a=>t(j.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]})},i),O["a"].enable({rootState:n,rootGetters:o,dispatch:a}),t(j.Mutations.CREDIT_SET_INIT_STATE,2)}))},CREDIT_CLEAR_DATA({commit:e,state:t}){return E(this,void 0,void 0,(function*(){2===t.isModuleInit&&(e(j.Mutations.CREDIT_SET_INIT_STATE,1),yield O["b"].disable(),yield O["a"].disable(),e(j.Mutations.CREDIT_CLEAR_DATA),e(j.Mutations.CREDIT_SET_INIT_STATE,0),console.log("credit data cleared"))}))}},B={transactions(e){const{incomeTransactions:t,expensesTransactions:a}=e;return{income:t,expenses:a}},incomeTodayTransactions(e){return e.incomeTodayTransactions}},W={namespaced:!1,state:R,mutations:M,actions:F,getters:B};var H=W,V=a("508e"),Q=a.n(V),G=a("fb31"),K=a.n(G),Y={hideMenu:!0,autoHide:!1,language:"en-US",darkMode:"system",defaultVideoPlayer:K.a.fileName,videoCacheTime:1,autoLaunch:!1,restore:!0,autoStartUnfinished:!0,seedSharingRate:!0,seedTime:!1,maximumDownloadNum:5,maximumConnectionsNum:20,saveLinkSeed:!1,unlimited:!0,continuousSeeding:!0,breakpointContinuation:!1,autoJumpToDownload:!0,notifyAfterDownloaded:!1,deleteConfirm:!1,defaultDeleteFiles:!1,uploadSpeed:-1,downloadSpeed:-1,payedUserShareRate:.7,downloadDirectory:"",autoUpload:!1,uploadDirectory:"",unlimitUploadAmount:!1,autoCheckUpdate:!0,useProxyService:!0,trackerSource:[{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt",label:"ngosang_best",cdn:!1},{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt",label:"ngosang_best_ip",cdn:!1}],trackerList:Q.a.trackerList,autoUpdateTrackerServiceList:!0,trackerLastUpdateTime:"",listenPort:!1,BTlistenPort:21303,DHTlistenPort:26701,secureOption:"auto",bindMagnetUrl:!1,bindTorrentFile:!1,bindVideoFile:!1,bindVideoExts:{mp4:!1,mkv:!1,avi:!1,mov:!1,wmv:!1,rmvb:!1,flv:!1,webm:!1},bindAudioExts:{mp3:!1,wav:!1,aac:!1,flac:!1,m4a:!1,wma:!1},bindAudioFile:!1,dontAskForAssociate:!1,dontAskForPlayer:!1,userAgent:"",RPCauthorizationkey:"",versionChannel:"stable",githubPAT:"",lastUpdateCheckTime:Date.now(),disableDevTools:!0,minDiskSpace:512e6,autoDownload:!0,forceLogin:!0,libraryShowExplore:"remote",libraryRate:"G",libraryShowAllChannels:!1,libraryPreload:!0,showPreload:!1,downloadWithCellular:!1},J=a("3fd2"),Z=a.n(J),X=a("0f0c"),ee=a("908d"),te=a("d558"),ae=a("d710"),ne=a.n(ae),oe=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const ie=Object(X["a"])("version"),re=!ie.match(/(internal|web)-dev$/),se=Z.a.renderer(),le=`${ne.a.name}_settings`,ce=he(),de={UPDATE_SETTINGS(e,t){Object.assign(e,t),localStorage.setItem(le,JSON.stringify(e))}},ue={updateSettings({commit:e},t){e("UPDATE_SETTINGS",t)},fetchSettings({dispatch:e}){return oe(this,void 0,void 0,(function*(){if(Object(te["a"])())return new Promise((t=>{const a=localStorage.getItem(le),o={};o&&(Object.assign(o,JSON.parse(a)),t(JSON.parse(a))),y["a"].once("fetch-settings",(a=>oe(this,void 0,void 0,(function*(){yield e("updateSettings",a),console.log("Fetch from server");for(const e in a)n["a"].set(o,e,a[e]);t(o)})))),y["a"].emit("fetch-settings")}));if(!se){const t=localStorage.getItem(le),a=he();return t||(ee["b"].is.capacitor&&(a.forceLogin=!1),console.log("\n\n\n\n\n\n\n\n\n\n\n\nset web settings:",a)),yield e("updateSettings",a),a}const t=yield Promise.resolve().then(a.t.bind(null,"b052",7)).then((e=>e.ipcRenderer.invoke("get-app-settings")));return yield e("updateSettings",t),t}))},set({dispatch:e,state:t},n){return oe(this,void 0,void 0,(function*(){if(Object(o["isEmpty"])(n))return;if(yield e("updateSettings",n),!se)return y["a"].emit("updateSettings",n);const{ipcRenderer:t}=yield Promise.resolve().then(a.t.bind(null,"b052",7));console.log("set settings");const i=new Promise((e=>{t.once("set_settings_success",((t,a)=>{e(a)}))}));return t.send("set_settings",n),i}))},resetSettings({commit:e,dispatch:t}){if(se)return new Promise((t=>oe(this,void 0,void 0,(function*(){const{ipcRenderer:n}=yield Promise.resolve().then(a.t.bind(null,"b052",7));n.once("reset_settings",((a,n)=>{console.log(n),e("UPDATE_SETTINGS",n),t(n)})),n.send("reset_settings")}))));{const t=Object(o["cloneDeep"])(Y);return e("UPDATE_SETTINGGS",t),t}}},_e={settings(e){return e},isDevMode(e){return!e.disableDevTools||!re}},pe={namespaced:!1,state:ce,mutations:de,actions:ue,getters:_e};var me=pe;function he(){const e=Object(o["cloneDeep"])(Y),t=`${ne.a.name}_settings`,a="undefined"===typeof localStorage?null:localStorage.getItem(t);if(a){const t=JSON.parse(a);Object.assign(e,t)}return e}const ge={currentVideo:{pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0}},fe={CURRENT_VIDEO_URL_MUTATION(e,t){e.currentVideo.url=t},CURRENT_VIDEO_PATH_MUTATION(e,t){e.currentVideo.path=t},CURRENT_VIDEO_SUBTITLE_LIST_MUTATION(e,t){e.currentVideo.subtitleList=t},CURRENT_VIDEO_CURRENT_TIME_MUTATION(e,t){e.currentVideo.currentTime=t},UPDATE_VIDEO_STATUS_MUTATION(e,t){e.currentVideo.status=t},UPDATE_VIDEO_PIP_STATUS_MUTATION(e,t){e.currentVideo.pipStatus=t},UPDATE_VIDEO_UPDATE_PLAYER_MUTATION(e,t){e.currentVideo.updatePlayer=t},SET_REMOTE_PLAY(e,t){e.currentVideo.infoHash=t,e.currentVideo.remotePlay=!0},RESET_INFOHASH(e){e.currentVideo.infoHash=""},RESET_REMOTE_PLAY(e){e.currentVideo.remotePlay=!1},RESET_PLAYER(){ge.currentVideo={pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0,subtitleList:[]}}},be={currentVideoUrl({commit:e},t){e("CURRENT_VIDEO_URL_MUTATION",t)},currentVideoPath({commit:e},t){e("CURRENT_VIDEO_PATH_MUTATION",t)},currentVideoSubtitleList({commit:e},t){e("CURRENT_VIDEO_SUBTITLE_LIST_MUTATION",t)},currentVideoCurrentTime({commit:e},t){e("CURRENT_VIDEO_CURRENT_TIME_MUTATION",t)},updateVideoStatus({commit:e},t){e("UPDATE_VIDEO_STATUS_MUTATION",t)},updateVideoPIPStatus({commit:e},t){e("UPDATE_VIDEO_PIP_STATUS_MUTATION",t)},updatePlayer({commit:e},t){e("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",t)},remotePlay({commit:e},t){e("SET_REMOTE_PLAY",t)},resetInfoHash({commit:e}){e("RESET_INFOHASH")},resetRemotePlay({commit:e}){e("RESET_REMOTE_PLAY")},resetPlayer({commit:e}){e("RESET_PLAYER")}},ye={video(){return ge.currentVideo.url}},ve={namespaced:!1,state:ge,mutations:fe,actions:be,getters:ye};var we=ve,ke=a("5fa3");t["a"]={downloader:p,account:q,credits:H,setting:me,video:we,library:ke["a"]}},"7ad0":function(e,t,a){},"7d7c":function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return S}));a("a1c1"),a("7a76");var n=a("c620"),o=a("f680"),i=a("61a1"),r=a("1926"),s=a("5584"),l=a("eb7a"),c=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",{staticStyle:{position:"relative"}},[a("input",{ref:"file",staticStyle:{display:"none"},attrs:{id:"media-file-upload",type:"file","data-cy":"file-input"},on:{input:e.manualAddFile}}),a("input",{ref:"subtitle",staticStyle:{display:"none"},attrs:{type:"file",accept:".srt,.vtt"},on:{input:e.manualAddSubtitle}}),a("div",{attrs:{id:"video-container",lang:e.lang}},[a("video",{ref:"video",staticClass:"video-js vjs-default-skin vjs-16-9 vjs-big-play-centered vjs-fluid",staticStyle:{height:"100%"},attrs:{crossorigin:"anonymous",id:"my-video"}})]),a("audio-info",{attrs:{show:e.isAudio}}),a("video-splash",{attrs:{show:e.showSplash,videoLoadingHint:e.videoLoadingHint}}),a("advanced-options",{attrs:{show:e.showAdvancedOptions,advancedOptions:e.advancedOpt},on:{close:function(){return e.toggleAdvancedOptions(!1)}}})],1)},d=[],u=a("5653"),_=u["a"],p=(a("803a"),a("2b5f")),m=a("9b72"),h=a("f106"),g=a("09a4"),f=a.n(g),b=Object(p["a"])(_,c,d,!1,null,null,null);b.exports;f()(b,"components",{QPage:m["a"],QIcon:h["a"]});var y=a("6422");const v=()=>{const e=l["default"].getAllPlayers();return Array.isArray(e)?e[0]:null},w=()=>{const e=()=>(n["wtClient"].torrents[0]&&n["wtClient"].torrents[0].files&&n["wtClient"].torrents[0].files.forEach((e=>{e._serviceWorker&&"activated"===e._serviceWorker.state||(e._serviceWorker=n["wtClient"].serviceWorker)})),!0);if(n["wtClient"].serviceWorker&&"activated"===n["wtClient"].serviceWorker.state){if("activated"===n["wtClient"].serviceWorker.state)return e();n["wtClient"].serviceWorker=null}if(!navigator.serviceWorker||!navigator.serviceWorker.controller)return!1;const t=navigator.serviceWorker.controller;return"activated"===t.state&&(n["wtClient"].loadWorker(t),e())};let k=null;function S(e){if("string"===typeof e&&e.startsWith("/webtorrent/")&&(e=e.replace("/webtorrent/","")),u["b"].toggleSplash(!1),!w())return void o["a"].create(r["b"].t("service_worker_error"));if(!n["wtClient"].torrents[0])return void o["a"].create(r["b"].t("add_task_first"));let t=!1;const a=Date.now();Object(i["b"])().push({name:"Player",params:{action:{type:"play_remote"}}}),k&&clearInterval(k),u["b"].toggleSplash(!0,r["b"].t("loading")),k=setInterval((async()=>{if(t)return;if(Date.now()-a>3e4&&!n["wtClient"].torrents[0].ready)return u["b"].toggleSplash(!1),o["a"].create(r["b"].t("player_task_time")),void clearInterval(k);if(n["wtClient"].torrents[0]&&!n["wtClient"].torrents[0].files[0])return void u["b"].toggleSplash(!0,r["b"].t("loading"));{const e=n["wtClient"].torrents[0].files[0],t=Object(y["a"])(e.downloaded||0),a=Object(y["a"])(e.length||0),o=`(${t}/${a})`;if(u["b"].toggleSplash(!0,r["b"].t("downloading")+"... "+o),n["wtClient"].torrents[0].pieces[e._startPiece]||n["wtClient"].torrents[0].pieces[e._startPiece+1])return void console.log("Wait for first two pieces downloaded")}const i=document.querySelector("#my-video video");if(!i)return;try{const a=v();if(e||(e=n["wtClient"].torrents[0].files[0].path),4===a.readyState()){const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e)}`;if(console.log(t,a.src(),t===a.src()),a.src()!==t)throw a.hasStarted(!1),new Error("Reset since src changed");return console.log(a.readyState(),"ready"),a.setAttribute("muted",!0),a.setAttribute("playsInline",!0),a.setAttribute("autoplay",!1),u["b"].toggleSplash(!1),void clearInterval(k)}if(t)return}catch(c){console.log("cannot get vjs",c)}if(t)return;const l=n["wtClient"].torrents[0].files.find((t=>e===t.path));if(i.setAttribute("playsInline",!0),i.setAttribute("muted",!0),i.setAttribute("autoplay",!1),l){console.log("Play file",e,l);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(l.path||l.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=v();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}else{const e=n["wtClient"].torrents[0].files[0];console.log("Cannot find same file. Use files[0]",e.path);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e.path||e.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=v();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}u["b"].toggleSplash(!1),t=!0}),1e3)}},8:function(e,t){},"803a":function(e,t,a){"use strict";a("525c")},8097:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a("3fd2"),o=a.n(n),i=a("0f0c"),r=a("d558");function s(){if(Object(r["a"])())return!0;const e=Object(i["a"])("packageFormat");return o.a.mas()||o.a.windowsStore()||e&&"snap"===e}},"80cf":function(e,t,a){"use strict";var n=a("eb7a"),o=a("d7df"),i=a("5584"),r=a("1926"),s=a("61a1"),l=a("8750"),c=a("f680"),d=a("3d18");console.log("utils io CLIENT"),console.log("-utils io CLIENT"),o["a"].on("warning",(e=>{c["a"].create({message:e})})),o["a"].on("client_error",(e=>{c["a"].create({message:e})})),o["a"].on("request_unlimit_upload",(()=>{const e=Object(s["b"])();e&&"/settings"!==e.currentRoute.path&&"/advancedSettings"!==e.currentRoute.path&&l["a"].create({title:r["b"].t("upload_too_many_files"),message:r["b"].t("ask_if_unlimit_upload_amount"),ok:r["b"].t("disable_limitation"),cancel:r["b"].t("not_now")}).onOk((()=>{o["a"].emit("unlimit_upload_amount")}))})),o["a"].on("torrent_error",(({token:e,message:t})=>{const a=Object(s["b"])();a&&"/"===a.currentRoute.path&&c["a"].create({message:r["b"].t("torrent_error"),caption:[r["b"].t(t),e].join("\n"),multiLine:!0,timeout:0,closeBtn:r["b"].t("close")})})),o["a"].on("torrent_seed_error",((e,t)=>{e.missFile&&(console.log(e,t),l["a"].create({title:r["b"].t("miss_file"),message:r["b"].t("delete_miss_file_task",[e.name]),ok:r["b"].t("delete_task"),cancel:r["b"].t("cancel")}).onOk((()=>{o["a"].emit("delete_torrent",e.infoHash)})))})),o["a"].on("delete-files-failed",((e,t)=>{console.log("delete failed",e,t),l["a"].create({title:r["b"].t("failed_to_delete_files"),message:r["b"].t("failed_to_delete_files")})})),o["a"].on("autoupload-start",(()=>{i["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!0)})),o["a"].on("autoupload-complete",(()=>{i["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!1)})),o["a"].on("torrent_exists",(e=>(console.log("exist",e),c["a"].create(r["b"].t("torrent_exists")+e)))),o["a"].on("stop-server",(()=>{i["a"].dispatch("resetRemotePlay"),i["a"].state.video.currentVideo.shouldReset=!0})),o["a"].on("open-default-player",(async e=>{i["a"].dispatch("resetRemotePlay"),i["a"].dispatch("resetInfoHash"),i["a"].dispatch("currentVideoUrl",""),i["a"].dispatch("currentVideoPath",""),console.log("open-default-player:"+e);const t=n["default"].getPlayer("my-video"),a=i["a"].state.video.currentVideo.pipStatus;if(t&&a)try{console.log("跳转默认播放器,关闭画中画"),t.exitPictureInPicture()}catch(s){}const o=await Object(d["b"])(i["a"].getters.settings.defaultVideoPlayer,e);!0!==o&&""!==o&&c["a"].create(r["b"].t("open_default_player_failed"))})),o["a"].on("jump-to-player",(()=>{const e=Object(s["b"])();e&&e.push({name:"Player",params:{action:{type:"play_remote"}}})})),o["a"].on("finish_all_payments_by_infohash",(e=>{if("string"!==typeof e)return console.log(`No info hash to finish ${e}`);const t=i["a"].getters.accountUserInfo.sub;if(!t)return console.log(`Cannot find sub id from ${i["a"].getters.accountUserInfo}`);const a=i["a"].state.credits.expensesTransactions.filter((a=>a.payerId===t&&"FINISH"!==a.status&&a.meta.includes(e)));console.log("Will finish",a),o["a"].emit("finish_all_payments",a)}))},"80f4":function(e,t,a){},8162:function(e,t,a){},"81a4":function(e,t,a){},"81e0":function(e,t,a){a("7a76"),a("0c26"),a("de6c");const n=e=>{const t=`Failed to validate app config: ${e}`,a=new Error(t);throw a.stack=a.stack.trim().split("\n")[0],a},o=["application.manifest","application.reference","batfile","blob","cerfile","chm.file","cmdfile","comfile","cplfile","dllfile","drvfile","exefile","explorer.assocactionid.burnselection","explorer.assocactionid.closesession","explorer.assocactionid.erasedisc","explorer.assocactionid.zipselection","explorer.assocprotocol.search-ms","explorer.burnselection","explorer.closesession","explorer.erasedisc","explorer.zipselection","file","fonfile","hlpfile","htafile","inffile","insfile","internetshortcut","jsefile","lnkfile","microsoft.powershellscript .1","ms-accountpictureprovider","ms-appdata","ms-appx","ms-autoplay","msi.package","msi.patch","ms-windows-store","ocxfile","piffile","regfile","scrfile","scriptletfile","shbfile","shcmdfile","shsfile","smb","sysfile","ttffile","unknown","usertileprovider","vbefile","vbsfile","windows.gadget","wsffile","wsfile","wshfile"];e.exports=function(e){e&&"object"===typeof e||n("config is not an object");for(const t of["name","displayName","author","developer","description","publisher","homepage","upgradeCode","protocol","shortProtocol"])t in e&&"string"===typeof e[t]||n(`config.${t} must be string`);e.name.match(/^[a-zA-Z0-9.\-+]{3,}/)||n("config.name should contain at least 3 characters"),e.protocol.match(/^[a-z][a-z0-9.\-+]{2,}/)||n("config.protocol should contain at least 3 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.protocol)&&n(`The protocol "${e.protocol}" is not available since it is reserved by Windows Store`),e.shortProtocol.match(/^[a-z][a-z0-9.\-+]{1,}/)||n("config.shortProtocol should contain at least 2 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.shortProtocol)&&n(`The protocol "${e.shortProtocol}" is not available since it is reserved by Windows Store`),e.name.toLowerCase()===e.shortProtocol&&n("config.shortProtocol should not be same as config.name"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as config.protocol"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as app name"),e.register&&"object"===typeof e.register||n("config.register should be object"),"whitelist"===e.register.mode&&(Array.isArray(e.register.list)&&0!==e.register.list.length||n('config.register.list should be array with at least one country code since register mode is "whitelist"'))}},8306:function(e,t,a){},8460:function(e,t,a){"use strict";a("91fe")},"848e":function(e,t,a){},"84cb":function(e,t,a){"use strict";a("afe1")},"84f6":function(e,t,a){"use strict";a("de6c"),a("a1c1");var n=a("ff9b"),o=a("d7df"),i=a("5584"),r=a("8750"),s=a("1926"),l=a("0885"),c=a("a11f"),d=a("4fd2");const u=e=>new Promise((t=>{const a=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100);a((()=>{t(e())}))})),_=new n["a"]({data(){return{taskList:{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0},updatingTaskList:!1,lastUpdateTime:Date.now()}},computed:{allTasks(){return[...this.taskList.downloading,...this.taskList.uploading,...this.taskList.downloaded]}},methods:{async updateTaskList(e){if(this.updatingTaskList)console.log("Skip updating task list since busy");else{this.updatingTaskList=!0,await this.$nextTick();const t={},a=[],n={};for(const o in e){const i=e[o];if(!Array.isArray(i)){this.taskList[o]=i;continue}await u((()=>{i.forEach((e=>{Array.isArray(e.files)&&e.files.forEach((e=>{e.path.endsWith(".downloading")&&(e.path=e.path.replace(/\.downloading$/,"")),e.name.endsWith(".downloading")&&(e.name=e.name.replace(/\.downloading$/,""))}))})),this.taskList[o]=i})),t[o]=i.length;const r=[];i.forEach((e=>{"uploading"===o&&a.push({title:e.postTitle||e.name,abUrl:e.alphabizURI});const t={};if(e.infoHash){var n;t.start=(new Date).getTime(),t.getABKey=(new Date).getTime();const a=Object(c["a"])(e.alphabizURI||e.magnetURI||e.infoHash);t.playFile=(new Date).getTime();const o=null===(n=e.files)||void 0===n?void 0:n.find((e=>1===e.progress&&Object(d["a"])(e.path)));r.push({key:a,infoHash:e.infoHash,...o?{playFile:o}:{}}),t.end=(new Date).getTime()}})),n[o]=r}Object.freeze(e),i["a"].commit("updateTasks",{tasksCount:t,uploadingTasks:a,abKeyObj:n}),await this.$nextTick(),this.updatingTaskList=!1}},deleteTask(e){const t=[];return i["a"].getters.settings.defaultDeleteFiles&&t.push("deleteFiles"),console.log("to del",e),new Promise((a=>{if(e.isAutoUpload)return r["a"].create({title:s["b"].t("delete")+" "+(e.postTitle||e.name),message:s["b"].t("delete_autoupload_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete_anyway")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((()=>{console.log("Delete autoupload file",e),o["a"].emit("delete_torrent",e.infoHash,!0),a(!0)})).onCancel((()=>{a(!1)}));if(e.missAllFile)return o["a"].emit("delete_torrent",e.infoHash,!0),a(!0);const n=e.postTitle||e.name||e.origin||e.infoHash||"",c=n.length>20?n.substring(0,18)+"...":n;r["a"].create({title:s["b"].t("delete")+" "+c,style:"white-space:pre-wrap;word-break:break-all",message:s["b"].t("delete_confirm_message"),options:{type:"checkbox",model:t,items:[{label:s["b"].t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((t=>{o["a"].emit("delete_torrent",e.infoHash||e.token,t.includes("deleteFiles")),i["a"].dispatch("set",{defaultDeleteFiles:t.includes("deleteFiles")}),Object(l["c"])(e.infoHash,!1),a(!0)})).onCancel((()=>{a(!1)}))}))},onDeleteTask(e){for(const t in this.taskList){const a=_[t];if(!Array.isArray(a))continue;const n=a.findIndex((t=>t.infoHash===e));-1!==n&&a.splice(n,1)}}}});t["a"]=_},"860f":function(e,t,a){"use strict";a("4544")},"86d7":function(e,t,a){"use strict";a("6545")},"878c":function(e,t,a){"use strict";a("9e9b")},"88ba":function(e){e.exports=JSON.parse('{"lib_index":"घर","lib_edit":"प्रकाशित करना","lib_publish":"प्रकाशित करना","lib_explore":"अन्वेषण करना","lib_following":"अगले","lib_favorite":"स्थानीय पसंदीदा","lib_local_favorites":"स्थानीय पसंदीदा","lib_channel":"चैनल","lib_submit":"जमा करना","lib_from_network":"नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करना","welcome_to_lib":"${displayName} मीडिया लाइब्रेरी में आपका स्वागत है","register_or_login":"लॉग इन रजिस्टर करें","lib_recommend":"अनुशंसा करना","lib_recommend_desc":"${displayName} लाइब्रेरी में आपका स्वागत है! यह लाइब्रेरी नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करती है। इसका उपयोग शुरू करने के लिए, आपको कुछ चैनलों का अनुसरण करना होगा।","follow_any_channel_to_continue":"जारी रखने के लिए किसी भी चैनल का अनुसरण करें","follow_channels_and_continue":"{0} चैनलों का अनुसरण करें और जारी रखें","show_more_for_me":"मेरे लिए और अधिक दिखाएँ","no_more_recommend":"अब और कोई अनुशंसा नहीं","key":"चाबी","create_key":"कुंजी बनाएं","save_key":"कुंजी सहेजें","save_key_file":"क्या आप अपनी कुंजी को फ़ाइल के रूप में सहेजना चाहते हैं?","import_key":"कुंजी आयात करें","import":"आयात","invalid_key":"अमान्य कुंजी","back_to_top":"वापस शीर्ष पर","search_for_channel":"चैनल आईडी खोजें","search_channel_no_result":"{0} आईडी वाला चैनल नहीं मिल सका","please_input_channel_id":"कृपया चैनल आईडी इनपुट करें","welcome_help_text":"यह एक विकेन्द्रीकृत मीडिया लाइब्रेरी है। आप की जरूरत है\\n इस डेटाबेस के लिए एक खाता बनाने के लिए। हम ऐसा करेंगे\\n स्वचालित रूप से आपके लिए एक व्यक्तिगत कुंजी उत्पन्न करें।\\n यदि आपके पास पहले से ही कोई चाबी है, तो आप आयात भी कर सकते हैं\\n यहाँ यह।","welcome_key_text":"एक बार लॉग इन करने के बाद, कृपया [कुंजी सहेजें] बटन पर क्लिक करें\\n अपनी निजी कुंजी को सहेजने के लिए दाएं-नीचे कोने में।\\n यदि आपकी कुंजी खो जाती है, तो आप दोबारा लॉगिन नहीं कर पाएंगे।","redirect_to_recommend":"ऐसा लगता है कि आपने किसी चैनल को फ़ॉलो नहीं किया था. [एक्सप्लोर] पेज पर रीडायरेक्ट किया जा रहा है।","channel":"चैनल","follow":"अनुसरण करना","unfollow":"करें","following":"अगले","share":"शेयर करना","unfollow_confirm":"क्या आप वाकई इस चैनल को अनफ़ॉलो करना चाहते हैं? आपकी टाइमलाइन से इस चैनल की सभी पोस्ट हटा दी जाएंगी.","follow_failed_hint":"कार्रवाई अभी भी पृष्ठभूमि में लंबित है. यदि ऑपरेशन लंबे समय तक लागू नहीं होता है, तो कृपया ऐप को पुनरारंभ करें और पुनः प्रयास करें।","block":"अवरोध पैदा करना","unblock":"अनब्लॉक","blocked":"अवरोधित","block_channel":"इस चैनल को ब्लॉक करें","block_channel_confirm":"ब्लॉक चैनल इसे आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","block_creator":"इस चैनल के निर्माता को ब्लॉक करें","unblock_creator":"इस चैनल के निर्माता को अनब्लॉक करें","block_creator_confirm":"ब्लॉक क्रिएटर इस क्रिएटर द्वारा बनाए गए सभी चैनलों को आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","share_url_copied":"शेयर यूआरएल आपके क्लिपबोर्ड पर कॉपी हो गया है","follow_time":"समय का पालन करें","update_time":"समय सुधारें","search":"खोज","type":"प्रकार","added":"जोड़ा","click_to_task":"कार्य पर जाने के लिए क्लिक करें","lib_already_added":"आप यह वीडियो पहले ही जोड़ चुके हैं","description":"विवरण","poster":"पोस्टर","channel_poster":"चैनल का पोस्टर","preview":"पूर्व दर्शन","creator":"निर्माता","creator_detail":"निर्माता विवरण","loading_creator":"निर्माता की जानकारी लोड हो रही है","wait_for_creator_loaded":"कृपया निर्माता की जानकारी लोड होने तक प्रतीक्षा करें।","follower":"पालन ​​करने वाला","followers":"समर्थक","follower_list":"अनुयायी सूची","user":"उपयोगकर्ता","channel_title":"चैनल का शीर्षक","channel_id":"चैनल आईडी","post_title":"शीर्षक पोस्ट करें","post_id":"पोस्ट आईडी","import_data_from_excel":"एक्सेल से डेटा आयात करें","set_excel_keys":"एक्सेल कुंजियाँ सेट करें","excel_import_succeded":"एक्सेल आयात सफल हुआ","excel_import_success_msg":"{0} पंक्तियाँ जोड़ने के लिए तैयार हैं, {1} अमान्य और {2} डुप्लिकेट आइटमों को नजरअंदाज कर दिया गया है","cannot_find_channel":"चैनल नहीं मिल सका","cannot_find_posts":"पोस्ट नहीं मिल सकीं","add_channel":"चैनल जोड़ें","add_post":"पोस्ट जोड़ें","edit_channel":"चैनल संपादित करें","channel_setting":"चैनल सेटिंग","edit_post":"संपादित पोस्ट","edit_posts":"पोस्ट संपादित करें","channel_detail":"चैनल विवरण","remove":"निकालना","remove_channel":"चैनल हटाएँ","remove_channel_confirm":"क्या आप निश्चित रूप से इस पोस्ट को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","remove_post":"पोस्ट हटाएँ","remove_post_confirm":"क्या आप निश्चित रूप से इस चैनल को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","preview_mode":"पूर्वावलोकन मोड","preview_mode_desc":"यह आपके चैनल का पूर्वावलोकन है. यहां फिल्मों के सभी रेट दिखाए गए हैं।","edit_user_profile":"उपयोगकर्ता प्रोफ़ाइल संपादित करें","name":"उपनाम","avatar":"अवतार","no_following":"कोई निम्नलिखित चैनल नहीं. जाने के लिए क्लिक करें","no_recommend":"कोई अनुशंसित चैनल नहीं. जाने के लिए क्लिक करें","first_recomment_msg":"यदि यह पहली बार ऐप लॉन्च हुआ है तो इसमें कुछ समय लग सकता है।","invalid_image":"अमान्य छवि","image_not_reachable":"यह छवि यूआरएल पहुंच योग्य नहीं है.","channel_not_found":"चैनल नहीं मिला","cannot_get_channel_info":"चैनल की जानकारी नहीं मिल सकी. इस चैनल को इसके निर्माता द्वारा हटाया जा सकता है और यह अब उपलब्ध नहीं रहेगा।","validate_error":"त्रुटि सत्यापित करें","validate_user_name_no_space":"उपयोगकर्ता नाम में रिक्त स्थान नहीं होना चाहिए","validate_url_no_space":"यूआरएल में रिक्त स्थान नहीं होना चाहिए","validate_user_name_length":"उपयोगकर्ता नाम की लंबाई {0} और {1} के बीच होनी चाहिए","validate_user_desc_length":"उपयोगकर्ता विवरण {0} अक्षरों से अधिक नहीं होना चाहिए","validate_user_avatar_url":"उपयोगकर्ता अवतार का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_channel_title_length":"चैनल शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_channel_desc_length":"चैनल विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_channel_image_url":"चैनल पूर्वावलोकन 2048 अक्षरों से कम वाला यूआरएल होना चाहिए","validate_post_title_length":"पोस्ट शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_post_desc_length":"पोस्ट विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_post_image_url":"पोस्टर का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_post_url":"अमान्य ${displayName} यूआरएल","validate_post_url_length":"${displayName} यूआरएल 2048 अक्षरों से अधिक नहीं होना चाहिए","film_rate":"फ़िल्म दर","set_film_rate":"फिल्म दर निर्धारित करें","select_a_rate_before_enter":"मीडिया लाइब्रेरी में प्रवेश करने से पहले आपको एक फिल्म दर का चयन करना होगा।","library_available_rate":"लाइब्रेरी में उपलब्ध फ़िल्म दर","rate_g":"जी - सामान्य दर्शक","rate_g_desc":"सभी उम्र के लोगों को प्रवेश दिया गया। ऐसा कुछ भी नहीं जिसे बच्चों द्वारा देखने पर माता-पिता को ठेस पहुंचे।","rate_pg":"पीजी - माता-पिता के मार्गदर्शन का सुझाव दिया गया","rate_pg_desc":"कुछ मटीरियल बच्चों के लिए उपयुक्त नहीं हो सकते। माता-पिता से \\"माता-पिता का मार्गदर्शन\\" देने का आग्रह किया गया। इसमें कुछ ऐसी सामग्री हो सकती है जो माता-पिता अपने छोटे बच्चों के लिए पसंद नहीं करेंगे।","rate_pg_13":"पीजी-13 - अभिभावकों को कड़ी चेतावनी दी गई","rate_pg_13_desc":"कुछ सामग्री 13 वर्ष से कम उम्र के बच्चों के लिए अनुपयुक्त हो सकती है। माता-पिता से सतर्क रहने का आग्रह किया जाता है। कुछ सामग्री पूर्व-किशोरों के लिए अनुपयुक्त हो सकती है।","rate_r":"आर - प्रतिबंधित","rate_r_desc":"17 वर्ष से कम आयु के लिए माता-पिता या वयस्क अभिभावक का साथ आवश्यक है। इसमें कुछ वयस्क सामग्री शामिल है. माता-पिता से आग्रह किया जाता है कि वे अपने छोटे बच्चों को अपने साथ ले जाने से पहले फिल्म के बारे में अधिक जानें।","rate_nc_17":"एनसी-17 - केवल वयस्क","rate_nc_17_desc":"17 वर्ष से कम उम्र के किसी भी व्यक्ति को प्रवेश नहीं दिया गया। स्पष्ट रूप से वयस्क. बच्चों को प्रवेश नहीं दिया जाता.","set_as_private":"निजी के रूप में सेट करें","hide_in_explore":"इस चैनल को एक्सप्लोर पेज में छुपाएं","hidden":"छिपा हुआ","select_a_rate":"कृपया एक फ़िल्म दर चुनें","select_from_tasks":"कार्यों में से चयन करें","import_from_magnet":"चुंबक से आयात:?...","input_magnet_url":"इनपुट चुंबक:? यूआरएल","task_title":"कार्य का शीर्षक","set_title":"शीर्षक सेट करें","add_to_local_favorites":"स्थानीय पसंदीदा में जोड़ें","remove_from_local_favorites":"स्थानीय पसंदीदा से हटाएँ","removed_favorite":"पसंदीदा हटा दिया गया","import_or_export_favorites":"आयात/निर्यात पसंदीदा","export_local_favorites":"बैकअप के रूप में स्थानीय पसंदीदा निर्यात करें","import_favorites_file":"पसंदीदा फ़ाइल आयात करें","not_a_favorite_file":"यह फ़ाइल पसंदीदा बैकअप फ़ाइल नहीं है","connection_status":"संपर्क स्थिति","gun_server_list":"कैश नोड्स","custom_nodes":"कस्टम कैश नोड्स","custom_nodes_hint":"ऐप पुनः लॉन्च के बाद कस्टम कैश नोड्स लागू किए जाएंगे","wait_for_reboot":"रीबूट की प्रतीक्षा में...({seconds}s)","reboot_now":"अब रिबूट करें","reboot_later":"बाद में रिबूट करें","peer_list":"प्रत्यक्ष नोड्स","server":"नोड यूआरएल","peer":"समकक्ष","peer_id":"नोड आईडी","connection":"संबंध","data_source":"डेटा स्रोत","sync":"साथ-साथ करना","syncing":"सिंक्रनाइज़ किए जा रहे","sync_completed":"सिंक पूरा हुआ","got_all_post":"आपको सभी पोस्ट पहले ही मिल चुकी हैं","placeholder_channel_title":"आपके चैनल का नाम","placeholder_channel_desc":"इस चैनल के बारे में विवरण","placeholder_post_title":"मूवी का नाम (वर्ष)","placeholder_post_desc":"इस फिल्म के बारे में विवरण","private_channel":"निजी चैनल","creator_blocked":"निर्माता को अवरोधित किया गया","go_to_library":"पुस्तकालय जाएं?","go_to_library_channel_msg":"क्या आप लाइब्रेरी चैनल {0} पर जाना चाहते हैं?","magnet_does_not_have_name":"यह चुम्बक:? यूआरएल में कोई नाम नहीं है, आपको पहले एक पोस्ट शीर्षक जोड़ना होगा।","no_available_post":"कोई पोस्ट उपलब्ध नहीं","following_channel_no_post":"आपके निम्नलिखित सभी चैनलों पर पोस्ट उपलब्ध नहीं है। यह नेटवर्क त्रुटि के कारण हो सकता है. यदि आपने पहले से ही कुछ चैनलों का अनुसरण किया है, तो पोस्ट बाद में लोड की जा सकती हैं।","share_to_library":"लाइब्रेरी में साझा करें","quick_start":"जल्दी शुरू","quick_start_desc":"किसी कार्य या फ़ाइल के साथ एक पोस्ट बनाना प्रारंभ करें","select_file":"फ़ाइल का चयन करें...","select_folder":"फोल्डर का चयन करें...","post_options":"पोस्ट विकल्प","channel_options":"चैनल विकल्प","create_new_channel":"नया चैनल बनाएं","use_existed_channel":"मौजूदा चैनल का उपयोग करें","select_existed_channel":"मौजूदा चैनल का चयन करें","uploaded_by":"{title} {name} द्वारा अपलोड किया गया","created_by":"{title} {name} द्वारा निर्मित","creating_new_channel":"नया चैनल बनाया जा रहा है...","created_new_channel":"नया चैनल बनाया गया","creating_new_post":"नई पोस्ट बनाई जा रही है...","created_new_post":"नई पोस्ट बनाई गई","create_new_post":"नई पोस्ट बनाएं","quick_start_timeout":"{0} समयबाह्य। यह नेटवर्क त्रुटि के कारण हो सकता है. कृपया बाद में पुन: प्रयास करें।","file_too_large":"बहुत बड़ी फाइल","file_too_large_msg":"यह फ़ाइल 4GB ({size}) से बड़ी है और इसे तैयार करने में काफी समय लग सकता है। क्या आप निश्चित रूप से जारी रखेंगे?","resolving_folder_files":"फ़ोल्डर फ़ाइलों का समाधान किया जा रहा है...","folder_too_large":"फ़ोल्डर बहुत बड़ा है","folder_too_large_msg":"इस फ़ोल्डर में फ़ाइलें 4GB ({size} कुल) से बड़ी हैं और कार्य तैयार करने में लंबा समय लग सकता है। क्या आप निश्चित रूप से अपलोड करना चाहते हैं?","creating_new_task":"नया कार्य बनाया जा रहा है...","cannot_create_task":"कार्य नहीं बनाया जा सकता","cannot_create_task_msg":"यह किसी त्रुटि के कारण हो सकता है. यदि कार्य सही ढंग से बनाया गया है, तो आप बाद में कार्य सूची की जांच कर सकते हैं।","cannot_get_task_name":"कार्य का नाम नहीं मिल सका. आपको पहले एक इनपुट करना होगा.","remove_old_task":"पुराना कार्य हटाएँ","remove_old_task_desc":"वेब मोड एक बार में केवल एक ही कार्य बना सकता है। क्या आप पुराना कार्य हटाना चाहते हैं?","subtitle_list":"उपशीर्षक सूची","optional":"वैकल्पिक","with_subtitle":"{language} उपशीर्षक के साथ","maximumSubtitleNum_limit":"उपशीर्षकों की संख्या अधिकतम तक पहुंच गई है","add_subtitle_url":"उपशीर्षक डाउनलोड लिंक जोड़ें","cannot_add_subtitle":"उपशीर्षक जोड़ने में विफल","cannot_add_subtitle_msg":"उपशीर्षक भाषा चयनित नहीं है या डाउनलोड लिंक अमान्य है।","support_subtitle_type":"केवल एसआरटी और वीटीटी प्रारूप में उपशीर्षक समर्थित हैं।","recommend_opensubtitles":"www.opensubtitles.org पर उपशीर्षक डाउनलोड लिंक या आईडी का उपयोग करने की अनुशंसा की जाती है।","take_down":"नीचे करें","serious_violation":"गंभीर उल्लंघन","copyright_disputes":"कॉपीराइट विवाद","adults_only":"केवल वयस्क","takedown_reason":"हटाने का कारण","takedown_mode":"टेकडाउन मोड","admins":"व्यवस्थापक","takedown_user":"इस निर्माता को हटाओ","takedown_channel":"इस चैनल को हटाओ","takedown_post":"इस पोस्ट को हटाएं","select_takedown_reason":"निष्कासन का कारण चुनें","takedown_invalid_reason":"अमान्य निष्कासन कारण","takedown_invalid_user_id":"अमान्य उपयोगकर्ता आइ डी। आईडी में 87 अक्षर शामिल होने चाहिए","takedown_invalid_channel_id":"अमान्य चैनल आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_invalid_post_id":"अमान्य पोस्ट आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_management":"प्रबंधन हटाओ","users":"उपयोगकर्ताओं","channels":"चैनल","posts":"पदों","you":"आप","preset":"प्रीसेट","admin":"व्यवस्थापक","committee":"समिति","about_takedown_mode":"टेकडाउन मोड के बारे में:\\nप्रीसेट: जीथब रिपॉजिटरी में कॉन्फ़िगर किया गया। उन सभी को लाइब्रेरी से हटा दिया जाएगा.\\nव्यवस्थापक: व्यवस्थापकों में से जिस किसी को भी वोट दिया जाएगा उसे हटा दिया जाएगा।\\nसमिति: वोट करने वाले कम से कम आधे व्यवस्थापकों को हटा दिया जाएगा।","cannot_edit_preset":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि यह एक पूर्व निर्धारित पंक्ति है","cannot_edit_not_vote":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि आपने इसके लिए मतदान नहीं किया है","remove_vote":"अपना वोट हटाओ","post_preload_failed":"इस पोस्ट को प्रीलोड करने में विफल. डाउनलोड लिंक पुराना हो सकता है, इसलिए इस पोस्ट को तुरंत नहीं चलाया जा सकता।","about_cache_node":"कैश नोड के बारे में","edit_cache_node":"कैश नोड संपादित करें","create_cache_node":"कैश नोड बनाएं","about_cache_node_desc":"${displayName} कैश नोड के रूप में गन सर्वर का उपयोग करता है। आप अग्रिम सेटिंग में कस्टम नोड्स संपादित कर सकते हैं","learn_how_to_deploy_gun":"जानें कि अपना खुद का गन सर्वर कैसे तैनात करें","repeat_add":"कार्य जोड़ दिया गया है, कृपया इसे दोबारा न जोड़ें","upload":"डालना","download":"डाउनलोड","delete":"मिटाना","delete_task":"कार्य हटाएँ","delete_confirm_message":"यह कार्य हटाएं? यह अपरिवर्तनीय है","also_delete_files":"फ़ाइलें भी हटाएँ","default_delete_files":"हटाने के कार्य के बाद डाउनलोड की गई फ़ाइलों को डिफ़ॉल्ट रूप से हटा दें","not_now":"अभी नहीं","delete_autoupload_confirm":"इस कार्य में वह फ़ाइल शामिल है जिसे आपने ऑटो-अपलोड निर्देशिका में रखा है। इस कार्य को हटाने से फ़ाइल भी हट जाएगी।","delete_anyway":"फिर भी हटाएँ","upload_too_many_files":"बहुत सारी फ़ाइलें अपलोड करें","ask_if_unlimit_upload_amount":"स्वतः-अपलोड निर्देशिका में बहुत अधिक फ़ाइलें हैं। क्या आप अपलोड राशि सीमा को अक्षम करना चाहते हैं? *इससे प्रदर्शन संबंधी समस्या हो सकती है","disable_limitation":"सीमा अक्षम करें","not_length":"मल्टी फ़ाइल ऑपरेशन वर्तमान में समर्थित नहीं है, कृपया सहयोग करें","download_torrent":"डाउनलोड फ़ाइल","upload_torrent":"फ़ाइल अपलोड करें","files":"फ़ाइलें","file":"फ़ाइल","folder":"फ़ोल्डर","start_all":"सभी प्रारंभ करें","pause_all":"सभी को रोकें","remove_all":"सभी हटाएं","upload_all":"सभी अपलोड करें","clear_history":"इतिहास मिटा दें","pause_all_finish_payments":"इससे सभी भुगतान समाप्त हो जायेंगे.","accelerating":"तेज","link_task":"लिंक कार्य","torrent_task":"फ़ाइल कार्य","ok":"ठीक","cancel":"रद्द करना","download_directory_position":"निर्देशिका स्थिति डाउनलोड करें","torrent_file":"कार्य फ़ाइल","magnetic_link_incorrect":"लिंक प्रारूप ग़लत है","delete_fail":"हटाएँ विफल","pause":"विराम","paused":"रोके गए","stop_torrent":"रुकना","seed":"बीज","resume":"फिर शुरू करना","downloading":"डाउनलोड","downloaded":"डाउनलोड","uploading":"अपलोड हो रहा है","auto_uploading":"स्वतः अपलोडिंग","uploaded":"अपलोड किए गए","pending":"अन्य कार्यों के लिए प्रतीक्षा की जा रही है","verifying":"सत्यापन","waiting_for_verify":"सत्यापन की प्रतीक्षा की जा रही है","seeding":"बोने","completed":"पुरा होना।","status":"दर्जा","task_name":"कार्य का नाम","size":"आकार","progress":"प्रगति","sort":"क्रम से लगाना","ascending":"आरोही","descending":"अवरोही","file_loading":"फ़ाइल लोड हो रही है...","loading":"लोड हो रहा है","unknown_status":"अज्ञात","play_while_downloading":"खेल...","upload_or_play":"अपलोड/चलाएँ","play":"खेल","ask_if_upload_file":"फ़ाइल अपलोड करें?","ask_if_upload_or_play":"फ़ाइल अपलोड करें या चलाएं?","torrent_error":"कार्य जोड़ते समय त्रुटि:","no_peers":"{0} से अधिक बार पुनः प्रयास करें और कोई सहकर्मी उपलब्ध नहीं है","torrent_exists":"काम पहले से मौज़ूद।","show_origin_torrent":"मूल कार्य फ़ाइल या यूआरएल प्राप्त करें","show_directory":"इस टोरेंट की निर्देशिका खोलें","task_num":"कार्य","total_upload_speed":"भार डालना के गति","total_download_speed":"डाउनलोड की गति","path_missing":"त्रुटि: टोरेंट पथ नहीं मिल सका","origin_not_found":"मूल कार्य की जानकारी नहीं मिल सकी.","text_copied":"मैग्नम यूआरएल आपके क्लिपबोर्ड पर कॉपी किया गया है","copy_magnet_uri":"प्रतिलिपि चुंबक:? यूआरआई","copy_download_uri":"डाउनलोड यूआरआई कॉपी करें","copy_share_uri":"कॉपी शेयर यूआरआई","uri_copied":"यूआरआई सफलतापूर्वक आपके क्लिपबोर्ड पर कॉपी हो गया है","uri_copy_failed":"यूरी की प्रतिलिपि बनाने में विफल","more":"अधिक...","toggle_list_mode":"सूची मोड टॉगल करें","comment":"टिप्पणी","operations":"संचालन","open_directory":"निर्देशिका खोलें","no_downloading_task":"कोई डाउनलोडिंग कार्य नहीं","remove_all_downloading_tasks":"सभी डाउनलोडिंग कार्य हटाएँ?","remove_all_upload_tasks":"सभी अपलोड कार्य हटाएं?","remove_autoupload_files":"स्वतः-अपलोड फ़ाइलें हटाएँ","remove_all_history":"सारा इतिहास हटा दें?","remaining":"बचा हुआ","created_time":"समय बनाया","used_time":"बिताया समय","completed_time":"पूरा समय","yesterday":"कल","before_yesterday":"{empty}","earlier":"पहले","miss_file":"कुछ फ़ाइलें गुम हैं","delete_miss_file_task":"{0} में फोम फ़ाइलें गायब हैं।","common_peer":"आम सहकर्मी","ab_peer":"${displayName} सहकर्मी","ab_peer_verified":"सत्यापित ${displayName} सहकर्मी","ab_peer_available":"${displayName} सहकर्मी उपलब्ध हैं","alphabiz_accelerating":"${displayName} तेज हो रहा है","income":"आय","income_info":"आय(आज/कुल)","total_income_info":"आय: {0}(आज) / {1}(कुल)","login_to_see_income":"आय के आँकड़े देखने के लिए लॉगिन करें","credit_cost":"ऋण लागत","downloaded_by_payment":"पेमेंट्स द्वारा डाउनलोड किया गया","file_not_found":"यह फ़ाइल स्थानीय में नहीं मिल सकी","no_task":"न पूछें","no_matched_task":"कोई मिलान कार्य नहीं","space_not_enough":"डिस्क स्थान पर्याप्त नहीं है","need_more_space":"{0} अधिक स्थान की आवश्यकता है लेकिन वर्तमान डिस्क में {1} निःशुल्क ({2} आरक्षित) है। कार्य रुके हुए हैं. लाइब्रेरी प्रीलोड अक्षम है. आप इसे [सेटिंग्स - उन्नत] में पुनः सक्षम कर सकते हैं।","seeders":"बीज","last_update":"आखिरी अपडेट","connecting":"कनेक्ट","connected":"जुड़े हुए","request_timed_out":"अनुरोध का समय समाप्त","connection_failed":"कनेक्शन विफल","invalid_download_url":"अमान्य डाउनलोड यूआरएल","download_link":"लिंक को डाउनलोड करें","empty_files":"निर्देशिका में कोई फ़ाइल नहीं","duplicate_task":"डुप्लिकेट कार्य","duplicate_tracker":"डुप्लिकेट ट्रैकर","this_task_not_ready":"यह कार्य तैयार नहीं है. इस कार्य को रोकें इसे सीधे हटा दिया जाएगा.","some_task_not_ready":"कुछ कार्य तैयार नहीं हैं. इन कार्यों को रोकें उन्हें सीधे हटा दिया जाएगा।","failed_to_delete_files":"फ़ाइलें हटाने में विफल","failed_to_delete_files_desc":"कार्य की कुछ फ़ाइलें हटाने में विफल. आपको उन्हें मैन्युअल रूप से हटाने की आवश्यकता हो सकती है","unknown_error":"अज्ञात त्रुटि: {0}","more_files_are_not_shown":"({0} प्रदर्शन कारणों से अधिक फ़ाइलें नहीं दिखाई गई हैं)","no_available_file":"कोई फ़ाइल उपलब्ध नहीं. कृपया कार्य तैयार होने तक प्रतीक्षा करें.","service_worker_error":"खेलने के लिए ServiceWorker को लोड नहीं किया जा सकता. हो सकता है कि आपका ब्राउज़र इस सुविधा का समर्थन न करे, या सर्विसवर्कर सक्रिय नहीं है। आपको इस पृष्ठ को पुनः लोड करने और पुनः प्रयास करने की आवश्यकता हो सकती है।","add_task_first":"आपको पहले कार्य जोड़ना होगा.","player_task_time":"खिलाड़ी को खेल की तैयारी में बहुत अधिक सेकंड लगते हैं। कार्य में कुछ गड़बड़ी हो सकती है।","web_mode_hint":"${displayName} का वेब मोड केवल WebRTC साथियों का समर्थन करता है। सर्वोत्तम अनुभव के लिए, कृपया ${displayName} डेस्कटॉप ऐप डाउनलोड करें।","web_mode_task_hint":"कार्य जोड़ने के लिए नीचे दिए गए बटन पर क्लिक करें। आप एक समय में केवल एक ही कार्य जोड़ सकते हैं.","save_to_local":"स्थानीय में सहेजें","save_as_zip":"ज़िप के रूप में सहेजें","creating_save_file":"सेव फ़ाइल बनाई जा रही है...","upload_as_one_directory":"एक निर्देशिका के रूप में अपलोड करें","upload_as_single_files":"एकल फ़ाइलों के रूप में अपलोड करें","web_mode_upload_single":"आप वेब मोड में केवल एक फ़ाइल अपलोड कर सकते हैं","download_success":"सफलतापूर्वक डाउनलोड करें","download_fail":"डाउनलोड विफल","wait_for_downloaded_to_share":"कृपया साझा करने से पहले कार्य डाउनलोड होने की प्रतीक्षा करें।","download_with_cellular":"सेल्युलर का उपयोग करके कार्य डाउनलोड करें","download_with_cellular_desc":"आप सेल्युलर नेटवर्क का उपयोग कर रहे हैं. सेल्युलर से डाउनलोड कार्यों के लिए आपके वाहक द्वारा अतिरिक्त शुल्क लिया जा सकता है।","download_with_cellular_confirm":"अभी भी सेल्युलर से डाउनलोड करें","language":"भाषा","appearance":"उपस्थिति","darkModeSystem":"प्रणाली","darkModeLight":"रोशनी","darkModeDark":"अँधेरा","basic_setting":"बुनियादी","hideMenu":"ऐप मेनू छुपाएं (केवल विंडोज़ और लिनक्स)","autoHide":"ऑटो छिपाएँ विंडो","autoStart":"लॉगिन पर खोलें","restore":"बाहर निकलते समय खिड़की का आकार और स्थिति रखें","autoStartUnfinished":"सभी अधूरे कार्य स्वचालित रूप से फिर से शुरू करें","default_download_path":"डिफ़ॉल्ट पथ","download_directory":"निर्देशिका डाउनलोड करें","upload_directory":"निर्देशिका अपलोड करें","enable_auto_upload":"ऑटो अपलोड सक्षम करें","unlimit_upload_amount":"अपलोड राशि असीमित","unlimit_upload_warning":"बड़ी मात्रा में फ़ाइलें अपलोड करने की अनुमति दें. इससे प्रदर्शन संबंधी समस्या हो सकती है","start":"चालू होना","transport_setting":"हस्तांतरण","upload_limit":"अपलोड सीमा","download_limit":"डाउनलोड सीमा","payed_user_share_rate":"भुगतान किया गया उपयोगकर्ता शेयर दर","unlimited":"असीमित","limit_input_error":"सीमा संख्या धनात्मक होनी चाहिए","BT_setting":"कार्य सेटिंग्स","saveLinkSeed":"लिंक को कार्य फ़ाइल के रूप में सहेजें","autoDownload":"स्वचालित रूप से लिंक और सामग्री डाउनलोड करें","continuousSeeding":"बीज बोना तब तक जारी रखें जब तक कि इसे मैन्युअल रूप से बंद न कर दें","seedSharingRate":"बीज अनुपात","seedTime":"बीज समय (मिनट)","task_manage":"कार्य प्रबंधन","maximumDownloadNum":"अधिकतम सक्रिय कार्य","maximumConnectionsNum":"प्रति सर्वर अधिकतम कनेक्शन","range_error":"रेंज {0} और {1} के बीच होनी चाहिए","random":"रैंडम","breakpointContinuation":"जारी रखना","automaticSkip":"कार्य जोड़ने के बाद स्वचालित रूप से डाउनलोडिंग दिखाएं","afterNotification":"डाउनलोड पूरा होने के बाद अधिसूचना","deleteConfirm":"कार्य हटाने से पहले किसी पुष्टि की आवश्यकता नहीं है","submit":"सहेजें और लागू करें","discard":"खारिज करना","reset":"रीसेट","reset_all_settings":"सभी सेटिंग्स को रीसेट?","preferences_resetted":"प्राथमिकताएँ रीसेट की गईं","traditional_chinese":"परंपरागत चीनी","japanese":"जापानी","english":"अंग्रेज़ी","chinese":"सरलीकृत चीनी","advancedSettings":"विकसित","autoUpdate":"ऑटो अपडेट","autoCheckUpdate":"अद्यतन के लिए स्वचालित रूप से जाँच करें","proxy":"प्रतिनिधि","useProxyService":"प्रॉक्सी सक्षम करें","trackerService":"ट्रैकर सर्वर","recommendUse":"अनुशंसित","autoUpdateTrackerServiceList":"ट्रैकर सूची को हर दिन स्वचालित रूप से अपडेट करें","manualUpdateTracker":"मैन्युअल अद्यतन","manualUpdateSuccess":"ट्रैकर सर्वर को सफलतापूर्वक अपडेट करें","manualUpdateFail":"यहां से अपडेट करने में विफल:","listenPort":"बंदरगाहों सुनो","BTlistenPort":"डेटा ट्रांसमिशन पोर्ट","DHTlistenPort":"वितरित हैश पोर्ट","protocols":"संगत प्रोटोकॉल","setDefaultClientForFollowingProtocols":"निम्नलिखित प्रोटोकॉल के लिए डिफ़ॉल्ट क्लाइंट के रूप में सेट करें","magnetUrl":"चुंबक","video_file":"वीडियो फाइल","audio_file":"ऑडियो फाइल","security":"सुरक्षा","impersonateUserAgent":"नकली उपयोगकर्ता-एजेंट","RPCauthorizationkey":"आरपीसी रहस्य","viewDocument":"आरपीसी सीक्रेट मैनुअल देखें","developer":"डेवलपर","applicationLogPath":"ऐप लॉग पथ","downloadSessionPath":"सत्र पथ डाउनलोड करें","resetDownloadSessionRecord":"डाउनलोड सत्र रीसेट करें","restoreInitialSettings":"नए यंत्र जैसी सेटिंग","preferences_set_successfully":"प्राथमिकताएँ सफलतापूर्वक सहेजें!","preferences_set_fail":"प्राथमिकताएँ सहेजना विफल!","change_not_save":"परिवर्तन सहेजे नहीं जाते","discard_all_changes":"सभी परिवर्तन त्यागें और छोड़ें?","stay_in_page":"पेज में रहें","disk_usage":"डिस्क उपयोग","pause_if_less_space":"यदि स्थान (एमबी) से कम है तो रोकें और सूचित करें","default_video_player":"डिफ़ॉल्ट वीडियो प्लेयर","video_cache_time":"स्ट्रीम प्ले कैश","minutes":"मिनट","system_default":"प्रणालीगत चूक","media_player":"मीडिया प्लेयर","library_film_rate":"उपलब्ध फिल्म दर","library_show_explore":"[अन्वेषण] पृष्ठ दिखाएँ","library_setting":"पुस्तकालय सेटिंग","library_sync_setting":"लाइब्रेरी सिंक सेटिंग","keychain_sync_status":"किचेन सिंक स्थिति","sync_with_aws":"अमेज़ॅन वेब सेवाओं के साथ किचेन को सिंक करें","backup_to_local":"स्थानीय फ़ाइल में बैकअप","enable_sync_with_aws":"AWS के साथ समन्वयन सक्षम करें","disable_sync_with_aws":"AWS के साथ समन्वयन अक्षम करें","disable_sync_with_aws_desc":"यह सर्वर में सेव की को हटा देगा। कृपया सुनिश्चित करें कि आपने अपनी कुंजी पहले ही निर्यात कर ली है।","input_independent_password":"स्वतंत्र पासवर्ड इनपुट करें","change_independent_password":"स्वतंत्र पासवर्ड बदलें","password_error":"पासवर्ड त्रुटि","password_invalid":"पासवर्ड अमान्य","key_existed":"कुंजी मौजूद थी","key_not_found":"कुंजी प्राप्त नहीं हुई","library_recommend":"पुस्तकालय की अनुशंसा","show_all_channels":"लाइब्रेरी अनुशंसा पृष्ठ में सभी चैनल दिखाएं","not_logged_in":"अंदर प्रवेश की अनुमति नहीं है","login_to_continue":"जारी रखने के लिए लॉगिन करें","mnemonic_code":"स्मरणीय कोड","wordlist":"शब्द सूची","restore_code":"कोड से पुनर्स्थापित करें","generate_code":"कोड जनरेट करें","export_mnemonic_code":"स्मरणीय कोड निर्यात करें","import_mnemonic_code":"स्मरणीय कोड आयात करें","print":"छाप","save_as_txt":"txt के रूप में सहेजें","save_as_pdf":"पीडीएफ के रूप में सहेजें","from_file":"लेख्यपत्र से","not_valid_mnemonic_code":"यह एक वैध स्मरणीय कोड नहीं है","cannot_parse_code_as_key":"इस स्मरणीय कोड को लाइब्रेरी कुंजी के रूप में पार्स नहीं किया जा सकता","import_key_hint":"क्या आप निश्चित रूप से इस कुंजी को आयात करना चाहते हैं? इससे लाइब्रेरी में आपकी पुरानी कुंजी वापस आ जाएगी।","import_key_confirm":"हाँ, इसे आयात करें.","library_preload":"लाइब्रेरी से कार्य प्रीलोड करें","show_preload":"प्रीलोड कार्य दिखाएँ","set_download":"डाउनलोड निर्देशिका सेट करें","set_download_desc":"MacOS ऐप स्टोर संस्करण के लिए, डिफ़ॉल्ट डाउनलोड निर्देशिका ऐप के सैंडबॉक्स में है, और ऐप अनइंस्टॉल होने के बाद हटा दी जाएगी। यदि आप अपनी डाउनलोड फ़ाइलें रखना चाहते हैं, तो आपको मैन्युअल रूप से एक अलग डाउनलोड निर्देशिका का चयन करना होगा।","home":"घर","home_caption":"डाउनलोड/अपलोड और मीडिया फ़ाइलें","library":"पुस्तकालय","library_caption":"मीडिया संसाधनों का अन्वेषण करें","player":"खिलाड़ी","player_caption":"मीडिया प्लेयर","credits":"क्रेडिट","credits_caption":"अकाउंट बैलेंस जांचें","account":"खाता","account_caption":"साइन इन/साइन अप/प्रबंधन","settings":"समायोजन","settings_caption":"ऐप, प्लेयर, अकाउंट के लिए सेटिंग्स","development":"विकास","development_caption":"आंतरिक उपयोग के लिए डेवलपर मोड","basic":"बुनियादी","basic_caption":"मूल सेटिंग्स","advanced":"विकसित","advanced_caption":"एडवांस सेटिंग","blockchain":"बटुआ","blockchain_caption":"${displayName} विकेंद्रीकृत वॉलेट","internal_notice":"आंतरिक रिलीज़ सूचना","release_notes":"रिलीज नोट्स","terms_and_conditions":"नियम और शर्तें","license_and_listen_notices":"लाइसेंस और ओपन सोर्स नोटिस सुनें","close":"बंद करना","success":"सफलता","fail":"असफल","account_email_invalid_address":"अमान्य ईमेल पता","account_email_invalid_domain":"अमान्य ईमेल डोमेन","account_email_unknown_status":"अज्ञात ईमेल वितरण स्थिति","account_email_unavailable_address":"अनुपलब्ध ईमेल पता","account_email_suppressed_address":"दबा हुआ ईमेल पता","account_loading":"लोड हो रहा है...","account_is_required":"आवश्यक है","account_sign_in_your_account":"दाखिल करना","account_username":"उपयोगकर्ता नाम","account_username_email_phone":"फ़ोन नंबर या ईमेल","account_password":"पासवर्ड","account_new_password":"नया पासवर्ड","account_re_enter_password":"पासवर्ड फिर से दर्ज करें","account_password_not_equal":"दो पासवर्ड बराबर नहीं हैं","account_new_password_same":"पासवर्ड मूल पासवर्ड जैसा ही है","account_forgot_your_password":"अपना कूट शब्द भूल गए?","account_reset_password":"पासवर्ड रीसेट","account_sign_in":"दाखिल करना","account_signed_in":"साइन इन किया","account_sign_up":"साइन अप करें","account_find_your_account":"अपना खाता प्राप्त करें","account_enter_your_username":"अपना फ़ोन नंबर या ईमेल दर्ज करें","account_search":"खोज","account_email_sent_tip":"आपके ईमेल पर सत्यापन कोड वाला एक ईमेल भेजा गया है:","account_phone_sent_tip":"आपके फ़ोन पर सत्यापन कोड वाला एक एसएमएस भेजा गया है:","account_email_phone_sent_tip":"सत्यापन कोड के साथ ईमेल और एसएमएस क्रमशः आपके ईमेल और फ़ोन पर भेज दिए गए हैं:","account_software_token_tip":"आपके खाते के लिए एमएफए सक्षम है। साइन इन पूरा करने के लिए, कृपया अपना डिवाइस चालू करें या देखें और TOTP टाइप करें","account_reset_your_password":"अपना पासवर्ड रीसेट करें","account_verification_code":"सत्यापन कोड","account_resend_code":"पुन: कोड भेजे","account_code_has_been_resent":"सत्यापन कोड पुनः भेजा गया है","account_password_has_been_reset":"पासवर्ड रीसेट कर दिया गया है","account_submit":"जमा करना","account_sign_up_your_account":"अपना खाता साइन अप करें","account_fill_required_fields":"नीचे आवश्यक फ़ील्ड भरें.","account_fill_optional_fields":"नीचे वैकल्पिक फ़ील्ड भरें.","account_email":"ईमेल","account_invitation":"आमंत्रण","account_invitation_code":"आमंत्रण संकेत","account_i_accept":"मुझे स्वीकार है","account_license_terms":"लाइसेंस और शर्तें","account_next":"अगला","account_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा।","account_verify_fill_optional_fields":"सत्यापित करें और वैकल्पिक फ़ील्ड भरें।","account_nickname":"उपनाम","account_gender":"लिंग","account_male":"नर","account_female":"महिला","account_not_say":"कहना नहीं","account_birthday":"जन्मदिन","account_phone_number":"फ़ोन नंबर","account_locale":"स्थानीय","account_tip_verified":"सत्यापित, साइन इन हो रहा है...","account_verified":"सत्यापित","account_unverified":"असत्यापित","account_signed_up":"साइनअप किया","account_verify_your_identity":"अपनी पहचान सत्यापित करो","account_finish":"खत्म करना","account_signed_out":"साइन आउट","account_change_password":"पासवर्ड बदलें","account_change_email":"बदले ई - मेल","account_change_phone_number":"फ़ोन नंबर बदलें","account_sign_out":"साइन आउट","account_current_password":"वर्तमान पासवर्ड","account_re_enter_new_password":"नया पासवर्ड पुनः दर्ज करें","account_personal_information":"जानकारी","account_edit":"संपादन करना","account_reset":"रीसेट","account_greeting":"नमस्ते,","account_cancel":"रद्द करना","account_change":"परिवर्तन","account_not_set":"सेट नहीं","account_setting":"सेटिंग","account_copy_code":"कोड कॉपी करें","account_account_setting":"खाता","account_task_page":"श्रेय कार्य","account_setting_caption":"पासवर्ड बदलें/जानकारी संपादित करें","account_security":"सुरक्षा","account_want_to_join":"सम्मिलित होना चाहते हो?","account_sign_in_now":"दाखिल करना","account_changed":"बदला हुआ","account_clipboard_with_invitation_code":"आमंत्रण कोड कॉपी किया गया","account_clipboard_with_code":"कोड कॉपी किया गया","account_invitation_code_dialog_tip":"आप अपने मित्र को आमंत्रण कोड के साथ एक ईमेल या टेक्स्ट संदेश भेजेंगे:","account_available":"उपलब्ध","account_invited":"आमंत्रित","account_used":"इस्तेमाल किया गया","account_invitation_code_sent":"आमंत्रण कोड भेज दिया गया है","account_invitation_channel_required":"कम से कम एक आमंत्रण चैनल भरें","account_no_verification_code":"सत्यापन कोड प्राप्त नहीं हो सकता?","account_no_phone_number":"कोई फ़ोन नंबर नहीं?","account_sign_up_by_email":"ईमेल द्वारा साइन अप करें","account_no_email":"कोई ईमेल नहीं?","account_sign_up_by_phone_number":"फ़ोन नंबर द्वारा साइन अप करें","account_no_totp":"कोई टीओटीपी नहीं?","account_tip_no_totp":"यदि कोई टीओटीपी नहीं है, तो कृपया पहले टीओटीपी सेटअप करें","account_setup_totp":"सेटअप टीओटीपी","account_contact_information":"संपर्क जानकारी","account_delete_account":"खाता हटा दो","account_deleted":"हटाए गए","account_can_not_mfa":"मुसीबत में एमएफए?","account_set_mfa_type":"कॉन्फ़िग एमएफए","account_disable_mfa":"एमएफए अक्षम करें","account_disabled_mfa":"विकलांग एमएफए","account_sms_mfa":"एसएमएस एमएफए","account_totp_mfa":"टीओटीपी एमएफए","account_totp":"टीओटीपी","account_not_recommend":"अनुसंशित नहीं","account_oauth_sign_in_with":"{provider} के साथ साइन इन करें","account_sign_in_failed":"साइन इन करने में विफल","account_tip_oath_sign_up":"वर्तमान {provider} खाते से संबंधित ईमेल: {email} ने अभी तक कोई खाता नहीं बनाया है","account_tip_confirm_delete_account":"यह पुष्टि करने के लिए कि आप चालू खाता हटाना चाहते हैं, चालू खाता पासवर्ड दर्ज करें। (हटाए गए खाते पुनर्स्थापित नहीं किए जा सकते)","account_tip_config_mfa":"आप द्वितीयक प्रमाणीकरण के रूप में एसएमएस या समय-आधारित वन-टाइम पासवर्ड (टीओटीपी) का उपयोग करना चुन सकते हैं","account_error_can_not_enable_mfa":"एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_sms_mfa":"एसएमएस एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_totp_mfa":"टीओटीपी एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर जोड़ना होगा","account_tip_setup_totp":"नीचे दिए गए क्यूआर कोड को स्कैन करने के लिए ऑथेंटिकेटर जैसे ऐप्स का उपयोग करें या सुरक्षा टोकन जोड़ने के लिए कोड को मैन्युअल रूप से कॉपी करें","account_tip_verify_totp":"अपना TOTP सत्यापित करें","account_link_your_social_account":"अपना सोशल अकाउंट बाइंड करें","account_unlink_your_social_account":"सोशल अकाउंट अनबाइंड करें","account_tip_confirm_link":"क्या आप वाकई चालू खाते को अपने {provider} खाते से जोड़ना चाहते हैं?","account_tip_confirm_unlink":"क्या आप निश्चित रूप से अपना बाउंड {provider} खाता रद्द करना चाहते हैं?","account_tip_linking":"बंधन...","account_tip_unlinking":"खोलना...","account_linked":"अवश्यंभावी","account_unlinked":"अबाध","account_error_can_not_link_to_the_linked_account":"वर्तमान सामाजिक खाता किसी अन्य खाते से जुड़ा हुआ है","account_error_can_not_link_to_the_mismatched_email":"चालू खाता और सामाजिक खाता ईमेल पता असंगत हैं","account_error_can_not_link_before_email_verified":"सामाजिक खाते को लिंक नहीं किया जा सकता क्योंकि चालू खाता सत्यापित ईमेल से बंधा नहीं है","account_tip_confirm_verify_email_phone":"क्या अपनी पहचान सत्यापित करने के लिए चालू खाते के ईमेल और फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_tip_confirm_verify_phone":"क्या अपनी पहचान सत्यापित करने के लिए वर्तमान फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_error_1_message_60_seconds":"प्रत्येक 60 सेकंड में केवल एक एसएमएस या ईमेल भेजा जा सकता है, अन्य {delta} सेकंड प्रतीक्षा करें","account_error_10_messages_per_day":"प्रत्येक मोबाइल फोन या ईमेल 24 घंटे के भीतर केवल 10 संदेश भेज सकता है","account_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","Network Error":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","account_error_user_not_exist":"उपभोगकर्ता मौजूद नहीं","account_error_incorrect_username_or_password":"गलत उपयोगकर्ता नाम या पासवर्ड","account_error_incorrect_original_password":"ग़लत मूल पासवर्ड","account_error_incorrect_password":"गलत पासवर्ड","account_error_username_not_found":"उपयोगकर्ता नाम नहीं मिला","account_error_can_not_reset_for_no_verified":"असत्यापित खाते के लिए पासवर्ड रीसेट नहीं किया जा सकता","account_error_invalid_verification_code":"गलत सत्यापन कोड, कृपया पुनः प्रयास करें","account_error_expired_verification_code":"सत्यापन कोड समाप्त हो गया, कृपया पुनः प्रयास करें","account_error_password_not_long_enough":"पासवर्ड पर्याप्त लंबा नहीं है","account_error_attempt_limit_exceeded":"प्रयास की सीमा पार हो गई, कृपया कुछ समय बाद प्रयास करें।","account_error_password_attempts_exceeded":"पासवर्ड प्रयास पार हो गए.","account_error_invalid_phone_number_format":"अमान्य फ़ोन नंबर प्रारूप","account_error_no_cell_phone_prefix":"कृपया फ़ोन नंबर के लिए उपसर्ग चुनें","account_error_username_already_exists":"उपयोगकर्ता नाम पहले से ही मौजूद है","account_error_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा","account_error_inactive_code":"आमंत्रण कोड कोई सक्रिय कोड नहीं है","account_error_non_existent_code":"आमंत्रण कोड अस्तित्वहीन है","account_error_unexpected":"अप्रत्याशित त्रुटि","account_error_can_not_change_email_before_phone_bound":"फ़ोन नंबर बाध्य होने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_email_before_unbound_social_account":"सोशल अकाउंट को अनबाइंड करने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_phone_before_email_bound":"ईमेल बाइंड होने से पहले फ़ोन नंबर नहीं बदला जा सकता","account_error_can_not_change_email_phone_with_mfa_enabled":"एमएफए को अक्षम करने से पहले ईमेल या मोबाइल फोन नंबर नहीं बदला जा सकता","account_error_not_supported_yet":"मौजूदा समर्थित नहीं है","account_error_same_email":"नया ईमेल पता मूल ईमेल पते के समान नहीं हो सकता","account_error_same_phone":"नया फ़ोन नंबर मूल फ़ोन नंबर के समान नहीं हो सकता","account_error_email_not_exists":"ईमेल पता मौजूद नहीं है","account_error_email_already_exists":"दिए गए ईमेल वाला एक खाता पहले से मौजूद है।","account_error_phone_already_exists":"दिए गए फ़ोन नंबर वाला एक खाता पहले से मौजूद है।","account_error_mfa_token_mismatch":"सॉफ़्टवेयर टोकन कोड बेमेल","account_error_recaptcha_not_loaded":"नेटवर्क की दिक्कत है. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_recaptcha_validation_failed":"ReCAPTCHA सत्यापन विफल रहा. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_sign_in_in_progress":"लंबित साइन-इन प्रयास पहले से ही प्रगति पर है","account_field_range":"{0}-{1} वर्णों का इनपुट सीमित करें","account_field_only_alphanumeric":"केवल अक्षरांकीय का समर्थन करता है","account_field_only_alphanumeric_and_symbol":"केवल अक्षरांकीय और प्रतीकों का समर्थन करता है","account_field_only_chinese_alphanumeric_space_underline":"केवल अल्फ़ान्यूमेरिक, स्पेस, अंडरस्कोर का समर्थन करता है","account_field_prefix_without_number_space":"पहला अक्षर कोई संख्या या स्थान नहीं हो सकता","account_field_suffix_without_space":"रिक्त स्थान के साथ समाप्त नहीं हो सकता","account_field_without_repeat_space":"एक पंक्ति में एकाधिक रिक्त स्थान का उपयोग नहीं किया जा सकता","account_field_can_not_only_alphanumeric":"आप केवल अक्षरों या संख्याओं का उपयोग नहीं कर सकते","account_field_must_have_number_characters":"संख्या अक्षर होने चाहिए","account_field_verification_code":"सत्यापन कोड छह अंकों का होना चाहिए","account_field_invitation_code":"आमंत्रण कोड अक्षरांकीय होना चाहिए","account_field_phone_number":"अमान्य फ़ोन नंबर प्रारूप","account_invalid_email_format":"अमान्य ईमेल प्रारूप","account_sign_out_confirm":"क्या आप निश्चित रूप से साइन आउट करना चाहते हैं? इससे सभी कार्य रुक जायेंगे.","account_sign_out_anyway":"फिर भी साइन आउट करें","account_signing_out":"भाग रद्द करना...","account_request_save_settings":"सेटिंग्स सहेजी नहीं गई हैं. साइन आउट करने से पहले आपको परिवर्तन सहेजने होंगे.","pay":"वेतन","pay_with_credit":"डाउनलोड में तेजी लाने के लिए भुगतान करें. लगभग {0} क्रेडिट की आवश्यकता है","pay_with_credit_payed":"तेज़ हो रहा है. अभी भी लगभग {0} क्रेडिट की आवश्यकता है","create_payment":"भुगतान बनाएँ","pay_target":"लक्ष्य","pay_for_torrent":"{0} के लिए भुगतान करें","your_subid":"आपकी उपआईडी","your_credits":"आपका श्रेय","pay_point_for_data":"{1} डेटा के लिए {0} प्वाइंट का भुगतान करें","auto_renew":"स्वतः नवीनीकरण सक्षम करें","transaction_details":"लेनदेन का विवरण","transaction_id":"पहचान","transaction_payer":"भुगतानकर्ता","transaction_payee":"आदाता","transaction_category":"वर्ग","transaction_changed_amount":"परिवर्तित राशि","transaction_meta":"मेटा","transaction_status":"दर्जा","transaction_creation_time":"रचना समय","receipt_code":"रसीद कोड","transfer_amount":"स्थानांतरण राशि","code_the_receipt_code":"नीचे दिए गए रसीद कोड को भुगतानकर्ता के पास कॉपी करें","fill_the_receipt_code":"प्राप्तकर्ता द्वारा प्रदान किया गया भुगतान कोड भरकर स्थानांतरण करें","expense":"व्यय","copied":"कॉपी किया गया","transfer":"स्थानांतरण","receive":"पाना","copy":"प्रतिलिपि","withdraw_fund":"फंड निकालना","category_paydata_payer":"डेटा की लागत","category_paydata_payee":"डेटा की आय","category_transfer":"स्थानांतरण","category_bonus":"बक्शीश","category_recharge":"फिर से दाम लगाना","status_pending":"लंबित","status_completed":"पुरा होना","status_finish":"खत्म करना","status_failed":"असफल","tip_invalid_receiver":"अमान्य रिसीवर कोड","tip_invalid_amount":"क्रेडिट राशि 0-1000 की सीमा में फ़्लोट होनी चाहिए (न्यूनतम सटीकता 0.001 है)","credit_get_more":"अधिक क्रेडिट प्राप्त करें","credit_no_data":"कोई डेटा मौजूद नहीं","credit_loading":"लोड हो रहा है...","credit_not_enough_amount":"पर्याप्त क्रेडिट नहीं","credit_amount_not_enough":"पर्याप्त क्रेडिट नहीं","credit_payee_not_exist":"आदाता मौजूद नहीं है","credit_invalid_amount":"अमान्य क्रेडिट राशि","credit_can_not_transfer_to_yourself":"अपने आप को स्थानांतरित नहीं किया जा सकता","credit_latest":"नवीनतम","credit_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","add_subtitles":"उपशीर्षक जोड़ें","open_file":"खुली फाइल...","advanced_options":"उन्नत विकल्प","title":"शीर्षक","location":"जगह","subtitle_file":"उपशीर्षक फ़ाइल","unsupported_subtitle_type":"{0} का फ़ाइल प्रकार समर्थित उपशीर्षक प्रकार नहीं है","not_default_player":"डिफ़ॉल्ट वीडियो प्लेयर सेट नहीं है","this_is_an_audio_file":"यह एक ऑडियो फ़ाइल है","the_added_subtitle_already_exists":"जोड़ा गया उपशीर्षक पहले से मौजूद है","stop_stream_player":"स्ट्रीमिंग मीडिया समाप्त कर दिया गया क्योंकि कार्य रोक दिया गया था या हटा दिया गया था","stop_player":"फ़ाइल हटा दिए जाने के कारण प्लेयर समाप्त कर दिया गया था","playing_timeout_hint":"प्रतीक्षा का समय समाप्त हो गया। कृपया कार्य की जाँच करें","autoplay_hint":"ऑटोप्ले आपके ब्राउज़र द्वारा अवरुद्ध किया जा सकता है. यदि प्लेयर नहीं चल रहा है, तो जारी रखने के लिए स्क्रीन पर क्लिक करने का प्रयास करें","remove_playing_confirm":"{0} अभी भी चल रहा है, इसे हटा दें तो प्लेयर बंद हो जाएगा। क्या आप निश्चित रूप से इसे हटा देंगे?","unsupported_in_browser":"ब्राउज़र मोड में अभी तक समर्थित नहीं है","client":"ग्राहक","warning":"चेतावनी","enable":"सक्षम","disable":"अक्षम करना","auto":"ऑटो","encrypt_connection":"कनेक्शन एन्क्रिप्ट करें","encrypted_connection":"एन्क्रिप्टेड कनेक्शन","non_encrypted_connection":"गैर-एन्क्रिप्टेड कनेक्शन","connected_wires_not_disconnect":"जुड़े हुए तारों को नहीं काटा जाएगा","audio":"ऑडियो","video":"वीडियो","image":"छवि","subtitle":"उपशीर्षक","zip":"ज़िप","text":"मूलपाठ","unknown":"अज्ञात","add":"जोड़ना","undo":"पूर्ववत","backup":"बैकअप","not_default_app":"${displayName} टोरेंट और मीडिया के लिए आपका डिफ़ॉल्ट ऐप नहीं है, क्या आप इसे डिफ़ॉल्ट के रूप में सेट करना चाहते हैं?","dont_show_again":"दोबारा मत दिखाना","go_to_settings":"सेटिंग्स में जाओ","about_alphabiz":"लगभग ${displayName}","last_check_at":"आखिरी बार जांचें","update_channel":"चैनल अपडेट करें","check_for_update":"अपडेट के लिये जांचें","checking_for_update":"अद्यतन के लिए जाँच की जा रही है...","no_update_available":"कोई अद्यतन उपलब्ध नहीं है","update_available":"उपलब्ध अद्यतन","update_now":"अभी अद्यतन करें","update_later":"बाद में अपडेट करें","click_to_update":"डाउनलोड और अपडेट करने के लिए अभी अपडेट करें बटन पर क्लिक करें","update_failed":"भार बढ़ाना विफल हुवा","update_failed_message":"अद्यतन करते समय एक त्रुटि उत्पन्न हुई:","check_shasum_failed":"इंस्टॉलर के लिए सत्यनिष्ठा की जाँच करने में विफल","downloading_update":"अद्यतन स्थिति डाउनलोड हो रही है...","ready_to_update":"अद्यतन करने के लिए तैयार","restart_to_update":"अपडेट डाउनलोड हो गया है. ${displayName} कुछ क्षण के लिए अपडेट करने के लिए बाहर निकल जाएगा।","already_latest":"वर्तमान संस्करण({0}) पहले से ही नवीनतम है","update_timeout":"अपडेट टाइमआउट","no_available_release":"कोई उपलब्ध रिलीज़ नहीं","no_available_installer":"कोई उपलब्ध इंस्टॉलर नहीं","feedback":"प्रतिक्रिया","select_a_type":"एक प्रकार चुनें","category":"वर्ग","select_a_category":"एक श्रेणी चुनें","require_title":"शीर्षक आवश्यक है","describe_your_problem":"अपनी समस्या का वर्णन करें","report_a_bug":"एक बग रिपोर्ट करो","request_a_new_feature":"एक नई सुविधा का अनुरोध करें","download_or_upload":"डाउनलोड अपलोड","others":"अन्य","submit_with_system_info":"सिस्टम जानकारी के साथ सबमिट करें","submit_feedback":"प्रतिपुष्टि दें","tweet_us":"हमें ट्वीट करें","tweet_too_long":"ट्वीट बहुत लंबा है","delete_characters":"कृपया कम से कम {0} अक्षर हटाएं","rest_characters":"आप {0} अधिक वर्ण इनपुट कर सकते हैं","update_alphabiz":"अद्यतन ${displayName}","current_version":"वर्तमान संस्करण","cancel_update":"अद्यतन रद्द करें","slow_download_speed":"डाउनलोड बहुत धीमा है","slow_download_speed_caption":"इंस्टॉलर डाउनलोड अब बहुत धीमा है. कृपया नेटवर्क स्थिति जांचें","update_canceled":"अद्यतन रद्द किया गया","current_version_release_time":"वर्तमान संस्करण का रिलीज़ समय","expired_app":"${displayName} समाप्त हो गया","version_out_of_date":"संस्करण पुराना है","have_to_update":"${displayName} का संस्करण पुराना हो चुका है। कुछ प्रोटोकॉल या एपीआई अप्रचलित हैं। जारी रखने से पहले आपको ${displayName} अपडेट करना होगा।","exit_alphabiz":"${displayName} से बाहर निकलें","exit_and_update":"बाहर निकलें और अपडेट लागू करें","new_version_hint":"नया संस्करण उपलब्ध है","no_new_version":"कोई नया संस्करण उपलब्ध नहीं है","current_is_latest":"वर्तमान संस्करण पहले से ही नवीनतम है","click_to_check_update":"अपडेट की जांच के लिए [अद्यतन की जांच करें] बटन पर क्लिक करें","download_latest_version_from_website":"कृपया नवीनतम संस्करण डाउनलोड करने के लिए आधिकारिक वेबसाइट पर जाएँ","to_the_website":"वेबसाइट के लिए","network_diagnotic":"नेटवर्क डायग्नोस्टिक","diagnotic":"डायग्नोस्टिक","click_to_check":"जांचने के लिए क्लिक करें","click_to_check_again":"दोबारा जांचने के लिए क्लिक करें","checking":"चेकिंग","online":"ऑनलाइन","offline":"ऑफलाइन","dns_look_up":"डीएनएस लुकअप","error":"गलती","aws_service":"एडब्ल्यूएस सेवा","network_pings":"नेटवर्क पिंग","not_found":"नहीं मिला","packet_loss":"पैकेट का नुकसान","official_site":"आधिकारिक साइट","download_test":"परीक्षण डाउनलोड करें","test_task":"परीक्षण कार्य {0}","download_failed":"डाउनलोड विफल","second_spend":"{0} का खर्च","open_default_player_failed":"डिफ़ॉल्ट प्लेयर खोलने में विफल","copied_to_clipboard":"क्लिपबोर्ड पर नकल","go_to":"के लिए जाओ","region_not_available":"क्षेत्र उपलब्ध नहीं है","region_not_available_message":"क्षमा मांगना! आपका क्षेत्र इस ऐप का उपयोग करने के लिए उपलब्ध नहीं है। यह ऐप {0} सेकंड के बाद बंद हो जाएगा","confirm":"पुष्टि करना","no_available_result":"कोई परिणाम उपलब्ध नहीं","invalid_password_format":"अवैध पासवर्ड प्रारूप","invalid_password_format_same":"पासवर्ड मूल पासवर्ड जैसा ही है","error_password":"पासवर्ड त्रुटि","keychain_setting":"कीचेन","setting_description":"क्लाउड स्टोरेज: मुख्य डेटा को क्लाउड में सेव करें।\\nपासवर्ड बदलें: मीडिया लाइब्रेरी कुंजी के लिए पासवर्ड बदलें।\\nनिमोनिक: कुंजियाँ उत्पन्न करने और पुनर्स्थापित करने की एक वैकल्पिक विधि।\\nस्थानीय कुंजी आयात करें: स्थानीय रूप से सहेजी गई कुंजी को मीडिया लाइब्रेरी में आयात करें।\\nनिर्यात कुंजी: वर्तमान मीडिया लाइब्रेरी डेटा को स्थानीय या क्लाउड पर सहेजता है।\\nक्लाउड के लिए बैकअप कुंजी: बैकअप के लिए वर्तमान मीडिया लाइब्रेरी डेटा को क्लाउड पर अपडेट करें।","refresh_status":"अद्यतन स्थिति","confirm_import_key":"आयात कुंजी की पुष्टि करें","confirm_update_cloud_key":"आपके पास पहले से ही क्लाउड में एक कुंजी है। कुंजी को अद्यतन करने से मूल कुंजी अधिलेखित हो जाएगी. क्या आप वाकई क्लाउड में संग्रहीत कुंजी को अपडेट करना चाहते हैं?","export_key_with_cloud":"क्लाउड में संग्रहीत लाइब्रेरी कुंजी को निर्यात करने के लिए आपके द्वारा सेट किया गया स्वतंत्र पासवर्ड दर्ज करें, और अनलॉक पासवर्ड द्वारा कुंजी फ़ाइल को लॉक करें","store_cloud_key_prompt_password":"लाइब्रेरी कुंजी को क्लाउड में संग्रहीत करने के लिए एक स्वतंत्र पासवर्ड दर्ज करें","update_cloud_key_prompt_password":"लाइब्रेरी कुंजी को एन्क्रिप्ट करने के लिए एक स्वतंत्र पासवर्ड सेट करें और फिर इसे क्लाउड पर अपडेट करें","enable_cloud_storage_prompt_password":"क्लाउड में संग्रहीत कुंजी के लिए एक पासवर्ड सेट करें, जिसके माध्यम से आप क्लाउड से कुंजी पुनः प्राप्त कर सकते हैं","input_unlock_password":"अनलॉक पासवर्ड सेट करें","export_local_prompt_password":"कृपया अपनी कुंजी फ़ाइल को एन्क्रिप्ट करने के लिए एक अनलॉक पासवर्ड सेट करें। हम आपके लिए यह पासवर्ड सेव नहीं करेंगे, इसलिए यदि आप अपना पासवर्ड खो देते हैं, तो आप अपनी लाइब्रेरी कुंजी को अनलॉक नहीं कर पाएंगे","require_unlock_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","require_independent_password":"कुंजी को क्लाउड में संग्रहीत करने के लिए स्वतंत्र पासवर्ड दर्ज करें","import_local_prompt_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","select_encrypt_mode":"एन्क्रिप्शन मोड का चयन करें","update_cloud_key":"क्लाउड में संग्रहीत कुंजी को अद्यतन करें","backup_to_cloud":"लाइब्रेरी कुंजी को क्लाउड पर बैकअप करें","save_local":"लाइब्रेरी कुंजी को स्थानीय एन्क्रिप्टेड फ़ाइल के रूप में सहेजें","create_new_key":"एक नई लाइब्रेरी कुंजी बनाएं","creating_lib_key":"लाइब्रेरी कुंजी बनाई जा रही है...","loading_lib_key":"लाइब्रेरी कुंजी लोड हो रही है...","failed_to_create_lib_key":"लाइब्रेरी कुंजी बनाने में विफल","failed_to_load_lib_key":"लाइब्रेरी कुंजी लोड करने में विफल","import_local_key":"कुंजी को स्थानीय रूप से आयात करें","import_lib_key_from_local":"लाइब्रेरी कुंजी को स्थानीय रूप से आयात करें","import_from_cloud":"क्लाउड से लाइब्रेरी कुंजी आयात करें","create_or_import_key":"लाइब्रेरी कुंजी बनाएं या आयात करें","create_or_import_key_desc":"लाइब्रेरी कुंजी एक स्वतंत्र कुंजी है जिसका उपयोग विकेंद्रीकृत डेटाबेस के साथ सामग्री लाने और प्रकाशित करने के लिए किया जाता है।","store_your_lib_key":"अपनी लाइब्रेरी कुंजी संग्रहीत करें","export_cloud_key":"क्लाउड से कुंजी निर्यात करें","export_current_key":"वर्तमान कुंजी निर्यात करें","change_password":"पासवर्ड बदलें","enable_cloud_storage":"क्लाउड स्टोरेज सक्षम करें","disable_cloud_storage":"क्लाउड स्टोरेज अक्षम करें","disable_cloud_storage_desc":"क्लाउड स्टोरेज को अक्षम करने से क्लाउड में सहेजी गई कुंजी हट जाएगी, कृपया सुनिश्चित करें कि कुंजी स्थानीय रूप से सहेजी गई है","sync_at":"यहां सिंक करें: {time}","cloud_storage_enabled":"{storage} के साथ किचेन को सिंक करें","cloud_storage_disabled":"क्लाउड स्टोरेज अक्षम किया गया","saved_locally":"स्थानीय स्तर पर सहेजा गया","export_key":"कुंजी फ़ाइल निर्यात करें","cloud_independent_password":"क्लाउड स्वतंत्र पासवर्ड","key_file_unlock_password":"कुंजी फ़ाइल अनलॉक पासवर्ड","re_enter_unlock_password":"अनलॉक पासवर्ड पुनः दर्ज करें","independent_password_not_enabled":"वर्तमान पासवर्ड अल्फ़ाबिज़ खाता पासवर्ड है (कोई स्वतंत्र पासवर्ड सेट नहीं है)","use_cognito_hash":"अल्फ़ाबिज़ खाता पासवर्ड का उपयोग करें","use_independent_password":"स्वतंत्र पासवर्ड का प्रयोग करें","keychain_lib":"पुस्तकालय कुंजी","loading_keychain_state":"चाबी का गुच्छा लोड हो रहा है...","backing_up":"समर्थन करना...","backup_current_key":"क्लाउड पर वर्तमान कुंजी का बैकअप लें","cloud_lib_key_not_existed":"लाइब्रेरी कुंजी क्लाउड में मौजूद नहीं है","open_keychain_file":"किचेन फ़ाइल खोलें","confirm_open_abk":"क्या आप एबीके फ़ाइल खोलना चाहते हैं?","use_the_key":"कुंजी का प्रयोग करें","backup_the_key":"क्लाउड पर कुंजी का बैकअप लें","keychain_data_does_not_exist":"किचेन डेटा मौजूद नहीं है","timeout of 0ms exceeded":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","XhrError":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","payer credit amount is not enough":"पर्याप्त क्रेडिट नहीं","payee does not exist":"आदाता मौजूद नहीं है","block_list_manage":"ब्लॉक सूची प्रबंधन","blocked_users":"रोके गए उपयोगकर्ता","blocked_channels":"अवरुद्ध चैनल","unblock_user":"उपयोगकर्ता को अनब्लॉक करें","unblock_channel":"चैनल अनब्लॉक करें","no_blocked_user":"कोई अवरुद्ध उपयोगकर्ता नहीं","no_blocked_channel":"कोई अवरुद्ध चैनल नहीं","field_required":"{0} आवश्यक है","setting":"सेटिंग","unknown_media":"अज्ञात मीडिया","settings_button_visible":"बटन दृश्यमान","settings_setting":"सेटिंग","settings_playback_rate":"प्लेबैक दर","settings_subtitle":"उपशीर्षक","settings_pip":"रंज","settings_fullscreen":"पूर्ण स्क्रीन","settings_subtitle_options":"उपशीर्षक विकल्प","settings_normal":"सामान्य","settings_italic":"तिरछा","settings_lighter":"लाइटर","settings_bolder":"बोल्डर","settings_small":"छोटा","settings_large":"बड़ा","about":"के बारे में","services":"सेवाएं","hide":"छिपाना","hide_others":"दूसरों को छुपाएं","show_all":"सब दिखाएं","quit":"छोड़ना","edit":"संपादन करना","redo":"फिर से करना","cut":"काटना","paste":"पेस्ट करें","select_all":"सबका चयन करें","view":"देखना","reload":"पुनः लोड करें","toggle_full_screen":"संपूर्ण स्क्रीन टॉगल करें","toggle_developer_tools":"डेवलपर टूल टॉगल करें","window":"खिड़की","minimize":"छोटा करना","bring_all_to_front":"सभी को सामने लाओ","help":"मदद","github_repo":"जीथब रेपो","issues":"समस्याएँ","learn_more":"और अधिक जानें","learn_spelling":"वर्तनी सीखें","lookup_selection":"ऊपर देखो \\"{selection}\\"","search_with_google":"गूगल से खोजें","save_as":"के रूप रक्षित करें","save_image":"चित्र को सेव करें","save_image_as":"इमेज को इस तरह सेव कीजिए ...","copy_link":"लिंक की प्रतिलिपि करें","save_link_as":"लिंक इस रूप में सेव करें ...","copy_image":"नकल छवि","copy_image_as":"छवि को इस रूप में कॉपी करें...","copy_image_address":"छवि पता कॉपी करें","download_complete":"डाउनलोड पूर्ण","download_complete_message":"{0} डाउनलोड हो गया है","is_running":"{0} चल रहा है","open":"{0} खोलें","launch_problem":"लॉन्च समस्या","ask_clear_data":"ऐसा लगता है कि आप {0} लॉन्च करने का प्रयास कर रहे हैं लेकिन कई बार विफल रहे।\\nक्या आप सभी ऐप डेटा साफ़ करना चाहते हैं और बाद में लॉन्च करने का प्रयास करना चाहते हैं?","launch_directly":"सीधे लॉन्च करें","clear_all_data":"सभी डेटा साफ़ करें","ask_clear_confirm":"यह सभी कॉन्फ़िगरेशन, लॉग और उपयोगकर्ता डेटा हटा देगा!\\nइसके बाद आपको {0} को फिर से लॉन्च करने की आवश्यकता हो सकती है।\\nक्या आप निश्चित रूप से डेटा साफ़ करना चाहते हैं?","confirm_launch":"नहीं, सीधे लॉन्च करें","confirm_clear":"हां, सारा डेटा साफ़ करें"}')},"88f5":function(e,t,a){"use strict";a("0f74")},"899b5":function(e,t,a){"use strict";a("81a4")},"8a63":function(e,t,a){"use strict";a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return p})),a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"e",(function(){return g})),a.d(t,"g",(function(){return f})),a.d(t,"h",(function(){return b})),a.d(t,"a",(function(){return y}));a("a1c1"),a("7a76");var n=a("d7df"),o=a("5584"),i=a("1926"),r=a("8750"),s=a("f680"),l=a("84f6"),c=a("d310"),d=a("d558");setTimeout((()=>{n["a"].on("torrent_list",(e=>{l["a"].updateTaskList(e)})),n["a"].on("torrent_delete",(e=>{console.log("deleted",e),l["a"].onDeleteTask(e)})),n["a"].on("torrent_error",(e=>{console.log("torrent error",e);const t=e.torrent||{},a=t.postTitle||t.name||t.infoHash||e.token;s["a"].create({message:i["b"].t("torrent_error")+" "+a,caption:i["b"].t(e.message),group:e.message})}))}),1e3);const u=()=>{const e=o["a"].getters.settings;return{downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}};function _(e,t){const a="string"===typeof t?t:(null===t||void 0===t?void 0:t.path)||(null===t||void 0===t?void 0:t[0].path);if(!a)return;let o=0;const i=a.startsWith("ab://")?a.replace(/^ab:\/\//,(()=>"alphabiz://alphabiz-task-"+o++)):a;n["a"].emit("download_torrent",{type:e,url:i,file:i,token:crypto.randomUUID(),...u()})}function p(e,t){console.log("pause torrent",e);const a=l["a"].taskList.downloaded.find((t=>t.infoHash===e));if(!a)return n["a"].emit("pause_torrent",e);const o=e=>{var a,n;const o=t.dp$expenseHashMapper[e];if(!o)return;const i=null===(a=t.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>o.includes(e))),r=null===(n=t.dp$expenseStatusMapper.COMPLETED)||void 0===n?void 0:n.filter((e=>o.includes(e)));i&&i.forEach((e=>{console.log("dp$cancel from pauseTorrent",e),t.dp$cancel(e).catch((t=>{console.log("dp$cancel failed:",e,t.code,t.message)}))})),r&&r.forEach((e=>{console.log("dp$confirm from pauseTorrent",e),t.dp$confirm(e)}))};return r["a"].create({title:i["b"].t("pause"),message:i["b"].t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("pause")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{try{o(e)}catch(t){console.log("dp$pause failed:",t.message)}n["a"].emit("pause_torrent",e)}))}function m(e=!1){if(e&&!o["a"].getters.settings.autoStartUnfinished&&!Object(d["a"])())return console.log("Skip auto download all");const t=l["a"].taskList.downloading.filter((t=>(!e||!t.pausedByUser)&&t.paused)).sort(((e,t)=>{const a=e.createdTime-t.createdTime;return isNaN(a)?0:a}));return console.log("[DownloadAll] resume",t),n["a"].emit("resume-all",t),new Promise((e=>{n["a"].once("resume-all",e)}))}function h(e=!1){n["a"].emit("pause_all",e),setTimeout((()=>{n["a"].emit("pause_all",e)}))}function g(e=!1){const t=l["a"].taskList.uploading;if(!t.length)return;const a=t.filter((e=>!e.infoHash&&!e.isPreload&&!e.files));if(a.length)return e&&(a.forEach((e=>{n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)),r["a"].create({message:i["b"].t("some_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{a.forEach((e=>{e.infoHash||n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)}));n["a"].emit("pause_all_uploading",e)}function f(e,t){const a=Array.isArray(e)?e:[e],o=a.map((e=>e?"string"===typeof e?e:"string"===typeof e.path?e.path:null:null)).filter((e=>e));if(!o.length&&Object(c["isElectron"])())throw new Error(`Cannot upload file ${e}: cannot get file path`);n["a"].emit("seed_torrent",{file:o,token:t||crypto.randomUUID(),...u()})}function b(e=!1){if(!l["a"].taskList.downloaded)return 0;const t=l["a"].taskList.downloaded.filter((t=>(!e||!t.pausedByUser)&&(!t.missAllFile&&!t.missFile)));if(!t.length)return console.log("skip upload all since nothing to upload"),l["a"].taskList.downloaded.length;const a=l["a"].taskList.downloaded.length-t.length;return n["a"].emit("seed_torrents",t),a}async function y(){o["a"].getters.settings.autoStartUnfinished?"signedIn"===o["a"].state.account.authState?(console.log("prepare download all"),await m(!0),b(!0)):console.log("User is not logged in",o["a"].getters.accountUserInfo.authState):console.log("User disabled auto restart")}},"8dc9":function(e,t,a){},"8f79":function(e,t,a){},"8fd4":function(e,t,a){},9:function(e,t){},"91fe":function(e,t,a){},9256:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},9344:function(e,t,a){"use strict";a("1278")},9369:function(e,t,a){"use strict";a.d(t,"c",(function(){return r})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return c}));a("7a76"),a("de6c"),a("f200");var n=a("5584"),o=a("36a1"),i=a("072b");function r(e){return!!e||this.$t("account_is_required")}function s(e){return i["d"].call(this,e)}function l(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function c(e,t={}){const{mode:a,password:o,keyName:i}=t,r=await n["a"].dispatch("syncKeychainState");r[i]?await n["a"].dispatch("updateKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}):await n["a"].dispatch("createKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}),await n["a"].dispatch("syncKeychainState")}async function d(e,t){const a=async()=>{var e;if(!o["a"].user||null===(e=o["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=o["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t},i={lib:await a()},r=Object.keys(i).map((a=>c.call(this,i[a],{mode:e,password:t,keyName:a})));await Promise.all(r),await n["a"].dispatch("syncKeychainState")}t["b"]={beforeCreate(){if(!["StatusBanner","ChangePassword"].includes(this.$options.name))throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async keychain$changePassword(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{const t={oldPassword:{type:"password",model:"",label:this.$t("account_current_password"),rules:[r.bind(this),s.bind(this)]},password:{type:"password",model:"",label:this.$t("account_new_password"),rules:[r.bind(this),s.bind(this),e=>t.oldPassword.model!==e||this.$t("invalid_password_format_same")]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("change_password"),message:n["a"].getters.keychainState.unset?this.$t("independent_password_not_enabled"):void 0,cancel:!0,prompts:t,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.oldPassword,a.password)}))});await a.promise()};await a((async(a,o,i)=>{try{await n["a"].dispatch("changeKeychainPassword",{oldPassword:o,password:i}),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(r){e(r.message)}}))},async keychain$enableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=()=>{try{var t;if(!o["a"].user||null===(t=o["a"].user._)||void 0===t||!t.sea)throw new Error("Please login first")}catch(a){e(a.message)}};a();const i=l.call(this,this.$t("loading_keychain_state")),c=await n["a"].dispatch("syncKeychainState").finally(i.hide),u=async e=>{const t={password:{type:"password",label:this.$t("account_password"),model:"",rules:[r.bind(this),s.bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("input_independent_password"),prompts:t,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password)))});await a.promise()};if(c.hash&&c.unset){const a=async e=>{const t={};t.use_cognito_hash={color:"primary",textColor:"primary",label:this.$t("use_cognito_hash"),handler:t=>t.dialog$useLoadingState("use_cognito_hash",(()=>e(t,"cognito_hash")))},t.use_independent_password={label:this.$t("use_independent_password"),handler:t=>t.dialog$useLoadingState("use_independent_password",(()=>e(t,"independent_password")))};const a=this.$alphabiz.dialog({title:this.$t("enable_cloud_storage"),message:this.$t("enable_cloud_storage_prompt_password"),cancel:!0,ok:!1,actions:t});await a.promise()};await a((async(a,n)=>{if("independent_password"===n)await u((async(o,i)=>{try{await d.call(this,n,i),t(),o.hide(),a.hide()}catch(r){e(r.message)}}));else if("cognito_hash"===n)try{await d.call(this,n,void 0),t(),a.hide()}catch(o){e(o.message)}}))}else await u((async(a,n)=>{try{await d.call(this,"independent_password",n),t(),a.hide()}catch(o){e(o.message)}}))},async keychain$disableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{let t=5;const a=()=>({label:t?`${this.$t("disable_cloud_storage")} (${t})`:this.$t("disable_cloud_storage"),disable:!!t,color:"negative",textColor:"negative",handler:t=>t.dialog$useLoadingState("ok",e)}),n=this.$alphabiz.dialog({title:this.$t("disable_cloud_storage"),message:this.$t("disable_cloud_storage_desc"),cancel:!0,ok:a()}),o=setInterval((()=>{t>0?t-=1:clearInterval(o),n.update({ok:a()})}),1e3);await n.promise()};await a((async a=>{try{await new Promise((e=>setTimeout(e,1e3))),await n["a"].dispatch("disableKeychainCloud"),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(o){e(o.message)}}))}}}},"937c":function(e,t){e.exports={remote:{url:"https://alpha.biz/app/remote_config"},local:{type:"local",version:"default:v1",oauth:{enable:!1,providers:["Github","Twitter"]},account:{phone_number:!1},library:{show_explore:!1},update:{enable:!1}}}},"93e8":function(e,t,a){"use strict";a("981d")},9445:function(e){e.exports=JSON.parse('{"users":[{"_comment":"You should use pubkey as id here. See take-down.js for more info.","id":"a_pubkey_of_user","reason":"Serious Violation"}],"channels":[{"id":"an_id_of_channel","reason":"Copyright Disputes"}],"posts":[{"id":"an_id_of_post","reason":"Adults Only"}]}')},9572:function(e,t,a){"use strict";(function(e){a("7a76"),a("d4b5"),a("de6c");var n=a("02fe"),o=a.n(n);const i=({encryptor:t,decryptor:a,randomHex:n,pbkdf2:o})=>{const i=e=>{if(64!==e.length)throw new Error("Invalid password length")},r=(a,n)=>{const i=o(n.password,n.salt,1e3,32);return t(a,i,e.from(n.iv,"hex"))},s=(t,n)=>{const i=o(n.password,n.salt,1e3,32);return a(t,i,e.from(n.iv,"hex"))},l=(e,t)=>{i(t);const a=n(),o=n(),s=r(e,{password:t,iv:a,salt:o});return JSON.stringify({encrypted:s,salt:o,iv:a})},c=(e,t)=>{i(t);const a=JSON.parse(e),n=s(a.encrypted,{password:t,salt:a.salt,iv:a.iv});if(!n)throw new Error("password_error");return n},d=(e,t,a)=>{i(t),i(a);const n=c(e,t);return l(n,a)};return{encryptKey:l,decryptKey:c,changePassword:d}},r=i({encryptor:(e,t,a)=>{const n=o.a.AES.encrypt(e,o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return n.ciphertext.toString()},decryptor:(e,t,a)=>{try{const n=o.a.AES.decrypt(o.a.enc.Base64.stringify(o.a.enc.Hex.parse(e)),o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return o.a.enc.Utf8.stringify(n)}catch(n){return console.error(n.message),null}},pbkdf2:(e,t,a,n)=>o.a.enc.Hex.stringify(o.a.PBKDF2(e,t,{hasher:o.a.algo.SHA512,keySize:2*n/8,iterations:a})),randomHex:()=>o.a.enc.Hex.stringify(o.a.lib.WordArray.random(16))}),s=e=>o.a.SHA256(e).toString();t["a"]={encryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{epub:a,pub:n,epriv:o,priv:i}=e,l=[a,n,o,i].join(":");return r.encryptKey(l,s(t))},decryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");const a=r.decryptKey(e,s(t)),[n,o,i,l]=a.split(":"),c={epub:n,pub:o,epriv:i,priv:l};if(["epriv","epub","priv","pub"].some((e=>!c[e])))throw new Error("invalid_key");return c},changePassword:async(e,t,a)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(!a||"string"!==typeof a)throw new Error("invalid_password");return r.changePassword(e,s(t),s(a))},digestPassword:e=>{if(!e||"string"!==typeof e)throw new Error("invalid_password");return s(e)}}}).call(this,a("eb72").Buffer)},"981d":function(e,t,a){},9856:function(e,t,a){"use strict";(function(e,n){a("de6c"),a("dc89"),a("2425"),a("a1c1"),a("1af1");var o=a("025c"),i=a("4fd2"),r=a("d7df"),s=a("6422"),l=a("0f0c"),c=a("07e8"),d=a("ce6c"),u=a("5584"),_=a("c62a6"),p=a("36a1"),m=(a("80cf"),a("f039")),h=a("8a63"),g=a("0885"),f=a("09e8"),b=a("84f6"),y=a("feef"),v=a("61af"),w=a.n(v),k=a("9efe"),S=a("a449"),C=a("c5a5"),x=a("d710"),$=a.n(x),T=(a("a749"),a("b71d")),z=a("9f21"),P=a("2e22"),A=a("d884");console.log("import io CLIENT"),console.log("-import io CLIENT");const{displayName:I,protocol:q,shortProtocol:O}=$.a,E=a("d310").isElectron();E||console.warn("Warning: Torrent downloader is not impl in browser mode now");const D=()=>{const t=async function(t){console.log("[mixinBlockchainUrl] on paste",t,t.clipboardData.getData("text"));const a=t.clipboardData.getData("text");if(![q,O].some((e=>a.startsWith(e))))return;t.preventDefault();const n=await Object(C["a"])(a);n.startsWith("ab-blockchain:")&&e.handleAbBlockchain({url:n})};let a;return{mounted(){a=t.bind(this),document.body.addEventListener("paste",a)},beforeDestroy(){document.body.removeEventListener("paste",a)}}},j={mixins:[z["a"]],created(){this.$amplify.addOnAuthStateChangedListener((()=>{const e=Object(l["a"])("version");n.env.JEST_TEST||-1===e.indexOf("dev")&&"Alphabiz"===I&&(e.includes("internal")||e.includes("nightly"))&&setTimeout(this.showInternalNotice.bind(this),100)}),{once:!0})}};let N=null;t["a"]={name:"App",provide(){return{rootApp:this,io:r["a"],lib:p["a"],autoRenew:this.autoRenew,path:this.path,taskQueue:this.taskQueue,dp$source:this.dp$source}},components:{GlobalRecommend:T["a"],AboutDialog:o["a"],TaskDialog:y["a"],ApplicationBar:d["a"]},mixins:[f["a"],S["b"],D(),j],data(){return{isElectron:E,isTestEnv:!1,path:"/library",settings:null,taskQueue:[]}},computed:{shouldQueueTask(){return!!u["a"].getters.settings.forceLogin&&(!u["a"].getters.accountUserInfo||!u["a"].getters.accountUserInfo.sub)},downloadingTorrents(){return b["a"].taskList.downloading}},methods:{async resolveQueue(){if(0===this.taskQueue.length)return;const e=[],t=[],a=[];let n=null;while(this.taskQueue.length){const o=this.taskQueue.shift();switch(o.type){case"download":o.file.startsWith("file://")?a.push(o.file):t.push(o.file);break;case"upload":e.push(o.files);break;case"uploadOrPlay":n=o.file;break}}console.log(e,t,a,n);for(const o of[...new Set(e)])await this.promptUpload(o);t.length&&await this.promptDownload([...new Set(t)].join("\n")),a.length&&await this.promptDownload([...new Set(a)].join("\n")),n&&this.promptUploadOrPlay(n)},promptDownload(e,t=!1){if(console.log(e,t),!E)return;const a=e.startsWith("magnet")||e.startsWith(q)||e.startsWith(O)||e.startsWith("file://")?e:"file://"+e;if(e.startsWith("file://")&&!w.a.existsSync(e))return;if(this.shouldQueueTask)return console.log("queue download",e,t),void this.taskQueue.push({type:"download",file:a,isMagnet:t});let n=null;const o=new Promise((e=>{n=e})),i=new DataTransfer;i.setData("text/plain",a);const r=new ClipboardEvent("paste",{clipboardData:i});return console.log("dispatch paste event"),r._ab_payload_=a,r._is_magnet_=t,r._onClose=n,console.log("dispatch event"),document.body.dispatchEvent(r),o},promptUpload(e){if(this.shouldQueueTask)return console.log("queue upload",e),void this.taskQueue.push({type:"upload",files:e});let t=null;const n=new Promise((e=>{t=e}));if(console.log("upload",e),!E){const o=()=>{r["a"].emit("wt-add",e[0]),t&&t()},i=a("c620").wtClient;return i.torrents.length?this.$q.dialog({message:this.$t("remove_old_task_desc"),ok:this.$t("remove_old_task"),cancel:this.$t("cancel")}).onOk((()=>{i.torrents[0]?(i.torrents[0].destroy(),i.torrents.splice(0),o()):o()})).onCancel(t):this.$q.dialog({message:this.$t("upload_torrent"),ok:this.$t("upload")}).onOk(o).onCancel(t),n}const o=e.map((e=>e.path||e)),i=o.map((e=>`
${e}
`)).join(""),s={html:!0,style:"white-space:pre-wrap;word-break:break-all",title:this.$t("upload"),message:this.$t("ask_if_upload_file")+"
"+i,ok:this.$t("upload"),cancel:this.$t("cancel")};return o.length>1&&(s.options={type:"radio",model:"single",items:[{label:this.$t("upload_as_single_files"),value:"single"},{label:this.$t("upload_as_one_directory"),value:"directory"}]}),this.$q.dialog(s).onOk((e=>{if(console.log("upload files",e,o),"single"===e)return o.forEach((e=>{r["a"].emit("seed_torrent",{file:[e],token:e,settings:{...this.settings},trackers:u["a"].getters.settings.trackerList||[]})})),void(t&&t());const a=1===o.length?o[0]:"";r["a"].emit("seed_torrent",{file:o,token:a,settings:{...this.settings},trackers:u["a"].getters.settings.trackerList||[]}),t&&t()})).onCancel((()=>{t&&t()})),n},promptUploadOrPlay(e){if(this.shouldQueueTask)return console.log("queue uploadOrPlay",e),void this.taskQueue.push({type:"uploadOrPlay",file:e});console.log(e),this.$q.dialog({title:this.$t("upload_or_play"),message:this.$t("ask_if_upload_or_play"),options:{type:"checkbox",model:[],items:[{label:this.$t("play"),value:"play"},{label:this.$t("upload"),value:"upload"}]},ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((t=>{if(t&&(t.includes("upload")&&r["a"].emit("seed_torrent",{file:[e.path||e],token:Math.random().toString().substring(2),settings:{...this.settings},trackers:u["a"].getters.settings.trackerList||[]}),t.includes("play"))){const t={};if("string"===typeof e){const a={src:"play:///"+encodeURI(e)};console.log("play source"),t.action={type:"play_source",source:a}}else console.log("play file"),t.action={type:"play_file",file:e};this.$router.push({name:"Player",query:{rand:Math.random()},params:t})}}))},getPublicVersion(e){return Object(l["a"])(e)},async onDrop(e){const t=e.dataTransfer.getData("text");if(console.log("drop",e,t),!t&&(!e.dataTransfer.files||!e.dataTransfer.files[0]))return;e.preventDefault();const a=[...e.dataTransfer.files];console.log(a);const n=t&&!a.length;if(await Object(m["a"])(e,a,t),E&&a.length){const e=a.some((e=>!w.a.existsSync(null===e||void 0===e?void 0:e.path)));if(e)return this.$q.notify(this.$t("file_not_found"))}if(n)return this.promptDownload(t,!0);if(1===a.length){var o,r,s,l;if(Object(i["a"])((null===(o=a[0])||void 0===o?void 0:o.path)||""))return this.promptUploadOrPlay(a[0]);if(null!==(r=a[0])&&void 0!==r&&null!==(s=r.path)&&void 0!==s&&s.endsWith(".torrent"))return this.promptDownload(null===(l=a[0])||void 0===l?void 0:l.path)}if(a.length>=1){if(!E&&(a.length>1||!a[0].size))return this.$q.dialog({message:this.$t("web_mode_upload_single"),ok:this.$t("ok")});this.promptUpload([...a])}},showDisabled(){const e=this.$q.dialog({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[30]),ok:!1,cancel:!1,style:"z-index: 9999"}),t=Date.now();setInterval((()=>{const n=Math.floor((Date.now()-t)/1e3),o=30-n;e.update({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[o<0?0:o]),ok:!1,cancel:!1,style:"z-index: 9999"}),o<0&&a("b052").ipcRenderer.send("exit-app")}),1e3)},resolveUnfinishPayments(){clearTimeout(N),N=setTimeout((()=>{const e=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]"),t=u["a"].state.credits.expensesTransactions.filter((t=>"FINISH"!==t.status&&"FAILED"!==t.status&&!e.includes(t.id)));if(!t.length)return console.log("No out-of-date unfinish payments");const a=new Date;a.setDate(a.getDate()-3);const n=t.filter((e=>{const t=new Date(e.createdAt);return t{this.dp$confirm(e.id)}))}),1e4)}},beforeCreate(){if(!this.$route.path.startsWith("/library")){if(new URL(location.href).pathname.startsWith("/oauth_redirect"))return;setTimeout((()=>{console.log(this.$route.path),"/library"!==this.$route.path?this.$router.replace("/library"):console.log("Currently in library page")}),1e3)}if(E){const e=a("b052").ipcRenderer;e.once("redirect-log",((e,t)=>{a.e(11).then(a.bind(null,"44cf")).then((({default:e})=>{console.log("Should redirect to",t),e(t)}))}))}},created(){function t(e){for(const t of e){const e=this.dp$expenseHashMapper[t.infoHash];if(e)for(const t of e){const e=this.dp$expenseTxnDict[t];"PENDING"===e.status?this.dp$cancel(e.id):"COMPLETED"===e.status&&(console.log("dp$confirm from pauseAllDownloading"),this.dp$confirm(e.id))}}}if(k["a"].enable.call(this),Object(g["b"])(this),_["a"].$on("request-sign-out",(()=>{console.log("request sign out");const e=this.$alphabiz.dialog({title:this.$t("account_sign_out"),message:this.$t("account_sign_out_confirm"),ok:this.$t("account_sign_out_anyway"),cancel:this.$t("cancel")}).onOk((async()=>{r["a"].emit("user_logout"),e.hide();const a=this.$q.dialog({progress:!0,message:this.$t("account_signing_out"),persistent:!0,ok:!1});t(u["a"].getters.tasks.downloading),await Object(h["d"])(!0),await Object(h["e"])(!0),a.hide(),_["a"].$emit("confirm-sign-out")}))})),u["a"].dispatch("fetchSettings").then((e=>{if(!e.language)return;this.settings=e,console.log(e.language,this.$route.path);const t=Object(A["a"])(e.language)?e.language:"en-US";this.$i18n.locale=t,c["a"].set({system:"auto",light:!1,dark:!0}[e.darkMode]),r["a"].emit("update_torrent_settings",{uploadLimit:e.uploadSpeed,downloadLimit:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,highLevelRadix:e.payedUserShareRadix,dhtPort:e.DHTlistenPort,torrentPort:e.BTlistenPort})})),E){(async()=>{console.log("Get client geoip");const t=e["require"]("geoip-country"),a=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("Failed to get geo for",e.message)}));if(!a)return;const n=t.lookup(a);if(!n)return console.log("Failed to get geo for",a);const o=n.country,i=$.a;"blacklist"===i.register.mode&&i.register.list.includes(o)?(console.log(o,"is in black list",i.register.list),this.showDisabled()):"whitelist"!==i.register.mode||i.register.list.includes(o)?console.log("Geo",o,i.register.list,"available in mode",i.register.mode):(console.log(o,"is not in white list",i.register.list),this.showDisabled())})(),document.body.style.overflowY="hidden";const t=a("b052").ipcRenderer;t.on("open-file",((e,...t)=>{if(0!==t.length){if(1===t.length){const e=t[0];if(e.endsWith(".torrent")||e.startsWith(q+"://")||e.startsWith("magnet"))return this.promptDownload(e);if(e.startsWith(O+"://"))return this.promptDownload(e,!0);if(Object(i["a"])(e))return this.promptUploadOrPlay(e);if(e.endsWith(".abk"))return this.lib$openABK(e)}return this.promptUpload(t)}})),t.on("ask-for-associate",(()=>{this.$q.notify({message:this.$t("not_default_app"),actions:[{label:this.$t("dont_show_again"),handler:()=>u["a"].dispatch("set",{dontAskForAssociate:!0})},{label:this.$t("go_to_settings"),handler:()=>this.$router.push("/advanceSetting#bind-ports")}]})})),t.on("need-more-space",((e,{need:t,free:a})=>{Object(h["d"])(!0),u["a"].dispatch("set",{libraryPreload:!1}).then((()=>{u["a"].dispatch("fetchSettings")})),this.$q.dialog({title:this.$t("space_not_enough"),message:this.$t("need_more_space",[Object(s["a"])(t),Object(s["a"])(a),Object(s["a"])(u["a"].getters.settings.minDiskSpace)]),ok:this.$t("ok")})})),t.on("main-process-error",((e,t)=>{console.error("Main process throws error:",t.stack)})),r["a"].once("first_launch",(async()=>{const e=Object(l["a"])("version"),t=localStorage.getItem(`first-launch_${$.a.name}`);if(t===e)return console.log("[First Launch Check] Not first launch");await p["a"].whenReady,await P["a"].methods.initFilmRate(),await new Promise((e=>setTimeout(e,5e3))),this.$q.dialog({title:this.$t("set_download"),message:this.$t("set_download_desc"),ok:this.$t("go_to_settings"),cancel:this.$t("not_now")}).onOk((()=>{this.$router.replace("/basicSetting?highlight=download-directory")})).onDismiss((()=>{console.log("Dismiss"),localStorage.setItem(`first-launch_${$.a.name}`,e)}))})),setTimeout((()=>{t.send("main-window-ready")}),2e3)}},mounted(){u["a"].getters.accountUserInfo&&u["a"].getters.accountUserInfo.sub||r["a"].emit("user_logout"),(n&&n.env.TEST_EMAIL_DOMAIN||document.cookie.includes("TestEnv"))&&(this.isTestEnv=!0,E?(a("b052").ipcRenderer.send("enable_devtools"),u["a"].dispatch("fetchSettings")):u["a"].dispatch("set",{disableDevTools:!1}).then((()=>{u["a"].dispatch("fetchSettings")}))),["dragleave","drop","dragenter","dragover"].forEach((e=>{document.getElementById("q-app").addEventListener(e,(e=>{e.preventDefault()}))})),_["a"].$on("update-authstate",(e=>{"signedIn"===e&&(console.log("Signed in. Resolve queue."),this.resolveQueue())})),document.body.addEventListener("drop",this.onDrop)},beforeDestroy(){document.body.removeEventListener("drop",this.onDrop)},watch:{isTestEnv(e){window.isTestEnv=e},"$store.state.credits.expensesTransactions"(){this.resolveUnfinishPayments()},"$store.state.account.authState"(e,t){if("signedOut"!==e||t&&"signedIn"!==t||(this.$route.path.includes("/library")&&(this.$root.$emit("navigate-to"),this.$router.push("/library")),u["a"].getters.settings.forceLogin&&this.$amplify.showSignedOutDialog()),"signedIn"===e){if(console.log('dp$address: io.emit("set_user")',this.dp$address),r["a"].emit("set_user",{user:u["a"].state.account.nickname,sub:this.dp$address}),p["a"].whenReady.then((()=>{console.log("all ready",this.taskQueue)})),u["a"].getters.shouldDisableTasks)return;r["a"].emit("user_login")}},downloadingTorrents(e,t){if("Player"!==this.$route.name&&!this.$route.path.startsWith("/library")&&e.length>t.length){const a=t.map((e=>e.origin||e.infoHash));let n=!1;for(const t of e){const e=t.origin||t.infoHash;if(!a.includes(e)){if(t.fromPost)return;n=!0}}if(n){const e="/downloader?currentTab=downloading";if(this.$router.currentRoute.fullPath===e)return;this.$router.push(e)}}}}}}).call(this,a("0ee4"),a("28d0"))},9910:function(e,t,a){},9992:function(e,t,a){"use strict";a("603c")},"9a08":function(e,t,a){"use strict";t["a"]=["# Terms of Service TESTING","","## 1. Introduction","",'Welcome to Use Alphabiz App (the "App"). The App is operated by Alphabiz Team ("Alphabiz" or "we"). This document – the terms of service – is an agreement between you, the beloved user, and Alphabiz. It\'s referred to as the "Terms" or the "Agreement".',"These Terms govern your use of the App and this App only. The Terms neither relate to any other Alphabiz application, service or property nor your use of any other Alphabiz application, service or property. For example, these Terms don't govern your use of Alphabiz App.","","## 2. Agreement to the Terms","","Terms of service agreements are contracts. That means that this Agreement is a contract between you and Alphabiz for the limited purpose of laying out what our respective rights and obligations are with respect to Alphabiz App.","If there's something in these Terms you don't agree with or don't understand, please don't use the App. By accessing or using the App, you signal your agreement with and consent to the Terms. By accessing or using any Application or Service you also represent that you have the legal authority to accept the Terms on behalf of yourself and any party you represent in connection with your use of any Application or Service.","","Unless otherwise agreed to in writing with Alphabiz, your use of any Application or Service will always be subject to, at a minimum, the terms and conditions set out in this document.","","## 3. DISCLAIMER OF WARRANTIES","","TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ALPHABIZ OFFERS THE APP ON AN AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE APPLICATIONS OR SERVICES, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. ALPHABIZ DOES NOT WARRANT THAT THE FUNCTIONS OR CONTENT CONTAINED ON THE APPLICATION OR SERVICES WILL BE ERROR-FREE, THAT DEFECTS WILL BE CORRECTED, OR THAT ALPHABIZ'S SERVERS ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. ALPHABIZ DOES NOT WARRANT OR MAKE ANY REPRESENTATION REGARDING USE OR THE RESULT OF USE OF THE CONTENT IN TERMS OF ACCURACY, RELIABILITY, OR OTHERWISE.","","## 4. LIMITATION OF LIABILITY","",'EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW AND THEN ONLY TO THAT EXTENT, IN NO EVENT WILL ALPHABIZ, ITS EMPLOYEES, OFFICERS, DIRECTORS, AFFILIATES OR AGENTS ("THE ALPHABIZ PARTIES") BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY INCIDENTAL, DIRECT, INDIRECT, PUNITIVE, ACTUAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY OR OTHER DAMAGES, INCLUDING WITHOUT LIMITATION, LOSS OF REVENUE OR INCOME, LOST PROFITS, PAIN AND SUFFERING, EMOTIONAL DISTRESS, COST OF SUBSTITUTE GOODS OR SERVICES, OR SIMILAR DAMAGES SUFFERED OR INCURRED BY YOU OR ANY THIRD PARTY THAT ARISE IN CONNECTION WITH THE APPLICATIONS OR SERVICES (OR THE TERMINATION THEREOF FOR ANY REASON), EVEN IF THE ALPHABIZ PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.',"","THE ALPHABIZ PARTIES SHALL NOT BE RESPONSIBLE OR LIABLE WHATSOEVER IN ANY MANNER FOR ANY CONTENT POSTED ON THE APP (INCLUDING CLAIMS OF INFRINGEMENT RELATING TO CONTENT POSTED ON THE APPLICATIONS OR SERVICES, FOR YOUR USE OF THE APPLICATIONS AND SERVICES, OR FOR THE CONDUCT OF THIRD PARTIES WHETHER ON THE APPLICATIONS, IN CONNECTION WITH THE SERVICES OR OTHERWISE RELATING TO THE APPLICATIONS OR SERVICES.","","## 5. Reservation of Rights and Ownership","",'Tan Shuai (the "Founder" of Alphabiz) reserves all rights in and to the App, including without limitation all rights in and to the App\'s name, logo, trademark, domain name, and other intellectual property rights.',"","The App is protected by copyright and other intellectual property laws and treaties around the world. Founder owns the title, copyright and other intellectual property rights in the App. The App is licensed, not sold.","","## 6. Indemnification for breach of the Terms","","You agree to indemnify and hold harmless the Alphabiz Parties (defined above) from and against any and all loss, expenses, damages, and costs, including without limitation reasonable attorneys fees, resulting, whether directly or indirectly, from your violation of the Terms.","","## 7. Termination of this Agreement","","These Terms will continue to apply until terminated by the parties in writing, though your right to access and use the App terminates automatically upon your breach of any of these Terms.","The disclaimer of warranties, the limitation of liability and the jurisdiction and applicable law provisions shall survive any termination. The license grants mentioned herein shall continue in effect subject to the terms of the applicable license. Your warranties and indemnification obligations shall survive any termination for one year.","","## 8. Miscellaneous Terms","","If any term or part of the Terms is held to be invalid or unenforceable by any law or regulation or final determination of a competent court or tribunal, that provision will be deemed severable and will not affect the validity and enforceability of any remaining provisions.","","The parties agree that no joint venture, partnership, employment, or agency relationship exists between you and Alphabiz as a result of these Terms or your use of the App.","","These Terms constitute the entire agreement between you and Alphabiz relating to the App and supersede all prior, contemporaneous and future communications (with the exception of future amendments to the Terms as made available by Alphabiz from time to time) between you and Alphabiz. A printed version of the Terms and of any notice given in electronic form shall be admissible in judicial or administrative proceedings based on or relating to the Terms to the same extent and subject to the same conditions as other business documents and records originally generating and maintained in printed form.",""]},"9a50":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"file-selector",on:{click:e.onClick,touch:e.onClick}},[a("input",{ref:"fileSelector",staticClass:"file-selector-input",attrs:{type:"file",name:"fileSelector",webkitdirectory:e.directory,accept:e.accept?"."+e.accept.extensions[0]:"*"},on:{change:e.onSelect}}),e._t("default",(function(){return[a("q-btn",{attrs:{color:"primary",icon:"folder_open",label:e.$t("select_file")}})]}))],2)},o=[],i=(a("de6c"),a("0598")),r=a("d558"),s=a("a3fc"),l={name:"FileSelector",props:{directory:Boolean,accept:{type:Object,required:!1}},data(){return{isElectron:Object(i["default"])(),isCapacitor:Object(r["a"])()}},mounted(){console.log("File selector mounted")},methods:{getFileContent(e){const t=a("61af").readFileSync(e,{encoding:"binary"});return t},buildFile(e){if(this.directory||a("61af").statSync(e).isDirectory())return a("61af").statSync(e).isDirectory()?{path:e,name:e}:{path:e,name:Object(s["dirname"])(e)};const t=[this.getFileContent(e)],n=Object(s["basename"])(e),o=a("ea33").lookup(Object(s["extname"])(e));return console.log("buf",t,e),console.log(n,o),new File(t,n,{type:o})},async selectDirectory(){if(!this.isElectron)return this.$refs.fileSelector.click();console.log("select directory");const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"b052",7));e.once("select_file_or_directory",((e,t)=>{const a=t&&!t.canceled&&Array.isArray(t.filePaths)&&t.filePaths.length?t.filePaths.map((e=>this.buildFile(e))):null;this.$emit("select",a)})),e.send("select_file_or_directory",[])},async selectFile(){console.log("click select file",this.$refs.fileSelector);const e=this.$refs.fileSelector;return e.click()},onClick(){if(console.log("onclick",this.$refs.fileSelector),this.directory)return this.selectDirectory();this.selectFile()},onSelect(e){var t,a,n;console.log("on select files",null===(t=e.target)||void 0===t?void 0:t.files);const o=null===(a=e.target)||void 0===a||null===(n=a.files)||void 0===n?void 0:n[0];this.$emit("select",o)}}},c=l,d=(a("f157"),a("2b5f")),u=a("1043"),_=a("09a4"),p=a.n(_),m=Object(d["a"])(c,n,o,!1,null,"a5acd74c",null);t["a"]=m.exports;p()(m,"components",{QBtn:u["a"]})},"9be9":function(e,t,a){},"9c3b":function(e,t,a){},"9d1e":function(e,t,a){},"9e98":function(e,t,a){"use strict";a("2cfd")},"9e9b":function(e,t,a){},"9efe":function(e,t,a){"use strict";a.d(t,"e",(function(){return p})),a.d(t,"f",(function(){return m})),a.d(t,"l",(function(){return h})),a.d(t,"m",(function(){return g})),a.d(t,"o",(function(){return f})),a.d(t,"n",(function(){return b})),a.d(t,"b",(function(){return y})),a.d(t,"x",(function(){return v})),a.d(t,"g",(function(){return w})),a.d(t,"i",(function(){return k})),a.d(t,"c",(function(){return S})),a.d(t,"h",(function(){return C})),a.d(t,"t",(function(){return x})),a.d(t,"u",(function(){return $})),a.d(t,"v",(function(){return T})),a.d(t,"d",(function(){return z})),a.d(t,"p",(function(){return P})),a.d(t,"q",(function(){return A})),a.d(t,"r",(function(){return I})),a.d(t,"j",(function(){return q})),a.d(t,"w",(function(){return O})),a.d(t,"k",(function(){return E})),a.d(t,"a",(function(){return D})),a.d(t,"s",(function(){return j}));a("de6c"),a("7a76"),a("d4b5"),a("f200"),a("dc69"),a("0c26"),a("a1c1");var n=a("e74d"),o=a("67cf"),i=a("35f4"),r=a("e75b"),s=a("9572"),l=a("ff9b");const c=new r["a"].Rest("ABDevRest"),d=Object(i["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20),u=e=>(e.email&&(e.email=e.email.toLowerCase()),{username:e.username,password:e.password,attributes:{...e.msgLocale?{"custom:msg_locale":e.msgLocale}:{},...e.email?{email:e.email}:{},...e.phoneNumber?{phone_number:e.phoneNumber}:{},...e.phoneNumberCountryCode?{"custom:phone_number_code":e.phoneNumberCountryCode}:{},...e.keyMetadata?{"custom:key_metadata":e.keyMetadata}:{}},clientMetadata:{oauthSignUp:e.oauthSignUp||"false",...e.invitationCode?{invitationCode:e.invitationCode}:{},...e.oauthData?{oauthData:e.oauthData}:{},...e.appClient?{"custom:app_client":e.appClient}:{},...e.signUpIpAddress?{"custom:signing_ip_address":e.signUpIpAddress}:{},...e.os?{"custom:os":e.os}:{}}}),_=e=>{e.email&&(e.email=e.email.toLowerCase());const t={email:"email",phoneNumber:"phone_number",phoneNumberCountryCode:"custom:phone_number_code",msgLocale:"custom:msg_locale",emailVerified:"email_verified",phoneNumberVerified:"phone_number_verified",app_client:"custom:app_client",os:"custom:os",nickname:"nickname",gender:"gender",birthday:"birthdate",locale:"locale"},a={};return Object.entries(t).forEach((([t,n])=>{void 0!==e[t]&&(a[n]=e[t])})),a};async function p(e=!0){const t=await n["a"].currentAuthenticatedUser().catch((e=>{throw new Error(e)}));if(!t||0===Object.keys(t).length)throw new Error("No authed user");return e||(t.dynamo_attrs={},t.dynamo_attrs.invitation_code=[]),t}async function m(){const e=await n["a"].currentUserInfo();if(!e||0===Object.keys(e).length)throw new Error("No user info");return e.dynamo_attrs={},e.dynamo_attrs.invitation_code=[],e}async function h(e,t){e=e.toLowerCase();let a=await n["a"].signIn(e,t,{});if("SMS_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.destination=a.challengeParam.CODE_DELIVERY_DESTINATION,e.user=a,e}if("SOFTWARE_TOKEN_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.user=a,e}if("CUSTOM_CHALLENGE"===a.challengeName){const e=await l["a"].prototype.$recaptcha("login");if(a=await n["a"].sendCustomChallengeAnswer(a,e),!a)throw new Error("Network Error")}c.post("/account/postSignIn",{keychainMetadataHash:s["a"].digestPassword(t)}).catch((e=>{console.error(e.message)}))}async function g(e,t,a){return n["a"].confirmSignIn(e,a,t)}async function f(e){e.username=d().toLowerCase();const t=await n["a"].signUp(u(e));return await c.postGuest("/account/postSignUp",{sub:t.userSub,username:e.username,keychainMetadataHash:s["a"].digestPassword(e.password),isTestEnv:window.isTestEnv,invitationCode:e.invitationCode}),t}async function b(){return await n["a"].signOut().catch((e=>{console.log("SignOut catch >>",e)}))}async function y(e){const t=await p(),a=await n["a"].updateUserAttributes(t,_(e));if("SUCCESS"!==a)throw new Error("Change attributes failed")}async function v(e){const t=await p(),a=await n["a"].changePassword(t,e,e).catch((e=>{throw"Incorrect username or password."===e.message?new Error("Incorrect password"):e}));return"SUCCESS"===a}function w(e,t={}){return e=e.toLowerCase(),n["a"].forgotPassword(e,t)}function k(e){return e=e.toLowerCase(),n["a"].resendSignUp(e)}async function S(e,t,a={},o={oauthSignUp:"false"}){e=e.toLowerCase();const i={optionalAttributes:JSON.stringify(_(a)),...o},r=await n["a"].confirmSignUp(e,t,{clientMetadata:i});if("SUCCESS"!==r)throw new Error(JSON.stringify(r));return r}async function C(e,t,a){t&&(t=t.toLowerCase()),await c.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function x(e){await n["a"].verifyCurrentUserAttribute(e)}async function $(e,...t){const a={email:{email:t[0].toLowerCase()},phone_number:{phoneNumber:t[0],phoneNumberCountryCode:t[1]}}[e];await c.post("/account/setVerifyAttr",a)}async function T(e,t){const a=await n["a"].verifyCurrentUserAttributeSubmit(e,t);await c.post("/account/postVerifyAttr",{success:"SUCCESS"===a})}async function z(){await c.post("/admin/deleteAccount")}async function P(){const e=await n["a"].currentAuthenticatedUser();return await n["a"].setupTOTP(e)}async function A(e){const t=await n["a"].currentAuthenticatedUser();await n["a"].verifyTotpToken(t,e)}async function I(e,t){n["a"].signOutOAuth(),await c.postGuest("/account/unlinkProvider",{providerName:e,providerUserId:t})}async function q(e,t){e=e.toLowerCase();const a=await c.postGuest("/account/verifyForDisableMFA",{username:e,metadata:t}),n=a.email.Destination,o=a.phoneNumber.Destination;return{email:{destination:n},phoneNumber:{destination:o}}}async function O(e,t,a){e=e.toLowerCase(),await c.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}async function E(e,t){await y({msgLocale:`${e}:${t}`})}const D={data:{hash:void 0},record(e){if(!e)throw new Error("invalid password");D.data.hash=s["a"].digestPassword(e)},enable(){const e=async()=>{const e=async()=>{let e=await n["a"].currentUserInfo().then((e=>{var t;return null===e||void 0===e||null===(t=e.attributes)||void 0===t?void 0:t["custom:key_metadata"]}));return e=e?JSON.parse(e):{unset:!0,timestamps:{}},e},t=await e();t.hash?console.tag.green("Polyfill","config_password_hash","cancelled").log("cognito_hash_existed"):D.data.hash?(console.tag.green("Polyfill","config_password_hash","start").log(t),t.hash=D.data.hash,await n["a"].updateUserAttributes(await n["a"].currentAuthenticatedUser(),{"custom:key_metadata":JSON.stringify(t)}),console.tag.green("Polyfill","config_password_hash","done").log(t)):console.tag.green("Polyfill","config_password_hash","cancelled").log("local_hash_not_found")};this.$amplify.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await e()}))}};function j(){const e=a(["\n subscription OnMessage($channel: String!) {\n onMessage(channel: $channel) {\n channel\n data\n }\n }\n "]);return t;function t(t){const a=e("onMessage",{channel:`DeliveryStatus::${t}`},{authMode:"API_KEY"}),n=new Promise(((e,t)=>{a.on((a=>{const n=JSON.parse(a.data);console.log("promiseDeliveryStatus >",n),"Bounce"===n.type?t(o(n.data[0])):"Delivery"===n.type&&e(n)}))})).finally((()=>{a.off()}));return n.off=()=>a.off(),n;function o(e){var t;const a={"5.1.1":"Bad destination mailbox address","5.4.4":"Invalid domain","5.3.0":"Other or undefined mailbox status"};let n=a[e.status];return e.diagnosticCode.startsWith("smtp; 550 Mailbox unavailable or access denied")?n="Mailbox unavailable":e.diagnosticCode.indexOf("it is on the suppression list for your account.")&&(n="Suppressed email address"),new Error(null!==(t=n)&&void 0!==t?t:e.diagnosticCode)}}function a(e=[]){const t=a(e);return(e,a,{authMode:n,authToken:i}={})=>{if(!t[e])throw new Error(`Operation not found: ${e}`);const r=o["a"].graphql({query:t[e],variables:a,authMode:null!==n&&void 0!==n?n:void 0,authToken:null!==i&&void 0!==i?i:void 0});r.name=e;const s=(e,t)=>console.error(e[0].message,{errors:e,provider:t});let l;const c={on(e,t=s){return l&&l.unsubscribe(),l=r.subscribe({next:({provider:t,value:a})=>{var n;return e(null===(n=a.data)||void 0===n?void 0:n[r.name],t)},error:({provider:e,error:a})=>t(a.errors,e)}),c},off(){return l&&(l.unsubscribe(),l=null),c}};return c};function a(e=[]){return e.reduce(((e,a)=>(e[t(a)]=a,e)),{});function t(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return a}}}}},"9f21":function(e,t,a){"use strict";var n=a("67b6"),o=["# INTERNAL DEMO ONLY","","1. Your license permits use the Software only for your internal demonstration, test, or evaluation purposes. ","","2. Licensee acknowledges that the Software is confidential in nature and constitutes a trade secret belonging to Licensor.","","3. Public disclosure or distribution of the Software is prohibited.","","4. Note that the Software disables itself on the “time-out” date identified on the SOFTWARE packaging.","",""],i=a("76ec"),r=a("9a08");t["a"]={mixins:[n["b"]],methods:{showInternalNotice(){this.createMarkdownDialog({title:this.$t("internal_notice"),markdown:{internal:{label:"Internal",markdown:o}}})},showLicenseTermsNotice(){this.createMarkdownDialog({title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:i["a"]},terms:{label:"Terms",markdown:r["a"]}}})}}}},"9f3a":function(e,t,a){"use strict";a("4eaf")},"9f42":function(e,t,a){},"9fe7":function(e,t,a){"use strict";a("9be9")},a11f:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return r}));a("de6c"),a("a1c1");var n=a("d710"),o=a.n(n);const i=new Map;function r(t){if(i.has(t))return i.get(t);if("string"!==typeof t)return t;let a=t;var n;if(t.startsWith(o.a.protocol))a=null===(n=t.match(/[^/]\/([^&/]+)/))||void 0===n?void 0:n[1];else if(t.startsWith(o.a.shortProtocol))a=t.replace(o.a.shortProtocol+"://","");else if(t.match(/([0-9a-fA-F]{40})/)){var r;a=null===(r=t.match(/([0-9a-fA-F]{40})/))||void 0===r?void 0:r[1],a&&(a=e.from("01"+a,"hex").toString("base64").replace(/\//g,"_"))}const s=a||t;return i.set(t,s),s}}).call(this,a("eb72").Buffer)},a1cd:function(e,t,a){"use strict";a("de6c"),a("a1c1"),a("0c26");const n=a("a3fc"),{resolve:o}=n,{networkInterfaces:i}=a("800b"),r=e=>{if(!e.ready)return[];const t=e.pieces.length,a=t+128-t%128,n=a/128,o=[];let i=1,r=0;for(let s=0;s=n&&(o.push(i),i=1,r=0);return o},s=e=>{const t=r(e),a=[];let n=0,o=0;for(let i=0;i=8&&(a.push(o),n=0,o=0);return a},l=(e,t)=>{const a=e.pieceLength,n=e.length,o=Math.ceil(n/a),i=t.peerPieces;if(!i.buffer)return{progress:0,buffer:null};let r=0;for(const s of i.buffer){const e=s.toString(2).split("").filter((e=>"1"===e)).length;r+=e}return{progress:r/o,has:r,length:n}},c=["infoHash","name","paused","length","downloaded","uploaded","ready","waiting","progress","isSeeding","upload","token","completed","origin","path","pending","fromPost","postTitle","file","magnetURI","alphabizURI","isAutoUpload","isUploadByFiles","createdTime","completedTime","usedTime"],d=(e,t,a)=>{const o={};var i;(c.forEach((t=>{o[t]=e[t]})),!o.infoHash&&e.magnetURI)&&(o.infoHash=null===(i=e.magnetURI.toLowerCase().match(/:([0-9a-fA-F]{40})/))||void 0===i?void 0:i[1]);if(o.done=e.downloaded>=e.length,o.download=1!==e.progress&&!e.upload,o.upload=e.upload,o.recieved=e.received,o.files=e.files?e.files.map((t=>({name:t.name,path:n.resolve(e.path||"",t.path||t.name),progress:t.progress>0?t.progress:0}))).filter((e=>!e.name.match(/^_____padding_file_(.*)____$/))):[],e.timeRemaining&&(o.timeRemaining=e.timeRemaining),e.metadata&&(o.hasMetadata=!0),e.numPeers&&(o.peersNum=e.numPeers),e.subtitleList&&e.subtitleList.length&&(o.subtitleList=e.subtitleList),"undefined"===typeof t||!a)return o;const r=s(e);e.byteMap&&!r.some(((t,a)=>e.byteMap[a]!==t))||(e.byteMap=r,e.emit("byte-map-change")),o.byteMap=e.byteMap,e.trackerMap?o.trackerList=[...e.trackerMap.values()].map((e=>{const t={...e};return t.url.includes("@6")?t.isIpv6=!0:t.isIpv6=t.url.startsWith("ws")&&t.url.includes("ipv6"),t})).filter((({url:t,status:a})=>{if("error"!==a)return!0;let n=t;t.includes("@6")?n=t.replace("@6",""):n+="@6";const o=e.trackerMap.get(n);return!o||"error"===o.status})):o.trackerList=[];const d=e.client;return o.connections=e.wires.map((n=>{let o=n.remoteAddress;if(!o){const t=e._peers[n.peerId];if(!t||"webrtc"!==t.type)return null;{var i,r,s,c,u;const e=null===(i=t.conn)||void 0===i||null===(r=i._pc)||void 0===r||null===(s=r.currentRemoteDescription)||void 0===s||null===(c=s.sdp)||void 0===c||null===(u=c.match(/c=IN\sIP\d\s(.*)/))||void 0===u?void 0:u[1];if(!e)return n.destroy(),null;o=e}}let _="low";n._uploadThrottle._group===d.throttleGroups.mid&&(_="mid"),n._uploadThrottle._group===d.throttleGroups.high&&(_="high");let p=0,m=0;if(a.has(n._debugId)){const e=a.get(n._debugId);p=(n.downloaded-e.downloaded)/t,p<0&&(p=0),m=(n.uploaded-e.uploaded)/t,m<0&&(m=0)}a.set(n._debugId,{downloaded:n.downloaded,uploaded:n.uploaded});let h=!1;e.byteMap&&n.remote_byte_map&&(h=e.byteMap.some(((e,t)=>{try{const a=e.toString(2).padStart(8,"0"),o=n.remote_byte_map[t].toString(2).padStart(8,"0");for(let e=0;ee)),o.connections.sort(((e,t)=>e.address&&e.address.localeCompare?e.address.localeCompare(t.address):0)),e.verifyStatus&&(o.verifyStatus=e.verifyStatus),e.pieces&&(o.verifiedPieces=e.pieces.reduce(((e,t,a)=>{if(null===t){const t=e[e.length-1];Array.isArray(t)?t[1]===a-1?t[1]=a:e.push(a):t===a-1?e[e.length-1]=[t,a]:e.push(a)}return e}),[])),o},u=()=>{const e=i(),t=new Set;for(const a in e){const n=e[a];n.forEach((e=>{t.add(e.address)}))}return[...t]},_=e=>"string"===typeof e&&e.includes("(")?e.substring(0,e.indexOf("(")).trim():e,p=(e,t)=>{if(!e.discovery||!e.discovery.tracker)return;const a=e.discovery.tracker;if(!a._trackers.find((e=>e.announceUrl===t))&&a._createTracker)try{const e=[4];t.startsWith("http")&&e.push(6);for(const n of e){const e=a._createTracker(t,n);e&&(a._trackers.push(e),e.setInterval(),e.announce(a._defaultAnnounceOpts()))}}catch(n){console.error("addTracker error",n)}},m=(e,t,a)=>{if(!e.discovery||!e.discovery.tracker)return a();const n=e.discovery.tracker._trackers,o=n.findIndex((e=>e.announceUrl===t));if(-1===o)return a();const i=n[o];i&&i.destroy?i.destroy(((...e)=>{const o=n.findIndex((e=>e.announceUrl===t));-1!==o&&n.splice(o,1),"function"===typeof a&&a(...e)})):a()};function h(e){const{appendFile:t}=a("61af"),{format:n}=a("38c2"),i=(...e)=>`[${(new Date).toLocaleString()}] ${n(...e)}\n`,r=o(e,"webtorrent.log.log"),s=o(e,"webtorrent.warn.log"),l=o(e,"webtorrent.error.log"),c=function(e){return{...e,log(...a){t(r,i(...a),(()=>{})),e.log.apply(e,a)},warn(...a){t(s,i(...a),(()=>{})),e.warn.apply(e,a)},error(...a){t(l,i(...a),(()=>{})),e.error.apply(e,a)}}}(window.console);window.console=c}t["a"]={useRedirectLogs:h,torrentToJson:d,getLocalIPList:u,getPieceMap:r,parseTrackerWarning:_,addTracker:p,removeTracker:m}},a282:function(e){e.exports=JSON.parse('{"lib_index":"Hogar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Siguiente","lib_favorite":"Favoritos locales","lib_local_favorites":"Favoritos locales","lib_channel":"Canal","lib_submit":"Entregar","lib_from_network":"Usando una base de datos descentralizada de la red","welcome_to_lib":"Bienvenido a ${displayName} Biblioteca multimedia","register_or_login":"Registro de inicio de sesión","lib_recommend":"Recomendar","lib_recommend_desc":"¡Bienvenido a ${displayName} Biblioteca! Esta biblioteca utiliza una base de datos descentralizada de la red. Para comenzar a usarlo, debe seguir algunos canales.","follow_any_channel_to_continue":"Sigue cualquier canal para continuar","follow_channels_and_continue":"Sigue {0} canales y continúa","show_more_for_me":"Mostrar más para mí","no_more_recommend":"No más recomendar","key":"Llave","create_key":"Crear clave","save_key":"Guardar clave","save_key_file":"¿Quieres guardar tu clave como archivo?","import_key":"Clave de importación","import":"Importar","invalid_key":"Tecla inválida","back_to_top":"Volver arriba","search_for_channel":"Buscar ID de canal","search_channel_no_result":"No se puede encontrar el canal con ID {0}","please_input_channel_id":"Ingrese el ID del canal","welcome_help_text":"Esta es una biblioteca multimedia descentralizada. Necesitas\\n para crear una cuenta para esta base de datos. Lo haremos\\n generar una clave personal para usted automáticamente.\\n Si ya ha tenido una clave, también puede importar\\n aquí.","welcome_key_text":"Una vez que haya iniciado sesión, haga clic en el botón [GUARDAR CLAVE]\\n en la esquina inferior derecha para guardar su clave privada.\\n Si pierde su clave, es posible que no pueda volver a iniciar sesión.","redirect_to_recommend":"Parece que no habías seguido ningún canal. Redirigiendo a la página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Dejar de seguir","following":"Siguiente","share":"Compartir","unfollow_confirm":"¿Estás seguro de dejar de seguir este canal? Se eliminarán todas las publicaciones de este canal en tu línea de tiempo.","follow_failed_hint":"La operación aún está pendiente en segundo plano. Si la operación no se aplica durante mucho tiempo, reinicie la aplicación y vuelva a intentarlo.","block":"Bloquear","unblock":"Desatascar","blocked":"Obstruido","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal lo eliminará de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","block_creator":"Bloquear al creador de este canal","unblock_creator":"Desbloquear al creador de este canal.","block_creator_confirm":"Bloquear creador eliminará todos los canales creados por este creador de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","share_url_copied":"Compartir URL se copia en su portapapeles","follow_time":"seguir el tiempo","update_time":"Tiempo de actualizacion","search":"Buscar","type":"Tipo","added":"Agregado","click_to_task":"Haga clic para ir a la tarea","lib_already_added":"Ya has añadido este vídeo.","description":"Descripción","poster":"Póster","channel_poster":"cartel del canal","preview":"Avance","creator":"Creador","creator_detail":"Detalles del creador","loading_creator":"Cargando información del creador","wait_for_creator_loaded":"Espere a que se cargue la información del creador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Usuario","channel_title":"Título del canal","channel_id":"Canal ID","post_title":"Título de la entrada","post_id":"ID del mensaje","import_data_from_excel":"Importar datos de excel","set_excel_keys":"Establecer claves de Excel","excel_import_succeded":"Importación de Excel exitosa","excel_import_success_msg":"{0} las filas están listas para agregarse, {1} no son válidos y {2} los elementos duplicados se ignoran","cannot_find_channel":"No puedo encontrar el canal","cannot_find_posts":"No puedo encontrar publicaciones","add_channel":"Agregar canal","add_post":"Agregar publicación","edit_channel":"editar canal","channel_setting":"Configuración de canal","edit_post":"Editar post","edit_posts":"Editar publicaciones","channel_detail":"Detalle del canal","remove":"Eliminar","remove_channel":"Quitar canal","remove_channel_confirm":"¿Estás seguro de eliminar esta publicación? Esto no se puede recuperar.","remove_post":"Quitar publicación","remove_post_confirm":"¿Estás seguro de eliminar este canal? Esto no se puede recuperar.","preview_mode":"Modo de vista previa","preview_mode_desc":"Esta es una vista previa de tu canal. Todas las tarifas de las películas se muestran aquí.","edit_user_profile":"Editar perfil de usuario","name":"Apodo","avatar":"Avatar","no_following":"No hay canales de seguimiento. Haga clic para ir a","no_recommend":"No hay canales recomendados. Haga clic para ir a","first_recomment_msg":"Puede tomar un tiempo si es la primera vez que se inicia la aplicación.","invalid_image":"Imagen inválida","image_not_reachable":"No se puede acceder a esta URL de imagen.","channel_not_found":"Canal no encontrado","cannot_get_channel_info":"No se puede obtener información del canal. Este canal puede ser eliminado por su creador y ya no está disponible.","validate_error":"Validar error","validate_user_name_no_space":"El nombre de usuario no debe contener espacios","validate_url_no_space":"La URL no debe contener espacios","validate_user_name_length":"El nombre de usuario debe tener una longitud entre {0} y {1}","validate_user_desc_length":"La descripción del usuario no debe tener más de {0} caracteres","validate_user_avatar_url":"El avatar del usuario debe ser una URL con menos de 2048 caracteres","validate_channel_title_length":"El título del canal debe tener una longitud entre 1 y 100","validate_channel_desc_length":"La descripción del canal debe tener una longitud de entre 10 y 300","validate_channel_image_url":"La vista previa del canal debe ser una URL con menos de 2048 caracteres","validate_post_title_length":"El título de la publicación debe tener una longitud entre 1 y 100","validate_post_desc_length":"La descripción de la publicación debe tener una longitud entre 10 y 300","validate_post_image_url":"El póster debe ser una URL con menos de 2048 caracteres","validate_post_url":"URL ${displayName} no válida","validate_post_url_length":"${displayName} La URL no debe tener más de 2048 caracteres","film_rate":"Tasa de película","set_film_rate":"Establecer tasa de película","select_a_rate_before_enter":"Debe seleccionar una tarifa de película antes de ingresar a la biblioteca de medios.","library_available_rate":"Tarifa de película disponible en la biblioteca","rate_g":"G – Audiencias Generales","rate_g_desc":"Todas las edades admitidas. Nada que ofendería a los padres por ser visto por niños.","rate_pg":"PG: se sugiere la supervisión de los padres","rate_pg_desc":"Algun material puede no ser adecuado para niños. Se instó a los padres a dar \\"orientación de los padres\\". Puede contener material que a los padres no les gustará para sus hijos pequeños.","rate_pg_13":"PG-13 – Padres fuertemente advertidos","rate_pg_13_desc":"Algunos materiales pueden ser inapropiados para niños menores de 13 años. Se insta a los padres a tener cuidado. Algunos materiales pueden ser inapropiados para preadolescentes.","rate_r":"R – Restringido","rate_r_desc":"Los menores de 17 años requieren un padre o tutor adulto que los acompañe. Contiene algo de material para adultos. Se insta a los padres a aprender más sobre la película antes de llevar a sus hijos pequeños con ellos.","rate_nc_17":"NC-17 – Solo para adultos","rate_nc_17_desc":"No se admiten menores de 17 años. Claramente adulto. No se admiten niños.","set_as_private":"Establecer como privado","hide_in_explore":"Ocultar este canal en la página de exploración","hidden":"Oculto","select_a_rate":"Seleccione una tarifa de película","select_from_tasks":"Seleccionar de tareas","import_from_magnet":"Importar desde imán:?...","input_magnet_url":"Imán de entrada:? URL","task_title":"Título de la tarea","set_title":"Establecer título","add_to_local_favorites":"Añadir a favoritos locales","remove_from_local_favorites":"Quitar de favoritos locales","removed_favorite":"Favorito eliminado","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locales como copia de seguridad","import_favorites_file":"Importar archivo de favoritos","not_a_favorite_file":"Este archivo no es un archivo de respaldo favorito","connection_status":"Estado de conexión","gun_server_list":"Nodos de caché","custom_nodes":"Nodos de caché personalizados","custom_nodes_hint":"Los nodos de caché personalizados se aplicarán después del reinicio de la aplicación","wait_for_reboot":"Esperando reinicio...({seconds}s)","reboot_now":"Reinicie ahora","reboot_later":"Reiniciar despues","peer_list":"Nodos directos","server":"URL del nodo","peer":"Par","peer_id":"ID de nodo","connection":"Conexión","data_source":"Fuente de datos","sync":"sincronizar","syncing":"Sincronizando","sync_completed":"Sincronización completada","got_all_post":"Ya tienes todas las publicaciones","placeholder_channel_title":"Nombre de tu canal","placeholder_channel_desc":"Descripción sobre este canal","placeholder_post_title":"Nombre de la película (año)","placeholder_post_desc":"Descripción sobre esta película","private_channel":"canal privado","creator_blocked":"Creador bloqueado","go_to_library":"¿Ir a la biblioteca?","go_to_library_channel_msg":"¿Quieres ir al canal de la biblioteca {0}?","magnet_does_not_have_name":"Este imán:? url no tiene nombre, primero debe agregar un título de publicación.","no_available_post":"No hay publicación disponible","following_channel_no_post":"Todos sus siguientes canales no tienen publicación disponible. Esto puede ser causado por un error de red. Si ya ha seguido algunos canales, es posible que las publicaciones se carguen más tarde.","share_to_library":"Compartir con la biblioteca","quick_start":"Inicio rápido","quick_start_desc":"Comienza a crear una publicación con una tarea o un archivo","select_file":"Seleccione Archivo...","select_folder":"Seleccione la carpeta...","post_options":"Opciones de publicación","channel_options":"Opciones de canal","create_new_channel":"Crear nuevo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Seleccionar canal existente","uploaded_by":"{title} subido por {name}","created_by":"{title} creado por {name}","creating_new_channel":"Creando nuevo canal...","created_new_channel":"Nuevo canal creado","creating_new_post":"Creando nueva publicación...","created_new_post":"Nueva publicación creada","create_new_post":"Crear nueva publicación","quick_start_timeout":"{0} tiempo de espera. Esto puede deberse a un error de red. Por favor, inténtelo de nuevo más tarde.","file_too_large":"Archivo demasiado grande","file_too_large_msg":"Este archivo tiene más de 4 GB ({size}) y puede llevar mucho tiempo preparar la tarea. ¿Estás seguro de continuar?","resolving_folder_files":"Resolviendo archivos de carpeta...","folder_too_large":"Carpeta demasiado grande","folder_too_large_msg":"Los archivos en esta carpeta tienen más de 4 GB ({size} en total) y pueden llevar mucho tiempo preparar la tarea. ¿Estás seguro de subir?","creating_new_task":"Creando nueva tarea...","cannot_create_task":"No se puede crear la tarea","cannot_create_task_msg":"Esto puede ser causado por algún error. Si la tarea se crea correctamente, puede verificar la lista de tareas más tarde.","cannot_get_task_name":"No se puede obtener el nombre de la tarea. Primero debe ingresar uno.","remove_old_task":"Eliminar tarea anterior","remove_old_task_desc":"El modo web solo puede crear una tarea a la vez. ¿Quieres eliminar la tarea anterior?","subtitle_list":"Lista de subtítulos","optional":"opcional","with_subtitle":"Con {language} subtítulos","maximumSubtitleNum_limit":"El número de subtítulos ha alcanzado su máximo","add_subtitle_url":"Añadir enlace de descarga de subtítulos","cannot_add_subtitle":"Error al agregar subtítulos","cannot_add_subtitle_msg":"Idioma de los subtítulos no seleccionado o enlace de descarga no válido.","support_subtitle_type":"Solo se admiten subtítulos en formato srt y vtt.","recommend_opensubtitles":"Se recomienda usar el enlace de descarga de subtítulos o la identificación en www.opensubtitles.org.","take_down":"Derribar","serious_violation":"Infracción grave","copyright_disputes":"Disputas de derechos de autor","adults_only":"Sólo para adultos","takedown_reason":"Motivo de eliminación","takedown_mode":"modo de derribo","admins":"administradores","takedown_user":"Eliminar a este creador","takedown_channel":"Eliminar este canal","takedown_post":"Eliminar esta publicación","select_takedown_reason":"Seleccione el motivo de eliminación","takedown_invalid_reason":"Motivo de eliminación no válido","takedown_invalid_user_id":"ID de usuario invalido. La identificación debe incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal no válido. El ID debe incluir 20 caracteres","takedown_invalid_post_id":"Identificación de publicación no válida. El ID debe incluir 20 caracteres","takedown_management":"Gestión de eliminación","users":"Usuarios","channels":"Canales","posts":"Publicaciones","you":"Tú","preset":"Preestablecido","admin":"Administración","committee":"Comité","about_takedown_mode":"Acerca del modo de eliminación:\\nPreset: Configurado en el repositorio de github. Todos ellos serán eliminados de la biblioteca.\\nAdministrador: cualquiera de los votos de los administradores será eliminado.\\nComité: Se eliminará al menos la mitad de los votos de los administradores.","cannot_edit_preset":"No puede editar esta fila porque es una fila predeterminada","cannot_edit_not_vote":"No puede editar esta fila porque no la ha votado","remove_vote":"Elimina tu voto","post_preload_failed":"No se pudo precargar esta publicación. El enlace de descarga puede estar desactualizado, por lo que esta publicación no se puede reproducir de inmediato.","about_cache_node":"Acerca del nodo de caché","edit_cache_node":"Editar nodo de caché","create_cache_node":"Crear nodo de caché","about_cache_node_desc":"${displayName} usa el servidor de armas como nodo de caché. Puede editar nodos personalizados en la configuración avanzada","learn_how_to_deploy_gun":"Aprenda a implementar su propio servidor de armas","repeat_add":"La tarea ha sido añadida, por favor no la vuelvas a añadir","upload":"Subir","download":"Descargar","delete":"Borrar","delete_task":"Eliminar tarea","delete_confirm_message":"¿Eliminar esta tarea? esto es irrevocable","also_delete_files":"También eliminar archivos","default_delete_files":"Eliminación predeterminada de archivos descargados después de eliminar la tarea","not_now":"Ahora no","delete_autoupload_confirm":"Esta tarea contiene un archivo que colocaste en el directorio de carga automática. Eliminar esta tarea también eliminará el archivo.","delete_anyway":"eliminar de todos modos","upload_too_many_files":"Subir demasiados archivos","ask_if_unlimit_upload_amount":"El directorio de carga automática contiene demasiados archivos. ¿Desea deshabilitar la limitación de la cantidad de carga? *Esto puede causar problemas de rendimiento","disable_limitation":"Deshabilitar limitación","not_length":"La operación de archivos múltiples no es compatible en este momento, por favor coopere","download_torrent":"Descargar archivo","upload_torrent":"Subir archivo","files":"archivos","file":"Archivo","folder":"Carpeta","start_all":"Empezar todo","pause_all":"Pausar todo","remove_all":"Eliminar todo","upload_all":"Subir todo","clear_history":"Borrar historial","pause_all_finish_payments":"Esto finalizará todos los pagos.","accelerating":"Acelerador","link_task":"Vincular tarea","torrent_task":"Tarea de archivo","ok":"DE ACUERDO","cancel":"Cancelar","download_directory_position":"Descargar la posición del directorio","torrent_file":"archivo de tarea","magnetic_link_incorrect":"El formato del enlace es incorrecto.","delete_fail":"Error al eliminar","pause":"Pausa","paused":"en pausa","stop_torrent":"Detener","seed":"Semilla","resume":"Reanudar","downloading":"Descargando","downloaded":"descargado","uploading":"Cargando","auto_uploading":"Carga automática","uploaded":"subido","pending":"Esperando otras tareas","verifying":"Verificando","waiting_for_verify":"Esperando para verificar","seeding":"siembra","completed":"Terminado","status":"Estado","task_name":"Nombre de la tarea","size":"Tamaño","progress":"Progreso","sort":"Clasificar","ascending":"ascendente","descending":"Descendente","file_loading":"Cargando archivo...","loading":"Cargando","unknown_status":"Desconocido","play_while_downloading":"Jugar...","upload_or_play":"Cargar / Reproducir","play":"Jugar","ask_if_upload_file":"¿Subir archivo?","ask_if_upload_or_play":"¿Subir o reproducir archivo?","torrent_error":"Error al agregar tarea:","no_peers":"Vuelva a intentarlo más de {0} veces y no hay ningún compañero disponible","torrent_exists":"La tarea ya existe.","show_origin_torrent":"Obtener archivo de tarea original o url","show_directory":"Abra el directorio de este torrent","task_num":"Tareas","total_upload_speed":"Velocidad de subida","total_download_speed":"Velocidad de Descarga","path_missing":"Error: no se puede encontrar la ruta del torrente","origin_not_found":"No se puede encontrar la información de la tarea de origen.","text_copied":"La URL de Magnum se copia en su portapapeles","copy_magnet_uri":"Copiar imán :? URI","copy_download_uri":"Copiar URI de descarga","copy_share_uri":"Copiar compartir URI","uri_copied":"URI se copió con éxito en su portapapeles","uri_copy_failed":"Error al copiar uri","more":"Más...","toggle_list_mode":"Alternar modo de lista","comment":"comentario","operations":"Operaciones","open_directory":"Directorio abierto","no_downloading_task":"Sin tarea de descarga","remove_all_downloading_tasks":"¿Eliminar todas las tareas de descarga?","remove_all_upload_tasks":"¿Eliminar todas las tareas de carga?","remove_autoupload_files":"Eliminar archivos de carga automática","remove_all_history":"¿Eliminar todo el historial?","remaining":"Restante","created_time":"tiempo creado","used_time":"Tiempo usado","completed_time":"tiempo completado","yesterday":"Ayer","before_yesterday":"{empty}","earlier":"Más temprano","miss_file":"Faltan algunos archivos","delete_miss_file_task":"Faltan archivos fome en {0}.","common_peer":"Par común","ab_peer":"${displayName} compañero","ab_peer_verified":"Compañero ${displayName} verificado","ab_peer_available":"${displayName} compañeros disponibles","alphabiz_accelerating":"${displayName} acelerando","income":"Ingreso","income_info":"Ingresos (hoy/total)","total_income_info":"Ingresos: {0}(hoy) / {1}(total)","login_to_see_income":"Inicie sesión para ver las estadísticas de ingresos","credit_cost":"Costos de crédito","downloaded_by_payment":"Descargado por Pagos","file_not_found":"No se puede encontrar este archivo en local","no_task":"No preguntar","no_matched_task":"Sin tarea coincidente","space_not_enough":"Espacio en disco insuficiente","need_more_space":"Necesita {0} más de espacio pero el disco actual tiene {1} libre ({2} reservado). Las tareas están en pausa. La precarga de la biblioteca está deshabilitada. Puede volver a habilitarlo en [Configuración - Avanzado].","seeders":"Sembradoras","last_update":"Última actualización","connecting":"Conectando","connected":"Conectado","request_timed_out":"Tiempo de espera agotado","connection_failed":"La conexión falló","invalid_download_url":"URL de descarga no válida","download_link":"enlace de descarga","empty_files":"No hay archivos en el directorio","duplicate_task":"Tarea duplicada","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarea no está lista. Pausar esta tarea la eliminará directamente.","some_task_not_ready":"Algunas tareas no están listas. Pausar estas tareas las eliminará directamente.","failed_to_delete_files":"Error al eliminar archivos","failed_to_delete_files_desc":"No se pudieron eliminar algunos archivos de la tarea. Es posible que deba eliminarlos manualmente","unknown_error":"Error desconocido: {0}","more_files_are_not_shown":"({0} más archivos no se muestran por motivos de rendimiento)","no_available_file":"Ningún archivo disponible. Espere a que la tarea esté lista.","service_worker_error":"No se puede cargar ServiceWorker para jugar. Es posible que su navegador no sea compatible con esta función o que ServiceWorker no esté activado. Es posible que deba volver a cargar esta página e intentarlo de nuevo.","add_task_first":"Primero debe agregar la tarea.","player_task_time":"El jugador tarda demasiados segundos en prepararse para jugar. Puede haber algo mal con la tarea.","web_mode_hint":"El modo web de ${displayName} solo es compatible con pares WebRTC. Para obtener la mejor experiencia, descargue la aplicación de escritorio ${displayName}.","web_mode_task_hint":"Haga clic en los botones a continuación para agregar una tarea. Solo puede agregar una tarea a la vez.","save_to_local":"Guardar en local","save_as_zip":"Guardar como ZIP","creating_save_file":"Creando archivo guardado...","upload_as_one_directory":"Subir como un directorio","upload_as_single_files":"Subir como archivos individuales","web_mode_upload_single":"Solo puedes subir un único archivo en modo web","download_success":"Descargar con éxito","download_fail":"Descarga fracasó","wait_for_downloaded_to_share":"Espere a que se descargue la tarea antes de compartirla.","download_with_cellular":"Descargar tareas usando celular","download_with_cellular_desc":"Está utilizando una red celular. Las tareas de descarga con celular pueden tener tarifas adicionales por parte de su proveedor.","download_with_cellular_confirm":"Todavía descargar con celular","language":"Idioma","appearance":"Apariencia","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Oscuro","basic_setting":"Básico","hideMenu":"Ocultar menú de aplicaciones (solo Windows y Linux)","autoHide":"Ocultar ventana automáticamente","autoStart":"Abrir al iniciar sesión","restore":"Mantener el tamaño y la posición de la ventana al salir","autoStartUnfinished":"Reanudar automáticamente todas las tareas inconclusas","default_download_path":"Ruta predeterminada","download_directory":"Descargar directorio","upload_directory":"Subir directorio","enable_auto_upload":"Habilitar carga automática","unlimit_upload_amount":"Cantidad de carga ilimitada","unlimit_upload_warning":"Permitir cargar una gran cantidad de archivos. Esto puede causar un problema de rendimiento","start":"Puesta en marcha","transport_setting":"Transmisión","upload_limit":"Límite de carga","download_limit":"Límite de descarga","payed_user_share_rate":"Tasa de participación de usuario pagado","unlimited":"Ilimitado","limit_input_error":"El número límite debe ser positivo","BT_setting":"Configuración de tareas","saveLinkSeed":"Guardar enlace como archivo de tarea","autoDownload":"Descargar automáticamente el enlace y el contenido","continuousSeeding":"Sigue sembrando hasta que lo detengas manualmente.","seedSharingRate":"Proporción de semillas","seedTime":"Tiempo de semilla (minutos)","task_manage":"Administración de tareas","maximumDownloadNum":"Máximo de tareas activas","maximumConnectionsNum":"Conexión máxima por servidor","range_error":"El rango debe estar entre {0} y {1}","random":"aleatorio","breakpointContinuation":"Continuar","automaticSkip":"Mostrar automáticamente la descarga después de agregar una tarea","afterNotification":"Notificación después de que se complete la descarga","deleteConfirm":"No se requiere confirmación antes de eliminar la tarea","submit":"Guardar y aplicar","discard":"Desechar","reset":"Reiniciar","reset_all_settings":"¿Restablecer todos los ajustes?","preferences_resetted":"Preferencias restablecidas","traditional_chinese":"chino tradicional","japanese":"japonés","english":"Inglés","chinese":"chino simplificado","advancedSettings":"Avanzado","autoUpdate":"Actualización automática","autoCheckUpdate":"Comprobar automáticamente si hay actualizaciones","proxy":"Apoderado","useProxyService":"Habilitar proxy","trackerService":"Servidores de seguimiento","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Actualizar la lista de rastreadores todos los días automáticamente","manualUpdateTracker":"Actualización manual","manualUpdateSuccess":"Actualice con éxito los servidores de seguimiento","manualUpdateFail":"Error al actualizar desde:","listenPort":"Puertos de escucha","BTlistenPort":"Puerto de transmisión de datos","DHTlistenPort":"Puerto hash distribuido","protocols":"Protocolos compatibles","setDefaultClientForFollowingProtocols":"Establecer como cliente predeterminado para los siguientes protocolos","magnetUrl":"Imán","video_file":"Archivo de vídeo","audio_file":"Archivo de audio","security":"Seguridad","impersonateUserAgent":"Agente de usuario simulado","RPCauthorizationkey":"Secreto RPC","viewDocument":"Ver manual secreto de RPC","developer":"Desarrollador","applicationLogPath":"Ruta de registro de la aplicación","downloadSessionPath":"Descarga la ruta de la sesión","resetDownloadSessionRecord":"Restablecer sesión de descarga","restoreInitialSettings":"Restablecimiento de fábrica","preferences_set_successfully":"¡Guarde las preferencias con éxito!","preferences_set_fail":"¡Error al guardar las preferencias!","change_not_save":"Los cambios no se guardan","discard_all_changes":"¿Descartar todos los cambios y salir?","stay_in_page":"permanecer en la página","disk_usage":"Uso del disco","pause_if_less_space":"Pausar y notificar si el espacio es inferior a (MB)","default_video_player":"reproductor de vídeo predeterminado","video_cache_time":"Caché de reproducción de secuencias","minutes":"minutos","system_default":"Sistema por defecto","media_player":"Reproductor multimedia","library_film_rate":"Tarifa de película disponible","library_show_explore":"Mostrar la página [Explorar]","library_setting":"configuración de la biblioteca","library_sync_setting":"Configuración de sincronización de la biblioteca","keychain_sync_status":"Estado de sincronización del llavero","sync_with_aws":"Sincronizar llavero con Amazon Web Services","backup_to_local":"Copia de seguridad en archivo local","enable_sync_with_aws":"Habilitar sincronización con AWS","disable_sync_with_aws":"Deshabilitar la sincronización con AWS","disable_sync_with_aws_desc":"Esto eliminará la clave guardada en el servidor. Asegúrese de haber exportado ya su clave.","input_independent_password":"Introducir contraseña independiente","change_independent_password":"Cambiar contraseña independiente","password_error":"Error de contraseña","password_invalid":"contraseña incorrecta","key_existed":"La clave existía","key_not_found":"Clave no encontrada","library_recommend":"biblioteca recomendar","show_all_channels":"Mostrar todos los canales en la página de recomendación de la biblioteca","not_logged_in":"Sin iniciar sesión","login_to_continue":"Iniciar sesión para continuar","mnemonic_code":"Código mnemotécnico","wordlist":"Lista de palabras","restore_code":"Restaurar desde código","generate_code":"Generar codigo","export_mnemonic_code":"Exportar código mnemotécnico","import_mnemonic_code":"Importar código mnemotécnico","print":"Imprimir","save_as_txt":"Guardar como texto","save_as_pdf":"Guardar como pdf","from_file":"Desde el archivo","not_valid_mnemonic_code":"Este no es un código mnemotécnico válido","cannot_parse_code_as_key":"No se puede analizar este código mnemotécnico como clave de biblioteca","import_key_hint":"¿Estás seguro de importar esta clave? Esto recuperará su clave anterior en la biblioteca.","import_key_confirm":"Sí, importarlo.","library_preload":"Precargar tareas desde la biblioteca","show_preload":"Mostrar tareas de precarga","set_download":"Establecer directorio de descarga","set_download_desc":"Para la versión de la App Store de macOS, el directorio de descarga predeterminado está en la zona de pruebas de la aplicación y se eliminará después de desinstalar la aplicación. Si desea conservar sus archivos de descarga, debe seleccionar un directorio de descarga diferente manualmente.","home":"Hogar","home_caption":"Descargar/cargar y archivos multimedia","library":"Biblioteca","library_caption":"Explorar recursos de medios","player":"Jugador","player_caption":"Reproductor multimedia","credits":"Créditos","credits_caption":"Consultar saldo de cuenta","account":"Cuenta","account_caption":"Iniciar sesión/Registrarse/Gestión","settings":"Ajustes","settings_caption":"Configuraciones para aplicación, jugador, cuenta","development":"Desarrollo","development_caption":"Modo desarrollador para uso interno","basic":"Básico","basic_caption":"Ajustes básicos","advanced":"Avanzado","advanced_caption":"Ajustes avanzados","blockchain":"Billetera","blockchain_caption":"${displayName} Monedero descentralizado","internal_notice":"Aviso de publicación interna","release_notes":"Notas de lanzamiento","terms_and_conditions":"Términos y condiciones","license_and_listen_notices":"Licencia y escucha Avisos de código abierto","close":"Cerca","success":"Éxito","fail":"Fallar","account_email_invalid_address":"Dirección de correo electrónico no válida","account_email_invalid_domain":"Dominio de correo electrónico no válido","account_email_unknown_status":"Estado de entrega de correo electrónico desconocido","account_email_unavailable_address":"Dirección de correo electrónico no disponible","account_email_suppressed_address":"Dirección de correo electrónico suprimida","account_loading":"Cargando...","account_is_required":"se requiere","account_sign_in_your_account":"Iniciar sesión","account_username":"Nombre de usuario","account_username_email_phone":"Número de teléfono o correo electrónico","account_password":"Contraseña","account_new_password":"Nueva contraseña","account_re_enter_password":"Escriba la contraseña otra vez","account_password_not_equal":"Dos contraseñas no son iguales","account_new_password_same":"La contraseña es la misma que la contraseña original.","account_forgot_your_password":"¿Olvidaste tu contraseña?","account_reset_password":"Restablecer la contraseña","account_sign_in":"Iniciar sesión","account_signed_in":"Registrado","account_sign_up":"Inscribirse","account_find_your_account":"Encuentra tu cuenta","account_enter_your_username":"Ingrese su número de teléfono o correo electrónico","account_search":"Buscar","account_email_sent_tip":"Se ha enviado un correo electrónico con un código de verificación a su correo electrónico:","account_phone_sent_tip":"Se ha enviado un SMS con un código de verificación a su teléfono:","account_email_phone_sent_tip":"Se han enviado un correo electrónico y un SMS con el código de verificación a su correo electrónico y teléfono, respectivamente:","account_software_token_tip":"MFA está habilitado para su cuenta. Para terminar de iniciar sesión, encienda o vea su dispositivo y escriba el TOTP","account_reset_your_password":"Restablecer su contraseña","account_verification_code":"Código de verificación","account_resend_code":"Reenviar codigo","account_code_has_been_resent":"El código de verificación ha sido reenviado","account_password_has_been_reset":"Contraseña se ha restablecido","account_submit":"Entregar","account_sign_up_your_account":"registra tu cuenta","account_fill_required_fields":"Complete los campos requeridos a continuación.","account_fill_optional_fields":"Complete los campos opcionales a continuación.","account_email":"Correo electrónico","account_invitation":"Invitación","account_invitation_code":"Código de invitación","account_i_accept":"Acepto","account_license_terms":"la licencia y los términos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos.","account_verify_fill_optional_fields":"Verifique y complete los campos opcionales.","account_nickname":"Apodo","account_gender":"Género","account_male":"Masculino","account_female":"Femenino","account_not_say":"No decir","account_birthday":"Cumpleaños","account_phone_number":"Número de teléfono","account_locale":"Local","account_tip_verified":"Verificado, iniciando sesión...","account_verified":"verificado","account_unverified":"inconfirmado","account_signed_up":"Inscrito","account_verify_your_identity":"Verifica tu identidad","account_finish":"Finalizar","account_signed_out":"Cerró sesión","account_change_password":"Cambiar la contraseña","account_change_email":"Cambiar e-mail","account_change_phone_number":"Cambiar número de teléfono","account_sign_out":"desconectar","account_current_password":"Contraseña actual","account_re_enter_new_password":"re-ingrese nueva contraseña","account_personal_information":"Información","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Hola,","account_cancel":"Cancelar","account_change":"cambiar","account_not_set":"no establecido","account_setting":"configuración","account_copy_code":"copia el código","account_account_setting":"Cuenta","account_task_page":"tarea de crédito","account_setting_caption":"Cambiar contraseña / Editar información","account_security":"Seguridad","account_want_to_join":"¿Querer unirse?","account_sign_in_now":"Iniciar sesión","account_changed":"Cambió","account_clipboard_with_invitation_code":"Código de invitación copiado","account_clipboard_with_code":"El código copiado","account_invitation_code_dialog_tip":"Enviarás a tu amigo un correo electrónico o mensaje de texto con un código de invitación:","account_available":"disponible","account_invited":"invitado","account_used":"usado","account_invitation_code_sent":"Se ha enviado el código de invitación.","account_invitation_channel_required":"Rellene al menos un canal de invitación","account_no_verification_code":"¿No puede recibir el código de verificación?","account_no_phone_number":"¿Sin número de teléfono?","account_sign_up_by_email":"Regístrese por correo electrónico","account_no_email":"No email? ","account_sign_up_by_phone_number":"Regístrese por número de teléfono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Si no hay TOTP, configure TOTP primero","account_setup_totp":"Configurar TOTP","account_contact_information":"Información del contacto","account_delete_account":"Borrar cuenta","account_deleted":"Eliminado","account_can_not_mfa":"MFA en problemas?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Deshabilitar MFA","account_disabled_mfa":"MFA deshabilitado","account_sms_mfa":"SMS MFA","account_totp_mfa":"AMF TOTP","account_totp":"TOTP","account_not_recommend":"No recomendado","account_oauth_sign_in_with":"Iniciar sesión con {provider}","account_sign_in_failed":"Error al iniciar sesión","account_tip_oath_sign_up":"El correo electrónico correspondiente a la cuenta {provider} actual: {email} aún no ha creado una cuenta","account_tip_confirm_delete_account":"Ingrese la contraseña de la cuenta actual para confirmar que desea eliminar la cuenta actual. (Las cuentas eliminadas no se pueden restaurar)","account_tip_config_mfa":"Puede optar por usar SMS o una contraseña de un solo uso basada en el tiempo (TOTP) como autenticación secundaria","account_error_can_not_enable_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar MFA","account_tip_can_not_enable_sms_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar SMS MFA","account_tip_can_not_enable_totp_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar TOTP MFA","account_tip_setup_totp":"Use aplicaciones como Authenticator para escanear el código QR a continuación o copie el código manualmente para agregar un token de seguridad","account_tip_verify_totp":"Verifica tu TOTP","account_link_your_social_account":"Enlaza tu cuenta social","account_unlink_your_social_account":"Desvincular cuenta social","account_tip_confirm_link":"¿Está seguro de que desea vincular la cuenta actual a su cuenta {provider}?","account_tip_confirm_unlink":"¿Está seguro de cancelar su cuenta vinculada de {provider}?","account_tip_linking":"vinculante...","account_tip_unlinking":"Desvinculación...","account_linked":"Atado","account_unlinked":"Sin consolidar","account_error_can_not_link_to_the_linked_account":"La cuenta social actual está vinculada a otra cuenta","account_error_can_not_link_to_the_mismatched_email":"La cuenta actual y la dirección de correo electrónico de la cuenta social son inconsistentes","account_error_can_not_link_before_email_verified":"La cuenta social no se puede vincular porque la cuenta actual no está vinculada a un correo electrónico verificado","account_tip_confirm_verify_email_phone":"¿Desea enviar un código de verificación al correo electrónico y al número de teléfono de la cuenta actual para verificar su identidad?","account_tip_confirm_verify_phone":"Si enviar un código de verificación al número de teléfono actual para verificar su identidad?","account_error_1_message_60_seconds":"Solo se puede enviar un SMS o correo electrónico cada 60 segundos, espere otros {delta} segundos","account_error_10_messages_per_day":"Cada teléfono móvil o correo electrónico solo puede enviar 10 mensajes en 24 horas","account_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","Network Error":"Hay un problema con la red, inténtalo de nuevo más tarde","account_error_user_not_exist":"el usuario no existe","account_error_incorrect_username_or_password":"Nombre de usuario o contraseña incorrecta","account_error_incorrect_original_password":"Contraseña original incorrecta","account_error_incorrect_password":"Contraseña incorrecta","account_error_username_not_found":"usuario no encontrado","account_error_can_not_reset_for_no_verified":"No se puede restablecer la contraseña de la cuenta no verificada","account_error_invalid_verification_code":"Código de verificación incorrecto, inténtalo de nuevo","account_error_expired_verification_code":"El código de verificación caducó, inténtalo de nuevo","account_error_password_not_long_enough":"La contraseña no es lo suficientemente larga","account_error_attempt_limit_exceeded":"Se excedió el límite de intentos, intente después de un tiempo.","account_error_password_attempts_exceeded":"Intentos de contraseña excedidos.","account_error_invalid_phone_number_format":"Formato de número de teléfono no válido","account_error_no_cell_phone_prefix":"Seleccione el prefijo para el número de teléfono","account_error_username_already_exists":"el nombre de usuario ya existe","account_error_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos","account_error_inactive_code":"El código de invitación no es un código activado","account_error_non_existent_code":"El código de invitación no existe.","account_error_unexpected":"Error inesperado","account_error_can_not_change_email_before_phone_bound":"El correo electrónico no se puede cambiar antes de vincular el número de teléfono","account_error_can_not_change_email_before_unbound_social_account":"El correo electrónico no se puede cambiar antes de desvincular la cuenta social","account_error_can_not_change_phone_before_email_bound":"El número de teléfono no se puede cambiar antes de vincular el correo electrónico","account_error_can_not_change_email_phone_with_mfa_enabled":"No se puede cambiar el correo electrónico o el número de teléfono móvil antes de desactivar MFA","account_error_not_supported_yet":"No hay apoyo por el momento","account_error_same_email":"La nueva dirección de correo electrónico no puede ser la misma que la dirección de correo electrónico original","account_error_same_phone":"El nuevo número de teléfono no puede ser el mismo que el número de teléfono original","account_error_email_not_exists":"La dirección de correo electrónico no existe","account_error_email_already_exists":"Ya existe una cuenta con el correo electrónico proporcionado.","account_error_phone_already_exists":"Ya existe una cuenta con el número de teléfono dado.","account_error_mfa_token_mismatch":"Discrepancia de código de token de software","account_error_recaptcha_not_loaded":"Hay un problema con la red. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_recaptcha_validation_failed":"La validación de ReCAPTCHA falló. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_sign_in_in_progress":"Intento de inicio de sesión pendiente ya en curso","account_field_range":"Límite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Solo admite alfanumérico","account_field_only_alphanumeric_and_symbol":"Solo admite caracteres alfanuméricos y símbolos.","account_field_only_chinese_alphanumeric_space_underline":"Solo admite caracteres alfanuméricos, espacios y guiones bajos.","account_field_prefix_without_number_space":"El primer carácter no puede ser un número o un espacio","account_field_suffix_without_space":"No puede terminar con un espacio","account_field_without_repeat_space":"No se pueden usar varios espacios seguidos","account_field_can_not_only_alphanumeric":"No puedes usar solo letras o números.","account_field_must_have_number_characters":"Debe tener caracteres numéricos","account_field_verification_code":"El código de verificación debe ser de seis dígitos","account_field_invitation_code":"El código de invitación debe ser alfanumérico","account_field_phone_number":"Formato de número de teléfono no válido","account_invalid_email_format":"Formato de correo inválido","account_sign_out_confirm":"¿Estás seguro de cerrar sesión? Esto detendrá todas las tareas.","account_sign_out_anyway":"Cerrar sesión de todos modos","account_signing_out":"Cerrando sesión...","account_request_save_settings":"Los ajustes no se guardan. Debe guardar los cambios antes de cerrar sesión.","pay":"Pagar","pay_with_credit":"Pagar por acelerar la descarga. Necesita alrededor de {0} de crédito","pay_with_credit_payed":"Acelerador. Todavía necesita alrededor de {0} de crédito","create_payment":"Crear pago","pay_target":"Objetivo","pay_for_torrent":"Pagar por {0}","your_subid":"su subID","your_credits":"tus creditos","pay_point_for_data":"Paga {0} puntos por {1} datos","auto_renew":"Habilitar renovación automática","transaction_details":"Detalles de la transacción","transaction_id":"Identificación","transaction_payer":"Pagador","transaction_payee":"Tenedor","transaction_category":"Categoría","transaction_changed_amount":"Importe modificado","transaction_meta":"Meta","transaction_status":"Estado","transaction_creation_time":"Tiempo de creación","receipt_code":"Código de recibo","transfer_amount":"Monto de la transferencia","code_the_receipt_code":"Copie el código de recibo a continuación para el pagador","fill_the_receipt_code":"Transferencia rellenando el código de pago facilitado por el beneficiario","expense":"Gastos","copied":"copiado","transfer":"Transferir","receive":"Recibir","copy":"Copiar","withdraw_fund":"Retirar fondos","category_paydata_payer":"costo de los datos","category_paydata_payee":"Ingreso de datos","category_transfer":"Transferir","category_bonus":"Prima","category_recharge":"Recargar","status_pending":"pendiente","status_completed":"terminado","status_finish":"finalizar","status_failed":"fallido","tip_invalid_receiver":"Código de receptor no válido","tip_invalid_amount":"El monto del crédito debe ser un valor flotante en el rango de 0 a 1000 (la precisión mínima es 0,001)","credit_get_more":"Obtenga más créditos","credit_no_data":"Datos no disponibles","credit_loading":"Cargando...","credit_not_enough_amount":"Crédito insuficiente","credit_amount_not_enough":"Crédito insuficiente","credit_payee_not_exist":"El beneficiario no existe","credit_invalid_amount":"Importe de crédito no válido","credit_can_not_transfer_to_yourself":"No se puede transferir a usted mismo","credit_latest":"El último","credit_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","add_subtitles":"Agregar subtítulos","open_file":"Abrir documento...","advanced_options":"Opciones avanzadas","title":"Título","location":"ubicación","subtitle_file":"archivo de subtítulos","unsupported_subtitle_type":"El tipo de archivo de {0} no es un tipo de subtítulo admitido","not_default_player":"El reproductor de video predeterminado no está configurado","this_is_an_audio_file":"Este es un archivo de audio.","the_added_subtitle_already_exists":"El subtítulo agregado ya existe","stop_stream_player":"La transmisión de medios se terminó porque la tarea se detuvo o se eliminó","stop_player":"El reproductor se canceló porque se eliminó el archivo.","playing_timeout_hint":"Tiempos de espera agotados. Por favor revisa la tarea","autoplay_hint":"La reproducción automática puede estar bloqueada por su navegador. Si el jugador no está jugando, intente hacer clic en la pantalla para continuar","remove_playing_confirm":"{0} todavía se está reproduciendo, eliminarlo detendrá el reproductor. ¿Estás seguro de eliminarlo?","unsupported_in_browser":"Todavía no es compatible con el modo navegador","client":"Cliente","warning":"Advertencia","enable":"Permitir","disable":"Desactivar","auto":"Auto","encrypt_connection":"Cifrar conexión","encrypted_connection":"Conexión encriptada","non_encrypted_connection":"Conexión no encriptada","connected_wires_not_disconnect":"Los cables conectados no se desconectarán","audio":"audio","video":"video","image":"imagen","subtitle":"subtitular","zip":"cremallera","text":"texto","unknown":"desconocido","add":"Agregar","undo":"Deshacer","backup":"Respaldo","not_default_app":"${displayName} no es su aplicación predeterminada para torrent y medios, ¿desea establecerla como predeterminada?","dont_show_again":"no volver a mostrar","go_to_settings":"Ir a la configuración","about_alphabiz":"Sobre ${displayName}","last_check_at":"último cheque en","update_channel":"Actualizar canal","check_for_update":"Buscar actualizaciones","checking_for_update":"Comprobación de actualización...","no_update_available":"Actualización no disponible","update_available":"Actualización disponible","update_now":"Actualizar ahora","update_later":"Actualizar más tarde","click_to_update":"Haga clic en el botón ACTUALIZAR AHORA para descargar y actualizar","update_failed":"Actualización fallida","update_failed_message":"Ocurrió un error durante la actualización:","check_shasum_failed":"No se pudo verificar la integridad del instalador","downloading_update":"Descargando actualización...","ready_to_update":"Listo para actualizar","restart_to_update":"Se descarga la actualización. ${displayName} saldrá para actualizarse por unos momentos.","already_latest":"La versión actual ({0}) ya es la última","update_timeout":"Tiempo de espera de actualización","no_available_release":"Sin lanzamiento disponible","no_available_installer":"No hay instalador disponible","feedback":"Comentario","select_a_type":"Seleccione un tipo","category":"Categoría","select_a_category":"Seleccione una categoría","require_title":"Se requiere título","describe_your_problem":"Describe tu problema","report_a_bug":"Reportar un error","request_a_new_feature":"Solicitar una nueva característica","download_or_upload":"Descargar cargar","others":"Otros","submit_with_system_info":"Enviar con información del sistema","submit_feedback":"Enviar comentarios","tweet_us":"twitteanos","tweet_too_long":"El tuit es demasiado largo","delete_characters":"Elimine al menos {0} carácter(es)","rest_characters":"Puede ingresar {0} carácter(es) más","update_alphabiz":"Actualizar ${displayName}","current_version":"Versión actual","cancel_update":"Cancelar actualización","slow_download_speed":"Descarga demasiado lenta","slow_download_speed_caption":"La descarga del instalador es demasiado lenta ahora. Por favor, compruebe el estado de la red.","update_canceled":"Actualización cancelada","current_version_release_time":"Tiempo de lanzamiento de la versión actual","expired_app":"${displayName} Caducado","version_out_of_date":"Versión desactualizada","have_to_update":"La versión de ${displayName} está desactualizada. Algunos protocolos o API están en desuso. Tienes que actualizar ${displayName} antes de continuar.","exit_alphabiz":"Salir ${displayName}","exit_and_update":"Salir y aplicar actualización","new_version_hint":"La nueva versión está disponible","no_new_version":"No hay nueva versión disponible","current_is_latest":"La versión actual ya es la última","click_to_check_update":"Haga clic en el botón [COMPROBAR ACTUALIZACIÓN] para buscar actualizaciones","download_latest_version_from_website":"Visite el sitio web oficial para descargar la última versión.","to_the_website":"Ir al sitio web","network_diagnotic":"Diagnóstico de red","diagnotic":"Diagnóstico","click_to_check":"Haga clic para verificar","click_to_check_again":"Haga clic para comprobar de nuevo","checking":"Comprobación","online":"En línea","offline":"Desconectado","dns_look_up":"búsqueda de DNS","error":"Error","aws_service":"Servicio AWS","network_pings":"Ping de red","not_found":"Extraviado","packet_loss":"Pérdida de paquetes","official_site":"Sitio oficial","download_test":"Descargar prueba","test_task":"Tarea de prueba {0}","download_failed":"Descarga fracasó","second_spend":"{0} gasto","open_default_player_failed":"Error al abrir el reproductor predeterminado","copied_to_clipboard":"Copiado al portapapeles","go_to":"Ir a","region_not_available":"Región no disponible","region_not_available_message":"¡Lo siento! Su región no está disponible para usar esta aplicación. Esta aplicación se cerrará después de {0} segundos","confirm":"Confirmar","no_available_result":"Ningún resultado disponible","invalid_password_format":"Formato de contraseña no válido","invalid_password_format_same":"La contraseña es la misma que la contraseña original.","error_password":"Error de contraseña","keychain_setting":"Llavero","setting_description":"Almacenamiento en la nube: guarde datos clave en la nube.\\nCambiar contraseña: cambie la contraseña de la clave de la biblioteca de medios.\\nMnemónico: un método alternativo para generar y restaurar claves.\\nImportar clave local: importe la clave guardada localmente en la biblioteca de medios.\\nExportar clave: guarda los datos de la biblioteca de medios actual en el local o en la nube.\\nCopia de seguridad de la clave en la nube: actualice los datos de la biblioteca de medios actual en la nube para hacer una copia de seguridad.","refresh_status":"Estado de actualización","confirm_import_key":"Confirmar clave de importación","confirm_update_cloud_key":"Ya tienes una clave en la nube. Actualizar la clave sobrescribirá la clave original. ¿Está seguro de que desea actualizar la clave almacenada en la nube?","export_key_with_cloud":"Ingrese la contraseña independiente que configuró para exportar la clave de la biblioteca almacenada en la nube y bloquee el archivo clave con la contraseña de desbloqueo","store_cloud_key_prompt_password":"Ingrese una contraseña independiente para almacenar la clave de la biblioteca en la nube","update_cloud_key_prompt_password":"Establezca una contraseña independiente para cifrar la clave de la biblioteca y luego actualícela en la nube","enable_cloud_storage_prompt_password":"Establezca una contraseña para la clave almacenada en la nube, a través de la cual puede recuperar la clave de la nube","input_unlock_password":"Establecer contraseña de desbloqueo","export_local_prompt_password":"Establezca una contraseña de desbloqueo para cifrar su archivo de clave. No guardaremos esta contraseña para usted, por lo que si pierde su contraseña, no podrá desbloquear su clave de biblioteca","require_unlock_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","require_independent_password":"Ingrese la contraseña independiente para obtener la clave almacenada en la nube","import_local_prompt_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","select_encrypt_mode":"Seleccione el modo de encriptación","update_cloud_key":"Actualizar la clave almacenada en la nube","backup_to_cloud":"Copia de seguridad de la clave de la biblioteca en la nube","save_local":"Guarde la clave de la biblioteca como archivo cifrado local","create_new_key":"Crear una nueva clave de biblioteca","creating_lib_key":"Creando clave de biblioteca...","loading_lib_key":"Cargando clave de biblioteca...","failed_to_create_lib_key":"No se pudo crear la clave de la biblioteca","failed_to_load_lib_key":"Error al cargar la clave de la biblioteca","import_local_key":"Importar clave localmente","import_lib_key_from_local":"Importar una clave de biblioteca localmente","import_from_cloud":"Importar la clave de la biblioteca desde la nube","create_or_import_key":"Crear o importar clave de biblioteca","create_or_import_key_desc":"La clave de la biblioteca es una clave independiente que se utiliza para obtener y publicar contenidos con una base de datos descentralizada.","store_your_lib_key":"Guarde su clave de biblioteca","export_cloud_key":"Exportar clave desde la nube","export_current_key":"Exportar clave actual","change_password":"Cambiar la contraseña","enable_cloud_storage":"Habilitar el almacenamiento en la nube","disable_cloud_storage":"Deshabilitar el almacenamiento en la nube","disable_cloud_storage_desc":"Deshabilitar el almacenamiento en la nube eliminará la clave guardada en la nube, asegúrese de que la clave esté guardada localmente","sync_at":"Sincronizar en: {time}","cloud_storage_enabled":"Sincronizar llavero con {storage}","cloud_storage_disabled":"Almacenamiento en la nube deshabilitado","saved_locally":"Guardado localmente","export_key":"Exportar archivo clave","cloud_independent_password":"Contraseña independiente de la nube","key_file_unlock_password":"Contraseña de desbloqueo de archivo clave","re_enter_unlock_password":"Vuelva a ingresar la contraseña de desbloqueo","independent_password_not_enabled":"La contraseña actual es la contraseña de la cuenta de Alphabiz (no se establece una contraseña independiente)","use_cognito_hash":"Usar la contraseña de la cuenta de Alphabiz","use_independent_password":"Usar contraseña independiente","keychain_lib":"clave de biblioteca","loading_keychain_state":"Cargando llavero...","backing_up":"Haciendo copia de seguridad...","backup_current_key":"Copia de seguridad de la clave actual en la nube","cloud_lib_key_not_existed":"la clave de la biblioteca no existe en la nube","open_keychain_file":"Abrir archivo de llavero","confirm_open_abk":"¿Quieres abrir el archivo ABK?","use_the_key":"usa la llave","backup_the_key":"Copia de seguridad de la clave en la nube","keychain_data_does_not_exist":"Los datos del llavero no existen","timeout of 0ms exceeded":"Hay un problema con la red, inténtalo de nuevo más tarde","XhrError":"Hay un problema con la red, inténtalo de nuevo más tarde","payer credit amount is not enough":"Crédito insuficiente","payee does not exist":"El beneficiario no existe","block_list_manage":"Administrar lista de bloqueo","blocked_users":"Usuarios bloqueados","blocked_channels":"Canales bloqueados","unblock_user":"Desbloquear usuario","unblock_channel":"Desbloquear canal","no_blocked_user":"Ningún usuario bloqueado","no_blocked_channel":"Ningún canal bloqueado","field_required":"{0} es requerido","setting":"Configuración","unknown_media":"Medios desconocidos","settings_button_visible":"Botón visible","settings_setting":"Configuración","settings_playback_rate":"Tasa de reproducción","settings_subtitle":"Subtitular","settings_pip":"Pepita","settings_fullscreen":"Pantalla completa","settings_subtitle_options":"Opciones de subtítulos","settings_normal":"Normal","settings_italic":"Itálico","settings_lighter":"Encendedor","settings_bolder":"más audaz","settings_small":"Pequeño","settings_large":"Grande","about":"Acerca de","services":"Servicios","hide":"Esconder","hide_others":"Esconder otros","show_all":"Mostrar todo","quit":"Abandonar","edit":"Editar","redo":"Rehacer","cut":"Cortar","paste":"Pegar","select_all":"Seleccionar todo","view":"Vista","reload":"Recargar","toggle_full_screen":"Alternar pantalla completa","toggle_developer_tools":"Alternar herramientas para desarrolladores","window":"Ventana","minimize":"Minimizar","bring_all_to_front":"Traer todo al frente","help":"Ayuda","github_repo":"Repositorio de Github","issues":"Asuntos","learn_more":"Aprende más","learn_spelling":"aprender ortografía","lookup_selection":"Buscar \\"{selection}\\"","search_with_google":"Buscar con Google","save_as":"Guardar como","save_image":"Guardar imagen","save_image_as":"Guardar imagen como ...","copy_link":"Copiar link","save_link_as":"Guardar enlace como ...","copy_image":"Copiar imagen","copy_image_as":"Copiar imagen como...","copy_image_address":"Copiar dirección de imagen","download_complete":"Descarga completa","download_complete_message":"{0} está descargado","is_running":"{0} se está ejecutando","open":"Abierto {0}","launch_problem":"Problema de lanzamiento","ask_clear_data":"Parece que está intentando iniciar {0} pero falló varias veces.\\n¿Desea borrar todos los datos de la aplicación e intentar iniciarla más tarde?","launch_directly":"Lanzar directamente","clear_all_data":"Borrar todos los datos","ask_clear_confirm":"¡Esto eliminará todas las configuraciones, registros y datos de usuario!\\nDespués de esto, es posible que deba iniciar {0} nuevamente.\\n¿Estás seguro de borrar los datos?","confirm_launch":"No, lanzar directamente","confirm_clear":"Sí, borrar todos los datos"}')},a368:function(e,t,a){"use strict";a.r(t);var n=a("00e9");a.d(t,"Clipboard",(function(){return n["a"]}));var o=a("b46e");a.d(t,"Share",(function(){return o["a"]}));var i=a("b009");a.d(t,"Filesystem",(function(){return i["c"]})),a.d(t,"Directory",(function(){return i["a"]})),a.d(t,"Encoding",(function(){return i["b"]}));var r=a("5c0a");a.d(t,"Device",(function(){return r["a"]}));var s=a("79b7");a.d(t,"App",(function(){return s["a"]}));var l=a("c03e");a.d(t,"Network",(function(){return l["a"]}));var c=a("67d7");a.d(t,"Capacitor",(function(){return c["a"]}))},a449:function(e,t,a){"use strict";a.d(t,"a",(function(){return x})),a.d(t,"d",(function(){return F})),a.d(t,"c",(function(){return B})),a.d(t,"b",(function(){return W}));a("de6c"),a("f200"),a("7a76"),a("a1c1");var n=a("36a1"),o=a("5584"),i=a("35f4"),r=a("2d62"),s=(a("dc89"),a("2425"),a("d558"));const l=e=>e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve(""),c=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},d=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e};var u={methods:{async $readFile(){const e=d(),t=await c(e);console.log("file$selected",t);const a=await l(t);return a},async $writeFile(e,t){if(Object(s["a"])()){const{Share:n,Filesystem:o,Directory:i}=await Promise.resolve().then(a.bind(null,"a368")),{value:r}=await n.canShare();if(!r)return;const{uri:s}=await o.writeFile({data:t,path:e,directory:i.Documents}).catch((()=>({})));return n.share({title:e,files:[s.startsWith("file://")?s:"file://"+s]}).catch((e=>{console.log(e)}))}const n=URL.createObjectURL(new Blob([t])),o=document.createElement("a");o.href=n,o.download=e,o.click(),setTimeout((()=>window.URL.revokeObjectURL(n)),0)}}},_=a("9572"),p=a("02fe"),m=a.n(p),h=a("9369"),g=a("d710"),f=a.n(g),b=a("ff9b");const y=a("d310").isElectron();y||console.warn("Warning: Torrent downloader is not impl in browser mode now");const v=Object(i["a"])("abcdefg",5),w=Object(i["a"])("0123456789abcdef",40),k=async(e,t=5)=>{let a=0;while(a=t)throw console.log("Failed at running",e),n;console.log("Retry #"+a++,e)}},S=!0,C=(...e)=>{if(!S)return;const[t,...a]=e;console.tag.green(...t).log(...a)},x=new b["a"]({data(){return{loading:!1}},methods:{setLoading(e){this.loading=e}}});function $(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function T(){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));return t}async function z(e,t={}){const a={password:{type:"password",model:"",rules:[h["c"].bind(this),h["d"].bind(this)]}},n=this.$alphabiz.dialog({title:this.$t("input_independent_password"),cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(async()=>{await e(t,t.dialog$arguments().prompts.password)})),...t});await n.promise()}async function P(e,t={}){const a={password:{type:"password",label:this.$t("account_password"),model:"",rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>a.password.model===e||this.$t("account_password_not_equal")]}},n=this.$alphabiz.dialog({cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password))),...t});await n.promise()}async function A(e,{delay:t,timeout:a,messages:{processing:n,failed:o}}){const i=$.call(this,n),r=e=>new Promise((t=>setTimeout(t,e))),s=e=>new Promise((t=>{let a=e;const r=Date.now(),s=setInterval((()=>{const l=Math.floor((Date.now()-r)/1e3);a=e-l,a>0?i.update({progress:`${n} ${a}s`}):(clearInterval(s),i.update({progress:o}),t())}),1e3)}));let l,c=!1;return await Promise.race([r(t).then((()=>s(Math.round(a/1e3)))),e().then((e=>{c=!0,l=e}))]).finally((()=>{r(c?0:1e3).then((()=>i.hide()))})),l}async function I(e={}){const t="lib",{mode:a,password:n}=e,i=await o["a"].dispatch("getKeychainCloud",{keyName:t,mode:a,password:n});if(["epriv","epub","priv","pub"].some((e=>!i[e])))throw new Error("invalid_key");return i}async function q(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const a="lib",{mode:n,password:o}=t;await Object(h["a"])(e,{mode:n,password:o,keyName:a})}async function O(e,t={}){var a;let n;if(t.dataStr?n=t.dataStr:(C(["requireKeyObjLocal","$readFile","start"]),n=await this.$readFile(),C(["requireKeyObjLocal","$readFile","done"],n)),!n)return;if(!n.startsWith("eyJ"))throw console.warn("legacy version or invalid key file"),new Error("invalid_key");const o=async e=>{const t={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},a=await _["a"].decryptLibKeyObj(t.decode(n),e).catch((()=>{}));if(!a||"object"!==typeof a)throw new Error("error_password");if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a};await z.call(this,(async(t,a)=>{const n=await o(a).catch((e=>(this.$q.notify({message:this.$t(e.message),type:"negative",position:"bottom-right"}),null)));C(["requireKeyObjLocal","decrypted"],n),n&&await e(n).finally((()=>t.hide()))}),{title:null!==(a=t.title)&&void 0!==a?a:this.$t("input_unlock_password"),message:this.$t("require_unlock_password")})}async function E(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{password:a}=t,n={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},o=await _["a"].encryptLibKeyObj(e,a).catch((()=>null));if(!o)throw new Error("error_password");const i=Math.floor(Date.now()/1e3);await this.$writeFile(`${f.a.displayName.replace(/\s/g,"_")}-libkey-${i}.abk`,n.encode(o))}async function D(){const e=async()=>{try{C(["createKeyObj","1"],"ensure logout"),await n["a"].logout();const e=v()+w(35),t=w(),a=e.substring(0,12);C(["createKeyObj","2"],"register"),await k((async()=>{await n["a"].register(e,t,{name:a,description:"",avatar:""})}));const o=e=>{var t;if(null===e||void 0===e||null===(t=e._)||void 0===t||!t.sea)throw new Error("current_lib_key_does_not_exist");const a=e._.sea;if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a},i=o(Object(r["t"])());return C(["createKeyObj","3","created"],i),i}catch(e){throw console.error(e),new Error("failed to create lib key obj")}finally{C(["createKeyObj","4"],"logout"),await n["a"].logout()}};return await A.call(this,e,{delay:1e4,timeout:15e3,messages:{processing:this.$t("creating_lib_key"),failed:this.$t("failed_to_create_lib_key")}})}async function j(){var e;if(!n["a"].user||null===(e=n["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=n["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t}async function N(e,t=!0){const a=async()=>{if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");return C(["loadKeyObj"],"lib.login"),await k((async()=>{await n["a"].logout(),await n["a"].login(e)})),C(["loadKeyObj"],"lib.prepareData"),await n["a"].prepareData(),!0};return t?await A.call(this,a,{delay:1e4,timeout:6e4,messages:{processing:this.$t("loading_lib_key"),failed:this.$t("failed_to_load_lib_key")}}):await a()}async function L(){localStorage.removeItem(`library-pair@${r["e"]}`),await n["a"].logout()}async function U(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"});let a=!1;const n=$.call(this,this.$t("loading_keychain_state"));await new Promise((e=>setTimeout(e,1e3)));const o=await this.$store.dispatch("syncKeychainState").catch((e=>(t(e.message),null)));if(!o)return n.hide(),a;const i=!(null===o||void 0===o||!o.lib),r=!!o.hash;o.unset&&o.hash;if(i){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));if(!t)return n.hide(),a}if(r)try{n.update({progress:this.$t("backing_up")}),await q.call(this,e,{mode:"cognito_hash",password:void 0}),a=!0}catch(s){t(s.message)}finally{n.hide()}else{n.hide();const o=async(n,o)=>{try{await q.call(this,e,{mode:"independent_password",password:o}),a=!0,n.hide()}catch(s){t(s.message)}},r=i?z:P,l=i?{message:this.$t("update_cloud_key_prompt_password")}:{message:this.$t("store_cloud_key_prompt_password")};await r.call(this,o,l)}return a}async function R(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async t=>{let a=null;const n={label:this.$t("import_from_cloud"),value:"import_from_cloud",disable:!0,desc:this.$t("loading_keychain_state")},o=e=>e.dialog$useLoadingState("ok",(()=>(a&&a(),t(e,e.dialog$arguments().option)))),i={type:"radio",model:"import_from_cloud",items:[n,{label:this.$t("import_lib_key_from_local"),value:"import_from_local"},{label:this.$t("create_new_key"),value:"create_new_key"}]},r=this.$alphabiz.dialog({title:this.$t("create_or_import_key"),message:this.$t("create_or_import_key_desc"),options:i,ok:o});function s(e){const t=e=>{n.label=e?`${this.$t("import_from_cloud")} (${e}s)`:this.$t("import_from_cloud"),r.update({options:Object.assign({},i)})};let a=null;const o=new Promise((n=>{let o=e,i=setInterval((()=>{if(o<=0)return a(!0);t(o),o-=1}),1e3);a=e=>{i&&clearInterval(i),i=null,n(e)}}));return o.then((e=>{if(t(),e)return r.vm.handleOk()})),()=>a(!1)}await this.$store.dispatch("syncKeychainState").then((e=>{e.lib?(n.disable=!1,n.desc=this.$t("sync_at",{time:this.$d(e.timestamps.lib,"YMDHms")}),i.model="import_from_cloud"):(n.disable=!0,n.desc=this.$t("cloud_storage_disabled"),i.model="import_from_local"),r.update({options:Object.assign({},i)})})).catch((t=>e(t.message))),n.disable||(a=s.call(this,6),this.$watch((()=>r.vm.dialog$arguments().option),(()=>a()))),await r.promise()};await a((async(a,n)=>{C(["select",n]);const o=async e=>{const n=await N.call(this,e);n&&(t(),a.hide())};if("create_new_key"===n){const t=await D.call(this);if(!t)return;let a=!1;const r=async t=>{const o=async t=>{const a={type:"radio",model:"backup_to_cloud",items:[{label:this.$t("save_local"),value:"save_local"},{label:this.$t("backup_to_cloud"),value:"backup_to_cloud",desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),cancel:!0,options:a,ok:e=>e.dialog$useLoadingState("ok",(()=>t(e,e.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((t=>e(t.message))),await n.promise()};await o((async(o,i)=>{if(C([n,i]),"save_local"===i)await P.call(this,(async(n,i)=>{try{await E.call(this,t,{password:i}),a=!0,n.hide(),o.hide()}catch(r){e(r.message)}}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")});else if("backup_to_cloud"===i){if(a=await U.call(this,t),!a)return;o.hide()}}))};if(await r(t),!a)return;try{C([n,"stored"]),await o(t)}catch(i){e(i.message)}}else if("import_from_local"===n)await O.call(this,o);else if("import_from_cloud"===n){C([n,"syncKeychainState"]);const t=await this.$store.dispatch("syncKeychainState").catch((t=>(e(t.message),null)));if(null===t||void 0===t||!t.lib)return C([n,"cloud_lib_key_not_existed"]),void e("cloud_lib_key_not_existed");if(t.unset&&t.hash){C([n,"use_cognito_hash"]);try{const e=await I.call(this,{mode:"cognito_hash",password:void 0});await o(e)}catch(i){e(i.message)}return}C([n,"use_independent_password"]),await z.call(this,(async(t,a)=>{try{const e=await I.call(this,{mode:"independent_password",password:a});await o(e),t.hide()}catch(i){e(i.message)}}),{message:this.$t("require_independent_password")})}}))}async function M(){try{const e=await this.$store.dispatch("syncKeychainState");if(null!==e&&void 0!==e&&e.lib)return!1;const t=await D.call(this);if(!t)throw new Error("failed_to_create_keyObj");const a=await U.call(this,t);if(!a)throw new Error("failed_to_store_keyObj");const n=await N.call(this,t);if(!n)throw new Error("failed_to_load_keyObj");return!0}catch(e){return C(["lib$auto_create","cancel"],e.message),!1}}const F={mixins:[u],created(){this.$amplify.addOnAuthStateChangedListener((async e=>{if("signedIn"!==e)return;x.setLoading(!0);const t=()=>{const e=localStorage.getItem(`library-pair@${r["e"]}`);if(!e)return;const t=JSON.parse(e);return["epriv","epub","priv","pub"].some((e=>!t[e]))?void 0:t},a=t();if(a)await N.call(this,a,!1);else{const e=await M.call(this);e||await R.call(this)}x.setLoading(!1)})),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedOut"===e&&await L.call(this)}))}},B={mixins:[u],beforeCreate(){if("KeychainItem"!==this.$options.name&&"MnemonicCode"!==this.$options.name)throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async lib$exportCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=await j.call(this).catch((t=>(e(t.message),null)));if(!t)return;await P.call(this,(async(a,n)=>{await E.call(this,t,{password:n}).then((()=>a.hide()),(t=>e(t.message)))}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")})},async importKeyObject(e){const t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});return N.call(this,e).then(t)},async lib$importLocalKey(){const e=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});await O.call(this,(async t=>{await N.call(this,t),e()}))},async lib$backupCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=await j.call(this).catch((t=>(e(t.message),null)));if(!a)return;const n=$.call(this,this.$t("loading_keychain_state"));await o["a"].dispatch("syncKeychainState").then((async o=>{const i=await T.call(this);if(i)if(o.hash&&o.unset){n.update({progress:this.$t("backing_up")});try{await q.call(this,a,{mode:"cognito_hash",password:void 0}),t()}catch(r){e(r.message)}finally{n.hide()}}else{n.hide();const o=e=>P.call(this,e,{title:this.$t("input_independent_password"),message:this.$t("update_cloud_key_prompt_password")});await o((async(n,o)=>{try{await q.call(this,a,{mode:"independent_password",password:o}),t(),n.hide()}catch(r){e(r.message)}}))}else n.hide()}),(t=>{e(t.message),n.hide()}))},async lib$exportCloudKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=$.call(this,this.$t("loading_keychain_state")),a=await o["a"].dispatch("syncKeychainState").catch((t=>(e(t.message),null))).finally(t.hide);if(!a)return;const n=async e=>{let t=this.$t("export_key_with_cloud"),n={unlockPassword:{type:"password",model:"",label:this.$t("key_file_unlock_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("re_enter_unlock_password"),rules:[e=>n.unlockPassword.model===e||this.$t("account_password_not_equal")]}};const o=a.unset&&a.hash;o?t+=`; ${this.$t("independent_password_not_enabled")}`:n={password:{type:"password",model:"",label:this.$t("cloud_independent_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},...n};const i=this.$alphabiz.dialog({title:this.$t("export_key"),message:t,prompts:n,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.password||"",a.unlockPassword,o?"cognito_hash":"independent_password")}))});await i.promise()};await n((async(t,a,n,o)=>{try{const e=await I.call(this,{mode:o,password:a});await E.call(this,e,{password:n}),t.hide()}catch(i){e(i.message)}}))}}},W={methods:{async lib$openABK(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),n=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});if(!y)return;const o=a("b052").ipcRenderer;[".abk"].some((t=>e.endsWith(t)))&&(e=await o.invoke("read-abk",e));const i=async()=>{const a=async()=>{const t=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),message:this.$t("confirm_open_abk",{filename:e}),cancel:!0});return!!await t.promise()};await a()&&await O.call(this,(async e=>{C(["lib$openABK","keyObj"],e);const a=async e=>{const a={type:"radio",model:"use_the_key",items:[{value:"use_the_key",label:this.$t("use_the_key")},{value:"backup_the_key",label:this.$t("backup_the_key"),desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),options:a,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((e=>t(e.message))),await n.promise()};await a((async(a,o)=>{C(["lib$openABK","selectAction"],o);try{if("use_the_key"===o)await N.call(this,e);else if("backup_the_key"===o){const t=await U.call(this,e);if(!t)return}n(),a.hide()}catch(i){t(i.message)}}))}),{title:this.$t("open_keychain_file"),dataStr:e})};"signedIn"===this.$store.state.account.authState?(C(["lib$openABK","hot boot"]),await i()):(C(["lib$openABK","cold boot"]),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedIn"===e&&await i()}),{once:!0}))}}}},a44b:function(e,t,a){"use strict";a("c5fa")},a51a:function(e,t){e.exports={github:{username:"tanshuai",repo:"alphabiz",branch:"main",internalRepo:"alphabiz-app"},bucketUrl:"https://s3.amazonaws.com/internal.alpha.biz",s3DownloadUrl:"https://d2v5t3td4po4es.cloudfront.net/releases/"}},a5d3:function(e,t,a){},a5fe:function(e,t,a){},a749:function(e,t,a){"use strict";var n=a("8750"),o=a("a368"),i=a("8a63"),r=a("5584"),s=a("1926"),l=a("d558");const c=e=>{if(Object(l["a"])()){if(!e.connected)return console.log("Network offline");if("cellular"===e.connectionType){if(r["a"].getters.settings.downloadWithCellular)return console.log("User allowed download with cellular");Object(i["d"])(!0),Object(i["e"])(!0),n["a"].create({title:s["b"].t("download_with_cellular"),message:s["b"].t("download_with_cellular_desc"),ok:s["b"].t("download_with_cellular_confirm"),cancel:s["b"].t("pause_all")}).onOk((()=>{r["a"].dispatch("set",{downloadWithCellular:!0}).then((()=>{r["a"].dispatch("fetchSettings"),Object(i["c"])(!0),Object(i["h"])(!0)}))}))}else e.connectionType}},d=async()=>{o["Network"].addListener("networkStatusChange",(e=>{c(e)}));const e=await o["Network"].getStatus();c(e)};d(),t["a"]=c},a75f:function(e,t,a){},aa59:function(e,t,a){},aa8a:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return s}));var n=a("fc3a"),o=a("a368"),i=a("d558");async function r(){if(Object(i["a"])()){const{value:e,type:t}=await o["Clipboard"].read();return t.startsWith("text")||"url"===t?e:""}return navigator.clipboard.readText()}async function s(e){return Object(i["a"])()?o["Clipboard"].write({string:e}):Object(n["a"])(e)}},abc6:function(e,t,a){"use strict";(function(e){a("a1c1"),a("0c26"),a("de6c"),a("f200"),a("7a76");var n=a("7471"),o=a("ec793"),i=a("1ef4"),r=a("4d52"),s=a("508e"),l=a.n(s),c=a("fb31"),d=a.n(c);const u=d.a.protocol,_=d.a.shortProtocol,p=e=>encodeURIComponent(e.trim().replace(/\s+/g," ")),m=async(t,a)=>{const o=p(a||t.name||`${u}_task`),i=e.from(t.protocolType+t.hash,"hex").toString("base64").replace(/\//g,"_"),r=o.replace(/\s/g,"+").replace(/_/g,"+d;").replace(/\//g,"_").replace(/&/g,"+amp;")+"/"+i,s=[],l=[];for(const e of t.trackers||[])"number"===typeof e?s.push(e.toString(16)):l.push(e);let c=s.map((e=>("0000"+e).slice(-4))).join("");l.length&&(c=c+"&tr="+l.join("&"));for(const e in t.data)Array.isArray(t.data[e])?c=c+"&"+e+"="+t.data[e].join(""):"string"===typeof t.data[e]&&(c=c+"&"+e+"="+t.data[e]);const d=(await n["a"].compress(c,9)).toString("base64");return c=e.from(c).toString("base64"),c.length>1.1*d.length&&(c=d),c.length?u+"://"+r+"&"+c.replace(/\//g,"_"):u+"://"+r},h=async t=>{if(console.log("toObject",t),!t.startsWith(`${u}://`))return null;const a=t.replace(`${u}://`,"").replace(/\/+$/,"").split("&");a.length>2&&console.error("str is invalid alphabiz uri");const[o,i]=a,r=o.lastIndexOf("/");if(-1===r)return null;const s=o.substring(0,r).replace(/\+amp;/g,"&").replace(/_/g,"/").replace(/\+d;/g,"_").replace(/\+/g," ")||"",c=o.substring(r+1),d=e.from(c.replace(/_/g,"/"),"base64").toString("hex");console.log(d,c,i);const _=d.substring(0,2),p=d.substring(2);let m="";try{const t=e.from(i.replace(/_/g,"/"),"base64");console.log("buffer",t);const a=await n["a"].decompress(t);a&&(m=a.toString("base64"))}catch(v){console.log("LZMA decompress failed.",v.message),m=i||""}const h=e.from(m,"base64").toString().split("&"),[g,...f]=h,b=[];if(g.includes("="))f.unshift(g);else for(let e=0;e{if(!g.length)return f.clear(),void(b=!1);const e=g.shift();if(!e||!f.has(e))return y();b=!0;const t=f.get(e);f.delete(e),m(o["a"].toObject(t.url),t.name).then((e=>{"function"===typeof t.cb&&t.cb(null,e),Array.isArray(t.cb)&&t.cb.forEach((t=>{"function"===typeof t&&t(null,e)}))})).catch((e=>{console.error(e),t.cb(e)})).finally((()=>{b=!1,y()}))},v=async(e,t)=>{const{hash:a,url:n,name:o}=e;if(!n)return console.log("error encoding",e),t(new Error(a),n);if(n.startsWith("magnet")){const e=Date.now();if(g.includes(a)){const n=f.get(a);if(n){if(e-n.timestamp<5)return void(Array.isArray(n.cb)?n.cb.push(t):n.cb=[n.cb,t]);"function"===typeof n.cb?n.cb(new Error(`Cannot encode ${n.url}`)):Array.isArray(n.cb)&&n.cb.forEach((e=>{"function"===typeof e&&e(new Error(`Cannot encode ${n.url}`))})),f.delete(a)}else g.splice(g.indexOf(a),1)}return f.set(a,{url:n,timestamp:e,name:o,cb:t}),g.push(a),void(b||y())}if(n.startsWith(_+"-library")){const e=await m(i["a"].toObject(n));return t(null,e)}if(n.startsWith(r["a"].config.prefix)){const e=await m(r["a"].toObject(n));return t(null,e)}return console.log("error encoding",e),t(new Error(a),n)},w=async e=>{const t=await h(e.startsWith(_+":")?e.replace(`${_}://`,`${u}://-/`):e);switch(t.protocolType){case"01":return o["a"].fromObject(t);case"02":return i["a"].fromObject(t);case r["a"].config.type:return r["a"].fromObject(t)}throw console.log(t),new Error(`Unsupported protocol type ${t.protocolType}`)};t["a"]={encode:v,decode:w}}).call(this,a("eb72").Buffer)},ac09:function(e,t,a){"use strict";a("8dc9")},ac84:function(e,t,a){},ae24:function(e,t,a){},ae46:function(e){e.exports=JSON.parse('{"packageVer":"0.2.4","channel":"web","buildTime":"202409121823","buildCommit":"86c09859","sourceCommit":"86c09859","version":"0.2.5-web"}')},aecb:function(e,t,a){"use strict";(function(e){a("a1c1"),a("de6c"),a("0c26");var n=a("61af"),o=a.n(n),i=a("a3fc"),r=a.n(i),s=a("9a50"),l=a("5584"),c=a("d310"),d=a("d7df"),u=a("c5a5"),_=a("3aea"),p=a("d710"),m=a("d558"),h=a("aa8a"),g=a("36a1"),f=a("a368"),b=a("908d");const y=Object(c["isElectron"])()?a("b052").ipcRenderer:{};t["a"]={name:"TaskDialog",inject:["taskQueue"],components:{FileSelector:s["a"]},data(){const e=l["a"].getters.settings,t={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer};return{isElectron:Object(c["isElectron"])(),isCapacitor:Object(m["a"])(),value:!1,tab:"url",mode:"download",currentTab:"url",setAsDefault:!1,input:"",inputFile:null,onMagnetCloseCallbacks:[],settings:t,libraryDialog:null}},computed:{disableTasks(){return!!l["a"].getters.shouldDisableTasks||!!l["a"].getters.settings.forceLogin&&(!l["a"].getters.accountUserInfo||!l["a"].getters.accountUserInfo.sub)}},methods:{updateSettings(){const e=l["a"].getters.settings;this.settings={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}},show(e,t){"string"===typeof e&&["download","upload"].includes(e)&&(this.mode=e),"string"===typeof t?(this.input=t,this.inputFile=null,this.tab="url"):"object"===typeof t&&null!==t?(this.input="",this.inputFile=t,this.tab="file",console.log("File",t)):(this.input="",this.inputFile=null),this.value=!0,this.$nextTick((()=>{this.updateSettings()}))},hide(){this.value=!1},toggle(){this.value=!this.value},selectFolder(){var e;if(!Object(c["isElectron"])())return null===(e=this.$refs.folderSelector)||void 0===e?void 0:e.click();const t="download"===this.mode?[{name:"Torrent",extensions:["torrent"]}]:[];y.once("select_file_or_directory",((e,t)=>{if(t&&!t.canceled&&t.filePaths&&t.filePaths.length){const e=o.a.statSync(t.filePaths[0])?t.filePaths[0]:r.a.basename(t.filePaths[0]);this.inputFile=[{path:e,name:e}],console.log("select folder",this.inputFile)}else console.log("skip select folder",t)})).send("select_file_or_directory",t)},onFileSelected(e){console.log("Select",e),Array.isArray(e)?this.inputFile=e:e instanceof File?this.inputFile=[e]:console.log("Invalid file",e)},onFolderSelected(e){if(!Array.isArray(e)||!e.length)return console.log("not files");console.log("Select",e),this.inputFile=e},selectSavePath(){Object(c["isElectron"])()&&y.once("select_directory",((e,t)=>{if(!t||t.canceled||!t.filePaths)return;const a=t.filePaths[0];a&&(this.settings.downloadDirectory=a,this.setAsDefault&&l["a"].dispatch("set",{downloadDirectory:a}))})).send("select_directory")},downloadTorrent(){const e=this.inputFile&&(this.inputFile.path||this.inputFile[0].path);let t=this.input;if(t.includes(p["shortProtocol"]+"://")){let e=0;t=t.replace(new RegExp(`${p["shortProtocol"]}://`,"g"),(()=>e++?`${p["protocol"]}://${p["protocol"]}task-${e}/`:`${p["protocol"]}://${p["protocol"]}task/`))}if("url"===this.tab&&!["magnet",p["protocol"],p["shortProtocol"]].some((e=>t.startsWith(e+":"))))return this.$q.notify(this.$t("invalid_download_url"));d["a"].emit("download_torrent",{type:this.tab,url:t,file:e,token:"url"===this.tab?t:e||t,...this.settings}),this.value=!1,this.input=""},async uploadTorrent(){console.log("Upload torrent",this.inputFile);const t=this.inputFile;if(console.log("n",t.name),Object(m["a"])()&&b["b"].is.ios){const a=Date.now(),n=this.$q.dialog({message:this.$t("open_file")+"...",persistent:!0,ok:!1,cancel:!1}),o=r.a.join("Uploads",t.name);console.log("Delete"),await f["Filesystem"].mkdir({directory:f["Directory"].Documents,path:r.a.dirname(o),recursive:!0}),await f["Filesystem"].deleteFile({path:o,directory:f["Directory"].Documents});let i=0;console.log("Start writing",o);const s=new FileReader,l=1e7;let c=0,u=c+l;const _=async a=>{const r=a;i+=r.byteLength,await f["Filesystem"].appendFile({path:o,directory:f["Directory"].Documents,data:e.from(a).toString("base64")}),n.update({message:this.$t("open_file")+`... (${(i/t.size*100).toFixed(2)}%)`}),c+=l,u+=l,c{if(c>=t.size)return console.log("done");const e=t.slice(c,u);s.readAsArrayBuffer(e)};s.onload=()=>{const e=s.result;_(e)},s.onerror=()=>{console.log("error",s.error.code,s.error.toString(),s.readyState,s.DONE),console.log("codes",s.error.NOT_FOUND_ERR,s.error.SECURITY_ERR,s.error.ABORT_ERR),console.log("file",t.name,t.size),console.log("Cost",Date.now()-a),m()};const m=()=>{n.hide(),this.value=!1,setTimeout((()=>{this.$q.dialog({message:this.$t("file_too_large"),ok:this.$t("ok")})}),500)},h=async()=>{console.log("Cost",Date.now()-a),console.log("Finish writing file",t.name);const{uri:e}=await f["Filesystem"].getUri({path:o,directory:f["Directory"].Documents});console.log("saved",decodeURI(e.replace("file://",""))),d["a"].emit("seed_torrent",{file:[decodeURI(e.replace("file://",""))],token:t.name,...this.settings}),this.value=!1,setTimeout((()=>{n.hide()}),1e3)};return p()}const a=this.inputFile.path?[this.inputFile.path]:this.inputFile.map((e=>e.path));d["a"].emit("seed_torrent",{file:a,token:a[0],...this.settings}),this.value=!1},submit(){(""!==this.input||this.inputFile)&&("download"===this.mode?this.downloadTorrent():this.uploadTorrent())},onPasteFile(e,t){console.log("on paste file",e);const a=decodeURI(e.replace(/^file:\/\//,""));if(!o.a.existsSync(a))return console.log("Not exists");const n=a.includes("/")?a.split("/").filter((e=>e)).pop():a;e.endsWith(".torrent")?this.show("download",[t||{path:a,name:n}]):this.$q.dialog({html:!0,title:this.$t("upload"),message:this.$t(`ask_if_upload_file
${a}
`),ok:this.$t("upload"),cancel:this.$t("cancel")}).onOk((()=>{d["a"].emit("seed_torrent",{file:[a],token:a,settings:this.settings})}))},onPasteUrl(e){if(!e.startsWith(p["protocol"]+"://$"))return e.startsWith("magnet:")||e.startsWith(p["protocol"]+":")||e.startsWith(p["shortProtocol"]+":")?void this.show("download",e):console.log("error not magnet",e)},onPasteLibraryUrl(e){if(this.libraryDialog)return;if(!e.startsWith(p["shortProtocol"]+"-library"))return;const[t,a,n]=e.replace(new RegExp(`^${p["shortProtocol"]}-library://`),"").split("/");let o=0;const i=()=>{const r=Object(_["c"])(n);if(!r)return o||this.$q.notify(this.$t("loading")),o++<5?setTimeout(i,2e3):(console.log("cannot parse",e),void this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}));"channel"===t&&(this.libraryDialog=this.$q.dialog({title:this.$t("go_to_library"),message:this.$t("go_to_library_channel_msg",[decodeURIComponent(a||n)]),ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>{this.$root.$emit("navigate-to"),this.$router.push(r+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",r))),this.libraryDialog=null})).onDismiss((()=>{this.libraryDialog=null})))};g["a"].whenReady.then(i)},async onPaste(e){if(!Object(c["isElectron"])()&&!Object(m["a"])())return;if(this.value)return;const t=e._ab_payload_;console.log(t);const a=t||e.clipboardData.getData("text")||e.clipboardData.files;if(console.log("onPaste",a),"object"===typeof a&&a.path&&this.onPasteFile(a.path,a),this.disableTasks)return console.log("wait for login to continue",a),this.taskQueue.push({type:"download",file:a});if("function"===typeof e._onClose&&this.onMagnetCloseCallbacks.push(e._onClose),a.startsWith("file://"))return this.onPasteFile(a),e.preventDefault();if(a.startsWith("magnet:"))return this.onPasteUrl(a),e.preventDefault();if([p["protocol"],p["shortProtocol"]].some((e=>a.startsWith(e+":")))){const t=await Object(u["a"])(a);return t.startsWith("magnet:")?this.onPasteUrl(a):t.startsWith(p["shortProtocol"]+"-library")?this.onPasteLibraryUrl(t):console.warn("unknown url:",t),e.preventDefault()}}},mounted(){this.$root.$off("openTaskDialog"),this.$root.$off("closeTaskDialog"),this.$root.$on("openTaskDialog",((...e)=>{console.log("open task",...e),this.show(...e)})),this.$root.$on("closeTaskDialog",(()=>this.hide())),document.body.addEventListener("paste",this.onPaste)},watch:{value(e){if(e&&"download"===this.mode){if(this.input||this.inputFile&&"file"===this.tab)return;const e=async e=>{if(!e)return;const t=e.trim();if(["magnet",p["protocol"],p["shortProtocol"]].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(u["a"])(t);if(!e||!e.startsWith("magnet"))return;this.tab="url",this.input=t}};Object(h["a"])().then(e).catch((()=>{console.log("cannot read clipboard")}))}const t=this.onMagnetCloseCallbacks.splice(0);t.forEach((e=>{"function"===typeof e&&e()})),this.input="",this.inputFile=null}}}}).call(this,a("eb72").Buffer)},af04:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a("7ca3"),o=a.n(n),i=(a("a1c1"),a("0c26"),a("f680")),r=a("1926"),s=a("d310");class l{static showRaw(e,t){i["a"].create({message:e,type:t,position:"bottom-right",timeout:5e3})}static show(e,t,a){const n="account_",o=n+e.replace(/ /g,"_"),s=r["b"].t(o,a);i["a"].create({message:s,type:t,position:"bottom-right",timeout:5e3})}static showPositive(e){this.show(e,"positive")}static showNegative(e){let t;e=e.replace("PreSignUp failed with error ",""),e=e.replace("CustomMessage failed with error ",""),e=e.replace("VerifyAuthChallengeResponse failed with error ",""),"."===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),0===e.indexOf("Cognito received the following error from Amazon SES when attempting to send email:")?e="error_email_not_exists":["Member must satisfy regular expression pattern: [0-9]+","Member must have length greater than or equal to 6","Member must have length less than or equal to 6"].findIndex((t=>e.indexOf(t)>=0))>=0&&(e="error_mfa_token_mismatch"),e.indexOf("$recaptcha")>=0&&(e="Recaptcha Validation Failed"),"No user info"===e&&(e="Network Error"),"XhrError"===e&&(e="Network Error");const a="data::",n=e.lastIndexOf(a);if(n>=0){t=e.substring(n+a.length),e=e.substring(0,n).trim();try{t=JSON.parse(t)}catch{}}if("error_1_message_60_seconds"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+6e4-(new Date).getTime();t={delta:Math.min(Math.max(Math.ceil(e/1e3),1),60)}}else if("error_10_messages_per_day"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+864e5;t={date:e}}const o=!Object.keys(this.ERROR_EVENTS).includes(e);if(o)this.showRaw(e,"negative",t);else{const a=this.ERROR_EVENTS[e];if("error_network"===a)return void c();this.show(a,"negative",t)}}}function c(){i["a"].create({icon:"wifi_tethering_error",multiLine:!0,message:r["b"].t("account_error_network"),type:"negative",position:"bottom-right",timeout:5e3,actions:[{noCaps:!0,label:r["b"].t("network_diagnotic"),color:"white",handler:()=>{s["Bus"].$emit("CALL_NETWORK_DIAGNOSTIC")}}]})}o()(l,"ERROR_EVENTS",{"Bad destination mailbox address":"email_invalid_address","Invalid domain":"email_invalid_domain","Other or undefined mailbox status":"email_unknown_status","Mailbox unavailable":"email_unavailable_address","Suppressed email address":"email_suppressed_address","Invalid code provided, please request a code again":"account_error_invalid_verification_code","Network error":"error_network","Network Error":"error_network","timeout of 0ms exceeded":"error_network","User does not exist":"error_user_not_exist","Incorrect username or password":"error_incorrect_username_or_password","Username/client id combination not found":"error_username_not_found","Cannot reset password for the user as there is no registered/verified email or phone_number":"error_can_not_reset_for_no_verified","Invalid verification code provided, please try again":"error_invalid_verification_code","Password did not conform with policy: Password not long enough":"error_password_not_long_enough","Attempt limit exceeded, please try after some time":"error_attempt_limit_exceeded","Invalid phone number format":"error_invalid_phone_number_format","User already exists":"error_username_already_exists","Incorrect password":"error_incorrect_password",you_need_to_accept_license_terms:"error_you_need_to_accept_license_terms",incorrect_original_password:"error_incorrect_original_password",unexpected_error:"error_unexpected",invitation_channel_required:"invitation_channel_required",invitation_no_code:"invitation_no_code",can_not_change_email:"error_can_not_change_email_before_phone_bound",can_not_change_phone:"error_can_not_change_phone_before_email_bound",not_supported_yet:"error_not_supported_yet",can_not_change_email_phone_with_mfa_enabled:"error_can_not_change_email_phone_with_mfa_enabled",error_same_email:"error_same_email",error_same_phone:"error_same_phone","the code is not an activated code":"error_inactive_code","the code has been used":"error_inactive_code","the code is non-existent":"error_non_existent_code","An account with the given email already exists":"error_email_already_exists","An account with the given phone number already exists":"error_phone_already_exists","Email or phone number is required":"error_email_or_phone_required",error_email_not_exists:"error_email_not_exists",LINKED_ACCOUNT:"error_can_not_link_to_the_linked_account",MISMATCHED_EMAIL:"error_can_not_link_to_the_mismatched_email",error_can_not_link_before_email_verified:"error_can_not_link_before_email_verified",error_can_not_change_email_before_unbound_social_account:"error_can_not_change_email_before_unbound_social_account","Invalid code or auth state for the user":"error_invalid_verification_code","Invalid session for the user, session is expired":"error_expired_verification_code","Invalid session for the user, session can only be used once":"error_expired_verification_code",error_recaptcha_not_loaded:"error_recaptcha_not_loaded","Only 1 message can be sent every 60 seconds":"error_1_message_60_seconds","Only 10 messages can be sent per day":"error_10_messages_per_day",sign_in_failed:"sign_in_failed","Recaptcha Validation Failed":"error_recaptcha_validation_failed","reCAPTCHA verification error":"error_recaptcha_validation_failed","Pending sign-in attempt already in progress":"error_sign_in_in_progress","Invalid code received for user":"error_mfa_token_mismatch","Code mismatch and fail enable Software Token MFA":"error_mfa_token_mismatch","Your software token has already been used once":"error_mfa_token_mismatch","Code mismatch":"error_mfa_token_mismatch",error_mfa_token_mismatch:"error_mfa_token_mismatch",error_can_not_enable_mfa:"error_can_not_enable_mfa","Password attempts exceeded":"error_password_attempts_exceeded"})},afe1:function(e,t,a){},b031:function(e,t,a){},b16a:function(e,t,a){"use strict";a("6ce4")},b1d8:function(e,t,a){"use strict";a("5984")},b2b4:function(e,t,a){"use strict";a("0742")},b34a:function(e,t,a){"use strict";(function(e){a("0c26"),a("de6c"),a("e39c");var n=a("212e"),o=a("229c"),i=a("d710"),r=a.n(i);a("36f2");function s(){var e;const{packageFormat:t,version:n}=i(),o=n.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:r.a.name,app_type:"website",app_env:"production",app_format:null!==t&&void 0!==t?t:"unknown",app_version:o.version,app_channel:null!==(e=o.channel)&&void 0!==e?e:"stable"};function i(){return a("ae46")}}async function l(){const e=await fetch("https://ipinfo.io/json?token=69cbd72732f325").then((e=>e.json())).catch((()=>null));if(!e)return!1;console.log("Analytics.location:",e);const t={country:e.country};await o["a"].updateEndpoint({location:t})}async function c(e){e.router.app.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await o["a"].updateEndpoint({userId:e.store.state.account.sub})}))}t["a"]=async(t,{app:a})=>{if(Object(n["a"])({eventHandlers:{"_userauth.sign_up":(e,t)=>{},"_userauth.sign_in":(e,t)=>{},"_userauth.sign_out":(e,t)=>{}}}),e&&e.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))return void o["a"].configure({disabled:!0});const i=s();console.log("Analytics.app_data:",i),o["a"].configure({AWSPinpoint:{endpoint:{attributes:{...Object.entries(i).reduce(((e,[t,a])=>({...e,[t]:[a]})),{})},metrics:void 0}}}),await Promise.all([l(),c(a)])}}).call(this,a("28d0"))},b36a:function(e,t,a){},b36c:function(e){e.exports=JSON.parse('{"lib_index":"Lar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Seguindo","lib_favorite":"Favoritos locais","lib_local_favorites":"Favoritos locais","lib_channel":"Canal","lib_submit":"Enviar","lib_from_network":"Usando banco de dados descentralizado da rede","welcome_to_lib":"Bem-vindo à biblioteca de mídia ${displayName}","register_or_login":"Registrar/Entrar","lib_recommend":"recomendar","lib_recommend_desc":"Bem-vindo à Biblioteca ${displayName}! Esta biblioteca usa banco de dados descentralizado da rede. Para começar a usar, você precisa seguir alguns canais.","follow_any_channel_to_continue":"Siga qualquer canal para continuar","follow_channels_and_continue":"Siga os canais {0} e continue","show_more_for_me":"Mostrar mais para mim","no_more_recommend":"Não recomendo mais","key":"Chave","create_key":"Criar chave","save_key":"Salvar chave","save_key_file":"Deseja salvar sua chave como arquivo?","import_key":"Importar chave","import":"Importar","invalid_key":"Chave inválida","back_to_top":"De volta ao topo","search_for_channel":"Pesquisar ID do canal","search_channel_no_result":"Não foi possível encontrar o canal com ID {0}","please_input_channel_id":"Insira o ID do canal","welcome_help_text":"Esta é uma biblioteca de mídia descentralizada. Você precisa\\n para criar uma conta para este banco de dados. Vamos\\n gerar uma chave pessoal para você automaticamente.\\n Se você já possui uma chave, também pode importar\\n isso aqui.","welcome_key_text":"Depois de fazer login, clique no botão [SAVE KEY]\\n no canto inferior direito para salvar sua chave privada.\\n Se você perder sua chave, talvez não consiga fazer login novamente.","redirect_to_recommend":"Parece que você não seguiu nenhum canal. Redirecionando para a página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Deixar de seguir","following":"Seguindo","share":"Compartilhar","unfollow_confirm":"Tem certeza que deseja deixar de seguir este canal? Todas as postagens deste canal em sua linha do tempo serão removidas.","follow_failed_hint":"A operação ainda está pendente em segundo plano. Se a operação não for aplicada por muito tempo, reinicie o aplicativo e tente novamente.","block":"Bloquear","unblock":"Desbloquear","blocked":"Bloqueado","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal irá removê-lo de sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","block_creator":"Bloquear o criador deste canal","unblock_creator":"Desbloquear o criador deste canal","block_creator_confirm":"O criador do bloco removerá todos os canais criados por este criador da sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","share_url_copied":"URL de compartilhamento é copiado para sua área de transferência","follow_time":"Siga o tempo","update_time":"Tempo de atualização","search":"Procurar","type":"Tipo","added":"Adicionado","click_to_task":"Clique para ir para a tarefa","lib_already_added":"Você já adicionou este vídeo","description":"Descrição","poster":"Poster","channel_poster":"Cartaz do canal","preview":"Visualização","creator":"O Criador","creator_detail":"Detalhes do criador","loading_creator":"Carregando informações do criador","wait_for_creator_loaded":"Aguarde o carregamento das informações do criador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Do utilizador","channel_title":"Título do canal","channel_id":"ID do canal","post_title":"Título da postagem","post_id":"ID da postagem","import_data_from_excel":"Importar dados do excel","set_excel_keys":"Definir chaves do Excel","excel_import_succeded":"A importação do Excel foi bem-sucedida","excel_import_success_msg":"Linhas {0} estão prontas para serem adicionadas, itens {1} inválidos e {2} duplicados são ignorados","cannot_find_channel":"Não foi possível encontrar o canal","cannot_find_posts":"Não é possível encontrar postagens","add_channel":"Adicionar canal","add_post":"Adicionar postagem","edit_channel":"Editar canal","channel_setting":"Configuração do canal","edit_post":"Editar post","edit_posts":"Editar postagens","channel_detail":"Detalhes do canal","remove":"Remover","remove_channel":"Remover canal","remove_channel_confirm":"Tem certeza que deseja remover esta postagem? Isso não pode ser recuperado.","remove_post":"Remover postagem","remove_post_confirm":"Tem certeza que deseja remover este canal? Isso não pode ser recuperado.","preview_mode":"Modo de pré-visualização","preview_mode_desc":"Esta é uma prévia do seu canal. Todas as taxas de filmes são mostradas aqui.","edit_user_profile":"Editar perfil de usuário","name":"Apelido","avatar":"avatar","no_following":"Nenhum canal a seguir. Clique para ir para","no_recommend":"Nenhum canal recomendado. Clique para ir para","first_recomment_msg":"Pode demorar um pouco se esta for a primeira vez que o aplicativo é iniciado.","invalid_image":"imagem inválida","image_not_reachable":"Este URL de imagem não está acessível.","channel_not_found":"Canal não encontrado","cannot_get_channel_info":"Não é possível obter informações do canal. Este canal pode ser removido por seu criador e não estar mais disponível.","validate_error":"Validar erro","validate_user_name_no_space":"O nome de usuário não deve conter espaços","validate_url_no_space":"URL não deve conter espaços","validate_user_name_length":"O nome de usuário deve ter comprimento entre {0} e {1}","validate_user_desc_length":"A descrição do usuário não deve ter mais de {0} caracteres","validate_user_avatar_url":"O avatar do usuário deve ser url com menos de 2048 caracteres","validate_channel_title_length":"O título do canal deve ter comprimento entre 1 e 100","validate_channel_desc_length":"A descrição do canal deve ter comprimento entre 10 e 300","validate_channel_image_url":"A visualização do canal deve ser um URL com menos de 2.048 caracteres","validate_post_title_length":"O título da postagem deve ter comprimento entre 1 e 100","validate_post_desc_length":"A descrição do post deve ter entre 10 e 300","validate_post_image_url":"O pôster deve ser url com menos de 2048 caracteres","validate_post_url":"URL ${displayName} inválido","validate_post_url_length":"${displayName} URL não deve ter mais de 2048 caracteres","film_rate":"taxa de filme","set_film_rate":"Definir taxa de filme","select_a_rate_before_enter":"Você precisa selecionar uma taxa de filme antes de entrar na biblioteca de mídia.","library_available_rate":"Taxa de filme disponível na biblioteca","rate_g":"G – Audiências Gerais","rate_g_desc":"Todas as idades admitidas. Nada que ofendesse os pais pela visualização pelos filhos.","rate_pg":"PG – Orientação Parental Sugerida","rate_pg_desc":"Parte do material pode não ser adequado para crianças. Os pais são instados a dar \\"orientação parental\\". Pode conter alguns materiais que os pais podem não gostar para seus filhos pequenos.","rate_pg_13":"PG-13 – Pais fortemente advertidos","rate_pg_13_desc":"Alguns materiais podem ser impróprios para crianças menores de 13 anos. Os pais devem ser cautelosos. Alguns materiais podem ser impróprios para pré-adolescentes.","rate_r":"R – Restrito","rate_r_desc":"Menores de 17 anos requerem acompanhamento dos pais ou responsável adulto. Contém algum material adulto. Os pais são convidados a aprender mais sobre o filme antes de levar seus filhos pequenos com eles.","rate_nc_17":"NC-17 – Apenas para adultos","rate_nc_17_desc":"Ninguém com 17 anos ou menos é admitido. Claramente adulto. Crianças não são admitidas.","set_as_private":"Definir como privado","hide_in_explore":"Ocultar este canal na página de exploração","hidden":"Escondido","select_a_rate":"Selecione uma taxa de filme","select_from_tasks":"Selecione entre as tarefas","import_from_magnet":"Importar do imã:?...","input_magnet_url":"Ímã de entrada:? url","task_title":"Título da tarefa","set_title":"Definir título","add_to_local_favorites":"Adicionar aos favoritos locais","remove_from_local_favorites":"Remover dos favoritos locais","removed_favorite":"Favorito removido","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locais como backup","import_favorites_file":"Importar arquivo de favoritos","not_a_favorite_file":"Este arquivo não é um arquivo de backup favorito","connection_status":"Status da conexão","gun_server_list":"nós de cache","custom_nodes":"Nós de cache personalizados","custom_nodes_hint":"Os nós de cache personalizados serão aplicados após o reinício do aplicativo","wait_for_reboot":"Aguardando reinicialização...({seconds}s)","reboot_now":"Reinicie agora","reboot_later":"Reiniciar mais tarde","peer_list":"Nós Diretos","server":"URL do nó","peer":"Par","peer_id":"ID do nó","connection":"Conexão","data_source":"Fonte de dados","sync":"Sincronizar","syncing":"Sincronizando","sync_completed":"Sincronização concluída","got_all_post":"Você já tem todos os posts","placeholder_channel_title":"Nome do seu canal","placeholder_channel_desc":"Descrição sobre este canal","placeholder_post_title":"Nome do filme (ano)","placeholder_post_desc":"Descrição sobre este filme","private_channel":"canal privado","creator_blocked":"Criador bloqueado","go_to_library":"Ir para a biblioteca?","go_to_library_channel_msg":"Você quer ir para o canal da biblioteca {0}?","magnet_does_not_have_name":"Este ímã:? url não tem um nome, você precisa adicionar um título de postagem primeiro.","no_available_post":"Nenhuma postagem disponível","following_channel_no_post":"Todos os seus canais a seguir não têm postagem disponível. Isso pode ser causado por erro de rede. Se você já segue alguns canais, os posts podem ser carregados posteriormente.","share_to_library":"Compartilhar na biblioteca","quick_start":"Começo rápido","quick_start_desc":"Comece a criar uma postagem com uma tarefa ou arquivo","select_file":"Selecione o arquivo...","select_folder":"Selecione a pasta...","post_options":"opções de postagem","channel_options":"Opções de canal","create_new_channel":"Criar novo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Selecione o canal existente","uploaded_by":"{title} enviado por {name}","created_by":"{title} criado por {name}","creating_new_channel":"Criando novo canal...","created_new_channel":"Novo canal criado","creating_new_post":"Criando nova postagem...","created_new_post":"Nova postagem criada","create_new_post":"Criar nova postagem","quick_start_timeout":"{0} tempo limite. Isso pode ser causado por erro de rede. Por favor, tente novamente mais tarde.","file_too_large":"Arquivo muito grande","file_too_large_msg":"Este arquivo tem mais de 4 GB ({size}) e pode levar muito tempo para ser preparado. Tem certeza de que deseja continuar?","resolving_folder_files":"Resolvendo arquivos de pasta...","folder_too_large":"Pasta muito grande","folder_too_large_msg":"Os arquivos nesta pasta são maiores que 4 GB ({size} no total) e podem levar muito tempo para serem preparados. Tem certeza de que deseja fazer o upload?","creating_new_task":"Criando nova tarefa...","cannot_create_task":"Não é possível criar tarefa","cannot_create_task_msg":"Isso pode causar algum erro. Se a tarefa for criada corretamente, você poderá verificar a lista de tarefas posteriormente.","cannot_get_task_name":"Não é possível obter o nome da tarefa. Você precisa inserir um primeiro.","remove_old_task":"Remover tarefa antiga","remove_old_task_desc":"O modo Web só pode criar uma tarefa de cada vez. Deseja remover a tarefa antiga?","subtitle_list":"lista de legendas","optional":"opcional","with_subtitle":"Com {language} legendas","maximumSubtitleNum_limit":"O número de legendas atingiu o máximo","add_subtitle_url":"Adicionar link de download de legenda","cannot_add_subtitle":"Falha ao adicionar legendas","cannot_add_subtitle_msg":"Idioma da legenda não selecionado ou link de download inválido.","support_subtitle_type":"Apenas legendas nos formatos srt e vtt são suportadas.","recommend_opensubtitles":"Recomenda-se usar o link de download de legenda ou id em www.opensubtitles.org.","take_down":"Derrubar","serious_violation":"Violação Grave","copyright_disputes":"Disputas de direitos autorais","adults_only":"Somente Adultos","takedown_reason":"Motivo da remoção","takedown_mode":"Modo de remoção","admins":"Administradores","takedown_user":"Remover este criador","takedown_channel":"Remover este canal","takedown_post":"Remover esta postagem","select_takedown_reason":"Selecione o motivo da remoção","takedown_invalid_reason":"Motivo de remoção inválido","takedown_invalid_user_id":"ID de usuário inválido. O ID deve incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal inválido. O ID deve incluir 20 caracteres","takedown_invalid_post_id":"ID de postagem inválido. O ID deve incluir 20 caracteres","takedown_management":"Gerenciamento de remoção","users":"Usuários","channels":"Canais","posts":"Postagens","you":"Você","preset":"predefinido","admin":"Administrador","committee":"Comitê","about_takedown_mode":"Sobre o modo de remoção:\\nPreset: Configurado no repositório github. Todos eles serão removidos da biblioteca.\\nAdmin: Qualquer um dos votos dos administradores será removido.\\nComitê: Pelo menos metade dos votos dos administradores serão removidos.","cannot_edit_preset":"Você não pode editar esta linha, pois é uma linha predefinida","cannot_edit_not_vote":"Você não pode editar esta linha porque não votou nela","remove_vote":"Remova seu voto","post_preload_failed":"Falha ao pré-carregar esta postagem. O link de download pode estar desatualizado, então esta postagem não pode ser reproduzida imediatamente.","about_cache_node":"Sobre o nó de cache","edit_cache_node":"Editar nó de cache","create_cache_node":"Criar nó de cache","about_cache_node_desc":"${displayName} usa o servidor de armas como nó de cache. Você pode editar nós personalizados na configuração avançada","learn_how_to_deploy_gun":"Aprenda como implantar seu próprio servidor de armas","repeat_add":"A tarefa foi adicionada, não a adicione novamente","upload":"Carregar","download":"Download","delete":"Excluir","delete_task":"Excluir tarefa","delete_confirm_message":"Excluir esta tarefa? Isso é irrevogável","also_delete_files":"Excluir também arquivos","default_delete_files":"Padrão excluir arquivos baixados após remover tarefa","not_now":"Agora não","delete_autoupload_confirm":"Esta tarefa contém o arquivo que você colocou no diretório de upload automático. Excluir esta tarefa também excluirá o arquivo.","delete_anyway":"Excluir mesmo assim","upload_too_many_files":"Carregar muitos arquivos","ask_if_unlimit_upload_amount":"O diretório de upload automático contém muitos arquivos. Deseja desativar a limitação da quantidade de upload? *Isso pode causar problemas de desempenho","disable_limitation":"Desativar limitação","not_length":"A operação de vários arquivos não é suportada no momento, por favor, coopere","download_torrent":"⇬ Fazer download do arquivo","upload_torrent":"Subir arquivo","files":"arquivos","file":"Arquivo","folder":"Pasta","start_all":"Iniciar tudo","pause_all":"Pausar tudo","remove_all":"Deletar tudo","upload_all":"Carregar tudo","clear_history":"Apagar o histórico","pause_all_finish_payments":"Isso finalizará todos os pagamentos.","accelerating":"acelerando","link_task":"Tarefa de link","torrent_task":"Tarefa de arquivo","ok":"OK","cancel":"Cancelar","download_directory_position":"Baixar posição do diretório","torrent_file":"arquivo de tarefa","magnetic_link_incorrect":"O formato do link está incorreto","delete_fail":"Excluir falha","pause":"Pausa","paused":"Pausado","stop_torrent":"Parar","seed":"Semente","resume":"Retomar","downloading":"Baixando","downloaded":"baixado","uploading":"Enviando","auto_uploading":"Carregamento automático","uploaded":"Carregado","pending":"Aguardando outras tarefas","verifying":"verificando","waiting_for_verify":"Esperando para verificar","seeding":"Semeando","completed":"Concluído","status":"Status","task_name":"Nome da tarefa","size":"Tamanho","progress":"Progresso","sort":"Organizar","ascending":"Ascendente","descending":"descendente","file_loading":"Carregando arquivo...","loading":"Carregando","unknown_status":"Desconhecido","play_while_downloading":"Jogar...","upload_or_play":"Carregar / Reproduzir","play":"Jogar","ask_if_upload_file":"Subir arquivo?","ask_if_upload_or_play":"Carregar ou reproduzir arquivo?","torrent_error":"Erro ao adicionar tarefa:","no_peers":"Tente novamente mais de {0} vezes e nenhum par está disponível","torrent_exists":"Tarefa já existe.","show_origin_torrent":"Obter arquivo de tarefa original ou url","show_directory":"Abra o diretório deste torrent","task_num":"Tarefas","total_upload_speed":"Velocidade de upload","total_download_speed":"Velocidade de download","path_missing":"Erro: não é possível encontrar o caminho do torrent","origin_not_found":"Não é possível encontrar as informações da tarefa de origem.","text_copied":"Magnum url é copiado para a área de transferência","copy_magnet_uri":"Copiar ímã:? URI","copy_download_uri":"Copiar URI de download","copy_share_uri":"Copiar URI de compartilhamento","uri_copied":"O URI foi copiado com sucesso para a área de transferência","uri_copy_failed":"Falha ao copiar uri","more":"Mais...","toggle_list_mode":"Alternar modo de lista","comment":"Comente","operations":"Operações","open_directory":"Diretório aberto","no_downloading_task":"Nenhuma tarefa de download","remove_all_downloading_tasks":"Remover todas as tarefas de download?","remove_all_upload_tasks":"Remover todas as tarefas de upload?","remove_autoupload_files":"Remover arquivos de upload automático","remove_all_history":"Remover todo o histórico?","remaining":"Restante","created_time":"hora criada","used_time":"Tempo usado","completed_time":"Tempo concluído","yesterday":"Ontem","before_yesterday":"{empty}","earlier":"Mais cedo","miss_file":"Alguns arquivos estão faltando","delete_miss_file_task":"Faltam arquivos fome em {0}.","common_peer":"Par comum","ab_peer":"${displayName} colega","ab_peer_verified":"Par verificado ${displayName}","ab_peer_available":"${displayName} pares disponíveis","alphabiz_accelerating":"${displayName} acelerando","income":"Renda","income_info":"Renda (hoje/total)","total_income_info":"Renda: {0}(hoje) / {1}(total)","login_to_see_income":"Faça login para ver as estatísticas de receita","credit_cost":"Custos de crédito","downloaded_by_payment":"Baixado por Pagamentos","file_not_found":"Não é possível encontrar este arquivo no local","no_task":"Não pergunte","no_matched_task":"Nenhuma tarefa correspondente","space_not_enough":"Espaço em disco insuficiente","need_more_space":"Precisa de {0} mais espaço, mas o disco atual tem {1} livre ({2} reservado). As tarefas são pausadas. O pré-carregamento da biblioteca está desativado. Você pode reativá-lo em [Configurações - Avançado].","seeders":"Semeadores","last_update":"Última atualização","connecting":"Conectando","connected":"Conectado","request_timed_out":"Solicitação expirou","connection_failed":"Falha na conexão","invalid_download_url":"URL de download inválido","download_link":"Link para Download","empty_files":"Nenhum arquivo no diretório","duplicate_task":"Duplicar tarefa","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarefa não está pronta. Pausar esta tarefa irá removê-la diretamente.","some_task_not_ready":"Algumas tarefas não estão prontas. Pausar essas tarefas irá removê-las diretamente.","failed_to_delete_files":"Falha ao excluir arquivos","failed_to_delete_files_desc":"Falha ao excluir alguns arquivos da tarefa. Pode ser necessário excluí-los manualmente","unknown_error":"Erro desconhecido: {0}","more_files_are_not_shown":"({0} mais arquivos não são mostrados por motivos de desempenho)","no_available_file":"Nenhum arquivo disponível. Aguarde a tarefa pronta.","service_worker_error":"Não é possível carregar o ServiceWorker para reprodução. Seu navegador pode não oferecer suporte a esse recurso ou o ServiceWorker não está ativado. Pode ser necessário recarregar esta página e tentar novamente.","add_task_first":"Você precisa adicionar a tarefa primeiro.","player_task_time":"O jogador leva muitos segundos se preparando para o jogo. Pode haver algo errado com a tarefa.","web_mode_hint":"O modo web de ${displayName} suporta apenas pares WebRTC. Para uma melhor experiência, faça o download do aplicativo de desktop ${displayName}.","web_mode_task_hint":"Clique nos botões abaixo para adicionar uma tarefa. Você só pode adicionar uma tarefa por vez.","save_to_local":"Salvar no local","save_as_zip":"Salvar como ZIP","creating_save_file":"Criando arquivo de salvamento...","upload_as_one_directory":"Carregar como um diretório","upload_as_single_files":"Carregar como arquivos únicos","web_mode_upload_single":"Você só pode carregar um único arquivo no modo web","download_success":"Baixe com sucesso","download_fail":"Download falhou","wait_for_downloaded_to_share":"Aguarde a tarefa baixada antes de compartilhar.","download_with_cellular":"Baixar tarefas usando celular","download_with_cellular_desc":"Você está usando a rede celular. Tarefas de download com celular podem exigir taxas adicionais de sua operadora.","download_with_cellular_confirm":"Ainda baixa com celular","language":"Linguagem","appearance":"Aparência","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Escuro","basic_setting":"básico","hideMenu":"Ocultar menu de aplicativos (somente Windows e Linux)","autoHide":"Ocultar Janela Automática","autoStart":"Abrir no login","restore":"Mantenha o tamanho e a posição da janela ao sair","autoStartUnfinished":"Retome automaticamente todas as tarefas inacabadas","default_download_path":"Caminho Padrão","download_directory":"Baixe o diretório","upload_directory":"Carregar Diretório","enable_auto_upload":"Ativar upload automático","unlimit_upload_amount":"Quantidade ilimitada de upload","unlimit_upload_warning":"Permitir upload de grande quantidade de arquivos. Isso pode causar problemas de desempenho","start":"Comece","transport_setting":"Transmissão","upload_limit":"Limite de upload","download_limit":"limite de download","payed_user_share_rate":"Taxa de compartilhamento de usuário pago","unlimited":"Ilimitado","limit_input_error":"O número limite deve ser positivo","BT_setting":"Configurações de tarefas","saveLinkSeed":"Salvar link como arquivo de tarefa","autoDownload":"Baixar link e conteúdo automaticamente","continuousSeeding":"Continue a semear até parar manualmente","seedSharingRate":"Proporção de sementes","seedTime":"Tempo de Semeadura (minutos)","task_manage":"Gerenciamento de Tarefas","maximumDownloadNum":"Máximo de tarefas ativas","maximumConnectionsNum":"Conexão máxima por servidor","range_error":"O intervalo deve estar entre {0} e {1}","random":"aleatório","breakpointContinuation":"Continuar","automaticSkip":"Mostrar download automaticamente após adicionar tarefa","afterNotification":"Notificação após a conclusão do download","deleteConfirm":"Nenhuma confirmação é necessária antes de excluir a tarefa","submit":"Salvar & Aplicar","discard":"Descartar","reset":"Reiniciar","reset_all_settings":"Redefinir todas as configurações?","preferences_resetted":"Preferências redefinidas","traditional_chinese":"chinês tradicional","japanese":"japonês","english":"Inglês","chinese":"Chinês simplificado","advancedSettings":"Avançado","autoUpdate":"Atualização automática","autoCheckUpdate":"Verifique automaticamente se há atualização","proxy":"Proxy","useProxyService":"Ativar proxy","trackerService":"Servidores Rastreadores","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Atualize a lista de rastreadores todos os dias automaticamente","manualUpdateTracker":"atualização manual","manualUpdateSuccess":"Atualizar servidores rastreadores com sucesso","manualUpdateFail":"Falha ao atualizar de:","listenPort":"Ouvir portas","BTlistenPort":"Porta de transmissão de dados","DHTlistenPort":"Porta Hash Distribuída","protocols":"Protocolos Compatíveis","setDefaultClientForFollowingProtocols":"Definir como o cliente padrão para os seguintes protocolos","magnetUrl":"Magnético","video_file":"Arquivo de vídeo","audio_file":"Arquivo de áudio","security":"Segurança","impersonateUserAgent":"Agente de usuário simulado","RPCauthorizationkey":"Segredo RPC","viewDocument":"Veja o Manual do Segredo RPC","developer":"Desenvolvedor","applicationLogPath":"caminho de registro do aplicativo","downloadSessionPath":"Baixar caminho da sessão","resetDownloadSessionRecord":"Redefinir sessão de download","restoreInitialSettings":"Restauração de fábrica","preferences_set_successfully":"Salve as preferências com sucesso!","preferences_set_fail":"Falha ao salvar preferências!","change_not_save":"Alterações não salvas","discard_all_changes":"Descartar todas as alterações e sair?","stay_in_page":"Fique na página","disk_usage":"Uso de disco","pause_if_less_space":"Pause e notifique se o espaço for menor que (MB)","default_video_player":"Player de vídeo padrão","video_cache_time":"Cache de reprodução de fluxo","minutes":"minutos","system_default":"Sistema padrão","media_player":"Reprodutor de mídia","library_film_rate":"Taxa de filme disponível","library_show_explore":"Mostrar página [Explorar]","library_setting":"Configuração da biblioteca","library_sync_setting":"Configuração de sincronização da biblioteca","keychain_sync_status":"Status de sincronização das chaves","sync_with_aws":"Sincronize as Chaves com o Amazon Web Services","backup_to_local":"Backup para arquivo local","enable_sync_with_aws":"Habilitar sincronização com AWS","disable_sync_with_aws":"Desabilitar sincronização com AWS","disable_sync_with_aws_desc":"Isso removerá a chave salva no servidor. Verifique se você já exportou sua chave.","input_independent_password":"Inserir senha independente","change_independent_password":"Alterar senha independente","password_error":"Erro de senha","password_invalid":"Senha inválida","key_existed":"A chave existia","key_not_found":"Chave não encontrada","library_recommend":"Biblioteca recomendada","show_all_channels":"Mostrar todos os canais na página de recomendação da biblioteca","not_logged_in":"Não logado","login_to_continue":"Entre para continuar","mnemonic_code":"código mnemônico","wordlist":"Lista de palavras","restore_code":"Restaurar do código","generate_code":"Gerar código","export_mnemonic_code":"Exportar código mnemônico","import_mnemonic_code":"Importar código mnemônico","print":"Imprimir","save_as_txt":"Salvar como txt","save_as_pdf":"Salvar como pdf","from_file":"De arquivo","not_valid_mnemonic_code":"Este não é um código mnemônico válido","cannot_parse_code_as_key":"Não é possível analisar este código mnemônico como chave de biblioteca","import_key_hint":"Tem certeza de importar esta chave? Isso recuperará sua chave antiga na biblioteca.","import_key_confirm":"Sim, importe.","library_preload":"Pré-carregar tarefas da biblioteca","show_preload":"Mostrar tarefas de pré-carregamento","set_download":"Definir diretório de download","set_download_desc":"Para a versão macOS App Store, o diretório de download padrão está na caixa de proteção do aplicativo e será excluído após a desinstalação do aplicativo. Se você deseja manter seus arquivos de download, precisa selecionar um diretório de download diferente manualmente.","home":"Lar","home_caption":"Download/Upload e Arquivos de Mídia","library":"Biblioteca","library_caption":"Explorar recursos de mídia","player":"Jogador","player_caption":"Reprodutor de mídia","credits":"Créditos","credits_caption":"Verificar saldo da conta","account":"Conta","account_caption":"Entrar/Inscrever-se/Gerenciamento","settings":"Configurações","settings_caption":"Configurações para App, Player, Conta","development":"Desenvolvimento","development_caption":"Modo de desenvolvedor para uso interno","basic":"básico","basic_caption":"Configurações básicas","advanced":"Avançado","advanced_caption":"Configurações avançadas","blockchain":"Carteira","blockchain_caption":"${displayName} Carteira Descentralizada","internal_notice":"Aviso de lançamento interno","release_notes":"Notas de lançamento","terms_and_conditions":"Termos e Condições","license_and_listen_notices":"Avisos de licença e escuta de código aberto","close":"Fechar","success":"Sucesso","fail":"Falhar","account_email_invalid_address":"Endereço de email invalido","account_email_invalid_domain":"Domínio de e-mail inválido","account_email_unknown_status":"Status de entrega de e-mail desconhecido","account_email_unavailable_address":"Endereço de e-mail indisponível","account_email_suppressed_address":"Endereço de e-mail suprimido","account_loading":"Carregando...","account_is_required":"é necessário","account_sign_in_your_account":"Entrar","account_username":"Nome de usuário","account_username_email_phone":"Número de telefone ou e-mail","account_password":"Senha","account_new_password":"Nova Senha","account_re_enter_password":"Digite novamente a senha","account_password_not_equal":"Duas senhas não são iguais","account_new_password_same":"A senha é a mesma que a senha original","account_forgot_your_password":"Esqueceu sua senha?","account_reset_password":"Redefinir senha","account_sign_in":"Entrar","account_signed_in":"Assinado","account_sign_up":"Inscrever-se","account_find_your_account":"Encontre Sua Conta","account_enter_your_username":"Digite seu número de telefone ou e-mail","account_search":"Procurar","account_email_sent_tip":"Um e-mail com um código de verificação foi enviado para o seu e-mail:","account_phone_sent_tip":"Um SMS com um código de verificação foi enviado para o seu telefone:","account_email_phone_sent_tip":"E-mail e SMS com código de verificação foram enviados para seu e-mail e telefone, respectivamente:","account_software_token_tip":"A MFA está habilitada para sua conta. Para concluir o login, ligue ou visualize seu dispositivo e digite o TOTP","account_reset_your_password":"Redefina sua senha","account_verification_code":"Código de verificação","account_resend_code":"Reenviar código","account_code_has_been_resent":"O código de verificação foi reenviado","account_password_has_been_reset":"A senha foi redefinida","account_submit":"Enviar","account_sign_up_your_account":"Inscreva sua conta","account_fill_required_fields":"Preencha os campos obrigatórios abaixo.","account_fill_optional_fields":"Preencha os campos opcionais abaixo.","account_email":"E-mail","account_invitation":"Convite","account_invitation_code":"Código de Convite","account_i_accept":"aceito","account_license_terms":"a licença e os termos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro.","account_verify_fill_optional_fields":"Verifique e preencha os campos opcionais.","account_nickname":"Apelido","account_gender":"Gênero","account_male":"Macho","account_female":"Fêmea","account_not_say":"Não diga","account_birthday":"Aniversário","account_phone_number":"Número de telefone","account_locale":"Local","account_tip_verified":"Verificado, fazendo login...","account_verified":"verificado","account_unverified":"não verificado","account_signed_up":"inscreveu-se","account_verify_your_identity":"Verifique sua identidade","account_finish":"Terminar","account_signed_out":"Assinado","account_change_password":"Alterar a senha","account_change_email":"Mude o e-mail","account_change_phone_number":"Alterar número de telefone","account_sign_out":"sair","account_current_password":"Senha atual","account_re_enter_new_password":"Re-introduza a nova palavra-passe","account_personal_information":"Informação","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Olá,","account_cancel":"Cancelar","account_change":"mudar","account_not_set":"não configurado","account_setting":"contexto","account_copy_code":"copie o código","account_account_setting":"Conta","account_task_page":"tarefa de crédito","account_setting_caption":"Alterar senha / Editar informações","account_security":"Segurança","account_want_to_join":"Quer se juntar?","account_sign_in_now":"Entrar","account_changed":"Mudado","account_clipboard_with_invitation_code":"Código de convite copiado","account_clipboard_with_code":"O código copiado","account_invitation_code_dialog_tip":"Você enviará ao seu amigo um e-mail ou mensagem de texto com um código de convite:","account_available":"disponível","account_invited":"convidamos","account_used":"usado","account_invitation_code_sent":"O código de convite foi enviado","account_invitation_channel_required":"Preencha pelo menos um canal de convite","account_no_verification_code":"Não pode receber o código de verificação?","account_no_phone_number":"Sem número de telefone?","account_sign_up_by_email":"Inscreva-se por e-mail","account_no_email":"No email? ","account_sign_up_by_phone_number":"Inscreva-se pelo número de telefone","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se não houver TOTP, configure o TOTP primeiro","account_setup_totp":"Configurar TOTP","account_contact_information":"Informações de contato","account_delete_account":"Deletar conta","account_deleted":"Excluído","account_can_not_mfa":"MFA em apuros?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Desativar MFA","account_disabled_mfa":"MFA desativado","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Não recomendado","account_oauth_sign_in_with":"Entrar com {provider}","account_sign_in_failed":"Falha ao fazer login","account_tip_oath_sign_up":"O e-mail correspondente à conta {provider} atual: {email} ainda não criou uma conta","account_tip_confirm_delete_account":"Digite a senha da conta atual para confirmar que deseja excluir a conta atual. (As contas excluídas não podem ser restauradas)","account_tip_config_mfa":"Você pode optar por usar SMS ou senha única baseada em tempo (TOTP) como autenticação secundária","account_error_can_not_enable_mfa":"Você deve vincular seu endereço de e-mail e número de celular para habilitar o MFA","account_tip_can_not_enable_sms_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o SMS MFA","account_tip_can_not_enable_totp_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o TOTP MFA","account_tip_setup_totp":"Use aplicativos como o Authenticator para digitalizar o código QR abaixo ou copie o código manualmente para adicionar um token de segurança","account_tip_verify_totp":"Verifique seu TOTP","account_link_your_social_account":"Vincule sua conta social","account_unlink_your_social_account":"Desvincular conta social","account_tip_confirm_link":"Tem certeza de que deseja vincular a conta atual à sua conta {provider}?","account_tip_confirm_unlink":"Tem certeza de que deseja cancelar sua conta vinculada {provider}?","account_tip_linking":"vinculativo...","account_tip_unlinking":"Desvinculando...","account_linked":"Vinculado","account_unlinked":"Não consolidado","account_error_can_not_link_to_the_linked_account":"A conta social atual está vinculada a outra conta","account_error_can_not_link_to_the_mismatched_email":"A conta atual e o endereço de e-mail da conta social são inconsistentes","account_error_can_not_link_before_email_verified":"A conta social não pode ser vinculada porque a conta atual não está vinculada a um e-mail verificado","account_tip_confirm_verify_email_phone":"Deseja enviar um código de verificação para o e-mail e número de telefone da conta atual para verificar sua identidade?","account_tip_confirm_verify_phone":"Quer enviar um código de verificação para o número de telefone atual para verificar sua identidade?","account_error_1_message_60_seconds":"Apenas um SMS ou e-mail pode ser enviado a cada 60 segundos, aguarde mais {delta} segundos","account_error_10_messages_per_day":"Cada celular ou e-mail só pode enviar 10 mensagens em 24 horas","account_error_network":"Há um problema com a rede, tente novamente mais tarde","Network Error":"Há um problema com a rede, tente novamente mais tarde","account_error_user_not_exist":"Usuário não existe","account_error_incorrect_username_or_password":"Usuário ou senha incorretos","account_error_incorrect_original_password":"Senha original incorreta","account_error_incorrect_password":"Senha incorreta","account_error_username_not_found":"Nome de usuário não encontrado","account_error_can_not_reset_for_no_verified":"Não é possível redefinir a senha da conta não verificada","account_error_invalid_verification_code":"Código de verificação incorreto, tente novamente","account_error_expired_verification_code":"O código de verificação expirou, tente novamente","account_error_password_not_long_enough":"A senha não é longa o suficiente","account_error_attempt_limit_exceeded":"Limite de tentativas excedido, tente após algum tempo.","account_error_password_attempts_exceeded":"Tentativas de senha excedidas.","account_error_invalid_phone_number_format":"Formato de número de telefone inválido","account_error_no_cell_phone_prefix":"Por favor, selecione o prefixo para o número de telefone","account_error_username_already_exists":"O nome de usuário já existe","account_error_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro","account_error_inactive_code":"O código de convite não é um código ativado","account_error_non_existent_code":"O código de convite é inexistente","account_error_unexpected":"Erro inesperado","account_error_can_not_change_email_before_phone_bound":"O e-mail não pode ser alterado antes que o número de telefone seja vinculado","account_error_can_not_change_email_before_unbound_social_account":"O e-mail não pode ser alterado antes de desvincular a conta social","account_error_can_not_change_phone_before_email_bound":"O número de telefone não pode ser alterado antes que o e-mail seja vinculado","account_error_can_not_change_email_phone_with_mfa_enabled":"Não é possível alterar o e-mail ou o número do celular antes de desativar o MFA","account_error_not_supported_yet":"Não é suportado de momento","account_error_same_email":"O novo endereço de e-mail não pode ser igual ao endereço de e-mail original","account_error_same_phone":"O novo número de telefone não pode ser igual ao número de telefone original","account_error_email_not_exists":"O endereço de e-mail não existe","account_error_email_already_exists":"Já existe uma conta com o e-mail fornecido.","account_error_phone_already_exists":"Já existe uma conta com o número de telefone fornecido.","account_error_mfa_token_mismatch":"Incompatibilidade de código de token de software","account_error_recaptcha_not_loaded":"Há um problema com a rede. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_recaptcha_validation_failed":"Falha na validação do ReCAPTCHA. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_sign_in_in_progress":"Tentativa de login pendente já em andamento","account_field_range":"Limite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Suporta apenas alfanumérico","account_field_only_alphanumeric_and_symbol":"Suporta apenas alfanuméricos e símbolos","account_field_only_chinese_alphanumeric_space_underline":"Suporta apenas alfanumérico, espaço, sublinhado","account_field_prefix_without_number_space":"O primeiro caractere não pode ser um número ou um espaço","account_field_suffix_without_space":"Não pode terminar com um espaço","account_field_without_repeat_space":"Não é possível usar vários espaços seguidos","account_field_can_not_only_alphanumeric":"Você não pode usar apenas letras ou números","account_field_must_have_number_characters":"Deve ter caracteres numéricos","account_field_verification_code":"O código de verificação deve ter seis dígitos","account_field_invitation_code":"O código do convite deve ser alfanumérico","account_field_phone_number":"Formato de número de telefone inválido","account_invalid_email_format":"Formato de email inválido","account_sign_out_confirm":"Tem certeza que deseja sair? Isso interromperá todas as tarefas.","account_sign_out_anyway":"Sair mesmo assim","account_signing_out":"Saindo...","account_request_save_settings":"As configurações não são salvas. Você precisa salvar as alterações antes de sair.","pay":"Pagar","pay_with_credit":"Pague pela aceleração de download. Precisa de cerca de {0} de crédito","pay_with_credit_payed":"Acelerando. Ainda precisa de cerca de {0} de crédito","create_payment":"Criar Pagamento","pay_target":"Alvo","pay_for_torrent":"Pague por {0}","your_subid":"Seu subID","your_credits":"seus créditos","pay_point_for_data":"Pague {0} pontos por {1} dados","auto_renew":"Ativar renovação automática","transaction_details":"Detalhes da transação","transaction_id":"Eu ia","transaction_payer":"Pagador","transaction_payee":"Beneficiário","transaction_category":"Categoria","transaction_changed_amount":"Valor alterado","transaction_meta":"meta","transaction_status":"Status","transaction_creation_time":"Tempo de criação","receipt_code":"Código de Recibo","transfer_amount":"Valor da transferência","code_the_receipt_code":"Copie o código do recibo abaixo para o pagador","fill_the_receipt_code":"Transferência preenchendo o código de pagamento fornecido pelo beneficiário","expense":"Despesa","copied":"copiado","transfer":"Transferir","receive":"Receber","copy":"cópia de","withdraw_fund":"Retirar fundos","category_paydata_payer":"Custo dos dados","category_paydata_payee":"Renda de dados","category_transfer":"Transferir","category_bonus":"Bônus","category_recharge":"Recarrega","status_pending":"pendente","status_completed":"concluído","status_finish":"terminar","status_failed":"fracassado","tip_invalid_receiver":"Código de receptor inválido","tip_invalid_amount":"O valor do crédito deve ser flutuante no intervalo de 0 a 1.000 (a precisão mínima é de 0,001)","credit_get_more":"Obtenha mais créditos","credit_no_data":"Nenhum dado disponível","credit_loading":"Carregando...","credit_not_enough_amount":"Não há créditos suficientes","credit_amount_not_enough":"Não há créditos suficientes","credit_payee_not_exist":"Beneficiário não existe","credit_invalid_amount":"Valor de crédito inválido","credit_can_not_transfer_to_yourself":"Não pode transferir para si mesmo","credit_latest":"Mais recente","credit_error_network":"Há um problema com a rede, tente novamente mais tarde","add_subtitles":"Adicionar legendas","open_file":"Abrir arquivo...","advanced_options":"Opções avançadas","title":"Título","location":"localização","subtitle_file":"arquivo de legenda","unsupported_subtitle_type":"O tipo de arquivo {0} não é um tipo de legenda compatível","not_default_player":"O reprodutor de vídeo padrão não está definido","this_is_an_audio_file":"Este é um arquivo de áudio","the_added_subtitle_already_exists":"A legenda adicionada já existe","stop_stream_player":"A mídia de streaming foi encerrada porque a tarefa foi pausada ou excluída","stop_player":"O player foi encerrado porque o arquivo foi excluído","playing_timeout_hint":"Tempos de espera esgotados. Por favor, verifique a tarefa","autoplay_hint":"A reprodução automática pode ser bloqueada pelo seu navegador. Se o player não estiver jogando, tente clicar na tela para continuar","remove_playing_confirm":"{0} ainda está jogando, removê-lo irá parar o jogador. Tem certeza de removê-lo?","unsupported_in_browser":"Ainda não suportado no modo de navegador","client":"Cliente","warning":"Aviso","enable":"Habilitar","disable":"Desativar","auto":"Auto","encrypt_connection":"Criptografar conexão","encrypted_connection":"Conexão criptografada","non_encrypted_connection":"Conexão não criptografada","connected_wires_not_disconnect":"Os fios conectados não serão desconectados","audio":"áudio","video":"vídeo","image":"imagem","subtitle":"legenda","zip":"fecho eclair","text":"texto","unknown":"desconhecido","add":"Adicionar","undo":"Desfazer","backup":"Cópia de segurança","not_default_app":"${displayName} não é seu aplicativo padrão para torrent e mídia, deseja definir como padrão?","dont_show_again":"Não mostrar novamente","go_to_settings":"Vá para as configurações","about_alphabiz":"Cerca de ${displayName}","last_check_at":"última verificação em","update_channel":"Atualizar canal","check_for_update":"Verifique atualizações","checking_for_update":"Verificando atualização...","no_update_available":"Nenhuma atualização disponível","update_available":"Atualização disponível","update_now":"Atualizar agora","update_later":"Atualizar mais tarde","click_to_update":"Clique no botão ATUALIZAR AGORA para baixar e atualizar","update_failed":"Atualização falhou","update_failed_message":"Ocorreu um erro durante a atualização:","check_shasum_failed":"Falha ao verificar a integridade do instalador","downloading_update":"Download da atualização...","ready_to_update":"Pronto para atualizar","restart_to_update":"A atualização foi baixada. ${displayName} sairá para atualizar por alguns instantes.","already_latest":"A versão atual ({0}) já é a mais recente","update_timeout":"Atualizar tempo limite","no_available_release":"Nenhuma versão disponível","no_available_installer":"Nenhum instalador disponível","feedback":"Opinião","select_a_type":"Selecione um tipo","category":"Categoria","select_a_category":"Selecione uma categoria","require_title":"O título é obrigatório","describe_your_problem":"Descreva seu problema","report_a_bug":"Reportar um erro","request_a_new_feature":"Solicitar um novo recurso","download_or_upload":"Baixar/Carregar","others":"Outros","submit_with_system_info":"Enviar com informações do sistema","submit_feedback":"Enviar feedback","tweet_us":"Tweet nós","tweet_too_long":"O tweet é muito longo","delete_characters":"Exclua pelo menos {0} caractere(s)","rest_characters":"Você pode inserir {0} mais personagem(s)","update_alphabiz":"Atualização ${displayName}","current_version":"Versão Atual","cancel_update":"Cancelar atualização","slow_download_speed":"Download muito lento","slow_download_speed_caption":"O download do instalador está muito lento agora. Verifique o status da rede","update_canceled":"Atualização cancelada","current_version_release_time":"Hora de lançamento da versão atual","expired_app":"${displayName} Expirado","version_out_of_date":"Versão desatualizada","have_to_update":"A versão de ${displayName} está desatualizada. Alguns protocolos ou APIs são obsoletos. Você tem que atualizar ${displayName} antes de continuar.","exit_alphabiz":"Sair ${displayName}","exit_and_update":"Sair e aplicar atualização","new_version_hint":"Nova versão está disponível","no_new_version":"Nenhuma nova versão disponível","current_is_latest":"A versão atual já é a mais recente","click_to_check_update":"Clique no botão [CHECK FOR UPDATE] para verificar a atualização","download_latest_version_from_website":"Por favor, visite o site oficial para baixar a versão mais recente","to_the_website":"para o site","network_diagnotic":"Diagnóstico de rede","diagnotic":"Diagnóstico","click_to_check":"Clique para conferir","click_to_check_again":"Clique para verificar novamente","checking":"verificando","online":"On-line","offline":"desligada","dns_look_up":"Pesquisa de DNS","error":"Erro","aws_service":"Serviço AWS","network_pings":"Ping de rede","not_found":"Não encontrado","packet_loss":"Perda de pacote(s)","official_site":"Site oficial","download_test":"teste de download","test_task":"Tarefa de teste {0}","download_failed":"Download falhou","second_spend":"{0} gastos","open_default_player_failed":"Falha ao abrir o player padrão","copied_to_clipboard":"Copiado para a área de transferência","go_to":"Vá para","region_not_available":"Região não disponível","region_not_available_message":"Desculpe! Sua região não está disponível para usar este aplicativo. Este aplicativo será encerrado após {0} segundos","confirm":"confirme","no_available_result":"Nenhum resultado disponível","invalid_password_format":"formato de senha inválido","invalid_password_format_same":"A senha é a mesma que a senha original","error_password":"Erro de senha","keychain_setting":"Chaveiro","setting_description":"Armazenamento em nuvem: salve dados importantes na nuvem.\\nAlterar senha: Altere a senha da chave da biblioteca de mídia.\\nMnemônico: um método alternativo para gerar e restaurar chaves.\\nImportar chave local: importe a chave salva localmente para a biblioteca de mídia.\\nChave de exportação: salva os dados da biblioteca de mídia atual no local ou na nuvem.\\nChave de backup para nuvem: atualize os dados da biblioteca de mídia atual para a nuvem para backup.","refresh_status":"Atualizar o status","confirm_import_key":"Confirmar chave de importação","confirm_update_cloud_key":"Você já tem uma chave na nuvem. A atualização da chave substituirá a chave original. Tem certeza de que deseja atualizar a chave armazenada na nuvem","export_key_with_cloud":"Digite a senha independente que você definiu para exportar a chave da biblioteca armazenada na nuvem e bloqueie o arquivo de chave pela senha de desbloqueio","store_cloud_key_prompt_password":"Digite uma senha independente para armazenar a chave da biblioteca na nuvem","update_cloud_key_prompt_password":"Defina uma senha independente para criptografar a chave da biblioteca e atualize-a na nuvem","enable_cloud_storage_prompt_password":"Defina uma senha para a chave armazenada na nuvem, por meio da qual você pode recuperar a chave da nuvem","input_unlock_password":"Definir senha de desbloqueio","export_local_prompt_password":"Defina uma senha de desbloqueio para criptografar seu arquivo de chave. Não salvaremos essa senha para você, portanto, se você perder sua senha, não poderá desbloquear a chave da biblioteca","require_unlock_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","require_independent_password":"Digite a senha independente para obter a chave armazenada na nuvem","import_local_prompt_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","select_encrypt_mode":"Selecione o modo de criptografia","update_cloud_key":"Atualize a chave armazenada na nuvem","backup_to_cloud":"Faça backup da chave da biblioteca na nuvem","save_local":"Salve a chave da biblioteca como arquivo criptografado local","create_new_key":"Criar uma nova chave de biblioteca","creating_lib_key":"Criando chave de biblioteca...","loading_lib_key":"Carregando chave da biblioteca...","failed_to_create_lib_key":"Falha ao criar a chave da biblioteca","failed_to_load_lib_key":"Falha ao carregar a chave da biblioteca","import_local_key":"Importar chave localmente","import_lib_key_from_local":"Importar uma chave de biblioteca localmente","import_from_cloud":"Importe a chave da biblioteca da nuvem","create_or_import_key":"Criar ou importar chave de biblioteca","create_or_import_key_desc":"A chave da biblioteca é uma chave independente usada para buscar e publicar conteúdo com banco de dados descentralizado.","store_your_lib_key":"Armazene sua chave de biblioteca","export_cloud_key":"Exportar chave da nuvem","export_current_key":"Exportar Chave Atual","change_password":"Alterar a senha","enable_cloud_storage":"Ativar armazenamento em nuvem","disable_cloud_storage":"Desative o armazenamento em nuvem","disable_cloud_storage_desc":"Desativar o armazenamento em nuvem removerá a chave salva na nuvem, certifique-se de que a chave seja salva localmente","sync_at":"Sincronizar em: {time}","cloud_storage_enabled":"Sincronize as Chaves com {storage}","cloud_storage_disabled":"Armazenamento em nuvem desativado","saved_locally":"Salvo localmente","export_key":"Exportar arquivo de chave","cloud_independent_password":"Senha independente da nuvem","key_file_unlock_password":"Senha de desbloqueio do arquivo de chave","re_enter_unlock_password":"Digite novamente a senha de desbloqueio","independent_password_not_enabled":"A senha atual é a senha da conta Alphabiz (nenhuma senha independente é definida)","use_cognito_hash":"Use a senha da conta Alphabiz","use_independent_password":"Usar senha independente","keychain_lib":"chave da biblioteca","loading_keychain_state":"Carregando chaveiro...","backing_up":"Fazendo backup...","backup_current_key":"Faça backup da chave atual na nuvem","cloud_lib_key_not_existed":"a chave da biblioteca não existe na nuvem","open_keychain_file":"Abrir arquivo de chaveiro","confirm_open_abk":"Deseja abrir o arquivo ABK","use_the_key":"Use a chave","backup_the_key":"Faça backup da chave na nuvem","keychain_data_does_not_exist":"Os dados das chaves não existem","timeout of 0ms exceeded":"Há um problema com a rede, tente novamente mais tarde","XhrError":"Há um problema com a rede, tente novamente mais tarde","payer credit amount is not enough":"Não há créditos suficientes","payee does not exist":"Beneficiário não existe","block_list_manage":"lista de bloqueio gerenciar","blocked_users":"Usuários bloqueados","blocked_channels":"canais bloqueados","unblock_user":"Desbloquear usuário","unblock_channel":"Desbloquear canal","no_blocked_user":"Nenhum usuário bloqueado","no_blocked_channel":"Nenhum canal bloqueado","field_required":"{0} é obrigatório","setting":"Contexto","unknown_media":"Mídia Desconhecida","settings_button_visible":"Botão Visível","settings_setting":"Contexto","settings_playback_rate":"Taxa de reprodução","settings_subtitle":"Legenda","settings_pip":"PiP","settings_fullscreen":"Tela cheia","settings_subtitle_options":"Opções de legenda","settings_normal":"Normal","settings_italic":"itálico","settings_lighter":"Isqueiro","settings_bolder":"mais ousado","settings_small":"Pequeno","settings_large":"Grande","about":"Sobre","services":"Serviços","hide":"Esconder","hide_others":"Ocultar outros","show_all":"Mostre tudo","quit":"Desistir","edit":"Editar","redo":"refazer","cut":"Corte","paste":"Colar","select_all":"Selecionar tudo","view":"Visualizar","reload":"recarregar","toggle_full_screen":"Alternar para o modo tela cheia","toggle_developer_tools":"Alternar ferramentas do desenvolvedor","window":"Janela","minimize":"Minimizar","bring_all_to_front":"Traga tudo para a frente","help":"Ajuda","github_repo":"Repositório do Github","issues":"Problemas","learn_more":"Saber mais","learn_spelling":"Aprenda ortografia","lookup_selection":"Procure \\"{selection}\\"","search_with_google":"Pesquise com o Google","save_as":"Salvar como","save_image":"Salvar imagem","save_image_as":"Salvar imagem como ...","copy_link":"Link de cópia","save_link_as":"Salvar link como ...","copy_image":"Copiar imagem","copy_image_as":"Copiar imagem como...","copy_image_address":"Copiar endereço da imagem","download_complete":"Download completo","download_complete_message":"{0} foi baixado","is_running":"{0} está em execução","open":"Aberto {0}","launch_problem":"problema de inicialização","ask_clear_data":"Parece que você está tentando iniciar {0}, mas falhou várias vezes.\\nDeseja limpar todos os dados do aplicativo e tentar iniciar mais tarde?","launch_directly":"Iniciar diretamente","clear_all_data":"Limpar todos os dados","ask_clear_confirm":"Isso removerá todas as configurações, logs e dados do usuário!\\nDepois disso, talvez seja necessário iniciar {0} novamente.\\nTem certeza que deseja limpar os dados?","confirm_launch":"Não, lance diretamente","confirm_clear":"Sim, limpe todos os dados"}')},b37d:function(e,t,a){var n,o;a("de6c"),a("7996");class i{constructor(e,t,{first:a,last:n,odd:o,even:i}={}){this.name=e,this.style=t,this.first=null!==a&&void 0!==a?a:{},this.last=null!==n&&void 0!==n?n:{},this.odd=null!==o&&void 0!==o?o:{},this.even=null!==i&&void 0!==i?i:{}}withTagStyle(e){const t=e.map(((t,a)=>{const n={};return Object.assign(n,this.style,(a+1)%2===0?this.even:this.odd,0===a?this.first:{},a===e.length-1?this.last:{}),Object.entries(n).map((e=>e.join(": "))).join("; ")}));return[e.map((e=>`%c${e}`)).join(""),t]}}const r=Object.entries({neutral:[["rgb(146,146,146)","white"],["rgb(207,207,207)","black"]],red:[["rgb(232,126,126)","black"],["rgb(255,194,194)","black"]],orange:[["rgb(255,175,118)","black"],["rgb(255,215,196)","black"]],green:[["rgb(87,168,102)","white"],["rgb(200,246,213)","black"]],purple:[["rgb(125,114,253)","white"],["rgb(200,184,255)","black"]],blue:[["rgb(57,145,208)","white"],["rgb(184,215,255)","black"]],yellow:[["rgb(238,194,62)","black"],["rgb(255,238,158)","black"]],black:[["rgb(60,60,60)","white"],["rgb(90,90,90)","white"]]}).reduce(((e,[t,a])=>({...e,[t]:new i(t,{padding:"2px 6px","font-size":"0.7rem"},{odd:{background:a[0][0],color:a[0][1]},even:{background:a[1][0],color:a[1][1]},first:{"padding-left":"10px","border-top-left-radius":"8px","border-bottom-left-radius":"8px"},last:{"padding-right":"10px","border-top-right-radius":"8px","border-bottom-right-radius":"8px","margin-right":"4px"}})})),{});function s(e,t){const a=["log","warn","error","debug","group"],n=new Proxy(e,{get(e,o,i){if("context"===o)return t;if("tag"===o)return l(n,r.neutral);if(a.includes(o)){let e="";const a=[];t.tag_params.forEach((({name:t,tags:n})=>{const o=r[t].withTagStyle(n);e+=o[0],a.push(...o[1])}));const n=Reflect.get(console,o,i);return(...t)=>n(e,...a,...t)}return Reflect.get(e,o,i)}});return n}function l(e,t){const a=function(...a){const n=e!==console?e.context:{message:"",styles:[],tag_params:[]};return n.tag_params.push({name:t.name,tags:a}),s(e,n)};return Object.defineProperties(a,Object.keys(r).reduce(((t,a)=>({...t,[a]:{get(){return l(e,r[a])}}})),{})),a}null!==(o=(n=console).tag)&&void 0!==o||(n.tag=l(console,r.neutral))},b389:function(e,t,a){"use strict";a("a75f")},b3f7:function(e,t,a){(function(t){const n="Alphabiz",o={name:n,displayName:n,fileName:n,appId:"com.zeeis.alphabiz",snapName:n.toLowerCase(),author:`${n} Team `,developer:`${n} Team`,appIdentifier:"org.zeeis.alphabiz",description:`${n} Blockchain Cryptocurrency Application`,appxPackageIdentityName:n,publisher:"CN=zeeis",publisherDisplayName:`${n} Team`,homepage:"https://alpha.biz",webEditionUrl:"https://web.alpha.biz",upgradeCode:"4d8a65aa-fc5b-421c-94ab-cb722ef737e2",protocol:n.toLowerCase(),shortProtocol:"ab",versionsUrl:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/versions.json",twitterAccount:"@alphabiz_app",register:{mode:"none",list:[]},library:{recommends:{default:["fxpebrsi9ij5pzinwdky","cut44dbbfxjpqka39qix"],"zh-CN":["vs52l0yqtqqpqtw33ycx","cut44dbbfxjpqka39qix"]}},update:a("a51a"),takedown:a("41c7"),theme:{color:{primary:"#d1994b",secondary:"#f3ce90",accent:"#fbbb4a"},cornerLogoStyle:{left:"-72px",top:"-92px",height:"245px"}},dynamicConfig:a("937c"),microsoftStoreProductId:"9PBCCV3MHK04",communities:[{enable:!0,url:"https://github.com/tanshuai/alphabiz",icon:"https://github.githubassets.com/favicons/favicon.svg"}],externalI18n:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/i18n"};console.log("INIT APP CONFIG"),t._app_config_=o,t.LIBDB_NAME=o.name,e.exports=o,a("81e0")(o)}).call(this,a("0ee4"))},b4bc:function(e,t,a){},b65b:function(e,t,a){"use strict";(function(e){var n=a("076e"),o=a("bdb1");t["a"]={name:"ABOAuthEntry",i18n:n["a"],data(){let e={Github:{name:"Github",icon:"fab fa-github"},Twitter:{name:"Twitter",icon:"fab fa-twitter"}};return{hide:!1,loadingState:null,providers:e}},computed:{providersEnabled(){return Object.keys(this.providers).filter((e=>this.d$cfg.oauth.providers.includes(e))).reduce(((e,t)=>({...e,[t]:this.providers[t]})),{})}},methods:{async handleClick(e){try{this.loadingState=e.name,await o["a"].login.call(this,e.name)}finally{this.loadingState=null}}}}}).call(this,a("28d0"))},b71d:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"global-recommend-page"},[a("LibraryRecommend",{attrs:{fullscreen:""}})],1)},o=[],i=a("5584"),r=a("36a1"),s=a("36a5"),l={name:"GlobalRecommend",components:{LibraryRecommend:s["a"]},data(){return{selected:[]}},computed:{show(){const e="signedIn"===i["a"].state.account.authState;return!!e&&(!!r["a"].isLoggedIn&&r["a"].isFirstRegister)}},methods:{},mounted(){}},c=l,d=(a("3669"),a("2b5f")),u=Object(d["a"])(c,n,o,!1,null,"67462de2",null);t["a"]=u.exports},b91a:function(e,t,a){},bba7:function(e,t,a){},bbb8:function(e,t,a){"use strict";a("8162")},bc42:function(e,t,a){"use strict";a("2d55")},bd3b:function(e,t,a){"use strict";a("5ccc")},bdb1:function(e,t,a){"use strict";a("f200");var n=a("0925");async function o(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:o,hide:i}=n["a"].useOAuthFlowDialog.call(this,{title:"oauth_login.sign_in_with",providerName:e}),r=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["logging_in"],logging_in:[]},handlers:{authorize:()=>{o("authorize",r),this.$account.core.requestOAuthAction({provider:e,action:"login"})},logging_in:()=>(o("logging_in",r),!0),succeed:async()=>{await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.$q.notify({message:this.$t("oauth_login.notify.signed_in"),type:"positive",position:"bottom-right",timeout:5e3})}}});await r.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(i)}var i=o;async function r(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:o,hide:i}=n["a"].useOAuthFlowDialog.call(this,{title:"oauth_connect.connect_to",providerName:e}),r=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["connecting"],connecting:[]},handlers:{authorize:()=>{o("authorize",r),this.$account.core.requestOAuthAction({provider:e,action:"connect"})},connecting:()=>(o("connecting",r),!0),succeed:async()=>{this.$q.notify({message:this.$t("oauth_connect.notify.connected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}}});await r.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(i)}var s=r;t["a"]={login:i,connect:s}},be00:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},be0d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c033:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"ripple",rawName:"v-ripple"}],staticClass:"relative-position follow-btn btn",class:{hovered:e.hovered,followable:e.followable,pending:e.pending,disableFollow:e.disableFollow},on:{mouseover:function(t){e.hovered=!0},mouseleave:function(t){e.hovered=!1},click:e.onClick}},[e.pending?a("q-spinner-dots",{attrs:{size:"18px",thickness:5}}):a("span",{staticClass:"follow-btn-label"},[e._v(e._s(e.followBtnLabel))])],1)},o=[],i=a("5584"),r=a("36a1"),s={name:"LibraryFollowButton",props:{id:String,disableFollow:Boolean},data(){return{hovered:!1}},computed:{pending(){return i["a"].getters.followQueue.includes(this.id)},followable(){return!r["a"].followingChannels.find((e=>e.id===this.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.hovered?this.$t("unfollow"):this.$t("following")}},methods:{async onClick(){if(this.pending)return;if(this.disableFollow)return this.$q.notify("Please wait for loaded");const e=this.id;if(!e)return;if(!r["a"].channelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("cannot_find_channel"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const t=!!this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("unfollow")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>e(!1))).onCancel((()=>e(!0)))}));if(e)return}i["a"].commit("addFollowQueue",e),(t=>{let a=0,n=0,o=0;const s=()=>{clearInterval(n),clearTimeout(a),o&&o(),i["a"].commit("removeFollowQueue",e)};n=setInterval((()=>{this.followable===t?(console.log("Failed to toggle follow",e,t,this.followable),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)):s()}),2e3),o=this.$watch("followable",(e=>{e!==t&&s()})),a=setTimeout((()=>{this.followable===t&&this.$q.notify(this.$t("follow_failed_hint"))}),1e4)})(t),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)}}},l=s,c=(a("93e8"),a("2b5f")),d=a("2a5f"),u=a("4101"),_=a("719b"),p=a("09a4"),m=a.n(p),h=Object(c["a"])(l,n,o,!1,null,"711b4078",null);t["a"]=h.exports;m()(h,"components",{QSpinnerDots:d["a"],QColor:u["a"]}),m()(h,"directives",{Ripple:_["a"]})},c036:function(e,t,a){"use strict";a("b4bc")},c066:function(e,t,a){},c228:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return i}));a("a1c1");var n=a("1c53");(()=>{const e=e=>/^(?!(_|[0-9])+$)(([A-Z0-9]|_)+$)/.test(e),t=e=>/^(?!(_|[0-9])+$)(([a-z0-9]|_)+$)/.test(e),a=e=>/^([A-Z])([A-Za-z0-9]+$)$/.test(e),n=e=>/^([a-z])([A-Za-z0-9]+$)$/.test(e),o=t=>e(t)?t.toLowerCase():n(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase():a(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase().substr(1):t.toLowerCase(),i=e=>t(e)?e.toUpperCase():n(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase():a(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase().substr(1):e.toUpperCase(),r=n=>a(n)?n[0].toLowerCase()+n.substr(1):t(n)?n.replace(/_(\w)/g,((e,t)=>t.toUpperCase())):e(n)?n.toLowerCase().replace(/_(\w)/g,((e,t)=>t.toUpperCase())):n,s=e=>n(e)?e[0].toUpperCase()+e.substr(1):(()=>(e=r(e),e=e[0].toUpperCase()+e.substr(1),e))()})();const o=Object.keys(n["countries"]).reduce(((e,t)=>{const a=n["countries"][t];return e[t]={code:t,name:a.native,normalizedName:a.name,emoji:"TW"===t?"🇼🇫":a.emoji,phones:a.phone.split(",").map((e=>e+"-"+t)),languages:a.languages.map((e=>(e+"-"+t).toLowerCase()))},e}),{}),i=Object.keys(o).reduce(((e,t)=>{const{languages:a,name:n,emoji:i,phones:r}=o[t];return a.forEach((a=>{e[a]={code:t,name:n,emoji:i,phones:r,language:a}})),e}),{})}).call(this,a("28d0"))},c294:function(e,t,a){},c49d:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return p})),a.d(t,"d",(function(){return f})),a.d(t,"c",(function(){return b}));a("de6c"),a("a1c1"),a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1");var n=a("5584"),o=a("c248"),i=a.n(o),r=a("5515"),s=a("3aea");const l="59243e4a83edb6386ebb99d6d395df1ca5750162",c=[...new Set(n["a"].getters.settings.trackerList.filter((e=>e.startsWith("ws"))).concat("wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"))];for(const t of["wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce"])c.includes(t)||c.push(t);const d="\n background-color: rgb(137,241,163);\n color: black;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(87,168,102);\n";let u=function(e,...t){if(n["a"].getters.isDevMode)return console.log("%c%s",d,e,...t)};n["a"].watch(((e,t)=>t.isDevMode),(e=>{u=e?console.log.bind(console,"%c%s",d):function(){}}),{immediate:!0});const _=[];function p(e){_.push(e)}u("Init","tracker-peer with trackers",c);const m=()=>"function"===typeof crypto.randomUUID?crypto.randomUUID().replace("-","").substring(0,12):"function"===typeof crypto.getRandomValues?[...crypto.getRandomValues(new Uint8Array(6))].map((e=>e.toString(16).padStart(2,"0"))).join(""):new Array(12).fill().map((()=>Math.floor(16*Math.random()).toString(16))).join(""),h=e.from("-AB0000-"+m());u("peerId",h.toString("hex"));const g=new i.a({infoHash:l,peerId:h,port:8765,intervalMs:3e4,announce:[...c],dht:!0,dhtPort:2e4,tracker:{announce:[...c],getAnnounceOpts:()=>{const e={uploaded:1024,downloaded:1024,left:1024};return e}}}),f=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.stop()},b=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.start()},y=e=>{const t=Object.values(r["d"]).map((e=>{var t;return Object(s["e"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||"")}));try{const a=e.remoteAddress;a&&t.includes(a)&&u("Duplicate peer",a)}catch(a){return u("Duplicate peer",a,e),e.destroy()}_.forEach((t=>t(e)))};g.on("peer",(e=>{"object"===typeof e&&(e._pc&&e._channel?y(e):setTimeout((()=>{e._pc&&e._channel?y(e):e.destroy()}),2e3))})),g.on("dhtAnnounce",((...e)=>{u("dhtAnnounce",...e)}))}).call(this,a("eb72").Buffer)},c581:function(e,t,a){"use strict";a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return d})),a.d(t,"a",(function(){return u}));var n=a("7ca3"),o=a.n(n),i=(a("de6c"),a("c228"));class r{static without(...e){const t=`^(${e.map((e=>`(?!${e})`)).join("")}.)*$`;return new RegExp(t,"g")}static withoutOnly(...e){const t="^"+e.map((e=>`(?!${e}+$)`)).join("");return new RegExp(t,"g")}static prefixWithout(...e){const t="^"+e.map((e=>`(?!${e})`)).join("");return new RegExp(t,"g")}static suffixWithout(...e){const t=`(??");class s{static _test(e,t){const a=e.test(t);return e.lastIndex=0,a}static _testAll(e,t){const a=e.map((e=>this._test(e,t)));return!a.includes(!1)}}o()(s,"Username",[e=>s._test(r.content("0-9","A-Z","a-z"),e)||"account_field_only_alphanumeric",e=>s._test(r.range(4,16),e)||["account_field_range",[4,16]],e=>s._test(r.prefixWithout("[0-9]"),e)||"account_field_prefix_without_number_space"]),o()(s,"Password",[e=>s._test(r.content("0-9","A-Z","a-z",r.CHARACTERS),e)||"account_field_only_alphanumeric_and_symbol",e=>s._test(r.range(8,20),e)||["account_field_range",[8,20]],e=>s._test(/[0-9]/g,e)||"account_field_must_have_number_characters"]),o()(s,"PhoneNumber",[e=>s._test(r.content("0-9"),e)||"account_field_phone_number",e=>s._test(r.range(3,11),e)||["account_field_range",[3,11]]]),o()(s,"Nickname",[e=>s._test(r.content("0-9","A-Z","a-z","一-龥","\\s","_"),e)||"account_field_only_chinese_alphanumeric_space_underline",e=>s._test(r.range(2,15),e)||["account_field_range",[2,15]],e=>s._test(r.prefixWithout("[0-9]","[\\s]"),e)||"account_field_prefix_without_number_space",e=>s._test(r.suffixWithout("\\s"),e)||"account_field_suffix_without_space",e=>s._test(r.WITHOUT_REPEAT_SPACE,e)||"account_field_without_repeat_space"]),o()(s,"VerificationCode",[e=>s._testAll([r.content("0-9"),r.range(6)],e)||"account_field_verification_code"]),o()(s,"InvitationCode",[e=>s._test(r.content("0-9","A-Z","a-z"),e)||"account_field_invitation_code"]),o()(s,"TransferReceiver",[e=>{const t="tip_invalid_receiver",a=s._test(r.content("0-9","a-f","-"),e);if(!a)return t;const n=e.split("-");return 5!==n.length?t:"8-4-4-4-12"===n.map((e=>e.length)).join("-")||t}]),o()(s,"TransferAmount",[e=>s._test(r.content("0-9","."),e)||"tip_invalid_amount",e=>""+parseFloat(e)===e||"tip_invalid_amount",e=>parseFloat(e)<=1e3||"tip_invalid_amount",e=>parseFloat(e)>=.001||"tip_invalid_amount",e=>parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)||"tip_invalid_amount"]);class l{constructor(e,t,a){this._model=t,this.defValue=this._model2value((()=>t?"object"!==typeof t?t:Array.isArray(t)?[...t]:{...t}:t)()),this.type=e,this.attrs=a||{}}get model(){return this._model}set model(e){this._model=e}get bound(){return this.attrs}_model2value(e){return e}_value2model(e){return e}updateModel(e){this.model=this._value2model(e)}get value(){return this._model2value(this.model)}clear(){this.updateModel(this.defValue)}}class c extends l{constructor(e,t){super("input",e,t)}}class d extends l{static get LOCALE_OPTIONS(){const e=Object.keys(i["a"]).sort(((e,t)=>(e=i["a"][e].normalizedName[0],t=i["a"][t].normalizedName[0],et?1:0))).map((e=>({value:e,emoji:i["a"][e].emoji,label:i["a"][e].name,normalizedName:i["a"][e].normalizedName})));return e}constructor(e,t,a){super("select",e,{...a||{},options:t})}}class u{constructor(e){this.items=e}updateModel(e){return Object.keys(this.items).forEach((t=>{void 0!==e[t]&&this.items[t].updateModel(e[t])})),this}get formData(){const e={};for(const[t,a]of Object.entries(this.items))e[t]=a.value;return e}setDefault(){return this}clearData(){return Object.values(this.items).forEach((e=>e.clear())),this}get length(){return Object.keys(this.items).length}}},c5a5:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));a("a1c1");var n=a("abc6"),o=a("d710");async function i(e){if(e.startsWith(o["protocol"]+"://")||e.startsWith(o["shortProtocol"]+"://")){const t=e.startsWith(o["protocol"]+"://")?e:e.replace(o["shortProtocol"]+"://",o["protocol"]+":///"),a=await n["a"].decode(t);return a}return new Promise(((t,a)=>{n["a"].encode({hash:e,url:e},((e,n)=>{e?a(e):t(n)}))}))}},c5fa:function(e,t,a){},c620:function(e,t,a){"use strict";a.r(t),function(e,n){a.d(t,"wtClient",(function(){return $})),a.d(t,"getTaskInstance",(function(){return z}));a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("de6c"),a("a1c1");var o=a("4649"),i=a.n(o),r=a("0559"),s=a("0f0c"),l=a("c5a5"),c=a("a1cd"),d=a("edfe"),u=a("e3c7"),_=a("5584"),p=a("e38b"),m=a.n(p),h=a("84f6"),g=a("8750"),f=a("1926"),b=a("d558"),y=a("0598");const v=t=>"undefined"!==typeof crypto?e.from(crypto.getRandomValues(new Uint8Array(t))):a("548f").randomBytes(t);class w extends Map{set(e,t){if("object"!==typeof t)return console.error("Not an object",t);super.set(e,Object.assign({url:e},t,{timestamp:Date.now()}))}}const{torrentToJson:k}=c["a"],S=a("08ee").announceList.map((e=>e[0])).filter((e=>e.startsWith("wss"))).concat("wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce","wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"),C=Object(s["a"])("version").replace(/\d*./g,(e=>("0"+e%100).slice(-2))).slice(0,4),x=e.from(`-WW${C}-${v(9).toString("base64")}`),$=new i.a({peerId:x,maxConns:20,store:m.a});let T=null;const z=()=>T;if(!Object(b["a"])()&&!Object(y["default"])()){setInterval((()=>{var e;if(!$.torrents[0])return;const t=$.torrents[0];t.paused||t.done||1===t.progress||null!==(e=t.discovery)&&void 0!==e&&e.tracker&&t.discovery.tracker.update()}),15e3),u["ioServer"].on("updateSettings",(e=>{if(console.log("updateSettings",e),"downloadSpeed"in e){const t=e.downloadSpeed;t>0?$.throttleDownload(t):$.throttleDownload(0)}if("uploadSpeed"in e){const t=e.uploadSpeed;t>0?$.throttleUpload(t):$.throttleUpload(0)}"secureOption"in e&&(console.log("set secure",r["setSecure"]),Object(r["setSecure"])(e.secureOption))})),Object.defineProperty("undefined"===typeof window?n:window,"client",{get(){return $}});const e=()=>"undefined"!==typeof navigator&&!!navigator.serviceWorker;e()?(console.log("registering sw"),navigator.serviceWorker.register("webtorrent.worker.js").then((()=>{const e=()=>{const e=navigator.serviceWorker.controller;e&&"activated"===e.state&&(console.log("[ ServiceWorker ] Change controller",e),$.loadWorker(e))};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.addEventListener("statechange",e),navigator.serviceWorker.addEventListener("controllerchange",(()=>{e(),navigator.serviceWorker.controller.addEventListener("statechange",e)})),console.log("register",navigator.serviceWorker.controller),e()})).catch((e=>{console.error("Error registering sw",e)}))):"undefined"!==typeof navigator&&navigator.serviceWorker&&navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&$.loadWorker(navigator.serviceWorker.controller);const t=new Map;let a=Date.now(),o=1e3;const i=()=>({downloading:[],uploading:[],downloaded:[]}),s=()=>{const e=Date.now();if(o=(e-a)/1e3,a=e,$.torrents[0]){const e=$.torrents[0];e.done||"number"!==typeof e.usedTime||(e.usedTime+=1e3);const a=k(e,o,t);if(t.has(a.infoHash)&&e.ready){const n=t.get(a.infoHash);0===n.downloaded?a.downloadSpeed=0:a.downloadSpeed=Math.floor((e.downloaded-n.downloaded)/o),0===n.uploaded?a.uploadSpeed=0:a.uploadSpeed=Math.floor((e.uploaded-n.uploaded)/o),a.downloadSpeed<0&&(a.downloadSpeed=0),a.uploadSpeed<0&&(a.uploadSpeed=0),t.set(a.infoHash,{downloaded:e.downloaded,uploaded:e.uploaded})}else a.downloadSpeed=0,a.uploadSpeed=0,t.set(a.infoHash,{downloaded:0,uploaded:0});u["ioServer"].emit("wt-task",a),T=a;const n=i();a.done&&!a.isSeeding&&a.paused?n.downloaded=[a]:a.done||a.isSeeding?n.uploading=[a]:n.downloading=[a],h["a"].updateTaskList(n)}else T=null,_["a"].commit("updateABKeys",i())};setInterval(s,1e3),$.on("error",(e=>{console.warn("webtorrent error",e)})),$.on("ready",(()=>{console.log("[webtorrent]","ready"),Object(d["b"])($)}));const p=(e,t)=>{if(console.log("onWire",e),e.use(Object(d["a"])($,t)),"webrtc"===e.type){console.log("onwire",e.remoteAddress,e.peerId);const a=()=>{var n,o,i,r,s;if(e.remoteAddress)return;const l=t._peers[e.peerId];if(!l)return setTimeout(a,1e3);const c=null===(n=l.conn)||void 0===n||null===(o=n._pc)||void 0===o||null===(i=o.currentRemoteDescription)||void 0===i||null===(r=i.sdp)||void 0===r||null===(s=r.match(/c=IN\sIP\d\s(.*)/))||void 0===s?void 0:s[1];if(!c)return setTimeout(a,1e3);e.remoteAddress=c};a()}},m=(e,t)=>{const a="string"===typeof e?$.get(e):e;a&&a.trackerMap&&(a.trackerMap.set(t,{status:"connecting"}),c["a"].addTracker(a,t))},b=(e,t={})=>{e.pending=!1,e.removeAllListeners(),e.setMaxListeners(0),console.log("Add listeners to",e.infoHash||e.token||t.magnetURI),e.on("error",(e=>{console.warn("[wt] error",e)})),e.on("infoHash",(e=>{console.log("got infoHash",e),u["ioServer"].emit("wt-infoHash",e)})),e.on("wire",(t=>p(t,e))),e.on("metadata",(()=>{console.log("Got metadata",e),Object(l["a"])(e.magnetURI).then((t=>{console.log(t),e.alphabizURI=t}))})),e.on("discovery",(()=>{if(console.log("start discovery"),e.trackerMap=new w,e.discovery._announce.forEach((t=>{if(console.log("Discovered",t),e.trackerMap.set(t,{status:"connecting"}),!t.startsWith("ws")){if(t.match(/(\d{1,3}\.){3}\d{1,3}/))return;e.trackerMap.set(t+"@6",{status:"connecting"})}})),e.discovery.tracker.on("warning",((t,a,n)=>{a&&(6===n&&(a+="@6"),e.trackerMap.set(a,{status:"error",message:c["a"].parseTrackerWarning(t.message)}))})),e.discovery.tracker.on("update",((t,a,n)=>{if(console.log("tracker update",a,t),!a)return console.warn("No emitted url",t);6===n&&(a+="@6"),e.trackerMap.set(a,{status:"updated",info:t})})),t.customTrackers)for(const a of t.customTrackers)m(e,a)}))},y=(e,t)=>{_["a"].getters.settings.downloadSpeed>0&&$.throttleDownload(_["a"].getters.settings.downloadSpeed),_["a"].getters.settings.uploadSpeed>0&&$.throttleUpload(_["a"].getters.settings.uploadSpeed);const a=t||{};if(a.announce=a.announce||S,$.torrents&&$.torrents.length)return u["ioServer"].emit("weberror","already_downloading");(e instanceof File||e instanceof FileList)&&console.log("should seed");const n=e instanceof File||e instanceof FileList?$.seed(e,a):$.add(e,a);return n.token=a.token||e,n.origin=a.token||e,n.createdTime=a.createdTime||Date.now(),n.usedTime=a.usedTime||0,a.fromPost&&(n.fromPost=a.fromPost),a.postTitle&&(n.postTitle=a.postTitle),a.name&&(n.name=a.name),b(n,a),s(),n};u["ioServer"].on("wt-add",(async(e,t)=>{if("string"===typeof e&&(e.startsWith("alphabiz:")||e.startsWith("ab:")))return y(await Object(l["a"])(e),t);y(e,t)})),u["ioServer"].on("download_torrent",(async e=>{if(console.log("web download",e),!e.url)return u["ioServer"].emit("weberror","not_supported_in_web_mode");try{const t=await Object(l["a"])(e.url);console.log("converted",t),y(t,{...e,url:t})}catch(t){u["ioServer"].emit("weberror",t.message||t)}})),u["ioServer"].on("wt-pause",(e=>{const t=$.get(e);if(console.log("pause",e,t),!t)return u["ioServer"].emit("weberror","torrent_not_exist");t.paused=!0,t.pause(),t.discovery.tracker.stop();while(t.wires.length){const e=[...t.wires];e.forEach((e=>e.destroy()))}})),u["ioServer"].on("wt-resume",(e=>{const t=$.get(e);if(!t)return u["ioServer"].emit("weberror","torrent_not_exist");t.paused=!1,t.resume(),t.discovery.tracker.start()})),u["ioServer"].on("pause_all",(()=>{$.torrents.forEach((e=>e.destroy((()=>{u["ioServer"].emit("wt-pause",e)}))))})),u["ioServer"].on("wt-delete",(e=>{const t=$.get(e);if(!t)return u["ioServer"].emit("weberror","torrent_not_exist");t.destroy((()=>{u["ioServer"].emit("torrent_deleted",t)}))}));let v=null;const C=({infoHash:e,filepath:t})=>{console.log("[web] Play",e,t);const a=$.get(e);return a?a.ready?(v=a.createServer(),void v.listen(0,(()=>{const t=v.address().port,n={token:a.token,port:t};u["ioServer"].emit("play-server-ready",n);const o=()=>{var t;const n=(null===(t=a.files)||void 0===t?void 0:t.map((e=>{const t=[];for(let n=e._startPiece;nclearInterval(i)))}))):setTimeout((()=>{C({infoHash:e,filepath:t})}),2e3):u["ioServer"].emit("weberror","torrent_not_exist")};u["ioServer"].on("wt-play",C);const x=()=>{v&&(v.destroy&&v.destroy(),v=null,console.log("Destroyed server"))};u["ioServer"].on("wt-stop-server",x),u["ioServer"].on("set_user",(e=>{u["ioServer"].emit("set-user",null,e)})),"undefined"!==typeof document&&document.body.addEventListener("paste",(async e=>{const t=e.clipboardData.files.length?e.clipboardData.files:e.clipboardData.getData("text");let a=t;if(t instanceof FileList){if(t.length>1)return g["a"].create({message:f["b"].t("web_mode_upload_single"),ok:f["b"].t("ok")});if(!t[0].size)return g["a"].create({message:f["b"].t("web_mode_upload_single"),ok:f["b"].t("ok")});a=t[0]}if("string"===typeof a){if((a.startsWith("ab://")||a.startsWith("alphabiz://"))&&(a=await Object(l["a"])(a).catch((()=>"")),!a.startsWith("magnet")))return g["a"].create({message:f["b"].t("invalid_download_url"),ok:f["b"].t("ok")});if(!a.startsWith("magnet"))return}const n=()=>{y(a)};$.torrents[0]?g["a"].create({message:f["b"].t("remove_old_task_desc"),ok:f["b"].t("remove_old_task"),cancel:f["b"].t("cancel")}).onOk((()=>{$.torrents[0].destroy(),$.torrents.splice(0),n()})):g["a"].create({message:f["b"].t("add")+" "+(a.name||t),ok:f["b"].t("add"),cancel:f["b"].t("cancel")}).onOk(n)})),console.log("Init webtorrent events")}}.call(this,a("eb72").Buffer,a("0ee4"))},c62a6:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a("ff9b");const o=new n["a"]({data(){return{taskQueue:[]}}})},c65d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c791:function(e,t,a){"use strict";(function(e,n){a("a1c1");var o=a("1c53"),i=a.n(o),r=a("ff11"),s=a.n(r),l=a("6422"),c=a("d310"),d=a("5584");let u=null;Object(c["isElectron"])()&&(u=e["require"]("geoip-country")),t["a"]={props:{peer:{type:Object,required:!0}},computed:{isDevMode(){return d["a"].getters.isDevMode},country(){const e=this.peer.addresses[0];if(!e)return"";try{const t=u.lookup(e);return t&&t.country?t.country:""}catch(t){return""}},countryFlag(){return this.country?i.a.getEmojiFlag(this.country):""},uploadSpeed(){return Object(l["a"])(this.peer.uploadSpeed,{byte:!1,gb:!1,fix:1})},downloadSpeed(){return Object(l["a"])(this.peer.downloadSpeed,{byte:!1,gb:!1,fix:1})},peerClient(){if(!this.peer.id)return"-";const e=n.from(this.peer.id,"hex").toString("ascii");try{const t=s()(e.replace("-AB","-WD")),a=this.peer.isAbPeer?"(Alphabiz)WebTorrent":t.client;return"unknown"===a?this.$t("unknown"):t.version?a+" "+t.version:a}catch(t){return this.$t("unknown")}},peerProgress(){if("number"!==typeof this.peer.progress)return"-";const e=Number((100*this.peer.progress).toFixed(1));return e+"%"}},methods:{showPaymentPannel(){this.$emit("showPaymentPannel",{peerId:this.peer.id,address:this.peer.address,remoteUser:this.peer.user,remoteSubId:this.peer.subId})}}}}).call(this,a("0ee4"),a("eb72").Buffer)},c7ce:function(e,t,a){},c905:function(e,t,a){"use strict";a("9d1e")},c9b4:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},ca31:function(e,t,a){},cb96:function(e,t,a){},cbf3:function(e,t,a){"use strict";a("49d6")},cc0c:function(e,t,a){"use strict";a("1da1")},cdb7:function(e,t,a){"use strict";a("7ad0")},ce6c:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.showAppBar?a("q-bar",{staticClass:"application-bar app-draggable"},["mac"===e.env?[a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("div",{staticClass:"absolute-left full-width full-height row flex-center"},[a("div",{staticClass:"text-weight-bold non-selectable"},[e._v(e._s(e.appName))])])]:e._e(),["win","linux"].includes(e.env)?[a("q-img",{staticClass:"application-bar-icon",attrs:{src:e.abIcon,width:"18px",height:"18px"}}),a("div",{staticClass:"application-bar-title q-ml-md q-pr-md non-selectable",staticStyle:{"font-size":"0.8rem"}},[e._v("\n "+e._s(e.appName)+"\n ")]),a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("q-space"),a("div",{staticClass:"full-height flex-center row app-no-draggable",staticStyle:{"pointer-events":"visible","margin-right":"-12px"}},[a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.minimize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1",y1:"6",x2:"11",y2:"6",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.maximize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("polyline",{attrs:{points:"5.5 1.5 10.5 1.5 10.5 6.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("polyline",{attrs:{points:"1.5 5.5 1.5 10.5 6.5 10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button window-close-button",attrs:{unelevated:""},on:{click:e.close}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1.5",y1:"1.5",x2:"10.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("line",{attrs:{x1:"10.5",y1:"1.5",x2:"1.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])])],1)]:e._e()],2):e._e()},o=[],i=(a("de6c"),a("d710"));const r=a("d310").isElectron();var s={name:"ApplicationBar",data(){return{appName:i["appName"],showAppBar:r,showMenu:!1,abIcon:"developer/assets/icon-256.png",env:null,windowControl:null}},created(){if(!r)return;Promise.resolve().then(a.t.bind(null,"b052",7)).then((({ipcRenderer:e})=>{this.windowControl=t=>e.sendSync("app_window_control",t)}));const e=navigator.userAgent.toLowerCase(),t=/macintosh|mac os x/i.test(e);this.env=t?"mac":"win"},methods:{minimize(){this.windowControl("minimize")},maximize(){this.windowControl(this.windowControl("isMaximized")?"unmaximize":"maximize")},close(){this.windowControl("close")}}},l=s,c=(a("ac09"),a("2b5f")),d=a("85af"),u=a("1043"),_=a("9767"),p=a("990e"),m=a("8a98"),h=a("09a4"),g=a.n(h),f=Object(c["a"])(l,n,o,!1,null,null,null);t["a"]=f.exports;g()(f,"components",{QBar:d["a"],QBtn:u["a"],QImg:_["a"],QSpace:p["a"],QTable:m["a"]})},cf6e:function(e,t,a){},d176:function(e,t,a){},d1a4:function(e,t,a){"use strict";(function(e){a("de6c"),a("dc89"),a("2425"),a("a1c1");var n=a("e74d"),o=a("2b49");t["a"]=(e,{app:t,app_config:a},o)=>{i(n["a"],o,a),r(e,o,a.protocol,t)};const i=(e,t,{protocol:a,web_url:n})=>{t.$logger.tags("AuthWrapper");e._oAuthHandler._urlOpener=(e,t)=>o["a"].urlOpener(e),e.__proto__._handleAuthResponse=()=>{},e.__proto__.oAuthSignOutRedirect=function(t,a){const n=async()=>{const t=e._oAuthHandler._config.domain,a=e._oAuthHandler._cognitoClientId,n=e._oAuthHandler._config.redirectSignIn,o=`https://${t}/logout?${Object.entries({client_id:a,logout_uri:encodeURIComponent(n)}).map((e=>e.join("="))).join("&")}`;await e._oAuthHandler._urlOpener(o,n)};n(),t()};const i=(()=>({isLocalhost:Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),isElectron:s()}))(),r=i.isElectron?2:i.isLocalhost?0:1,l=["http://localhost:8080/oauth/",`https://web.alpha.biz/oauth_redirect/${a}/${encodeURIComponent(n)}/`,`https://web.alpha.biz/oauth_redirect/${a}/app/`][r],c=l;Object.assign(e._config.oauth,{app_env:i.isElectron?"electron":"web",redirectSignIn:l,redirectSignOut:c}),Object.assign(e._oAuthHandler._config,{app_env:i.isElectron?"electron":"web",redirectSignIn:l,redirectSignOut:c})},r=(e,t,n,o)=>{if(s()){const{ipcRenderer:e}=a("b052");e.on("oauth_event",((e,t)=>{t.startsWith(`${n}://$oauth/v2/`)&&i(t,"electron")}))}else if("/oauth/v2/"===new URL(location.href).pathname){const t=t=>{e.prototype.$amplify.addOnAuthStateChangedListener((()=>{setTimeout((()=>{i(t,"web")}),2e3)}),{once:!0})};t(location.href),o.router.replace("/")}function i(e,a){t.core.handleOAuthActionResponse(e,a)}};function s(){return"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof e&&"object"===typeof e.version&&e.version.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron")}}).call(this,a("28d0"))},d1e4:function(e,t,a){"use strict";a("eaf6")},d2e8:function(e,t,a){"use strict";a("053d")},d310:function(e,t,a){"use strict";a.r(t),a.d(t,"localConfigs",(function(){return s})),a.d(t,"deepClone",(function(){return c})),a.d(t,"Bus",(function(){return d["a"]})),a.d(t,"isElectron",(function(){return u["default"]})),a.d(t,"torrentToJson",(function(){return h}));a("de6c");var n=a("3fd2"),o=a.n(n);const i=o.a.renderer(),r=e=>new Promise(((t,n)=>{if(!i)return n(!1),!1;i&&Promise.resolve().then(a.t.bind(null,"b052",7)).then((a=>a.ipcRenderer.invoke("get-app-settings").then((a=>{a[e]?t(a[e]):n(!1)})).catch(n)))}));var s={getSettingsItem:r};function l(e){if(!e||"object"!==typeof e)return e;const t=arguments[1]||new WeakMap;if(t.has(e))return t.get(e);const a=Array.isArray(e)?[]:{};t.set(e,a);for(const n in e)Object.hasOwnProperty.call(e,n)&&(a[n]=l(e[n],t));return a}var c=l,d=a("c62a6"),u=a("0598");const _=a("a3fc"),p=["infoHash","name","paused","progress","length","downloaded","downloadSpeed","uploaded","uploadSpeed","recieved","ready","token","origin","path","pending"],m=(e,t)=>{const a={};return p.forEach((t=>{a[t]=e[t]})),a.done=e.downloaded>=e.length,a.download=!t,a.upload=e.upload,a.files=e.files?e.files.map((t=>({name:t.name,path:_.resolve(e.path,t.path),progress:t.progress||0}))):[],a};var h=m},d34c:function(e,t,a){},d534:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"image-with-preview full-width"},[a("q-input",{staticClass:"full-width",attrs:{outlined:"","stack-label":"",value:e.value,label:e.label,rules:e.rules,placeholder:"https://example.org/path/to/image.jpg",debounce:500},on:{input:e.emitSrc},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"after",fn:function(){return[a("div",{staticClass:"image-container"},[a("img",{staticClass:"preview-image",class:e.state,attrs:{src:e.realSrc},on:{error:e.emitError,load:e.emitSuccess}}),"error"===e.state?a("q-icon",{attrs:{name:"close",size:"56px",color:"red"}},[a("q-tooltip",[e._v(e._s(e.$t("invalid_image")))])],1):e._e(),"loading"===e.state?a("q-icon",{attrs:{name:"image",size:"56px",color:"green"}},[a("q-tooltip",[e._v(e._s(e.$t("poster")))])],1):e._e()],1)]},proxy:!0}])})],1)},o=[],i={props:{value:String,label:String,rules:{type:Array,default:()=>[]}},data(){return{state:"loading"}},computed:{realSrc(){let e=this.value||"";if(!e.startsWith("http"))return"";while(e.startsWith("http%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);while(e.startsWith("https%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);return e}},methods:{emitSrc(e){this.$emit("input",e)},emitError(){""!==this.value&&(this.$emit("state",2),this.state="error")},emitSuccess(){this.$emit("state",1),this.state="loaded"}},watch:{value(){console.log("src change"),this.$emit("state",0),this.state="loading"}}},r=i,s=(a("c905"),a("2b5f")),l=a("0e45"),c=a("f106"),d=a("cf25"),u=a("09a4"),_=a.n(u),p=Object(s["a"])(r,n,o,!1,null,"70ea5328",null);t["a"]=p.exports;_()(p,"components",{QInput:l["a"],QIcon:c["a"],QTooltip:d["a"]})},d558:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return i}));var n=a("800b");const o=Boolean((()=>{var t;if("undefined"===typeof window)return"mobile"in e.versions||"android"===Object(n["platform"])()||"ios"===Object(n["platform"])()||e.argv.includes("--dev")||e.argv.includes("--capacitor")||void 0;const{Platform:o}=a("d247");return(null===(t=o.is)||void 0===t?void 0:t.capacitor)||void 0})());function i(){return o}}).call(this,a("28d0"))},d6ab:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return _}));a("de6c"),a("dc89"),a("2425"),a("a1c1");const n=a("61af"),o=a("a3fc"),i=a("17de"),r=a("5c0c");function s(e){const t=e.path||e;if(console.log(t),!n.existsSync(t)&&!n.existsSync(t+".downloading"))return[];const a=o.dirname(e.path),i=o.extname(e.path),r=e.name.substring(0,e.name.lastIndexOf("."));console.log(a,r,i);const s=d(a,r),_=c(a,s),p=u(a,r),m=l(a,p);return[..._,...m]}function l(e,t){const a=[];try{t.forEach(((t,s,l)=>{l[s]=e+"/"+t;const c=n.readFileSync(l[s]),d=r.decode(c,i.detect(c)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),u=1===(t.match(/\./g)||[]).length?t:o.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".srt";a.push({src:URL.createObjectURL(new Blob([_(d)])),label:u,path:e+"\\"+t})}))}catch(s){console.log(s)}return console.log(a),a}function c(e,t){const a=[];try{t.forEach(((t,s,l)=>{l[s]=e+"/"+t;const c=n.readFileSync(l[s]),d=i.analyse(c);console.log("encoding",d);const u=r.decode(c,i.detect(c)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),_=1===(t.match(/\./g)||[]).length?t:o.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".vtt";a.push({src:URL.createObjectURL(new Blob([u])),label:_,path:e+"\\"+t})}))}catch(s){console.log(s)}return console.log(a),a}function d(e,t){let a;try{a=n.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".vtt")))}catch(o){console.log(o)}return a}function u(e,t){let a;try{a=n.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".srt")))}catch(o){console.log(o)}return a}function _(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}},d710:function(e,t,a){(function(t){const n=a("b3f7"),{default:o}=a("0598");if(o())if(this.require)try{const a=this["require"]("developer/app");console.log("Init from node_modules",t),a.appName=a.name,e.exports={default:a,appName:a.name,...a}}catch(i){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=o()?require("developer/app"):n;t.appName=t.displayName,console.log("APP name:",t.appName),e.exports={default:t,appName:t.displayName,...t}}else e.exports={appName:n.name,...n}}).call(this,a("28d0"))},d7df:function(e,t,a){"use strict";a("de6c"),a("d4b5");var n=a("d310"),o=a("e3c7"),i=a("d558"),r=a("9ad5"),s=a.n(r),l=a("a368"),c=a("8a63"),d=a("f680"),u=a("1926");const _=Object(i["a"])(),p=e=>"requestAnimationFrame"in window?requestAnimationFrame(e):setTimeout(e,20),m=[],h=new Map,g=new Map,f={on(e,t){Object(n["isElectron"])()||_?(h.has(e)||h.set(e,[]),h.get(e).push(t),g.has(e)&&(g.get(e).forEach((e=>{t(...e)})),g.delete(e)),_&&"check-network-result"===e&&console.log("Listen on",e,t)):o["ipcRenderer"].on(e,t)},once(e,t){const a=(...n)=>{t(...n),this.off(e,a)};return this.on(e,a)},emit(e,...t){_?m.push({name:e,data:t}):Object(n["isElectron"])()?o["ipcRenderer"].send("_io_send",{name:e,data:t}):o["ipcRenderer"].send(e,...t)},off(e,t){console.log("Off",e);const a=h.get(e);if(!a)return;if(!t)return a.splice(0);const n=a.indexOf(t);-1!==n&&a.splice(t,1)},clear(){console.log("io client clear");for(const e of h.values())e.splice(0)}};if(Object(n["isElectron"])()){const e={resolve:null,async execute(){if(e.resolve)return;const t=new Promise((t=>e.resolve=t));o["ipcRenderer"].send("_io_fetch"),await t,e.resolve=null}},t=async()=>{await e.execute(),setTimeout((()=>p(t)),500)};p(t),o["ipcRenderer"].on("_io_response",(async(t,a)=>{var n;if(!a||!a.length)return null===(n=e.resolve)||void 0===n?void 0:n.call(e);await a.reduce((async(e,{name:t,data:a})=>{await e;const n=JSON.parse(a),o=h.get(t);if(o)o.map((e=>{try{e(...n)}catch(a){console.error(`Error when emitting io event [${t}] ${a}`)}}));else{g.has(t)||g.set(t,[]);const e=g.get(t);e.push(n),e.length>10&&e.splice(0,e.length-10)}}),Promise.resolve()),"function"===typeof e.resolve&&e.resolve()}))}if(_&&"object"===typeof window){const e=(e,t)=>{e.startsWith("ipc")&&(console.log("Got ipc event",e,t),t.unshift(null));const a=e.startsWith("ipc:")?e.substring(4):e,n=h.get(a);if("check-network-result"===a&&console.log("pre",a,n,h.size),h.has(a))n&&n.forEach((e=>e(...t)));else if(g.has(a)){const e=g.get(a);e.push(t),e.length>10&&(e.splice(0,e.length-10),"check-network-result"===a&&console.log("Remove",a,h.size))}else g.set(a,[t])};let t=0;const a=()=>{l["Filesystem"].readFile({path:"service_port",directory:l["Directory"].Documents,encoding:l["Encoding"].UTF8}).then((({data:e})=>{if(!isNaN(parseInt(e))){if(t===parseInt(e))return;t=parseInt(e),console.log("Set port to",t)}}))};a(),setInterval(a,1e4);const n=new Set,o=async()=>{if(!t)return setTimeout(o,500);try{let o=!0,i=()=>{};setTimeout((()=>{o&&(i=d["a"].create({message:u["b"].t("connecting")+"...",position:"bottom-right"}))}),1200);const r=t=>{t&&Array.isArray(t.events)&&t.events.forEach((({name:t,data:a})=>e(t,a)))},l=m.splice(0).map((e=>{const t=JSON.stringify(e).length;if(t>3e6){const t="partials:"+e.name;if(n.has(t))return;n.add(t);let a=0;const o=async e=>{const{data:t}=await s.a.post("http://localhost:3000",{events:[e]},{withCredentials:!1,timeout:5e3}).catch((()=>({})));return r(t),a++,await new Promise((e=>setTimeout(e,100)))};return e.data.reduce((async(e,a,n)=>{if(await e,"object"!==typeof a||JSON.stringify(a).length<3e6)await o({name:t,index:n,data:a}),await new Promise(p);else{let e=Array.isArray(a)?[]:{},i=0;for(const r in a)e[r]=a[r],i+=JSON.stringify(a[r]).length,i>3e6&&(await o({name:t,index:n,data:e}),e=Array.isArray(a)?[]:{},i=0,await new Promise(p));(Array.isArray(a)?e.length:Object.keys(e).length)&&await o({name:t,index:n,data:e})}await new Promise(p)}),Promise.resolve()).then((async()=>{await o({name:t,index:-1}),console.log(`Finished splicing ${t} with ${a} pieces`),n.delete(t)})),null}return e})).filter((e=>e));l.length||l.push("__empty__"),await l.reduce((async(e,n)=>{if(await e,!n)return;const{data:o}=await s.a.post(`http://localhost:${t}`,{events:"__empty__"===n?[]:[n]},{withCredentials:!1,timeout:2e3}).catch((e=>(console.log(`Failed to fetch events. Error: ${e.message||e}`),console.log(m),a(),{})));r(o)}),Promise.resolve()).catch(a),o=!1,i()}catch(i){console.log("Poll error",i)}setTimeout(o,500)};o(),l["App"].addListener("resume",(()=>{console.log("App resume"),setTimeout((()=>{Object(c["c"])(!0)}),500)})),l["App"].addListener("pause",(()=>{console.log("App pause"),Object(c["d"])(!0)})),l["Network"].addListener("networkStatusChange",(e=>{console.log("Network connection type changed to",e.connectionType)}))}t["a"]=f},d7f6:function(e,t,a){},d884:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return o}));a("5584");const n=[{value:"en-US",label:"English"},{value:"zh-CN",label:"简体中文"},{value:"zh-TW",label:"繁體中文"},{value:"de-DE",label:"Hochdeutsch"},{value:"es-ES",label:"español castellano"},{value:"fr-FR",label:"Français standard"},{value:"hi-IN",label:"हिंदी भारत)"},{value:"id-ID",label:"Indonesian (Indonesia)"},{value:"it-IT",label:"Italiano standard"},{value:"ja-JP",label:"日本語 (日本)"},{value:"ko-KR",label:"한국어(대한민국)"},{value:"nl-NL",label:"Standaard Nederlands"},{value:"pl-PL",label:"polski (Polska)"},{value:"pt-PT",label:"português europeu"},{value:"ru-RU",label:"Русский"},{value:"th-TH",label:"ไทย (ประเทศไทย)"},{value:"tr-TR",label:"Türkçe (Türkiye)"}];function o(e){return n.some((t=>t.value===e))}},ddf9:function(e,t,a){"use strict";function n(){const e=navigator.userAgent.toLowerCase();return e.includes("android")||e.includes("ios")||e.includes("iphone")}a.d(t,"a",(function(){return n}))},df2b:function(e,t,a){},e0e1:function(e,t,a){"use strict";a("571b")},e24e:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},e3c7:function(e,t,a){"use strict";a.r(t),a.d(t,"ipcEvent",(function(){return l})),a.d(t,"ioEvent",(function(){return c})),a.d(t,"ioServer",(function(){return _})),a.d(t,"ipcRenderer",(function(){return p}));a("de6c");var n=a("bd50"),o=a.n(n),i=a("d310"),r=a("d558"),s=a("d7df");const l=new o.a,c=new o.a,d=Object(i["isElectron"])()?a("b052").ipcRenderer:Object(r["a"])()?{on(e,t){s["a"].on("ipc:"+e,t)},once(e,t){s["a"].once(e,t)},off(e,t){s["a"].off("ipc:"+e,t)},send(e,...t){console.log("ipcSend",e),s["a"].emit("ipc:"+e,...t)}}:{on(e,t){l.on(e,((...e)=>{t(...e)}))},send(e,...t){c.emit(e,...t)}},u=new Map,_={on(e,t){const a=u.has(t)?u.get(t):(...e)=>{t(...e)};u.has(t)||u.set(t,a),c.on(e,a)},emit(e,...t){l.emit(e,...t)},off(e,t){if(!t)return c.off(e);const a=u.get(t)||t;return a?c.off(e,a):void 0}},p=d;console.log("Init api server"),Object(i["isElectron"])()||Object(r["a"])()||(console.log("isElectron",Object(i["isElectron"])()),console.log("isCapacitor",Object(r["a"])()),a("c620"),a("ecef"))},e4a9:function(e){e.exports=JSON.parse('{"lib_index":"Heim","lib_edit":"Veröffentlichen","lib_publish":"Veröffentlichen","lib_explore":"Erkunden","lib_following":"Nachfolgend","lib_favorite":"Lokale Favoriten","lib_local_favorites":"Lokale Favoriten","lib_channel":"Kanal","lib_submit":"Einreichen","lib_from_network":"Verwendung einer dezentralen Datenbank aus dem Netzwerk","welcome_to_lib":"Willkommen in der Medienbibliothek von ${displayName}","register_or_login":"Registrieren/Anmelden","lib_recommend":"Empfehlen","lib_recommend_desc":"Willkommen in der ${displayName}-Bibliothek! Diese Bibliothek nutzt eine dezentrale Datenbank aus dem Netzwerk. Um es nutzen zu können, müssen Sie einigen Kanälen folgen.","follow_any_channel_to_continue":"Folgen Sie einem beliebigen Kanal, um fortzufahren","follow_channels_and_continue":"Folgen Sie den Kanälen {0} und fahren Sie fort","show_more_for_me":"Mehr für mich anzeigen","no_more_recommend":"Nicht mehr zu empfehlen","key":"Schlüssel","create_key":"Schlüssel erstellen","save_key":"Schlüssel speichern","save_key_file":"Möchten Sie Ihren Schlüssel als Datei speichern?","import_key":"Schlüssel importieren","import":"Importieren","invalid_key":"Ungültiger Schlüssel","back_to_top":"Zurück nach oben","search_for_channel":"Suchen Sie nach der Kanal-ID","search_channel_no_result":"Kanal mit der ID {0} kann nicht gefunden werden","please_input_channel_id":"Bitte geben Sie die Kanal-ID ein","welcome_help_text":"Dabei handelt es sich um eine dezentrale Medienbibliothek. Du brauchst\\n um ein Konto für diese Datenbank zu erstellen. Wir werden\\n generiert automatisch einen persönlichen Schlüssel für Sie.\\n Wenn Sie bereits einen Schlüssel besitzen, können Sie ihn auch importieren\\n hier.","welcome_key_text":"Sobald Sie sich angemeldet haben, klicken Sie bitte auf die Schaltfläche [SCHLÜSSEL SPEICHERN].\\n in der rechten unteren Ecke, um Ihren privaten Schlüssel zu speichern.\\n Wenn Sie Ihren Schlüssel verlieren, können Sie sich möglicherweise nicht erneut anmelden.","redirect_to_recommend":"Es scheint, dass Sie keinem Kanal gefolgt sind. Weiterleitung zur Seite [Erkunden].","channel":"Kanal","follow":"Folgen","unfollow":"Nicht mehr folgen","following":"Nachfolgend","share":"Aktie","unfollow_confirm":"Sind Sie sicher, dass Sie diesem Kanal nicht mehr folgen? Alle Beiträge dieses Kanals in Ihrer Chronik werden entfernt.","follow_failed_hint":"Der Vorgang steht im Hintergrund noch aus. Wenn der Vorgang längere Zeit nicht ausgeführt wird, starten Sie die App bitte neu und versuchen Sie es erneut.","block":"Block","unblock":"Entsperren","blocked":"verstopft","block_channel":"Blockieren Sie diesen Kanal","block_channel_confirm":"Wenn Sie den Kanal blockieren, wird er aus Ihrer Timeline entfernt. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","block_creator":"Blockieren Sie den Ersteller dieses Kanals","unblock_creator":"Entsperren Sie den Ersteller dieses Kanals","block_creator_confirm":"Block-Ersteller entfernt alle von diesem Ersteller erstellten Kanäle aus Ihrer Timeline. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","share_url_copied":"Die Freigabe-URL wird in Ihre Zwischenablage kopiert","follow_time":"Folgen Sie der Zeit","update_time":"Updatezeit","search":"Suchen","type":"Typ","added":"Hinzugefügt","click_to_task":"Klicken Sie hier, um zur Aufgabe zu gelangen","lib_already_added":"Sie haben dieses Video bereits hinzugefügt","description":"Beschreibung","poster":"Poster","channel_poster":"Kanalplakat","preview":"Vorschau","creator":"Schöpfer","creator_detail":"Details zum Ersteller","loading_creator":"Erstellerinformationen werden geladen","wait_for_creator_loaded":"Bitte warten Sie, bis die Erstellerinformationen geladen sind.","follower":"Anhänger","followers":"Anhänger","follower_list":"Follower-Liste","user":"Benutzer","channel_title":"Kanaltitel","channel_id":"Kanal ID","post_title":"Titel des Beitrags","post_id":"Beitrags-ID","import_data_from_excel":"Importieren Sie Daten aus Excel","set_excel_keys":"Excel-Tasten festlegen","excel_import_succeded":"Der Excel-Import war erfolgreich","excel_import_success_msg":"{0} Zeilen können hinzugefügt werden, {1} ungültige und {2} doppelte Elemente werden ignoriert","cannot_find_channel":"Kanal kann nicht gefunden werden","cannot_find_posts":"Beiträge können nicht gefunden werden","add_channel":"Kanal hinzufügen","add_post":"Beitrag hinzufügen","edit_channel":"Kanal bearbeiten","channel_setting":"Kanaleinstellung","edit_post":"Beitrag bearbeiten","edit_posts":"Beiträge bearbeiten","channel_detail":"Kanaldetails","remove":"Entfernen","remove_channel":"Kanal entfernen","remove_channel_confirm":"Möchten Sie diesen Beitrag wirklich entfernen? Dies kann nicht wiederhergestellt werden.","remove_post":"Beitrag entfernen","remove_post_confirm":"Möchten Sie diesen Kanal wirklich entfernen? Dies kann nicht wiederhergestellt werden.","preview_mode":"Vorschau Modus","preview_mode_desc":"Dies ist eine Vorschau Ihres Kanals. Alle Filmpreise finden Sie hier.","edit_user_profile":"Benutzerprofil bearbeiten","name":"Spitzname","avatar":"Benutzerbild","no_following":"Keine folgenden Kanäle. Klicken Sie hier, um dorthin zu gelangen","no_recommend":"Keine empfohlenen Kanäle. Klicken Sie hier, um dorthin zu gelangen","first_recomment_msg":"Es kann eine Weile dauern, wenn die App zum ersten Mal gestartet wird.","invalid_image":"Ungültiges Bild","image_not_reachable":"Diese Bild-URL ist nicht erreichbar.","channel_not_found":"Kanal nicht gefunden","cannot_get_channel_info":"Kanalinformationen können nicht abgerufen werden. Dieser Kanal wurde möglicherweise von seinem Ersteller entfernt und ist nicht mehr verfügbar.","validate_error":"Validierungsfehler","validate_user_name_no_space":"Der Benutzername sollte keine Leerzeichen enthalten","validate_url_no_space":"Die URL sollte keine Leerzeichen enthalten","validate_user_name_length":"Der Benutzername sollte eine Länge zwischen {0} und {1} haben","validate_user_desc_length":"Die Benutzerbeschreibung sollte nicht mehr als {0} Zeichen umfassen","validate_user_avatar_url":"Der Benutzer-Avatar sollte eine URL mit weniger als 2048 Zeichen sein","validate_channel_title_length":"Der Kanaltitel sollte eine Länge zwischen 1 und 100 haben","validate_channel_desc_length":"Die Kanalbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_channel_image_url":"Die Kanalvorschau sollte eine URL mit weniger als 2048 Zeichen sein","validate_post_title_length":"Der Beitragstitel sollte eine Länge zwischen 1 und 100 haben","validate_post_desc_length":"Die Beitragsbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_post_image_url":"Das Poster sollte eine URL mit weniger als 2048 Zeichen haben","validate_post_url":"Ungültige ${displayName}-URL","validate_post_url_length":"Die ${displayName}-URL sollte nicht mehr als 2048 Zeichen umfassen","film_rate":"Filmpreis","set_film_rate":"Filmrate einstellen","select_a_rate_before_enter":"Sie müssen einen Filmpreis auswählen, bevor Sie die Medienbibliothek aufrufen.","library_available_rate":"In der Bibliothek verfügbarer Filmpreis","rate_g":"G – Allgemeines Publikum","rate_g_desc":"Alle Altersgruppen zugelassen. Nichts, was Eltern beleidigen würde, wenn Kinder es ansehen.","rate_pg":"PG – Elternberatung empfohlen","rate_pg_desc":"Einige Materialien sind möglicherweise nicht für Kinder geeignet. Eltern werden aufgefordert, „elterliche Anleitung“ zu geben. Kann Material enthalten, das Eltern für ihre kleinen Kinder möglicherweise nicht mögen.","rate_pg_13":"PG-13 – Eltern dringend gewarnt","rate_pg_13_desc":"Einige Inhalte könnten für Kinder unter 13 Jahren ungeeignet sein. Eltern werden dringend gebeten, vorsichtig zu sein. Einige Materialien sind möglicherweise für Jugendliche im Vorschulalter ungeeignet.","rate_r":"R – Eingeschränkt","rate_r_desc":"Personen unter 17 Jahren benötigen die Begleitung eines Elternteils oder eines erwachsenen Erziehungsberechtigten. Enthält etwas Material für Erwachsene. Eltern werden dringend gebeten, mehr über den Film zu erfahren, bevor sie ihre kleinen Kinder mitnehmen.","rate_nc_17":"NC-17 – Nur für Erwachsene","rate_nc_17_desc":"Niemand unter 17 Jahren wird zugelassen. Eindeutig erwachsen. Kinder haben keinen Zutritt.","set_as_private":"Als privat festlegen","hide_in_explore":"Diesen Kanal auf der Erkundungsseite ausblenden","hidden":"Versteckt","select_a_rate":"Bitte wählen Sie einen Filmpreis aus","select_from_tasks":"Wählen Sie aus Aufgaben aus","import_from_magnet":"Import aus Magnet:?...","input_magnet_url":"Eingangsmagnet:? URL","task_title":"Aufgabentitel","set_title":"Titel festlegen","add_to_local_favorites":"Zu lokalen Favoriten hinzufügen","remove_from_local_favorites":"Aus lokalen Favoriten entfernen","removed_favorite":"Favorit entfernt","import_or_export_favorites":"Favoriten importieren/exportieren","export_local_favorites":"Lokale Favoriten als Backup exportieren","import_favorites_file":"Favoritendatei importieren","not_a_favorite_file":"Diese Datei ist keine bevorzugte Sicherungsdatei","connection_status":"Verbindungsstatus","gun_server_list":"Cache-Knoten","custom_nodes":"Benutzerdefinierte Cache-Knoten","custom_nodes_hint":"Benutzerdefinierte Cache-Knoten werden nach dem Neustart der App angewendet","wait_for_reboot":"Warten auf Neustart...({seconds}s)","reboot_now":"Jetzt neustarten","reboot_later":"Später neustarten","peer_list":"Direkte Knoten","server":"Knoten-URL","peer":"Peer","peer_id":"Knoten-ID","connection":"Verbindung","data_source":"Datenquelle","sync":"Synchronisieren","syncing":"Synchronisierung","sync_completed":"Synchronisierung abgeschlossen","got_all_post":"Du hast bereits alle Beiträge erhalten","placeholder_channel_title":"Ihr Kanalname","placeholder_channel_desc":"Beschreibung zu diesem Kanal","placeholder_post_title":"Filmname (Jahr)","placeholder_post_desc":"Beschreibung zu diesem Film","private_channel":"Privater Kanal","creator_blocked":"Ersteller blockiert","go_to_library":"Geh zur Bibliothek?","go_to_library_channel_msg":"Möchten Sie zum Bibliothekskanal {0} gehen?","magnet_does_not_have_name":"Dieser Magnet:? Wenn die URL keinen Namen hat, müssen Sie zuerst einen Beitragstitel hinzufügen.","no_available_post":"Kein Beitrag verfügbar","following_channel_no_post":"Auf allen Ihren folgenden Kanälen sind keine Beiträge verfügbar. Dies kann durch einen Netzwerkfehler verursacht werden. Wenn Sie einigen Kanälen bereits gefolgt sind, werden die Beiträge möglicherweise später geladen.","share_to_library":"In der Bibliothek teilen","quick_start":"Schnellstart","quick_start_desc":"Beginnen Sie mit der Erstellung eines Beitrags mit einer Aufgabe oder Datei","select_file":"Datei aussuchen...","select_folder":"Ordner auswählen...","post_options":"Post-Optionen","channel_options":"Kanaloptionen","create_new_channel":"Neuen Kanal erstellen","use_existed_channel":"Vorhandenen Kanal nutzen","select_existed_channel":"Vorhandenen Kanal auswählen","uploaded_by":"{title} hochgeladen von {name}","created_by":"{title} erstellt von {name}","creating_new_channel":"Neuen Kanal erstellen...","created_new_channel":"Neuer Kanal erstellt","creating_new_post":"Neuer Beitrag wird erstellt...","created_new_post":"Neuer Beitrag erstellt","create_new_post":"Neuen Beitrag erstellen","quick_start_timeout":"{0} Zeitüberschreitung. Dies kann durch einen Netzwerkfehler verursacht werden. Bitte versuchen Sie es später noch einmal.","file_too_large":"Datei zu groß","file_too_large_msg":"Diese Datei ist größer als 4 GB ({size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie fortfahren?","resolving_folder_files":"Ordnerdateien werden aufgelöst...","folder_too_large":"Ordner zu groß","folder_too_large_msg":"Die Dateien in diesem Ordner sind größer als 4 GB (insgesamt {size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie hochladen möchten?","creating_new_task":"Neue Aufgabe erstellen...","cannot_create_task":"Aufgabe kann nicht erstellt werden","cannot_create_task_msg":"Dies kann durch einen Fehler verursacht werden. Wenn die Aufgabe korrekt erstellt wurde, können Sie die Aufgabenliste später überprüfen.","cannot_get_task_name":"Der Aufgabenname kann nicht abgerufen werden. Sie müssen zuerst eines eingeben.","remove_old_task":"Alte Aufgabe entfernen","remove_old_task_desc":"Im Webmodus kann jeweils nur eine Aufgabe erstellt werden. Möchten Sie die alte Aufgabe entfernen?","subtitle_list":"Untertitelliste","optional":"Optional","with_subtitle":"Mit {language} Untertiteln","maximumSubtitleNum_limit":"Die Anzahl der Untertitel hat ihr Maximum erreicht","add_subtitle_url":"Untertitel-Download-Link hinzufügen","cannot_add_subtitle":"Untertitel konnten nicht hinzugefügt werden","cannot_add_subtitle_msg":"Untertitelsprache nicht ausgewählt oder ungültiger Download-Link.","support_subtitle_type":"Es werden nur Untertitel im SRT- und VTT-Format unterstützt.","recommend_opensubtitles":"Es wird empfohlen, den Untertitel-Download-Link oder die Untertitel-ID unter www.opensubtitles.org zu verwenden.","take_down":"Notieren","serious_violation":"Schwerer Verstoß","copyright_disputes":"Urheberrechtsstreitigkeiten","adults_only":"Nur für Erwachsene","takedown_reason":"Grund für die Deaktivierung","takedown_mode":"Takedown-Modus","admins":"Admins","takedown_user":"Deaktiviere diesen Ersteller","takedown_channel":"Deaktiviere diesen Kanal","takedown_post":"Lösche diesen Beitrag","select_takedown_reason":"Wählen Sie den Deaktivierungsgrund aus","takedown_invalid_reason":"Ungültiger Deaktivierungsgrund","takedown_invalid_user_id":"Ungültige Benutzer-Id. Die ID sollte 87 Zeichen umfassen","takedown_invalid_channel_id":"Ungültige Kanal-ID. Die ID sollte 20 Zeichen umfassen","takedown_invalid_post_id":"Ungültige Beitrags-ID. Die ID sollte 20 Zeichen umfassen","takedown_management":"Nehmen Sie das Management ab","users":"Benutzer","channels":"Kanäle","posts":"Beiträge","you":"Du","preset":"Voreingestellt","admin":"Administrator","committee":"Ausschuss","about_takedown_mode":"Über den Takedown-Modus:\\nVoreinstellung: Im Github-Repository konfiguriert. Alle werden aus der Bibliothek entfernt.\\nAdmin: Jeder Admin, für den er stimmt, wird entfernt.\\nAusschuss: Mindestens die Hälfte der Admins, die dafür stimmen, werden abgesetzt.","cannot_edit_preset":"Sie können diese Zeile nicht bearbeiten, da es sich um eine voreingestellte Zeile handelt","cannot_edit_not_vote":"Sie können diese Zeile nicht bearbeiten, da Sie nicht dafür gestimmt haben","remove_vote":"Entferne deine Stimme","post_preload_failed":"Dieser Beitrag konnte nicht vorab geladen werden. Der Download-Link ist möglicherweise veraltet, sodass dieser Beitrag nicht sofort abgespielt werden kann.","about_cache_node":"Über den Cache-Knoten","edit_cache_node":"Cache-Knoten bearbeiten","create_cache_node":"Cache-Knoten erstellen","about_cache_node_desc":"${displayName} verwendet den Gun-Server als Cache-Knoten. Sie können benutzerdefinierte Knoten vorab bearbeiten","learn_how_to_deploy_gun":"Erfahren Sie, wie Sie Ihren eigenen Waffenserver bereitstellen","repeat_add":"Die Aufgabe wurde hinzugefügt. Bitte fügen Sie sie nicht erneut hinzu","upload":"Hochladen","download":"Herunterladen","delete":"Löschen","delete_task":"Aufgabe löschen","delete_confirm_message":"Diese Aufgabe löschen? Dies ist unwiderruflich","also_delete_files":"Löschen Sie auch Dateien","default_delete_files":"Standardmäßig werden heruntergeladene Dateien nach der Entfernungsaufgabe gelöscht","not_now":"Nicht jetzt","delete_autoupload_confirm":"Diese Aufgabe enthält eine Datei, die Sie im Verzeichnis für den automatischen Upload abgelegt haben. Wenn Sie diese Aufgabe löschen, wird auch die Datei gelöscht.","delete_anyway":"Trotzdem löschen","upload_too_many_files":"Laden Sie zu viele Dateien hoch","ask_if_unlimit_upload_amount":"Das Auto-Upload-Verzeichnis enthält zu viele Dateien. Möchten Sie die Begrenzung der Upload-Menge deaktivieren? *Dies kann zu Leistungsproblemen führen","disable_limitation":"Begrenzung deaktivieren","not_length":"Der Betrieb mehrerer Dateien wird derzeit nicht unterstützt. Bitte kooperieren Sie","download_torrent":"Download-Datei","upload_torrent":"Datei hochladen","files":"Dateien","file":"Datei","folder":"Ordner","start_all":"Beginnen Sie alles","pause_all":"Pause all","remove_all":"Alles entfernen","upload_all":"Alles hochladen","clear_history":"Klare Geschichte","pause_all_finish_payments":"Damit sind alle Zahlungen abgeschlossen.","accelerating":"Beschleunigen","link_task":"Link-Aufgabe","torrent_task":"Dateiaufgabe","ok":"OK","cancel":"Stornieren","download_directory_position":"Verzeichnisposition herunterladen","torrent_file":"Aufgabendatei","magnetic_link_incorrect":"Das Linkformat ist falsch","delete_fail":"Fehler beim Löschen","pause":"Pause","paused":"Angehalten","stop_torrent":"Stoppen","seed":"Samen","resume":"Wieder aufnehmen","downloading":"wird heruntergeladen","downloaded":"Heruntergeladen","uploading":"Hochladen","auto_uploading":"Automatisches Hochladen","uploaded":"Hochgeladen","pending":"Warten auf andere Aufgaben","verifying":"Verifizieren","waiting_for_verify":"Warten auf Bestätigung","seeding":"Aussaat","completed":"Vollendet","status":"Status","task_name":"Aufgabennname","size":"Größe","progress":"Fortschritt","sort":"Sortieren","ascending":"Aufsteigend","descending":"Absteigend","file_loading":"Datei wird geladen...","loading":"Wird geladen","unknown_status":"Unbekannt","play_while_downloading":"Spielen...","upload_or_play":"Hochladen / Abspielen","play":"Spielen","ask_if_upload_file":"Datei hochladen?","ask_if_upload_or_play":"Datei hochladen oder abspielen?","torrent_error":"Fehler beim Hinzufügen einer Aufgabe:","no_peers":"Versuchen Sie es mehr als {0} Mal erneut und es ist kein Peer verfügbar","torrent_exists":"Aufgabe ist bereits vorhanden.","show_origin_torrent":"Holen Sie sich die ursprüngliche Aufgabendatei oder URL","show_directory":"Öffnen Sie das Verzeichnis dieses Torrents","task_num":"Aufgaben","total_upload_speed":"Upload-Geschwindigkeit","total_download_speed":"Download-Geschwindigkeit","path_missing":"Fehler: Torrent-Pfad konnte nicht gefunden werden","origin_not_found":"Informationen zur Ursprungsaufgabe können nicht gefunden werden.","text_copied":"Die Magnum-URL wird in Ihre Zwischenablage kopiert","copy_magnet_uri":"Magnet kopieren:? URI","copy_download_uri":"Download-URI kopieren","copy_share_uri":"Freigabe-URI kopieren","uri_copied":"URI wurde erfolgreich in Ihre Zwischenablage kopiert","uri_copy_failed":"URI konnte nicht kopiert werden","more":"Mehr...","toggle_list_mode":"Listenmodus umschalten","comment":"Kommentar","operations":"Operationen","open_directory":"Verzeichnis öffnen","no_downloading_task":"Keine Download-Aufgabe","remove_all_downloading_tasks":"Alle Download-Aufgaben entfernen?","remove_all_upload_tasks":"Alle Upload-Aufgaben entfernen?","remove_autoupload_files":"Entfernen Sie automatisch hochgeladene Dateien","remove_all_history":"Gesamten Verlauf entfernen?","remaining":"Übrig","created_time":"Zeit geschaffen","used_time":"Benötigte Zeit","completed_time":"Abgeschlossene Zeit","yesterday":"Gestern","before_yesterday":"{empty}","earlier":"Früher","miss_file":"Einige Dateien fehlen","delete_miss_file_task":"In {0} fehlen Fome-Dateien.","common_peer":"Gemeinsamer Peer","ab_peer":"${displayName} Peer","ab_peer_verified":"Verifizierter ${displayName}-Peer","ab_peer_available":"${displayName} Peer(s) verfügbar","alphabiz_accelerating":"${displayName} beschleunigt","income":"Einkommen","income_info":"Einkommen (heute/gesamt)","total_income_info":"Einkommen: {0}(heute) / {1}(gesamt)","login_to_see_income":"Melden Sie sich an, um die Einkommensstatistik anzuzeigen","credit_cost":"Kreditkosten","downloaded_by_payment":"Von Payments heruntergeladen","file_not_found":"Diese Datei kann nicht lokal gefunden werden","no_task":"Nicht fragen","no_matched_task":"Keine passende Aufgabe","space_not_enough":"Speicherplatz reicht nicht aus","need_more_space":"Benötigt {0} mehr Speicherplatz, aber auf der aktuellen Festplatte sind {1} frei ({2} reserviert). Aufgaben werden angehalten. Das Vorladen der Bibliothek ist deaktiviert. Sie können es unter [Einstellungen – Erweitert] wieder aktivieren.","seeders":"Sämaschinen","last_update":"Letztes Update","connecting":"Verbinden","connected":"In Verbindung gebracht","request_timed_out":"Zeitüberschreitung der Anforderung","connection_failed":"Verbindung fehlgeschlagen","invalid_download_url":"Ungültige Download-URL","download_link":"Download-Link","empty_files":"Keine Dateien im Verzeichnis","duplicate_task":"Doppelte Aufgabe","duplicate_tracker":"Doppelter Tracker","this_task_not_ready":"Diese Aufgabe ist noch nicht fertig. Wenn Sie diese Aufgabe anhalten, wird sie direkt entfernt.","some_task_not_ready":"Einige Aufgaben sind noch nicht fertig. Wenn Sie diese Aufgaben pausieren, werden sie direkt entfernt.","failed_to_delete_files":"Dateien konnten nicht gelöscht werden","failed_to_delete_files_desc":"Einige Dateien der Aufgabe konnten nicht gelöscht werden. Möglicherweise müssen Sie sie manuell löschen","unknown_error":"Unbekannter Fehler: {0}","more_files_are_not_shown":"({0} weitere Dateien werden aus Leistungsgründen nicht angezeigt)","no_available_file":"Keine verfügbare Datei. Bitte warten Sie, bis die Aufgabe fertig ist.","service_worker_error":"ServiceWorker kann nicht zum Spielen geladen werden. Möglicherweise unterstützt Ihr Browser diese Funktion nicht oder der ServiceWorker ist nicht aktiviert. Möglicherweise müssen Sie diese Seite neu laden und es erneut versuchen.","add_task_first":"Sie müssen zuerst eine Aufgabe hinzufügen.","player_task_time":"Der Spieler braucht zu viele Sekunden, um sich auf das Spiel vorzubereiten. Möglicherweise stimmt etwas mit der Aufgabe nicht.","web_mode_hint":"Der Webmodus von ${displayName} unterstützt nur WebRTC-Peers. Für ein optimales Erlebnis laden Sie bitte die Desktop-App ${displayName} herunter.","web_mode_task_hint":"Klicken Sie auf die Schaltflächen unten, um eine Aufgabe hinzuzufügen. Sie können jeweils nur eine Aufgabe hinzufügen.","save_to_local":"Lokal speichern","save_as_zip":"Als ZIP speichern","creating_save_file":"Speicherdatei wird erstellt...","upload_as_one_directory":"Als ein Verzeichnis hochladen","upload_as_single_files":"Als einzelne Dateien hochladen","web_mode_upload_single":"Sie können im Webmodus nur eine einzelne Datei hochladen","download_success":"Erfolgreich herunterladen","download_fail":"Herunterladen fehlgeschlagen","wait_for_downloaded_to_share":"Bitte warten Sie, bis die Aufgabe heruntergeladen wurde, bevor Sie sie freigeben.","download_with_cellular":"Laden Sie Aufgaben per Mobilfunk herunter","download_with_cellular_desc":"Sie verwenden ein Mobilfunknetz. Für Download-Aufgaben über das Mobilfunknetz können bei Ihrem Mobilfunkanbieter zusätzliche Gebühren anfallen.","download_with_cellular_confirm":"Immer noch mit dem Mobilfunk herunterladen","language":"Sprache","appearance":"Aussehen","darkModeSystem":"System","darkModeLight":"Licht","darkModeDark":"Dunkel","basic_setting":"Basic","hideMenu":"App-Menü ausblenden (nur Windows und Linux)","autoHide":"Fenster automatisch ausblenden","autoStart":"Beim Login öffnen","restore":"Behalten Sie Größe und Position des Fensters beim Verlassen bei","autoStartUnfinished":"Alle nicht erledigten Aufgaben automatisch fortsetzen","default_download_path":"Standardpfad","download_directory":"Verzeichnis herunterladen","upload_directory":"Verzeichnis hochladen","enable_auto_upload":"Aktivieren Sie den automatischen Upload","unlimit_upload_amount":"Unbegrenzte Upload-Menge","unlimit_upload_warning":"Erlauben Sie das Hochladen einer großen Anzahl von Dateien. Dies kann zu Leistungsproblemen führen","start":"Start-up","transport_setting":"Übertragung","upload_limit":"Upload-Limit","download_limit":"Download-Limit","payed_user_share_rate":"Bezahlter Benutzeranteilspreis","unlimited":"Unbegrenzt","limit_input_error":"Die Grenzwertzahl sollte positiv sein","BT_setting":"Aufgabeneinstellungen","saveLinkSeed":"Link als Aufgabendatei speichern","autoDownload":"Link und Inhalt automatisch herunterladen","continuousSeeding":"Setzen Sie die Aussaat fort, bis Sie sie manuell stoppen","seedSharingRate":"Saatverhältnis","seedTime":"Saatzeit (Minuten)","task_manage":"Aufgabenmanagement","maximumDownloadNum":"Maximal aktive Aufgaben","maximumConnectionsNum":"Maximale Verbindung pro Server","range_error":"Der Bereich sollte zwischen {0} und {1} liegen","random":"zufällig","breakpointContinuation":"Weitermachen","automaticSkip":"Download nach dem Hinzufügen der Aufgabe automatisch anzeigen","afterNotification":"Benachrichtigung nach Abschluss des Downloads","deleteConfirm":"Vor dem Löschen der Aufgabe ist keine Bestätigung erforderlich","submit":"Speichern und anwenden","discard":"Verwerfen","reset":"Zurücksetzen","reset_all_settings":"Alle Einstellungen zurücksetzen?","preferences_resetted":"Einstellungen zurückgesetzt","traditional_chinese":"traditionelles Chinesisch","japanese":"japanisch","english":"Englisch","chinese":"Vereinfachtes Chinesisch","advancedSettings":"Fortschrittlich","autoUpdate":"Auto-Update","autoCheckUpdate":"Automatisch nach Updates suchen","proxy":"Stellvertreter","useProxyService":"Proxy aktivieren","trackerService":"Tracker-Server","recommendUse":"Empfohlen","autoUpdateTrackerServiceList":"Aktualisieren Sie die Tracker-Liste jeden Tag automatisch","manualUpdateTracker":"Manuelles Update","manualUpdateSuccess":"Tracker-Server erfolgreich aktualisieren","manualUpdateFail":"Aktualisierung fehlgeschlagen von:","listenPort":"Hören Sie die Häfen","BTlistenPort":"Datenübertragungsport","DHTlistenPort":"Verteilter Hash-Port","protocols":"Kompatible Protokolle","setDefaultClientForFollowingProtocols":"Als Standard-Client für die folgenden Protokolle festlegen","magnetUrl":"Magnet","video_file":"Videodatei","audio_file":"Audiodatei","security":"Sicherheit","impersonateUserAgent":"Schein-Benutzeragent","RPCauthorizationkey":"RPC-Geheimnis","viewDocument":"Sehen Sie sich das RPC Secret-Handbuch an","developer":"Entwickler","applicationLogPath":"App-Protokollpfad","downloadSessionPath":"Sitzungspfad herunterladen","resetDownloadSessionRecord":"Download-Sitzung zurücksetzen","restoreInitialSettings":"Werkseinstellungen zurückgesetzt","preferences_set_successfully":"Einstellungen erfolgreich gespeichert!","preferences_set_fail":"Einstellungen speichern schlägt fehl!","change_not_save":"Änderungen werden nicht gespeichert","discard_all_changes":"Alle Änderungen verwerfen und gehen?","stay_in_page":"Bleiben Sie auf der Seite","disk_usage":"Festplattennutzung","pause_if_less_space":"Pausieren und benachrichtigen, wenn der Speicherplatz weniger als (MB) beträgt","default_video_player":"Standard-Videoplayer","video_cache_time":"Stream-Play-Cache","minutes":"Protokoll","system_default":"Systemfehler","media_player":"Media Player","library_film_rate":"Verfügbarer Filmpreis","library_show_explore":"Seite [Erkunden] anzeigen","library_setting":"Bibliothekseinstellung","library_sync_setting":"Einstellung für die Synchronisierung der Bibliothek","keychain_sync_status":"Synchronisierungsstatus des Schlüsselbunds","sync_with_aws":"Schlüsselbund mit Amazon Web Services synchronisieren","backup_to_local":"Backup in lokaler Datei","enable_sync_with_aws":"Aktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws":"Deaktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws_desc":"Dadurch wird der gespeicherte Schlüssel auf dem Server entfernt. Bitte stellen Sie sicher, dass Sie Ihren Schlüssel bereits exportiert haben.","input_independent_password":"Geben Sie ein unabhängiges Passwort ein","change_independent_password":"Unabhängiges Passwort ändern","password_error":"Passwort-Fehler","password_invalid":"Passwort ungültig","key_existed":"Schlüssel vorhanden","key_not_found":"Schlüssel nicht gefunden","library_recommend":"Bibliothek empfehlen","show_all_channels":"Alle Kanäle auf der Empfehlungsseite der Bibliothek anzeigen","not_logged_in":"Nicht eingeloggt","login_to_continue":"Melden Sie sich an, um fortzufahren","mnemonic_code":"Mnemonischer Code","wordlist":"Wortliste","restore_code":"Aus Code wiederherstellen","generate_code":"Code generieren","export_mnemonic_code":"Mnemonischen Code exportieren","import_mnemonic_code":"Mnemonischen Code importieren","print":"Drucken","save_as_txt":"Als TXT speichern","save_as_pdf":"Als PDF speichern","from_file":"Aus Datei","not_valid_mnemonic_code":"Dies ist kein gültiger mnemonischer Code","cannot_parse_code_as_key":"Dieser mnemonische Code kann nicht als Bibliotheksschlüssel analysiert werden","import_key_hint":"Möchten Sie diesen Schlüssel wirklich importieren? Dadurch wird Ihr alter Schlüssel in der Bibliothek wiederhergestellt.","import_key_confirm":"Ja, importieren Sie es.","library_preload":"Laden Sie Aufgaben aus der Bibliothek vorab","show_preload":"Vorladeaufgaben anzeigen","set_download":"Download-Verzeichnis festlegen","set_download_desc":"Für die macOS App Store-Version befindet sich das Standard-Download-Verzeichnis in der Sandbox der App und wird nach der Deinstallation der App gelöscht. Wenn Sie Ihre Downloaddateien behalten möchten, müssen Sie manuell ein anderes Downloadverzeichnis auswählen.","home":"Heim","home_caption":"Download/Upload und Mediendateien","library":"Bibliothek","library_caption":"Entdecken Sie Medienressourcen","player":"Spieler","player_caption":"Media Player","credits":"Credits","credits_caption":"Überprüfen Sie den Kontostand","account":"Konto","account_caption":"Anmelden/Registrieren/Verwaltung","settings":"Einstellungen","settings_caption":"Einstellungen für App, Player, Konto","development":"Entwicklung","development_caption":"Entwicklermodus für den internen Gebrauch","basic":"Basic","basic_caption":"Grundeinstellungen","advanced":"Fortschrittlich","advanced_caption":"Erweiterte Einstellungen","blockchain":"Geldbörse","blockchain_caption":"${displayName} Dezentrale Geldbörse","internal_notice":"Interne Freigabemitteilung","release_notes":"Versionshinweise","terms_and_conditions":"Geschäftsbedingungen","license_and_listen_notices":"Lizenz- und Listen-Open-Source-Hinweise","close":"Schließen","success":"Erfolg","fail":"Scheitern","account_email_invalid_address":"Ungültige E-Mail-Adresse","account_email_invalid_domain":"Ungültige E-Mail-Domäne","account_email_unknown_status":"Unbekannter E-Mail-Zustellungsstatus","account_email_unavailable_address":"Nicht verfügbare E-Mail-Adresse","account_email_suppressed_address":"Unterdrückte E-Mail-Adresse","account_loading":"Wird geladen...","account_is_required":"ist erforderlich","account_sign_in_your_account":"anmelden","account_username":"Nutzername","account_username_email_phone":"Telefonnummer oder E-Mail","account_password":"Passwort","account_new_password":"Neues Kennwort","account_re_enter_password":"Kennwort erneut eingeben","account_password_not_equal":"Zwei Passwörter sind nicht gleich","account_new_password_same":"Das Passwort ist dasselbe wie das Originalpasswort","account_forgot_your_password":"Haben Sie Ihr Passwort vergessen?","account_reset_password":"Passwort zurücksetzen","account_sign_in":"anmelden","account_signed_in":"Angemeldet","account_sign_up":"Melden Sie sich an","account_find_your_account":"Finde deinen Account","account_enter_your_username":"Geben Sie Ihre Telefonnummer oder E-Mail ein","account_search":"Suchen","account_email_sent_tip":"Eine E-Mail mit einem Bestätigungscode wurde an Ihre E-Mail-Adresse gesendet:","account_phone_sent_tip":"Eine SMS mit einem Bestätigungscode wurde an Ihr Telefon gesendet:","account_email_phone_sent_tip":"E-Mail und SMS mit Bestätigungscode wurden an Ihre E-Mail-Adresse bzw. Ihr Telefon gesendet:","account_software_token_tip":"MFA ist für Ihr Konto aktiviert. Um die Anmeldung abzuschließen, schalten Sie bitte Ihr Gerät ein oder zeigen Sie es an und geben Sie den TOTP ein","account_reset_your_password":"Setze dein Passwort zurück","account_verification_code":"Bestätigungscode","account_resend_code":"Code erneut senden","account_code_has_been_resent":"Der Bestätigungscode wurde erneut gesendet","account_password_has_been_reset":"Das Passwort wurde zurückgesetzt","account_submit":"Einreichen","account_sign_up_your_account":"Registrieren Sie Ihr Konto","account_fill_required_fields":"Füllen Sie unten die erforderlichen Felder aus.","account_fill_optional_fields":"Füllen Sie die optionalen Felder unten aus.","account_email":"Email","account_invitation":"Einladung","account_invitation_code":"Einladungscode","account_i_accept":"Ich akzeptiere","account_license_terms":"die Lizenz und die Bedingungen","account_next":"Nächste","account_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren.","account_verify_fill_optional_fields":"Überprüfen Sie die optionalen Felder und füllen Sie sie aus.","account_nickname":"Spitzname","account_gender":"Geschlecht","account_male":"Männlich","account_female":"Weiblich","account_not_say":"Nicht sagen","account_birthday":"Geburtstag","account_phone_number":"Telefonnummer","account_locale":"Lokal","account_tip_verified":"Verifiziert, Anmelden...","account_verified":"verifiziert","account_unverified":"unbestätigt","account_signed_up":"Angemeldet","account_verify_your_identity":"Bestätigen Sie Ihre Identität","account_finish":"Beenden","account_signed_out":"Abgemeldet","account_change_password":"Kennwort ändern","account_change_email":"Ändern Sie die E-Mail","account_change_phone_number":"Telefonnummer ändern","account_sign_out":"Abmelden","account_current_password":"Aktuelles Passwort","account_re_enter_new_password":"neues Passwort erneut eingeben","account_personal_information":"Information","account_edit":"bearbeiten","account_reset":"zurücksetzen","account_greeting":"Hallo,","account_cancel":"Stornieren","account_change":"ändern","account_not_set":"nicht eingestellt","account_setting":"Einstellung","account_copy_code":"Kopieren Sie den Code","account_account_setting":"Konto","account_task_page":"Kreditaufgabe","account_setting_caption":"Passwort ändern / Informationen bearbeiten","account_security":"Sicherheit","account_want_to_join":"Möchtest du mitmachen?","account_sign_in_now":"anmelden","account_changed":"Geändert","account_clipboard_with_invitation_code":"Einladungscode kopiert","account_clipboard_with_code":"Der Code kopiert","account_invitation_code_dialog_tip":"Sie senden Ihrem Freund eine E-Mail oder SMS mit einem Einladungscode:","account_available":"verfügbar","account_invited":"eingeladen","account_used":"gebraucht","account_invitation_code_sent":"Der Einladungscode wurde gesendet","account_invitation_channel_required":"Füllen Sie mindestens einen Einladungskanal aus","account_no_verification_code":"Sie können den Bestätigungscode nicht erhalten?","account_no_phone_number":"Keine Telefonnummer?","account_sign_up_by_email":"Melden Sie sich per E-Mail an","account_no_email":"Keine Email?","account_sign_up_by_phone_number":"Melden Sie sich per Telefonnummer an","account_no_totp":"Nicht TOTP?","account_tip_no_totp":"Wenn kein TOTP vorhanden ist, richten Sie bitte zuerst TOTP ein","account_setup_totp":"TOTP einrichten","account_contact_information":"Kontaktinformationen","account_delete_account":"Konto löschen","account_deleted":"Gelöscht","account_can_not_mfa":"MFA in Schwierigkeiten?","account_set_mfa_type":"MFA konfigurieren","account_disable_mfa":"Deaktivieren Sie MFA","account_disabled_mfa":"Deaktivierte MFA","account_sms_mfa":"SMS-MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Nicht empfohlen","account_oauth_sign_in_with":"Melden Sie sich mit {provider} an","account_sign_in_failed":"Anmeldung fehlgeschlagen","account_tip_oath_sign_up":"Die E-Mail-Adresse, die dem aktuellen {provider}-Konto entspricht: {email} hat noch kein Konto erstellt","account_tip_confirm_delete_account":"Geben Sie das Passwort des aktuellen Kontos ein, um zu bestätigen, dass Sie das aktuelle Konto löschen möchten. (Gelöschte Konten können nicht wiederhergestellt werden.)","account_tip_config_mfa":"Als sekundäre Authentifizierung können Sie SMS oder ein zeitbasiertes Einmalpasswort (TOTP) verwenden","account_error_can_not_enable_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um MFA zu aktivieren","account_tip_can_not_enable_sms_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um SMS MFA zu aktivieren","account_tip_can_not_enable_totp_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um TOTP MFA zu aktivieren","account_tip_setup_totp":"Verwenden Sie Apps wie Authenticator, um den untenstehenden QR-Code zu scannen, oder kopieren Sie den Code manuell, um ein Sicherheitstoken hinzuzufügen","account_tip_verify_totp":"Überprüfen Sie Ihr TOTP","account_link_your_social_account":"Verknüpfen Sie Ihr soziales Konto","account_unlink_your_social_account":"Soziales Konto entbinden","account_tip_confirm_link":"Sind Sie sicher, dass Sie das Girokonto mit Ihrem {provider}-Konto verknüpfen möchten?","account_tip_confirm_unlink":"Sind Sie sicher, Ihr gebundenes {provider}-Konto zu kündigen?","account_tip_linking":"Bindung...","account_tip_unlinking":"Entbindung...","account_linked":"Gebunden","account_unlinked":"Ungebunden","account_error_can_not_link_to_the_linked_account":"Das aktuelle soziale Konto ist an ein anderes Konto gebunden","account_error_can_not_link_to_the_mismatched_email":"Das aktuelle Konto und die E-Mail-Adresse des sozialen Kontos stimmen nicht überein","account_error_can_not_link_before_email_verified":"Das soziale Konto kann nicht verknüpft werden, da das aktuelle Konto nicht an eine verifizierte E-Mail-Adresse gebunden ist","account_tip_confirm_verify_email_phone":"Soll ein Bestätigungscode an die E-Mail-Adresse und Telefonnummer des aktuellen Kontos gesendet werden, um Ihre Identität zu überprüfen?","account_tip_confirm_verify_phone":"Soll ein Bestätigungscode an die aktuelle Telefonnummer gesendet werden, um Ihre Identität zu überprüfen?","account_error_1_message_60_seconds":"Es kann nur alle 60 Sekunden eine SMS oder E-Mail gesendet werden. Warten Sie weitere {delta} Sekunden","account_error_10_messages_per_day":"Jedes Mobiltelefon oder jede E-Mail kann innerhalb von 24 Stunden nur 10 Nachrichten senden","account_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","Network Error":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","account_error_user_not_exist":"Benutzer existiert nicht","account_error_incorrect_username_or_password":"Falscher Benutzername oder Passwort","account_error_incorrect_original_password":"Falsches Originalpasswort","account_error_incorrect_password":"Falsches Passwort","account_error_username_not_found":"Benutzername nicht gefunden","account_error_can_not_reset_for_no_verified":"Das Passwort für das nicht bestätigte Konto kann nicht zurückgesetzt werden","account_error_invalid_verification_code":"Falscher Bestätigungscode, bitte versuchen Sie es erneut","account_error_expired_verification_code":"Der Bestätigungscode ist abgelaufen. Bitte versuchen Sie es erneut","account_error_password_not_long_enough":"Das Passwort ist nicht lang genug","account_error_attempt_limit_exceeded":"Versuchslimit überschritten. Bitte versuchen Sie es später noch einmal.","account_error_password_attempts_exceeded":"Anzahl der Passwortversuche überschritten.","account_error_invalid_phone_number_format":"Ungültiges Telefonnummernformat","account_error_no_cell_phone_prefix":"Bitte wählen Sie die Vorwahl für die Telefonnummer aus","account_error_username_already_exists":"Der Benutzername existiert bereits","account_error_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren","account_error_inactive_code":"Der Einladungscode ist kein aktivierter Code","account_error_non_existent_code":"Der Einladungscode ist nicht vorhanden","account_error_unexpected":"Unerwarteter Fehler","account_error_can_not_change_email_before_phone_bound":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Telefonnummer gebunden ist","account_error_can_not_change_email_before_unbound_social_account":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Bindung des sozialen Kontos aufgehoben wurde","account_error_can_not_change_phone_before_email_bound":"Die Telefonnummer kann nicht geändert werden, bevor die E-Mail gebunden ist","account_error_can_not_change_email_phone_with_mfa_enabled":"E-Mail-Adresse oder Mobiltelefonnummer können vor der Deaktivierung von MFA nicht geändert werden","account_error_not_supported_yet":"Derzeit nicht unterstützt","account_error_same_email":"Die neue E-Mail-Adresse darf nicht mit der ursprünglichen E-Mail-Adresse identisch sein","account_error_same_phone":"Die neue Telefonnummer darf nicht mit der ursprünglichen Telefonnummer identisch sein","account_error_email_not_exists":"Diese E-Mail Adresse existiert nicht","account_error_email_already_exists":"Ein Konto mit der angegebenen E-Mail-Adresse ist bereits vorhanden.","account_error_phone_already_exists":"Es existiert bereits ein Konto mit der angegebenen Telefonnummer.","account_error_mfa_token_mismatch":"Nichtübereinstimmung des Software-Token-Codes","account_error_recaptcha_not_loaded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_recaptcha_validation_failed":"Die ReCAPTCHA-Validierung ist fehlgeschlagen. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_sign_in_in_progress":"Ausstehender Anmeldeversuch, bereits im Gange","account_field_range":"Beschränken Sie die Eingabe auf {0}-{1} Zeichen","account_field_only_alphanumeric":"Unterstützt nur alphanumerische Zeichen","account_field_only_alphanumeric_and_symbol":"Unterstützt nur alphanumerische Zeichen und Symbole","account_field_only_chinese_alphanumeric_space_underline":"Unterstützt nur alphanumerische Zeichen, Leerzeichen und Unterstriche","account_field_prefix_without_number_space":"Das erste Zeichen darf weder eine Zahl noch ein Leerzeichen sein","account_field_suffix_without_space":"Darf nicht mit einem Leerzeichen enden","account_field_without_repeat_space":"Es können nicht mehrere Leerzeichen hintereinander verwendet werden","account_field_can_not_only_alphanumeric":"Sie können nicht nur Buchstaben oder Zahlen verwenden","account_field_must_have_number_characters":"Muss aus Zahlenzeichen bestehen","account_field_verification_code":"Der Bestätigungscode muss sechsstellig sein","account_field_invitation_code":"Der Einladungscode muss alphanumerisch sein","account_field_phone_number":"Ungültiges Telefonnummernformat","account_invalid_email_format":"ungültiges Email-Format","account_sign_out_confirm":"Möchten Sie sich wirklich abmelden? Dadurch werden alle Aufgaben gestoppt.","account_sign_out_anyway":"Melde dich trotzdem ab","account_signing_out":"Abmelden...","account_request_save_settings":"Einstellungen werden nicht gespeichert. Sie müssen die Änderungen speichern, bevor Sie sich abmelden.","pay":"Zahlen","pay_with_credit":"Bezahlen Sie für die Download-Beschleunigung. Benötigt etwa 0$$$ Guthaben","pay_with_credit_payed":"Beschleunigen. Benötigt noch ca. {0} Guthaben","create_payment":"Zahlung erstellen","pay_target":"Ziel","pay_for_torrent":"Zahlen Sie für {0}","your_subid":"Ihre Sub-ID","your_credits":"Ihre Credits","pay_point_for_data":"Zahlen Sie {0} Punkte für {1} Daten","auto_renew":"Aktivieren Sie die automatische Verlängerung","transaction_details":"Transaktionsdetails","transaction_id":"Ausweis","transaction_payer":"Zahler","transaction_payee":"Zahlungsempfänger","transaction_category":"Kategorie","transaction_changed_amount":"Geänderter Betrag","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Erstellungszeitpunkt","receipt_code":"Empfangscode","transfer_amount":"Überweisungsbetrag","code_the_receipt_code":"Kopieren Sie den untenstehenden Belegcode an den Zahler","fill_the_receipt_code":"Überweisung durch Eingabe des vom Zahlungsempfänger bereitgestellten Zahlungscodes","expense":"Kosten","copied":"Kopiert","transfer":"Überweisen","receive":"Erhalten","copy":"Kopieren","withdraw_fund":"Geld abheben","category_paydata_payer":"Datenkosten","category_paydata_payee":"Dateneinkommen","category_transfer":"Überweisen","category_bonus":"Bonus","category_recharge":"Aufladen","status_pending":"ausstehend","status_completed":"vollendet","status_finish":"beenden","status_failed":"fehlgeschlagen","tip_invalid_receiver":"Ungültiger Empfängercode","tip_invalid_amount":"Der Kreditbetrag sollte eine Gleitkommazahl im Bereich von 0 bis 1.000 sein (die Mindestgenauigkeit beträgt 0,001).","credit_get_more":"Holen Sie sich mehr Credits","credit_no_data":"Keine Daten verfügbar","credit_loading":"Wird geladen...","credit_not_enough_amount":"Nicht genügend Guthaben","credit_amount_not_enough":"Nicht genügend Guthaben","credit_payee_not_exist":"Zahlungsempfänger existiert nicht","credit_invalid_amount":"Ungültiger Kreditbetrag","credit_can_not_transfer_to_yourself":"Kann nicht auf sich selbst übertragen werden","credit_latest":"Neueste","credit_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","add_subtitles":"Untertitel hinzufügen","open_file":"Datei öffnen...","advanced_options":"Erweiterte Optionen","title":"Titel","location":"Standort","subtitle_file":"Untertiteldatei","unsupported_subtitle_type":"Der Dateityp {0} ist kein unterstützter Untertiteltyp","not_default_player":"Der Standard-Videoplayer ist nicht eingestellt","this_is_an_audio_file":"Dies ist eine Audiodatei","the_added_subtitle_already_exists":"Der hinzugefügte Untertitel existiert bereits","stop_stream_player":"Das Streaming-Medium wurde beendet, weil die Aufgabe angehalten oder gelöscht wurde","stop_player":"Der Player wurde beendet, da die Datei gelöscht wurde","playing_timeout_hint":"Wartezeiten sind vorbei. Bitte überprüfen Sie die Aufgabe","autoplay_hint":"Autoplay wird möglicherweise von Ihrem Browser blockiert. Wenn der Player nicht spielt, klicken Sie auf den Bildschirm, um fortzufahren","remove_playing_confirm":"{0} wird noch abgespielt. Wenn Sie es entfernen, wird der Player gestoppt. Möchten Sie es wirklich entfernen?","unsupported_in_browser":"Wird im Browsermodus noch nicht unterstützt","client":"Klient","warning":"Warnung","enable":"Aktivieren","disable":"Deaktivieren","auto":"Auto","encrypt_connection":"Verbindung verschlüsseln","encrypted_connection":"Verschlüsselte Verbindung","non_encrypted_connection":"Unverschlüsselte Verbindung","connected_wires_not_disconnect":"Angeschlossene Leitungen werden nicht getrennt","audio":"Audio-","video":"Video","image":"Bild","subtitle":"Untertitel","zip":"Reißverschluss","text":"Text","unknown":"Unbekannt","add":"Hinzufügen","undo":"Rückgängig machen","backup":"Sicherung","not_default_app":"${displayName} ist nicht Ihre Standard-App für Torrent und Medien. Möchten Sie sie als Standard festlegen?","dont_show_again":"Nicht mehr anzeigen","go_to_settings":"Gehe zu den Einstellungen","about_alphabiz":"Ungefähr ${displayName}","last_check_at":"Letzter Check um","update_channel":"Kanal aktualisieren","check_for_update":"Auf Update überprüfen","checking_for_update":"Suche nach Updates...","no_update_available":"Kein Update verfügbar","update_available":"Update verfügbar","update_now":"Jetzt aktualisieren","update_later":"Später aktualisieren","click_to_update":"Klicken Sie zum Herunterladen und Aktualisieren auf die Schaltfläche JETZT AKTUALISIEREN","update_failed":"Update fehlgeschlagen","update_failed_message":"Beim Aktualisieren ist ein Fehler aufgetreten:","check_shasum_failed":"Die Integrität des Installationsprogramms konnte nicht überprüft werden","downloading_update":"Update wird heruntergeladen...","ready_to_update":"Bereit zum Aktualisieren","restart_to_update":"Update wird heruntergeladen. ${displayName} wird für einen Moment zum Aktualisieren beendet.","already_latest":"Die aktuelle Version ({0}) ist bereits die neueste","update_timeout":"Aktualisierungszeitüberschreitung","no_available_release":"Keine verfügbare Version","no_available_installer":"Kein Installationsprogramm verfügbar","feedback":"Rückmeldung","select_a_type":"Wählen Sie einen Typ aus","category":"Kategorie","select_a_category":"Wählen Sie eine Kategorie","require_title":"Titel ist erforderlich","describe_your_problem":"Beschreiben Sie Ihr Problem","report_a_bug":"Melde einen technischen Fehler","request_a_new_feature":"Fordern Sie eine neue Funktion an","download_or_upload":"Herunterladen Hochladen","others":"Andere","submit_with_system_info":"Mit Systeminformationen einreichen","submit_feedback":"Geben Sie Feedback ab","tweet_us":"Twittern Sie uns","tweet_too_long":"Der Tweet ist zu lang","delete_characters":"Bitte löschen Sie mindestens {0} Zeichen.","rest_characters":"Sie können {0} weitere Zeichen eingeben.","update_alphabiz":"Aktualisieren Sie ${displayName}","current_version":"Aktuelle Version","cancel_update":"Aktualisierung abbrechen","slow_download_speed":"Download zu langsam","slow_download_speed_caption":"Der Download des Installationsprogramms ist jetzt zu langsam. Bitte überprüfen Sie den Netzwerkstatus","update_canceled":"Update abgebrochen","current_version_release_time":"Veröffentlichungszeitpunkt der aktuellen Version","expired_app":"${displayName} Abgelaufen","version_out_of_date":"Version veraltet","have_to_update":"Die Version von ${displayName} ist veraltet. Einige Protokolle oder APIs sind veraltet. Sie müssen ${displayName} aktualisieren, bevor Sie fortfahren können.","exit_alphabiz":"Beenden Sie ${displayName}","exit_and_update":"Beenden und Update anwenden","new_version_hint":"Neue Version ist verfügbar","no_new_version":"Keine neue Version verfügbar","current_is_latest":"Die aktuelle Version ist bereits die neueste","click_to_check_update":"Klicken Sie auf die Schaltfläche [NACH UPDATE PRÜFEN], um nach Updates zu suchen","download_latest_version_from_website":"Bitte besuchen Sie die offizielle Website, um die neueste Version herunterzuladen","to_the_website":"Zur Website","network_diagnotic":"Netzwerkdiagnose","diagnotic":"Diagnose","click_to_check":"Klicken Sie zum Überprüfen","click_to_check_again":"Klicken Sie, um es noch einmal zu überprüfen","checking":"Überprüfung","online":"Online","offline":"Offline","dns_look_up":"DNS-Suche","error":"Fehler","aws_service":"AWS-Service","network_pings":"Netzwerk-Ping","not_found":"Nicht gefunden","packet_loss":"Paketverlust","official_site":"Offizielle Seite","download_test":"Test herunterladen","test_task":"Testaufgabe {0}","download_failed":"Herunterladen fehlgeschlagen","second_spend":"{0} s ausgeben","open_default_player_failed":"Der Standardplayer konnte nicht geöffnet werden","copied_to_clipboard":"In die Zwischenablage kopiert","go_to":"Gehe zu","region_not_available":"Region nicht verfügbar","region_not_available_message":"Entschuldigung! Ihre Region ist für die Nutzung dieser App nicht verfügbar. Diese App wird nach {0} Sekunden beendet","confirm":"Bestätigen","no_available_result":"Kein verfügbares Ergebnis","invalid_password_format":"ungültiges Kennwort Format","invalid_password_format_same":"Das Passwort ist dasselbe wie das Originalpasswort","error_password":"Passwort-Fehler","keychain_setting":"Schlüsselanhänger","setting_description":"Cloud-Speicher: Speichern Sie wichtige Daten in der Cloud.\\nPasswort ändern: Ändern Sie das Passwort für den Medienbibliotheksschlüssel.\\nMnemonik: eine alternative Methode zum Generieren und Wiederherstellen von Schlüsseln.\\nLokalen Schlüssel importieren: Importieren Sie den lokal gespeicherten Schlüssel in die Medienbibliothek.\\nExportschlüssel: Speichert die aktuellen Medienbibliotheksdaten lokal oder in der Cloud.\\nSicherungsschlüssel zur Cloud: Aktualisieren Sie die aktuellen Medienbibliotheksdaten zur Sicherung in die Cloud.","refresh_status":"Update Status","confirm_import_key":"Importschlüssel bestätigen","confirm_update_cloud_key":"Sie haben bereits einen Schlüssel in der Cloud. Durch die Aktualisierung des Schlüssels wird der ursprüngliche Schlüssel überschrieben. Sind Sie sicher, dass Sie den in der Cloud gespeicherten Schlüssel aktualisieren möchten?","export_key_with_cloud":"Geben Sie das unabhängige Passwort ein, das Sie zum Exportieren des in der Cloud gespeicherten Bibliotheksschlüssels festgelegt haben, und sperren Sie die Schlüsseldatei mit dem Entsperrpasswort","store_cloud_key_prompt_password":"Geben Sie ein unabhängiges Passwort ein, um den Bibliotheksschlüssel in der Cloud zu speichern","update_cloud_key_prompt_password":"Legen Sie ein unabhängiges Passwort fest, um den Bibliotheksschlüssel zu verschlüsseln, und aktualisieren Sie ihn dann in der Cloud","enable_cloud_storage_prompt_password":"Legen Sie ein Passwort für den in der Cloud gespeicherten Schlüssel fest, mit dem Sie den Schlüssel aus der Cloud abrufen können","input_unlock_password":"Entsperrkennwort festlegen","export_local_prompt_password":"Bitte legen Sie ein Entsperrkennwort fest, um Ihre Schlüsseldatei zu verschlüsseln. Wir speichern dieses Passwort nicht für Sie. Wenn Sie also Ihr Passwort verlieren, können Sie Ihren Bibliotheksschlüssel nicht entsperren","require_unlock_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","require_independent_password":"Geben Sie das unabhängige Passwort ein, um den Schlüssel in der Cloud zu speichern","import_local_prompt_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","select_encrypt_mode":"Wählen Sie den Verschlüsselungsmodus","update_cloud_key":"Aktualisieren Sie den in der Cloud gespeicherten Schlüssel","backup_to_cloud":"Sichern Sie den Bibliotheksschlüssel in der Cloud","save_local":"Speichern Sie den Bibliotheksschlüssel als lokal verschlüsselte Datei","create_new_key":"Erstellen Sie einen neuen Bibliotheksschlüssel","creating_lib_key":"Bibliotheksschlüssel wird erstellt...","loading_lib_key":"Bibliotheksschlüssel wird geladen...","failed_to_create_lib_key":"Bibliotheksschlüssel konnte nicht erstellt werden","failed_to_load_lib_key":"Bibliotheksschlüssel konnte nicht geladen werden","import_local_key":"Schlüssel lokal importieren","import_lib_key_from_local":"Importieren Sie einen Bibliotheksschlüssel lokal","import_from_cloud":"Importieren Sie den Bibliotheksschlüssel aus der Cloud","create_or_import_key":"Bibliotheksschlüssel erstellen oder importieren","create_or_import_key_desc":"Der Bibliotheksschlüssel ist ein unabhängiger Schlüssel, der zum Abrufen und Veröffentlichen von Inhalten mit einer dezentralen Datenbank verwendet wird.","store_your_lib_key":"Bewahren Sie Ihren Bibliotheksschlüssel auf","export_cloud_key":"Schlüssel aus der Cloud exportieren","export_current_key":"Aktuellen Schlüssel exportieren","change_password":"Kennwort ändern","enable_cloud_storage":"Cloud-Speicher aktivieren","disable_cloud_storage":"Cloud-Speicher deaktivieren","disable_cloud_storage_desc":"Wenn Sie den Cloud-Speicher deaktivieren, wird der in der Cloud gespeicherte Schlüssel entfernt. Bitte stellen Sie sicher, dass der Schlüssel lokal gespeichert ist","sync_at":"Synchronisieren bei: {time}","cloud_storage_enabled":"Schlüsselbund mit {storage} synchronisieren","cloud_storage_disabled":"Cloud-Speicher deaktiviert","saved_locally":"Lokal gespeichert","export_key":"Schlüsseldatei exportieren","cloud_independent_password":"Cloudunabhängiges Passwort","key_file_unlock_password":"Passwort zum Entsperren der Schlüsseldatei","re_enter_unlock_password":"Geben Sie das Entsperrkennwort erneut ein","independent_password_not_enabled":"Das aktuelle Passwort ist das Passwort des Alphabiz-Kontos (es ist kein unabhängiges Passwort festgelegt)","use_cognito_hash":"Verwenden Sie das Passwort für das Alphabiz-Konto","use_independent_password":"Verwenden Sie ein unabhängiges Passwort","keychain_lib":"Bibliotheksschlüssel","loading_keychain_state":"Schlüsselbund wird geladen...","backing_up":"Sichern...","backup_current_key":"Aktuellen Schlüssel in der Cloud sichern","cloud_lib_key_not_existed":"Der Bibliotheksschlüssel ist in der Cloud nicht vorhanden","open_keychain_file":"Öffnen Sie die Schlüsselbunddatei","confirm_open_abk":"Möchten Sie die ABK-Datei öffnen?","use_the_key":"Benutze den Schlüssel","backup_the_key":"Sichern Sie den Schlüssel zur Cloud","keychain_data_does_not_exist":"Schlüsselbunddaten sind nicht vorhanden","timeout of 0ms exceeded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","XhrError":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","payer credit amount is not enough":"Nicht genügend Guthaben","payee does not exist":"Zahlungsempfänger existiert nicht","block_list_manage":"Sperrliste verwalten","blocked_users":"Blockierte Benutzer","blocked_channels":"Blockierte Kanäle","unblock_user":"Nutzer entblockieren","unblock_channel":"Kanal entsperren","no_blocked_user":"Kein blockierter Benutzer","no_blocked_channel":"Kein blockierter Kanal","field_required":"{0} ist erforderlich","setting":"Einstellung","unknown_media":"Unbekannte Medien","settings_button_visible":"Schaltfläche sichtbar","settings_setting":"Einstellung","settings_playback_rate":"Wiedergabegeschwindigkeit","settings_subtitle":"Untertitel","settings_pip":"Pip","settings_fullscreen":"Ganzer Bildschirm","settings_subtitle_options":"Untertiteloptionen","settings_normal":"Normal","settings_italic":"Kursiv","settings_lighter":"Feuerzeug","settings_bolder":"Mutiger","settings_small":"Klein","settings_large":"Groß","about":"Um","services":"Dienstleistungen","hide":"Verstecken","hide_others":"Andere verstecken","show_all":"Zeige alles","quit":"Aufhören","edit":"Bearbeiten","redo":"Wiederholen","cut":"Schneiden","paste":"Paste","select_all":"Wählen Sie Alle","view":"Sicht","reload":"Neu laden","toggle_full_screen":"Vollbild umschalten","toggle_developer_tools":"Entwicklertools umschalten","window":"Fenster","minimize":"Minimieren","bring_all_to_front":"Alles nach vorne bringen","help":"Helfen","github_repo":"Github Repo","issues":"Probleme","learn_more":"Erfahren Sie mehr","learn_spelling":"Lernen Sie Rechtschreibung","lookup_selection":"Suchen Sie nach „{selection}“","search_with_google":"Suchen Sie mit Google","save_as":"Speichern als","save_image":"Bild speichern","save_image_as":"Bild speichern als ...","copy_link":"Link kopieren","save_link_as":"Verknüpfung speichern unter ...","copy_image":"Kopiere das Bild","copy_image_as":"Bild kopieren als ...","copy_image_address":"Bildadresse kopieren","download_complete":"Download abgeschlossen","download_complete_message":"{0} wird heruntergeladen","is_running":"{0} läuft","open":"Öffnen Sie {0}","launch_problem":"Startproblem","ask_clear_data":"Anscheinend haben Sie versucht, {0} zu starten, sind aber mehrmals fehlgeschlagen.\\nMöchten Sie alle App-Daten löschen und später versuchen, sie zu starten?","launch_directly":"Direkt starten","clear_all_data":"Alle Daten löschen","ask_clear_confirm":"Dadurch werden alle Konfigurationen, Protokolle und Benutzerdaten entfernt!\\nDanach müssen Sie {0} möglicherweise erneut starten.\\nMöchten Sie die Daten wirklich löschen?","confirm_launch":"Nein, direkt starten","confirm_clear":"Ja, alle Daten löschen"}')},e757:function(e,t,a){"use strict";a("a1c1"),a("f200");var n=a("35f4"),o=a("d710"),i=a.n(o),r=a("0f0c"),s=(a("d4b5"),a("5584"));const l=({measurementId:e,apiSecret:t,clientId:a,name:n,params:o})=>{var i;const r=null===(i=s["a"].state.account)||void 0===i?void 0:i.sub;console.log("Measure",a,r,n,o);const l={client_id:a,events:[{name:n,params:o}]};return r&&(l.user_id=r),fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${e}&api_secret=${t}`,{method:"POST",body:JSON.stringify(l)})};var c=l;const d=Object(n["a"])("0123456789abcdef"),u=d(20),_={session_token:u,appName:i.a.displayName,version:Object(r["a"])("version"),channel:Object(r["a"])("channel"),packageFormat:Object(r["a"])("packageFormat")||"unknown"};class p{constructor(e,t){this.customParams={},this.trackingID=e,this.apiSecret=t,this.uaId=e.replace("G-","UA-").replace(/.$/,(e=>"-"+e)),console.log("Set UniversalAnalytics ID to",this.uaId),this.disabled=!1}config(){this.disabled||(gtag("js",new Date),gtag("config",this.trackingID))}set(e,t){this.disabled||(null!==t?this.customParams[e]=t:delete this.customParams[e])}async get(e){}async getClientId(){return new Promise((e=>gtag("get",this.uaId,"client_id",(t=>{console.log("CLIENT_ID",t),e(t)}))))}async send(e,t={}){if(this.disabled)return;const a=Object.assign({},t,_);return new Promise((async t=>{if(console.log("[GA] send",e,a),location.protocol.startsWith("https"))gtag("event",e,Object.assign(a,{event_callback:()=>{t()}}));else{console.log("Use measurement protocol");const n=await this.getClientId();console.log("Start measure with",n),c({measurementId:this.trackingID,apiSecret:this.apiSecret,clientId:n,name:e,params:a}).then((t=>{console.log("Finish measure",e),204!==t.status&&console.warn(`Warning: expect response code 204 but got ${t.status}: ${t.statusText||"(empty)"}`)})).catch((e=>{console.log("Error sending measure",e)})).finally(t)}}))}disable(){this.disabled=!0}enable(){this.disabled=!1}}t["a"]=p},e75b:function(e,t,a){"use strict";a("7a76"),a("de6c");var n=a("67cf"),o=a("e74d");class i{constructor(e){this.apiName=e}async __call__(e,t,a){const o=await n["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(o.stack){const e=new Error(o.message);throw e.name=o.name,e.stack=o.stack,e}return o}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await o["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}}a("dc69"),a("0c26"),a("a1c1"),a("f18a");var r=a("3334"),s=a("0cdb"),l=a("586d");const c={};class d{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return c[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{c[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),o=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let i;o(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(i||(i={}),i[e]=n)}));const r=n["a"].graphql({query:a,variables:i});return r.name=e,r}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!c[e])throw new Error("operation not found");return c[e]}static async execute(e,t){const a=this.__getOperation(e),o=await n["a"].graphql({query:a,variables:t});if(o.errors)throw new Error(o.errors[0].message);return o.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(c).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class u extends d{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>console.tag.purple("GQL","websocket",...e),{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const _=new Error("The number of retries exceeds the maximum"),p=e=>new Promise((t=>setTimeout(t,e))),m=async e=>{if(c=!0,i>0&&d>i)return console.warn(_),void o().log("failed to reconnect",_);const t=Math.min(r,1e3*Math.pow(2,d));o().log("connect close: ",`waiting for reconnect (${t}ms)`),await p(t),c?(d+=1,o().log(`Attempt to reconnect (${d})`),await e(),d=0,o().log("reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},h=async()=>{const a=e=>{e.some((e=>["Connection closed","Timeout disconnect"].includes(e.message)))?o(["GQL","Websocket"],"Connect Error :171"):o(["GQL","Websocket"],"Connect Error :168",e),m(h)};try{d>=0&&s&&await s();const n=u.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await m(h)}};await h()}}class _{static createSyncDataSubscriber(e,t,a,n=console.error){return new _(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await u.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class p{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=u.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=_.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}u.appendOperations(r),u.appendOperations(s),u.appendOperations(l);const m=new p,h=new p;var g={AwsApiGraphQL:u,createSyncDataSubscriber:_.createSyncDataSubscriber.bind(_),enableUserListener:async e=>await m.enable(e),disableUserListener:()=>m.disable(),addUserListener:(e,t,a)=>m.addListener(e,t,a),removeUserListener:(e,t)=>m.removeListener(e,t),enablePublicListener:async()=>await h.enable("*"),disablePublicListener:()=>h.disable(),addPublicListener:(e,t,a)=>h.addListener(e,t,a),removePublicListener:(e,t)=>h.removeListener(e,t)};t["a"]={Rest:i,GQL:g}},e7ec:function(e,t,a){"use strict";a.r(t);var n={};a.r(n),a.d(n,"createParams",(function(){return Y_})),a.d(n,"eventHandler",(function(){return J_}));var o={};a.r(o),a.d(o,"createParams",(function(){return X_})),a.d(o,"eventHandler",(function(){return ep}));var i={};a.r(i),a.d(i,"SubscribeGithubRepo",(function(){return dm}));a("a1c1"),a("04a1"),a("b576"),a("6b06"),a("0ecc"),a("9910"),a("19f3");var r=a("ff9b"),s=a("2c24"),l=a("b14a"),c=a("1dbb"),d=a("f680"),u=a("8750"),_=a("20c1");r["a"].use(c["a"],{config:{screen:{bodyClasses:!0},notify:{},dark:"auto"},lang:s["a"],iconSet:l["a"],plugins:{Notify:d["a"],Dialog:u["a"],Loading:_["a"]}});var p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"relative-position",attrs:{id:"q-app"}},[a("GlobalRecommend"),a("application-bar"),a("q-scroll-area",{staticClass:"main-area"},[a("router-view"),a("AboutDialog"),a("TaskDialog")],1)],1)},m=[],h=a("9856"),g=h["a"],f=(a("0928"),a("2b5f")),b=a("c782"),y=a("b2aa"),v=a("e586"),w=a("09a4"),k=a.n(w),S=Object(f["a"])(g,p,m,!1,null,null,null),C=S.exports;k()(S,"components",{QScrollArea:b["a"],QDialog:y["a"],QCard:v["a"]});var x=a("5584"),$=a("61a1"),T=async function(){const e="function"===typeof x["a"]?await Object(x["a"])({Vue:r["a"]}):x["a"],t="function"===typeof $["a"]?await Object($["a"])({Vue:r["a"],store:e}):$["a"];e.$router=t;const a={router:t,store:e,render:e=>e(C),el:"#q-app"};return{app:a,store:e,router:t}},z=(a("de6c"),a("91ab")),P=a("f4eb"),A=a.n(P);function I(e){return A()(e).luminosity()<.4?A()("white").fade(.1).string():A()("black").fade(.3).string()}function q(e){return A()(e).luminosity()<.4?A()(e).saturate(.3).darken(.5).string():A()(e).desaturate(.3).darken(.5).string()}function O(e,t){const a=e=>{const a=A()(t).isDark()?4:3;return A()(e).contrast(A()(t))>=a};if(a(e))return e;const n=A()(e).isDark();let o=A()(e);return o=n?o.mix(A()("white"),.3):o.mix(A()("black"),.3),a(o.string())||(o=o.saturate(.6)),o.string()}function E(e,t=!1){const a={color_page:"#fcfcfc",color_page_darken:"#1f1f1f"};return O(e,t?a.color_page_darken:a.color_page)}var D={invokeTextColor:I,invokeDarkenColor:q,invokeOnPageColor:E};let j;const N={mixins:[],render(e){const t=[];return this._injectVars(t),this._injectRules(t),e("style",{attrs:{type:"text/css","data-ab-theme":""}},t.join("\n"))},methods:{_injectVars(e){Object.keys(this.vars$root).length&&e.push(`:root {\n ${Object.entries(this.vars$root).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`),Object.keys(this.vars$light).length&&e.push(`.body--light {\n ${Object.entries(this.vars$light).map((e=>" "+e.join(": ")+";")).join("\n")}\n}`),Object.keys(this.vars$dark).length&&e.push(`.body--dark {\n ${Object.entries(this.vars$dark).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)},_injectRules(e){Object.entries(this.rules$root).forEach((([t,a])=>{e.push(`${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$light).forEach((([t,a])=>{e.push(`.body--light ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$dark).forEach((([t,a])=>{e.push(`.body--dark ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)}))},setVars(e,t=null){const a=null===t?"vars$root":t?"vars$dark":"vars$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[`--${Object(z["a"])(t)}`]:a})),{}))},setRules(e,t=null){const a=null===t?"rules$root":t?"rules$dark":"rules$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[t]:Object.entries(a).reduce(((e,[t,a])=>({...e,[Object(z["a"])(t)]:a})),{})})),{}))}},data(){return{vars$root:{},vars$light:{},vars$dark:{},rules$root:{},rules$light:{},rules$dark:{}}}};function L(){return j||(j=document.createElement("style"),document.head.appendChild(j)),j}let U;var R=e=>U||(N.mixins.push({created(){this.setupTheme(e)},methods:{setupTheme(e){Object.entries(e).forEach((([e,t])=>{this.setVars({[`q_color_${e}`]:t,[`q_color_on_${e}`]:D.invokeTextColor(t),[`q_color_txt_${e}`]:D.invokeOnPageColor(t,!1)},!1),this.setVars({[`q_color_${e}`]:D.invokeDarkenColor(t),[`q_color_on_${e}`]:D.invokeTextColor(D.invokeDarkenColor(t)),[`q_color_txt_${e}`]:D.invokeOnPageColor(D.invokeDarkenColor(t),!0)},!0)}));const t=e=>this.setRules({[`.bg-${e}`]:{backgroundColor:`var(--q-color-${e}) !important`,color:`var(--q-color-on-${e})`},[`.text-${e}`]:{color:`var(--q-color-txt-${e}) !important`},[`.bg-${e} .text-${e}`]:{color:`var(--q-color-on-${e}) !important`},[`.bg-${e}.text-${e}`]:{color:`var(--q-color-on-${e}) !important`}});Object.keys(e).forEach(t)}}}),U=new r["a"](N),U.$mount(L()),{updateTheme(e){var t;null===(t=U)||void 0===t||t.setupTheme(e)}}),M=a("d710"),F=a.n(M),B=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handlePan,expression:"handlePan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"overflow-hidden",staticStyle:{"max-width":"360px"},style:e.floatingStyle,attrs:{flat:e.inner,bordered:e.inner}},[a("q-card-section",{staticClass:"q-py-xs flex relative-position bg-primary text-primary"},[a("div",[e._v("Theme Editor")]),a("q-space"),e.inner?a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"open_in_new",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("show")}}}):e._e(),e.inner?e._e():a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"close",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-py-xs"},e._l(e.currentColors,(function(t,n){return a("InputColor",{key:n,attrs:{label:n,value:t},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},input:function(t){return e.updateColor(n,t)}}})})),1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-sm flex"},[a("q-space"),a("q-btn",{staticClass:"q-mx-xs",attrs:{label:"Reset",unelevated:"",color:"general","text-color":"general","no-caps":""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:e.reset}})],1)],1)},W=[],H=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"q-my-sm",attrs:{label:e.label,value:e.value,outlined:"",dense:"",readonly:""},on:{input:function(t){return e.$emit("input",t)}},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("q-icon",{staticClass:"rounded-borders cursor-pointer",style:{backgroundColor:e.value,color:e.textColor,width:"32px",height:"32px",marginLeft:"-8px"},attrs:{name:"colorize"}},[a("q-popup-proxy",{attrs:{cover:"","transition-show":"scale","transition-hide":"scale"}},[a("q-color",{attrs:{value:e.value},on:{input:function(t){return e.$emit("input",t)}}})],1)],1)]},proxy:!0},{key:"after",fn:function(){return[a("div",{staticClass:"flex items-center full-height",staticStyle:{margin:"-4px -8px -4px -2px"}},[a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.value,color:e.ColorUtils.invokeTextColor(e.value),width:"40px",height:"40px"}}),a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.ColorUtils.invokeDarkenColor(e.value),color:e.ColorUtils.invokeTextColor(e.ColorUtils.invokeDarkenColor(e.value)),width:"40px",height:"40px"}})])]},proxy:!0}])})},V=[],Q={name:"InputColor",props:{label:String,value:String},data(){return{ColorUtils:D}},computed:{textColor(){return D.invokeTextColor(this.value)}}},G=Q,K=a("0e45"),Y=a("f106"),J=a("ff50"),Z=a("4101"),X=Object(f["a"])(G,H,V,!1,null,"30ed6541",null),ee=X.exports;k()(X,"components",{QInput:K["a"],QIcon:Y["a"],QPopupProxy:J["a"],QColor:Z["a"]});let te=null;const ae={data(){return{floating$info:null,floating$size:null}},computed:{floatingStyle(){var e,t,a,n;if(this.inner)return{};const o={};this.floating$info?Object.assign(o,{x:this.floating$info.position.left,y:this.floating$info.position.top}):this.floating$size?Object.assign(o,{x:document.body.clientWidth/2-this.floating$size.width/2,y:document.body.clientHeight/2-this.floating$size.height/2}):Object.assign(o,{x:0,y:0});const i=8;return o.y=Math.max(i,Math.min(o.y,document.body.clientHeight-i-(null!==(e=null===(t=this.floating$size)||void 0===t?void 0:t.height)&&void 0!==e?e:0))),o.x=Math.max(i,Math.min(o.x,document.body.clientWidth-i-(null!==(a=null===(n=this.floating$size)||void 0===n?void 0:n.width)&&void 0!==a?a:0))),{position:"fixed",top:o.y+"px",left:o.x+"px"}}},mounted(){const{width:e,height:t}=getComputedStyle(this.$refs.card.$el),a=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e);this.floating$size={width:a(e),height:a(t)}},methods:{handlePan(e){if(!this.inner){if(this.floating$info=this.floating$info||{},e.isFirst){const e=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e),{top:t,left:a}=getComputedStyle(this.$refs.card.$el);Object.assign(this.floating$info,{from:{x:e(a),y:e(t)}})}else e.isFinal;Object.assign(this.floating$info,{position:{top:this.floating$info.from.y+e.offset.y,left:this.floating$info.from.x+e.offset.x}}),this.floating$info=Object.assign({},this.floating$info)}}}},ne={data(){return te=te||Object.assign({},this.$theme.getCurrentTheme()),{currentColors:te}},methods:{updateColor(e,t){this.currentColors[e]=t,this.$theme.updateTheme({[e]:t})},reset(){Object.assign(this.currentColors,this.$theme.getCurrentTheme()),this.$theme.updateTheme(this.currentColors)}}};var oe={name:"ThemeEditor",mixins:[ae,ne],components:{InputColor:ee},props:{inner:Boolean}},ie=oe,re=a("d7c7"),se=a("990e"),le=a("1043"),ce=a("fc38"),de=a("3a21"),ue=Object(f["a"])(ie,B,W,!1,null,null,null),_e=ue.exports;let pe;k()(ue,"components",{QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QBtn:le["a"],QSeparator:ce["a"]}),k()(ue,"directives",{TouchPan:de["a"]});var me=({Vue:e})=>{e.component("ThemeEditor",_e);let t=F.a.theme.color;const a=R(t);e.prototype.$theme={showFloatingEditor:he,hideFloatingEditor:ge,hasFloatingEditor:()=>!!pe,updateTheme:e=>a.updateTheme(e),getCurrentTheme:()=>t}};function he({onClose:e}={}){if(pe)return;const t=document.createElement("div");document.body.appendChild(t),pe=new r["a"]({render(t){return t("ThemeEditor",{ref:"editor",on:{close:()=>{ge(),null===e||void 0===e||e()}}})}}).$mount(t)}function ge(){pe&&(pe.$destroy(),pe.$el.remove(),pe=null)}a("f200"),a("d4b5"),a("7a76"),a("dc69"),a("0c26"),a("b37d");var fe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g({class:["icon","text"].includes(e.buttonType)?"bg-transparent":void 0,attrs:{"no-wrap":"","no-caps":e.noCaps,size:e.size,loading:e.loading,disable:e.value||e.loading,percentage:e.percentage,type:e.type,icon:e.icon,fab:["fab"].includes(e.buttonType),unelevated:!["fab","elevated"].includes(e.buttonType),dense:e.dense,round:["icon"].includes(e.buttonType),label:["icon"].includes(e.buttonType)?void 0:e.label,color:["icon","text"].includes(e.buttonType)?void 0:e.color,textColor:["general","primary","secondary","accent","positive","negative"].includes(e.color)?e.color:""},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])},Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},be=[],ye={name:"AlphabizButton",props:{buttonType:{type:String,default:"filled"},color:{type:String,default:"general"},size:{type:String,default:"md"},noCaps:{type:Boolean,default:!1},icon:{type:String,default:void 0},dense:Boolean,label:{type:String,default:void 0},value:{type:Boolean,default:!1},immediate:{type:Boolean,default(){return!!this.onClick}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},timeout:{type:Object,default:void 0},onAnimationEnd:{type:Function,default:void 0}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}else this.$emit("click",e)},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t&&t()}return o}}},beforeDestroy(){this.shutdownTimer()}},ve=ye,we=(a("c036"),a("53ef")),ke=Object(f["a"])(ve,fe,be,!1,null,null,null),Se=ke.exports;k()(ke,"components",{QBtn:le["a"],QSpinner:we["a"]});var Ce=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"alphabiz-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,label:e.label,"use-input":Boolean(e.filter),"input-debounce":"0","input-style":e.enableFilter?"":"display:none"},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}}],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},xe=[],$e={name:"AlphabizSelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String,Boolean],label:String,itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0}},data(){return{enableFilter:!1,filterValue:""}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid alphabiz-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0,this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.enableFilter=!1,this.filterValue=""},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))}}},Te=$e,ze=(a("9344"),a("a4ac")),Pe=a("b329"),Ae=a("25fb"),Ie=a("79e0"),qe=a("b121"),Oe=Object(f["a"])(Te,Ce,xe,!1,null,null,null),Ee=Oe.exports;k()(Oe,"components",{QSelect:ze["a"],QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QItemLabel:Ie["a"],QField:qe["a"]});var De=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"wrapper",staticClass:"virtual-scroll-grid-wrapper",on:{scroll:e.handleScroll}},[e._e(),a("div",{ref:"before",staticClass:"virtual-scroll-grid__before"},[e._t("before",null,null,e.getSlotContext())],2),a("div",{ref:"grid",staticClass:"virtual-scroll-grid"},[e._l(e.items,(function(t,a){return e._t("default",null,null,Object.assign(e.getSlotContext(),{item:t,index:e.virtual.from+a}))}))],2),a("div",{ref:"after",staticClass:"virtual-scroll-grid__after"},[e._t("after",null,null,e.getSlotContext())],2)])},je=[],Ne=a("3387");const Le={data(){return{grid:{container_width:void 0,column:void 0,scroll_top:void 0},virtual:{enable:!0,from:0,to:0},go$observer:null,update_enable:!0}},methods:{vs$calc(){const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter,c=Math.max(1,Math.floor((r-this.gutter)/s)),d=Math.floor((r-c*s)/2);let u=0;u+=this.gutter/2,u+=i;const _=Math.max(0,Math.floor((o-u)/l)),p=_*c,m=o-u-_*l,h=Math.ceil((n+m)/l),g=p+h*c,f=Math.min(g,this.itemsSize),b=h+(g>this.itemsSize?-1:0),y=f-p,v=this.itemsSize%c,w=Math.ceil((this.itemsSize-f)/c);let k,S,C,x;if(this.virtual.enable){const e=Math.max(0,_-this.virtualScrollSliceRow),t=Math.max(0,w-this.virtualScrollSliceRow);k=e*l,S=t*l;let a=t*c;a&&v&&(a-=c-v),C=0+e*c,x=this.itemsSize-a}else k=0,S=0,C=0,x=this.itemsSize;return{wrapper:e,grid:a,scroll_top:o,column:c,padding:d,scroll_row_top:_,scope_from:p,scope_to:f,scope_row:b,scope_count:y,scope_mod:v,scroll_row_bottom:w,virtual_padding_top:k,virtual_padding_bottom:S,virtual_from:C,virtual_to:x}},vs$update2(){const{wrapper:e,grid:t,scroll_top:a,column:n,padding:o,scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u,virtual_padding_top:_,virtual_padding_bottom:p,virtual_from:m,virtual_to:h}=this.vs$calc(),g=([e,t])=>this.grid[e]===t||(this.grid[e]=t),f=([e,t])=>this.grid[e]===t||(this.grid[e]=t);Object.entries({scroll_top:a,column:n}).map(g),this.grid._padding!==o&&(this.grid._padding=o,e.style.setProperty("--virtual-scroll-grid-padding",`${o}px`)),Object.entries({scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u}).map(f);const b=0;(this.virtual.to-s<=b||r-this.virtual.from<=b)&&(this.virtual._virtual_padding_top!==_&&(this.virtual._virtual_padding_top=_,t.style.setProperty("--virtual-scroll-offset-top",`${_}px`)),this.virtual._virtual_padding_bottom!==p&&(this.virtual._virtual_padding_bottom=p,t.style.setProperty("--virtual-scroll-offset-bottom",`${p}px`)),this.virtual.from!==m&&(this.virtual.from=m),this.virtual.to!==h&&(this.virtual.to=h))},vs$update(e){const t=()=>{const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter;return{wrapper:e,before:t,grid:a,wrapper_height:n,scroll_top:o,before_height:i,grid_width:r,width_per_item:s,height_per_item:l}},a={on_measure:({grid_width:e,width_per_item:t})=>{const a=Math.max(1,Math.floor((e-this.gutter)/t)),n=Math.floor((e-a*t)/2);return{column:a,padding:n}},on_update:({wrapper:e,column:t,padding:a,scroll_top:n})=>{this.grid.scroll_top=n,this.grid.column=t,e.style.setProperty("--virtual-scroll-grid-padding",`${a}px`)}},n={on_measure:({scroll_top:e,height_per_item:t,wrapper_height:a,before_height:n,column:o})=>{let i=0;i+=this.gutter/2,i+=n;const r=Math.max(0,Math.floor((e-i)/t)),s=r*o,l=e-i-r*t,c=Math.ceil((a+l)/t),d=s+c*o,u=Math.min(d,this.itemsSize),_=c+(d>this.itemsSize?-1:0),p=u-s,m=this.itemsSize%o,h=Math.ceil((this.itemsSize-u)/o);return{scroll_row_top:r,scope_from:s,scope_to:u,scope_row:_,scope_count:p,scope_mod:m,scroll_row_bottom:h}},on_update:e=>{this.grid.scroll_row_top=e.scroll_row_top,this.grid.scope_from=e.scope_from,this.grid.scope_to=e.scope_to,this.grid.scope_row=e.scope_row,this.grid.scope_count=e.scope_count,this.grid.scope_mod=e.scope_mod,this.grid.scroll_row_bottom=e.scroll_row_bottom}},o={on_measure:({scroll_row_top:e,scroll_row_bottom:t,height_per_item:a,column:n,scope_mod:o})=>{if(!this.virtual.enable)return{virtual_padding_top:0,virtual_padding_bottom:0,virtual_from:0,virtual_to:this.itemsSize};e=Math.max(0,e-this.virtualScrollSliceRow),t=Math.max(0,t-this.virtualScrollSliceRow);const i=e*a,r=t*a;let s=t*n;s&&o&&(s-=n-o);const l=0+e*n,c=this.itemsSize-s;return{virtual_padding_top:i,virtual_padding_bottom:r,virtual_from:l,virtual_to:c}},on_update:({grid:e,virtual_padding_top:t,virtual_padding_bottom:a,virtual_from:n,virtual_to:o})=>{e.style.setProperty("--virtual-scroll-offset-top",`${t}px`),e.style.setProperty("--virtual-scroll-offset-bottom",`${a}px`),this.virtual.padding_top=t,this.virtual.padding_bottom=a,this.virtual.from=n,this.virtual.to=o}},i={update_rect:a,update_grid:n,update_virtual:o};e||(e=Object.keys(i));const r=t();r&&(e.forEach((e=>{i[e]&&Object.assign(r,i[e].on_measure(r))})),e.forEach((e=>{i[e]&&i[e].on_update(r)})))},scrollTo(e){this.$refs.wrapper.scrollTop=e}},activated(){this.grid.scroll_top&&this.scrollTo(this.grid.scroll_top),this.update_enable=!0},deactivated(){this.update_enable=!1},mounted(){const e=this.vs$update2,t=Object(Ne["debounce"])((()=>e.call(this)),!0===this.$q.platform.is.ios?120:35,{trailing:!0});this.vs$update=(a,n)=>{this.update_enable&&(n?t.call(this):e.call(this))};const a=this.$refs.wrapper;this.$watch("gutter",(()=>{a.style.setProperty("--virtual-scroll-grid-gutter",`${this.gutter}px`)}),{immediate:!0}),this.$watch("itemWidth",(()=>{a.style.setProperty("--virtual-scroll-grid-item-width",`${this.itemWidth}px`)}),{immediate:!0}),this.$watch("itemHeight",(()=>{a.style.setProperty("--virtual-scroll-grid-item-height",`${this.itemHeight}px`)}),{immediate:!0}),this.go$observer=new ResizeObserver((()=>this.vs$update("go$observer"))),this.go$observer.observe(this.$refs.grid);const n=["gutter","itemsSize","virtualScrollSliceRow","itemWidth","itemHeight"];this.$watch((()=>n.reduce(((e,t)=>({...e,[t]:this[t]})),{})),(()=>this.vs$update("watcher")))},beforeUnmount(){this.go$observer.disconnect()}};var Ue={name:"VirtualScrollGrid",mixins:[Le],props:{virtualScrollSliceRow:{type:Number,default:30},itemWidth:Number,itemHeight:Number,gutter:{type:Number,default:16},itemsSize:Number,itemsFn:Function},data(){return{items:[]}},methods:{getSlotContext(){return{column:this.grid.column,mod:this.grid.scope_mod,virtual:this.virtual,grid:this.grid}},handleScroll(...e){this.vs$update("scroll",!0),this.$emit("scroll",...e),this.$emit("virtual-scroll",{from:this.virtual.from,to:this.virtual.to})}},mounted(){let e=!0;this.$watch((()=>(e&&(e=!1,this.vs$update("item_init")),this.itemsFn(this.virtual.from,this.virtual.to))),(e=>{this.items=e}),{immediate:!0})}},Re=Ue,Me=(a("06cd"),Object(f["a"])(Re,De,je,!1,null,null,null)),Fe=Me.exports,Be=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{"no-shake":"","content-class":{"fullscreen-dialog":!e.progress},persistent:!0,position:e.screen$xs&&!e.progress?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.handleEsc.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleEnter.apply(null,arguments)}]}},[a("q-card",{staticClass:"column",style:{position:"relative",minWidth:e.title||e.showActions?"320px":void 0,maxWidth:"400px",maxHeight:"calc(100vh - 64px)"}},[e.title?a("q-card-section",{staticClass:"q-px-md q-pb-none",style:{paddingTop:"20px"}},[e.title?a("div",{staticClass:"text-h6 text-weight-bold non-selectable"},[e._v("\n "+e._s(e.title)+"\n ")]):e._e()]):e._e(),e.message?[a("q-card-section",{staticClass:"q-pb-none"},[a("div",{staticStyle:{"white-space":"pre-line"}},[e._v(e._s(e.message))])])]:e._e(),a("DialogBanner",{attrs:{banner:e.banner}}),a("DialogProgress",{attrs:{progress:e.progress}}),a("DialogList",{attrs:{list:e.list}}),a("DialogOption",{attrs:{options:e.options},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),a("DialogPrompts",{attrs:{prompts:e.prompts},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),e.showActions?a("q-card-actions",{staticClass:"q-px-md q-py-md",attrs:{vertical:""}},e._l(e.buttonAttrs,(function(t,n){return a("q-btn",e._g(e._b({directives:[{name:"show",rawName:"v-show",value:t.show,expression:"attrs.show"}],key:n,on:{keydown:function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;t.stopPropagation()}}},"q-btn",t.props,!1),t.event))})),1):e._e()],2)],1)},We=[],He={data(){return{dialog$validResults:{}}},computed:{dialog$validResult(){const e=Object.values(this.dialog$validResults).find((e=>!0!==e));return e||!0}},methods:{dialog$setValid(e,t){this.dialog$validResults={...this.dialog$validResults,[e]:t}}}},Ve={data(){return{dialog$argumentGetters:{}}},methods:{dialog$arguments(){const e=Object.keys(this.dialog$argumentGetters).reduce(((e,t)=>(e[t]=this.dialog$argumentGetters[t](this),e)),{});return e},dialog$registerArgument(e,t){this.dialog$argumentGetters[e]=t}}},Qe={data(){return{loadingState:null}},methods:{async dialog$useLoadingState(e,t){let a;try{this.loadingState=e;const n=t(this);a=n.then?await n:n}finally{this.loadingState=null}return a}}},Ge={methods:{dialog$buttonObject(e,t){if(!1===t)return null;const a={color:"general",textColor:"general",label:this.$t(e)},n={};return Object.assign(n,a),"object"===typeof t&&(Object.assign(n,t),"function"===typeof t.label&&(n.label=t.label()),"function"===typeof t.disable&&(n.disable=t.disable())),"function"===typeof t&&(n.handler=t.bind(this)),"string"===typeof t&&(n.label=t),n},async dialog$buttonHandler(e,t){if(!e)return;const a=e.handler;try{if(a){const e=a(this);e&&e.then&&await e}else t&&t()}catch(n){this.$emit("error",n)}},dialog$buttonAttrs(e,t,a){if(!t)return{show:!1};const n={noCaps:!0,noWrap:!0,unelevated:!0};return Object.assign(n,t),n.loading=this.loadingState===e||t.loading,n.disable=!!this.loadingState||t.disable,{show:!!t,props:n,event:{click:a}}}}},Ke={props:{actions:Object},computed:{dialog$actionButtons(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=this.dialog$buttonObject(t,this.actions[t]),e)),{}):null},dialog$actionHandlers(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=()=>this.dialog$buttonHandler(this.dialog$actionButtons[t]),e)),{}):null}}},Ye={props:{ok:{type:[Boolean,String,Function,Object],default:!0},cancel:{type:[Boolean,String,Function,Object],default:!1}},computed:{buttonOk(){const e=this.dialog$buttonObject("ok",this.ok);return e?(e.disable||(e.disable=!0!==this.dialog$validResult),e):e},buttonCancel(){return this.dialog$buttonObject("cancel",this.cancel)}},methods:{async handleOk(){await this.dialog$buttonHandler(this.buttonOk,(()=>{this.emitOk(this.dialog$arguments()),this.hide()}))},async handleCancel(){await this.dialog$buttonHandler(this.buttonCancel,(()=>{this.hide()}))}}},Je=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.banner?a("q-card-section",{staticClass:"q-pb-none overflow-hidden"},[a("q-banner",{staticClass:"bg-general text-general rounded-borders",scopedSlots:e._u([e.objectBanner.avatar?{key:"avatar",fn:function(){return[a("div",{staticClass:"flex items-center",staticStyle:{height:"40px"}},["loading"===e.objectBanner.avatar?a("q-spinner-ios",{staticStyle:{margin:"0.275rem"},attrs:{size:"1.2rem",color:"general"}}):a("q-icon",{attrs:{size:"1.75rem",name:e.objectBanner.avatar}})],1)]},proxy:!0}:null,{key:"default",fn:function(){return[e.objectBanner.title?a("div",{staticClass:"text-bold"},[e._v("\n "+e._s(e.objectBanner.title)+"\n ")]):e._e(),a("div",{staticClass:"ellipsis-3-lines"},[e._v(e._s(e.objectBanner.message))])]},proxy:!0}],null,!0)})],1):e._e()},Ze=[],Xe={name:"DialogBanner",props:{banner:[String,Object]},computed:{objectBanner(){return this.banner?"string"===typeof this.banner?{message:this.banner}:this.banner:null}}},et=Xe,tt=a("0051"),at=a("7027"),nt=Object(f["a"])(et,Je,Ze,!1,null,null,null),ot=nt.exports;k()(nt,"components",{QCardSection:re["a"],QBanner:tt["a"],QSpinnerIos:at["a"],QIcon:Y["a"]});var it=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.progress?a("q-card-section",{staticClass:"q-pb-md flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),"boolean"!==typeof e.progress?a("div",{staticClass:"q-ml-sm"},["string"===typeof e.progress?[e._v("\n "+e._s(e.progress)+"\n ")]:[a("div",[e._v(e._s(e.progress.title))]),e.progress.caption?a("div",[e._v(e._s(e.progress.caption))]):e._e()]],2):e._e()],1):e._e()},rt=[],st={name:"DialogProgress",props:{progress:[Boolean,String,Object]}},lt=st,ct=Object(f["a"])(lt,it,rt,!1,null,"c513ce1e",null),dt=ct.exports;k()(ct,"components",{QCardSection:re["a"],QSpinnerIos:at["a"]});var ut=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.list?a("q-card-section",{staticClass:"q-pb-none"},[a("q-list",{staticClass:"rounded-borders full-width column items-stretch",attrs:{bordered:"",separator:""}},e._l(e.list.items,(function(t,n){return a("q-item",{key:t.key||n,staticClass:"overflow-hidden"},[a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))]),t.caption?a("q-item-label",{staticClass:"ellipsis-3-lines",attrs:{caption:""}},[e._v(e._s(t.caption))]):e._e()],1)],1)})),1)],1):e._e()},_t=[],pt={name:"DialogList",props:{list:Object}},mt=pt,ht=a("e7c2"),gt=Object(f["a"])(mt,ut,_t,!1,null,"18c77b6c",null),ft=gt.exports;k()(gt,"components",{QCardSection:re["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"]});var bt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelOptions?a("q-card-section",{staticClass:"q-pb-none"},[a("q-option-group",{staticClass:"dialog-option-group",attrs:{options:e.modelOptions.items,type:e.modelOptions.type||"radio"},scopedSlots:e._u([{key:"label",fn:function(t){var n=t.label,o=t.desc,i=t.tooltip;return[a("q-item",{staticClass:"q-pl-xs q-pr-none non-selectable"},[a("q-item-section",[a("q-item-label",[e._v(e._s(n))]),o?a("q-item-label",{staticClass:"ellipsis",attrs:{caption:""}},[e._v(e._s(o))]):e._e()],1),i?a("q-tooltip",{attrs:{"max-width":"320px",anchor:"bottom middle",self:"top middle","transition-show":"jump-down","transition-hide":"jump-up","transition-duration":0,delay:600}},[a("span",{staticStyle:{"font-size":"0.8rem"}},[e._v(e._s(i))])]):e._e()],1)]}}],null,!1,3266841923),model:{value:e.modelOptions.model,callback:function(t){e.$set(e.modelOptions,"model",t)},expression:"modelOptions.model"}})],1):e._e()},yt=[],vt={name:"DialogOption",props:{options:Object},data(){return{modelOptions:this.options}},computed:{validatedResult(){const e=this.modelOptions.items.find((e=>e.value===this.modelOptions.model));return e?!e.disable||"disabled_option_item":"option_item_not_found"}},beforeMount(){this.modelOptions&&(this.$emit("registerArgument","option",(()=>this.modelOptions.model)),this.$watch("validatedResult",(e=>{this.$emit("setValid","option",e)}),{immediate:!0}))}},wt=vt,kt=(a("030c"),a("8128")),St=a("cf25"),Ct=a("2b77"),xt=Object(f["a"])(wt,bt,yt,!1,null,null,null),$t=xt.exports;k()(xt,"components",{QCardSection:re["a"],QOptionGroup:kt["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"],QTooltip:St["a"],QRadio:Ct["a"]});var Tt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelPrompts?a("q-card-section",{staticClass:"q-pb-none"},[e._l(e.modelPrompts,(function(t){return["tel"===t.type?a("DialogPromptTel",{key:t.key,staticClass:"q-my-sm",attrs:{rules:t.rules||void 0},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}}):a("q-input",{key:t.key,staticClass:"q-my-sm",attrs:{type:"password"!==t.type?t.type:t.hidden?"password":"text",label:t.label,rules:t.rules||void 0,outlined:"",dense:"",autofocus:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[t.icon&&"tel"!==t.type?a("q-icon",{attrs:{name:t.icon}}):e._e()]},proxy:!0},void 0!==t.hidden?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:t.hidden?"visibility_off":"visibility"},on:{click:function(e){t.hidden=!t.hidden}}})]},proxy:!0}:null],null,!0),model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}})]}))],2):e._e()},zt=[],Pt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("TelInput",{attrs:{"error-message":e.errorMessage},on:{setNotSay:e.setNotSay},scopedSlots:e._u([{key:"selector",fn:function(){return[a("TelSelector",{model:{value:e.selectedOption,callback:function(t){e.selectedOption=t},expression:"selectedOption"}})]},proxy:!0},e.selectedOption.prefixCode?{key:"prefix-code",fn:function(){return[e._v("\n +"+e._s(e.selectedOption.prefixCode)+"\n ")]},proxy:!0}:null],null,!0),model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}})},At=[],It=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"dialog-prompt-tel",attrs:{outlined:"",dense:"",autofocus:"",type:"tel",value:e.value,error:!!e.errorMessage,"error-message":e.errorMessage},on:{input:function(t){return e.$emit("input",t)},keydown:function(t){if(!t.type.indexOf("key")&&8!==t.keyCode)return null;0===e.value.length&&e.$emit("setNotSay")}},scopedSlots:e._u([{key:"before",fn:function(){return[e._t("selector")]},proxy:!0},{key:"prepend",fn:function(){return[e.$slots["prefix-code"]?a("div",{staticClass:"non-selectable",style:e.prefixCodeStyle},[e._t("prefix-code")],2):e._e()]},proxy:!0}],null,!0)})},qt=[];const Ot={data(){return{prefixCodeStyle:{padding:"6px 0",fontSize:"14px",fontWeight:"400",letterSpacing:"0.00937em",lineHeight:"28px"}}}};var Et={name:"TelInput",mixins:[Ot],props:{value:String,errorMessage:String}},Dt=Et,jt=(a("0102"),Object(f["a"])(Dt,It,qt,!1,null,null,null)),Nt=jt.exports;k()(jt,"components",{QInput:K["a"],QField:qe["a"]});var Lt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g(e._b({attrs:{dense:"",outlined:"",behavior:"menu",options:e.prefixOptions,"option-label":function(){return""},"menu-offset":[0,4],"menu-self":"bottom start","menu-anchor":"top left","transition-show":"jump-down","transition-hide":"jump-up"},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",{staticClass:"non-selectable",style:e.noOptionStyle},[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},{key:"prepend",fn:function(){return[a("div",{staticClass:"non-selectable",style:e.emojiStyle},[e._v(e._s(e.emoji))])]},proxy:!0},{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x non-selectable",style:e.optionStyle},"q-item",n,!1),o),[i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[a("div",{style:e.emojiStyle},[e._v(e._s(i.emoji))])]):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s("not_say"===i.label?e.$t("account_not_say"):i.label)}})],1)],1)]}}]),model:{value:e.prefixModel,callback:function(t){e.prefixModel=t},expression:"prefixModel"}},"q-select",e.filterProps,!1),e.filterEvents))},Ut=[],Rt=a("1c53");const Mt=(()=>{const e={TW:e=>{"TW"===e.country_code&&(e.emoji="🇼🇫")}},t=[];return Object.entries(Rt["countries"]).forEach((([a,n])=>{const o={country_code:a,name:n.name,name_native:n.native,emoji:n.emoji,phone_list:n.phone.split(","),language_list:n.languages};e.TW(o),t.push(o)})),t})(),Ft=(()=>{const e=[];return Mt.forEach((t=>{t.phone_list.forEach((a=>{const n={id:`${t.country_code}-${a}`,country_emoji:t.emoji,country_name:t.name,country_name_native:t.name_native,country_code:t.country_code,phone_number_code:a};e.push(n)}))})),e})(),Bt=(()=>{const e={US:(e,t)=>{if("1"===e.phone_number_code)return"US"===e.country_code?-1:"US"===t.country_code?1:0}},t=(t,a)=>{const n=parseInt(t.phone_number_code),o=parseInt(a.phone_number_code);if(n!==o)return n>o?1:-1;let i;return Object.values(e).some((e=>(i=e(t,a),void 0!==i))),void 0===i?0:i},a=Ft.sort(t);return a})(),Wt=Bt.reduce(((e,t)=>(e[t.id]=t,e)),{}),Ht={value:"not_say",label:"not_say",emoji:"🇼🇫"},Vt=(()=>{const e=Object.values(Wt).map((e=>({value:e.id,label:`${e.country_name_native} (+${e.phone_number_code})`,emoji:e.country_emoji})));return e.unshift(Ht),e})(),Qt=e=>e===Ht.value?Ht:Wt[e],Gt=e=>{const t=e.startsWith("+"),a=/^00/.test(e);let n=null,o=null,i=e;return t?Object.values(Wt).find((t=>{const a=`+${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})):a&&Object.values(Wt).find((t=>{const a=`00${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})),{countryCode:n,prefixCode:o,phoneNumber:i}},Kt={data(){return{emojiStyle:{fontFamily:"Noto Color Emoji",fontSize:"1.22rem",color:"#000"}}}},Yt={data(){const e={getInputEl:()=>this.$parent.$parent.$el,observer:new ResizeObserver((()=>{const e=this.mixin$OptionsStyle.getInputEl(),{width:t}=getComputedStyle(e);this.optionStyle={width:`calc(${t} - 8px)`},this.noOptionStyle={width:t}}))};return{mixin$OptionsStyle:e,optionStyle:{},noOptionStyle:{}}},mounted(){this.mixin$OptionsStyle.observer.observe(this.mixin$OptionsStyle.getInputEl())},beforeDestroy(){this.mixin$OptionsStyle.observer.unobserve(this.mixin$OptionsStyle.getInputEl())}},Jt={data(){return{isPopupShow:!1,filter:null}},computed:{filterProps(){return{useInput:!0,inputDebounce:"0",inputStyle:this.isPopupShow?void 0:"display:none"}},filterEvents(){return{"popup-show":this.onPopupShow.bind(this),filter:this.onFilter.bind(this),"popup-hide":this.onPopupHide.bind(this)}}},methods:{onFilter(e,t){t((()=>{this.filter=t=>{if(!e)return!0;if("not_say"===t)return!1;const a=Qt(t),n=[a.country_code,a.country_name,a.country_name_native,a.phone_number_code];return n.some((t=>t.toLowerCase().includes(e.toLowerCase())))}}))},onPopupShow(){this.isPopupShow=!0,this.$nextTick((()=>{const e=this.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.isPopupShow=!1,this.filter=null,this.mixin$OptionsStyle.getInputEl().focus()}}};var Zt={name:"TelSelector",mixins:[Kt,Yt,Jt],props:{value:Object},data(){return{countryCode:null,prefixCode:null}},computed:{prefixOptions(){let e=Object.assign([],Vt);return this.filter&&(e=e.filter((e=>this.filter(e.value)))),e},prefixModel:{get(){const{countryCode:e,prefixCode:t}=this.value;return e&&t?`${e}-${t}`:"not_say"},set(e){var t,a;const n=null!==e&&void 0!==e&&e.value?Qt(e.value):{};this.$emit("input",{countryCode:null!==(t=n.country_code)&&void 0!==t?t:null,prefixCode:null!==(a=n.phone_number_code)&&void 0!==a?a:null})}},emoji(){const e=Qt(this.prefixModel);return e.emoji||e.country_emoji}}},Xt=Zt,ea=(a("3a211"),Object(f["a"])(Xt,Lt,Ut,!1,null,null,null)),ta=ea.exports;k()(ea,"components",{QSelect:ze["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"]});const aa={watch:{selectedOption(e,t){const a=e=>!(e.countryCode&&e.prefixCode);a(e)&&!a(t)&&(this.inputValue="")}},methods:{setNotSay(){this.selectedOption={countryCode:null,prefixCode:null}}}},na={data(){return{errorMessage:void 0}},watch:{value(e){const t=e=>{let t;return this.rules.find((a=>(t=a(e),t&&!0!==t))),!0===t?void 0:t},a=t(e.phoneNumber);a?this.errorMessage=a:e.phoneNumber&&!e.prefixCode?this.errorMessage=this.$t("account_error_invalid_phone_number_format"):this.errorMessage=void 0}}};var oa={name:"DialogPromptTel",mixins:[aa,na],props:{value:{type:Object,required:!0},rules:Array},components:{TelInput:Nt,TelSelector:ta},computed:{selectedOption:{get(){return{countryCode:this.value.countryCode,prefixCode:this.value.prefixCode}},set(e){this.$emit("input",{prefixCode:e.prefixCode,countryCode:e.countryCode,phoneNumber:this.value.phoneNumber})}},inputValue:{get(){return this.value.phoneNumber},set(e){const{prefixCode:t,countryCode:a,phoneNumber:n}=Gt(e);this.$emit("input",{prefixCode:t||this.value.prefixCode,countryCode:a||this.value.countryCode,phoneNumber:n})}}}},ia=oa,ra=Object(f["a"])(ia,Pt,At,!1,null,null,null),sa=ra.exports,la={name:"DialogPrompts",components:{DialogPromptTel:sa},props:{prompts:Object},data(){const e=this.prompts?Object.keys(this.prompts).map((e=>{const t=this.prompts[e];return t.key=e,"password"===t.type&&(t.hidden=!0),t})):null;return{modelPrompts:e}},computed:{validatedResult(){let e;return this.modelPrompts&&this.modelPrompts.filter((e=>!!e.rules)).find((t=>t.rules.some((a=>{const n="tel"===t.type?[t.model.phoneNumber,t.model.prefixCode]:[t.model],o=a(...n);return!0!==o&&(e=o),!!e})))),e=e||!0,e}},watch:{validatedResult(e){this.$emit("setValid","prompts",e)}},beforeMount(){if(this.modelPrompts){const e=()=>this.modelPrompts.reduce(((e,t)=>(e[t.key]=t.model,e)),{});this.$emit("registerArgument","prompts",e),this.$emit("setValid","prompts",this.validatedResult)}}},ca=la,da=Object(f["a"])(ca,Tt,zt,!1,null,"21114862",null),ua=da.exports;k()(da,"components",{QCardSection:re["a"],QInput:K["a"],QIcon:Y["a"]});const _a={methods:{handleEsc(){const e="cancel";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()},handleEnter(){const e="ok";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()}}},pa={props:{contextCallback:Function},created(){this.contextCallback&&this.contextCallback(this)}},ma=e=>({props:e.reduce(((e,t)=>Object.assign(e,t.props)),{})}),ha={name:"ABDialog",components:{DialogBanner:ot,DialogProgress:dt,DialogList:ft,DialogOption:$t,DialogPrompts:ua},mixins:[_a,pa,He,Ve,Qe,Ge,Ke,Ye,ma([ot,dt,ft,$t,ua])],props:{title:String,message:String},computed:{showActions(){return this.buttonAttrs&&Object.values(this.buttonAttrs).some((e=>!1!==e.show))},buttonAttrs(){const e=this.dialog$actionButtons?Object.keys(this.dialog$actionButtons).reduce(((e,t)=>(e[t]=[this.dialog$actionButtons[t],this.dialog$actionHandlers[t]],e)),{}):{},t={ok:[this.buttonOk,this.handleOk],...e,cancel:[this.buttonCancel,this.handleCancel]};return Object.keys(t).reduce(((e,a)=>(e[a]=this.dialog$buttonAttrs(a,...t[a]),e)),{})}},methods:{show(){this.$refs.dialog.show()},emitOk(e){this.$emit("ok",e)},hide(){this.$refs.dialog.hide()}}};var ga=ha,fa=ga,ba=a("59ba"),ya=Object(f["a"])(fa,Be,We,!1,null,null,null),va=ya.exports;k()(ya,"components",{QDialog:y["a"],QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QCardActions:ba["a"],QBtn:le["a"]});var wa=e=>{e.component("ABDialog",va),Object.defineProperty(e.prototype,"$alphabiz",{get(){const e={};return e.dialog=e=>ka.call(this,e),e}})};function ka(e){const t={},a={};Object.assign(a,e),a.component=va,a.contextCallback=e=>t.vm=e,t.dialog=this.$q.dialog(a),t.dialog.vm=t.vm;const n=e=>{e.promise=t=>new Promise(((a,n)=>{if(e.vm.$on("error",n),t){if("cancel"===t){let t=!1;e.onCancel((()=>t=!0)).onDismiss((()=>a(t)))}else if("ok"===t){let t;e.onOk((e=>e&&(t=e))).onDismiss((()=>a(t)))}}else e.onDismiss(a)}))};return n(t.dialog),t.dialog}var Sa=a("bf73"),Ca=a.n(Sa),xa=a("d310"),$a=a("3fd2"),Ta=a.n($a);function za(e){e.directive("show$cfg",Pa())}function Pa(){const e=(e,t,a)=>{const n=a.componentInstance.d$cfg,o=[t.arg,...Object.keys(t.modifiers||{})];let i=o.reduce(((e,t)=>e[t]),n);i=void 0===t.value?i:t.value===i,e.style.display=i?e._cfg$show.display:"none"};return{bind(t,a,n){t._cfg$show={display:t.style.display},e(t,a,n)},update(t,a,n){e(t,a,n)},unbind(e){e.style.display=e._cfg$show.display,delete e._cfg$show}}}var Aa=a("0f0c"),Ia=a("d558"),qa=(a("908d"),function(e,{getLocalConfig:t,getRemoteConfigUrl:a}){const n=ja(),{config:o,loadRemoteConfig:i}=Oa({localConfig:t(),remoteConfigUrls:r(a())});function r(e){const t=[`/${n.version}.json`,`/${n.version.split("-")[0]}.json`,"/default.json"];return t.map((t=>e+t))}function s(e,t){const a=new e({data(){return{config:t}}});e.mixin({computed:{d$cfg(){return a.config}}}),za(e)}i((e=>{Ta.a.mas()&&Ea(e.config,{update:{enable:!1}})})),s(e,o)});function Oa(e){const{localConfig:t,remoteConfigUrls:a}=e,n=Ea({},t);let o;n.remoteLoaded=!1,Object.defineProperties(n,{onRemoteConfigLoaded:{value:new Promise((e=>o=e)),configurable:!1,writable:!1,enumerable:!1}});const i=async e=>{const t=await r(a),{config:i}=t;return i.remoteLoaded=!0,await e(t),Ea(n,i),o(t),t};return{config:n,loadRemoteConfig:i};async function r(e){console.log("get from urls",e);const t=[];t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("sources").log(e)));const a=await new Promise((async a=>{let o={},i=null;for(const r of e)try{o=await n(r),i=r;break}catch{t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("not found").log(r)))}i?t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("got").log(i,o))):t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("remote config not found").log())),a({url:i,config:o})}));return console.tag.orange("DynamicConfig","Remote").group(""),t.forEach((e=>e())),console.groupEnd(),a;async function n(e){return await Da((()=>fetch(e).then((e=>e.json()))),{onRetry(e){console.tag("getRemoteConfig").log("retry",e.count)}})}}}function Ea(e,t){const a=e=>!!e&&"object"===typeof e&&!Array.isArray(e);return Object.entries(t).forEach((([t,n])=>{var o;a(n)?(e[t]=null!==(o=e[t])&&void 0!==o?o:{},Ea(e[t],n)):e[t]=n})),e}async function Da(e,{onRetry:t}={}){const a=async n=>{try{return n.count&&await(null===t||void 0===t?void 0:t(n)),await e()}catch(o){if(o instanceof TypeError){if(await new Promise((e=>setTimeout(e,1e3))),n.count+=1,n.count>=30)throw o;return await a(n)}throw o}};return await a({count:0})}function ja(){const e={version:Object(Aa["a"])("version"),buildTime:Object(Aa["a"])("buildTime")};return e.web=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),e.store=(()=>{const e=Object(Aa["a"])("packageFormat");return Object(Ia["a"])()?"capacitor":Ta.a.mas()?"mac":Ta.a.windowsStore()?"microsoft":!(!e||"snap"!==e)&&"linux"})(),e}var Na=e=>{},La=a("67cf"),Ua=a("eb7a");a("f18a"),a("dc89"),a("2425"),a("7996");const Ra=(...e)=>console.tag.red("VideoJs","player",...e),Ma={Video:{opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",webm:"video/webm",flv:"video/x-flv","3gp":"video/3gpp",m3u8:"application/x-mpegURL",mpd:"application/dash+xml",avi:"video/x-msvideo"},Image:{jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",png:"image/png",svg:"image/svg+xml",webp:"image/webp"},Audio:{m4a:"audio/mp4",mp3:"audio/mpeg",aac:"audio/aac",caf:"audio/x-caf",flac:"audio/flac",oga:"audio/ogg",wav:"audio/wav"}},Fa=(Ma.Video,Ma.Audio,Ma.Image,{mkv:["video/webm","video/mp4"],avi:["video/mp4"]}),Ba={MEDIA_ERR_ABORTED:1,MEDIA_ERR_CUSTOM:0,MEDIA_ERR_DECODE:3,MEDIA_ERR_ENCRYPTED:5,MEDIA_ERR_NETWORK:2,MEDIA_ERR_SRC_NOT_SUPPORTED:4};var Wa=[Ha(),Ga({volume:nn},{setVolume:mn}),Ga({isFullscreen:an},{setFullscreen:pn}),Ga({isPiP:tn},{setPiP:_n}),Ga({playbackRate:en},{setPlaybackRate:un}),Ga({poster:Xa},{setPoster:cn}),Va(),Qa()];function Ha(){const e={id:Ka,currentTime:Ya,buffered:Za,duration:Ja,isPaused:on,isMuted:rn},t={play:sn,pause:ln,seek:dn,mute:hn,stop:gn,destroy:fn,ctl$on:a,ctl$emit:n};return Ga(e,t);function a(e,t){this.on(`controller::${e}`,t)}function n(e){this.trigger(`controller::${e}`)}}function Va(){return Ga({isWaiting:a,currentSources:e,loadingState:t},{setSource:n});function e(){const e=()=>{const e=this.currentSources();return e.filter((e=>!!e.src&&!!e.type))};return this.$set(e,["setSource$start","setSource$end","stop$"]),e()}function t(){const e=e=>{if(!e)return!1;if("setSource$start"===e)return!0;if(["setSource$end","error"].includes(e)){const e=this.error();return!!e&&{type:Object.keys(Ba).find((t=>Ba[t]===e.code)),message:e.message}}};return this.$set(e,["setSource$start","setSource$end","error","stop$"]),e()}function a(){let e=null;return this.on("waiting",(()=>{e&&clearTimeout(e),e=setTimeout((()=>{this.$set(!0)}),100)})),this.on("canplay",(()=>{e&&clearTimeout(e),this.$set(!1)})),this.on("stop$",(()=>{e&&clearTimeout(e),this.$set(!1)})),!1}async function n(...e){const t=e[e.length-1];t instanceof AbortSignal&&e.splice(e.length-1);const a=t instanceof AbortSignal?t:(new AbortController).signal;let n=!1;a.onabort=()=>{n=!0};try{this.trigger("setSource$start"),await new Promise(((t,i)=>{this.ready((()=>{if(n||a.aborted)return console.log("setSource Aborted",a.reason),i("Aborted");console.log("Not aborted",n,a,e[0]),this.one("loadedmetadata",t),this.one("error",i);const r=e.map(o).flat(1);Ra().tag("setSource","sources").log(r),this.src(r)}))}))}finally{this.trigger("setSource$end")}function o(e){var t;const a=[];let n,o;if("object"===typeof e){var i;n=e,o=null!==(i=l(n))&&void 0!==i?i:"mp4"}else{if("string"!==typeof e)return e;var r;n={src:e},o=null!==(r=l(n))&&void 0!==r?r:"mp4",Object.assign(n,{type:`video/${o}`})}n.type&&a.push(n);const s=null!==(t=Ma.Video[o])&&void 0!==t?t:Ma.Video.mp4;return a.some((e=>e.type===s))||d({type:s}),c(o).forEach((e=>d({type:e}))),a;function l(e){if(e.src&&-1!==e.src.lastIndexOf(".")){const t=new URL(e.src);return t.pathname.slice(t.pathname.lastIndexOf(".")+1)}if(e.type){const t=Object.keys(Ma.Video).find((t=>Ma.Video[t]===e.type));if(t)return t}if(e.filename){const t=e.filename.replace(/\\/g,"/").split("/").reverse()[0];if(-1!==t.lastIndexOf("."))return t.slice(t.lastIndexOf(".")+1)}return null}function c(e){if(!Fa[e])return[];const t=Object.values(a).map((e=>e.type));return Fa[e].filter((e=>!t.includes(e)))}function d(e){const t=e=>Object.assign(Object.entries(n).reduce(((e,[t,a])=>({...e,[t]:a})),{}),e),o=t(e);a.push(o)}}}}function Qa(){return Ga({track:e},{enableTrack:t,disableTrack:a,addTrack:n,removeTrack:o,setTrackOffset:i});function e(){const e=t.call(this);return this.on("track$enable",(()=>{const e=o.call(this),t=e.find((e=>"showing"===e.mode));if(!t)throw new Error("Enabled track not founded");const a=this.$state.track;a.currentTrack=n.call(this,t),a.enable=!0})),this.on("track$disable",(()=>{const e=this.$state.track;e.enable=!1})),this.on("track$add",(()=>a.call(this))),this.on("track$remove",(()=>{a.call(this)})),this.on("stop$",(()=>{var e;a.call(this);const t=this.$state.track;null===(e=t.currentTrack)||void 0===e||e.disable(),t.currentTrack=null,t.enable=!1})),e;function t(){const e={};return e.tracks=o.call(this).map((e=>e.id)),e.offset=0,e.currentTrack=null,e.enable=!1,e}function a(){const e=o.call(this),t=this.$state.track;t.tracks=e.map((e=>e.id))}function n(e){const t=()=>{const e=this.$state.track,n=e.currentTrack;if(!n)return this.off("texttrackchange",t);e.currentTrack.text=a.call(n.get(),e.offset)};return n(t),this.on("texttrackchange",t),{id:e.id,text:a.call(e,0),get:()=>e,disable:()=>{this.off("texttrackchange",t)}};function a(e){if(!this.loaded_)return null;if(0===this.cues.length)return null;const t=this.tech_.currentTime$org()+e,a=[];for(let n=0,o=this.cues.length;n=t&&a.push(e)}return a.map((e=>e.text)).join("")}function n(t){const a=e.tech_;e.tech_.__modified__||(e.tech_=new Proxy(a,{get(e,a,n){return"__modified__"===a||("currentTime$org"===a?Reflect.get(e,"currentTime",n):("currentTime"===a&&t(),Reflect.get(e,a,n)))},set(e,t,a,n){return Reflect.set(e,t,a,n)}}))}}function o(){var e;return Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind))}}function t(e){var t;const a=this.$state.track;if(!e){if(a.enable)return;if(a.currentTrack)e=a.currentTrack.id;else{if(!(a.tracks&&a.tracks.length>0))return;e=a.tracks[0]}}const n=Array.from(null!==(t=this.remoteTextTracks())&&void 0!==t?t:[]).filter((e=>"captions"===e.kind)),o=n.some((t=>t.id===e));if(!o)throw new Error("Track not founded: "+e);n.forEach((t=>{t.mode=t.id===e?"showing":"disabled"})),this.trigger("track$enable")}function a(){var e;const t=this.$state.track;if(!t.currentTrack)return;const a=Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind));a.forEach((e=>e.mode="disabled")),this.trigger("track$disable")}function n({id:e,src:t}){const a=this.$state.track;if(a.tracks.includes(e))return;const n={id:e,src:t,kind:"captions",mode:"disabled"};this.addRemoteTextTrack(n,!0),this.trigger("track$add")}function o(e=null){var n,o;const i=this.$state.track,r=Array.from(null!==(n=this.remoteTextTracks())&&void 0!==n?n:[]).filter((e=>"captions"===e.kind));let s,l=[];if(e){if(!i.tracks.includes(e))return;s=i.currentTrack.id===e,l.push(e)}else s=!0,l.push(...i.tracks);s&&(a.call(this),i.currentTrack.disable(),i.currentTrack=null),l.forEach(d.bind(this));const c=Array.from(null!==(o=this.remoteTextTracks())&&void 0!==o?o:[]).filter((e=>"captions"===e.kind));if(this.trigger("track$remove"),c.length&&s){const e=c[0];console.log("Select first track after remove current",e),t.call(this,e.id)}function d(e){const t=r.find((t=>t.id===e));t&&this.removeRemoteTextTrack(t)}}function i(e){const t=this.$state.track;t.offset=e,this.trigger("texttrackchange")}}function Ga(e={},t={}){return{states:e,controls:t}}function Ka(){return this.id()}function Ya(){const e=()=>this.currentTime();return this.$set(e,["timeupdate","stop$"]),e()}function Ja(){const e=()=>this.duration()||0;return this.$set(e,["durationchange","stop$"]),e()}function Za(){const e=()=>{const e=this.buffered(),t=[];for(let a=0;athis.poster();return this.$set(e,["posterchange","stop$"]),e()}function en(){const e=()=>this.playbackRate();return this.$set(e,["ratechange"]),e()}function tn(){const e=()=>this.isInPictureInPicture();return this.$set(e,[["enterpictureinpicture","leavepictureinpicture"]]),e()}function an(){const e=()=>this.isFullscreen();return this.$set(e,["fullscreenchange"]),e()}function nn(){const e=()=>this.volume();return this.$set(e,["volumechange"]),e()}function on(){const e=()=>this.paused();return this.$set(e,["play","pause","loadstart","loadeddata","stop$"]),e()}function rn(){const e=()=>this.muted();return this.$set(e,["mute$"]),e()}function sn(){console.log("PLAY",this.play,this.muted,this),this.play()}async function ln(){this.pause(),await bn((()=>this.paused()))}function cn(e){this.poster(e)}function dn(e){this.currentTime(e)}function un(e){this.playbackRate(e)}function _n(e){try{e?this.requestPictureInPicture():this.exitPictureInPicture()}catch(t){console.log("Failed to toggle PiP",e,(null===t||void 0===t?void 0:t.message)||t)}}function pn(e){e?this.requestFullscreen():this.exitFullscreen()}function mn(e){hn.call(this,!1),this.volume(e)}function hn(e){this.muted(e),this.trigger("mute$")}async function gn(){async function e(){this.reset(),await bn((()=>{const e=this.currentSources().filter((e=>!!e.src&&!!e.type));return e<=0}))}this.isInPictureInPicture()&&this.exitPictureInPicture(),await ln.call(this),await e.call(this),this.trigger("stop$")}function fn(){this.isInPictureInPicture()&&this.exitPictureInPicture(),this.reset(),this.dispose()}function bn(e,t=100){let a=null;return new Promise((n=>{a=setInterval((()=>{e.call(this)&&(clearInterval(a),a=null,n())}),t)}))}var yn=e=>{const t=e.reduce(((e,t)=>({...e,...t.states})),{}),a=Object.keys(t),n=Object.entries(t);return{data(){return{states:{}}},created(){this.$watch((()=>this.instance),(e=>{if(!this.instance)return void(this.states=a.map((e=>[e,null])).reduce(((e,[t,a])=>({...e,[t]:a})),{}));const t=n.map((([t,a])=>{const n=wn({player:e,states:vn.call(this),name:t});return[t,a.call(n)]})).reduce(((e,[t,a])=>({...e,[t]:a})),{});this.states=t}),{immediate:!0})}}};function vn(){const e=this;return new Proxy({},{get(t,a,n){return e.states[a]},set(t,a,n,o){return e.states=Object.assign({},e.states,{[a]:n}),!0}})}function wn({player:e,states:t,name:a}){return new Proxy(e,{get(n,o,i){return"$state"===o?t:"$set"===o?(n,o)=>{o?o.forEach((o=>e.on(o,(()=>t[a]=n(o))))):t[a]=n}:Reflect.get(n,o,i)}})}var kn=e=>{const t=e.reduce(((e,t)=>({...e,...t.controls})),{}),a=e=>function(...t){return this.instance?e.apply(Sn({player:this.instance,states:this.states}),t):null};return{methods:Object.entries(t).map((([e,t])=>[e,a(t)])).reduce(((e,[t,a])=>({...e,[t]:a})),{})}};function Sn({player:e,states:t}){return new Proxy(e,{get(e,a,n){return"$state"===a?t:Reflect.get(e,a,n)}})}function Cn(e={controls:!1,autoplay:!1,preload:"auto",playbackRates:[.5,1,1.5,2]},t=Wa){return new r["a"]({data(){let e,t=new Promise((t=>e=t));return t.resolve=e,{instance:null,promiseReady:t}},mixins:[yn(t),kn(t)],methods:{async initialize(t){if(this.instance)throw new Error("Failed to initialize player.");const a=Object(Ua["default"])(t,e);await new Promise((e=>a.one("ready",e))),this.instance=a,this.promiseReady.resolve()}}})}var xn={data(){return{}},methods:{createPlayer:Cn}},$n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player relative-position"},[a("video",{ref:"videoRef",staticClass:"video-js",attrs:{playsinline:"true","webkit-playsinline":"true",tabindex:"-1"}}),a("Controller",{attrs:{player:e.player},scopedSlots:e._u([{key:"header",fn:function(){return[e._t("header")]},proxy:!0},{key:"footer",fn:function(){return[e._t("footer")]},proxy:!0}],null,!0)})],1)},Tn=[],zn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerLayout",{attrs:{player:e.player},on:{hotkey$focus:e.hotkey$focus},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.showController;return[a("Subtitle",{style:n?{paddingTop:"58px",paddingBottom:"60px"}:{},attrs:{player:e.player,dense:n}}),a("Center",{ref:"centerRef",attrs:{player:e.player}}),a("Header",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("header"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"file_open",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenLocalVideo}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!0,expression:"true"}],attrs:{icon:"settings",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenSetting}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"more_vert",unelevated:"",round:"",size:"0.8rem"}})]},proxy:!0}],null,!0)}),a("Footer",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("footer"),a("VolumeButton",{attrs:{player:e.player}}),a("PlaybackRateButton",{attrs:{player:e.player}}),a("SubtitleButton",{attrs:{player:e.player}}),a("PipButton",{attrs:{player:e.player}}),a("FullscreenButton",{attrs:{player:e.player}})]},proxy:!0}],null,!0)}),a("Setting",{ref:"settingRef",attrs:{player:e.player}})]}}])})},Pn=[],An=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"video-js-player__controller absolute-full relative-position",on:{click:e.onVideoClick,dblclick:e.onVideoDoubleClick}},e.mouseEvents),[e.isAudio?a("div",{staticClass:"is-audio-hint absolute-center"},[a("img",{staticClass:"q-mt-xl",attrs:{src:"developer/assets/icon-256.png",alt:""}}),a("p",{staticClass:"text-center text-h5",staticStyle:{"line-height":"24px"}},[a("i",{staticClass:"material-icons",staticStyle:{"vertical-align":"top"}},[e._v("audiotrack")]),e._v("\n "+e._s(e.$t("audio_file"))+"\n ")])]):e._e(),e._t("default",null,null,{showController:e.showController})],2)},In=[],qn=a("4fd2"),On={props:{player:Object},mixins:[En(),Dn()],computed:{isAudio(){var e,t,a;const n=null===(e=this.player)||void 0===e||null===(t=e.states)||void 0===t||null===(a=t.currentSources)||void 0===a?void 0:a[0];if(!n||!n.filename)return!1;const o=n.filename.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!o||!o[0])return!1;const i=o[0].slice(1);return Object(qn["b"])(i)}},methods:{onVideoClick(e){const t=e=>e.classList.contains("video-js-player__controller");if(!t(e.target))return;const{isPaused:a,loadingState:n,currentSources:o}=this.player.states;"object"!==typeof n&&o&&0!==o.length&&(a?this.player.play():this.player.pause())},onVideoDoubleClick(e){const t=e=>e.classList.contains("video-js-player__controller");t(e.target)&&this.player&&this.player.setFullscreen(!this.player.states.isFullscreen)}}};function En(){return{data(){return{toggle:!1,playerReady:!1}},created(){this.$watch((()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null}),(e=>{e&&e.ready((()=>this.playerReady=!0))}),{immediate:!0})},computed:{showController:{get(){return this.toggle&&this.playerReady},set(e){this.toggle=e}}}}}function Dn(){const e=e=>e.classList.contains("video-js-player__controller");let t=null;return{computed:{mouseEvents(){return{mouseover:n.bind(this),mousemove:o.bind(this),mouseenter:e=>a.call(this,e,!0),mouseleave:e=>a.call(this,e,!1)}}},watch:{showController(){this.$emit("hotkey$focus")}}};function a(e,t){if(t)this.showController=t;else{if(0!==e.which)return;this.showController=t}}function n(a){if(!e(a.target))return clearTimeout(t);t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3)}function o(a){e(a.target)&&(this.showController=!0,t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3))}}var jn=On,Nn=(a("4dbc"),Object(f["a"])(jn,An,In,!1,null,null,null)),Ln=Nn.exports,Un=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-full flex items-stretch no-pointer-events--children non-selectable"},[a("div",{staticClass:"full-width full-height flex items-stretch"},[a("div",{staticClass:"full-width full-height relative-position column justify-end items-center"},[a("div",{staticClass:"relative-position",style:{"min-height":e.subtitlePanelMinHeight+"px"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.trackEnabled&&!!e.currentText,expression:"trackEnabled && !!currentText"}],staticClass:"video-js-player__subtitle",class:[e.player.states.isFullscreen?"fullscreen-subtitle":""]},[e._v("\n "+e._s(e.currentText)+"\n ")])])])])])},Rn=[],Mn={mixins:[Fn()],props:{player:Object,dense:Boolean},computed:{trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},currentText(){var e,t;return null===(e=this.player.states.track)||void 0===e||null===(t=e.currentTrack)||void 0===t?void 0:t.text},subtitlePanelMinHeight(){var e,t,a,n;const o=null!==(e=null===(t=this.player$rects)||void 0===t?void 0:t.container.height)&&void 0!==e?e:0,i=null!==(a=null===(n=this.player$rects)||void 0===n?void 0:n.video.height)&&void 0!==a?a:0;return Math.max(0,Math.round((o-i)/2))}}};function Fn(){let e;return{data(){return{player$rects:{container:{},video:{}}}},mounted(){const t=this.$el;e&&e.disconnect(),e=new ResizeObserver((()=>a.call(this,t))),e.observe(t,{}),setTimeout((()=>a.call(this,t)),200)},beforeDestroy(){e&&e.disconnect()}};function t(e){return e&&e.endsWith("px")?parseInt(e.slice(0,e.length-2)):0}function a(e){const a=e.querySelector("div"),n=e.parentElement.parentElement.querySelector(".video-js>video"),o=getComputedStyle(a),i=getComputedStyle(n);this.player$rects.container.width=t(o.width),this.player$rects.container.height=t(o.height),this.player$rects.video.width=t(i.width),this.player$rects.video.height=t(i.height),this.player$rects=Object.assign({},this.player$rects)}}var Bn=Mn,Wn=(a("d2e8"),Object(f["a"])(Bn,Un,Rn,!1,null,null,null)),Hn=Wn.exports;k()(Wn,"components",{QItem:Pe["a"]});var Vn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-center"},[e.dialogData?a("DialogPanel",{attrs:{icon:e.dialogData.icon,message:e.dialogData.message}}):e.playerError?a("ErrorPanel",{attrs:{player:e.player}}):e.playerLoading?a("LoadingPanel",{attrs:{player:e.player}}):e.emptySource?a("OpenButton",{attrs:{player:e.player}}):e.player.states.isPaused?a("PlayButton",{attrs:{player:e.player}}):e._e()],1)},Qn=[],Gn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{scopedSlots:e._u([e.icon?{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:e.icon}})]},proxy:!0}:null,{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.message)+"\n ")]),e.caption?a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.caption)+"\n ")]):e._e()]},proxy:!0}],null,!0)})},Kn=[],Yn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"controller:panel overflow-hidden",staticStyle:{"border-radius":"16px"}},[a("q-card-section",{staticClass:"text-center q-pa-md"},[e.$slots.avatar?a("div",{staticClass:"q-ma-sm"},[e._t("avatar")],2):e._e(),a("div",{staticClass:"q-ma-sm"},[e._t("default")],2),e.$slots.action?a("div",{staticClass:"q-mb-xs"},[e._t("action")],2):e._e()])],1)},Jn=[],Zn={},Xn=Zn,eo=(a("9992"),Object(f["a"])(Xn,Yn,Jn,!1,null,"18dfdf92",null)),to=eo.exports;k()(eo,"components",{QCard:v["a"],QCardSection:re["a"]});var ao={components:{CenterPanel:to},name:"DialogPanel",props:{icon:String,message:String,caption:String,handleOk:Function}},no=ao,oo=Object(f["a"])(no,Gn,Kn,!1,null,null,null),io=oo.exports;k()(oo,"components",{QIcon:Y["a"],QBtn:le["a"]});var ro=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"200px","max-width":"600px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:"error"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.type)+"\n ")]),a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.message)+"\n ")])]},proxy:!0},{key:"action",fn:function(){return[a("q-btn",{staticClass:"q-mt-sm",staticStyle:{"min-width":"64px","background-color":"rgba(256,256,256,0.1)"},attrs:{label:e.$t("ok"),"no-caps":"",flat:"",rounded:""},on:{click:e.handleOk}})]},proxy:!0}])})},so=[],lo={components:{CenterPanel:to},props:{player:Object},computed:{playerError(){var e,t;const a=this.player.states.loadingState;if(!a||"boolean"===typeof a)return null;const n=null===(e=this.player)||void 0===e||null===(t=e.instance)||void 0===t?void 0:t.languages_,o=this.$i18n.locale.toLowerCase(),i=e=>n&&n[o]&&n[o][e]||e;return{type:i(a.type),message:i(a.message)}}},methods:{async handleOk(){await this.player.stop()}}},co=lo,uo=Object(f["a"])(co,ro,so,!1,null,"90e33b2e",null),_o=uo.exports;k()(uo,"components",{QIcon:Y["a"],QBtn:le["a"]});var po=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"180px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-spinner-ios",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines",staticStyle:{"min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.$t("loading"))+"\n "),e.isRemotePlay?a("span",[e._v("("+e._s(e.remoteProgress)+")")]):a("span",[e._v("...")])]),e.isRemotePlay?a("div",{staticClass:"remote-status"},[e._v("\n "+e._s(e.remoteDownloaded)+" ( "+e._s(e.remoteDownloadSpeed)+" )\n ")]):e._e()]},proxy:!0}])})},mo=[],ho=a("84f6"),go=a("6422"),fo={components:{CenterPanel:to},props:{player:Object},computed:{remoteInfoHash(){var e;return null===(e=x["a"].state.video.currentVideo)||void 0===e?void 0:e.infoHash},isRemotePlay(){return!!this.remoteInfoHash&&x["a"].state.video.currentVideo.remotePlay},remoteTask(){return this.isRemotePlay?ho["a"].taskList.downloading.find((e=>e.infoHash===this.remoteInfoHash)):null},remoteProgress(){return this.isRemotePlay&&this.remoteTask?Object(go["g"])(this.remoteTask.progress):""},remoteDownloadSpeed(){return this.isRemotePlay&&this.remoteTask?Object(go["a"])(this.remoteTask.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s":""},remoteDownloaded(){return this.isRemotePlay&&this.remoteTask?Object(go["a"])(this.remoteTask.downloaded,{byte:!1}):""}}},bo=fo,yo=Object(f["a"])(bo,po,mo,!1,null,"0ff02c0c",null),vo=yo.exports;k()(yo,"components",{QSpinnerIos:at["a"]});var wo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("q-btn",{staticClass:"text-white controller:panel",attrs:{size:"2rem",icon:"file_open",unelevated:"",round:""},on:{click:e.openFile}}),a("input",{staticStyle:{display:"none"},attrs:{type:"file","data-cy":"file-input"},on:{input:e.loadVideo}})],1)},ko=[];function So({accept:e}){const t=document.createElement("input");return Object.assign(t.style,{position:"fixed",top:"0",left:"0",width:"0",height:"0"}),t.type="file",t.accept=Array.isArray(e)?e.join(","):e,t}function Co(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a,n;return t(null!==(a=null===(n=e.target)||void 0===n?void 0:n.result)&&void 0!==a?a:"")},a.readAsText(e)})):""}async function xo(e){const t=document.activeElement;try{document.body.appendChild(e),e.focus(),e.click()}finally{document.body.removeChild(e),t.focus()}const a=await n(e);return console.log("result"),console.tag("file").debug("result",a),a||null;async function n(e){var t,a;const n=await new Promise((t=>e.addEventListener("change",t,{once:!0}))),o=null===n||void 0===n||null===(t=n.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a[0];return console.tag("file").debug("change",o),e.value=null,o}}function $o(){return{readTextFile:Co,async selectFile({accept:e}={}){const t=So({accept:null!==e&&void 0!==e?e:"*"});return xo(t)}}}var To=zo;function zo(){const{selectFile:e}=$o(),t={opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",m3u8:"application/x-mpegURL",mpd:"application/dash+xml"};return async()=>{console.log("selectFile");const a=await e({accept:Array.from(new Set([...Object.values(t),...Object.keys(t).map((e=>`.${e}`))]))});return console.log("file",a),a?{src:URL.createObjectURL(a),type:a.type,file:a}:null}}const Po=To();var Ao={props:{player:Object},methods:{async openFile(){console.log("Open file");const e=await Po();if(console.log("select local source",e),!e)return;await this.player.setSource(e);const{currentSources:t,loadingState:a}=this.player.states;console.log("Dispatch remotePlay reset"),x["a"].dispatch("resetRemotePlay"),!t||t.length<=0||a||(this.player.ctl$emit("openFile"),this.player.play())},async loadVideo(e){if(console.log("Load video",e),e.target.files[0]){const t={src:URL.createObjectURL(e.target.files[0]),type:e.target.files[0].type,file:e.target.files[0]};console.log("Source",t),await this.player.setSource(t);const{currentSources:a,loadingState:n}=this.player.states;if(console.log(this.player.states),!a||a.length<=0)return;if(n)return;this.player.play()}}}},Io=Ao,qo=Object(f["a"])(Io,wo,ko,!1,null,"4dd2a6d6",null),Oo=qo.exports;k()(qo,"components",{QBtn:le["a"]});var Eo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{staticClass:"text-white controller:panel",attrs:{ripple:!1,size:"2rem",icon:e.icon,disable:e.disable,unelevated:"",round:""},on:{click:e.handlePlay}})},Do=[],jo={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},No=jo,Lo=Object(f["a"])(No,Eo,Do,!1,null,"0e8525b1",null),Uo=Lo.exports;k()(Lo,"components",{QBtn:le["a"]});var Ro={mixins:[Mo()],components:{DialogPanel:io,ErrorPanel:_o,LoadingPanel:vo,OpenButton:Oo,PlayButton:Uo},data(){return{interval:null}},props:{player:Object},computed:{playerError(){const e=this.player.states.loadingState;return e&&"boolean"!==typeof e?e:null},playerLoading(){const{loadingState:e,isWaiting:t}=this.player.states;return!0===e||!!t},emptySource(){const e=this.player.states.currentSources;return!e||e.length<=0}},mounted(){clearInterval(this.interval)},beforeDestroy(){clearInterval(this.interval)}};function Mo(){let e=null;function t(){e&&clearTimeout(e),e=null,this.dialog$data.icon=null,this.dialog$data.message=null}return{data(){return{dialog$data:{icon:null,message:null}}},computed:{dialogData(){const{icon:e,message:t}=this.dialog$data;if(!t)return null;const a={};return a.icon=e,a.message=t,a}},methods:{createDialog({icon:a,message:n,timeout:o}){return e&&clearTimeout(e),e=null,this.dialog$data.icon=a,this.dialog$data.message=n,o&&(e=setTimeout(t.bind(this),o)),t.bind(this)}}}}var Fo=Ro,Bo=Object(f["a"])(Fo,Vn,Qn,!1,null,null,null),Wo=Bo.exports,Ho=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-top relative-position",staticStyle:{"min-height":"56px"}},[a("div",{staticClass:"controller-top absolute-full overflow-hidden"}),a("div",{staticClass:"relative-position flex no-wrap items-center text-white q-px-md q-pb-sm non-selectable",staticStyle:{"z-index":"1","padding-top":"10px"}},[e.info?[a("q-icon",{staticClass:"q-ml-sm q-mr-sm",attrs:{name:"movie",size:"1.5rem"}}),a("div",{staticClass:"q-my-xs q-mx-sm col-shrink"},[a("div",{staticClass:"text-bold",staticStyle:{"font-size":"0.9rem","line-height":"1.2"}},[e._v(e._s(e.info.title))]),e.info.caption?a("div",{staticClass:"ellipsis",staticStyle:{"max-width":"200px",opacity:"0.6","font-size":"0.7rem","line-height":"1"}},[e._v(e._s(e.info.caption)+"\n ")]):e._e()])]:e._e(),a("q-space"),e._t("right")],2)])},Vo=[],Qo={props:{player:Object},computed:{info(){var e,t;const a=null!==(e=null===(t=this.player.states.currentSources)||void 0===t?void 0:t[0])&&void 0!==e?e:null;if(!a)return null;if(a.filename){const e=a.filename.replace(/\\/g,"/").split("/").reverse()[0];return{title:e.slice(0,e.lastIndexOf(".")),caption:a.filename}}return a.file?{title:a.file.name.slice(0,a.file.name.lastIndexOf(".")),caption:a.file.path}:{title:this.$t("unknown_media"),caption:a.src}}}},Go=Qo,Ko=Object(f["a"])(Go,Ho,Vo,!1,null,"2ead7b1a",null),Yo=Ko.exports;k()(Ko,"components",{QIcon:Y["a"],QSpace:se["a"]});var Jo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-bottom relative-position"},[a("div",{staticClass:"controller-bottom full-height full-width absolute-top-left overflow-hidden"}),a("div",{staticClass:"relative-position flex items-center text-white q-px-md q-pb-sm non-selectable no-wrap",staticStyle:{"padding-top":"12px"}},[a("PlayButton",{attrs:{player:e.player}}),a("StopButton",{attrs:{player:e.player}}),a("div",{staticClass:"q-mx-sm q-my-sm text-bold ellipsis",style:{opacity:e.disable?.7:1}},[e._v(e._s(e.timeLabel))]),a("q-space"),e._t("right")],2),a("ProgressBar",{attrs:{player:e.player}})],1)},Zo=[],Xo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar absolute-top q-px-md no-pointer-events",class:e.disable?["video-js-player__progress-bar-disable"]:[]},[a("q-slider",{staticClass:"video-js-player__progress-bar-slider all-pointer-events",attrs:{"disable-keydown":"",min:0,max:1e3*e.duration,"track-color":"transparent","thumb-color":"primary","thumb-size":"12px",dark:"",label:"",dense:"","label-value":e.progressLabel,disable:e.disable},nativeOn:{click:function(t){return e.onClick.apply(null,arguments)}},model:{value:e.progress,callback:function(t){e.progress=t},expression:"progress"}}),e._m(0),e._l(e.player.states.buffered,(function(t,n){var o=t[0],i=t[1];return a("div",{key:n,staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("BufferProgress",{staticStyle:{opacity:"1"},attrs:{start:o/e.player.states.duration||0,end:i/e.player.states.duration||0}})],1)}))],2)},ei=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("div",{staticClass:"video-js-player__progress-bar-buffered-bg"})])}];function ti(){const e=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};let t=0;return{computed:{progress:{get(){return 1e3*this.player.states.currentTime},set(e){this.player.seek(e/1e3)}},animationSpeed(){const e=Math.abs(this.progress-t);return t=this.progress,e>300?0:e},duration(){return this.player.states.duration},progressLabel(){return e(this.progress/1e3)},durationLabel(){return e(this.duration)}}}}var ai=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__buffer-progress relative-position full-width"},[a("div",{staticClass:"absolute full-height",staticStyle:{"border-radius":"4px"},style:{width:100*(e.end-e.start)+"%",left:100*e.start+"%"}})])},ni=[],oi={props:{start:Number,end:Number}},ii=oi,ri=(a("d1e4"),Object(f["a"])(ii,ai,ni,!1,null,"4e25daec",null)),si=ri.exports,li={mixins:[ti()],components:{BufferProgress:si},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t}},methods:{onClick(){console.log("[Ctrl] onProgressBarClick"),this.$emit("click"),setTimeout((()=>{this.$el.blur(),document.body.click(),console.log("[Ctrl] Blur")}),200)}}},ci=li,di=(a("84cb"),a("f9b5")),ui=Object(f["a"])(ci,Xo,ei,!1,null,null,null),_i=ui.exports;k()(ui,"components",{QSlider:di["a"]});var pi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:"",disable:e.disable},on:{click:e.handlePlay}})},mi=[],hi={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},gi=hi,fi=Object(f["a"])(gi,pi,mi,!1,null,null,null),bi=fi.exports;k()(fi,"components",{QBtn:le["a"]});var yi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"stop",unelevated:"",round:"",disable:e.disable},on:{click:e.handleStop}})},vi=[],wi={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{async handleStop(){this.player.states.isPiP&&this.player.setPiP(!1),this.player.states.isFullscreen&&this.player.setFullscreen(!1),x["a"].dispatch("resetRemotePlay"),await this.player.stop()}}},ki=wi,Si=Object(f["a"])(ki,yi,vi,!1,null,null,null),Ci=Si.exports;k()(Si,"components",{QBtn:le["a"]});var xi={mixins:[ti()],components:{PlayButton:bi,StopButton:Ci,ProgressBar:_i},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},timeLabel(){const e=e=>{const t=Math.round(e),a=Math.floor(t/3600),n=Math.floor((t-60*a*60)/60),o=t-(60*a*60+60*n);return(a?[a,n,o]:[n,o]).map((e=>(""+e).padStart(2,"0"))).join(":")};return`${e(this.player.states.currentTime)} / ${e(this.player.states.duration)}`}}},$i=xi,Ti=a("526f"),zi=Object(f["a"])($i,Jo,Zo,!1,null,null,null),Pi=zi.exports;k()(zi,"components",{QLinearProgress:Ti["a"],QSpace:se["a"]});var Ai=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerPage",{attrs:{title:e.$t("settings"),icon:"settings"},model:{value:e.showSetting,callback:function(t){e.showSetting=t},expression:"showSetting"}},[a("q-list",{staticClass:"video-js-player__setting-list",attrs:{dark:"",bordered:"",separator:""}},[a("q-item-label",{staticClass:"q-mx-md q-mt-md",staticStyle:{"font-size":"1.1rem"}},[e._v(e._s(e.$t("settings_subtitle_options")))]),a("SubtitleOptions")],1)],1)},Ii=[],qi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.value?a("div",{staticClass:"non-selectable absolute-full video-js-player__page",staticStyle:{"z-index":"1000"}},[a("div",{staticClass:"bg-transparent full-width"},[a("q-toolbar",{staticStyle:{height:"56px"}},[e.icon?a("q-icon",{staticClass:"q-ml-sm",attrs:{name:e.icon,size:"1.5rem"}}):e._e(),a("q-toolbar-title",{staticClass:"text-bold",staticStyle:{"font-size":"1rem","line-height":"1.2"}},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(){return e.$emit("input",!1)}}})],1),a("q-separator",{staticStyle:{"background-color":"rgba(256,256,256,0.2)"},attrs:{size:"0.8px"}})],1),a("q-page",{attrs:{padding:""}},[e._t("default")],2)],1):e._e()},Oi=[],Ei={props:{icon:String,title:String,value:Boolean}},Di=Ei,ji=(a("5a2f"),a("99c4")),Ni=a("75a3"),Li=a("9b72"),Ui=Object(f["a"])(Di,qi,Oi,!1,null,null,null),Ri=Ui.exports;k()(Ui,"components",{QToolbar:ji["a"],QIcon:Y["a"],QToolbarTitle:Ni["a"],QSpace:se["a"],QBtn:le["a"],QSeparator:ce["a"],QPage:Li["a"]});var Mi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"overflow-hidden"},[a("q-item-section",{attrs:{side:""}},[a("div",{staticClass:"column",staticStyle:{"align-items":"stretch",gap:"8px"}},[a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontSizeOptions,"toggle-color":"primary"},model:{value:e.fontSize,callback:function(t){e.fontSize=t},expression:"fontSize"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontStyleOptions,"toggle-color":"primary"},model:{value:e.fontStyle,callback:function(t){e.fontStyle=t},expression:"fontStyle"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontWeightOptions,"toggle-color":"primary"},model:{value:e.fontWeight,callback:function(t){e.fontWeight=t},expression:"fontWeight"}})],1)]),a("q-item-section",{staticClass:"bg-grey-9 flex justify-center items-center overflow-hidden relative-position",staticStyle:{padding:"8px","border-radius":"8px"}},[a("div",{staticClass:"absolute-top-right"},[a("q-btn-toggle",{staticClass:"q-ma-xs lorem-ipsum",staticStyle:{"background-color":"rgba(50, 50, 50, 0.6)","border-radius":"4px"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.loremIpsumOptions,"toggle-color":"primary"},model:{value:e.loremIpsumType,callback:function(t){e.loremIpsumType=t},expression:"loremIpsumType"}})],1),a("div",{staticClass:"video-js-player__subtitle ellipsis overflow-hidden col-shrink"},[e._v(e._s(e.loremIpsum))])])],1)},Fi=[],Bi={mixins:[Wi()],name:"SubtitleOptions",inject:["player$settings"],computed:{fontSize:{get(){return this.player$settings.subtitle.size},set(e){this.player$settings.subtitle.size=e}},fontStyle:{get(){return this.player$settings.subtitle.style},set(e){this.player$settings.subtitle.style=e}},fontWeight:{get(){return this.player$settings.subtitle.weight},set(e){this.player$settings.subtitle.weight=e}},fontSizeOptions(){return[{label:this.$t("settings_small"),value:1},{label:this.$t("settings_normal"),value:1.25},{label:this.$t("settings_large"),value:1.7}]},fontStyleOptions(){return[{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_italic"),value:"italic"}]},fontWeightOptions(){return[{label:this.$t("settings_lighter"),value:"lighter"},{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_bolder"),value:"bold"}]}}};function Wi(){const e={EN:"Lorem ipsum dolor sit amet, consectetur adipisicing elit.","简":"朝菌不知晦朔,蟪蛄不知春秋。","繁":"天地不仁,以萬物為芻狗。 聖人不仁,以百姓為芻狗。"};return{data(){return{loremIpsumType:"EN"}},computed:{loremIpsum(){var t;return null!==(t=e[this.loremIpsumType])&&void 0!==t?t:e.EN},loremIpsumOptions(){return Object.keys(e).map((e=>({label:e,value:e})))}}}}var Hi=Bi,Vi=(a("3061"),a("834d")),Qi=a("96d7"),Gi=Object(f["a"])(Hi,Mi,Fi,!1,null,null,null),Ki=Gi.exports;k()(Gi,"components",{QItem:Pe["a"],QItemSection:Ae["a"],QBtnToggle:Vi["a"],QBtnGroup:Qi["a"],QBtn:le["a"]});var Yi={components:{ControllerPage:Ri,SubtitleOptions:Ki},props:{player:Object},data(){return{dev:!1,showSetting:!1}},methods:{show(){this.showSetting=!0}}},Ji=Yi,Zi=(a("071f"),Object(f["a"])(Ji,Ai,Ii,!1,null,null,null)),Xi=Zi.exports;k()(Zi,"components",{QList:ht["a"],QItemLabel:Ie["a"],QItem:Pe["a"]});var er=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handleMute}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showVolumeCard,expression:"showVolumeCard"}],staticClass:"video-js-player__controller-menu controller-popup__transition absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",height:"140px",padding:"6px!important"}},[a("div",{staticClass:"absolute-bottom q-mb-md text-center text-bold"},[e._v(e._s(e.volume))]),a("q-slider",{staticClass:"video-js-player__volume-slider",staticStyle:{height:"100%"},attrs:{vertical:"",reverse:"","track-size":"40px","thumb-size":"0","track-color":"transparent",min:0,max:100,step:10},model:{value:e.volume,callback:function(t){e.volume=t},expression:"volume"}})],1)],1)])],1)},tr=[];function ar(e,t){return{computed:{mouseEvents(){let a=null;const n=n=>{a&&clearTimeout(a),a=setTimeout((()=>{this[e]=n,a=null}),t)},o=e=>e.classList.contains("video-js-player__controller"),i=(t,a)=>{if(a)this[e]=a;else{if(0!==t.which)return;n(a)}},r=e=>{if(!o(e.target))return clearTimeout(a);n(!1)},s=t=>{if(!o(t.target))return clearTimeout(a);this[e]=!0,n(!1)};return{mouseover:e=>r.call(this,e),mousemove:e=>s.call(this,e),mouseenter:e=>i.call(this,e,!0),mouseleave:e=>i.call(this,e,!1)}}}}}var nr={mixins:[ar("showVolumeCard",100)],props:{player:Object},data(){return{showVolumeCard:!1}},computed:{volume:{get(){return this.player.states.isMuted?0:Math.round(100*this.player.states.volume)},set(e){this.player.setVolume(e/100)}},icon(){return this.player.states.isMuted?"volume_off":"volume_up"}},methods:{handleMute(){this.player.mute(!this.player.states.isMuted)}}},or=nr,ir=(a("f77d"),a("85c4")),rr=Object(f["a"])(or,er,tr,!1,null,null,null),sr=rr.exports;k()(rr,"components",{QBtn:le["a"],QTr:ir["a"],QCard:v["a"],QSlider:di["a"]});var lr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",unelevated:"",round:"",icon:"speed"},on:{click:function(t){e.showPlaybackRateCard=!e.showPlaybackRateCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showPlaybackRateCard,expression:"showPlaybackRateCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("q-btn-toggle",{staticClass:"column video-js-player__controller-btn-toggle",attrs:{"toggle-color":"active",ripple:!1,options:e.playbackRates},model:{value:e.playbackRate,callback:function(t){e.playbackRate=t},expression:"playbackRate"}})],1)],1)])],1)},cr=[],dr={mixins:[ar("showPlaybackRateCard",100)],props:{player:Object},data(){return{showPlaybackRateCard:!1}},computed:{playbackRate:{get(){var e;return null!==(e=this.player.states.playbackRate)&&void 0!==e?e:1},set(e){this.player.setPlaybackRate(e)}},playbackRates(){return[{label:"X2.0",value:2},{label:"X1.5",value:1.5},{label:"X1.0",value:1},{label:"X0.5",value:.5}]},playbackRateLabel(){return this.playbackRates.find((e=>e.value===this.playbackRate)).label}}},ur=dr,_r=(a("5e87"),Object(f["a"])(ur,lr,cr,!1,null,null,null)),pr=_r.exports;k()(_r,"components",{QBtn:le["a"],QTr:ir["a"],QCard:v["a"],QBtnToggle:Vi["a"]});var mr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{disable:e.disableShowSubtitleCard,size:"0.8rem",unelevated:"",round:"",icon:e.trackEnabled?"subtitles":"subtitles_off"},on:{click:function(){return e.showSubtitleCard=!e.showSubtitleCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showSubtitleCard,expression:"showSubtitleCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"min-width":"200px","border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("div",{staticClass:"row items-center justify-start no-wrap"},[a("div",{staticClass:"text-bold q-ml-sm q-mr-xs ellipsis",staticStyle:{"font-size":"0.8rem",transform:"translateY(0.1rem)"}},[e._v("\n "+e._s(e.$t("subtitle"))+"\n ")]),a("q-space"),a("div",{staticClass:"q-mr-xs overflow-hidden row items-stretch no-wrap",staticStyle:{"background-color":"rgba(256,256,256,0.1)","border-radius":"999px"}},[a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_rewind",unelevated:"",size:"0.6rem",padding:"0 6px 0 10px"},on:{click:function(){return e.handleTrackOffset(!1)}}}),a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_forward",unelevated:"",size:"0.6rem",padding:"0 10px 0 6px"},on:{click:function(){return e.handleTrackOffset(!0)}}})],1),a("q-btn",{staticClass:"q-mr-xs",style:{backgroundColor:e.trackEnabled?"var(--q-color-primary)":"rgba(256,256,256,0.1)"},attrs:{icon:e.trackEnabled?"subtitles":"subtitles_off",round:"",unelevated:"",size:"0.6rem"},on:{click:function(){return(e.trackEnabled?e.handleDisableTrack:e.handleEnableTrack)()}}}),a("q-btn",{staticClass:"q-mr-xs",staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{icon:"add",round:"",unelevated:"",size:"0.6rem"},on:{click:e.handleAddTrack}})],1),e.tracksLoaded&&e.tracksLoaded.length?a("q-list",{staticClass:"q-mt-xs video-js-player__controller-list",staticStyle:{"min-width":"180px","max-width":"200px","font-size":"0.8rem","max-height":"240px","overflow-y":"auto"}},e._l(e.tracksLoaded,(function(t){return a("q-item",{key:t.id,staticStyle:{"padding-right":"0"},attrs:{dense:"",clickable:"",disable:!e.trackEnabled},on:{click:function(){return!t.active&&e.handleEnableTrack(t.id)}}},[a("q-item-section",{staticClass:"q-pr-sm",staticStyle:{"min-width":"24px"},attrs:{avatar:""}},[a("q-badge",{attrs:{rounded:"",color:t.active?e.trackEnabled?"primary":"grey":"transparent"}})],1),a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))])],1),a("q-item-section",{staticStyle:{color:"inherit","padding-left":"4px"},attrs:{side:""}},[a("q-btn",{staticClass:"q-mr-xs",attrs:{icon:"clear",round:"",unelevated:"",size:"0.6rem",disable:!e.trackEnabled},on:{click:function(a){return e.handleRemoveTrack(t.id)}}})],1)],1)})),1):e._e()],1)],1)])],1)},hr=[],gr=fr;function fr(){const{selectFile:e,readTextFile:t}=$o(),a={vtt:"text/vtt",srt:"text/srt"};return async()=>{const n=await e({accept:Array.from(new Set([...Object.values(a),...Object.keys(a).map((e=>`.${e}`))]))});if(!n)return null;let o=await t(n);return o?(n.name.endsWith(".srt")&&(o=br(o)),{src:URL.createObjectURL(new Blob([o])),id:n.name}):null}}function br(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}}const yr=gr();var vr={mixins:[ar("showSubtitleCard",100)],props:{player:Object},data(){return{showSubtitleCard$inner:!1}},computed:{disableShowSubtitleCard(){const{currentSources:e}=this.player.states;return!e||e.length<=0},showSubtitleCard:{get(){return this.showSubtitleCard$inner&&!this.disableShowSubtitleCard},set(e){this.showSubtitleCard$inner=e}},trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},tracksLoaded(){var e,t,a;const n=this.player.states.track;if(!n)return[];const o=null!==(e=n.tracks)&&void 0!==e?e:[],i=null!==(t=null===(a=n.currentTrack)||void 0===a?void 0:a.id)&&void 0!==t?t:null;return o.map((e=>({id:e,label:e,active:e===i})))}},methods:{async handleAddTrack(){const e=await yr();e&&(this.player.addTrack(e),this.player.enableTrack(e.id))},async handleRemoveTrack(e){console.log("Remove track",e),this.player.removeTrack(e)},handleEnableTrack(e=null){const t=this.player.states.track;t&&this.player.enableTrack(e)},handleDisableTrack(){const e=this.player.states.track;e&&e.enable&&this.player.disableTrack()},handleTrackOffset(e){this.player.setTrackOffset(this.player.states.track.offset+(e?.5:-.5))}}},wr=vr,kr=(a("cc0c"),a("90c4")),Sr=Object(f["a"])(wr,mr,hr,!1,null,null,null),Cr=Sr.exports;k()(Sr,"components",{QBtn:le["a"],QTr:ir["a"],QCard:v["a"],QSpace:se["a"],QColor:Z["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QBadge:kr["a"],QItemLabel:Ie["a"]});var xr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"picture_in_picture_alt",unelevated:"",round:"",disable:e.disable},on:{click:e.handler}})},$r=[],Tr={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{handler(){this.player.setPiP(!this.player.states.isPiP)}}},zr=Tr,Pr=Object(f["a"])(zr,xr,$r,!1,null,null,null),Ar=Pr.exports;k()(Pr,"components",{QBtn:le["a"]});var Ir=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handler}})},qr=[],Or={props:{player:Object},computed:{icon(){return this.player.states.isFullscreen?"fullscreen_exit":"fullscreen"}},methods:{handler(){this.player.setFullscreen(!this.player.states.isFullscreen)}}},Er=Or,Dr=Object(f["a"])(Er,Ir,qr,!1,null,null,null),jr=Dr.exports;k()(Dr,"components",{QBtn:le["a"]});const Nr=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};var Lr=()=>{const e=5,t=.1;return{mixins:[Ur(),ti()],mounted(){this.hotkey$bind([32,179],"play_switch",(()=>{const{currentSources:e,loadingState:t}=this.player.states;!e||e.length<=0||t||(this.player.states.isPaused?this.player.play():this.player.pause())})),this.hotkey$bind(70,"fullscreen_switch",(()=>{this.player.setFullscreen(!this.player.states.isFullscreen)})),this.hotkey$bind([39,176],"forward",(()=>{console.log("[Ctrl] fwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime+e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_forward",message:`${Nr(i)} / ${this.durationLabel}`})})),this.hotkey$bind([37,177],"rewind",(()=>{console.log("[Ctrl] bwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime-e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_rewind",message:`${Nr(i)} / ${this.durationLabel}`})})),this.hotkey$bind(38,"volume_up",(()=>{const e=Math.max(0,Math.min(this.player.states.volume+t,1));this.player.setVolume(e)})),this.hotkey$bind(40,"volume_down",(()=>{const e=Math.max(0,Math.min(this.player.states.volume-t,1));this.player.setVolume(e)})),this.hotkey$bind(190,"track_offset_forward",(()=>{this.player.setTrackOffset(this.player.states.track.offset+.5)})),this.hotkey$bind(188,"track_offset_backward",(()=>{this.player.setTrackOffset(this.player.states.track.offset-.5)})),this.$watch((()=>{var e;return null===(e=this.player.states.track)||void 0===e?void 0:e.offset}),((e,t)=>{void 0!==t&&a.call(this,{icon:"subtitles",message:`${e>0?"+":""}${-1===e.toString().indexOf(".")?e+".0":e}s`})})),this.$watch((()=>this.player.states.volume),((e,t)=>{null!==t&&a.call(this,{icon:"volume_up",message:`${Math.round(100*e)}%`})}))}};function a({icon:e,message:t}){this.$refs.centerRef.createDialog({icon:e,message:t,timeout:1e3})}};function Ur(){const e={};let t;const a=[],n={};return{async mounted(){await this.player.promisePlayerReady,e.player=this.$el.parentNode,e.container=e.player.querySelector(".video-js-player>.video-js"),e.controller=this.$el,e.video=e.player.querySelector(".video-js-player>.video-js>video.vjs-tech"),e.controller.hasAttribute("tabIndex")||e.controller.setAttribute("tabIndex","-1"),e.controller.style.outline="none",t=i.bind(this),document.body.addEventListener("keydown",t)},beforeUnmount(){document.body.removeEventListener("keydown",t)},methods:{hotkey$bind:o,hotkey$focus(){const t=document.activeElement;t===e.player||t===e.container||t===e.controller||t===e.video||e.controller.contains(t)||e.container.focus()}}};function o(e,...t){const o={matcher:null,callback:null};function i(){return"function"===typeof e?e:"number"===typeof e?t=>t.which===e:Array.isArray(e)?t=>e.includes(t.which):null}function r(){let e,a;return 2===t.length?(e=t[0],a=t[1]):"function"===typeof t[0]?(e=null,a=t[0]):(e=t[0],a=null),e&&a&&(n[e]=a),e?()=>n[e]():a?()=>a():null}o.matcher=i(),o.callback=r(),o.matcher&&o.callback&&a.unshift(o)}async function i(t){const n=document.activeElement;if(n===e.player||n===e.container||n===e.controller||n===e.video||n===document.body||e.controller.contains(n)){const e=a.find((e=>e.matcher(t)));if(!e)return console.log("[Ctrl] No hotkey",t);console.log("[Ctrl]",e),await e.callback()}}}const Rr=To();var Mr={mixins:[Lr(),Fr()],components:{ControllerLayout:Ln,Subtitle:Hn,Center:Wo,Header:Yo,Footer:Pi,Setting:Xi,VolumeButton:sr,PlaybackRateButton:pr,SubtitleButton:Cr,PipButton:Ar,FullscreenButton:jr},props:{player:Object},methods:{handleOpenSetting(){this.player.pause(),this.$refs.settingRef.show()},async handleOpenLocalVideo(){console.log("handleOpenLocal");const e=await Rr();if(console.log("source",e),!e)return;await this.player.setSource(e),console.log(this.player.states);const{currentSources:t,loadingState:a}=this.player.states;!t||t.length<=0||a||(console.log(this.player,this.player.play),this.player.play())}}};function Fr(){return{provide(){return{player$settings:this.player$settings}},data(){return{player$settings:{subtitle:{style:"normal",weight:"normal",size:1.25}}}},mounted(){this.$watch((()=>this.player$settings.subtitle.size),(e=>{this.$el.style.setProperty("--subtitle-size",`${e}rem`)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.style),(e=>{this.$el.style.setProperty("--subtitle-style",e)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.weight),(e=>{this.$el.style.setProperty("--subtitle-weight",e)}),{immediate:!0})}}}var Br=Mr,Wr=Object(f["a"])(Br,zn,Pn,!1,null,null,null),Hr=Wr.exports;k()(Wr,"components",{QBtn:le["a"]});var Vr={name:"VideoJsPlayer",components:{Controller:Hr},data(){return{player:null}},mixins:[Qr(),Gr(),Kr()]};function Qr(){const e=e=>e&&e.destroy();return{created(){this.player=this.$videoJs.createPlayer();const e=this.player.play.bind(this);this.player.play=(...t)=>{console.log("[Trigger play]",this.player,this.player.states),e(...t),this.$emit("player-play"),this.player.mute(this.player.states.isMuted)}},mounted(){this.$watch((()=>this.player),(async(a,n)=>{e(n),a&&(await a.initialize(this.$refs.videoRef),t.call(this))}),{immediate:!0})},beforeDestroy(){e(this.player)}};function t(){const e=["openFile"];e.forEach((e=>this.player.ctl$on(e,(()=>this.$emit(e)))))}}function Gr(){return{created(){const e=()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null};this.$watch(e,(e=>{if(!e)return;const t=e.contentEl();if(!t)return;const a=t.nextElementSibling;a&&t.appendChild(a)}),{immediate:!0})}}}function Kr(){return{methods:{async setSource(...e){await this.player.promiseReady,await this.player.setSource(...e)}}}}var Yr=Vr,Jr=(a("2163"),Object(f["a"])(Yr,$n,Tn,!1,null,null,null)),Zr=Jr.exports;window.videojs=Ua["default"],a("94ce"),a("63f2"),a("2079");var Xr=(e,t)=>{const a=new e(xn);e.prototype.$videoJs=a,e.component("VideoJsPlayer",Zr)},es=e=>{const{Vue:t}=e;t.component("AlphabizButton",Se),t.component("AlphabizSelect",Ee),t.component("VirtualScrollGrid",Fe),t.use(wa),t.use(ts,e),t.config.errorHandler=function(e){throw e},t.use(as),t.use(Na,{}),t.use(qa,{getLocalConfig:()=>F.a.dynamicConfig.local,getRemoteConfigUrl:()=>F.a.dynamicConfig.remote.url}),t.mixin({computed:{screen$xs(){return this.$q.screen.height<=600||this.$q.screen.width<=600},isPortrait(){return this.$q.screen.height>this.$q.screen.width}}}),t.use(Xr,{})};function ts(e,{store:t}){const n=(...e)=>console.tag.orange("VersionControl",...e),o=()=>t.getters.settings.versionChannel,i=e=>{{const t=a("ae46");return t[e]}},r=e=>{const[t,a,n]=e.split("-");return{version:t,channel:null!==a&&void 0!==a?a:"stable",build:n}},s=e=>{const t=Array.from(e),a=[4,2,2,2,2].reduce(((e,a,n)=>(e[n]=t.splice(0,a).join(""),e)),[]);return new Date(a.splice(0,3).join("-")+" "+a.join(":"))},l=async({wait:e,timeout:t})=>{const a=F.a.versionsUrl,o=async()=>{try{return await(await fetch(a)).json()}catch{return null}},i=async(e,{onTimeout:t,timeout:a})=>{let n,o=!1;return await Promise.race([e.then((e=>{o=!0,n=e})),new Promise((e=>setTimeout(e,a))).then((()=>{o||t&&(n=t())}))]),n},r=(e,{onFailed:t,wait:a})=>{let n=!1;const o=async()=>{let o=await e();while(!o&&!n){if(await new Promise((e=>setTimeout(e,a))),n)break;if(o=await e(),n)break;o||t()}return o},i=o();return i.cancel=()=>n=!0,i},s=r((async()=>await o()),{onFailed(){n().tag("retry").log("retry to fetch versionsInfo")},wait:e}),l=await i(s,{timeout:t,onTimeout(){return n().tag.red("failed").log("failed to fetch versionsInfo"),null}}).finally(s.cancel);return l},c=31536e6,d=1e4,u=new e({data(){return{currentVersion:r(i("version")),buildTime:s(i("buildTime")),versionsInfo:void 0}},computed:{versionState(){if(!Object(xa["isElectron"])())return"active";if(void 0===this.versionsInfo)return"pending";if(this.versionsInfo){const e=r(this.versionsInfo.min[o()]),t=Ca.a.gt([e.version,e.build].filter((e=>!!e)).join("-"),[this.currentVersion.version,this.currentVersion.build].filter((e=>!!e)).join("-"));return t?"force_update":"active"}{const e=new Date-this.buildTime;return e>=c?"force_exit":"active"}}},created(){this.$watch("currentVersion",(e=>{n("currentVersion").log(JSON.parse(JSON.stringify(e)))}),{immediate:!0}),this.$watch("versionsInfo",(e=>{n("versionsInfo").log(e?JSON.parse(JSON.stringify(null!==e&&void 0!==e?e:{})):e)}),{immediate:!0}),this.$watch("versionState",(e=>{n("versionState").log(e)}),{immediate:!0});const e=3e3;l({wait:e,timeout:d}).then((e=>this.versionsInfo=e))}});e.mixin({computed:{vc$versionState(){return u.versionState},vc$buildTime(){return u.buildTime}}})}function as(e){function t(){let e=0;document.addEventListener("touchstart",(e=>{e.touches.length>1&&e.preventDefault()})),document.addEventListener("touchend",(t=>{const a=(new Date).getTime();a-e<=300&&t.preventDefault(),e=a}),!1),document.addEventListener("gesturestart",(e=>e.preventDefault())),document.addEventListener("dblclick",(e=>e.preventDefault()))}function a(){const e=window.innerHeight;document.documentElement.style.setProperty("--viewport-height",`${e}px`)}window.addEventListener("DOMContentLoaded",t),window.addEventListener("resize",a),window.addEventListener("DOMContentLoaded",a)}var ns=a("1926");const os={account_error_network:["Network error","Network Error"],account_error_attempt_limit_exceeded:["Attempt limit exceeded, please try after some time"],account_error_incorrect_username_or_password:["User does not exist","Incorrect username or password"],account_error_username_not_found:["Username/client id combination not found."],account_error_can_not_reset_for_no_verified:["Cannot reset password for the user as there is no registered/verified email or phone_number"],account_error_invalid_verification_code:["Invalid verification code provided, please try again"],account_error_password_not_long_enough:["Password did not conform with policy: Password not long enough"],account_error_invalid_phone_number_format:["Invalid phone number format"],account_error_no_cell_phone_prefix:["Please select the prefix for the phone number"],account_error_username_already_exists:["User already exists"],account_error_incorrect_password:["Incorrect password"],account_error_you_need_to_accept_license_terms:["you_need_to_accept_license_terms"],account_error_incorrect_original_password:["incorrect_original_password"]},is={match:e=>Object.values(os).some((t=>Array.isArray(t)?t.includes(e.message):"object"===typeof t&&Object.keys(t).includes(e.message))),execute(e,t){const a=Object.keys(os).find((t=>os[t].some((t=>t.includes(e.message)))));t.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})}};var rs=[is],ss=a("b34a"),ls=a("1738"),cs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g(e._b({style:{minWidth:e.minWidth},attrs:{size:"md",align:"around","no-wrap":"",percentage:e.percentage,disable:e.value||e.loading,loading:e.loading,type:e.type,unelevated:!e.shadow,icon:e.icon,label:e.label,color:e.primary?"primary":e.transparent?"transparent":"general","text-color":e.primary?"primary":"general"},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner",{attrs:{color:e.primary?"primary":"general"}})]},proxy:!0}])},"q-btn",Object.assign({},e.bound),!1),Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},ds=[],us={name:"AmplifyButton",props:{primary:Boolean,immediate:Boolean,shadow:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},minWidth:{type:String,default:"128px"},value:{type:Boolean,default:!1},timeout:{type:Object,default:void 0},icon:{type:String,default:void 0},label:{type:String,default(){return this.icon?void 0:"button"}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},onAnimationEnd:{type:Function,default:void 0},bound:{type:Object,default(){return{}}}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t()}return o}}},beforeDestroy(){this.shutdownTimer()}},_s=us,ps=(a("3c15"),Object(f["a"])(_s,cs,ds,!1,null,"6fc70cc6",null)),ms=ps.exports;k()(ps,"components",{QBtn:le["a"],QSpinner:we["a"]});var hs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{style:Object.assign({},{minWidth:e.minWidth},e.maxWidth?{maxWidth:e.maxWidth}:{},{paddingBottom:e.screen$xs?"calc(44px + 8px)":"8px"}),attrs:{flat:"",bordered:e.bordered}},[e.showCancelCorner?a("amplify-button",{ref:"cornerCancelButton",staticClass:"self-start",staticStyle:{height:"48px"},attrs:{immediate:!0,transparent:!0,icon:"arrow_back","on-click":e.onCancel,"min-width":"64px"},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showTitle,expression:"showTitle"}],staticClass:"q-py-sm",class:e.screen$xs?"q-px-sm":"q-px-md"},[a("div",{staticClass:"text-h6 text-weight-bold q-py-sm non-selectable"},[e._v(e._s(e.title))])]),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showDescription,expression:"showDescription"}],staticClass:"q-pt-none q-pb-sm amplify-card-description",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("description",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-form",{directives:[{name:"show",rawName:"v-show",value:e.showForm,expression:"showForm"}],staticClass:"col-grow",on:{submit:e.handleSubmit}},[a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showContent,expression:"showContent"}],staticClass:"col-grow q-pt-none amplify-card-form",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("default",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:e.showCardActions,expression:"showCardActions"}],staticClass:"q-pt-md q-pb-sm amplify-card-actions",class:e.screen$xs?"q-px-sm":"q-px-md",attrs:{align:"stretch",vertical:""}},[e._t("options",null,{disable:e.disable,setDisable:function(t){return e.disable=t}}),e.showSubmitButton?a("amplify-button",{ref:"submitButton",attrs:{primary:!e.noPrimary,type:"submit",timeout:e.timeout,label:e.submitLabel,"on-click":e.onSubmit,"on-animation-end":e.afterSubmit},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e.showCancelButton?a("amplify-button",{ref:"cancelButton",attrs:{immediate:"",label:e.cancelLabel,"on-click":e.onCancel},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e._t("actions",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2)],1)],1)},gs=[],fs=(a("e39c"),{name:"AmplifyCard",props:{title:{type:String,default:void 0},bordered:{type:Boolean,default:!1},minWidth:{type:String,default:"320px"},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},afterSubmit:{type:Function,default:void 0},noPrimary:Boolean,hideDescription:Boolean,hideOptions:Boolean,hideActions:Boolean},data(){return{disable:!1}},methods:{async handleSubmit(e){await this.$refs.submitButton.handleButton(e)},handleKeydownEsc(){if(this.disable)return;if(!this.showCancelButton&&!this.showCancelCorner)return;const e=this.showCancelButton?"cancelButton":"cornerCancelButton";this.$refs[e].handleButton(null)}},computed:{showCancelCorner(){return this.cancelable&&this.cornerCancel},showTitle(){return!!this.title},showDescription(){return!this.hideDescription&&(!!this.$slots.description||!!this.$scopedSlots.description)},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!this.hideOptions&&(!!this.$slots.options||!!this.$scopedSlots.options)},showActions(){return!this.hideActions&&(!!this.$slots.actions||!!this.$scopedSlots.actions)},showSubmitButton(){return!!this.onSubmit},showCancelButton(){return this.cancelable&&!this.cornerCancel},showForm(){return this.showContent||this.showCardActions},showCardActions(){return this.showOptions||this.showSubmitButton||this.showCancelButton||this.showActions}}}),bs=fs,ys=(a("0251"),a("1117")),vs=Object(f["a"])(bs,hs,gs,!1,null,null,null),ws=vs.exports;k()(vs,"components",{QCard:v["a"],QCardSection:re["a"],QForm:ys["a"],QCardActions:ba["a"]});var ks=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{"no-shake":"",value:e.value,persistent:"","content-class":{"background-blur":e.blur,"background-mask":e.mask,"fullscreen-dialog":!0}},on:{input:function(t){return e.$emit("input",t)}}},[e.single?a("amplify-card",e._b({attrs:{"hide-description":!e.showDescription,"hide-options":!e.showOptions,"hide-actions":!e.showActions},scopedSlots:e._u([{key:"description",fn:function(t){return[e.showDescription?e._t("description",null,null,t):e._e()]}},{key:"default",fn:function(t){return[e.showContent?e._t("default",null,null,t):e._e()]}},{key:"options",fn:function(t){return[e.showOptions?e._t("options",null,null,t):e._e()]}},{key:"actions",fn:function(t){return[e.showActions?e._t("actions",null,null,t):e._e()]}}],null,!0)},"amplify-card",e.cardProps,!1)):[e._t("default",null,{cardProps:e.cardProps,handleSubmit:e.handleSubmit,handleCancel:e.handleCancel})]],2)},Ss=[],Cs={name:"AmplifyDialog",props:{value:Boolean,blur:Boolean,mask:Boolean,single:{type:Boolean,default:!0},title:{type:String,default:void 0},minWidth:{type:String,default:void 0},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},onClear:{type:Function,default:void 0}},data(){return{disable:!1,close:!1}},watch:{value(e){!e&&this.onClear&&setTimeout((()=>this.onClear()),1e3)}},computed:{cardProps(){const e={};return e.title=this.title,e.minWidth=this.minWidth,e.maxWidth=this.maxWidth,e.cancelable=this.cancelable,e.cornerCancel=this.cornerCancel,e.submitLabel=this.submitLabel,e.cancelLabel=this.cancelLabel,e.timeout=this.timeout,this.onSubmit&&(e.onSubmit=()=>this.handleSubmit(this.onSubmit)),this.cancelable&&(e.onCancel=()=>this.handleCancel(this.onCancel)),e.afterSubmit=()=>this.handleAfterSubmit(),e},showDescription(){return!!this.$slots.description||!!this.$scopedSlots.description},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!!this.$slots.options||!!this.$scopedSlots.options},showActions(){return!!this.$slots.actions||!!this.$scopedSlots.actions}},methods:{async handleSubmit(e){e?this.close=await e():this.closeDialog()},async handleCancel(e){if(e){const t=await e();t&&this.closeDialog()}else this.closeDialog()},handleAfterSubmit(){this.close&&(this.close=!1,this.closeDialog())},closeDialog(){this.$emit("input",!1)}}},xs=Cs,$s=(a("4d89"),Object(f["a"])(xs,ks,Ss,!1,null,null,null)),Ts=$s.exports;k()($s,"components",{QDialog:y["a"]});var zs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"amplify-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,"use-input":Boolean(e.filter),"input-debounce":"0","popup-content-style":e.popupWidth,"input-style":e.enableFilter?"":"display:none","virtual-scroll-item-size":"48",hint:e.hint},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n "+e._s(e.$t("no_available_result"))+"\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}},e.hint?{key:"hint",fn:function(){return[e._v(e._s(e.hint))]},proxy:!0}:null],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},Ps=[],As={name:"AmplifySelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String],itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0},hint:String},data(){return{enableFilter:!1,filterValue:"",inputWidth:"280"}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid amplify-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e},popupWidth(){return this.inputWidth>292?`width: ${1*this.inputWidth+50}px`:`width: ${this.inputWidth-4}px`}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0;const e=this.$el.firstChild;e.style.width="84.36px",this.$emit("popup-show"),this.$nextTick((()=>{this.$refs.select&&this.$refs.select.showPopup()}))},onPopupHide(){this.enableFilter=!1,this.filterValue="";const e=this.$el.nextSibling,t=this.$el.firstChild;e&&(e.style.display=""),t&&(t.style.width="84.36px"),this.$emit("popup-hide")},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))},getInputWidth(){this.$nextTick((()=>{const e=this.$el.firstChild.offsetParent.childNodes[0];this.inputWidth=e.clientWidth}))}},updated(){this.getInputWidth()}},Is=As,qs=(a("bbb8"),Object(f["a"])(Is,zs,Ps,!1,null,null,null)),Os=qs.exports;k()(qs,"components",{QSelect:ze["a"],QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QInput:K["a"],QItemLabel:Ie["a"],QField:qe["a"]});var Es=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-input-wrapper"},[e.isTel&&e.phoneNumberPrefixValue?a("amplify-select",{ref:"select",staticClass:"amplify-input-select",class:{focus:e.focusSelect},attrs:{options:e.phoneNumberPrefixOptions,selectLabelFn:function(){return""},readonly:e.readonly,autofocus:!1,align:e.$el,filter:e.phoneNumberPrefixFilter},on:{"popup-show":function(t){return e.selectFocus(!0)},"popup-hide":function(t){return e.selectFocus(!1)}},model:{value:e.phoneNumberPrefixValue,callback:function(t){e.phoneNumberPrefixValue=t},expression:"phoneNumberPrefixValue"}}):e._e(),a("q-input",{directives:[{name:"show",rawName:"v-show",value:!e.focusSelect,expression:"!focusSelect"}],ref:"input",staticClass:"amplify-input",class:{"amplify-tel-input":e.isTel},attrs:{"lazy-rules":"ondemand",spellcheck:"false",dense:"",outlined:"",readonly:e.readonly,autofocus:e.autofocus,value:e.isTel?e.value[1]:e.value,type:"password"===e.type?e.hidePassword?"password":"text":e.type,label:!e.isTel&&e.label?e.label:void 0,rules:e.rulesCpt,min:e.rangeCpt[0],max:e.rangeCpt[1],"error-message":e.errorMessage,error:Boolean(e.errorMessage),hint:e.hint},on:{input:e.handleInput,keydown:function(t){return t.type.indexOf("key")||8===t.keyCode?e.onPressBack.apply(null,arguments):null},focus:function(t){return e.inputFocus(!0)},blur:function(t){return e.inputFocus(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"prepend",fn:function(){return[e.isTel&&e.value[0]&&e.prefixStart?a("div",{staticClass:"amplify-input-phone-number-prefix"},[e._v("\n +"+e._s(e.value[0])+"\n ")]):e._e(),e.icon&&!e.isTel?a("q-icon",{attrs:{name:e.icon}}):e._e()]},proxy:!0},"password"===e.type?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}:null],null,!0)})],1)},Ds=[],js=a("c228");const Ns=(()=>{const e={};Object.values(js["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})();var Ls={name:"AmplifyInput",props:{value:[String,Array],readonly:Boolean,autofocus:Boolean,required:{type:[Boolean,String],default:!1},type:{type:String,default:"text"},label:String,icon:String,rules:Array,range:Array,mask:String,errorMessage:String,hint:String},data(){return{focusSelect:!1,hidePassword:!0,prefixStart:!0}},computed:{isTel(){return"tel"===this.type},rulesCpt(){const e=e=>this.requiredRule(e),t=this.rules?this.rules.map((e=>t=>{const a=e(t);return"string"===typeof a?this.$t(a):"object"===typeof a&&Array.isArray(a)?this.$t(...a):a})):null,a=[...this.required?[e]:[],...t||[]];return this.isTel&&a.push((e=>this.phoneNumberRule(e))),a},rangeCpt(){const e={date:["1900-01-01","2099-12-31"]},t=e[this.type]||[void 0,void 0];return this.range&&([void 0,null].includes(this.range[0])||(t[0]=this.range[0]),[void 0,null].includes(this.range[1])||(t[1]=this.range[1])),t},phoneNumberNotSay(){if(this.isTel)return{value:"notSay",label:"notSay",emoji:"🇼🇫"}},phoneNumberPrefixOptions(){if(!this.isTel)return;const e=Object.values(Ns);return e.unshift(this.phoneNumberNotSay),e},phoneNumberPrefixValue:{get(){if(!this.isTel)return;const e=this.value[0],t=this.value[2];return e&&t?`${e}-${t}`:this.phoneNumberNotSay.value},set(e){if(this.isTel)if(e&&e!==this.phoneNumberNotSay.value){const{prefixCode:t,countryCode:a}=Ns[e];let n=this.value[1];n.startsWith("+")&&(n=n.substr(1)),n.startsWith("00")&&(n=n.substr(2)),this.$emit("input",[t,n,a]),localStorage.setItem("def_tel_prefix",`${a}-${t}`)}else this.$emit("input",["",this.value[1],""])}}},methods:{selectFocus(e){this.focusSelect=e},inputFocus(e){var t,a,n,o,i,r;(console.log("On focus input",e),e)?null===(t=this.$refs.select)||void 0===t||null===(a=t.$el)||void 0===a||null===(n=a.classList)||void 0===n||n.add("q-field--highlighted","q-field--focus"):null===(o=this.$refs.select)||void 0===o||null===(i=o.$el)||void 0===i||null===(r=i.classList)||void 0===r||r.remove("q-field--highlighted","q-field--focus")},handleInput(e){this.$refs.input.resetValidation(),this.isTel?this.handlePhoneNumberInput(e):this.$emit("input",e)},requiredRule(e){if(this.isTel)return this.phoneNumberRequiredRule(e);if(e&&e.length>0)return!0;const t="string"===typeof this.required?this.required:this.label;return`${t}${this.$t("account_is_required")}`},phoneNumberRequiredRule(e){const t=e[1];if(t)return!0;{const e="string"===typeof this.required?this.required:this.label;return`${e}${this.$t("account_is_required")}`}},phoneNumberRule(e){const t=e[1];return this.phoneNumberPrefixValue===this.phoneNumberNotSay.value&&t?this.$t("account_error_no_cell_phone_prefix"):(this.phoneNumberPrefixValue===this.phoneNumberNotSay.value||t||(this.phoneNumberPrefixValue=this.phoneNumberNotSay.value),!0)},phoneNumberPrefixFilter(e,t){const a=["normalizedName","nativeName","value"];return a.find((a=>!!t[a]&&t[a].toLowerCase().indexOf(e.toLowerCase())>=0))},handlePhoneNumberInput(e){const t=()=>{if(!e)return this.phoneNumberNotSay;const t=e.startsWith("+"),a=e.startsWith("00"),n=t?"+":a?"00":Array.isArray(this.value)&&this.value[0]?"__":"";return this.phoneNumberPrefixOptions.find((({prefixCode:t})=>e.startsWith(`${n}${t}`)))||null},a=t();if(void 0===a||null===a)this.$emit("input",[this.value[0],e,this.value[2]]);else if(a===this.phoneNumberNotSay)this.$emit("input",[this.value[0],e,this.value[2]]);else{const{prefixCode:t,countryCode:n}=Ns[a.value];let o=e;if(o.startsWith("+")&&(o=o.substr(1)),o.startsWith("00")&&(o=o.substr(2)),o.startsWith(t)&&(o=o.substr(t.length)),this.$emit("input",[t,o,n]),!t||!n)return;localStorage.setItem("def_tel_prefix",`${n}-${t}`)}},onPressBack(e){const t=e.target;if(console.log("press back",JSON.stringify(this.value),t.selectionStart,t.selectionEnd),"email"===t.type)return console.log("Default behavior for email");const a=t.selectionDirection,n=t.selectionStart,o=t.selectionEnd,i=n===o?n-1:n,r=i<0?0:i;if(this.$nextTick((async()=>{await this.$nextTick();try{t.setSelectionRange(r,r,a)}catch(e){console.log(e.message)}})),e.preventDefault(),e.stopPropagation(),this.isTel)this.value[1]=this.value[1].substring(0,n===o?n-1:n)+this.value[1].substring(o),this.handlePhoneNumberInput(this.value[1]);else{const e=this.value.substring(0,n===o?n-1:n)+this.value.substring(o);this.$emit("input",e)}0===n&&0===o&&this.isTel&&this.$emit("onPressBack"),this.isTel&&0===o&&0===this.value[1].length&&this.$emit("input",["","",""])}},updated(){this.prefixStart=!0}},Us=Ls,Rs=(a("2214"),Object(f["a"])(Us,Es,Ds,!1,null,null,null)),Ms=Rs.exports;function Fs(e){e.component("AmplifyButton",ms),e.component("AmplifyCard",ws),e.component("AmplifyDialog",Ts),e.component("AmplifySelect",Os),e.component("AmplifyInput",Ms)}k()(Rs,"components",{QInput:K["a"],QIcon:Y["a"],QField:qe["a"]});var Bs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-dialog-groups"},[a("SignedOutDialog",{ref:"signedOut"})],1)},Ws=[],Hs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-signed-out-dialog"},[a("amplify-dialog",{attrs:{single:!1,cornerCancel:!0,"min-width":"320px","max-width":"320px","on-clear":e.onClear,blur:!0,mask:!1},scopedSlots:e._u([{key:"default",fn:function(t){return["test"===e.currentCard?a("OAuth",e._g({ref:"test",attrs:{scope:t}},e.cardEvents)):"oauth"===e.currentCard?a("OAuth",e._g({ref:"oauth",attrs:{scope:t}},e.cardEvents)):"disableMFA"===e.currentCard?a("DisableMFA",e._g({attrs:{scope:t}},e.cardEvents)):"signedOut"===e.$store.state.account.authState?a("SignIn",e._g({attrs:{scope:t}},e.cardEvents)):"forgotPassword"===e.$store.state.account.authState?a("ForgotPassword",e._g({attrs:{scope:t}},e.cardEvents)):"signUp"===e.$store.state.account.authState?a("SignUp",e._g({attrs:{scope:t}},e.cardEvents)):"signInConfirm"===e.$store.state.account.authState?a("SignInConfirm",e._g({attrs:{scope:t}},e.cardEvents)):e._e()]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.value,expression:"value"}],staticClass:"signed-out-actions rounded-borders bg-general text-general row items-center q-py-xs q-px-sm shadow-1"},[e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:e.handleDevClick}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"q-px-md q-py-sm flex items-center"},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",unelevated:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)],1)},Vs=[],Qs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleSignIn)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_in_your_account"),"submit-label":e.$t("account_sign_in"),timeout:e.timeout,"no-primary":"",cancelable:"PHONE_NUMBER"===this.form.currentMode},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,ref:"sign",refInFor:!0,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:function(t){return e.signInChangeRules()},onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n||e.oauthLoading},on:{click:function(t){!n&&!e.oauthLoading&&e.handleResetPassword()}}},[e._v(e._s(e.$t("account_reset_password")))])])]}},{key:"actions",fn:function(t){var n=t.disable;return[a("amplify-button",{staticStyle:{"margin-top":"8px"},attrs:{immediate:"",primary:"",value:n,"on-click":function(){return e.$store.commit("ACCOUNT_UPDATE_STATE","signUp")},label:e.$t("account_sign_up")}}),a("ABOAuthEntry",{directives:[{name:"show",rawName:"v-show",value:e.d$cfg.oauth.enable&&!e.isMas,expression:"d$cfg.oauth.enable && !isMas"}]})]}}])},"amplify-card",e.scope.cardProps,!1))},Gs=[],Ks=a("7ca3"),Ys=a.n(Ks),Js=a("c581"),Zs=a("af04"),Xs=a("9efe"),el=a("072b");class tl extends Js["b"]{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],SINGIN:[["86","","CN"],{type:"tel",label:"account_username_email_phone",rules:[el["e"].bind(e)]}]}}constructor(e){super(...tl.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=tl.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class al extends Js["a"]{constructor(e,t){if(super({username:new tl(e),password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password"})}),this.assumeData=al.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=js["b"][t])&&void 0!==a?a:js["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(al.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=al.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a]),this.items.password.clear()}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const e=this.formData.username;this.assume=!1,this.items.username.setMode("GENERAL",e),this.items.password.clear()}get currentMode(){return this.items.username.currentMode}}Ys()(al,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}});var nl={name:"SignIn",props:{scope:Object},data(){return{isMas:Ta.a.mas(),timeout:{duration:6e4,onTimeout:this.handleTimeout},oauthStatus:null,form:new al(this,this.$q.lang.getLocale().toLowerCase()),oauthProviders:["Facebook","Google","Github"],signUpMode:"email",prefix:"",countryCode:"",checkPrefix:[[],[]]}},computed:{oauthLoading(){return null!==this.oauthStatus}},methods:{handleResetPassword(){this.$store.commit("ACCOUNT_UPDATE_STATE","forgotPassword")},async handleSignIn(){try{const e=this.form.formData,t=e=>e.indexOf(" ")<0;if(!t(e.username))throw new Error("Incorrect username or password.");return await this.$store.dispatch("ACCOUNT_SIGN_IN",e),Xs["a"].record.call(this,e.password),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),Zs["a"].showPositive("signed_in"),!0}catch(t){const a=t.message;if("SMS_MFA"===a||"SOFTWARE_TOKEN_MFA"===a)this.$store.commit("ACCOUNT_UPDATE_STATE","signInConfirm");else if("User does not exist."===a)Zs["a"].showNegative("Incorrect username or password."),this.form.assume&&this.form.turnToPhoneNumberMode();else{var e;t.message||(console.log("=====================> error SignIn::handleSignIn <====================="),console.log(t),console.log("=====================> error SignIn::handleSignIn <=====================")),Zs["a"].showNegative(null!==(e=t.message)&&void 0!==e?e:t)}}},async handleCancel(){if("PHONE_NUMBER"!==this.form.currentMode)return!0;this.form.backToGeneralMode()},handleOAuthSignIn(e){this.$emit("setCurrentCard","oauth",(t=>t.setStatus("pending",e)))},handleTimeout(){Zs["a"].showNegative("Network error")},signInChangeRules(){if("email"===this.signUpMode&&(this.vm=this.form.items.username.model?this.form.items.username.model:"",Array.isArray(this.vm)&&(this.vm=this.vm[1]||""),this.vm&&/^[0-9]*$/g.test(this.vm)&&(console.log("toPhone",this.vm),this.toPhone()),this.vm.startsWith("+"))){const e=this.vm.substr(1),t=this.checkPrefix[0].indexOf(e),a=this.vm.length;if(-1!==t&&(this.form.items.username.model="1"===e?[e,"","US"]:[e,"",this.checkPrefix[1][t]],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${e}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"),a>4&&/^[0-9]*$/g.test(e))for(const[n,o]of this.checkPrefix[0].entries())if(e.startsWith(o)){const t=o.length,a=e.substr(t);this.form.items.username.model="1"!==o?[o,a,this.checkPrefix[1][n]]:[o,a,"US"],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${o}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber";break}}if("phoneNumber"===this.signUpMode){this.vm=this.form.items.username.model[1]?this.form.items.username.model[1]:"";const e=this.form.items.username.model[2];-1===this.vm.indexOf("@")&&e&&!this.vm.startsWith("+")||(console.log("country",e),this.toEmail()),/^[0-9]*$/g.test(this.vm)||(console.log("not vm",JSON.stringify(this.vm)),this.toEmail())}},toPhone(){console.log("fn:toPhone"),this.form.items.username.model=[this.prefix,this.vm,this.countryCode],this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"},toEmail(){console.log("fn:toEmail",this.vm,typeof this.vm),this.$nextTick((()=>{this.form.items.username.attrs.type="text",this.form.items.username.model=this.vm,console.log(this.form.items.username.model),this.signUpMode="email"}))},defPrefix(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.prefix=t[1],this.countryCode=t[0]}else{const e=(this.$i18n.locale||navigator.language||"").toLowerCase(),t=Object.values(js["a"]).find((t=>t.languages.includes(e)));if(t&&t.phones&&t.phones.length){console.log("[Init Prefix] Init with phone",t.phones[0]);const e=t.phones[0].split("-");this.prefix=e[0],this.countryCode=e[1]}else console.log("[Init Prefix] Cannot find language config for",e,t),this.prefix="1",this.countryCode="US"}},prefixArr(){const e=[];Object.values(js["a"]).forEach((t=>{const a=t.phones[0].split("-");e.push(a)})),e.sort(((e,t)=>{const a=parseInt(e[0]),n=parseInt(t[0]);return a-n})),e.forEach((e=>{this.checkPrefix[0].push(e[0]),this.checkPrefix[1].push(e[1])}))},onPressBack(){this.toEmail(),console.log(this.form)},getSelection(){const e=this.$refs.sign[0];return e.$el.firstChild.clientWidth}},mounted(){this.defPrefix(),this.prefixArr()}},ol=nl,il=(a("fc65"),Object(f["a"])(ol,Qs,Gs,!1,null,"6e4f640d",null)),rl=il.exports,sl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleNecessary,e.handleOptional][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_up_your_account")+" ("+(e.progress+1)+"/2)","submit-label":e.$t(["account_next","account_finish"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_fill_required_fields"),e.description][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable,o=t.setDisable;return[0===e.progress?[a("div",{staticClass:"column q-col-gutter-xs"},[e._l({email:e.necessaryEmailForm,phoneNumber:e.necessaryPhoneNumberForm}[e.signUpMode].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),e.usePhoneNumber?a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t({phoneNumber:"account_no_phone_number",email:"account_no_email"}[e.signUpMode]))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])]):e._e()],2)]:1===e.progress?[e._l(e.verificationForm.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("div",[a("amplify-button",{staticClass:"q-mb-sm q-mt-xs",attrs:{value:n||e.resendTimer>0,"min-width":"100%",label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleResend},on:{input:o}}),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t("account_no_verification_code"))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])])],1),a("div",[e._v("\n "+e._s(e.$t("account_fill_optional_fields"))+"\n "),e._l(e.optionsForm.items,(function(t,o){return["input"===t.type?a("amplify-input",e._b({key:o,staticClass:"q-mb-sm",attrs:{label:e.$t(t.bound.label),readonly:n,hint:"("+e.$t("optional")+")"},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1)):"select"===t.type?a("amplify-select",e._b({key:o,staticClass:"q-mb-sm",attrs:{readonly:n,hint:"("+e.$t("optional")+")",align:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-select",t.bound,!1)):e._e()]}))],2)]:e._e()]}},0===e.progress?{key:"options",fn:function(t){var n=t.disable;return[a("div",{staticClass:"col-grow q-mb-sm row items-center",staticStyle:{"margin-top":"-8px"}},[a("q-checkbox",{attrs:{disable:n,label:e.$t("account_i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"underscore select-none cursor-pointer text-primary",on:{click:function(){return n||e.handleShowLicense()}}},[e._v(e._s(e.$t("account_license_terms"))+"\n ")])],1)]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},ll=[],cl=a("9f21");function dl(e){const t=e.appVersion,a=e.userAgent;let n="unknown",o="";const i=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var r in i){var s=i[r];if(s.r.test(a)){n=s.s;break}}switch(/Windows/.test(n)&&(o=/Windows (.*)/.exec(n)[1],n="Windows"),n){case"Mac OS":case"Mac OS X":case"Android":o=/([\\.\\_\d]+)/.exec(a.substring(/(Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/.exec(a).index||12))[1];break;case"iOS":o=/OS (\d+)_(\d+)_?(\d+)?/.exec(t),o=o[1]+"."+o[2]+"."+(0|o[3]);break}return n+(o?" "+o:"")}class ul extends Js["a"]{constructor(e){super({email:new Js["b"]("",{type:"email",icon:"email",label:"account_email",rules:[el["a"].bind(e)]}),password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[el["d"].bind(e)]})})}}class _l extends Js["a"]{constructor(e){super({phoneNumber:new Js["b"](["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[el["e"].bind(e)]}),password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[el["d"].bind(e)]})})}setDefault(e){var t;const a=null!==(t=js["b"][e])&&void 0!==t?t:js["b"]["en-us"],[n,o]=a.phones[0].split("-"),i=this.items.phoneNumber;return i.updateModel([n,i.value[1],o]),this}}class pl extends Js["a"]{constructor(e){const t=[{value:"notSay",emoji:"🇼🇫",label:e.$t("account_not_say")},...Js["c"].LOCALE_OPTIONS],a=(e,t)=>!!t.normalizedName&&(t.normalizedName.toLowerCase().indexOf(e.toLowerCase())>=0||t.label.toLowerCase().indexOf(e.toLowerCase())>=0);super({nickname:new Js["b"]("",{type:"text",icon:"emoji_emotions",label:"account_nickname",rules:[el["c"].bind(e)]}),gender:new Js["c"]("notSay",[{value:"notSay",icon:"elevator",label:e.$t("account_not_say")},{value:"female",icon:"female",label:e.$t("account_female")},{value:"male",icon:"male",label:e.$t("account_male")}]),birthday:new Js["b"]("",{type:"date",icon:"cake"}),locale:new Js["c"]("notSay",t,{filter:a})})}}var ml={name:"SignUp",mixins:[cl["a"]],props:{scope:Object},data(){var e,t;return{resendInterval:null,resendTimer:0,progress:0,necessaryEmailForm:new ul(this),necessaryPhoneNumberForm:new _l(this).setDefault(this.$q.lang.getLocale().toLowerCase()),signUpMode:null!==(e=this.d$cfg)&&void 0!==e&&null!==(t=e.account)&&void 0!==t&&t.phone_number?"phoneNumber":"email",invitationForm:new Js["a"]({invitationCode:new Js["b"]("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[el["b"].bind(this)]})}),accept:!1,verificationForm:new Js["a"]({code:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})}),optionsForm:new pl(this),signUpIpAddress:"",defPrefix:[]}},computed:{usePhoneNumber(){var e,t;return(null===(e=this.d$cfg)||void 0===e||null===(t=e.account)||void 0===t?void 0:t.phone_number)||!1},description(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},watch:{usePhoneNumber(e,t){console.log("@@@",e,t),e!==t&&(this.signUpMode=e?"phoneNumber":"email")},signUpMode(e){const t=()=>{this.necessaryPhoneNumberForm.clearData().setDefault(this.$q.lang.getLocale().toLowerCase())},a=()=>{this.necessaryEmailForm.clearData()};({email:t,phoneNumber:a})[e]()},progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},methods:{handleCancel(){this.progress=-1},async handleNecessary(){if(this.accept)try{if(Object(xa["isElectron"])()){const e=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("SignUp - Failed to get geo for",e.message)}));this.signUpIpAddress=e||""}const e=this.__getNecessaryPayload(),t=(()=>{const a=Object(Xs["s"])();if(e.email){const o=n(3e4),i=a(e.email);return Promise.race([i,o]).catch((e=>{console.log("sign up error >",e),Zs["a"].showNegative(e.message)})).finally((()=>{t.off(),o.cancel()})),i}{const e=Promise.resolve();return e.off=()=>{},e}function n(e){let t;const a=new Promise((a=>{t=()=>{clearTimeout(n),a(!1)};const n=setTimeout((()=>{a(!0)}),e)}));return a.cancel=t,a}})();await this.$store.dispatch("ACCOUNT_SIGN_UP_NECESSARY",e).catch((e=>{throw t.off(),e})),this.resendTimer=60,this.progress+=1}catch(e){Zs["a"].showNegative(e.message)}else Zs["a"].showNegative("you_need_to_accept_license_terms")},async handleOptional(){try{const{code:e}=this.verificationForm.formData;await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",{code:e,optAttrs:{app_client:JSON.stringify({name:F.a.name,version:Object(Aa["a"])("version")}),os:dl(navigator)||"unknown",...this.optionsForm.formData}}),await new Promise((e=>setTimeout(e,3e3))),Zs["a"].showPositive("signed_up")}catch(e){return Zs["a"].showNegative(e.message),!1}try{const e=this.$store.state.account.verification.username,t=this.$store.state.account.verification.password;return await this.$store.dispatch("ACCOUNT_SIGN_IN",{username:e,password:t}),this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),!0}catch(e){this.$emit("setCurrentCard","signedOut"),Zs["a"].showNegative(e.message)}},async handleResend(){try{await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND"),Zs["a"].showPositive("code_has_been_resent")}catch(e){Zs["a"].showNegative(e.message)}finally{this.resendTimer=60}},handleSwitchMode(){1===this.progress&&(this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.progress=0),this.signUpMode="email"===this.signUpMode?"phoneNumber":"email"},handleShowLicense(){this.showLicenseTermsNotice(!1)},async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},__getNecessaryPayload(){const e={email:this.necessaryEmailForm,phoneNumber:this.necessaryPhoneNumberForm}[this.signUpMode],t=e.formData,{invitationCode:a}=this.invitationForm.formData,{email:n,phoneNumber:o,password:i}=t,r={};return"email"===this.signUpMode?r.email=n:"phoneNumber"===this.signUpMode&&(r.phoneNumber="+"+o[0]+o[1],r.phoneNumberCountryCode=o[2]),r.password=i,r.invitationCode=a,r.appClient=JSON.stringify({name:F.a.name,version:Object(Aa["a"])("version")}),r.signUpIpAddress=this.signUpIpAddress,r.os=dl(navigator)||"unknown",r},onPressBack(e){if(!e)return;const{attrs:t,model:a}=e;t&&"tel"===t.type&&Array.isArray(a)&&(console.log("isTel",a),this.$set(a,0,""),this.$set(a,2,""))}},mounted(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.defPrefix=[t[1],"",t[0]],this.necessaryPhoneNumberForm.items.phoneNumber.model=[...this.defPrefix]}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}},hl=ml,gl=(a("1463"),a("7498")),fl=Object(f["a"])(hl,sl,ll,!1,null,"79ec585c",null),bl=fl.exports;k()(fl,"components",{QCheckbox:gl["a"]});var yl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSearch,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t(["account_find_your_account","account_reset_your_password"][e.progress]),"submit-label":e.$t(["account_search","account_submit"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_enter_your_username"),e.verifyDescription][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l([e.searchForm,e.submitForm][e.progress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:e.onInput,onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1)]}},1===e.progress?{key:"actions",fn:function(t){var n=t.disable,o=t.setDisable;return[a("amplify-button",{attrs:{value:n||e.resendTimer>0,label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleSearch},on:{input:o}})]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},vl=[],wl=a("4027"),kl=wl["a"],Sl=Object(f["a"])(kl,yl,vl,!1,null,null,null),Cl=Sl.exports,xl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleVerify)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_verify_your_identity"),"submit-label":e.$t("account_next"),timeout:e.timeout},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s(e.verifyDescription)+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_can_not_mfa"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("account_disable_mfa")))])])]}}])},"amplify-card",e.scope.cardProps,!1))},$l=[],Tl={name:"SignInConfirm",props:{scope:Object},data(){return{timeout:{duration:6e4,onTimeout:this.handleTimeout},form:new Js["a"]({code:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})})}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`,software_token:`${this.$t("account_software_token_tip")}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{async handleVerify(){try{const{code:e}=this.form.formData;return await this.$store.dispatch("ACCOUNT_MFA_SUBMIT",e),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),Zs["a"].showPositive("signed_in"),!0}catch(e){Zs["a"].showNegative(e.message),e.message.startsWith("Invalid session for the user")&&this.handleCancel()}},handleDisableMFA(){this.$emit("setCurrentCard","disableMFA")},handleTimeout(){Zs["a"].showNegative("Network Error")},handleCancel(){this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")}}},zl=Tl,Pl=(a("2e34"),Object(f["a"])(zl,xl,$l,!1,null,"654a46b2",null)),Al=Pl.exports,Il=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSend,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_disable_mfa"),"submit-label":e.$t("account_next")},scopedSlots:e._u([{key:"description",fn:function(){return[0===e.progress?a("div",[e._v(e._s(e.$t("account_tip_confirm_verify_email_phone")))]):1===e.progress&&e.verificationData?a("div",[e._v(e._s(e.$t("account_email_phone_sent_tip"))+"\n "),a("div",[e._v(e._s(e.verificationData.email.destination))]),a("div",[e._v(e._s(e.verificationData.phoneNumber.destination))])]):e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[1===e.progress?e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},ql=[],Ol={name:"DisableMFA",props:{scope:Object},data(){return{progress:0,verificationData:null,form:new Js["a"]({emailCode:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]}),phoneCode:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})})}},watch:{progress(e){e<0&&(this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null))}},methods:{async handleSend(){try{const{user:{username:e}}=this.$store.state.account.verification,t=`${this.$store.getters.settings.language}:D`;this.verificationData=await Object(Xs["j"])(e,{msgLocale:t}),this.progress+=1}catch(e){Zs["a"].showNegative(e.message)}},async handleSubmit(){try{const{user:{username:e}}=this.$store.state.account.verification,{emailCode:t,phoneCode:a}=this.form.formData;await Object(Xs["w"])(e,t,a),this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),Zs["a"].showPositive("disabled_mfa"),this.progress=-1}catch(e){Zs["a"].showNegative(e.message)}},handleCancel(){this.progress=-1}}},El=Ol,Dl=Object(f["a"])(El,Il,ql,!1,null,null,null),jl=Dl.exports,Nl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"corner-cancel":!1,"cancel-label":e.$t("account_cancel"),"submit-label":e.$t(["account_next","account_finish"][e.signUpProgress]),"on-submit":"loading"===e.currentTemplate?void 0:"signUp"===e.currentTemplate?function(){return e.scope.handleSubmit([e.handleSignUp,e.handleVerify][e.signUpProgress])}:void e.currentTemplate,"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_oauth_sign_in_with",{provider:e.provider})},scopedSlots:e._u([{key:"description",fn:function(){return["loading"===e.currentTemplate?[a("div",{staticClass:"text-center text-weight-bold text-subtitle1 q-mt-md"},[a("q-spinner",{staticClass:"q-mr-xs q-mb-xs",attrs:{size:"1.25em"}}),a("span",{staticClass:"q-pr-lg"},[e._v(e._s(e.$t("account_loading")))])],1)]:"signUp"===e.currentTemplate?[e.data?a("div",[0===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_tip_oath_sign_up",{provider:e.data.providerName,email:e.data.providerInfo.email}))+"\n ")]):1===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_email_sent_tip"))+e._s(e.data.providerInfo.email)+"\n ")]):e._e()]):e._e()]:e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return["signUp"===e.currentTemplate?e._l([e.signUpForm,e.verificationForm][e.signUpProgress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},Ll=[],Ul=a("e74d"),Rl={name:"OAuth",props:{scope:Object},data(){return{provider:null,status:null,data:null,signUpProgress:0,signUpUsername:null,signUpForm:new Js["a"]({password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[el["d"].bind(this)]}),invitationCode:new Js["b"]("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[el["b"].bind(this)]})}),verificationForm:new Js["a"]({code:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})})}},computed:{currentTemplate(){return"confirm"===this.status?"confirm":"signUp"===this.status?"signUp":["pending","requesting","success"].includes(this.status)?"loading":void 0}},watch:{status(e){if(!e)return;const t={pending:()=>this.handlePending(),requesting:()=>this.handleRequesting(),success:()=>this.handleSuccess(),signUp:()=>{},confirm:()=>{}};t[e]&&t[e]()}},methods:{async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},setStatus(e,t,a){t&&(this.provider=t),a&&(this.data=a),this.status=e},handleCancel(){this.provider=null,this.status=null,this.data=null,this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null)},async handleSuccess(){await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.provider=null,this.status=null,this.data=null,"signedIn"===this.$store.state.account.authState?(this.$emit("closeDialog"),Zs["a"].showPositive("signed_in")):(this.$emit("setCurrentCard",null),Zs["a"].showNegative("sign_in_failed"))},handlePending(){Ul["a"].launchOAuth("signedOut",{provider:this.provider})},handleRequesting(){},async handleSignUp(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId}),email:this.data.providerInfo.email},t=await Object(Xs["o"])({...e,...this.signUpForm.formData});this.signUpUsername=t.user.username,this.signUpProgress=1}catch(e){Zs["a"].showNegative(e.message),this.handleCancel()}},async handleVerify(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId})},{code:t}=this.verificationForm.formData;await Object(Xs["c"])(this.signUpUsername,t,{},e),this.setStatus("pending")}catch(e){Zs["a"].showNegative(e.message),this.handleCancel()}},async handleConfirm(){}}},Ml=Rl,Fl=Object(f["a"])(Ml,Nl,Ll,!1,null,"6bc0e027",null),Bl=Fl.exports;k()(Fl,"components",{QSpinner:we["a"]});var Wl=a("d884"),Hl=a("39df"),Vl={name:"SignedOutDialog",components:{OAuth:Bl,DisableMFA:jl,SignInConfirm:Al,SignIn:rl,ForgotPassword:Cl,SignUp:bl,Development:Hl["default"]},data(){return{showDevDialog:!1,currentCard:null,value:!1,languageOptions:Wl["b"]}},computed:{cardEvents(){return{setCurrentCard:this.setCurrentCard,closeDialog:()=>this.value=!1}},_currentCard(){if(this.currentCard)return this.currentCard;const e=["signedOut","forgotPassword","signUp","signInConfirm"];return e.includes(this.$store.state.account.authState)?this.$store.state.account.authState:null},language:{get(){const e=x["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(x["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(xa["isElectron"])())){const{ipcRenderer:e}=a("b052");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}},watch:{_currentCard(e){null===e&&!1!==this.value&&(this.value=!1)}},methods:{showAboutDialog(){xa["Bus"].$emit("CALL_ABOUT")},handleDevClick(){this.showDevDialog=!this.showDevDialog},setCurrentCard(e,t){this.currentCard=e,t&&e&&this.$nextTick((()=>t(this.$refs[e]))),t&&!e&&this.$nextTick((()=>t(null)))},async onClear(){this.currentCard=null,console.log("SignedOut Dialog Close: AuthState =>",this.$store.state.account.authState)},show(e){this.value=e}}},Ql=Vl,Gl=(a("1cda"),a("a829")),Kl=a("719b"),Yl=a("a431"),Jl=Object(f["a"])(Ql,Hs,Vs,!1,null,null,null),Zl=Jl.exports;k()(Jl,"components",{QBtn:le["a"],QTooltip:St["a"],QDialog:y["a"],QSpace:se["a"],QSeparator:ce["a"],QMenu:Gl["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"],QColor:Z["a"]}),k()(Jl,"directives",{Ripple:Kl["a"],ClosePopup:Yl["a"]});const Xl={watch:{"$store.state.account.authState"(e,t){this.$ga.send("auth_state_change",{from:t,to:e}),t?("signedIn"===e||"signedOut"===e&&"signedIn"===t)&&this.$emit("auth_state_changed",e):this.$emit("auth_state_changed",e)}},methods:{addOnAuthStateChangedListener(e,{once:t}={}){const a=(...n)=>{t&&this.$off("auth_state_changed",a),e(...n)};return this.$on("auth_state_changed",a),()=>this.$off("auth_state_changed",a)}}},ec={name:"AmplifyDialogGroups",components:{SignedOutDialog:Zl},mixins:[Xl],mounted(){new URL(location.href).pathname.startsWith("/oauth_redirect")||this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")},methods:{showSignedOut(){this.$refs.signedOut.show(!0)}}};let tc;const ac={install(e,{app:t}){const a="amplify-dialog-groups";if(!document.getElementById(a)){const e=document.createElement("div");e.id=a,document.body.appendChild(e)}const{i18n:n,router:o,store:i}=t;tc=new(e.extend({i18n:n,router:o,store:i,...ec}))({propsData:{}}).$mount("#"+a)},create$amplify(){return{showSignedOutDialog:()=>tc.showSignedOut(),addOnAuthStateChangedListener:(e,t)=>tc.addOnAuthStateChangedListener(e,t)}}};var nc=ec,oc=nc,ic=Object(f["a"])(oc,Bs,Ws,!1,null,null,null);ic.exports;const rc={async install(e,{app:t}){Fs(e);const a=[ac];Promise.all(a.map((a=>a.install(e,{app:t})))),Object.defineProperty(e.prototype,"$amplify",{get(){const e={},t=t=>{for(const[a,n]of Object.entries(t))e[a]=n};return a.forEach((e=>t(e.create$amplify.apply(this)))),e}})}},sc={aws_project_region:"us-east-1",aws_mobile_analytics_app_id:"4f8fe8282ebf40e4a390c2171e3e45df",aws_mobile_analytics_app_region:"us-east-1",aws_appsync_graphqlEndpoint:"https://ye6kerar5bb65jpjrhlum4gu7q.appsync-api.us-east-1.amazonaws.com/graphql",aws_appsync_region:"us-east-1",aws_appsync_authenticationType:"AMAZON_COGNITO_USER_POOLS",aws_appsync_apiKey:"da2-o7saok2xsbby5nqi2womjyd5ie",aws_cloud_logic_custom:[{name:"ABDevRest",endpoint:"https://6xf9ehebfj.execute-api.us-east-1.amazonaws.com/dev",region:"us-east-1"}],aws_cognito_identity_pool_id:"us-east-1:425781a9-0178-4dbd-b103-1d2e5e210d1a",aws_cognito_region:"us-east-1",aws_user_pools_id:"us-east-1_NbEkBdIqw",aws_user_pools_web_client_id:"1o6c32oh82hjqvd8hfora67lap",oauth:{domain:"ab-domain-dev.auth.us-east-1.amazoncognito.com",scope:["phone","email","openid","profile","aws.cognito.signin.user.admin"],redirectSignIn:"http://localhost:8080/",redirectSignOut:"http://localhost:8080/",responseType:"code"},federationTarget:"COGNITO_USER_POOLS",aws_cognito_login_mechanisms:["EMAIL","PREFERRED_USERNAME","PHONE_NUMBER"],aws_cognito_signup_attributes:[],aws_cognito_mfa_configuration:"OFF",aws_cognito_mfa_types:["SMS"],aws_cognito_password_protection_settings:{passwordPolicyMinLength:8,passwordPolicyCharacters:["REQUIRES_NUMBERS"]},aws_cognito_verification_mechanisms:["EMAIL"],aws_cognito_username_attributes:[],aws_cognito_social_providers:[]};var lc=sc,cc=a("3334"),dc=a("0cdb"),uc=a("586d");class _c{constructor(){this.events={}}$on(e,t){return this.events[e]=this.events[e]||[],this.events[e].includes(t)||this.events[e].push(t),()=>this.$off(e,t)}$once(e,t){return t.once=!0,this.$on(e,t)}$off(e,t){if(t){if(!this.events[e])return;if(!this.events[e].includes(t))return;const a=this.events[e].indexOf(t);this.events[e].splice(a,1)}else this.events[e]=[]}async $emit(e,...t){if(!this.events[e])return;const a=[].concat(this.events[e]);let n=0;while(n{const n=o[(t+1)%2],i=[`background-color: ${n.bgc}`,`color: ${n.color}`];return i.push("padding: 2px 12px"),0===t&&i.push("border-top-left-radius: 8px","border-bottom-left-radius: 8px"),t===a.length-1&&i.push("border-top-right-radius: 8px","border-bottom-right-radius: 8px"),i.join("; ")})),r=a.map((e=>`%c${e}`)).join("");console[n](r,...i,...t)},hc={log:{type:"log"},warn:{type:"warn"},error:{type:"error"},red:{styles:[{bgc:"rgb(248,160,160)",color:"black"},{bgc:"rgb(134,12,12)",color:"white"}]},orange:{styles:[{bgc:"rgb(248,191,160)",color:"black"},{bgc:"rgb(175,81,6)",color:"white"}]},green:{styles:[{bgc:"rgb(160,248,161)",color:"black"},{bgc:"rgb(35,154,17)",color:"white"}]},purple:{styles:[{bgc:"rgb(200,184,255)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}]},blue:{styles:[{bgc:"rgb(184,215,255)",color:"black"},{bgc:"rgb(31,107,162)",color:"white"}]},tags:e=>(...t)=>(e.options.tags=e.options.tags||[],e.options.tags.push(...t),gc(e))},gc=e=>new Proxy(e,{get(e,t,a){if("options"===t)return e.options||void 0;if(!Object.keys(hc).includes(t))return;const n=(...e)=>mc(n.options,...e);return n.options={},Object.assign(n.options,JSON.parse(JSON.stringify(e.options||{}))),"function"===typeof hc[t]?hc[t](n):(Object.assign(n.options,hc[t]),gc(n))}}),fc=gc(mc);Object.defineProperties(mc,Object.keys(hc).reduce(((e,t)=>(e[t]={get(){return fc[t]}},e)),{}));var bc=mc;const yc={};class vc{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return yc[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{yc[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),n=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let o;n(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(o||(o={}),o[e]=n)}));const i=La["a"].graphql({query:a,variables:o});return i.name=e,i}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!yc[e])throw new Error("operation not found");return yc[e]}static async execute(e,t){const a=this.__getOperation(e),n=await La["a"].graphql({query:a,variables:t});if(n.errors)throw new Error(n.errors[0].message);return n.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(yc).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class wc extends vc{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"rgb(166,138,250)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)},{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const u=new Error("The number of retries exceeds the maximum"),_=e=>new Promise((t=>setTimeout(t,e))),p=async e=>{if(c=!0,i>0&&d>i)return console.warn(u),void o(["GQL","Websocket"],"failed to reconnect",u);const t=Math.min(r,1e3*Math.pow(2,d));o(["GQL","Websocket"],"connect close: ",`waiting for reconnect (${t}ms)`),await _(t),c?(d+=1,o(["GQL","Websocket"],`Attempt to reconnect (${d})`),await e(),d=0,o(["GQL","Websocket"],"reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},m=async()=>{const a=(e,t)=>{const a=["AppSync Realtime subscription init error: No current user"],n=["Connection closed","Timeout disconnect"];e.some((e=>a.includes(e.message)))?o(["GQL","Websocket"],"Skip",e):(e.some((e=>n.includes(e.message)))?o(["GQL","Websocket"],"Connect Error"):o(["GQL","Websocket"],"Connect Error: 179",e),p(m))};try{d>=0&&s&&await s();const n=wc.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await p(m)}};await m()}}class kc{static createSyncDataSubscriber(e,t,a,n=console.error){return new kc(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await wc.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class Sc{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=wc.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=kc.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}const Cc=new Sc,xc=new Sc;var $c={config({queries:e,mutations:t,subscriptions:a}){wc.appendOperations(e),wc.appendOperations(t),wc.appendOperations(a)},enableUserListener:async e=>await Cc.enable(e),disableUserListener:()=>Cc.disable(),addUserListener:(e,t,a)=>Cc.addListener(e,t,a),removeUserListener:(e,t)=>Cc.removeListener(e,t),enablePublicListener:async()=>await xc.enable("*"),disablePublicListener:()=>xc.disable(),addPublicListener:(e,t,a)=>xc.addListener(e,t,a),removePublicListener:(e,t)=>xc.removeListener(e,t)};class Tc{constructor(e){this.apiName=e}async __call__(e,t,a){const n=await La["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(n.stack){const e=new Error(n.message);throw e.name=n.name,e.stack=n.stack,e}return n}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await Ul["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}get endpoint(){return La["a"]._options.aws_cloud_logic_custom.find((e=>e.name===this.apiName)).endpoint}}const zc=new Tc("ABDevRest");var Pc=function(e,t){return u["a"].create({component:{render(a){return a(y["a"],{ref:"dialog",props:{persistent:!0},on:{hide:()=>this.$emit("hide")}},[a(e,t)])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}})},Ac=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handleTouchPan,expression:"handleTouchPan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"fixed",staticStyle:{"min-width":"280px"},style:{left:this.left+"px",top:this.top+"px"}},[a("q-card-section",{staticClass:"q-py-none q-pr-none flex"},[a("div",[e._v("Floating")]),a("q-space"),a("q-btn",{staticStyle:{width:"32px","border-radius":"0"},attrs:{icon:"close",flat:"",size:"xs"},on:{click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none"},[e._t("default")],2)],1)},Ic=[];const qc={data(){return{observer:null,containerRect:null,contentRect:null}},mounted(){let e=!0;this.observer=new ResizeObserver((t=>{for(const e of t)e.target===document.body?this.containerRect=e.contentRect:e.target===this.$refs.card.$el&&(this.contentRect=e.contentRect);e&&(e=!1,this.left=(this.containerRect.width-this.contentRect.width)/2,this.top=(this.containerRect.height-this.contentRect.height)/2),this.updatePosition(this.left,this.top)})),this.observer.observe(document.body),this.observer.observe(this.$refs.card.$el)},beforeDestroy(){this.observer.unobserve(document.body),this.observer.unobserve(this.$refs.card.$el)}};var Oc={name:"Floating",mixins:[qc],data(){return{left:0,top:0}},methods:{handleTouchPan({delta:e}){this.containerRect&&this.contentRect&&this.updatePosition(this.left+e.x,this.top+e.y)},updatePosition(e,t){const a=8;this.left=Math.max(a,Math.min(e,this.containerRect.width-this.contentRect.width-a)),this.top=Math.max(a,Math.min(t,this.containerRect.height-this.contentRect.height-a))}}},Ec=Oc,Dc=Object(f["a"])(Ec,Ac,Ic,!1,null,"286e971c",null),jc=Dc.exports;k()(Dc,"components",{QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QBtn:le["a"],QSeparator:ce["a"]}),k()(Dc,"directives",{TouchPan:de["a"]});var Nc=e=>t=>{let a;a=e.utils.createVueInstance({render(e){const n=()=>{a.$destroy(),a.$el.remove(),a=null};return e(jc,{on:{close:n}},[e(t)])}},!0);const n=document.createElement("div");return document.body.append(n),a.$mount(n),a},Lc={negative(e){return d["a"].create({type:"negative",message:e,position:"bottom-right",timeout:5e3})},positive(e){return d["a"].create({type:"positive",message:e,position:"bottom-right",timeout:5e3})}};const Uc=e=>t=>{Object.entries(t).forEach((([t,a])=>{e.core[t]||(e.core[t]=a.bind(e))}))},Rc=({Vue:e,app:t})=>(a,n=!1)=>{if(n){const{i18n:n,router:o,store:i}=t;return new(e.extend({i18n:n,router:o,store:i}))(a)}return new e(a)},Mc=e=>{const t=new Map;return a=>{const n=(a,n)=>{Object.defineProperty(e.view,a,{get(){return t.has(a)?t.get(a):n.bind(e)},set(e){if(void 0===e||null===e){var n;if(!t.has(a))return;const e=t.get(a);t.delete(a),null===(n=e.view$destroy)||void 0===n||n.call(e)}else t.set(a,e)}})};Object.entries(a).forEach((([e,t])=>n(e,t)))}},Fc=new _c,Bc=bc.orange.tags("Account"),Wc={config:({queries:e,mutations:t,subscriptions:a})=>$c.config({queries:e,mutations:t,subscriptions:a}),enable:()=>$c.enablePublicListener(),disable:()=>$c.disablePublicListener(),addListener:(...e)=>$c.addPublicListener(...e),removeListener:(...e)=>$c.removePublicListener(...e)};var Hc=(e,{app:t},a)=>({injectToCore:Uc(a),createVueInstance:Rc({Vue:e,app:t}),injectToView:Mc(a),emit:(...e)=>Fc.$emit(...e),on:(...e)=>Fc.$on(...e),off:(...e)=>Fc.$off(...e),once:(...e)=>Fc.$once(...e),logger:Bc,ABDevRest:zc,sync:Wc,showInDialog:Pc,showInFloating:Nc(a),notify:Lc});class Vc{static create(e,t){const a=new this(e);return Object.assign(a,t)}constructor(e){this.NAME=e}onCreateCore(e,t,a){return{}}onConfigure(e,t,a){}onCreateStoreMixin(e,t,a){return{}}onRegisterView(e,t,a){return{}}}class Qc{constructor(e){this.NAME=e,this[e]={}}get context(){return this[this.NAME]}onConfigure(e){Object.assign(this.context,{config:{},utils:null,core:{},store:null,view:{}}),window.$alphabiz=window.$alphabiz||{},window.$alphabiz[this.NAME]=window.$alphabiz[this.NAME]||this.context}onInstallUtils(e,t){Object.assign(this.context,{utils:Hc(e,t,this.context)}),Object.assign(this.context,{$emit:this.context.utils.emit,$on:this.context.utils.on,$once:this.context.utils.once,$off:this.context.utils.off,$logger:this.context.utils.logger})}useExtensions(e,t,a){const n=(e,t)=>t instanceof Vc?t:Vc.create(e,t),o=Object.entries(e).map((([e,t])=>n(e,t))),i={mixins:[]},r=[e=>this.context.utils.injectToCore(e.onCreateCore(t,a,this.context)),e=>e.onConfigure(t,a,this.context),e=>i.mixins.push(e.onCreateStoreMixin(t,a,this.context)),e=>this.context.utils.injectToView(e.onRegisterView(t,a,this.context))];r.forEach((e=>o.forEach(e))),this.context.store=this.context.utils.createVueInstance(i,!0)}exportAsVuePlugin(){const e=e=>{const t=this.context;Object.defineProperty(e.prototype,this.NAME,{get(){const e=this,a=["$test"],n=new Proxy(t,{get(t,n,o){if(!a.includes(n))return Reflect.get(t,n,o);const i=Reflect.get(t,n,o);return Object.keys(i).reduce(((t,a)=>({...t,[a]:i[a].bind(e)})),{})}});return n}})};return(t,a)=>{this.onConfigure(),e(t),this.onInstallUtils(t,a),this.useExtensions(a.extensions,t,a)}}}var Gc={createExtension:Vc.create.bind(Vc),PluginInstaller:e=>new Qc(e)};let Kc=!1;var Yc={async signInPage(){const e=(e,t)=>{this.$account.view.SignInPage._isVue?this.$account.view.SignInPage.updateCard(e,t):this.$account.view.SignInPage({card:e,props:t})};Kc?await e("SignInCard",{}):(Kc=!0,this.$watch((()=>this.$account.store.authState),(async t=>{"pending"===t?(await e("LoadingCard",{title:"auth_state.pending"}),await new Promise((e=>setTimeout(e,1e3))),await this.$account.store.tryToSignInCurrentAccount()):"signed_out"===t&&await e("SignInCard",{})}),{immediate:!0}))}},Jc=a("35f4"),Zc=a("02fe"),Xc=a.n(Zc);async function ed({email:e,phone_number:t,phone_number_code:a,password:n},{language:o}){const i={username:Object(Jc["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20)().toLowerCase(),password:n,attributes:{},clientMetadata:{}},r=()=>{if(e)Object.assign(i.attributes,{email:e});else{if(!t)throw new Error("Invalid signup params");Object.assign(i.attributes,{phone_number:t,"custom:phone_number_code":a})}Object.assign(i.attributes,{"custom:msg_locale":`${o}:${i.attributes.email?"E":"P"}`})},s=()=>{Object.assign(i.clientMetadata,{})};r(),s();const{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}=await Ul["a"].signUp(i),{ABDevRest:p}=this.utils;return await p.postGuest("/account/postSignUp",{sub:l,username:i.username,keychainMetadataHash:Xc.a.SHA256(n).toString(),isTestEnv:window.isTestEnv,invitationCode:i.clientMetadata.invitationCode}),{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}}async function td(e){const{CodeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}=await Ul["a"].resendSignUp(e);return{codeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}}async function ad(e,t,{nickname:a,gender:n,birthday:o,locale:i}){const r={};Object.assign(r,{optionalAttributes:JSON.stringify({nickname:a,gender:n,birthday:o,locale:i})}),Object.assign(r,{}),await Ul["a"].confirmSignUp(e,t,{clientMetadata:r})}async function nd(e){const{ABDevRest:t}=this.utils,a=await Ul["a"].currentAuthenticatedUser();await Ul["a"].changePassword(a,e,e),await t.post("/admin/deleteAccount")}var od={signUp:ed,signUpResend:td,signUpConfirm:ad,deleteAccount:nd};async function id(){const e=await Ul["a"].currentAuthenticatedUser();return e?0===Object.keys(e).length?null:e:null}async function rd(e,t,{handleConfirm:a}){const n=async()=>{let n;e=e.toLowerCase();try{const a={};await this.$emit("signIn.createClientMetadata",a),n=await Ul["a"].signIn(e,t,a)}catch(o){if("UserNotConfirmedException"===o.code)return await a();throw o}if(n.challengeName){const a={};await this.$emit("signIn.createChallengeHandlers",a);const o=a[n.challengeName];if(!o)throw new Error("Unexpected challenge: "+n.challengeName);return await o(e,t,n)}return!0},o=await n();if(o){const{ABDevRest:e}=this.utils;await e.post("/account/postSignIn",{keychainMetadataHash:Xc.a.SHA256(t).toString()})}return o}var sd={signIn:rd,getCurrentAuthedUser:id};async function ld(){await Ul["a"].signOut()}var cd={signOut:ld};async function dd(e,t){const{ABDevRest:a}=this.utils,n=await Ul["a"].currentAuthenticatedUser();await a.post("/account/changePassword",{username:n.getUsername(),AccessToken:n.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:e,ProposedPassword:t})}async function ud(e,{language:t}){e=e.toLowerCase();const a={msgLocale:`${t}:F`},{CodeDeliveryDetails:{AttributeName:n,Destination:o}}=await Ul["a"].forgotPassword(e,a);return{codeDeliveryDetails:{AttributeName:n,Destination:o}}}async function _d(e,{code:t,password:a}){const{ABDevRest:n}=this.utils;await n.postGuest("/account/forgotPasswordSubmit",{ClientId:Ul["a"].userPool.getClientId(),ConfirmationCode:t,Password:a,Username:e})}async function pd(e){const t=await Ul["a"].currentAuthenticatedUser(),a=["nickname","gender","birthday","locale"];await Ul["a"].updateUserAttributes(t,a.reduce(((t,a)=>{const n=e[a];return void 0!==n&&(t[a]=n),t}),{}))}var md={changePassword:dd,forgotPasswordSend:ud,forgotPasswordSubmit:_d,changeAttributes:pd};let hd=null;async function gd(e,t){const a=`${e}:${t}`;if(hd===a)return;const n=await Ul["a"].currentAuthenticatedUser();await Ul["a"].updateUserAttributes(n,{"custom:msg_locale":a}),hd=a}async function fd(e,{language:t}){await gd(t,{email:"E",phone_number:"P"}[e]),await Ul["a"].verifyCurrentUserAttribute(e)}async function bd(e,t){const{ABDevRest:a}=this.utils,n=await Ul["a"].verifyCurrentUserAttributeSubmit(e,t);await a.post("/account/postVerifyAttr",{success:"SUCCESS"===n})}async function yd(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=await Ul["a"].currentAuthenticatedUser();e===n.attributes.email?await fd("email",{language:t}):(await gd(t,"E"),await a.post("/account/setVerifyAttr",{email:e}))}async function vd(e,t,{language:a}){const{ABDevRest:n}=this.utils,o=await Ul["a"].currentAuthenticatedUser();e&&t&&e===o.attributes.phone_number&&t===o.attributes["custom:phone_number_code"]?await fd("phone_number",{language:a}):(await gd(a,"P"),await n.post("/account/setVerifyAttr",{phone_number:{phoneNumber:e,phoneNumberCountryCode:t}}))}async function wd(e){return await bd("email",e)}async function kd(e){return await bd("phone_number",e)}var Sd={verifyFieldSend:fd,verifyFieldSubmit:bd,changeEmailSend:yd,changeEmailSubmit:wd,changePhoneNumberSend:vd,changePhoneNumberSubmit:kd},Cd=a("bbb3"),xd=(e,t,a)=>{Cd["default"].configure({...t.awsconfig,aws_cognito_mfa_configuration:"OPTIONAL",aws_cognito_mfa_types:["SMS"]}),Ul["a"].configure({authenticationFlowType:"CUSTOM_AUTH"}),a.utils.sync.config(t.gql)};function $d(){return this.$store.getters.settings.language}const Td={created(){this.$account.$on("authState.authorized",(async()=>{await this.$account.view.SignInPage.updateCard("LoadingCard",{title:"auth_state.authorized"}),await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")}))}},zd={async onSignIn(){["pending","signed_out"].includes(this.authState)&&(this.authState="authorized",await this.$account.$emit("authState.authorized")),this.authState="signed_in",await this.$account.$emit("authState.signedIn")},async onSignOut(){"signed_in"===this.authState&&(this.authState="sign_out",await this.$account.$emit("authState.signOut")),this.authState="signed_out",await this.$account.$emit("authState.signedOut")}};var Pd={mixins:[Td],data(){return{authState:"pending"}},methods:{async signIn(e,t){const a=await this.$account.core.signIn(e,t,{handleConfirm:()=>{throw new Error("UserNotConfirmedException")}});if(a){const e=await this.$account.core.getCurrentAuthedUser();await zd.onSignIn.call(this,e)}return a},async signOut(){await this.$account.core.signOut(),await zd.onSignOut.call(this)},async deleteAccount(e){await this.$account.core.deleteAccount(e),await this.signOut()},async tryToSignInCurrentAccount(){const e=["The user is not authenticated"];let t;try{if(t=await this.$account.core.getCurrentAuthedUser(),!t)throw"user is null"}catch(a){if(e.includes(a))return void await zd.onSignOut.call(this);throw this.$account.$logger.tags("SignInFlow","pending","rejected").warn(a,typeof a),a}await zd.onSignIn.call(this,t)}}},Ad={methods:{async signUp({email:e,phone_number:t,phone_number_code:a,password:n},{requireConfirm:o}){const i=await this.$account.core.signUp({email:e,phone_number:t,phone_number_code:a,password:n},{language:$d.call(this)}),r=await o({data:i,resend:async()=>{await this.$account.core.signUpResend(i.user.getUsername())},callback:async(e,t)=>{await this.$account.core.signUpConfirm(i.user.getUsername(),e,t)}});return r}}},Id={methods:{async forgotPassword(e,{requireCode:t}){const a=await this.$account.core.forgotPasswordSend(e,{language:$d.call(this)}),n=await t({data:a,callback:async(t,a)=>{await this.$account.core.forgotPasswordSubmit(e,{code:t,password:a})}});return n},async changePassword(e,t){await this.$account.core.changePassword(e,t)}}},qd={methods:{async changeEmail(e,{requireCode:t}){const a=async()=>{const t=$d.call(this);await this.$account.core.changeEmailSend(e,{language:t})};await a(),await t({resend:async()=>{await a()},callback:async e=>{await this.$account.core.changeEmailSubmit(e)}})},async changePhoneNumber({phone_number:e,phone_number_code:t},{requireCode:a}){const n=async()=>{const a=$d.call(this);await this.$account.core.changePhoneNumberSend(e,t,{language:a})};await n(),await a({resend:async()=>{await n()},callback:async e=>{await this.$account.core.changePhoneNumberSubmit(e)}})}}},Od=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-modal-page"},[a("transition",{attrs:{name:"fade"}},[e.showContent?a("Backdrop"):e._e()],1),e.$scopedSlots.corner?a("div",{staticClass:"container",staticStyle:{"z-index":"7000"}},[a("transition",{attrs:{name:"slide-right"}},[e.showContent?a("Corner",[e._t("corner")],2):e._e()],1)],1):e._e(),a("div",{staticClass:"container flex justify-center items-center",staticStyle:{"z-index":"6000"}},[a("transition",{attrs:{name:"scale"}},[e.showContent?e._t("default"):e._e()],2)],1)],1)},Ed=[],Dd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-backdrop",class:[e.backdropType]})},jd=[];const Nd={mounted(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)||document.body.classList.add(e)},beforeDestroy(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)&&document.body.classList.remove(e)}};var Ld={name:"Backdrop",mixins:[Nd],data(){return{backdropType:"shadow"}}},Ud=Ld,Rd=(a("55e6"),Object(f["a"])(Ud,Dd,jd,!1,null,null,null)),Md=Rd.exports;k()(Rd,"components",{QDialog:y["a"]});var Fd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bg-page text-page absolute-bottom-right shadow-1 rounded-borders q-ma-sm q-py-xs q-px-sm"},[e._t("default")],2)},Bd=[],Wd={name:"Corner"},Hd=Wd,Vd=Object(f["a"])(Hd,Fd,Bd,!1,null,"4cc4e2b0",null),Qd=Vd.exports;const Gd=300,Kd={data(){return{showContent:!1}},mounted(){this.show()},methods:{async hide(){this.showContent=!1,await new Promise((e=>setTimeout(e,Gd)))},async show(){this.showContent=!0,await new Promise((e=>setTimeout(e,Gd)))}}};var Yd={name:"ModalLayout",mixins:[Kd],components:{Backdrop:Md,Corner:Qd}},Jd=Yd,Zd=(a("4ec4"),Object(f["a"])(Jd,Od,Ed,!1,null,null,null)),Xd=Zd.exports,eu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[e._t("default"),a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",unelevated:"",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}})],2)},tu=[],au={name:"Corner"},nu=au,ou=Object(f["a"])(nu,eu,tu,!1,null,null,null),iu=ou.exports;k()(ou,"components",{QBtn:le["a"]});var ru=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",[a("q-card-section",{staticClass:"flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(" "+e._s(e.title)+" ")])],1)],1)},su=[],lu={name:"LoadingCard",props:{title:String}},cu=lu,du=Object(f["a"])(cu,ru,su,!1,null,"598e682e",null),uu=du.exports;k()(du,"components",{QCard:v["a"],QCardSection:re["a"],QSpinnerIos:at["a"]});var _u=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"non-selectable q-pt-lg"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_in.sign_in")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}}),a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.password"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}})],1),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",on:{click:function(){return e.$account.view.SignInPage.updateCard("ResetPasswordCard")}}},[e._v(e._s(e.$t("tip.reset_password")))])])]),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.sign_in")},on:{click:e.handleSignIn}},"q-btn",e.loadingProps("sign_in"),!1)),a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.sign_up")},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignUpCard",{initialSignUpMode:"email"})}}},"q-btn",e.loadingProps("sign_up"),!1)),a("ABOAuthEntry")],1)],1)},pu=[];const mu={sign_in:{sign_in:["Sign In","登录账户","登錄賬戶"]},sign_up:{sign_up:["Sign Up","注册账户","註冊賬戶"],verify:["Identify verification","身份验证","身份驗證"]},reset_password:{find_your_account:["Find your account","找寻你的账户","找尋你的賬戶"],enter_your_username:["Enter your phone number or email","输入你的手机号码或电子邮箱","輸入你的手機號碼或電子郵箱"]},field:{username:["Phone number or email","手机号码或电子邮箱","手機號碼或電子郵箱"],email:["Email","邮箱","郵箱"],phone_number:["Phone Number","手机号码","手機號碼"],password:["Password","密码","密碼"],verification_code:["Verification code","验证码","驗證碼"],license_terms:["the license and terms","服务许可条款","服務許可條款"]},tip:{forgot_your_password:["Forgot your password? ","忘记密码了?","忘記密碼了?"],reset_password:["Reset password","重置密码","重置密碼"],no_email:["No email? ","没有邮箱?","沒有郵箱?"],sign_up_by_email:["Sign up by email","通过邮箱注册","通過郵箱註冊"],no_phone_number:["No phone number? ","没有手机号码?","沒有手機號碼?"],sign_up_by_phone_number:["Sign up by phone number","通过手机注册","通過手機註冊"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],email_sent:["An email with a verification code has been sent to your email address: {email}","一封附带验证码的电子邮件已发送到您的邮箱:{email}","一封附帶驗證碼的電子郵件已發送到您的郵箱:{email}"],can_not_get_code:["Can not get verification code? ","无法获取验证码?","無法獲取驗證碼?"]},action:{resend_code:["Resend code","重发验证码","重發驗證碼"],finish:["Finish","完成","完成"],continue:["Continue","下一步","繼續"],i_accept:["I accept ","我接受","我接受"],sign_in:["Sign In","登录","登錄"],sign_up:["Sign Up","注册","註冊"],search:["Search","查找","查找"]}},hu=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var gu={messages:hu(mu)};const fu={data(){return{hidePassword:!0}}},bu={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var yu={name:"SignInCard",i18n:gu,mixins:[bu,fu],props:{initial_username:String,initial_password:String},created(){this.initial_username&&(this.username=this.initial_username),this.initial_password&&(this.password=this.initial_password)},mounted(){this.password&&this.username&&this.handleSignIn()},data(){return{username:null,password:null}},methods:{async handleSignIn(){await this.withLoadingWrapper("sign_in",(async()=>{await this.$account.store.signIn(this.username,this.password)}))}}},vu=yu,wu=Object(f["a"])(vu,_u,pu,!1,null,null,null),ku=wu.exports;k()(wu,"components",{QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QBtn:le["a"],QInput:K["a"],QIcon:Y["a"]});var Su=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.sign_up")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-pt-none"},["email"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.email"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.email,callback:function(t){e.email=t},expression:"email"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}],null,!1,176215e3),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_email"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="phone_number"}}},[e._v(e._s(e.$t("tip.sign_up_by_phone_number")))])])]:"phone_number"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.phone_number"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.phone_number,callback:function(t){e.phone_number=t},expression:"phone_number"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_phone_number"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="email"}}},[e._v(e._s(e.$t("tip.sign_up_by_email")))])])]:e._e()],2),a("q-card-section",{staticClass:"q-py-none row items-center non-selectable"},[a("q-checkbox",{staticStyle:{"margin-left":"-8px"},attrs:{label:e.$t("action.i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"q-ml-xs underscore select-none cursor-pointer text-primary",on:{click:e.showLicenseTerms}},[e._v("\n "+e._s(e.$t("field.license_terms"))+"\n ")])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.continue")},on:{click:function(t){return e.withLoadingWrapper("sign_up",e.handleSignUp)}}},"q-btn",e.loadingProps("sign_up"),!1))],1)],1)},Cu=[],xu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.verify")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.description))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_get_code"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(){return e.$emit("switchMode","email"===e.signUpMode?"phone_number":"email")}}},[e._v(e._s("email"===e.signUpMode?e.$t("tip.sign_up_by_phone_number"):e.$t("tip.sign_up_by_email")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.finish")},on:{click:function(t){return e.withLoadingWrapper("confirm",e.handleConfirm)}}},"q-btn",e.loadingProps("confirm"),!1))],1)],1)},$u=[];const Tu={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},zu={data(){return{showAttributes:!1,attributes:{nickname:null,gender:"not_say",birthday:null,locale:"not_say"}}}};var Pu={name:"SignUpConfirmCard",i18n:gu,mixins:[Tu,zu],props:{signUpMode:String,resend:Function,confirm:Function},data(){return{verification_code:null}},computed:{description(){return"email"===this.signUpMode?this.$t("tip.email_sent",{email:"email"}):"phone_number"===this.signUpMode?this.$t("tip.sms_sent",{phone_number:"phone_number"}):void 0}},methods:{async handleResend(){try{await this.resend()}catch(e){}},async handleConfirm(){try{const e=Object.entries(this.attributes).reduce(((e,[t,a])=>a?{...e,[t]:a}:e),{});return await this.confirm(this.verification_code,e)}catch(e){}}}},Au=Pu,Iu=a("03bd"),qu=a("abe8"),Ou=Object(f["a"])(Au,xu,$u,!1,null,null,null),Eu=Ou.exports;k()(Ou,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QToggle:Iu["a"],QTooltip:St["a"],QInput:K["a"],QSlideTransition:qu["a"]});const Du={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},ju={data(){return{hidePassword:!0}}},Nu={data(){return{confirmDialog:null}},beforeDestroy(){this.confirmDialog&&this.confirmDialog.hide()},methods:{showConfirmDialog({data:e,resend:t,confirm:a}){this.confirmDialog||(this.confirmDialog=this.$account.utils.showInDialog(Eu,{props:{signUpMode:this.signUpMode,resend:t,confirm:async(...e)=>{await a(...e),this.confirmDialog.hide()}},on:{back:()=>{this.confirmDialog.hide(),this.$account.view.SignInPage.updateCard("SignInCard")},switchMode:e=>{this.confirmDialog.hide(),this.signUpMode=e}}}),this.confirmDialog.onDismiss((()=>this.confirmDialog=null)))}}};var Lu={name:"SignUpCard",i18n:gu,mixins:[Du,Nu,ju],props:{initialSignUpMode:String},data(){return{signUpMode:"email",email:null,phone_number:null,password:null,accept:!1}},created(){this.signUpMode=this.initialSignUpMode},methods:{showLicenseTerms(){this.$account.$emit("signUp.showLicenseTerms")},async handleSignUp(){const e={email:{email:this.email},phone_number:{phone_number:this.phone_number,phone_number_code:this.phone_number_code}}[this.signUpMode];Object.assign(e,{password:this.password});const t=await this.$account.store.signUp(e,{requireConfirm:this.handleSignUpConfirm.bind(this)});t&&this.$account.view.SignInPage.updateCard("SignInCard",{initial_username:{email:this.email,phone_number:this.phone_number}[this.signUpMode],initial_password:this.password})},async handleSignUpConfirm({data:e,resend:t,callback:a}){let n=!1;return this.showConfirmDialog({data:e,resend:t,confirm:async(e,t)=>{await a(e,t),n=!0}}),await new Promise((e=>this.confirmDialog.onDismiss(e))),n}}},Uu=Lu,Ru=Object(f["a"])(Uu,Su,Cu,!1,null,null,null),Mu=Ru.exports;k()(Ru,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"],QIcon:Y["a"],QCheckbox:gl["a"]}),k()(Ru,"directives",{ClosePopup:Yl["a"]});var Fu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("reset_password.find_your_account")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("reset_password.enter_your_username"))+" ")])])]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",{staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.search")},on:{click:e.handleResetPassword}})],1)],1)},Bu=[];const Wu={data(){return{hidePassword:!0}}};var Hu={name:"ResetPasswordCard",mixins:[Wu],i18n:gu,data(){return{username:null}},methods:{handleResetPassword(){}}},Vu=Hu,Qu=Object(f["a"])(Vu,Fu,Bu,!1,null,null,null),Gu=Qu.exports;k()(Qu,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var Ku=async function({card:e,props:t,events:a}){const n={},o={cards:n,corner:iu};this.$on("createSignInPage",Zu),await this.$emit("createSignInPage",o);const i=Yu("SignInPage",{cards:n,card:e,props:t,events:a,corner:o.corner}),r=this.utils.createVueInstance(i,!0);return r.$mount(Ju("alphabiz-sign-in-page")),r};function Yu(e,{cards:t,card:a,props:n,events:o,corner:i}){const r={beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},methods:{async view$destroy(){await this.$refs.layout.hide(),this.$destroy(),this.$el.remove()}}};return{name:e,mixins:[r],render:s,data(){return{card:a,props:n||{},events:o||{}}},methods:{updateCard(e,t={},a={}){this.card=e,this.props=t,this.events=a}}};function s(e){return e(Xd,{ref:"layout",scopedSlots:{corner:()=>e(i),default:()=>e(t[this.card],{props:this.props,on:this.events})}})}}function Ju(e){return document.getElementById(e)||(()=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t})()}function Zu({cards:e}){Object.assign(e,{LoadingCard:uu,SignInCard:ku,SignUpCard:Mu,ResetPasswordCard:Gu})}a("d176");var Xu={SignInPage:Ku},e_={onCreateCore(e,t,a){return{...od,...sd,...cd,...md,...Sd}},onConfigure(e,t,a){xd(e,t,a)},onCreateStoreMixin(e,t,a){return{mixins:[Pd,Ad,Id,qd]}},onRegisterView(e,t,a){return a.$on("authState.signedIn",(()=>a.view.SignInPage=null)),{...Xu}}},t_=a("a071"),a_={onCreateCore(e,t,a){return{}},onConfigure(e,t,a){const n=a;n.$on("signIn.createChallengeHandlers",(t=>{t.CUSTOM_CHALLENGE=async(t,a,n)=>{const o=await e.prototype.$recaptcha("login");if(n=await Ul["a"].sendCustomChallengeAnswer(n,o),!n)throw new Error("Network Error");return!0}}));const o=n.$logger.tags("ReCaptcha"),i=async({offLine:e,onLine:t},a)=>{await new Promise((t=>{if(navigator.onLine)t();else{const n=setInterval((()=>{navigator.onLine?(clearInterval(n),t()):e()}),a)}})),t()};i({offLine(){o.log("network offline, retry...")},onLine(){e.use(t_["VueReCaptcha"],{siteKey:"6LeQxGkdAAAAAEU4CVmCtybi8FkBPoX4oy1UnN7Q",loaderOptions:{useRecaptchaNet:!0,autoHideBadge:!0,explicitRenderParameters:{badge:"bottomright"}}}),o.log("loaded")}},3e3)},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}};async function n_(){const e=await Ul["a"].currentAuthenticatedUser();return await Ul["a"].getPreferredMFA(e)}async function o_(e){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(e))throw new Error("invalid_mfa_type");const t=await Ul["a"].currentAuthenticatedUser();await Ul["a"].setPreferredMFA(t,e)}async function i_(){const e=await Ul["a"].currentAuthenticatedUser();return await Ul["a"].setupTOTP(e)}async function r_(e){const t=await Ul["a"].currentAuthenticatedUser();await Ul["a"].verifyTotpToken(t,e)}async function s_(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=`${t}:D`,{email:o,phoneNumber:i}=await a.postGuest("/account/verifyForDisableMFA",{username:e,metadata:{msgLocale:n}});return{email:{destination:o.Destination},phoneNumber:{destination:i.Destination}}}async function l_(e,{emailCode:t,phoneCode:a}){const{ABDevRest:n}=this.utils;e=e.toLowerCase(),await n.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}var c_={setupTOTP:i_,verifyTotpToken:r_,getMFA:n_,changeMFA:o_,disableMFASend:s_,disableMFASubmit:l_};function d_(){return this.$store.getters.settings.language}const u_=async function(e){const t=()=>this.$account.core.verifyFieldSend("phone_number",{language:d_.call(this)});await t();const a=await e({resend:()=>t(),callback:async e=>{await this.$account.core.verifyFieldSubmit("phone_number",e)}});return a},__=async function(e){const t=await e({setup:()=>this.$account.core.setupTOTP(),callback:async e=>{await this.$account.core.verifyTotpToken(e)}});return t};var p_={methods:{async setNoMfa({requireCodeFromSMS:e,requireCodeFromOTP:t}){const a=this.$account.core.getMFA();if("NOMFA"===a)return!0;let n=!1;if("SMS_MFA"===a)n=await u_.call(this,e);else{if("SOFTWARE_TOKEN_MFA"!==a)throw new Error("invalid_mfa_type");n=await __.call(this,t)}return!!n&&(await this.$account.core.changeMFA("NOMFA"),!0)},async setSmsMfa({requireCodeFromSMS:e}){const t=this.$account.core.getMFA();if("SMS_MFA"===t)return!0;const a=await u_.call(this,e);return!!a&&(await this.$account.core.changeMFA("SMS_MFA"),!0)},async setOtpMfa({requireCodeFromOTP:e}){const t=this.$account.core.getMFA();if("SOFTWARE_TOKEN_MFA"===t)return!0;const a=await __.call(this,e);return!!a&&(await this.$account.core.changeMFA("SOFTWARE_TOKEN_MFA"),!0)},async disableMfa(e){const t=await this.$account.core.disableMFASend(e,{language:d_.call(this)});let a=!1;return await this.$account.$emit("disableMfa.requireCodes",{data:t,submit:async({emailCode:t,phoneCode:n})=>{await this.$account.core.disableMFASubmit(e,{emailCode:t,phoneCode:n}),a=!0}}),a}},created(){const e=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromSMS",{username:a.username,resend:async()=>{a=await Ul["a"].signIn(e,t)},submit:async e=>{await Ul["a"].confirmSignIn(a,e,"SMS_MFA"),n=!0}}),n},t=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromOTP",{username:a.username,submit:async e=>{await Ul["a"].confirmSignIn(a,e,"SOFTWARE_TOKEN_MFA"),n=!0}}),n};this.$account.$on("signIn.createChallengeHandlers",(a=>Object.assign(a,{SMS_MFA:e,SOFTWARE_TOKEN_MFA:t})))}},m_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.sms_sent",{phone_number:"phone_number"})))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},h_=[];const g_={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var f_={name:"RequireCodeFromSMS",mixins:[g_],props:{username:String,resend:Function,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleResend(){try{await this.resend()}catch(e){}},async handleSubmit(){try{return await this.submit(this.verification_code),void this.$emit("back")}catch(e){}}}},b_=f_,y_=Object(f["a"])(b_,m_,h_,!1,null,null,null),v_=y_.exports;k()(y_,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var w_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.require_otp")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(t){return e.withLoadingWrapper("disable",e.handleDisableMFA)}}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},k_=[];const S_={verify_your_identity:["Verify your identity","验证您的身份","驗證您的身份"],disable_mfa:{title:["Disable MFA","关闭二级验证","關閉二級驗證"],loading:["Loading...","加载中...","加載中..."]},action:{submit:["Submit","提交","提交"],resend_code:["Resend code","重发验证码","重發驗證碼"],disable_mfa:["Disable MFA","关闭二级验证","關閉二級驗證"]},field:{verification_code:["Verification code","验证码","驗證碼"],email_code:["Email Code","邮箱验证码","郵箱驗證碼"],sms_code:["SMS Code","短信验证码","簡訊驗證碼"]},tip:{require_otp:["MFA is enabled for your account. To finish signing in, please turn on your device and type the TOTP","您的账户已启用安全令牌。要完成登录,请查看您的设备并输入验证码","您的賬戶已啟用安全令牌。要完成登錄,請查看您的設備並輸入驗證碼"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],can_not_mfa:["MFA in trouble? ","无法进行二级验证?","無法進行二級驗證?"],verify_identity_by_codes:["Enter the email verification code and SMS verification code to verify your identity","输入邮件验证码与短信验证码以验证您的身份","輸入郵件驗證碼與簡訊驗證碼以驗證您的身份"]}},C_=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var x_={messages:C_(S_)};const $_={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var T_={name:"RequireCodeFromOTP",i18n:x_,mixins:[$_],props:{username:String,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleSubmit(){try{await this.submit(this.verification_code),this.$emit("back")}catch(e){}}}},z_=T_,P_=Object(f["a"])(z_,w_,k_,!1,null,null,null),A_=P_.exports;k()(P_,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var I_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("disable_mfa.title")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.verify_identity_by_codes")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.email_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.email_code,callback:function(t){e.email_code=t},expression:"email_code"}}),a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.sms_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.sms_code,callback:function(t){e.sms_code=t},expression:"sms_code"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},q_=[];const O_={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var E_={name:"RequireCodesForDisableMFA",mixins:[O_],props:{submit:Function},data(){return{email_code:null,sms_code:null}},methods:{async handleSubmit(){try{await this.submit({emailCode:this.email_code,phoneCode:this.sms_code}),this.$emit("back")}catch(e){}}}},D_=E_,j_=Object(f["a"])(D_,I_,q_,!1,null,null,null),N_=j_.exports;k()(j_,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var L_={async RequireCodeFromSMS({username:e,resend:t,submit:a}={}){const n=this.utils.showInDialog(v_,{props:{username:e,resend:t,submit:a},on:{back(){n.hide()}}});await new Promise(n.onDismiss)},async RequireCodeFromOTP({username:e,submit:t}){const a=this.utils.showInDialog(A_,{props:{username:e,submit:t},on:{back(){a.hide()}}});await new Promise(a.onDismiss)},async RequireCodesForDisableMFA({data:e,submit:t}){return await new Promise((e=>{this.view.SignInPage.updateCard("RequireCodesForDisableMFA",{submit:t},{back:e})}))}};const U_=({cards:e})=>Object.assign(e,{RequireCodesForDisableMFA:N_});var R_={onCreateCore(e,t,a){return{...c_}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{...p_}},onRegisterView(e,t,a){return a.$on("createSignInPage",U_),a.$on("signIn.requireCodeFromSMS",((...e)=>a.view.RequireCodeFromSMS(...e))),a.$on("signIn.requireCodeFromOTP",((...e)=>a.view.RequireCodeFromOTP(...e))),a.$on("disableMfa.requireCodes",((...e)=>a.view.RequireCodesForDisableMFA(...e))),{...L_}}},M_={onCreateCore(e,t,a){async function n({code:e,email:t,phone:a}){const{ABDevRest:n}=this.utils;t&&(t=t.toLowerCase()),await n.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function o(){const{ABDevRest:e}=this.utils,t=await e.post("/invitation/getCodes");return t}return{inviteCode:n,getInvitationCodes:o}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}},F_={setState:e=>{window.sessionStorage.setItem("oauth_state",e)},getState:()=>{const e=window.sessionStorage.getItem("oauth_state");return window.sessionStorage.removeItem("oauth_state"),e},setPKCE:e=>{window.sessionStorage.setItem("ouath_pkce_key",e)},getPKCE:()=>{const e=window.sessionStorage.getItem("ouath_pkce_key");return window.sessionStorage.removeItem("ouath_pkce_key"),e},clearAll:()=>{window.sessionStorage.removeItem("ouath_pkce_key"),window.sessionStorage.removeItem("oauth_state")}},B_={encode(e){return e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")},decode(e){return e.match(/.{2}/g).map((e=>String.fromCharCode(parseInt(e,16)))).join("")}},W_=a("36f2");const H_="undefined"!==typeof Symbol&&"function"===typeof Symbol.for?Symbol.for("amplify_default"):"@@amplify_default";var V_=(e,t,a)=>{W_["a"].dispatch("auth",{event:e,data:t,message:a},"Auth",H_)},Q_={urlSafe:B_,oauthStorage:F_,dispatchAuthEvent:V_},G_=a("2b49"),K_={async pending(e,t={}){let a=!1;return await this.$emit("handleOAuthEvent",e,{...t,next:e=>a=e}),a},cancelled(e){return this.$emit("handleOAuthEvent","cancelled",e)},succeed(e){return this.$emit("handleOAuthEvent","succeed",e)},failed(e,t){return"string"===typeof e&&(e=new Error(e)),this.$emit("handleOAuthEvent","failed",t,e)}};function Y_(){const e=G_["a"].generateState(128);Q_.oauthStorage.setPKCE(e);const t=G_["a"].generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function J_({event:e,provider_sub:t}){if("account_linked"===e){const e="oauth_account_has_been_connected";await K_.failed.call(this,["oauth_error",e].join("."))}else if("account_unlinked"===e){const e=await K_.pending.call(this,"connecting");if(!e)return;const a=Q_.oauthStorage.getState(),n=Q_.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils;await o.post("/oauth/connect",{state:a,provider_sub:t,code_verifier:n}),await K_.succeed.call(this)}}var Z_=a("d830");function X_(){const e=G_["a"].generateState(128);Q_.oauthStorage.setPKCE(e);const t=G_["a"].generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function ep({event:e,state:t,provider:a}){if("account_linked"===e){const e=await K_.pending.call(this,"logging_in");if(!e)return;if(t!==Q_.oauthStorage.getState())return;const n=Q_.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils,{provider_sub:i}=a,r={state:t,provider_sub:i,code_verifier:n},s=await o.postGuest("/oauth/tokens",r);await tp.call(Ul["a"],s),await K_.succeed.call(this)}else if("account_unlinked"===e){const e="can_not_login_unconnected_account";await K_.failed.call(this,["oauth_error",e].join("."))}}async function tp({IdToken:e,AccessToken:t,RefreshToken:a}){const n=new Z_["h"]({IdToken:new Z_["c"]({IdToken:e}),RefreshToken:new Z_["d"]({RefreshToken:a}),AccessToken:new Z_["b"]({AccessToken:t})});let o;this._config.identityPoolId&&(o=await this.Credentials.set(n,"session"));const i=this.createCognitoUser(n.getIdToken().decodePayload()["cognito:username"]);return i.setSignInUserSession(n),{currentUser:i,credentials:o}}const ap={connect:n,login:o};function np({provider:e,action:t}){const a=this,{ABDevRest:n}=this.utils,o=a.$logger.tags("OAuthAction","Request"),i=G_["a"].generateState(32);Q_.oauthStorage.setState(i);const r=Object.entries({state:i,action:t,identity_provider:e,redirect_uri:`${Ul["a"]._oAuthHandler._config.redirectSignIn}v2/`,...ap[t].createParams.call(this)||{}}).map((e=>e.map(encodeURIComponent).join("="))).join("&"),s=`${n.endpoint}/oauth/request`,l=`${s}?${r}`;o.log(l),G_["a"].urlOpener(l)}async function op(e,t="electron"){const a=this,n=a.$logger.tags("OAuthAction","Response"),o=Array.from(new URL(e).searchParams.entries()).reduce(((e,[t,a])=>({...e,[t]:a})),{}),{action:i,identity_provider:r}=o;if(!i)return;const s=JSON.parse(o.data);if("web"===t){const e=a.$on("handleOAuthEvent",((t,n,o)=>{var s,l;e(),null===(s=(l=a.view).OAuthFlowRestored)||void 0===s||s.call(l,{action:i,identity_provider:r},{stage:t,data:n,error:o})}))}n.tags(i,r).log(s),await ap[i].eventHandler.call(this,s)}function ip({initial_stage:e,initial_params:t,stage_restrict:a,handlers:n}){const o=this,i=["cancelled","failed","succeed"];let r,s=null,l=null;const c=e=>r!==e&&(!i.includes(r)&&(!!i.includes(e)||!!a[e]&&!!a[r].includes(e))),d=()=>new Promise((async(a,d)=>{const u=async(e,t,s)=>{if(o.$logger.tags("OAuthEvent",e).log(...s?[s.message,t]:[t]),r=e,i.includes(r)){var c;null===(c=l)||void 0===c||c(),"failed"===r?(n[r]&&await n[r](s,t),d(s)):(n[r]&&await n[r](t),a())}else{if(!n[r])return;const e=await n[r](t);null===t||void 0===t||t.next(e)}};await u(e,...t||[]),l=o.$on("handleOAuthEvent",(async(e,t,a)=>{c(e)&&await u(e,t,a)})),s=e=>u("cancelled",e)}));return{cancel:e=>s(e),promise:()=>d().finally((()=>{var e;return null===(e=l)||void 0===e?void 0:e()}))}}async function rp(){const{ABDevRest:e}=this.utils,t=await e.post("/oauth/providers");return t}async function sp(e){const{ABDevRest:t}=this.utils;await t.post("/oauth/disconnect",{provider_sub:e})}var lp={queryOAuthProviders:rp,disconnectOAuthProvider:sp,createOAuthFlow:ip,handleOAuthActionResponse:op,requestOAuthAction:np},cp=a("d1a4"),dp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"overflow-hidden full-width",style:{display:e.hide?"none":"unset"}},[a("q-separator",{staticClass:"q-my-sm",attrs:{color:"general"}}),a("div",{staticClass:"column items-stretch",staticStyle:{margin:"-4px"}},e._l(e.providersEnabled,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{loading:e.loadingState===n,disable:!!e.loadingState,"no-caps":"","no-wrap":"",icon:t.icon,label:e.$t("oauth_login.sign_in_with",{provider:t.name}),unelevated:"",color:"general","text-color":"general"},on:{click:function(){return e.handleClick(t)}}})})),1)],1)},up=[],_p=a("b65b"),pp=_p["a"],mp=Object(f["a"])(pp,dp,up,!1,null,"391ab58c",null),hp=mp.exports;k()(mp,"components",{QSeparator:ce["a"],QBtn:le["a"]});var gp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-list",{staticClass:"rounded-borders",attrs:{bordered:"",separator:""}},e._l(e.providerItems,(function(t,n){return a("q-item",{key:n,staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.75rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.providerName))]),t.providerUserId?a("q-item-label",{attrs:{caption:""}},[e._v(e._s(t.providerUserId))]):e._e()],1),Object.keys(t.handlers).length?a("q-item-section",{attrs:{side:""}},[1===Object.keys(t.handlers).length?[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:Object.values(t.handlers)[0].icon,flat:"",round:""},on:{click:function(){return Object.values(t.handlers)[0].click()}}},[a("q-tooltip",{ref:"tooltip",refInFor:!0},[e._v(e._s(Object.values(t.handlers)[0].label))])],1)]:[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:"more_vert",flat:"",round:""}},[a("q-menu",{attrs:{"touch-position":"","auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{staticStyle:{"min-width":"180px"}},[e._l(t.handlers,(function(t,n){return[a("q-item",{key:n,attrs:{clickable:""},on:{click:function(){return t.click()}}},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.5rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)]}))],2)],1)],1)]],2):e._e()],1)})),1)},fp=[],bp=a("0925"),yp=a("bdb1"),vp=a("076e"),wp={name:"OAuthManager",i18n:vp["a"],data(){return{loadingState:null,loaded:!1,providers:[]}},mounted(){this.queryOAuthProviders().then((()=>this.loaded=!0))},methods:{async queryOAuthProviders(){this.providers=await this.$account.core.queryOAuthProviders()},async disconnectOAuthProvider(e,t){const a=[e,t].join("_");await this.$account.core.disconnectOAuthProvider(a),await this.queryOAuthProviders(),this.$q.notify({message:this.$t("oauth_disconnect.notify.disconnected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}},computed:{providerItems(){const e=(e,t)=>{const a=t=>async()=>{try{this.loadingState=e,await t()}finally{this.loadingState=null}},n={};return t?n.disconnect={icon:"delete",label:this.$t("oauth_disconnect.disconnect",{provider:e}),click:a((()=>this.disconnectOAuthProvider(e,t)))}:n.connect={icon:"add",label:this.$t("oauth_connect.connect_to",{provider:e}),click:a((async()=>{await yp["a"].connect.call(this,e),await this.queryOAuthProviders()}))},n},t=["Github","Twitter"].filter((e=>this.d$cfg.oauth.providers.includes(e))).map((e=>{var t;return{providerName:e,providerUserId:null===(t=this.providers.find((t=>t.provider_name===e)))||void 0===t?void 0:t.provider_sub.slice(e.length+1)}}));return[...t.map((({providerName:t,providerUserId:a})=>({icon:bp["a"].getIcon(t),providerName:t,providerUserId:a||this.$t("oauth_unset"),handlers:e(t,a)})))]}}},kp=wp,Sp=Object(f["a"])(kp,gp,fp,!1,null,null,null),Cp=Sp.exports;k()(Sp,"components",{QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QItemLabel:Ie["a"],QBtn:le["a"],QTooltip:St["a"],QMenu:Gl["a"]});var xp={OAuthFlowRestored({action:e,identity_provider:t},{stage:a,data:n,error:o}){this.$logger.tags("OAuthFlowRestored",e,a).log(n);const i="OAuthFlowRestored";return this.utils.createVueInstance({i18n:vp["a"],beforeCreate(){const e=this.$account.view[i];e instanceof Function||this.destroy()},created(){var r;this.$account.view[i]=this,null===(r=yp["a"][e])||void 0===r||r.call(this,t,{initial_stage:a,initial_params:[n,o]}).finally((()=>{this.destroy()}))},beforeDestroy(){const e=this.$account.view[i];e instanceof Function||(this.$account.view[i]=null)},methods:{destroy(){this.$account.view[i]=null}}},!0)}},$p={onCreateCore(e,t,a){return{...lp}},onConfigure(e,t,n){Object(cp["a"])(e,t,n);const o=t.app.router;o.addRoute({path:"/oauth_redirect/:app_name/:redirect_to/v2",component:()=>a.e(7).then(a.bind(null,"4dfe"))});const i=e=>t=>{const a=e.split("/").slice(1),n=t.split("/").slice(1),o={};if(a.length===n.length){for(let e=0;e{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Wp={messages:Bp(Fp)},Hp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"2.8rem",name:e.icon}})],1),a("q-item-section",[a("q-item-label",[a("span",{staticClass:"text-bold non-selectable",staticStyle:{"font-size":"1rem"}},[e._v(e._s(e.title))])]),e.member?a("q-item-label",{attrs:{caption:""}},[e._v("\n "+e._s(e.member)+"\n ")]):e._e(),a("div",{staticClass:"q-mt-sm non-selectable"},[a("div",{staticStyle:{margin:"-4px"}},e._l(e.stages,(function(t){return a("TaskItemStage",{key:t.index,attrs:{status:e.status,stage:t,current_stage:e.current_stage}})})),1)])],1)],1)},Vp=[],Qp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-menu",e._b({attrs:{"auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},"q-menu",e.dropdown?{fit:!0,anchor:"bottom left",self:"top left"}:{touchPosition:!0},!1),[a("q-list",{staticStyle:{"min-width":"200px"}},e._l(e.actions,(function(t,n){return a("q-item",{key:n,attrs:{clickable:""},on:{click:t.handler}},[a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)},Gp=[],Kp={name:"ActionMenu",props:{actions:Object,dropdown:{type:Boolean,default:!1}}},Yp=Kp,Jp=Object(f["a"])(Yp,Qp,Gp,!1,null,"336359cc",null),Zp=Jp.exports;k()(Jp,"components",{QMenu:Gl["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"]});var Xp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-chip",{attrs:{clickable:!0,color:e.stage.color,"text-color":e.stage.color,"icon-right":e.stage.icon,outline:e.stage.index!==e.current_stage}},[a("div",[e._v(e._s(e.stage.index+1)+". "+e._s(e.stage.label))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-down",touchPosition:!1}},[a("q-card",{staticClass:"overflow-hidden non-selectable",staticStyle:{"min-width":"200px","max-width":"320px","max-height":"480px"}},[a("q-card-section",[a("div",{staticClass:"flex items-center no-wrap"},[a("div",{staticClass:"text-h6 text-weight-bold ellipsis"},[e._v(e._s(e.stage.label))]),a("q-badge",{staticClass:"q-ml-xs",attrs:{color:e.stage.color,"text-color":e.stage.color}},[a("div",[e._v(e._s(e.stage.status))])])],1),e.stage.subtitle?a("div",{staticClass:"text-caption"},[e._v(e._s(e.stage.subtitle))]):e._e()]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",[e._v(e._s(e.stage.desc))])]),e.stage.actions&&e.stage.actions.length?a("q-card-section",{staticClass:"q-pt-none column items-end q-pb-sm"},e._l(e.stage.actions,(function(t,n){return a("q-btn",e._b({key:n,staticClass:"q-mb-xs",attrs:{unelevated:"",loading:e.loadingState==="action_"+n},on:{click:function(){return e.loadingWrapper(n,t.handler)}}},"q-btn",t,!1))})),1):e._e()],1)],1)],1)},em=[],tm={name:"TaskItemStage",i18n:Wp,data(){return{loadingState:null}},props:{status:String,stage:Object,current_stage:Number},methods:{async loadingWrapper(e,t){try{this.loadingState=`action_${e}`,await t()}finally{this.loadingState=null}}}},am=tm,nm=a("da23"),om=Object(f["a"])(am,Xp,em,!1,null,"02a3e274",null),im=om.exports;k()(om,"components",{QChip:nm["a"],QMenu:Gl["a"],QCard:v["a"],QCardSection:re["a"],QBadge:kr["a"],QIcon:Y["a"],QBtn:le["a"]});var rm={name:"TaskItem",i18n:Wp,components:{ActionMenu:Zp,TaskItemStage:im},props:{id:String,category:String,icon:String,title:String,current_stage:Number,status:String,member:String,stages:Array}},sm=rm,lm=Object(f["a"])(sm,Hp,Vp,!1,null,null,null),cm=lm.exports;k()(lm,"components",{QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QItemLabel:Ie["a"],QBtn:le["a"]});const dm=function(e){const t={id:"SubscribeGithubRepo",category:"SubscribeGithubRepo",icon:"fab fa-github",title:this.$t("task_github_subscribe_repo.title"),current_stage:0,status:"enabled",member:null,stages:[]},a=(e,t)=>this.$t(`task_github_subscribe_repo.task_stage.${e}`,t);if(t.stages.push({index:0,label:a("connect_to_github.label"),desc:a("connect_to_github.desc")},{index:1,label:a("subscribe_repo.label"),desc:a("subscribe_repo.desc")},{index:2,label:a("subscribe_repo_for.label",{month:1}),desc:a("subscribe_repo_for.desc",{month:1})},{index:3,label:a("subscribe_repo_for.label",{month:3}),desc:a("subscribe_repo_for.desc",{month:3})}),e){const a=JSON.parse(e.metadata);Object.assign(t,{id:e.id,current_stage:a.stage+1,member:e.member,status:e.status})}return t.stages.forEach(((a,n)=>{const o=n===t.current_stage,i=nt.current_stage,s=i?"done":r?null:{succeed:"done",cancelled:"close",failed:"error"}[t.status]||"more_horiz",l=i?"positive":r?"general":{succeed:"positive",cancelled:"negative",failed:"negative"}[t.status]||"positive",c=this.$t("task_panel.stage_status."+(i?"completed":r?"not_started":"in_progress"));if(Object.assign(a,{icon:s,color:l,status:c}),a.actions=a.actions||[],0===n&&a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_connect"),handler:()=>{this.$router.push({name:"AccountSettings"})}}),1!==n||i||a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_subscribe"),handler:()=>{const e="https://github.com/tanshuai/alphabiz";window.open(e,"_blank")}}),[2,3].includes(n)&&t.current_stage>1){const t=JSON.parse(e.metadata);a.subtitle=this.$t("task_github_subscribe_repo.subscribed_at",{time:this.$d(new Date(t.subscribed_at),"YMD"),days:Math.max(0,Math.floor((new Date-new Date(t.subscribed_at))/864e5*10)/10)})}if([1,2,3].includes(n)){var d;const t=JSON.parse(null!==(d=null===e||void 0===e?void 0:e.metadata)&&void 0!==d?d:"{}"),i=o&&(2===n?new Date-new Date(t.subscribed_at)>2592e6:3!==n||new Date-new Date(t.subscribed_at)>7776e6),r={disable:!i,label:this.$t("task_github_subscribe_repo.task_action.get_bonus"),handler:async()=>{try{const t=await this.$account.core.updateGithubTask(e.member);await this.updateTaskList(),console.log(t,e)}catch(t){this.$q.notify({type:"negative",position:"bottom-right",message:t.message})}}};a.actions.push(r)}})),t};var um={name:"index",i18n:Wp,components:{TaskItem:cm},data(){return{loadingState:null,taskList:null}},computed:{taskItems(){const e=[];return this.taskList.forEach((t=>{i[t.category]&&"cancelled"!==t.status&&e.push(i[t.category].call(this,t))})),e.some((e=>"SubscribeGithubRepo"===e.category))||e.push(dm.call(this)),e}},mounted(){this.reloadTaskList()},methods:{async reloadTaskList(){const e=async()=>{try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){throw e}};try{this.loadingState="loading",await e()}finally{this.loadingState=null}},async updateTaskList(){try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){this.$q.notify({type:"negative",position:"bottom-right",message:e.message})}}}},_m=um,pm=Object(f["a"])(_m,Rp,Mp,!1,null,null,null),mm=pm.exports;k()(pm,"components",{QPage:Li["a"],QBtn:le["a"],QSpinnerIos:at["a"],QIcon:Y["a"],QList:ht["a"]});var hm={name:"TaskPage",i18n:Wp,components:{Layout:Up,TaskCard:mm}},gm=hm,fm=Object(f["a"])(gm,Ap,Ip,!1,null,null,null),bm=fm.exports;function ym(e){const t={persistent:!0,transitionShow:"slide-up",transitionHide:"slide-down"};let a;const n=u["a"].create({component:{render(o){return o(y["a"],{ref:"dialog",props:t,on:{hide:()=>this.$emit("hide")}},[o(Object.assign({},e,{mixins:[...e.mixins||[],{beforeCreate(){a=this},methods:{closePopup(){n.hide()}}}]}))])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}});return new Proxy({},{get(e,t){return n[t]?Reflect.get(n,t):Reflect.get(a,t)},set(e,t,o){return n[t]?Reflect.set(n,t,o):Reflect.set(a,t,o)}})}k()(fm,"components",{QToolbar:ji["a"],QToolbarTitle:Ni["a"],QBtn:le["a"]}),k()(fm,"directives",{ClosePopup:Yl["a"]});const vm=function(e){return{beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)}}};let wm=null;var km={TaskPage(){wm=wm||vm(bm.name),bm.mixins=Array.from(new Set((bm.mixins||[]).concat(wm)));ym(bm)}},Sm={onCreateCore(e,t,a){return{...Pp}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return e.component("TaskCard",mm),{...km}}};const Cm=Gc.PluginInstaller("$account");Object.assign(Cm.context,{$test:Yc});var xm=Cm.exportAsVuePlugin();const $m={Auth:e_,ReCaptcha:a_,MFA:R_,Invitation:M_,OAuth:$p,Task:Sm};var Tm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",flat:"",color:"negative","text-color":"negative",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}}),e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:function(t){e.showDevDialog=!e.showDevDialog}}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"flex items-center",staticStyle:{padding:"4px 12px"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",flat:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{flat:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)},zm=[];const Pm={components:{Development:Hl["default"]},data(){return{showDevDialog:!1}}},Am={data(){return{languageOptions:Wl["b"]}},computed:{language:{get(){const e=x["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(x["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(xa["isElectron"])())){const{ipcRenderer:e}=a("b052");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}}};var Im={name:"Corner",mixins:[Am,Pm],methods:{showAboutDialog(){xa["Bus"].$emit("CALL_ABOUT")}}},qm=Im,Om=(a("8460"),Object(f["a"])(qm,Tm,zm,!1,null,null,null)),Em=Om.exports;k()(Om,"components",{QBtn:le["a"],QTooltip:St["a"],QDialog:y["a"],QSpace:se["a"],QSeparator:ce["a"],QMenu:Gl["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"],QColor:Z["a"]}),k()(Om,"directives",{Ripple:Kl["a"],ClosePopup:Yl["a"]});var Dm=a("67b6"),jm=a("76ec"),Nm=a("9a08"),Lm=async({Vue:e,app:t,router:a})=>{Um(e,[...rs]),e.use(rc,{app:t}),e.use(xm,{app:t,app_config:{protocol:F.a.protocol,web_url:F.a.webEditionUrl},awsconfig:lc,extensions:$m,gql:{queries:cc,mutations:dc,subscriptions:uc}}),e.use(ss["a"],{app:t}),e.use(ls["b"],{app:t,router:a});const n=e.prototype.$account;n.$on("createSignInPage",(e=>{e.corner=Em})),n.$on("signUp.showLicenseTerms",(()=>{return e.call(n.view.SignInPage);function e(){Dm["a"].call(this,{title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:jm["a"]},terms:{label:"Terms",markdown:Nm["a"]}}})}}))};function Um(e,t){var a;const n=null===(a=e.config)||void 0===a?void 0:a.errorHandler;e.config.errorHandler=function(){const e=t.filter((e=>e.match(...arguments)));if(e.length>0)e.forEach((e=>e.execute(...arguments)));else{if(!n)throw arguments[0];n.apply(this,arguments)}}}var Rm=a("15eb");const Mm="/";async function Fm(){const{app:e,store:t,router:a}=await T();let n=!1;const o=e=>{n=!0;const t=Object(e)===e?a.resolve(e).route.fullPath:e;window.location.href=t},i=window.location.href.replace(window.location.origin,""),s=[me,es,ns["a"],Lm,Rm["a"]];for(let c=0;!1===n&&c{const t="magnet:?xt=urn:btih:"+e.hash+"&dn="+(encodeURIComponent(e.name)||e.origin||e.hash).replace(`${n["protocol"]}:///`,"");let a="";if(e.trackers&&(a+=e.trackers.filter((e=>e.length)).map((e=>`&tr=${encodeURIComponent(e)}`)).join("")),e.data)for(const n in e.data){var o;null!==(o=e.data[n])&&void 0!==o&&o.length&&(a+=e.data[n].map((e=>`&${n}=${encodeURIComponent(e)}`)).join(""))}return t+a},s=e=>{var t;const a=new URL(e);if("magnet:"!==a.protocol)throw new Error("Input is not a magnet uri");const n=a.searchParams.get("xt"),o=null===(t=n.match(/[^:]+$/))||void 0===t?void 0:t[0];if(!o)throw new Error("Cannot parse magnet infoHash");const r=a.searchParams.get("dn")||"",s=a.searchParams.getAll("tr").map((e=>{const t=i.a.getIdByTracker(e);return-1!==t?t:e})),l={};return a.searchParams.forEach(((e,t)=>{["xt","dn","tr"].includes(t)||(l[t]||(l[t]=[]),l[t].push(e))})),{protocolType:"01",hash:o,name:r,trackers:s,data:l}};t["a"]={fromObject:r,toObject:s}},ecef:function(e,t,a){"use strict";a.r(t);var n=a("e3c7"),o=a("8a63");n["ioServer"].on("some_api",(()=>{})),n["ipcRenderer"].on("some-api",(()=>{})),n["ioServer"].on("request-provident-payment",(e=>{n["ioServer"].emit("request-provident-payment",e)})),n["ioServer"].on("credit_payment_created",(e=>{n["ioServer"].emit("payment-info",e)})),n["ioServer"].on("restart_payment",(e=>{n["ioServer"].emit("restart-payment",e)})),n["ioServer"].on("payment_verified",(e=>{n["ioServer"].emit("payment-verified",e)})),n["ioServer"].on("webtorrent-request-renew",(e=>{n["ioServer"].emit("request_renew",e)})),n["ioServer"].on("webtorrent-payment-finished",(e=>{n["ioServer"].emit("payment_finished",e)})),n["ioServer"].on("webtorrent-finish-all-payments",(e=>{if(null===e||void 0===e||!e.connections)return console.log("skip unknown tr",e,null===e||void 0===e?void 0:e.connections);const t=e.connections;t.forEach((e=>{e.transactions&&e.transactions.forEach((e=>{console.log("Finish pending",e),n["ioServer"].emit("payment_finished",{id:e})}))}))})),n["ioServer"].on("webtorrent-set-throttle",(e=>{0!==e.code&&n["ioServer"].emit("client_error",e.message)})),n["ioServer"].on("webtorrent-verify-payment",(e=>{n["ioServer"].emit("verify_payment",e)})),n["ioServer"].on("webtorrent-payment-completed",(e=>{n["ioServer"].emit("payment_completed",e)})),n["ioServer"].on("complete_payment",(e=>{n["ioServer"].emit("complete-payment",e)})),n["ioServer"].on("finish_payment",(e=>{n["ioServer"].emit("finish-payment",e)})),n["ioServer"].on("payment_closed",(e=>{n["ioServer"].emit("close-payment",e)})),n["ioServer"].on("set-throttle-group",(e=>{n["ioServer"].emit("set-throttle-group",{...e,peerId:null===e||void 0===e?void 0:e.id})})),n["ioServer"].on("download-and-play",(e=>{console.log("should download and play",e),Object(o["b"])("download",e.url)}))},edfe:function(e,t,a){"use strict";(function(e){a.d(t,"b",(function(){return S})),a.d(t,"a",(function(){return $}));a("de6c"),a("d4b5"),a("7a76");const{EventEmitter:n}=a("bf30"),o=a("3fd2"),{ipcRenderer:i}=o.renderer()?a("b052"):a("e3c7"),r=a("8b5b"),s=1e7,l=1,c=new Map,d=new Map,u=new Map,_=new Map,p=new Map,m=new Map,h=new Map,g=new Map,f=(e,t)=>{h.has(e)||h.set(e,0),g.has(e)||g.set(e,0);const a=h.get(e)+t;h.set(e,a);const n=Math.floor(a/1e8),o=n-g.get(e);o>0&&(console.log("Request provident payment for",e,"count:",o),i.send("request-provident-payment",{infoHash:e,count:10*o}),g.set(e,n))},b=[],y=new Map,v="undefined"!==typeof localStorage?localStorage.getItem("userInfo"):null,w=v?JSON.parse(v):{user:"",sub:""};console.log("Init user",w);let k=null;const S=e=>{k=e,k.userInfo=w,k.on("request-renew",(e=>i.send("webtorrent-request-renew",e))),k.on("verify-payment",(e=>i.send("webtorrent-verify-payment",e)))};i.on("set-user",((e,t)=>{t||(t=e),console.log("set user",t),w.user=t.user,w.sub=t.sub,"undefined"!==typeof localStorage&&localStorage.setItem("userInfo",JSON.stringify(w)),k.torrents.forEach((e=>{e.wires.forEach((e=>{e._is_alphabiz_peer_&&e.alphabiz_protocol&&e.alphabiz_protocol._sendUserInfo()}))}))}));const C=(e,t)=>{t||(t=e),console.log("Payment info",t);const a=k.get(t.infoHash);if(t.payedSize=t.payed*s/l,u.set(t.id,t),!a||!a.wires.length){if(b.some((e=>e.id===t.id)))return;return b.push(t)}for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSubId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment:JSON.stringify({infoHash:t.infoHash,peerId:t.peerId,subId:w.sub,payed:t.payed,autoRenew:!0,id:t.id})})}};i.on("payment-info",C),i.on("restart-payment",C),i.on("payment-verified",((e,t)=>{t||(t=e);const a=k.get(t.infoHash);if(!a||!a.wires.length)return console.log("tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.subId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._onPaymentVerified({infoHash:t.infoHash,peerId:t.peerId,subId:w.sub,payed:t.payed,autoRenew:!0,id:t.id})}})),i.on("finish-payment",((e,t)=>{const a=k.get(t.infoHash);if(!a||!a.wires.length)return console.log("finish: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_finish:t.transactionId}),n.transactions&&n.transactions.includes(t.transactionId)&&n.transactions.splice(n.transactions.indexOf(t.transactionId),1)}})),i.on("close-payment",((e,t)=>{t||(t=e);const a=k.get(t.infoHash);if(!a||!a.wires.length)return console.log("close: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_close:JSON.stringify({infoHash:t.infoHash,id:t.id})})}}));const x=e=>{if(console.log("To remove",e),!e||!e.infoHash)return;const t=e.infoHash,a=y.get(t);for(let n=0;n{const o="alphabiz_protocol";class h extends n{constructor(e){super(),this._wire=e,this._peerId=null,this._infoHash=a.infoHash,this.isSeeding=a.isSeeding,this.download=a.download,this._user=w.user||"",this._subId=w.sub||"",this.remoteSub="",this.uniqueId="",this._wire._setThrottleGroup=e=>this._setThrottleGroup(e),this.maxUploadSpeed=1e6,this._wire.maxUploadSpeed=1e6,this._initUpload(),this._initDownload()}onHandshake(e,t){this._infoHash=e,this._peerId=t,this._sendUserInfo()}_sendUserInfo(){this._user=w.user||"",this._subId=w.sub||"",this._send({ab_peer:"_ab_"+this._peerId,ab_user:this._user,ab_sub:this._subId,ab_has_meta:a.metadata?1:0}),a.metadata||a.once("metadata",(()=>{this._send({ab_has_meta:1})}))}onExtendedHandshake(e){e.m&&e.m[o]||console.error("Client does not support",o)}_sendByteMap(){a.byteMap&&this._send({ab_byte_map:JSON.stringify(a.byteMap)})}_initDownload(){const t=this._wire,a=a=>{if(Math.random()>.99&&e.memoryUsage().rss/1e9>3&&e.exit(1),this.isSeeding)return;if(!this.remoteSub||!this.uniqueId)return void f(this._infoHash,a);p.get(this.uniqueId)||p.set(this.uniqueId,t.downloaded||0);const n=p.get(this.uniqueId);p.set(this.uniqueId,n+a)};t.on("download",a)}_initUpload(){const e=this._wire,t=t=>{if(!this.remoteSub||!this.uniqueId)return;if(this.remoteSub===this._subId)return;const a=c.get(this.uniqueId)-t;if(isNaN(a))return;const n=y.get(this._infoHash);if(n&&n.length&&(n[0].payedSize-=t,n[0].payedSize<0)){const e=n.shift();i.send("webtorrent-payment-completed",{transactionId:e.id,infoHash:this._infoHash,remoteSub:this.remoteSub})}const o=e.uploadSpeed?e.uploadSpeed():1e6;o>this.maxUploadSpeed&&(this.maxUploadSpeed=1e6*Math.ceil(o/1e6),this._wire.maxUploadSpeed=this.maxUploadSpeed);const r=m.get(this.uniqueId)||[],s=r.reduce(((e,t)=>e+(t.maxUploadSpeed||1e6)),0)||this.maxUploadSpeed;if(d.get(this.uniqueId)&&a<5*s){d.set(this.uniqueId,!1);const e=Math.ceil(s/1e6);console.log("[[wt-ext]] _send ab_renew left < 5*speed",e),this.renew(e<10?10:e)}if(a<=0){if(this._setThrottleGroup("mid"),c.set(this.uniqueId,0),d.get(this.uniqueId)||!d.has(this.uniqueId)){const e=Math.ceil(s/1e6);d.set(this.uniqueId,!1),console.log("[[wt-ext]] _send ab_renew from left<=0",e),this.renew(e<10?10:e)}}else this._setThrottleGroup("high"),c.set(this.uniqueId,a)};e.on("upload",t);const n=()=>{this._wire.transactions&&(i.send("webtorrent-task-done",{infoHash:a.infoHash,name:a.name,payments:this._wire.transactions}),this._send({ab_task_done:this._wire.transactions.join("$")}))},o=()=>this._sendByteMap();e.on("close",(()=>{a.off("done",n),a.off("byte-map-change",o);const t=m.get(this.uniqueId);t&&t.includes(e)&&(console.log("remove same wire"),t.splice(t.indexOf(e),1))})),a.on("done",n),a.on("byte-map-change",o)}_onAbPeer(e,t,n){if(!e.startsWith("_ab_"))return;if(this._remotePeerId=e.substring(4),this._wire._is_alphabiz_peer_=!0,this._wire.ab_peer=e,this._wire.remoteUser=t,this._wire.remoteSub=n,this._wire.transactions=[],this.remoteSub=n,this.uniqueId=n+"#"+this._infoHash,m.has(this.uniqueId)){const e=m.get(this.uniqueId);e.includes(this._wire)||e.push(this._wire)}else m.set(this.uniqueId,[this._wire]);if(_.has(this.uniqueId)||_.set(this.uniqueId,0),_.get(this.uniqueId)>this._wire.downloaded&&_.set(this.uniqueId,this._wire.downloaded),a._has_alphabiz_user_=!0,a.emit("ab_peer",e),this._subId===this.remoteSub)return console.log("[wt-ab-peer] Connected to self"),this._sendByteMap(),void this._setThrottleGroup("high");if(n&&c.get(this.uniqueId)>0?this._onPaymentVerified({infoHash:a.infoHash,subId:n,autoRenew:!0,payed:0},!0):(this._setThrottleGroup("mid"),this.isSeeding&&!c.get(this.uniqueId)&&(this._sendByteMap(),setTimeout((()=>{this.renew()}),1e3))),b.length)for(let a=0;a{this._wire&&!this._wire.destroyed||clearInterval(o),this.isSeeding||"mid"!==this._wire.remoteGroup||this.isSeeding||this._onRenew(this.remoteSub,10)}),5e3)}renew(e=10){this._subId!==this.remoteSub?this._subId?this._send({ab_renew:this._subId,ab_count:e}):console.warn("Cannot get subId"):console.log("[wt-renew] Remote account is same as local")}_setThrottleGroup(e){const a=this._wire._uploadThrottle;if(a&&a._group){if(!t.throttleGroups[e])throw new Error("level_not_found");a._group!==t.throttleGroups[e]&&(console.log("[[wt-ext]] _setThrottleGroup",e),d.set(this.uniqueId,!0),"mid"===e&&a._group===t.throttleGroups.high&&(console.log("Peer dropped back to mid. Send renew request",this._subId,this._infoHash),this.renew(),setTimeout((()=>{a._group!==t.throttleGroups.high&&(console.log("Peer is still in mid. Send renew request",this._subId,this._infoHash),this.renew())}),5e3)),a._group._removeThrottle(a),t.throttleGroups[e]._addThrottle(a),a._group=t.throttleGroups[e],console.log("[[wt-ext]] _send ab_speed_group: ",e),this._send({ab_speed_group:e}))}}_onSpeedGroup(e){console.log("[[wt-ext]] _onSpeedGroup",e),this._wire.remoteGroup=e}_onPaymentReceived(e){t.emit("verify-payment",e)}_onPaymentVerified({infoHash:e,payed:t,id:n}){const o=this.remoteSub;if(console.log("payment verified"),!o||!this.uniqueId)return;if(this._setThrottleGroup("high"),d.set(this.uniqueId,!0),!n||u.has(n))return;const i=t*s/l;if(u.set(n,{infoHash:e,payed:t,autoRenew:!0,id:n,payedSize:i}),e!==a.infoHash)return;if(isNaN(i))return;c.has(this.uniqueId)||c.set(this.uniqueId,0);const r=c.get(this.uniqueId);c.set(this.uniqueId,r+i),y.has(e)||y.set(e,[]);const _=y.get(e);_.push({infoHash:e,subId:o,payedSize:i,id:n,startPosition:this._wire.recieved}),this._send({ab_payment_accepted:n})}_onPaymentAccepted(e){this._wire.transactions.push(e)}_onPaymentCompleted(e){console.log("Completed",e,this.remoteSub),i.send("webtorrent-payment-completed",{transactionId:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),this._wire.transactions.includes(e)&&this._wire.transactions.splice(this._wire.transactions.indexOf(e),1)}_onTaskDone(e){const t=e.split("$").filter((e=>e.length));if(console.log("Remote task done"),t.length)for(const a of t)this._onPaymentCompleted(a);c.delete(this.remoteSub,this._infoHash)}_onPaymentFinished(e){console.log("Finished",e);const t=u.get(e);if(t){const n=p.get(this.uniqueId)||0;_.has(this.uniqueId)||_.set(this.uniqueId,0);const o=_.get(this.uniqueId),r=n-o;r>.9*t.payedSize||a.done||a.downloaded>=.9*a.length?(i.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),_.set(this.uniqueId,o+(r>t.payedSize?t.payedSize:r)),console.log(`Payment ${e} is finished. Payed for ${t.payedSize}. Received ${r}. Done: ${a.done}`),console.log("Update prev-download",o,_.get(this.uniqueId))):(console.log(`Payment ${e} is marked as not-finished. Payed for ${t.payedSize}. Received ${r}`),console.log(`Prev: ${o}. Downloaded: ${n}`))}else i.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash})}_onPaymentClosed(e){console.log("Close",e),x(e)}_onRenew(e,a=10){const n=a&&parseInt(a)?parseInt(a):10;console.log("[[wt-ext]] _onRenew",e,this._remotePeerId,n),t.emit("request-renew",{infoHash:this._infoHash,peerId:this._remotePeerId,payCount:n,subId:e})}onMessage(e){let t;try{t=r.decode(e)}catch(n){return void console.error("cannot decode buf",e)}if(t.ab_has_meta&&(this._wire.remote_has_meta=!0),t.ab_byte_map&&(this._wire.remote_byte_map=JSON.parse(t.ab_byte_map.toString())),t.ab_peer)return this._onAbPeer(t.ab_peer.toString(),t.ab_user&&t.ab_user.toString(),t.ab_sub&&t.ab_sub.toString());if(t.ab_speed_group)return this._onSpeedGroup(t.ab_speed_group.toString());if(t.ab_payment){const e=JSON.parse(t.ab_payment.toString());return console.log("Protocol payment",e),this._onPaymentReceived(e)}return t.ab_payment_completed?this._onPaymentCompleted(t.ab_payment_completed.toString()):t.ab_payment_accepted?this._onPaymentAccepted(t.ab_payment_accepted.toString()):t.ab_payment_finish?this._onPaymentFinished(t.ab_payment_finish.toString()):t.ab_payment_close?this._onPaymentClosed(JSON.parse(t.ab_payment_close.toString())):t.ab_task_done?this._onTaskDone(t.ab_task_done.toString()):t.ab_renew?this._onRenew(t.ab_renew.toString(),null===(a=t.ab_count)||void 0===a?void 0:a.toString()):void 0;var a}_send(e){const t=Object.entries(this._wire.extendedMapping).find((e=>e[1]===o)),a=t&&t[0];a>=0&&this._wire.extended(Number(a),r.encode(e))}onClose(){console.log("onClose",this._wire);this._wire.recieved}}return h.prototype.name=o,h}}).call(this,a("28d0"))},ee3d:function(e,t){function a(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}a.keys=function(){return[]},a.resolve=a,e.exports=a,a.id="ee3d"},eec3:function(e,t,a){},f039:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a("0598");async function o(e,t,o){var i,r;if(console.log("drop",e,e.path,(null===e||void 0===e||null===(i=e.path)||void 0===i?void 0:i[0])===document.body),e&&e.path&&(null===e||void 0===e||null===(r=e.path)||void 0===r?void 0:r[0])===document.body)return void console.log("Drop to body");const s=o&&!t.length;if(s&&!o.match(/^(magnet)|(alphabiz):/))return;const l=!s&&t.length>1,c=!s&&!l&&Object(n["default"])()&&a("61af").existsSync(t[0].path)?a("61af").statSync(t[0].path).isDirectory():!a("a3fc").extname(t[0].path),d=s?"link":l?"file_copy":c?"folder":"insert_drive_file",u=document.createElement("i");u.classList="q-icon material-icons",u.appendChild(document.createTextNode(d)),u.style=`position: fixed; font-size: 36px; transition-duration: 0.5s; opacity: 1;left: ${e.clientX-18}px; top: ${e.clientY-18}px`;const _=document.body.appendChild(u);return new Promise((e=>{setTimeout((()=>{_.style.transform="translateY(24px)"}),50),setTimeout((()=>{_.style.transform+=" scale(4)",_.style.opacity=0,e()}),200),setTimeout((()=>{document.body.removeChild(_)}),1e3)}))}},f157:function(e,t,a){"use strict";a("848e")},f3f7:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f77d:function(e,t,a){"use strict";a("7686")},f7b1:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f817:function(e,t,a){"use strict";a("9f42")},fb31:function(e,t,a){(function(t){const{isElectron:n}=a("d310");if(n())if(this.require)try{const a=this["require"]("developer/app");console.log("Init from node_modules",t),a.appName=a.name,e.exports={default:a,appName:a.name,...a}}catch(o){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=n()?require("developer/app"):a("b3f7");t.appName=t.name,console.log("APP name:",t.appName,"production",!0),e.exports={default:t,appName:t.name,...t}}else{const t=a("b3f7");e.exports={appName:t.name,...t}}}).call(this,a("28d0"))},fc65:function(e,t,a){"use strict";a("ac84")},fe8f:function(e,t,a){},feef:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[a("q-card",{staticStyle:{width:"400px","max-width":"80vw","overflow-x":"hidden"}},[a("q-card-section",["download"===e.mode?a("q-tabs",{staticClass:"text-primary",attrs:{"no-caps":""},model:{value:e.tab,callback:function(t){e.tab=t},expression:"tab"}},[a("q-tab",{attrs:{name:"url",label:this.$t("link_task")}}),a("q-tab",{attrs:{name:"file",label:this.$t("torrent_task")}})],1):a("div",{staticClass:"upload-title text-primary text-center q-mt-sm q-mb-md text-subtitle2"},[e._v("\n "+e._s(e.$t("upload"))+"\n ")])],1),a("q-card-section",{staticClass:"q-pt-none"},["url"===e.tab&&"download"===e.mode?a("q-input",{staticClass:"url-input q-py-sm",attrs:{dense:"",type:"textarea","input-style":"white-space:nowrap"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}}):e._e(),"file"===e.tab||"upload"===e.mode?a("q-input",{attrs:{readonly:"",type:"text",label:e.$t("file"),value:e.inputFile&&e.inputFile[0]&&e.inputFile[0].name||""}}):e._e(),a("div",{staticClass:"file-selectors"},["file"===e.tab||"upload"===e.mode?a("FileSelector",{attrs:{accept:"download"===e.mode?{extensions:["torrent"]}:null},on:{select:e.onFileSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"note_add",label:e.$t("select_file")}})],1):e._e(),"upload"===e.mode&&e.isElectron?a("FileSelector",{attrs:{directory:""},on:{select:e.onFolderSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"create_new_folder",label:e.$t("select_folder")}})],1):e._e()],1),e.isElectron?a("div",{staticClass:"configuration-variable q-pt-sm"},[a("q-input",{directives:[{name:"show",rawName:"v-show",value:"download"===e.mode&&e.isElectron,expression:"mode === 'download' && isElectron"}],staticStyle:{width:"100%"},attrs:{label:this.$t("download_directory_position")},on:{click:e.selectSavePath},model:{value:e.settings.downloadDirectory,callback:function(t){e.$set(e.settings,"downloadDirectory",t)},expression:"settings.downloadDirectory"}})],1):e._e()],1),a("q-card-actions",{staticClass:"text-primary",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:this.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:"download"===e.mode?this.$t("download"):this.$t("upload")},on:{click:e.submit}})],1)],1)],1)},o=[],i=a("aecb"),r=i["a"],s=(a("b389"),a("2b5f")),l=a("b2aa"),c=a("e586"),d=a("d7c7"),u=a("74cb"),_=a("ec78"),p=a("0e45"),m=a("3927"),h=a("1043"),g=a("59ba"),f=a("a431"),b=a("09a4"),y=a.n(b),v=Object(s["a"])(r,n,o,!1,null,"a418da6e",null);t["a"]=v.exports;y()(v,"components",{QDialog:l["a"],QCard:c["a"],QCardSection:d["a"],QTabs:u["a"],QTab:_["a"],QInput:p["a"],QFile:m["a"],QBtn:h["a"],QCardActions:g["a"]}),y()(v,"directives",{ClosePopup:f["a"]})}}); \ No newline at end of file diff --git a/dist/spa/js/app.fb219348.js b/dist/spa/js/app.fb219348.js deleted file mode 100644 index bd5a4c01..00000000 --- a/dist/spa/js/app.fb219348.js +++ /dev/null @@ -1 +0,0 @@ -(function(e){function t(t){for(var n,o,s=t[0],l=t[1],c=t[2],d=0,u=[];de+" --- |"),"| ")+"\n";return a+n+e.reduce(((e,t)=>e+t.reduce(((e,t,a)=>a?`${e} \`${t}\` |`:`| ${t} |`),"")+"\n"),"")}function h(e,t){return`
${e}\n\n${t}\n
\n\n`}function g({type:e,text:t,version:a,devInfo:n}){const o=n?h("System info",m(n)):"";return`**Issue type**: ${e}\n\n**Describe the bug**:\n\n${t}\n\n`+(a?`---\n\n**App version**: \`${a}\`\n\n`:"")+(o||"(User disabled submitting system info)")}var f=a("47fc");const b=async()=>{if(Object(p["a"])()){const e=await(await Promise.resolve().then(a.bind(null,"a368"))).Device.getInfo();return[["Key","Value"],["Mode","Mobile(Capacitor)"],["Platform",e.platform],["OS",e.operatingSystem+" "+e.osVersion],["Model",e.model],["Manufacturer",e.manufacturer],["Webview version",e.webViewVersion],["isVirtual",e.isVirtual]]}if(!Object(_["default"])()){const e=Object(f["a"])();return[["Key","Value"],["Mode","Web"],["OS",e.os+" "+e.osVersion],["Browser",e.browser+" "+e.browserVersion],["Mobile",e.mobile?"Yes":"No"],["Platform",navigator.platform||"Unknown"],["User-Agent",navigator.userAgent]]}const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"b052",7));return new Promise((t=>{e.once("dev-info",((e,a)=>{t([["Key","Value"],["Mode","Electron"],["OS",a.osPlatform?a.osPlatform+" "+a.osRelease:"Unknown"],["OS kernel",a.osVer||"Unknown"],["Electron version",a.electronVer||"Unknown"],["Chrome version",a.chromeVer||"Unknown"],["Node version",a.nodeVer||"Unknown"]])})),e.send("dev-info")}))};async function y({type:e,category:t,title:a,details:n,withDevInfo:o=!1}={}){const i=o?await b():null,s=g({type:e,text:n,version:Object(r["a"])("version"),devInfo:i});return{title:`[${t||e}] ${a}`,body:s}}a("dc89"),a("2425");var v=a("d710");const{github:w}=v["update"],k=`https://github.com/${w.username}/${w.repo}/`;function S({title:e,body:t}){const a=new URL("issues/new",k);return a.searchParams.set("title",e),a.searchParams.set("body",t),a.toString()}var C,x=a("aa9c"),$=a("623f"),T=a.n($);const z="https://twitter.com/intent/tweet?text=",P=v["twitterAccount"].trim()+" ";function A(e){return x["a"].parseTweet(P+e).weightedLength}const I=(null===T.a||void 0===T.a||null===(C=T.a.defaults)||void 0===C?void 0:C.maxWeightedTweetLength)||280;function q(e){return A(e)<=I}function O(e){return e.substring(0,x["a"].parseTweet(e).displayRangeEnd-4)+"..."}function E(e){let t=P+e;return q(e)||(t=O(t)),`${z}${encodeURIComponent(t)}`}var D={props:{show:Boolean},data(){return{title:"",details:"",withDevInfo:!0,target:"github",type:{value:"Twitter",label:this.$t("tweet_us")},typeOptions:[{value:"Twitter",label:this.$t("tweet_us")},{value:"Bug report",label:this.$t("report_a_bug")},{value:"Feature request",label:this.$t("request_a_new_feature")}],category:{value:"",label:this.$t("select_a_category")},categoryOptions:[{value:"",label:this.$t("select_a_category")},{value:"Download",label:this.$t("download_or_upload")},{value:"Player",label:this.$t("player")},{value:"Account",label:this.$t("account")},{value:"Credits",label:this.$t("credits")},{value:"Settings",label:this.$t("settings")},{value:"Others",label:this.$t("others")}]}},computed:{isTwitter(){return"Twitter"===this.type.value},descRules(){return this.isTwitter?[e=>q(e)||this.$t("tweet_too_long")]:[]},twitterLength(){return this.isTwitter?A(this.details):0},restChars(){return I-this.twitterLength},twitterHint(){return this.restChars<0?this.$t("delete_characters",[Math.abs(this.restChars)]):this.$t("rest_characters",[this.restChars])},disableSubmit(){return this.isTwitter?this.restChars<0||!this.details.trim():!this.title.trim()}},methods:{submitTwitter(){q(this.details)&&(window.open(E(this.details),"_blank"),this.close())},async submitGithub(){const e=await y({type:this.type.value,category:this.category.value,title:this.title,details:this.details,withDevInfo:this.withDevInfo});let t;switch(this.target){case"github":t=S(e);break}t&&(window.open(t,"_blank"),this.close())},close(){this.$emit("close")},submit(){return this.isTwitter?this.submitTwitter():this.submitGithub()}}},j=D,N=(a("9e98"),a("2b5f")),L=a("b2aa"),U=a("e586"),R=a("d7c7"),M=a("a4ac"),F=a("0e45"),B=a("7498"),W=a("1043"),H=a("09a4"),V=a.n(H),Q=Object(N["a"])(j,d,u,!1,null,null,null),G=Q.exports;V()(Q,"components",{QDialog:L["a"],QCard:U["a"],QCardSection:R["a"],QSelect:M["a"],QInput:F["a"],QCheckbox:B["a"],QBtn:W["a"]});var K=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{staticClass:"diagnotic",attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[a("q-card",{staticClass:"diagnotic-main"},[a("q-card-section",{staticClass:"flex items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bolder"},[e._v(e._s(e.$t("network_diagnotic")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:""}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"row items-center no-wrap full-width",class:{"q-pt-none":!e.screen$xs}},[a("div",{staticClass:"q-mr-md"},[e.isChecking?a("q-avatar",[a("q-circular-progress",{staticStyle:{"margin-left":"-8px"},attrs:{indeterminate:"",color:"positive",size:"md"}})],1):e.isChecked?a("q-avatar",{attrs:{size:"lg",icon:e.isNetworkError?"close":"done",color:e.isNetworkError?"negative":"positive","text-color":e.isNetworkError?"negative":"positive"}}):a("q-avatar",{attrs:{size:"lg",icon:"construction",color:"general","text-color":"general"}})],1),a("div",[e._v(e._s(e.networkStatus))]),a("div",{staticClass:"col-grow row items-center justify-end"},[a("q-btn",{staticStyle:{width:"128px"},attrs:{"no-wrap":"","no-caps":"",unelevated:"",size:"0.8rem",color:"primary",label:e.$t("diagnotic"),disabled:e.isChecking},on:{click:e.checkNetwork}})],1)]),a("q-card-section",{staticClass:"q-px-none q-pt-none"},[e.isOffline?a("div",{staticClass:"offline"},[e._v(e._s(e.$t("offline")))]):a("div",{staticClass:"logs"},[a("q-item",{class:{disabled:"-"===e.dnsStatus.avgTime||e.dnsStatus.isError}},[a("q-item-section",{attrs:{avatar:""}},[e.dnsStatus.isChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):"-"===e.dnsStatus.avgTime?a("q-avatar",{attrs:{size:"lg",icon:"dns",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.dnsStatus.isError?"close":"done",color:e.dnsStatus.isError?"negative":"general","text-color":e.dnsStatus.isError?"negative":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("dns_look_up")))]),e.dnsStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("error")))]):"-"!==e.dnsStatus.avgTime?a("span",{staticClass:"text-primary"},[e._v(e._s(e.dnsStatus.avgTime+" ms"))]):e._e()],1)],1),a("q-expansion-item",{staticClass:"full-width aws",attrs:{disable:!e.awsStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isAwsChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.awsStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isAwsError?"close":"done",color:e.isAwsError?"negative":"general","text-color":e.isAwsError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"account_circle",color:"general","text-color":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("aws_service")))])]},proxy:!0}])},[a("div",{staticClass:"aws-results q-py-md q-px-lg"},e._l(e.awsStatus,(function(t){return a("div",{key:t.name,staticClass:"aws-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.name))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.avgTime?"text-primary":"text-red"},[e._v(e._s(t.avgTime?e.$t("online"):e.$t("offline")))])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.publicPingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPublicChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.publicPingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPublicError?"close":"done",color:e.isPublicError?"negative":"general","text-color":e.isPublicError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"public",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("network_pings")))]),a("small",{staticClass:"q-ml-sm",class:e.isPublicError?"text-red":"text-primary"},[e._v(e._s(e.publicPing))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.publicPingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width public-ping",attrs:{disable:!e.privatePingStatus.length},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isPrivateChecking?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.privatePingStatus.length?a("q-avatar",{attrs:{size:"lg",icon:e.isPrivateError?"close":"done",color:e.isPrivateError?"negative":"general","text-color":e.isPrivateError?"negative":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:"star",color:"general","text-color":"general"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("official_site")))])],1)]},proxy:!0}])},[a("div",{staticClass:"ping-results q-px-lg q-py-md"},e._l(e.privatePingStatus,(function(t){return a("div",{key:t.name,staticClass:"ping-result"},[a("span",{staticClass:"result-name"},[e._v(e._s(t.url))]),e._v(" -\n "),a("span",{staticClass:"time",class:t.alive?"text-primary":"text-red"},[e._v(e._s("-"!==t.avgTime?t.avgTime+"ms":e.$t("not_found"))+" ("+e._s(t.packetLoss)+"% "+e._s(e.$t("packet_loss"))+")")])])})),0)]),a("q-expansion-item",{staticClass:"full-width",attrs:{disable:e.trackerStatus.success.length+e.trackerStatus.fail.length===0},scopedSlots:e._u([{key:"header",fn:function(){return[a("q-item-section",{attrs:{avatar:""}},[e.isDownloading?a("q-avatar",[a("q-circular-progress",{attrs:{indeterminate:""}})],1):e.isDownloadInit?a("q-avatar",{attrs:{size:"lg",icon:"lan",color:"general","text-color":"general"}}):a("q-avatar",{attrs:{size:"lg",icon:e.isDownloadError?"close":"done",color:e.isDownloadError?"negative":"general","text-color":e.isDownloadError?"negative":"general"}})],1),a("q-item-section",[e._v(e._s(e.$t("download_test")))])]},proxy:!0}])},[a("div",{staticClass:"download-results q-px-lg q-py-md"},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTrackerResult,expression:"showTrackerResult"}],staticClass:"trackers"},[a("span",{staticClass:"result-name"},[e._v("Trackers")]),e._v("\n - "+e._s(e.trackerStatus.success.length)+" "+e._s(e.$t("connected"))+"\n ")]),a("div",{directives:[{name:"show",rawName:"v-show",value:e.showTorrentResult,expression:"showTorrentResult"}],staticClass:"torrent"},[a("span",{staticClass:"result-name"},[e._v(e._s(e.$t("test_task",["6.9 MB"])))]),a("span",[e._v(" - ")]),e.torrentStatus.isError?a("span",{staticClass:"text-red"},[e._v(e._s(e.$t("download_failed")))]):-1===e.torrentStatus.time?a("span",{staticClass:"text-normal"},[e._v(e._s(e.$t("downloading"))+"...")]):a("span",{staticClass:"text-primary"},[e._v(e._s(e.$t("second_spend",[e.torrentStatus.time])))])])])])],1)]),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],staticClass:"q-px-md q-pb-md q-pt-none",attrs:{align:"right"}},[a("q-btn",{attrs:{unelevated:"",label:e.$t("close")},on:{click:e.close}})],1)],1)],1)},Y=[],J=a("d7df"),Z={props:{show:Boolean},data(){return{isChecked:!1,isChecking:!1,isOnline:!1,networkStatus:this.$t("click_to_check"),dnsStatus:{isChecking:!1,isError:!1,results:[],avgTime:"-"},isPrivateChecking:!1,isPrivateError:!1,privatePingStatus:[],isPublicChecking:!1,isPublicError:!1,publicPing:"",publicPingStatus:[],isAwsChecking:!1,isAwsError:!1,awsStatus:[],trackerStatus:{success:[],fail:[],isChecking:!1,isError:!1},torrentStatus:{isChecking:!1,isError:!1,time:-1}}},computed:{isOffline(){return this.isChecked&&!this.isOnline},showPrivateResult(){return this.privatePingStatus.isChecking||"-"!==this.privatePingStatus.avgTime},isDownloading(){return this.trackerStatus.isChecking||this.torrentStatus.isChecking},isDownloadError(){return this.trackerStatus.isError||this.torrentStatus.isError},isDownloadInit(){return!this.isDownloadError&&!this.trackerStatus.isError&&-1===this.torrentStatus.time},showTrackerResult(){return this.trackerStatus.isChecking||this.trackerStatus.isError||!!this.trackerStatus.success.length},showTorrentResult(){return this.torrentStatus.isChecking||this.torrentStatus.isError||this.torrentStatus.time>-1},isNetworkError(){return this.isChecked&&(!this.isOnline||this.isDownloadError||this.dnsStatus.isError||this.isAwsError||this.privatePingStatus.some((e=>!e.alive))||this.publicPingStatus.every((e=>!e.alive)))}},methods:{initCheck(){this.isChecking=!0,this.dnsStatus={isChecking:!0,isError:!1,results:[],avgTime:"-"},this.isPrivateChecking=!1,this.isPrivateError=!1,this.privatePingStatus=[],this.isPublicChecking=!0,this.publicPing="",this.publicPingStatus=[],this.isPublicError=!1,this.isAwsChecking=!0,this.isAwsError=!1,this.awsStatus=[],this.trackerStatus={success:[],fail:[],isChecking:!0,isError:!1},this.torrentStatus={isChecking:!0,isError:!1,time:-1},this.networkStatus=this.$t("checking")+"..."},checkNetwork(){this.initCheck(),console.log("check"),J["a"].emit("check-network")},onCheckResult(e){switch(e.type){case"isOnline":this.isOnline=e.result;break;case"dnsCheckResult":this.dnsStatus.isChecking=!1,e.result.fail.length?this.dnsStatus.isError=!0:this.dnsStatus.isError=!1,this.dnsStatus.results.splice(0),this.dnsStatus.results.push(...e.result.success,...e.result.fail),this.dnsStatus.avgTime=e.result.avgTime;break;case"publicPingResult":this.isPublicChecking=!0,this.publicPingStatus.push(e.result),e.result.alive||(this.isPublicError=!0);break;case"publicPingEnd":this.isPublicChecking=!1,this.publicPing=e.result;break;case"privatePingResult":this.isPrivateChecking=!0,this.privatePingStatus.push(e.result),e.result.alive||(this.isPrivateError=!0);break;case"privatePingEnd":this.isPrivateChecking=!1;break;case"pingAwsEnd":this.isAwsChecking=!1,this.awsStatus.splice(0),this.awsStatus.push(...e.successServices,...e.errorServices),this.isAwsError=e.error;break;case"trackerCheckResult":"connected"===e.result.result?this.trackerStatus.success.push(e.result.url):this.trackerStatus.fail.push(e.result.url);break;case"trackerCheckEnd":this.trackerStatus.isChecking=!1,this.trackerStatus.success.splice(0),this.trackerStatus.success.push(...e.result.success),this.trackerStatus.fail.splice(0),this.trackerStatus.fail.push(...e.result.fail),e.result.success.length||(this.trackerStatus.isError=!0);break;case"torrentCheckResult":this.torrentStatus.isChecking=!1,this.torrentStatus.isError=e.result.error,this.torrentStatus.time=e.result.time;break}},onCheckEnd(e){console.log("end",e),"isOnline"in e&&(this.isOnline=e.isOnline),this.isChecking=!1,this.isChecked=!0,this.networkStatus=this.$t("click_to_check_again")},close(){this.$emit("close")}},mounted(){J["a"].on("check-network-end",this.onCheckEnd),J["a"].on("check-network-result",this.onCheckResult)},beforeDestroy(){J["a"].off("check-network-end",this.onCheckEnd),J["a"].off("check-network-result",this.onCheckResult)}},X=Z,ee=(a("88f5"),a("990e")),te=a("fc38"),ae=a("9f3e"),ne=a("64e7"),oe=a("b329"),ie=a("25fb"),re=a("79e0"),se=a("5bbd"),le=a("59ba"),ce=a("a431"),de=Object(N["a"])(X,K,Y,!1,null,"8fee9c62",null),ue=de.exports;V()(de,"components",{QDialog:L["a"],QCard:U["a"],QCardSection:R["a"],QSpace:ee["a"],QBtn:W["a"],QSeparator:te["a"],QAvatar:ae["a"],QCircularProgress:ne["a"],QItem:oe["a"],QItemSection:ie["a"],QItemLabel:re["a"],QExpansionItem:se["a"],QCardActions:le["a"]}),V()(de,"directives",{ClosePopup:ce["a"]});var _e=a("9f21");const{github:pe}=v["update"],me=l.a.renderer();var he={name:"AboutDialog",mixins:[_e["a"]],components:{Feedback:G,NetworkDiagnotic:ue},data(){return{displayName:v["displayName"],isElectron:me,isCapacitor:Object(p["a"])(),iconClickTime:0,dialogVisible:!1,appVersion:Object(r["a"])("version"),loading:!1,primaryIcon:"developer/assets/icon-256.png",showFeedback:!1,showNetworkDiagnotic:!1}},created(){i["Bus"].$on("CALL_ABOUT",(()=>{this.dialogVisible=!0})),i["Bus"].$on("CALL_NETWORK_DIAGNOSTIC",(()=>{this.toggleNetworkDiagnotic(!0)})),me&&Promise.resolve().then(a.t.bind(null,"b052",7)).then((({ipcRenderer:e})=>{e.on("about-dialog",(()=>{this.dialogVisible=!0}))}))},computed:{isAlphabizExperimental(){return"Alphabiz"===v["displayName"]&&(this.appVersion.includes("internal")||this.appVersion.includes("nightly"))}},methods:{close(){this.dialogVisible=!1},browserRelease(){const e=`https://github.com/${pe.username}/${pe.repo}/releases`;me?Promise.resolve().then(a.t.bind(null,"b052",7)).then((t=>{t.ipcRenderer.send("to_browserurl",e)})):window.open(e,"_blank")},clickIcon(){this.iconClickTime+=1,setTimeout((()=>{this.iconClickTime-=1}),3e3),5===this.iconClickTime&&(console.log("enable!"),me?(a("b052").ipcRenderer.send("enable_devtools"),c["a"].dispatch("fetchSettings")):c["a"].dispatch("set",{disableDevTools:!1}).then((()=>{c["a"].dispatch("fetchSettings")})),this.$q.notify("DevTools is enabled"))},toggleFeedback(e){console.log("toggle",e),this.showFeedback=e},toggleNetworkDiagnotic(e){this.showNetworkDiagnotic=e}}},ge=he,fe=(a("3c8a"),a("9767")),be=a("4101"),ye=Object(N["a"])(ge,n,o,!1,null,"e4afc3b8",null);t["a"]=ye.exports;V()(ye,"components",{QDialog:L["a"],QCard:U["a"],QCardSection:R["a"],QSpace:ee["a"],QBtn:W["a"],QSeparator:te["a"],QImg:fe["a"],QColor:be["a"]})},"030c":function(e,t,a){"use strict";a("ca31")},"0336":function(e,t,a){},"053d":function(e,t,a){},"058f":function(e,t,a){},"0598":function(e,t,a){"use strict";a.r(t),function(e){a.d(t,"default",(function(){return o}));const n=Boolean((()=>"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof e&&"object"===typeof e.versions&&e.versions.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron"))());function o(){return n}}.call(this,a("28d0"))},"0699":function(e){e.exports=JSON.parse('{"lib_index":"Dom","lib_edit":"Publikować","lib_publish":"Publikować","lib_explore":"Badać","lib_following":"Następny","lib_favorite":"Lokalne ulubione","lib_local_favorites":"Lokalne ulubione","lib_channel":"Kanał","lib_submit":"Składać","lib_from_network":"Korzystanie ze zdecentralizowanej bazy danych z sieci","welcome_to_lib":"Witamy w bibliotece multimediów ${displayName}","register_or_login":"Zarejestruj się/Zaloguj się","lib_recommend":"Polecić","lib_recommend_desc":"Witamy w bibliotece ${displayName}! Ta biblioteka korzysta ze zdecentralizowanej bazy danych z sieci. Aby zacząć z niego korzystać, musisz śledzić niektóre kanały.","follow_any_channel_to_continue":"Śledź dowolny kanał, aby kontynuować","follow_channels_and_continue":"Śledź kanały {0} i kontynuuj","show_more_for_me":"Pokaż mi więcej","no_more_recommend":"Nigdy więcej polecam","key":"Klucz","create_key":"Utwórz klucz","save_key":"Zapisz klucz","save_key_file":"Czy chcesz zapisać swój klucz jako plik?","import_key":"Importuj klucz","import":"Import","invalid_key":"Niewłaściwy klucz","back_to_top":"Powrót do góry","search_for_channel":"Wyszukaj identyfikator kanału","search_channel_no_result":"Nie można znaleźć kanału o identyfikatorze {0}","please_input_channel_id":"Wprowadź identyfikator kanału","welcome_help_text":"Jest to zdecentralizowana biblioteka multimediów. Potrzebujesz\\n aby utworzyć konto dla tej bazy danych. Będziemy\\n automatycznie wygenerować klucz osobisty.\\n Jeśli masz już klucz, możesz również zaimportować\\n to tutaj.","welcome_key_text":"Po zalogowaniu kliknij przycisk [ZAPISZ KLUCZ].\\n w prawym dolnym rogu, aby zapisać swój klucz prywatny.\\n Jeśli zgubisz klucz, możesz nie być w stanie zalogować się ponownie.","redirect_to_recommend":"Wygląda na to, że nie śledziłeś żadnego kanału. Przekierowanie do strony [Eksploruj].","channel":"Kanał","follow":"Podążać","unfollow":"Przestań obserwować","following":"Następny","share":"Udział","unfollow_confirm":"Czy na pewno chcesz przestać obserwować ten kanał? Wszystkie posty z tego kanału na Twojej osi czasu zostaną usunięte.","follow_failed_hint":"Operacja nadal oczekuje w tle. Jeśli operacja nie jest wykonywana przez dłuższy czas, uruchom ponownie aplikację i spróbuj ponownie.","block":"Blok","unblock":"Odblokować","blocked":"Zablokowany","block_channel":"Zablokuj ten kanał","block_channel_confirm":"Zablokuj kanał, aby usunąć go z Twojej osi czasu. Listą zablokowanych możesz zarządzać w ustawieniach konta.","block_creator":"Zablokuj twórcę tego kanału","unblock_creator":"Odblokuj twórcę tego kanału","block_creator_confirm":"Zablokuj twórcę usunie z Twojej osi czasu wszystkie kanały utworzone przez tego twórcę. Listą zablokowanych możesz zarządzać w ustawieniach konta.","share_url_copied":"Udostępniony adres URL jest kopiowany do schowka","follow_time":"Podążaj za czasem","update_time":"Czas aktualizacji","search":"Szukaj","type":"Typ","added":"Dodany","click_to_task":"Kliknij, aby przejść do zadania","lib_already_added":"Ten film wideo został już przez Ciebie dodany","description":"Opis","poster":"Plakat","channel_poster":"Plakat kanału","preview":"Zapowiedź","creator":"Twórca","creator_detail":"Szczegóły twórcy","loading_creator":"Ładuję informacje o twórcy","wait_for_creator_loaded":"Poczekaj na załadowanie informacji o twórcy.","follower":"Zwolennik","followers":"Obserwujący","follower_list":"Lista obserwujących","user":"Użytkownik","channel_title":"Tytuł kanału","channel_id":"ID kanału","post_title":"Tytuł posta","post_id":"Identyfikator wpisu","import_data_from_excel":"Importuj dane z Excela","set_excel_keys":"Ustaw klucze Excela","excel_import_succeded":"Importowanie programu Excel powiodło się","excel_import_success_msg":"Wiersze {0} są gotowe do dodania, {1} nieprawidłowe, a {2} zduplikowane elementy są ignorowane","cannot_find_channel":"Nie można znaleźć kanału","cannot_find_posts":"Nie można znaleźć postów","add_channel":"Dodaj kanał","add_post":"Dodaj wpis","edit_channel":"Edytuj kanał","channel_setting":"Ustawienie kanału","edit_post":"Edytuj post","edit_posts":"Edytuj posty","channel_detail":"Szczegóły kanału","remove":"Usunąć","remove_channel":"Usuń kanał","remove_channel_confirm":"Czy na pewno chcesz usunąć ten post? Nie można tego odzyskać.","remove_post":"Usuń wpis","remove_post_confirm":"Czy na pewno chcesz usunąć ten kanał? Nie można tego odzyskać.","preview_mode":"Tryb podglądu","preview_mode_desc":"To jest podgląd Twojego kanału. Wszystkie stawki filmów są pokazane tutaj.","edit_user_profile":"Edytuj profil użytkownika","name":"Przezwisko","avatar":"Awatara","no_following":"Brak następujących kanałów. Kliknij, aby przejść","no_recommend":"Brak polecanych kanałów. Kliknij, aby przejść","first_recomment_msg":"Może to trochę potrwać, jeśli aplikacja jest uruchamiana po raz pierwszy.","invalid_image":"Nieprawidłowy obraz","image_not_reachable":"Ten adres URL obrazu jest nieosiągalny.","channel_not_found":"Nie znaleziono kanału","cannot_get_channel_info":"Nie można uzyskać informacji o kanale. Ten kanał może zostać usunięty przez jego twórcę i nie będzie już dostępny.","validate_error":"Sprawdź błąd","validate_user_name_no_space":"Nazwa użytkownika nie powinna zawierać spacji","validate_url_no_space":"Adres URL nie powinien zawierać spacji","validate_user_name_length":"Nazwa użytkownika powinna mieć długość od {0} do {1}","validate_user_desc_length":"Opis użytkownika nie powinien zawierać więcej niż {0} znaków","validate_user_avatar_url":"Awatar użytkownika powinien być adresem URL o długości mniejszej niż 2048 znaków","validate_channel_title_length":"Tytuł kanału powinien mieć długość od 1 do 100","validate_channel_desc_length":"Opis kanału powinien mieć długość od 10 do 300","validate_channel_image_url":"Podgląd kanału powinien mieć adres URL zawierający mniej niż 2048 znaków","validate_post_title_length":"Tytuł posta powinien mieć długość od 1 do 100","validate_post_desc_length":"Opis posta powinien mieć długość od 10 do 300","validate_post_image_url":"Plakat powinien być adresem URL zawierającym mniej niż 2048 znaków","validate_post_url":"Nieprawidłowy adres URL ${displayName}","validate_post_url_length":"Adres URL ${displayName} nie powinien mieć więcej niż 2048 znaków","film_rate":"Stawka filmowa","set_film_rate":"Ustaw szybkość filmu","select_a_rate_before_enter":"Musisz wybrać szybkość filmu przed wejściem do biblioteki multimediów.","library_available_rate":"Dostępna cena filmu w bibliotece","rate_g":"G – Publiczność ogólna","rate_g_desc":"Wszystkie grupy wiekowe. Nic, co mogłoby urazić rodziców do oglądania przez dzieci.","rate_pg":"PG – Sugerowane wskazówki rodzicielskie","rate_pg_desc":"Niektóre materiały mogą nie być odpowiednie dla dzieci. Rodzice wezwali do udzielania „kierownictwa rodzicielskiego”. Może zawierać materiały, których rodzice mogą nie lubić dla swoich małych dzieci.","rate_pg_13":"PG-13 – Rodzice zdecydowanie przestrozeni","rate_pg_13_desc":"Niektóre materiały mogą być nieodpowiednie dla dzieci poniżej 13 roku życia. Apelujemy do rodziców o ostrożność. Niektóre materiały mogą być nieodpowiednie dla dzieci w wieku przedszkolnym.","rate_r":"R – Ograniczony","rate_r_desc":"Osoby poniżej 17 roku życia wymagają obecności rodzica lub dorosłego opiekuna. Zawiera materiały dla dorosłych. Zachęcamy rodziców do zapoznania się z filmem, zanim zabiorą ze sobą swoje małe dzieci.","rate_nc_17":"NC-17 – Tylko dla dorosłych","rate_nc_17_desc":"Nikt nie ma 17 lat i mniej. Wyraźnie dorosły. Dzieci nie są przyjmowane.","set_as_private":"Ustaw jako prywatne","hide_in_explore":"Ukryj ten kanał na stronie eksploracji","hidden":"Ukryty","select_a_rate":"Wybierz cenę filmu","select_from_tasks":"Wybierz spośród zadań","import_from_magnet":"Importuj z magnesu:?...","input_magnet_url":"Magnes wejściowy:? adres URL","task_title":"Tytuł zadania","set_title":"Ustaw tytuł","add_to_local_favorites":"Dodaj do lokalnych ulubionych","remove_from_local_favorites":"Usuń z lokalnych ulubionych","removed_favorite":"Usunięto ulubione","import_or_export_favorites":"Importuj/eksportuj ulubione","export_local_favorites":"Eksportuj lokalne ulubione jako kopię zapasową","import_favorites_file":"Importuj plik ulubionych","not_a_favorite_file":"Ten plik nie jest ulubionym plikiem kopii zapasowej","connection_status":"Status połączenia","gun_server_list":"Węzły pamięci podręcznej","custom_nodes":"Niestandardowe węzły pamięci podręcznej","custom_nodes_hint":"Niestandardowe węzły pamięci podręcznej zostaną zastosowane po ponownym uruchomieniu aplikacji","wait_for_reboot":"Oczekiwanie na ponowne uruchomienie...({seconds}s)","reboot_now":"Zrestartuj teraz","reboot_later":"Uruchomić komputer ponownie","peer_list":"Węzły bezpośrednie","server":"Adres URL węzła","peer":"Rówieśnik","peer_id":"Identyfikator węzła","connection":"Połączenie","data_source":"Źródło danych","sync":"Synchronizacja","syncing":"Synchronizacja","sync_completed":"Synchronizacja zakończona","got_all_post":"Masz już wszystkie posty","placeholder_channel_title":"Twoja nazwa kanału","placeholder_channel_desc":"Opis tego kanału","placeholder_post_title":"Nazwa filmu (rok)","placeholder_post_desc":"Opis tego filmu","private_channel":"Prywatny kanał","creator_blocked":"Twórca zablokowany","go_to_library":"Idź do biblioteki?","go_to_library_channel_msg":"Czy chcesz przejść do kanału bibliotecznego {0}?","magnet_does_not_have_name":"Ten magnes: ? url nie ma nazwy, musisz najpierw dodać tytuł posta.","no_available_post":"Brak dostępnego wpisu","following_channel_no_post":"Wszystkie Twoje następujące kanały nie mają dostępnych postów. Może to być spowodowane błędem sieci. Jeśli śledziłeś już niektóre kanały, posty mogą zostać załadowane później.","share_to_library":"Udostępnij w bibliotece","quick_start":"Szybki start","quick_start_desc":"Rozpocznij tworzenie wpisu z zadaniem lub plikiem","select_file":"Wybierz plik...","select_folder":"Wybierz katalog...","post_options":"Opcje publikowania","channel_options":"Opcje kanałów","create_new_channel":"Utwórz nowy kanał","use_existed_channel":"Użyj istniejącego kanału","select_existed_channel":"Wybierz istniejący kanał","uploaded_by":"{title} przesłane przez {name}","created_by":"{title} stworzony przez {name}","creating_new_channel":"Tworzę nowy kanał...","created_new_channel":"Utworzono nowy kanał","creating_new_post":"Tworzenie nowego wpisu...","created_new_post":"Utworzono nowy post","create_new_post":"Utwórz nowy wpis","quick_start_timeout":"{0} limit czasu. Może to być spowodowane błędem sieci. Spróbuj ponownie później.","file_too_large":"Plik zbyt duży","file_too_large_msg":"Ten plik jest większy niż 4 GB ({size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz kontynuować?","resolving_folder_files":"Rozwiązywanie plików folderów...","folder_too_large":"Za duży folder","folder_too_large_msg":"Pliki w tym folderze są większe niż 4 GB (łącznie {size}) i przygotowanie zadania może zająć dużo czasu. Czy na pewno chcesz przesłać?","creating_new_task":"Tworzenie nowego zadania...","cannot_create_task":"Nie można utworzyć zadania","cannot_create_task_msg":"Może to spowodować jakiś błąd. Jeśli zadanie zostało utworzone poprawnie, możesz później sprawdzić listę zadań.","cannot_get_task_name":"Nie można pobrać nazwy zadania. Najpierw musisz wprowadzić jeden.","remove_old_task":"Usuń stare zadanie","remove_old_task_desc":"W trybie internetowym można utworzyć tylko jedno zadanie naraz. Czy chcesz usunąć stare zadanie?","subtitle_list":"Lista napisów","optional":"opcjonalny","with_subtitle":"Z {language} napisami","maximumSubtitleNum_limit":"Liczba napisów osiągnęła maksimum","add_subtitle_url":"Dodaj link do pobrania napisów","cannot_add_subtitle":"Nie udało się dodać napisów","cannot_add_subtitle_msg":"Nie wybrano języka napisów lub nieprawidłowy link do pobrania.","support_subtitle_type":"Obsługiwane są tylko napisy w formacie srt i vtt.","recommend_opensubtitles":"Zaleca się skorzystanie z łącza lub identyfikatora pobierania napisów na stronie www.opensubtitles.org.","take_down":"Zdjąć","serious_violation":"Poważne naruszenie","copyright_disputes":"Spory dotyczące praw autorskich","adults_only":"Tylko dla dorosłych","takedown_reason":"Powód usunięcia","takedown_mode":"Tryb usuwania","admins":"Administratorzy","takedown_user":"Usuń tego twórcę","takedown_channel":"Usuń ten kanał","takedown_post":"Usuń ten post","select_takedown_reason":"Wybierz powód usunięcia","takedown_invalid_reason":"Nieprawidłowy powód usunięcia","takedown_invalid_user_id":"Nieprawidłowy identyfikator użytkownika. Identyfikator powinien zawierać 87 znaków","takedown_invalid_channel_id":"Nieprawidłowy identyfikator kanału. Identyfikator powinien zawierać 20 znaków","takedown_invalid_post_id":"Nieprawidłowy identyfikator posta. Identyfikator powinien zawierać 20 znaków","takedown_management":"Zlikwiduj zarządzanie","users":"Użytkownicy","channels":"Kanały","posts":"Posty","you":"Ty","preset":"Ustawienie wstępne","admin":"Admin","committee":"Komisja","about_takedown_mode":"Informacje o trybie usuwania:\\nUstawienie wstępne: skonfigurowane w repozytorium github. Wszystkie zostaną usunięte z biblioteki.\\nAdministrator: każdy z administratorów, na którego głosował, zostanie usunięty.\\nKomitet: Co najmniej połowa administratorów głosujących na zostanie usunięta.","cannot_edit_preset":"Nie możesz edytować tego wiersza, ponieważ jest to wiersz ustawiony wstępnie","cannot_edit_not_vote":"Nie możesz edytować tego wiersza, ponieważ nie głosowałeś za nim","remove_vote":"Usuń swój głos","post_preload_failed":"Wstępne załadowanie tego posta nie powiodło się. Link do pobrania może być nieaktualny, więc nie można od razu odtworzyć tego wpisu.","about_cache_node":"Informacje o węźle pamięci podręcznej","edit_cache_node":"Edytuj węzeł pamięci podręcznej","create_cache_node":"Utwórz węzeł pamięci podręcznej","about_cache_node_desc":"${displayName} używa serwera Gun jako węzła pamięci podręcznej. Możesz edytować niestandardowe węzły z wyprzedzeniem","learn_how_to_deploy_gun":"Dowiedz się, jak wdrożyć własny serwer broni","repeat_add":"Zadanie zostało dodane, nie dodawaj go ponownie","upload":"Wgrywać","download":"Pobierać","delete":"Usuwać","delete_task":"Usuń zadanie","delete_confirm_message":"Usunąć to zadanie? To jest nieodwołalne","also_delete_files":"Usuń też pliki","default_delete_files":"Domyślnie usuń pobrane pliki po usunięciu zadania","not_now":"Nie teraz","delete_autoupload_confirm":"To zadanie zawiera plik, który umieściłeś w katalogu automatycznego przesyłania. Usuń to zadanie spowoduje również usunięcie pliku.","delete_anyway":"Usuń mimo to","upload_too_many_files":"Prześlij zbyt wiele plików","ask_if_unlimit_upload_amount":"Katalog automatycznego przesyłania zawiera zbyt wiele plików. Czy chcesz wyłączyć ograniczenie kwoty przesyłania? *Może to powodować problemy z wydajnością","disable_limitation":"Wyłącz ograniczenie","not_length":"Operacja na wielu plikach nie jest obecnie obsługiwana, prosimy o współpracę","download_torrent":"Pobieranie pliku","upload_torrent":"Przesyłanie pliku","files":"Akta","file":"Plik","folder":"Teczka","start_all":"Zacznij wszystko","pause_all":"Wstrzymaj wszystko","remove_all":"Usuń wszystko","upload_all":"Prześlij wszystko","clear_history":"Czysta historia","pause_all_finish_payments":"Spowoduje to zakończenie wszystkich płatności.","accelerating":"Przyspieszenie","link_task":"Połącz zadanie","torrent_task":"Zadanie pliku","ok":"OK","cancel":"Anulować","download_directory_position":"Pobierz pozycję katalogu","torrent_file":"plik zadania","magnetic_link_incorrect":"Format linku jest nieprawidłowy","delete_fail":"Usuwanie nie powiodło się","pause":"Pauza","paused":"Wstrzymane","stop_torrent":"Zatrzymywać się","seed":"Nasionko","resume":"Wznawiać","downloading":"Ściąganie","downloaded":"Pobrane","uploading":"Przesyłanie","auto_uploading":"Automatyczne przesyłanie","uploaded":"Załadowany","pending":"Czekam na inne zadania","verifying":"Weryfikacja","waiting_for_verify":"Czekam na weryfikację","seeding":"Wysiew","completed":"Zakończony","status":"Status","task_name":"Nazwa zadania","size":"Rozmiar","progress":"Postęp","sort":"Sortować","ascending":"Rosnąco","descending":"malejąco","file_loading":"Ładowanie pliku...","loading":"Ładowanie","unknown_status":"Nieznany","play_while_downloading":"Grać...","upload_or_play":"Prześlij / Odtwórz","play":"Grać","ask_if_upload_file":"Przesyłanie pliku?","ask_if_upload_or_play":"Przesłać lub odtworzyć plik?","torrent_error":"Błąd podczas dodawania zadania:","no_peers":"Ponów próbę więcej niż {0} i żaden element równorzędny nie jest dostępny","torrent_exists":"Zadanie już istnieje.","show_origin_torrent":"Uzyskaj oryginalny plik zadania lub adres URL","show_directory":"Otwórz katalog tego torrenta","task_num":"Zadania","total_upload_speed":"Prędkość wysyłania","total_download_speed":"Prędkość pobierania","path_missing":"Błąd: nie można znaleźć ścieżki torrenta","origin_not_found":"Nie można znaleźć informacji o zadaniu pochodzenia.","text_copied":"Adres URL Magnum jest kopiowany do schowka","copy_magnet_uri":"Kopiuj magnes:? URI","copy_download_uri":"Skopiuj identyfikator URI pobierania","copy_share_uri":"Skopiuj identyfikator URI udziału","uri_copied":"Identyfikator URI został pomyślnie skopiowany do schowka","uri_copy_failed":"Nie udało się skopiować uri","more":"Więcej...","toggle_list_mode":"Przełącz tryb listy","comment":"komentarz","operations":"Operacje","open_directory":"Otwarty katalog","no_downloading_task":"Brak zadania pobierania","remove_all_downloading_tasks":"Usunąć wszystkie zadania pobierania?","remove_all_upload_tasks":"Usunąć wszystkie zadania przesyłania?","remove_autoupload_files":"Usuń automatycznie przesyłane pliki","remove_all_history":"Usunąć całą historię?","remaining":"Pozostały","created_time":"Stworzony czas","used_time":"Zużyty czas","completed_time":"Ukończony czas","yesterday":"Wczoraj","before_yesterday":"{empty}","earlier":"Wcześniej","miss_file":"Brak niektórych plików","delete_miss_file_task":"Brakuje plików fome w {0}.","common_peer":"Zwykły rówieśnik","ab_peer":"${displayName} rówieśnik","ab_peer_verified":"Zweryfikowany równorzędny ${displayName}","ab_peer_available":"${displayName} równorzędne dostępne","alphabiz_accelerating":"${displayName} przyspiesza","income":"Dochód","income_info":"Dochód (dziś/ogółem)","total_income_info":"Dochód: {0}(dziś) / {1}(łącznie)","login_to_see_income":"Zaloguj się, aby zobaczyć statystyki dochodów","credit_cost":"Koszty kredytu","downloaded_by_payment":"Pobrane przez Payments","file_not_found":"Nie można znaleźć tego pliku w lokalnym","no_task":"Nie pytaj","no_matched_task":"Brak pasującego zadania","space_not_enough":"Niewystarczająca ilość miejsca na dysku","need_more_space":"Potrzebujesz {0} więcej miejsca, ale obecny dysk ma {1} wolnego miejsca ({2} zarezerwowane). Zadania są wstrzymane. Wstępne ładowanie biblioteki jest wyłączone. Możesz ją ponownie włączyć w [Ustawienia - Zaawansowane].","seeders":"Siewniki","last_update":"Ostatnia aktualizacja","connecting":"Złączony","connected":"Połączony","request_timed_out":"Upłynął limit czasu żądania","connection_failed":"Połączenie nieudane","invalid_download_url":"Nieprawidłowy adres URL pobierania","download_link":"link do pobrania","empty_files":"Brak plików w katalogu","duplicate_task":"Zduplikowane zadanie","duplicate_tracker":"Zduplikowany tracker","this_task_not_ready":"To zadanie nie jest gotowe. Wstrzymanie tego zadania spowoduje jego bezpośrednie usunięcie.","some_task_not_ready":"Niektóre zadania nie są gotowe. Wstrzymanie tych zadań spowoduje ich bezpośrednie usunięcie.","failed_to_delete_files":"Nie udało się usunąć plików","failed_to_delete_files_desc":"Nie udało się usunąć niektórych plików zadania. Może być konieczne ich ręczne usunięcie","unknown_error":"Nieznany błąd: {0}","more_files_are_not_shown":"({0} więcej plików nie jest wyświetlanych ze względu na wydajność)","no_available_file":"Brak dostępnego pliku. Poczekaj, aż zadanie będzie gotowe.","service_worker_error":"Nie można załadować ServiceWorkera do gry. Twoja przeglądarka może nie obsługiwać tej funkcji lub ServiceWorker nie jest aktywowany. Może być konieczne ponowne załadowanie tej strony i ponowna próba.","add_task_first":"Najpierw musisz dodać zadanie.","player_task_time":"Zawodnik poświęca zbyt wiele sekund na przygotowanie się do gry. Może być coś nie tak z zadaniem.","web_mode_hint":"Tryb sieciowy ${displayName} obsługuje tylko peery WebRTC. Aby uzyskać najlepsze wrażenia, pobierz aplikację komputerową ${displayName}.","web_mode_task_hint":"Kliknij przyciski poniżej, aby dodać zadanie. Jednorazowo możesz dodać tylko jedno zadanie.","save_to_local":"Zapisz w lokalnym","save_as_zip":"Zapisz jako ZIP","creating_save_file":"Tworzenie pliku zapisu...","upload_as_one_directory":"Prześlij jako jeden katalog","upload_as_single_files":"Prześlij jako pojedyncze pliki","web_mode_upload_single":"W trybie internetowym można przesłać tylko jeden plik","download_success":"Pobierz pomyślnie","download_fail":"Pobieranie nie udane","wait_for_downloaded_to_share":"Przed udostępnieniem poczekaj na pobranie zadania.","download_with_cellular":"Pobieraj zadania za pomocą sieci komórkowej","download_with_cellular_desc":"Korzystasz z sieci komórkowej. Pobieranie zadań za pomocą sieci komórkowej może wiązać się z dodatkowymi opłatami pobieranymi przez operatora.","download_with_cellular_confirm":"Nadal pobieraj przez sieć komórkową","language":"Język","appearance":"Wygląd","darkModeSystem":"System","darkModeLight":"Światło","darkModeDark":"Ciemny","basic_setting":"Podstawowy","hideMenu":"Ukryj menu aplikacji (tylko Windows i Linux)","autoHide":"Automatyczne ukrywanie okna","autoStart":"Otwórz podczas logowania","restore":"Zachowaj rozmiar i położenie okna przy wyjściu","autoStartUnfinished":"Automatycznie wznawiaj wszystkie niedokończone zadania","default_download_path":"Domyślna ścieżka","download_directory":"Pobierz katalog","upload_directory":"Prześlij katalog","enable_auto_upload":"Włącz automatyczne przesyłanie","unlimit_upload_amount":"Nieograniczona kwota przesyłania","unlimit_upload_warning":"Zezwalaj na przesyłanie dużej liczby plików. Może to powodować problemy z wydajnością","start":"Uruchomienie","transport_setting":"Przenoszenie","upload_limit":"Limit przesyłania","download_limit":"Limit pobierania","payed_user_share_rate":"Współczynnik udziału płatnych użytkowników","unlimited":"Nieograniczony","limit_input_error":"Liczba graniczna powinna być dodatnia","BT_setting":"Ustawienia zadań","saveLinkSeed":"Zapisz łącze jako plik zadania","autoDownload":"Automatycznie pobieraj link i treść","continuousSeeding":"Kontynuuj siew aż do ręcznego zatrzymania","seedSharingRate":"Stosunek nasion","seedTime":"Czas wysiewu (minuty)","task_manage":"Zarządzanie zadaniami","maximumDownloadNum":"Maksymalna liczba aktywnych zadań","maximumConnectionsNum":"Maksymalne połączenie na serwer","range_error":"Zakres powinien mieścić się w przedziale od {0} do {1}","random":"losowy","breakpointContinuation":"Kontynuować","automaticSkip":"Automatycznie pokazuj pobieranie po dodaniu zadania","afterNotification":"Powiadomienie po zakończeniu pobierania","deleteConfirm":"Przed usunięciem zadania nie jest wymagane żadne potwierdzenie","submit":"Zapisz i zastosuj","discard":"Wyrzucać","reset":"Resetowanie","reset_all_settings":"Zresetuj wszystkie ustawienia?","preferences_resetted":"Preferencje zresetowane","traditional_chinese":"tradycyjne chińskie","japanese":"język japoński","english":"język angielski","chinese":"Chiński uproszczony","advancedSettings":"Zaawansowany","autoUpdate":"Automatyczna aktualizacja","autoCheckUpdate":"Automatycznie sprawdzaj dostępność aktualizacji","proxy":"Pełnomocnik","useProxyService":"Włącz serwer proxy","trackerService":"Serwery śledzące","recommendUse":"Zalecana","autoUpdateTrackerServiceList":"Codziennie automatycznie aktualizuj listę trackerów","manualUpdateTracker":"Aktualizacja ręczna","manualUpdateSuccess":"Pomyślnie zaktualizuj serwery śledzenia","manualUpdateFail":"Nie udało się zaktualizować z:","listenPort":"Porty nasłuchowe","BTlistenPort":"Port transmisji danych","DHTlistenPort":"Rozproszony port mieszania","protocols":"Kompatybilne protokoły","setDefaultClientForFollowingProtocols":"Ustaw jako domyślnego klienta dla następujących protokołów","magnetUrl":"Magnes","video_file":"Plik wideo","audio_file":"Plik audio","security":"Bezpieczeństwo","impersonateUserAgent":"Makieta agenta użytkownika","RPCauthorizationkey":"Tajemnica RPC","viewDocument":"Wyświetl tajny podręcznik RPC","developer":"Deweloper","applicationLogPath":"Ścieżka dziennika aplikacji","downloadSessionPath":"Pobierz ścieżkę sesji","resetDownloadSessionRecord":"Zresetuj sesję pobierania","restoreInitialSettings":"Przywrócenie ustawień fabrycznych","preferences_set_successfully":"Zapisz preferencje pomyślnie!","preferences_set_fail":"Zapisywanie preferencji nie powiodło się!","change_not_save":"Zmiany nie zapisują się","discard_all_changes":"Odrzucić wszystkie zmiany i wyjść?","stay_in_page":"Pozostań na stronie","disk_usage":"Użycie dysku","pause_if_less_space":"Wstrzymaj i powiadom, jeśli miejsca jest mniej niż (MB)","default_video_player":"Domyślny odtwarzacz wideo","video_cache_time":"Pamięć podręczna odtwarzania strumieniowego","minutes":"minuty","system_default":"Domyślne ustawienie systemowe","media_player":"Odtwarzacz multimedialny","library_film_rate":"Dostępna cena filmu","library_show_explore":"Pokaż stronę [Eksploruj].","library_setting":"Ustawienie biblioteki","library_sync_setting":"Ustawienie synchronizacji biblioteki","keychain_sync_status":"Stan synchronizacji pęku kluczy","sync_with_aws":"Synchronizuj pęku kluczy z Amazon Web Services","backup_to_local":"Kopia zapasowa do pliku lokalnego","enable_sync_with_aws":"Włącz synchronizację z AWS","disable_sync_with_aws":"Wyłącz synchronizację z AWS","disable_sync_with_aws_desc":"Spowoduje to usunięcie zapisanego klucza na serwerze. Upewnij się, że wyeksportowałeś już swój klucz.","input_independent_password":"Wprowadź niezależne hasło","change_independent_password":"Zmień niezależne hasło","password_error":"Błędne hasło","password_invalid":"Hasło jest nieprawidłowe","key_existed":"Klucz istniał","key_not_found":"Klucz nie odnaleziony","library_recommend":"Polecam bibliotekę","show_all_channels":"Pokaż wszystkie kanały na stronie polecania biblioteki","not_logged_in":"Nie zalogowany","login_to_continue":"Zaloguj się, aby kontynuować","mnemonic_code":"Kod mnemoniczny","wordlist":"Lista słów","restore_code":"Przywróć z kodu","generate_code":"Wygeneruj kod","export_mnemonic_code":"Eksportuj kod mnemoniczny","import_mnemonic_code":"Importuj kod mnemoniczny","print":"Wydrukować","save_as_txt":"Zapisz jako txt","save_as_pdf":"Zapisz jako pdf","from_file":"Z pliku","not_valid_mnemonic_code":"To nie jest prawidłowy kod mnemoniczny","cannot_parse_code_as_key":"Nie można przeanalizować tego kodu mnemotechnicznego jako klucza biblioteki","import_key_hint":"Czy na pewno chcesz zaimportować ten klucz? Spowoduje to odzyskanie starego klucza w bibliotece.","import_key_confirm":"Tak, importuj.","library_preload":"Wstępnie ładuj zadania z biblioteki","show_preload":"Pokaż zadania wstępnego ładowania","set_download":"Ustaw katalog pobierania","set_download_desc":"W przypadku wersji macOS App Store domyślny katalog pobierania znajduje się w piaskownicy aplikacji i zostanie usunięty po odinstalowaniu aplikacji. Jeśli chcesz zachować pobrane pliki, musisz ręcznie wybrać inny katalog pobierania.","home":"Dom","home_caption":"Pobieranie/przesyłanie i pliki multimedialne","library":"Biblioteka","library_caption":"Przeglądaj zasoby multimedialne","player":"Gracz","player_caption":"Odtwarzacz multimedialny","credits":"Kredyty","credits_caption":"Sprawdź saldo konta","account":"Konto","account_caption":"Zaloguj się/Zarejestruj się/Zarządzanie","settings":"Ustawienia","settings_caption":"Ustawienia aplikacji, odtwarzacza, konta","development":"Rozwój","development_caption":"Tryb programisty do użytku wewnętrznego","basic":"Podstawowy","basic_caption":"Podstawowe ustawienia","advanced":"Zaawansowany","advanced_caption":"Zaawansowane ustawienia","blockchain":"Portfel","blockchain_caption":"${displayName} Zdecentralizowany portfel","internal_notice":"Wewnętrzne powiadomienie o wydaniu","release_notes":"Informacje o wydaniu","terms_and_conditions":"Regulamin","license_and_listen_notices":"Licencjonuj i słuchaj powiadomień o otwartym kodzie źródłowym","close":"Zamknąć","success":"Powodzenie","fail":"Ponieść porażkę","account_email_invalid_address":"Niepoprawny adres email","account_email_invalid_domain":"Nieprawidłowa domena e-mail","account_email_unknown_status":"Nieznany stan dostarczania wiadomości e-mail","account_email_unavailable_address":"Niedostępny adres e-mail","account_email_suppressed_address":"Ukryty adres e-mail","account_loading":"Ładowanie...","account_is_required":"jest wymagane","account_sign_in_your_account":"Zalogować się","account_username":"Nazwa użytkownika","account_username_email_phone":"Numer telefonu lub e-mail","account_password":"Hasło","account_new_password":"Nowe hasło","account_re_enter_password":"Wprowadź ponownie hasło","account_password_not_equal":"Dwa hasła nie są równe","account_new_password_same":"Hasło jest takie samo jak oryginalne hasło","account_forgot_your_password":"Zapomniałeś hasła?","account_reset_password":"Zresetuj hasło","account_sign_in":"Zalogować się","account_signed_in":"Wpisany","account_sign_up":"Zapisać się","account_find_your_account":"Znajdź swoje konto","account_enter_your_username":"Wpisz swój numer telefonu lub adres e-mail","account_search":"Szukaj","account_email_sent_tip":"E-mail z kodem weryfikacyjnym został wysłany na Twój adres e-mail:","account_phone_sent_tip":"Na Twój telefon została wysłana wiadomość SMS z kodem weryfikacyjnym:","account_email_phone_sent_tip":"E-mail i SMS z kodem weryfikacyjnym zostały wysłane odpowiednio na Twój adres e-mail i telefon:","account_software_token_tip":"Usługa MFA jest włączona na Twoim koncie. Aby zakończyć logowanie, włącz lub wyświetl swoje urządzenie i wpisz TOTP","account_reset_your_password":"Zresetuj swoje hasło","account_verification_code":"Kod weryfikacyjny","account_resend_code":"Wyślij ponownie kod","account_code_has_been_resent":"Kod weryfikacyjny został wysłany ponownie","account_password_has_been_reset":"Hasło zostało zresetowane","account_submit":"Składać","account_sign_up_your_account":"Zarejestruj swoje konto","account_fill_required_fields":"Wypełnij wymagane pola poniżej.","account_fill_optional_fields":"Wypełnij opcjonalne pola poniżej.","account_email":"E-mail","account_invitation":"Zaproszenie","account_invitation_code":"Kod zaproszenia","account_i_accept":"Akceptuję","account_license_terms":"licencja i warunki","account_next":"Następny","account_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki.","account_verify_fill_optional_fields":"Sprawdź i wypełnij opcjonalne pola.","account_nickname":"Przezwisko","account_gender":"Płeć","account_male":"Mężczyzna","account_female":"Kobieta","account_not_say":"Nie mów","account_birthday":"Urodziny","account_phone_number":"Numer telefonu","account_locale":"Lokalny","account_tip_verified":"Zweryfikowano, loguję się...","account_verified":"zweryfikowane","account_unverified":"niesprawdzony","account_signed_up":"Zapisany","account_verify_your_identity":"Zweryfikować Twoją tożsamość","account_finish":"Skończyć","account_signed_out":"Wylogowany","account_change_password":"Zmień hasło","account_change_email":"Zmień adres e-mail","account_change_phone_number":"Zmień numer telefonu","account_sign_out":"Wyloguj się","account_current_password":"Aktualne hasło","account_re_enter_new_password":"Wprowadź ponownie nowe hasło","account_personal_information":"Informacja","account_edit":"edytować","account_reset":"Resetowanie","account_greeting":"Cześć,","account_cancel":"Anulować","account_change":"zmiana","account_not_set":"nie ustawiony","account_setting":"ustawienie","account_copy_code":"skopiuj kod","account_account_setting":"Konto","account_task_page":"Zadanie kredytowe","account_setting_caption":"Zmień hasło / Edytuj informacje","account_security":"Bezpieczeństwo","account_want_to_join":"Chcesz się dołączyć?","account_sign_in_now":"Zalogować się","account_changed":"Zmieniono","account_clipboard_with_invitation_code":"Skopiowano kod zaproszenia","account_clipboard_with_code":"Kod skopiowany","account_invitation_code_dialog_tip":"Wyślesz znajomemu e-mail lub SMS z kodem zaproszenia:","account_available":"dostępny","account_invited":"zaproszony","account_used":"używany","account_invitation_code_sent":"Kod zaproszenia został wysłany","account_invitation_channel_required":"Wypełnij co najmniej jeden kanał zaproszeń","account_no_verification_code":"Nie możesz otrzymać kodu weryfikacyjnego?","account_no_phone_number":"Brak numeru telefonu?","account_sign_up_by_email":"Zarejestruj się przez e-mail","account_no_email":"Brak e-maila?","account_sign_up_by_phone_number":"Zarejestruj się pod numerem telefonu","account_no_totp":"Brak TOTP?","account_tip_no_totp":"Jeśli nie ma TOTP, skonfiguruj najpierw TOTP","account_setup_totp":"Skonfiguruj TOTP","account_contact_information":"Informacje kontaktowe","account_delete_account":"Usuń konto","account_deleted":"Usunięto","account_can_not_mfa":"Kłopoty MSZ?","account_set_mfa_type":"Skonfiguruj usługę MFA","account_disable_mfa":"Wyłącz uwierzytelnianie wieloskładnikowe","account_disabled_mfa":"Wyłączone MSZ","account_sms_mfa":"SMS MSZ","account_totp_mfa":"TOTP MSZ","account_totp":"TOTP","account_not_recommend":"Nie polecane","account_oauth_sign_in_with":"Zaloguj się za pomocą {provider}","account_sign_in_failed":"Nie udało się zalogować","account_tip_oath_sign_up":"E-mail odpowiadający bieżącemu kontu {provider}: {email} nie utworzył jeszcze konta","account_tip_confirm_delete_account":"Wprowadź bieżące hasło do konta, aby potwierdzić, że chcesz usunąć bieżące konto. (Usuniętych kont nie można przywrócić)","account_tip_config_mfa":"Możesz użyć SMS-a lub hasła jednorazowego opartego na czasie (TOTP) jako dodatkowego uwierzytelnienia","account_error_can_not_enable_mfa":"Aby włączyć MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_sms_mfa":"Aby włączyć SMS MFA, musisz powiązać swój adres e-mail i numer telefonu komórkowego","account_tip_can_not_enable_totp_mfa":"Musisz powiązać swój adres e-mail i numer telefonu komórkowego, aby włączyć TOTP MFA","account_tip_setup_totp":"Użyj aplikacji, takich jak Authenticator, aby zeskanować poniższy kod QR lub skopiuj kod ręcznie, aby dodać token bezpieczeństwa","account_tip_verify_totp":"Sprawdź swój TOTP","account_link_your_social_account":"Powiąż swoje konto społecznościowe","account_unlink_your_social_account":"Odłącz konto społecznościowe","account_tip_confirm_link":"Czy na pewno chcesz powiązać bieżące konto z kontem {provider}?","account_tip_confirm_unlink":"Czy na pewno chcesz anulować powiązane konto {provider}?","account_tip_linking":"wiążący...","account_tip_unlinking":"Rozwiązywanie...","account_linked":"Zobowiązany","account_unlinked":"Nieoprawny","account_error_can_not_link_to_the_linked_account":"Bieżące konto społecznościowe jest powiązane z innym kontem","account_error_can_not_link_to_the_mismatched_email":"Bieżące konto i adres e-mail konta społecznościowego są niespójne","account_error_can_not_link_before_email_verified":"Nie można połączyć konta społecznościowego, ponieważ bieżące konto nie jest powiązane ze zweryfikowanym adresem e-mail","account_tip_confirm_verify_email_phone":"Czy wysłać kod weryfikacyjny na adres e-mail i numer telefonu bieżącego konta, aby zweryfikować swoją tożsamość?","account_tip_confirm_verify_phone":"Czy wysłać kod weryfikacyjny na aktualny numer telefonu, aby zweryfikować swoją tożsamość?","account_error_1_message_60_seconds":"Tylko jeden SMS lub e-mail może zostać wysłany co 60 sekund, poczekaj kolejne {delta} sekund","account_error_10_messages_per_day":"Każdy telefon komórkowy lub e-mail może wysłać tylko 10 wiadomości w ciągu 24 godzin","account_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","Network Error":"Wystąpił problem z siecią, spróbuj ponownie później","account_error_user_not_exist":"użytkownik nie istnieje","account_error_incorrect_username_or_password":"Niepoprawna nazwa użytkownika lub hasło","account_error_incorrect_original_password":"Nieprawidłowe oryginalne hasło","account_error_incorrect_password":"niepoprawne hasło","account_error_username_not_found":"Nazwa użytkownika nie znaleziona","account_error_can_not_reset_for_no_verified":"Nie można zresetować hasła do niezweryfikowanego konta","account_error_invalid_verification_code":"Nieprawidłowy kod weryfikacyjny, spróbuj ponownie","account_error_expired_verification_code":"Kod weryfikacyjny wygasł, spróbuj ponownie","account_error_password_not_long_enough":"Hasło nie jest wystarczająco długie","account_error_attempt_limit_exceeded":"Przekroczono limit prób, spróbuj za jakiś czas.","account_error_password_attempts_exceeded":"Przekroczono liczbę prób podania hasła.","account_error_invalid_phone_number_format":"Nieprawidłowy format numeru telefonu","account_error_no_cell_phone_prefix":"Wybierz prefiks numeru telefonu","account_error_username_already_exists":"Nazwa użytkownika już istnieje","account_error_you_need_to_accept_license_terms":"Najpierw musisz zaakceptować licencję i warunki","account_error_inactive_code":"Kod zaproszenia nie jest kodem aktywowanym","account_error_non_existent_code":"Kod zaproszenia nie istnieje","account_error_unexpected":"Niespodziewany błąd","account_error_can_not_change_email_before_phone_bound":"Adres e-mail nie może zostać zmieniony przed powiązaniem numeru telefonu","account_error_can_not_change_email_before_unbound_social_account":"Adresu e-mail nie można zmienić przed usunięciem konta społecznościowego","account_error_can_not_change_phone_before_email_bound":"Numeru telefonu nie można zmienić przed związaniem wiadomości e-mail","account_error_can_not_change_email_phone_with_mfa_enabled":"Nie można zmienić adresu e-mail ani numeru telefonu komórkowego przed wyłączeniem usługi MFA","account_error_not_supported_yet":"Obecnie nie obsługiwane","account_error_same_email":"Nowy adres e-mail nie może być taki sam jak pierwotny adres e-mail","account_error_same_phone":"Nowy numer telefonu nie może być taki sam jak oryginalny numer telefonu","account_error_email_not_exists":"adres E-mail nie istnieje","account_error_email_already_exists":"Konto o podanym adresie e-mail już istnieje.","account_error_phone_already_exists":"Konto o podanym numerze telefonu już istnieje.","account_error_mfa_token_mismatch":"Niezgodność kodu tokena oprogramowania","account_error_recaptcha_not_loaded":"Wystąpił problem z siecią. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_recaptcha_validation_failed":"Weryfikacja ReCAPTCHA nie powiodła się. Połącz się ponownie z siecią i ponownie uruchom aplikację, aby spróbować ponownie.","account_error_sign_in_in_progress":"Oczekująca próba logowania już trwa","account_field_range":"Ogranicz wprowadzanie znaków {0}-{1}","account_field_only_alphanumeric":"Obsługuje tylko znaki alfanumeryczne","account_field_only_alphanumeric_and_symbol":"Obsługuje tylko znaki alfanumeryczne i symbole","account_field_only_chinese_alphanumeric_space_underline":"Obsługuje tylko znaki alfanumeryczne, spacje i podkreślenia","account_field_prefix_without_number_space":"Pierwszy znak nie może być cyfrą ani spacją","account_field_suffix_without_space":"Nie może kończyć się spacją","account_field_without_repeat_space":"Nie można użyć wielu spacji z rzędu","account_field_can_not_only_alphanumeric":"Nie możesz używać tylko liter lub cyfr","account_field_must_have_number_characters":"Musi zawierać cyfry","account_field_verification_code":"Kod weryfikacyjny musi składać się z sześciu cyfr","account_field_invitation_code":"Kod zaproszenia musi być alfanumeryczny","account_field_phone_number":"Nieprawidłowy format numeru telefonu","account_invalid_email_format":"niewłaściwy format wiadomości email","account_sign_out_confirm":"Czy na pewno chcesz się wylogować? Spowoduje to zatrzymanie wszystkich zadań.","account_sign_out_anyway":"Wyloguj się mimo wszystko","account_signing_out":"Wylogowanie...","account_request_save_settings":"Ustawienia nie są zapisywane. Musisz zapisać zmiany przed wylogowaniem.","pay":"Płacić","pay_with_credit":"Zapłać za przyspieszenie pobierania. Potrzebuje około {0} kredytu","pay_with_credit_payed":"Przyspieszenie. Nadal potrzebuje około {0} kredytu","create_payment":"Utwórz płatność","pay_target":"Cel","pay_for_torrent":"Zapłać za {0}","your_subid":"Twój identyfikator podrzędny","your_credits":"Twoje kredyty","pay_point_for_data":"Zapłać {0} punktu za {1} danych","auto_renew":"Włącz automatyczne odnawianie","transaction_details":"szczegóły transakcji","transaction_id":"ID","transaction_payer":"Płatnik","transaction_payee":"Odbiorca płatności","transaction_category":"Kategoria","transaction_changed_amount":"Zmieniona kwota","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Czas utworzenia","receipt_code":"Kod odbioru","transfer_amount":"Kwota przelewu","code_the_receipt_code":"Skopiuj poniższy kod paragonu do płatnika","fill_the_receipt_code":"Przelew poprzez wpisanie kodu płatności podanego przez odbiorcę","expense":"Koszt","copied":"Skopiowane","transfer":"Przenosić","receive":"Odbierać","copy":"Kopiuj","withdraw_fund":"Wycofaj fundusz","category_paydata_payer":"Koszt danych","category_paydata_payee":"Dochód z danych","category_transfer":"Przenosić","category_bonus":"Premia","category_recharge":"Naładuj","status_pending":"aż do","status_completed":"zakończony","status_finish":"skończyć","status_failed":"przegrany","tip_invalid_receiver":"Nieprawidłowy kod odbiornika","tip_invalid_amount":"Kwota kredytu powinna być liczbą zmiennoprzecinkową z zakresu 0-1000 (minimalna dokładność to 0,001)","credit_get_more":"Zdobądź więcej kredytów","credit_no_data":"Brak dostępnych danych","credit_loading":"Ładowanie...","credit_not_enough_amount":"Za mało kredytów","credit_amount_not_enough":"Za mało kredytów","credit_payee_not_exist":"Odbiorca płatności nie istnieje","credit_invalid_amount":"Nieprawidłowa kwota kredytu","credit_can_not_transfer_to_yourself":"Nie można przenieść na siebie","credit_latest":"Najnowszy","credit_error_network":"Wystąpił problem z siecią, spróbuj ponownie później","add_subtitles":"Dodaj napisy","open_file":"Otwórz plik...","advanced_options":"Zaawansowane opcje","title":"Tytuł","location":"Lokalizacja","subtitle_file":"plik z napisami","unsupported_subtitle_type":"Typ pliku {0} nie jest obsługiwanym typem napisów","not_default_player":"Domyślny odtwarzacz wideo nie jest ustawiony","this_is_an_audio_file":"To jest plik dźwiękowy","the_added_subtitle_already_exists":"Dodane napisy już istnieją","stop_stream_player":"Media strumieniowe zostały przerwane, ponieważ zadanie zostało wstrzymane lub usunięte","stop_player":"Odtwarzacz został zamknięty, ponieważ plik został usunięty","playing_timeout_hint":"Koniec czasu oczekiwania. Proszę sprawdzić zadanie","autoplay_hint":"Autoodtwarzanie może być zablokowane przez Twoją przeglądarkę. Jeśli odtwarzacz nie gra, spróbuj kliknąć ekran, aby kontynuować","remove_playing_confirm":"{0} jest nadal odtwarzane, usunięcie go zatrzyma gracza. Czy na pewno chcesz to usunąć?","unsupported_in_browser":"Nieobsługiwane jeszcze w trybie przeglądarki","client":"Klient","warning":"Ostrzeżenie","enable":"Włączać","disable":"Wyłączyć","auto":"Automatyczny","encrypt_connection":"Szyfruj połączenie","encrypted_connection":"Szyfrowane połączenie","non_encrypted_connection":"Nieszyfrowane połączenie","connected_wires_not_disconnect":"Podłączone przewody nie zostaną odłączone","audio":"audio","video":"wideo","image":"obraz","subtitle":"podtytuł","zip":"zamek błyskawiczny","text":"tekst","unknown":"nieznany","add":"Dodać","undo":"Cofnij","backup":"Kopia zapasowa","not_default_app":"${displayName} nie jest Twoją domyślną aplikacją do obsługi torrentów i multimediów, czy chcesz ją ustawić jako domyślną?","dont_show_again":"Nie pokazuj więcej","go_to_settings":"Przejdź do ustawień","about_alphabiz":"Około ${displayName}","last_check_at":"Ostatnia kontrola o godz","update_channel":"Zaktualizuj kanał","check_for_update":"Sprawdź aktualizacje","checking_for_update":"Sprawdzanie aktualizacji...","no_update_available":"Brak dostępnych aktualizacji","update_available":"Dostępna aktualizacja","update_now":"Aktualizuj teraz","update_later":"Zaktualizuj później","click_to_update":"Kliknij przycisk AKTUALIZUJ TERAZ, aby pobrać i zaktualizować","update_failed":"Aktualizacja nie powiodła się","update_failed_message":"Wystąpił błąd podczas aktualizacji:","check_shasum_failed":"Nie udało się sprawdzić integralności instalatora","downloading_update":"Pobieranie aktualizacji...","ready_to_update":"Gotowy do aktualizacji","restart_to_update":"Aktualizacja jest pobierana. ${displayName} wyjdzie na chwilę w celu aktualizacji.","already_latest":"Obecna wersja ({0}) jest już najnowsza","update_timeout":"Limit czasu aktualizacji","no_available_release":"Brak dostępnej wersji","no_available_installer":"Brak dostępnego instalatora","feedback":"Informacja zwrotna","select_a_type":"Wybierz typ","category":"Kategoria","select_a_category":"Wybierz kategorię","require_title":"Tytuł jest wymagany","describe_your_problem":"Opisz swój problem","report_a_bug":"Zgłoś błąd","request_a_new_feature":"Poproś o nową funkcję","download_or_upload":"Pobierz Prześlij","others":"Inni","submit_with_system_info":"Prześlij z informacjami o systemie","submit_feedback":"Prześlij opinię","tweet_us":"Tweetnij z nami","tweet_too_long":"Tweet jest za długi","delete_characters":"Usuń co najmniej znak(i) {0}","rest_characters":"Możesz wprowadzić {0} więcej znaków","update_alphabiz":"Zaktualizuj ${displayName}","current_version":"Obecna wersja","cancel_update":"Anuluj aktualizację","slow_download_speed":"Pobieranie jest zbyt wolne","slow_download_speed_caption":"Pobieranie instalatora jest teraz zbyt wolne. Sprawdź stan sieci","update_canceled":"Aktualizacja anulowana","current_version_release_time":"Czas wydania aktualnej wersji","expired_app":"${displayName} Wygasł","version_out_of_date":"Wersja nieaktualna","have_to_update":"Wersja ${displayName} jest nieaktualna. Niektóre protokoły lub interfejsy API są przestarzałe. Musisz zaktualizować ${displayName} przed kontynuowaniem.","exit_alphabiz":"Wyjdź ${displayName}","exit_and_update":"Wyjdź i zastosuj aktualizację","new_version_hint":"Dostępna jest nowa wersja","no_new_version":"Brak nowej wersji","current_is_latest":"Obecna wersja jest już najnowsza","click_to_check_update":"Kliknij przycisk [SPRAWDŹ AKTUALIZACJĘ], aby sprawdzić dostępność aktualizacji","download_latest_version_from_website":"Odwiedź oficjalną stronę internetową, aby pobrać najnowszą wersję","to_the_website":"Do strony internetowej","network_diagnotic":"Diagnostyka sieci","diagnotic":"Diagnostyczny","click_to_check":"Kliknij, aby sprawdzić","click_to_check_again":"Kliknij, aby sprawdzić ponownie","checking":"Kontrola","online":"online","offline":"offline","dns_look_up":"Wyszukiwanie DNS","error":"Błąd","aws_service":"Usługa AWS","network_pings":"Ping sieciowy","not_found":"Nie znaleziono","packet_loss":"Utrata pakietów","official_site":"Oficjalna strona","download_test":"Pobierz test","test_task":"Zadanie testowe {0}","download_failed":"Pobieranie nie udane","second_spend":"{0} s wydatków","open_default_player_failed":"Nie udało się otworzyć domyślnego odtwarzacza","copied_to_clipboard":"Skopiowane do schowka","go_to":"Iść do","region_not_available":"Region niedostępny","region_not_available_message":"Przepraszam! Twój region nie umożliwia korzystania z tej aplikacji. Ta aplikacja zostanie zamknięta po {0} sekundach","confirm":"Potwierdzać","no_available_result":"Brak dostępnych wyników","invalid_password_format":"nieprawidłowy format hasła","invalid_password_format_same":"Hasło jest takie samo jak oryginalne hasło","error_password":"Błędne hasło","keychain_setting":"Brelok do kluczy","setting_description":"Przechowywanie w chmurze: zapisuj kluczowe dane w chmurze.\\nZmień hasło: zmiana hasła do klucza biblioteki multimediów.\\nMnemonik: alternatywna metoda generowania i przywracania kluczy.\\nImportuj klucz lokalny: Importuj lokalnie zapisany klucz do biblioteki multimediów.\\nKlucz eksportu: zapisuje bieżące dane biblioteki multimediów w pliku lokalnym lub w chmurze.\\nKopia zapasowa klucza do chmury: zaktualizuj bieżące dane biblioteki multimediów do chmury w celu wykonania kopii zapasowej.","refresh_status":"Stan aktualizacji","confirm_import_key":"Potwierdź klucz importu","confirm_update_cloud_key":"Masz już klucz w chmurze. Aktualizacja klucza spowoduje zastąpienie oryginalnego klucza. Czy na pewno chcesz zaktualizować klucz przechowywany w chmurze","export_key_with_cloud":"Wprowadź niezależne hasło, które ustawiłeś, aby wyeksportować klucz biblioteki przechowywany w chmurze i zablokuj plik klucza hasłem odblokowania","store_cloud_key_prompt_password":"Wprowadź niezależne hasło, aby przechowywać klucz biblioteczny w chmurze","update_cloud_key_prompt_password":"Ustaw niezależne hasło, aby zaszyfrować klucz biblioteki, a następnie zaktualizuj go do chmury","enable_cloud_storage_prompt_password":"Ustaw hasło do klucza przechowywanego w chmurze, za pomocą którego możesz pobrać klucz z chmury","input_unlock_password":"Ustaw hasło odblokowujące","export_local_prompt_password":"Ustaw hasło odblokowujące, aby zaszyfrować plik klucza. Nie zapiszemy dla Ciebie tego hasła, więc jeśli je zgubisz, nie będziesz mógł odblokować swojego klucza bibliotecznego","require_unlock_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","require_independent_password":"Wprowadź niezależne hasło, aby uzyskać klucz przechowywany w chmurze","import_local_prompt_password":"Plik klucza jest zablokowany, wprowadź hasło odblokowujące","select_encrypt_mode":"Wybierz tryb szyfrowania","update_cloud_key":"Zaktualizuj klucz przechowywany w chmurze","backup_to_cloud":"Utwórz kopię zapasową klucza biblioteki w chmurze","save_local":"Zapisz klucz biblioteki jako lokalny zaszyfrowany plik","create_new_key":"Utwórz nowy klucz biblioteki","creating_lib_key":"Tworzę klucz biblioteki...","loading_lib_key":"Ładowanie klucza biblioteki...","failed_to_create_lib_key":"Nie udało się utworzyć klucza biblioteki","failed_to_load_lib_key":"Nie udało się załadować klucza biblioteki","import_local_key":"Importuj klucz lokalnie","import_lib_key_from_local":"Zaimportuj klucz biblioteki lokalnie","import_from_cloud":"Zaimportuj klucz biblioteki z chmury","create_or_import_key":"Utwórz lub zaimportuj klucz biblioteki","create_or_import_key_desc":"Klucz biblioteczny to niezależny klucz używany do pobierania i publikowania treści w zdecentralizowanej bazie danych.","store_your_lib_key":"Przechowuj swój klucz do biblioteki","export_cloud_key":"Eksportuj klucz z chmury","export_current_key":"Eksportuj bieżący klucz","change_password":"Zmień hasło","enable_cloud_storage":"Włącz przechowywanie w chmurze","disable_cloud_storage":"Wyłącz przechowywanie w chmurze","disable_cloud_storage_desc":"Wyłączenie przechowywania w chmurze spowoduje usunięcie klucza zapisanego w chmurze, upewnij się, że klucz jest zapisany lokalnie","sync_at":"Synchronizuj o: {time}","cloud_storage_enabled":"Synchronizuj pęku kluczy z {storage}","cloud_storage_disabled":"Przechowywanie w chmurze wyłączone","saved_locally":"Zapisane lokalnie","export_key":"Eksportuj plik klucza","cloud_independent_password":"Hasło niezależne od chmury","key_file_unlock_password":"Hasło odblokowania pliku klucza","re_enter_unlock_password":"Wprowadź ponownie hasło odblokowujące","independent_password_not_enabled":"Obecne hasło to hasło do konta Alphabiz (nie jest ustawione żadne niezależne hasło)","use_cognito_hash":"Użyj hasła do konta Alphabiz","use_independent_password":"Użyj niezależnego hasła","keychain_lib":"klucz do biblioteki","loading_keychain_state":"Ładowanie pęku kluczy...","backing_up":"Tworzenie kopii zapasowej...","backup_current_key":"Utwórz kopię zapasową bieżącego klucza w chmurze","cloud_lib_key_not_existed":"klucz biblioteki nie istnieje w chmurze","open_keychain_file":"Otwórz plik pęku kluczy","confirm_open_abk":"Czy chcesz otworzyć plik ABK","use_the_key":"Użyj klucza","backup_the_key":"Utwórz kopię zapasową klucza w chmurze","keychain_data_does_not_exist":"Dane pęku kluczy nie istnieją","timeout of 0ms exceeded":"Wystąpił problem z siecią, spróbuj ponownie później","XhrError":"Wystąpił problem z siecią, spróbuj ponownie później","payer credit amount is not enough":"Za mało kredytów","payee does not exist":"Odbiorca płatności nie istnieje","block_list_manage":"Zarządzaj listą zablokowanych","blocked_users":"Zablokowani użytkownicy","blocked_channels":"Zablokowane kanały","unblock_user":"Odblokuj użytkownika","unblock_channel":"Odblokuj kanał","no_blocked_user":"Brak zablokowanego użytkownika","no_blocked_channel":"Brak zablokowanego kanału","field_required":"{0} jest wymagane","setting":"Ustawienie","unknown_media":"Nieznane media","settings_button_visible":"Przycisk widoczny","settings_setting":"Ustawienie","settings_playback_rate":"Szybkość odtwarzania","settings_subtitle":"Podtytuł","settings_pip":"Pypeć","settings_fullscreen":"Pełny ekran","settings_subtitle_options":"Opcje napisów","settings_normal":"Normalna","settings_italic":"italski","settings_lighter":"Zapalniczka","settings_bolder":"Odważniejszy","settings_small":"Mały","settings_large":"Duży","about":"O","services":"Usługi","hide":"Ukrywać","hide_others":"Ukryj inne","show_all":"Pokaż wszystko","quit":"Zrezygnować","edit":"Edytować","redo":"Przerobić","cut":"Cięcie","paste":"Pasta","select_all":"Zaznacz wszystko","view":"Pogląd","reload":"Przeładować","toggle_full_screen":"Przełącz tryb pełnoekranowy","toggle_developer_tools":"Przełącz Narzędzia dla programistów","window":"Okno","minimize":"Zminimalizować","bring_all_to_front":"Przenieś wszystko na wierzch","help":"Pomoc","github_repo":"Repozytorium Github","issues":"Kwestie","learn_more":"Ucz się więcej","learn_spelling":"Naucz się pisowni","lookup_selection":"Wyszukaj „{selection}”","search_with_google":"Szukaj za pomocą Google","save_as":"Zapisz jako","save_image":"Zapisać obraz","save_image_as":"Zapisz obraz jako ...","copy_link":"Skopiuj link","save_link_as":"Zapisz link jako ...","copy_image":"Skopiuj obraz","copy_image_as":"Kopiuj obraz jako...","copy_image_address":"Kopiuj adres obrazu","download_complete":"Pobieranie zakończone","download_complete_message":"{0} jest pobierany","is_running":"{0} działa","open":"Otwórz {0}","launch_problem":"Problem z uruchomieniem","ask_clear_data":"Wygląda na to, że próbujesz uruchomić {0}, ale kilka razy nie powiodło się.\\nCzy chcesz wyczyścić wszystkie dane aplikacji i spróbować uruchomić ją później?","launch_directly":"Uruchom bezpośrednio","clear_all_data":"Wyczyść wszystkie dane","ask_clear_confirm":"Spowoduje to usunięcie wszystkich konfiguracji, dzienników i danych użytkownika!\\nPo tym może być konieczne ponowne uruchomienie {0}.\\nCzy na pewno usunąć dane?","confirm_launch":"Nie, uruchom bezpośrednio","confirm_clear":"Tak, wyczyść wszystkie dane"}')},"06cd":function(e,t,a){"use strict";a("326b")},"06e8":function(e,t,a){"use strict";a.d(t,"c",(function(){return i})),a.d(t,"b",(function(){return s})),a.d(t,"a",(function(){return c}));a("d4b5"),a("de6c"),a("7996");var n=a("e75b");const o=new n["a"].Rest("ABDevRest"),i=e=>{let t,a,n,i;const r=()=>!1!==i,s=e=>{t=e.query_type,a=e.query_params||{},n=[],i=void 0},l=()=>o.post("/credit/transaction/query",{query_type:t,query_params:JSON.stringify(a),next_token:i}).then((e=>{var t;n.push(...e.items),i=null!==(t=e.nextToken)&&void 0!==t&&t}));return e&&s(e),{reset:s,getData:()=>n,hasNext:r,fetch:l}},r=n["a"].GQL,s={enable:async e=>await r.enableUserListener(e),disable:async()=>{r.removeUserListener("credits"),r.disableUserListener()},addHandler:(e,t)=>{r.addUserListener("credits",(a=>{void 0!==a[e]&&t(a[e])}))},addHandlers:(e,t)=>{r.addUserListener("credits",(t=>{Object.entries(t).forEach((([t,a])=>{e[t]&&e[t](a)}))}),t)}},l={state:"disabled",resolver:null,async enable({rootState:e,rootGetters:t,dispatch:a}){const n=()=>e.account.sub,o=()=>t.transactions.expenses,i=e=>a("CREDIT_PAY_DATA_CANCEL",{transactionId:e.id}),r=e=>t=>{const a=2592e5;if("PAYDATA"!==t.category)return!1;if(t.payerId!==n())return!1;if("PENDING"!==t.status)return!1;const o=e.getTime()-new Date(t.createdAt).getTime();return!(o<=a)},s=async()=>{const e=o(),t=e.filter(r(new Date));for(const a of t)console.log("TxnCancellation:",a.id),await i(a)};c.state="idle";const l=3e5;while(!["stopping","disabled"].includes(c.state)){let e=l;if("idle"===c.state){c.state="processing";const t=(new Date).getTime();if(await s(),["stopping","disabled"].includes(c.state))break;const a=(new Date).getTime();e-=Math.max(0,Math.min(l,a-t))}if(e&&(c.state="waiting",await new Promise((t=>setTimeout(t,e))),["stopping","disabled"].includes(c.state)))break;c.state="idle"}console.error("TxnCancellation resolver"),c.resolver?c.resolver():console.error("resolver not found")},async disable(){if(["stopping","disabled"].includes(c.state))return;if(["waiting"].includes(c.state))return void(c.state="disabled");const e=new Promise((e=>{c.resolver=()=>{e(),c.resolver=null}}));c.state="stopping",await e,c.state="disabled"}},c=new Proxy(l,{get(e,t,a){return Reflect.get(e,t,a)},set(e,t,a,n){return"state"===t&&console.log("TxnCancellation:",a),Reflect.set(e,t,a,n)}})},"071f":function(e,t,a){"use strict";a("25b9")},"072b":function(e,t,a){"use strict";a.d(t,"c",(function(){return d})),a.d(t,"d",(function(){return u})),a.d(t,"a",(function(){return _})),a.d(t,"e",(function(){return p})),a.d(t,"h",(function(){return m})),a.d(t,"b",(function(){return h})),a.d(t,"g",(function(){return g})),a.d(t,"f",(function(){return f}));a("de6c");const n="`~!@#$%^&*()\\-_=+[\\]\\\\;',./{}|:\"<>?",o=(e,t)=>{const a=new RegExp(`^[${t.join("")}]*$`);return a.test(e)},i=(e,t=1,a=1/0)=>void 0!==e&&("string"===typeof e&&0===e.length||e.length>=t&&e.length<=a),r=e=>!/\s\s/.test(e),s=e=>/[0-9]/g.test(e),l=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`^[^${t.join("")}]`).test(e)),c=(e,t)=>void 0===e||("string"===typeof e&&0===e.length||new RegExp(`[^${t.join("")}]$`).test(e)),d=function(e){const t=["0-9","A-Z","a-z","一-龥","\\s","_"];if(!o(e,t))return this.$t("account_field_only_chinese_alphanumeric_space_underline");const[a,n]=[2,15];return i(e,a,n)?l(e,["0-9","\\s"])?c(e,["\\s"])?!!r(e)||this.$t("account_field_without_repeat_space"):this.$t("account_field_suffix_without_space"):this.$t("account_field_prefix_without_number_space"):this.$t("account_field_range",[a,n])},u=function(e){const t=["0-9","A-Z","a-z",n];if(!o(e,t))return this.$t("account_field_only_alphanumeric_and_symbol");const[a,r]=[8,20];return i(e,a,r)?s(e)?void 0:this.$t("account_field_must_have_number_characters"):this.$t("account_field_range",[a,r])},_=function(e){if(!/^([a-zA-Z]|[0-9])(\w|-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(e))return this.$t("account_invalid_email_format")},p=function(e){if(!o(e,["0-9"]))return this.$t("account_field_phone_number");const[t,a]=[3,11];return i(e,t,a)?void 0:this.$t("account_field_range",[t,a])},m=function(e){return o(e,["0-9"])&&i(e,6,6)?void 0:this.$t("account_field_verification_code")},h=function(e){const t=["0-9","A-Z","a-z"];if(!o(e,t))return this.$t("account_field_invitation_code")},g=function(e){const t=["0-9","a-f","-"];return o(e,t)&&"8-4-4-4-12"===e.split("-").map((e=>e.length)).join("-")||this.$t("tip_invalid_receiver")},f=function(e){return/^((\d{1,3}(\.\d{1,3})?)|(1000(\.0{1,3})?))$/.test(e)?[""+parseFloat(e)===e,parseFloat(e)<=1e3,parseFloat(e)>=.001,parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)].some((e=>!e))?this.$t("tip_invalid_amount"):void 0:this.$t("tip_invalid_amount")}},"0742":function(e,t,a){},"076e":function(e,t,a){"use strict";a("de6c");const n={oauth_stage:{authorize:["Authorizing","授权中...","授權中..."],logging_in:["Logging in","登陆中...","登入中..."],connecting:["Connecting","关联中...","關聯中..."]},oauth_connect:{connect_to:["Connect to {provider}","关联 {provider} 账号","關聯 {provider} 賬號"],notify:{connected:["{provider} connected","已关联 {provider} 账号","已關聯 {provider} 賬號"]}},oauth_disconnect:{disconnect:["Disconnect {provider}","解除 {provider} 账号关联","解除 {provider} 賬號關聯"],notify:{disconnected:["{provider} disconnected","已解除 {provider} 账号关联","已解除 {provider} 賬號關聯"]}},oauth_login:{sign_in_with:["Sign in with {provider}","通过 {provider} 登录","通過 {provider} 登錄"],notify:{signed_in:["Signed in","登录成功","登錄成功"]}},oauth_error:{can_not_login_unconnected_account:["Can not log in to an unconnected {provider} account","无法登录未关联的 {provider} 账号","無法登錄未關聯的 {provider} 賬號"],oauth_account_has_been_connected:["The {provider} account has been connected","该 {provider} 账号已建立关联","該 {provider} 賬號已建立關聯"]},oauth_unset:["unset","未关联","未關聯"]},o=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};t["a"]={messages:o(n)}},"0885":function(e,t,a){"use strict";(function(e){a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));a("7a76"),a("de6c");var n=a("3387"),o=a("f680"),i=a("5584"),r=a("d310"),s=a("1926"),l=a("d7df"),c=a("84f6"),d=a("d558");const u={started:[],toVerify:{},toSubmit:{},toFinish:{},toPause:{}},_={},p=1e7,m="\n background-color: rgb(90,90,90);\n color: white;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(161,161,161);\n",h=()=>{const t={set:t=>e.notified_credit_not_enough_amount=t,get:()=>!!e.notified_credit_not_enough_amount};t.get()||(t.set(!0),o["a"].create({group:"credit_not_enough_amount",message:s["b"].t("credit_not_enough_amount"),type:"negative",position:"bottom-right",timeout:6e3,actions:[{icon:"close",color:"negative",handler:()=>t.set(!1)}]}))};function g(e,t){_[e]=t}function f(e,t=!1){t?(console.log("restart transaction",e),l["a"].emit("restart_payment",e)):l["a"].emit("credit_payment_created",e),u.started.push(e.id)}async function b(e,t=!1,a){console.log("Create payment",e,t);const{infoHash:n,remoteSubId:i,payed:r}=e,l=Date.now().toString();try{const c=await a.dp$request(i,r,{infoHash:n,timestamp:l});f({...e,id:c}),t||o["a"].create(s["b"].t("success"))}catch(c){if(console.log("dp$request failed",c.message),"credit_not_enough_amount"===c.message)return void h();t||o["a"].create(c.message||c)}}function y(e){e.$watch("dp$incomeStatusMapper",((e,t)=>{Object(n["isEqual"])(e,t)||e.PENDING&&e.PENDING.forEach((e=>{u.toVerify[e]&&u.toVerify[e](),u.toSubmit[e]&&u.toSubmit[e]()}))})),e.$watch("dp$expenseStatusMapper",((t,a)=>{Object(n["isEqual"])(t,a)||(t.PENDING&&t.PENDING.forEach((t=>{if(u.started.includes(t))return;const a=e.dp$expenseTxnDict[t],n=JSON.parse(a.meta);console.log("dp$restart from StatusMapper"),f({infoHash:n.infoHash,remoteSubId:a.payeeId,payed:a.amount,autoRenew:!!_[n.infoHash],id:a.id},!0)})),t.COMPLETED&&t.COMPLETED.forEach((e=>{u.toFinish[e]&&u.toFinish[e]()})))})),l["a"].on("verify_payment",(t=>{if(console.log("onVerify",t),void 0===u.toVerify[t.id]){const a=async()=>{u.toVerify[t.id]=!1;const a=e.dp$incomeTxnDict[t.id],n=e=>{throw new Error(`DataPayment(${t.id}) Verify failed: ${e}`)};a.amount!==t.payed&&n("mismatched amount"),l["a"].emit("payment_verified",t)};u.toVerify[t.id]=a}const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.id)&&(u.toVerify[t.id]&&u.toVerify[t.id](),delete u.toVerify[t.id])})),l["a"].on("torrent_metadata",(t=>{var a;l["a"].emit("save_torrent_file",t),g(t,!0);const n=e.dp$expenseHashMapper[t];if(!n)return;const o=null===(a=e.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>n.includes(e)));o&&o.length&&o.forEach((a=>{const n=e.dp$expenseTxnDict[a];console.log("dp$restart from resumeAccelerate"),f({infoHash:t,remoteSubId:n.payeeId,payed:n.amount,autoRenew:_[t],id:n.id},!0)}))})),l["a"].on("request_renew",(t=>{var n;const{subId:o,infoHash:i,peerId:s}=t,l=Object(r["isElectron"])()||Object(d["a"])()?c["a"].allTasks.find((e=>e.infoHash===i)):a("c620").getTaskInstance();if(!l||l.paused||l.done||!l.connections)return;const u=null===(n=l.connections)||void 0===n?void 0:n.find((e=>e.subId===o));if(!u)return;if(!u.hasResource)return void console.log("Remote peer does not have resource. Skip renew.",o,i,s);const _=e.dp$expenseHashMapper[i]||[],m=e.dp$expenseStatusMapper.PENDING||[],h=(null===m||void 0===m?void 0:m.filter((e=>_.includes(e))))||[];if(h.length>10)return console.log("too many pending payments",h);const f=h.filter((t=>{if(!e.dp$expenseTxnDict)return!1;if(e.dp$expenseTxnDict[t]){const a=e.dp$expenseTxnDict[t];return"PENDING"===a.status&&a.payeeId===o}return!1}));if(f.length>3)return console.log(`Too many pending payments for remote subId ${t.subId}`,h);const y=l.length-l.recieved;let v=t.payCount||10;y{console.log("payment completed",t),void 0===u.toSubmit[t.transactionId]&&(u.toSubmit[t.transactionId]=async()=>{u.toSubmit[t.transactionId]=!1,await e.dp$submit(t.transactionId),l["a"].emit("finish_payment",t)});const a=e.dp$incomeStatusMapper.PENDING;a&&a.includes(t.transactionId)&&u.toSubmit[t.transactionId]&&u.toSubmit[t.transactionId]()})),l["a"].on("payment_finished",(t=>{console.log("Finished",t.id),void 0===u.toFinish[t.id]&&(u.toFinish[t.id]=async()=>{u.toFinish[t.id]=!1;try{await e.dp$confirm(t.id);const a=e.dp$expenseTxnDict[t.id];l["a"].emit("payment_closed",{id:a.id,infoHash:JSON.parse(a.meta).infoHash,remoteSub:a.payeeId})}catch(a){console.error("dp$toFinish failed:",a.message)}});const a=e.dp$expenseStatusMapper.COMPLETED;a&&a.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]();const n=e.dp$expenseStatusMapper.PENDING;n&&n.includes(t.id)&&u.toFinish[t.id]&&u.toFinish[t.id]()})),l["a"].on("request-provident-payment",(async e=>{console.log("%cRequest provident payment",m,e);try{await i["a"].dispatch("CREDIT_PF_DEPOSIT",{amount:e.count,meta:{infoHash:e.infoHash,timestamp:Date.now().toString()}})}catch(t){"credit_not_enough_amount"===t.message&&h()}}))}t["b"]=y}).call(this,a("0ee4"))},"0925":function(e,t,a){"use strict";function n(e){return{Github:"fab fa-github",Twitter:"fab fa-twitter",Google:"fab fa-google"}[e]}function o({title:e,providerName:t}){const a=(a,o)=>({title:this.$t(e,{provider:t}),ok:!1,cancel:o.cancel,banner:{avatar:n(t),title:this.$t(`oauth_stage.${a}`,{provider:t})}});let o;const i={updateStage:(e,i)=>{o?o.update({banner:{avatar:n(t),title:this.$t(`oauth_stage.${e}`,{provider:t})}}):o=this.$alphabiz.dialog(a(e,i))},hide:()=>{var e;null===(e=o)||void 0===e||e.hide()}};return i}t["a"]={getIcon:n,useOAuthFlowDialog:o}},"0928":function(e,t,a){"use strict";a("7405")},"09e8":function(e,t,a){"use strict";a("d4b5");var n=a("5584");class o{constructor(e){Object.defineProperty(this,"_data",{get(){return e}});const t=()=>{const t=["id","status","payerId","payeeId","amount","meta"],a={};return t.forEach((e=>a[e]=this[e])),Object.defineProperty(a,"_data",{get(){return e}}),a};return t()}get id(){return null}get status(){return null}get payerId(){return null}get payeeId(){return null}get amount(){return null}get meta(){return null}}class i{constructor(e){this.name=e}dp$address(){}dp$credit(){}dp$incomeTxnList(){}dp$expenseTxnList(){}dp$incomeTxnListToday(){}async dp$request(e,t,a){}async dp$cancel(e){}async dp$submit(e,t){}async dp$confirm(e,t){}}a("de6c");const r=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"gainsboro",color:"black"},{bgc:"grey",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)};class s{constructor({parallelCount:e}={}){this.queue=[],this.started=!1,this.parallelCount=e||1}append(...e){return this.queue.push(...e),this}async start(){if(!this.started){this.started=!0;while(this.started)if(this.queue.length>0){const e=this.queue.splice(0,this.parallelCount),t=e=>new Promise((t=>{const a=e();a&&a.then&&a.catch?a.then(t):t()}));await Promise.all(e.map(t))}else await this.wait(3e3)}}stop(){this.started=!1}async wait(e){await new Promise((t=>setTimeout(t,e)))}async promise(e){let t;if(await new Promise((a=>{this.append((()=>e().then(a,(e=>t=e))))})),t)throw t}}const l=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,!["Invalid transaction: status should be PENDING","Invalid transaction: status should be PENDING or COMPLETED","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ConditionalCheckFailed]","Transaction cancelled, please refer cancellation reasons for specific reasons [None, ValidationError]"].includes(e.message)){if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if(["Transaction cancelled, please refer cancellation reasons for specific reasons [None, TransactionConflict]"].includes(e.message))return r("warn",["dp$retry",n,"TransactionConflict",e.code],e.message),!0;if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};class c extends i{constructor(){super("amplify"),this.asyncQueue=new s({parallelCount:1}),this.asyncQueue.start().then((()=>{console.log("dp$asyncQueue: stop")}))}dp$address(){return n["a"].state.account.sub}dp$credit(){return n["a"].state.credits.credit}dp$incomeTxnList(){const e=n["a"].getters.transactions.income.filter((e=>"PAYDATA"===e.category));return e}dp$expenseTxnList(){const e=n["a"].getters.transactions.expenses.filter((e=>"PAYDATA"===e.category));return e}dp$incomeTxnListToday(){const e=n["a"].getters.incomeTodayTransactions.filter((e=>"PAYDATA"===e.category));return e}async dp$request(e,t,a){let o;const i=async()=>{o=await n["a"].dispatch("CREDIT_PAY_DATA_REQUEST",{receiverSub:e,amount:t,meta:a})};return await l(i,5),o.id}async dp$cancel(e){const t=async()=>{await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(t,5)}async dp$submit(e,t){const a=async()=>{t?console.warn("dp$warn: abandoned is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_COMPLETED",{transactionId:e})};await l(a,5)}async dp$confirm(e,t){const a=async()=>{t?console.warn("dp$warn: failed is not supported for amplify mode."):await n["a"].dispatch("CREDIT_PAY_DATA_FINISH",{transactionId:e})};await l(a,5)}}var d=a("7ca3"),u=a.n(d);a("7a76");class _ extends o{__parseStatus(e){const t={0:"PENDING",1:"FINISH",3:"FINISH",4:"COMPLETED",5:"FINISH",6:"FAILED"},a=t[e];if(!a)throw new Error("Unexpected state",e);return a}get id(){return[this._data.publisher,this._data.performer,this._data.index].join("::")}get status(){return this.__parseStatus(this._data.state)}get payerId(){return this._data.publisher}get payeeId(){return this._data.performer}get amount(){return parseInt(this._data.amount)}get meta(){return this._data.meta_data}}const p=async(e,t)=>{let a=0;const n=Math.floor(1e3*Math.random()),o=e=>{if(a+=1,r("warn",["retryHandler"],e.message),"Out of gas"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("invalid transaction: INSUFFICIENT_BALANCE_FOR_TRANSACTION_FEE"===e.message)throw r("warn",["dp$retry",n,"failed"],e.message),e;if("Network Error"===e.message)return r("warn",["dp$retry",n,e.code],e.message),!0;if("invalid transaction: SEQUENCE_NUMBER_TOO_OLD"===e.message)return r("warn",["dp$retry",n,a,e.code],e.message),!0;if("transaction is rejected: InvalidUpdate - Transaction already in mempool"===e.message)return r("warn",["dp$retry",n,a],e.message),!0;if(e.is_move_error){if("1031"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status was deactivated");if("1281"===e.code)return void r("warn",["dp$retry",n,"skip",e.code],"txn status has been changed");throw r("warn",["dp$retry",n,"failed",e.code],e.message),e}if(a{if(!o(t))return;const a=Math.floor(1e3*Math.random());return new Promise((e=>setTimeout(e,a))).then(e).catch(i)},s=await e().catch(i);return s};let m;class h extends i{constructor(){super("blockchain"),m=window.$blockchain}dp$address(){return m.$store.account.address}dp$credit(){return m.$store.wallet.balance.TestCoin}dp$incomeTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}dp$expenseTxnList(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.expensesFilter);return e.map((e=>new _(e)))}dp$incomeTxnListToday(){const e=Object.values(m.$store.DataProviding.txnDict).filter(h.incomeFilter);return e.map((e=>new _(e)))}async dp$request(e,t,a){const n=async()=>{const n=await m.$store.DataProviding.publishDataProvidingTxn({address:e,amount:t,meta:JSON.stringify(a)}),o=n.getTaskId(),i=[o.publisher,o.performer,o.index].join("::");return i};return await p(n,5)}async dp$cancel(e){const t=async()=>{const t=await m.$store.DataProviding.cancelDataProvidingTxn({txnKey:e});console.log("postTxnCancel >>",t)};await p(t,5)}async dp$submit(e,t){const a=async()=>{const a=await m.$store.DataProviding.submitDataProvidingTxn({txnKey:e,abandoned:t});console.log("postTxnComplete >>",a)};await p(a,5)}async dp$confirm(e,t){const a=async()=>{const a=await m.$store.DataProviding.confirmDataProvidingTxn({txnKey:e,failed:t});console.log("postTxnFinish >>",a)};await p(a,5)}}function g(){const e={},t={},a=b.call(this,{dp$incomeTxnList:"dp$incomeTxnDict",dp$expenseTxnList:"dp$expenseTxnDict"}),n=y.call(this,{dp$incomeStatusMapper:e=>e.status,dp$incomeHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}}),o=y.call(this,{dp$expenseStatusMapper:e=>e.status,dp$expenseHashMapper:e=>{if(!e.meta)return;let a=t[e.id];if(void 0!==a)return a.infoHash;try{a=JSON.parse(e.meta)}catch{a={},console.warn("failed to parse txn meta")}return t[e.id]=a,a.infoHash}});e.updateIncomeData=()=>{a.dp$incomeTxnList(),n("dp$incomeTxnList")},e.updateExpenseData=()=>{a.dp$expenseTxnList(),o("dp$expenseTxnList")};const i=f.call(this,"dp$incomeTxnDict"),r=f.call(this,"dp$expenseTxnDict");e.logIncomeStatus=(e,t)=>i(e,t),e.logExpenseStatus=(e,t)=>r(e,t),this.dp$utils=e}function f(e){const t=(t,a)=>this[e][t]&&r(["dp$status",a||"[payment]","=>",this[e][t].status],t);return(a,n)=>{if(a&&this[e]){if(n)for(const e of Object.keys(n))if(n[e]&&a[e])for(const o of n[e])a[e].includes(o)||t(o,e);if(a.PENDING)for(const e of a.PENDING)n&&n.PENDING&&n.PENDING.includes(e)||t(e)}}}function b(e){const t=(e,t)=>this[e]=t,a=(e,a)=>{const n={};for(const t of this[e])n[t.id]=t;t(a,n)};return Object.entries(e).reduce(((e,[t,n])=>({...e,[t]:()=>a(t,n)})),{})}function y(e){return t=>{const a={};for(const[o,i]of Object.entries(e)){const e={};for(const a of this[t]){const t=i(a);e[t]||(e[t]=[]),e[t].push(a.id)}a[o]=e}const n=(e,t)=>this[e]=t;Object.entries(a).forEach((e=>n(...e)))}}u()(h,"incomeFilter",(e=>m.$store.account.account.address().toShortString()===e.performer)),u()(h,"expensesFilter",(e=>m.$store.account.account.address().toShortString()===e.publisher));const v=[c,h];t["a"]={data(){var e;const t=null!==(e=localStorage.getItem("dataPaymentMixin.mode"))&&void 0!==e?e:"amplify";localStorage.setItem("dataPaymentMixin.mode",t);const a=v.reduce(((e,t)=>{const a=new t;return e[a.name]=a,e}),{});return g.apply(this),{dp$mode:t,dp$interfaces:a,dp$incomeTxnDict:{},dp$incomeStatusMapper:{},dp$incomeHashMapper:{},dp$expenseTxnDict:{},dp$expenseStatusMapper:{},dp$expenseHashMapper:{},dp$source:this}},watch:{dp$mode(e){r(["dp$mode",e]),localStorage.setItem("dataPaymentMixin.mode",e)},dp$incomeTxnList(){this.dp$utils.updateIncomeData()},dp$expenseTxnList(){this.dp$utils.updateExpenseData()}},computed:{dp$credit(){return this.dp$interfaces[this.dp$mode].dp$credit()},dp$address(){return this.dp$interfaces[this.dp$mode].dp$address()},dp$incomeTxnList(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnList()},dp$expenseTxnList(){return this.dp$interfaces[this.dp$mode].dp$expenseTxnList()},dp$incomeTxnListToday(){return this.dp$interfaces[this.dp$mode].dp$incomeTxnListToday()}},methods:{async dp$request(e,t,a){r(["dp$post","request","waiting..."]);const n=await this.dp$interfaces[this.dp$mode].dp$request(e,t,a);return r(["dp$post","request","done"],n),n},async dp$cancel(e){r(["dp$post","cancel","waiting..."],e);const t=await this.dp$interfaces[this.dp$mode].dp$cancel(e);return r(["dp$post","cancel","done"],e),t},async dp$submit(e,t=!1){const a=t?"abandoned":"provided";r(["dp$post","submit",a,"waiting..."],e);const n=await this.dp$interfaces[this.dp$mode].dp$submit(e,t);return r(["dp$post","submit",a,"done"],e),n},async dp$confirm(e,t=!1){const a=t?"failed":"succeeded";r(["dp$post","confirm",a,"waiting..."],e);try{const n=await this.dp$interfaces[this.dp$mode].dp$confirm(e,t);return r(["dp$post","confirm",a,"done"],e),n}catch(o){var n;if(console.warn("Error when confirming transaction",e,o),null!==(n=o.message)&&void 0!==n&&n.includes("payee does not exist")){const t=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]");t.push(e),localStorage.setItem("_transactions_missing_payee_",JSON.stringify(t))}}},__dp$notify__(){const e="amplify"===this.dp$mode?"blockchain":"amplify";this.$q.notify({group:"dp$mode_warning",message:`Current Data Payment Mode: "${this.dp$mode}"`,type:"warning",position:"bottom",timeout:0,actions:[{noCaps:!0,color:"black",label:`Switch to ${e}`,handler:()=>{this.dp$mode=e,location.reload(),a("d310").isElectron()&&a("b052").ipcRenderer.send("reload-webtorrent-window")}},{noCaps:!0,color:"black",label:"Close"}]})}},created(){this.dp$utils.updateIncomeData(),this.dp$utils.updateExpenseData()}}},"0c2f":function(e,t,a){},"0c70":function(e,t,a){},"0c7a":function(e,t,a){},"0cdb":function(e,t,a){"use strict";a.r(t),a.d(t,"notifyGeneralUpdate",(function(){return n})),a.d(t,"notifyMessage",(function(){return o})),a.d(t,"transfer",(function(){return i})),a.d(t,"notifyCreditChange",(function(){return r})),a.d(t,"generalCommand",(function(){return s})),a.d(t,"createUser",(function(){return l})),a.d(t,"updateUser",(function(){return c})),a.d(t,"deleteUser",(function(){return d})),a.d(t,"createInvitation",(function(){return u})),a.d(t,"updateInvitation",(function(){return _})),a.d(t,"deleteInvitation",(function(){return p})),a.d(t,"createMessageTimer",(function(){return m})),a.d(t,"updateMessageTimer",(function(){return h})),a.d(t,"deleteMessageTimer",(function(){return g})),a.d(t,"createTransaction",(function(){return f})),a.d(t,"updateTransaction",(function(){return b})),a.d(t,"deleteTransaction",(function(){return y})),a.d(t,"createTask",(function(){return v})),a.d(t,"updateTask",(function(){return w})),a.d(t,"deleteTask",(function(){return k})),a.d(t,"createProvidentFund",(function(){return S})),a.d(t,"updateProvidentFund",(function(){return C})),a.d(t,"deleteProvidentFund",(function(){return x}));const n="\n mutation NotifyGeneralUpdate(\n $id: String!\n $channel: String!\n $data: String!\n ) {\n notifyGeneralUpdate(id: $id, channel: $channel, data: $data) {\n id\n channel\n data\n }\n }\n",o="\n mutation NotifyMessage($channel: String!, $data: String!) {\n notifyMessage(channel: $channel, data: $data) {\n channel\n data\n }\n }\n",i="\n mutation Transfer(\n $receiver: String!\n $amount: Int!\n $category: Category!\n $meta: String\n ) {\n transfer(\n receiver: $receiver\n amount: $amount\n category: $category\n meta: $meta\n )\n }\n",r="\n mutation NotifyCreditChange($ownerId: String!, $amount: Int!) {\n notifyCreditChange(ownerId: $ownerId, amount: $amount) {\n ownerId\n amount\n }\n }\n",s="\n mutation GeneralCommand($input: String) {\n generalCommand(input: $input)\n }\n",l="\n mutation CreateUser(\n $input: CreateUserInput!\n $condition: ModelUserConditionInput\n ) {\n createUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",c="\n mutation UpdateUser(\n $input: UpdateUserInput!\n $condition: ModelUserConditionInput\n ) {\n updateUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n mutation DeleteUser(\n $input: DeleteUserInput!\n $condition: ModelUserConditionInput\n ) {\n deleteUser(input: $input, condition: $condition) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n mutation CreateInvitation(\n $input: CreateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n createInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",_="\n mutation UpdateInvitation(\n $input: UpdateInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n updateInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n mutation DeleteInvitation(\n $input: DeleteInvitationInput!\n $condition: ModelInvitationConditionInput\n ) {\n deleteInvitation(input: $input, condition: $condition) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n mutation CreateMessageTimer(\n $input: CreateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n createMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",h="\n mutation UpdateMessageTimer(\n $input: UpdateMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n updateMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n mutation DeleteMessageTimer(\n $input: DeleteMessageTimerInput!\n $condition: ModelMessageTimerConditionInput\n ) {\n deleteMessageTimer(input: $input, condition: $condition) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n mutation CreateTransaction(\n $input: CreateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n createTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",b="\n mutation UpdateTransaction(\n $input: UpdateTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n updateTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n mutation DeleteTransaction(\n $input: DeleteTransactionInput!\n $condition: ModelTransactionConditionInput\n ) {\n deleteTransaction(input: $input, condition: $condition) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n mutation CreateTask(\n $input: CreateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n createTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n mutation UpdateTask(\n $input: UpdateTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n updateTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n mutation DeleteTask(\n $input: DeleteTaskInput!\n $condition: ModelTaskConditionInput\n ) {\n deleteTask(input: $input, condition: $condition) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n mutation CreateProvidentFund(\n $input: CreateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n createProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",C="\n mutation UpdateProvidentFund(\n $input: UpdateProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n updateProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n mutation DeleteProvidentFund(\n $input: DeleteProvidentFundInput!\n $condition: ModelProvidentFundConditionInput\n ) {\n deleteProvidentFund(input: $input, condition: $condition) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},"0d10":function(e,t,a){},"0f0c":function(e,t,a){"use strict";a("61af"),a("a3fc");const n=e=>{{const t=a("ae46");return t[e]}};t["a"]=n},"0f74":function(e,t,a){},1:function(e,t,a){e.exports=a("e7ec")},10:function(e,t){},1081:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"10e1":function(e,t,a){},11:function(e,t){},"111a":function(e){e.exports=JSON.parse('{"lib_index":"Ev","lib_edit":"Yayınla","lib_publish":"Yayınla","lib_explore":"Keşfetmek","lib_following":"Takip etme","lib_favorite":"Yerel Favoriler","lib_local_favorites":"Yerel Favoriler","lib_channel":"Kanal","lib_submit":"Göndermek","lib_from_network":"Ağdan merkezi olmayan veritabanı kullanma","welcome_to_lib":"${displayName} Medya Kitaplığına Hoş Geldiniz","register_or_login":"Kayıt Giriş","lib_recommend":"Tavsiye etmek","lib_recommend_desc":"${displayName} Kitaplığına hoş geldiniz! Bu kitaplık, ağdan merkezi olmayan bir veritabanı kullanır. Kullanmaya başlamak için bazı kanalları takip etmeniz gerekiyor.","follow_any_channel_to_continue":"Devam etmek için herhangi bir kanalı takip edin","follow_channels_and_continue":"{0} kanallarını takip edin ve devam edin","show_more_for_me":"Benim için daha fazlasını göster","no_more_recommend":"Daha fazla tavsiye yok","key":"Anahtar","create_key":"Anahtar oluştur","save_key":"Anahtarı kaydet","save_key_file":"Anahtarınızı dosya olarak kaydetmek istiyor musunuz?","import_key":"Anahtarı içe aktar","import":"İçe aktarmak","invalid_key":"geçersiz anahtar","back_to_top":"Başa dönüş","search_for_channel":"kanal kimliği ara","search_channel_no_result":"{0} kimliğine sahip kanal bulunamıyor","please_input_channel_id":"Lütfen kanal kimliğini girin","welcome_help_text":"Bu merkezi olmayan bir medya kitaplığıdır. ihtiyacın var\\n Bu veritabanı için bir hesap oluşturmak için. Yapacağız\\n sizin için otomatik olarak kişisel bir anahtar oluşturun.\\n Zaten bir anahtarınız varsa, içe aktarabilirsiniz.\\n burada","welcome_key_text":"Oturum açtıktan sonra, lütfen [ANAHTARI KAYDET] düğmesine tıklayın\\n Özel anahtarınızı kaydetmek için sağ alt köşedeki\\n Anahtarınızı kaybederseniz, tekrar giriş yapamayabilirsiniz.","redirect_to_recommend":"Görünüşe göre herhangi bir kanalı takip etmemişsiniz. [Keşfet] sayfasına yönlendiriliyor.","channel":"Kanal","follow":"Takip etmek","unfollow":"takibi bırak","following":"Takip etme","share":"Paylaşmak","unfollow_confirm":"Bu kanalı takip etmeyi bıraktığınızdan emin misiniz? Bu kanalın zaman tünelinizdeki tüm gönderileri kaldırılacak.","follow_failed_hint":"İşlem hala arka planda beklemede. İşlem uzun süre uygulanmadıysa lütfen uygulamayı yeniden başlatıp tekrar deneyin.","block":"Engellemek","unblock":"engeli kaldırmak","blocked":"Engellendi","block_channel":"Bu kanalı engelle","block_channel_confirm":"Engellenen kanal, onu zaman çizelgenizden kaldıracaktır. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","block_creator":"Bu kanalın yaratıcısını engelle","unblock_creator":"Bu kanalı oluşturan kişinin engellemesini kaldırın","block_creator_confirm":"Blok oluşturucu, bu oluşturucu tarafından oluşturulan tüm kanalları zaman çizelgenizden kaldıracak. Engellenenler listenizi hesap ayarlarında yönetebilirsiniz.","share_url_copied":"Paylaşım URL\'si panonuza kopyalandı","follow_time":"Zamanı takip et","update_time":"Güncelleme zamanı","search":"Aramak","type":"Tip","added":"Katma","click_to_task":"Göreve gitmek için tıklayın","lib_already_added":"Bu videoyu zaten eklediniz","description":"Tanım","poster":"Afiş","channel_poster":"kanal afişi","preview":"Ön izleme","creator":"Yaratıcı","creator_detail":"Yaratıcı ayrıntısı","loading_creator":"Yaratıcı bilgisi yükleniyor","wait_for_creator_loaded":"Lütfen içerik oluşturucu bilgilerinin yüklenmesini bekleyin.","follower":"takipçi","followers":"Takipçiler","follower_list":"takipçi listesi","user":"kullanıcı","channel_title":"Kanal başlığı","channel_id":"Kanal Kimliği","post_title":"Yazı başlığı","post_id":"Posta kimliği","import_data_from_excel":"Excel\'den veri içe aktarma","set_excel_keys":"excel anahtarlarını ayarla","excel_import_succeded":"Excel içe aktarma başarılı oldu","excel_import_success_msg":"{0} satırları eklenmeye hazır, {1} geçersiz ve yinelenen {2} öğeler yoksayılıyor","cannot_find_channel":"kanal bulunamıyor","cannot_find_posts":"gönderiler bulunamıyor","add_channel":"kanal ekle","add_post":"Gönderi ekle","edit_channel":"Kanalı düzenle","channel_setting":"kanal ayarı","edit_post":"Gönderiyi düzenle","edit_posts":"Gönderileri düzenle","channel_detail":"kanal detayı","remove":"Kaldırmak","remove_channel":"Kanalı kaldır","remove_channel_confirm":"Bu yayını kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","remove_post":"Gönderiyi kaldır","remove_post_confirm":"Bu kanalı kaldıracağınızdan emin misiniz? Bu kurtarılamaz.","preview_mode":"Önizleme modu","preview_mode_desc":"Bu, kanalınızın bir önizlemesidir. Tüm film oranları burada gösterilmektedir.","edit_user_profile":"kullanıcı profilini düzenle","name":"Takma ad","avatar":"avatarı","no_following":"Takip edilen kanal yok. Gitmek için tıklayın","no_recommend":"Önerilen kanal yok. Gitmek için tıklayın","first_recomment_msg":"Uygulama ilk kez başlatılıyorsa biraz zaman alabilir.","invalid_image":"geçersiz resim","image_not_reachable":"Bu resim url\'sine ulaşılamıyor.","channel_not_found":"kanal bulunamadı","cannot_get_channel_info":"Kanal bilgisi alınamıyor. Bu kanal, yaratıcısı tarafından kaldırılabilir ve artık kullanılamayabilir.","validate_error":"Doğrulama hatası","validate_user_name_no_space":"Kullanıcı adı boşluk içermemelidir","validate_url_no_space":"URL boşluk içermemelidir","validate_user_name_length":"Kullanıcı adının uzunluğu {0} ile {1} arasında olmalıdır","validate_user_desc_length":"Kullanıcı açıklaması {0} karakterden fazla olmamalıdır","validate_user_avatar_url":"Kullanıcı avatarı, 2048 karakterden az bir url olmalıdır","validate_channel_title_length":"Kanal başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_channel_desc_length":"Kanal açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_channel_image_url":"Kanal önizlemesi, 2048 karakterden az bir URL olmalıdır","validate_post_title_length":"Gönderi başlığının uzunluğu 1 ile 100 arasında olmalıdır","validate_post_desc_length":"Gönderi açıklamasının uzunluğu 10 ile 300 arasında olmalıdır","validate_post_image_url":"Poster, 2048 karakterden az bir url olmalıdır","validate_post_url":"Geçersiz ${displayName} URL","validate_post_url_length":"${displayName} URL, 2048 karakterden uzun olmamalıdır","film_rate":"film hızı","set_film_rate":"Film hızını ayarla","select_a_rate_before_enter":"Ortam kitaplığına girmeden önce bir film hızı seçmeniz gerekir.","library_available_rate":"Kitaplık kullanılabilir film oranı","rate_g":"G – Genel İzleyiciler","rate_g_desc":"Her yaştan kabul edildi. Çocuklar tarafından görüntülendiği için ebeveynleri rahatsız edecek hiçbir şey yok.","rate_pg":"PG – Ebeveyn Rehberliği Önerilir","rate_pg_desc":"Bazı materyaller çocuklar için uygun olmayabilir. Ebeveynler \\"ebeveyn rehberliği\\" vermeye çağırdı. Ebeveynlerin küçük çocukları için sevmeyebilecekleri bazı materyaller içerebilir.","rate_pg_13":"PG-13 – Ebeveynler Kesinlikle Dikkatli","rate_pg_13_desc":"Bazı materyaller 13 yaşından küçük çocuklar için uygun olmayabilir. Ebeveynlerin dikkatli olmaları önerilir. Bazı materyaller ergenlik öncesi çocuklar için uygun olmayabilir.","rate_r":"R – Kısıtlı","rate_r_desc":"17 yaş altı, eşlik eden ebeveyn veya yetişkin vasi gerektirir. Bazı yetişkin materyalleri içerir. Ebeveynlerin, küçük çocuklarını yanlarına almadan önce film hakkında daha fazla bilgi edinmeleri isteniyor.","rate_nc_17":"NC-17 – Yalnızca Yetişkinler","rate_nc_17_desc":"17 Yaş ve Altı Kimse Kabul Edilmez. Açıkça yetişkin. Çocuklar kabul edilmemektedir.","set_as_private":"Özel olarak ayarla","hide_in_explore":"Keşfet sayfasında bu kanalı gizle","hidden":"Gizlenmiş","select_a_rate":"Lütfen bir film oranı seçin","select_from_tasks":"Görevler arasından seçim yapın","import_from_magnet":"Mıknatıstan içe aktar:?...","input_magnet_url":"Giriş mıknatısı:? url","task_title":"Görev başlığı","set_title":"Başlığı ayarla","add_to_local_favorites":"Yerel favorilere ekle","remove_from_local_favorites":"Yerel favorilerden kaldır","removed_favorite":"favori kaldırıldı","import_or_export_favorites":"Sık Kullanılanları İçe/Dışa Aktar","export_local_favorites":"Yerel sık kullanılanları yedek olarak dışa aktarın","import_favorites_file":"Sık kullanılanlar dosyasını içe aktar","not_a_favorite_file":"Bu dosya favori bir yedekleme dosyası değil","connection_status":"Bağlantı durumu","gun_server_list":"Önbellek Düğümleri","custom_nodes":"Özel önbellek düğümleri","custom_nodes_hint":"Uygulama yeniden başlatıldıktan sonra özel önbellek düğümleri uygulanacak","wait_for_reboot":"Yeniden başlatma bekleniyor...({seconds}s)","reboot_now":"Şimdi yeniden başlat","reboot_later":"Daha sonra yeniden başlat","peer_list":"Doğrudan Düğümler","server":"Düğüm URL\'si","peer":"Akran","peer_id":"düğüm kimliği","connection":"Bağlantı","data_source":"Veri kaynağı","sync":"senkronize et","syncing":"senkronizasyon","sync_completed":"Senkronizasyon tamamlandı","got_all_post":"Zaten tüm gönderilere sahipsin","placeholder_channel_title":"Kanal Adınız","placeholder_channel_desc":"Bu kanal hakkında açıklama","placeholder_post_title":"Film Adı (Yıl)","placeholder_post_desc":"Bu film hakkında açıklama","private_channel":"Özel kanal","creator_blocked":"Oluşturan engellendi","go_to_library":"Kütüphaneye git?","go_to_library_channel_msg":"{0} kütüphane kanalına gitmek ister misiniz?","magnet_does_not_have_name":"Bu mıknatıs:? url\'nin bir adı yok, önce bir gönderi başlığı eklemeniz gerekiyor.","no_available_post":"Yayın yok","following_channel_no_post":"Takip ettiğiniz kanalların hiçbirinde yayın yok. Bu, ağ hatasından kaynaklanabilir. Halihazırda bazı kanalları takip ettiyseniz, gönderiler daha sonra yüklenebilir.","share_to_library":"Kitaplıkta paylaş","quick_start":"Hızlı başlangıç","quick_start_desc":"Bir görev veya dosya ile gönderi oluşturmaya başlayın","select_file":"Dosya Seç...","select_folder":"Dosya Seç...","post_options":"Gönderi seçenekleri","channel_options":"kanal seçenekleri","create_new_channel":"Yeni kanal oluştur","use_existed_channel":"Mevcut kanalı kullan","select_existed_channel":"Mevcut kanalı seçin","uploaded_by":"{title}, {name} tarafından yüklendi","created_by":"{title}, {name} tarafından oluşturuldu","creating_new_channel":"Yeni kanal oluşturuluyor...","created_new_channel":"Yeni kanal oluşturuldu","creating_new_post":"Yeni gönderi oluşturuluyor...","created_new_post":"Yeni gönderi oluşturuldu","create_new_post":"Yeni gönderi oluştur","quick_start_timeout":"{0} zaman aşımı. Bunun nedeni ağ hatası olabilir. Lütfen daha sonra tekrar deneyiniz.","file_too_large":"Dosya çok büyük","file_too_large_msg":"Bu dosya 4GB\'tan ({size}) daha büyük ve hazırlanması uzun zaman alabilir. Devam edeceğinizden emin misiniz?","resolving_folder_files":"Klasör dosyaları çözümleniyor...","folder_too_large":"Klasör çok büyük","folder_too_large_msg":"Bu klasördeki dosyalar 4GB\'tan büyüktür (toplam {size}) ve hazırlanma görevi uzun sürebilir. Yükleyeceğinizden emin misiniz?","creating_new_task":"Yeni görev oluşturuluyor...","cannot_create_task":"Görev oluşturulamıyor","cannot_create_task_msg":"Bu bazı hatalardan kaynaklanabilir. Görev doğru oluşturulduysa görev listesini daha sonra kontrol edebilirsiniz.","cannot_get_task_name":"Görev adı alınamıyor. Önce bir tane girmeniz gerekiyor.","remove_old_task":"Eski görevi kaldır","remove_old_task_desc":"Web modu aynı anda yalnızca bir görev oluşturabilir. Eski görevi kaldırmak istiyor musunuz?","subtitle_list":"Altyazı listesi","optional":"isteğe bağlı","with_subtitle":"{language} altyazılı","maximumSubtitleNum_limit":"Altyazı sayısı maksimuma ulaştı","add_subtitle_url":"Alt yazı indirme linki ekle","cannot_add_subtitle":"Altyazı eklenemedi","cannot_add_subtitle_msg":"Altyazı dili seçilmemiş veya geçersiz indirme bağlantısı.","support_subtitle_type":"Yalnızca srt ve vtt biçimindeki altyazılar desteklenir.","recommend_opensubtitles":"www.opensubtitles.org adresindeki altyazı indirme bağlantısını veya kimliğini kullanmanız önerilir.","take_down":"Devirmek","serious_violation":"Ciddi İhlal","copyright_disputes":"Telif Hakkı Anlaşmazlıkları","adults_only":"Sadece yetişkinler","takedown_reason":"Yayından kaldırma nedeni","takedown_mode":"Yayından kaldırma modu","admins":"Yöneticiler","takedown_user":"Bu yaratıcıyı yayından kaldır","takedown_channel":"Bu kanalı yayından kaldır","takedown_post":"Bu gönderiyi yayından kaldır","select_takedown_reason":"Yayından kaldırma nedenini seçin","takedown_invalid_reason":"Geçersiz yayından kaldırma nedeni","takedown_invalid_user_id":"Geçersiz kullanıcı kimliği. Kimlik 87 karakter içermelidir","takedown_invalid_channel_id":"Geçersiz kanal kimliği. Kimlik 20 karakter içermelidir","takedown_invalid_post_id":"Geçersiz gönderi kimliği. Kimlik 20 karakter içermelidir","takedown_management":"Yönetimi devirmek","users":"Kullanıcılar","channels":"Kanallar","posts":"Gönderiler","you":"Sen","preset":"ön ayar","admin":"yönetici","committee":"Kurul","about_takedown_mode":"Yayından kaldırma modu hakkında:\\nÖn Ayar: Github deposunda yapılandırılmıştır. Hepsi kütüphaneden kaldırılacak.\\nYönetici: Yöneticilerin oy verdiği herhangi biri kaldırılacaktır.\\nKomite: Adminlerin en az yarısının oyları kaldırılacaktır.","cannot_edit_preset":"Önceden ayarlanmış bir satır olduğu için bu satırı düzenleyemezsiniz.","cannot_edit_not_vote":"Oy vermediğiniz için bu satırı düzenleyemezsiniz.","remove_vote":"Oyunuzu kaldırın","post_preload_failed":"Bu gönderi önceden yüklenemedi. İndirme bağlantısı güncel olmayabilir, bu nedenle bu gönderi hemen oynatılamaz.","about_cache_node":"Önbellek düğümü hakkında","edit_cache_node":"Önbellek düğümünü düzenle","create_cache_node":"Önbellek düğümü oluştur","about_cache_node_desc":"${displayName}, silah sunucusunu önbellek düğümü olarak kullanır. Özel düğümleri önceden düzenleyebilirsiniz","learn_how_to_deploy_gun":"Kendi silah sunucunuzu nasıl konuşlandıracağınızı öğrenin","repeat_add":"Görev eklendi, lütfen tekrar eklemeyin.","upload":"Yüklemek","download":"İndirmek","delete":"Silmek","delete_task":"Görevi sil","delete_confirm_message":"Bu görev silinsin mi? bu geri alınamaz","also_delete_files":"Dosyaları da sil","default_delete_files":"Görevi kaldırdıktan sonra indirilen dosyaları varsayılan olarak sil","not_now":"Şimdi değil","delete_autoupload_confirm":"Bu görev, otomatik yükleme dizinine koyduğunuz dosyayı içerir. Bu görevi sil, dosyayı da siler.","delete_anyway":"Yine de sil","upload_too_many_files":"Çok fazla dosya yükle","ask_if_unlimit_upload_amount":"Otomatik yükleme dizini çok fazla dosya içeriyor. Yükleme miktarı sınırlamasını devre dışı bırakmak istiyor musunuz? *Bu, performans sorununa neden olabilir","disable_limitation":"Sınırlamayı devre dışı bırak","not_length":"Çoklu dosya işlemi şu anda desteklenmiyor, lütfen işbirliği yapın","download_torrent":"Dosyayı indir","upload_torrent":"Dosya yükleme","files":"Dosyalar","file":"Dosya","folder":"Dosya","start_all":"Hepsini başlat","pause_all":"Hepsini durdur","remove_all":"Hepsini kaldır","upload_all":"hepsini yükle","clear_history":"Geçmişi temizle","pause_all_finish_payments":"Bu, tüm ödemeleri tamamlayacaktır.","accelerating":"hızlanma","link_task":"Bağlantı görevi","torrent_task":"Dosya görevi","ok":"TAMAM","cancel":"İptal etmek","download_directory_position":"Dizin konumunu indir","torrent_file":"görev dosyası","magnetic_link_incorrect":"Bağlantı formatı yanlış","delete_fail":"Sil başarısız","pause":"Duraklat","paused":"duraklatıldı","stop_torrent":"Durmak","seed":"Tohum","resume":"Sürdürmek","downloading":"indiriliyor","downloaded":"İndirildi","uploading":"yükleniyor","auto_uploading":"otomatik yükleme","uploaded":"yüklendi","pending":"Diğer görevler için bekleniyor","verifying":"Doğrulanıyor","waiting_for_verify":"doğrulama bekleniyor","seeding":"tohumlama","completed":"Tamamlanmış","status":"Durum","task_name":"Görev adı","size":"Boyut","progress":"İlerlemek","sort":"Düzenlemek","ascending":"artan","descending":"Azalan","file_loading":"Dosya yükleniyor...","loading":"Yükleniyor","unknown_status":"Bilinmeyen","play_while_downloading":"Oynamak...","upload_or_play":"Yükle / Oynat","play":"Oynamak","ask_if_upload_file":"Dosya yükleme?","ask_if_upload_or_play":"Dosya yükle veya oynat?","torrent_error":"Görev eklerken hata oluştu:","no_peers":"{0} defadan fazla yeniden deneyin ve uygun eş yok","torrent_exists":"Görev zaten bulunuyor.","show_origin_torrent":"Orijinal görev dosyasını veya url\'yi alın","show_directory":"Bu torrentin açık dizini","task_num":"Görevler","total_upload_speed":"Yükleme hızı","total_download_speed":"İndirme hızı","path_missing":"Hata: torrent yolu bulunamıyor","origin_not_found":"Kaynak görev bilgisi bulunamıyor.","text_copied":"Magnum url panonuza kopyalandı","copy_magnet_uri":"Kopya mıknatıs:? URI","copy_download_uri":"İndirme URI\'sini kopyala","copy_share_uri":"Paylaşım URI\'sini kopyala","uri_copied":"URI başarıyla panonuza kopyalandı","uri_copy_failed":"uri kopyalanamadı","more":"Daha fazla...","toggle_list_mode":"Liste modunu değiştir","comment":"Yorum","operations":"Operasyonlar","open_directory":"Açık sözlük","no_downloading_task":"İndirme görevi yok","remove_all_downloading_tasks":"Tüm indirme görevleri kaldırılsın mı?","remove_all_upload_tasks":"Tüm yükleme görevleri kaldırılsın mı?","remove_autoupload_files":"Otomatik yükleme dosyalarını kaldır","remove_all_history":"Tüm geçmiş kaldırılsın mı?","remaining":"Geriye kalan","created_time":"Oluşturma zamanı","used_time":"Kullanılan zaman","completed_time":"Tamamlanan süre","yesterday":"Dün","before_yesterday":"{empty}","earlier":"Daha erken","miss_file":"Bazı dosyalar eksik","delete_miss_file_task":"{0} içinde eksik fom dosyaları var.","common_peer":"ortak akran","ab_peer":"${displayName} emsal","ab_peer_verified":"Doğrulanmış ${displayName} emsal","ab_peer_available":"${displayName} emsal(ler) mevcut","alphabiz_accelerating":"${displayName} hızlanıyor","income":"Gelir","income_info":"Gelir(bugün/toplam)","total_income_info":"Gelir: {0}(bugün) / {1}(toplam)","login_to_see_income":"Gelir istatistiklerini görmek için giriş yapın","credit_cost":"Kredi maliyetleri","downloaded_by_payment":"Payments tarafından indirildi","file_not_found":"Bu dosya yerelde bulunamıyor","no_task":"Sorma","no_matched_task":"Eşleşen görev yok","space_not_enough":"Disk alanı yeterli değil","need_more_space":"{0} daha fazla alana ihtiyaç var ancak mevcut diskte {1} boş yer var ({2} ayrılmış). Görevler duraklatıldı. Kitaplık önyüklemesi devre dışı bırakıldı. [Ayarlar - Gelişmiş]\'te yeniden etkinleştirebilirsiniz.","seeders":"mibzerler","last_update":"Son Güncelleme","connecting":"Bağlanıyor","connected":"bağlı","request_timed_out":"İstek zaman aşımına uğradı","connection_failed":"Bağlantı başarısız oldu","invalid_download_url":"Geçersiz indirme URL\'si","download_link":"İndirme: {link","empty_files":"Dizinde dosya yok","duplicate_task":"Yinelenen görev","duplicate_tracker":"Yinelenen izleyici","this_task_not_ready":"Bu görev hazır değil. Bu görevi duraklatmak onu doğrudan kaldıracaktır.","some_task_not_ready":"Bazı görevler hazır değil. Bu görevleri duraklatmak onları doğrudan kaldıracaktır.","failed_to_delete_files":"dosyalar silinemedi","failed_to_delete_files_desc":"Görevin bazı dosyaları silinemedi. Bunları manuel olarak silmeniz gerekebilir","unknown_error":"Bilinmeyen hata: {0}","more_files_are_not_shown":"({0} daha fazla dosya performans nedeniyle gösterilmez)","no_available_file":"Kullanılabilir dosya yok. Lütfen görevin hazır olmasını bekleyin.","service_worker_error":"Oynamak için ServiceWorker yüklenemiyor. Tarayıcınız bu özelliği desteklemiyor olabilir veya ServiceWorker etkinleştirilmemiş olabilir. Bu sayfayı yeniden yükleyip tekrar denemeniz gerekebilir.","add_task_first":"Önce görev eklemeniz gerekir.","player_task_time":"Oyuncunun oyuna hazırlanması çok fazla saniye alıyor. Görevle ilgili bir sorun olabilir.","web_mode_hint":"${displayName} web modu yalnızca WebRTC eşlerini destekler. En iyi deneyim için lütfen ${displayName} Masaüstü Uygulamasını indirin.","web_mode_task_hint":"Bir görev eklemek için aşağıdaki düğmeleri tıklayın. Aynı anda yalnızca bir görev ekleyebilirsiniz.","save_to_local":"Yerele kaydet","save_as_zip":"ZIP olarak kaydet","creating_save_file":"Kayıt dosyası oluşturuluyor...","upload_as_one_directory":"Tek bir dizin olarak yükle","upload_as_single_files":"Tek dosya olarak yükle","web_mode_upload_single":"Web modunda yalnızca tek bir dosya yükleyebilirsiniz.","download_success":"Başarıyla indir","download_fail":"Yükleme başarısız","wait_for_downloaded_to_share":"Lütfen paylaşmadan önce görevin indirilmesini bekleyin.","download_with_cellular":"Görevleri hücresel kullanarak indir","download_with_cellular_desc":"Hücresel ağ kullanıyorsunuz. Hücresel olarak indirme görevleri, operatörünüz tarafından ek ücretler alabilir.","download_with_cellular_confirm":"Hâlâ hücresel olarak indiriliyor","language":"Dil","appearance":"Dış görünüş","darkModeSystem":"sistem","darkModeLight":"Işık","darkModeDark":"Karanlık","basic_setting":"Temel","hideMenu":"Uygulama Menüsünü Gizle (Yalnızca Windows ve Linux)","autoHide":"Pencereyi Otomatik Gizle","autoStart":"Girişte aç","restore":"Çıkışta pencerenin boyutunu ve konumunu koruyun","autoStartUnfinished":"Tüm tamamlanmamış görevleri otomatik olarak devam ettir","default_download_path":"Varsayılan yol","download_directory":"Dizini İndir","upload_directory":"Dizini Yükle","enable_auto_upload":"Otomatik yüklemeyi etkinleştir","unlimit_upload_amount":"Sınırsız yükleme miktarı","unlimit_upload_warning":"Büyük miktarda dosya yüklemeye izin ver. Bu performans sorununa neden olabilir","start":"Başlatmak","transport_setting":"Bulaşma","upload_limit":"yükleme sınırı","download_limit":"İndirme sınırı","payed_user_share_rate":"Ücretli kullanıcı paylaşım oranı","unlimited":"Sınırsız","limit_input_error":"Limit numarası pozitif olmalıdır","BT_setting":"Görev Ayarları","saveLinkSeed":"Bağlantıyı görev dosyası olarak kaydet","autoDownload":"Bağlantıyı ve içeriği otomatik olarak indir","continuousSeeding":"Manuel olarak durdurana kadar tohumlamaya devam edin","seedSharingRate":"Tohum Oranı","seedTime":"Tohum Süresi (dakika)","task_manage":"Görev yönetimi","maximumDownloadNum":"Maksimum aktif görevler","maximumConnectionsNum":"Sunucu başına maksimum bağlantı","range_error":"Aralık, {0} ile {1} arasında olmalıdır","random":"rastgele","breakpointContinuation":"Devam etmek","automaticSkip":"Görev ekledikten sonra indirmeyi otomatik olarak göster","afterNotification":"İndirme tamamlandıktan sonra bildirim","deleteConfirm":"Görevi silmeden önce onay gerekmez","submit":"Kaydet ve Uygula","discard":"At","reset":"Sıfırla","reset_all_settings":"Bütün ayarları sıfırla?","preferences_resetted":"Tercihler sıfırlandı","traditional_chinese":"Geleneksel çince","japanese":"Japonca","english":"İngilizce","chinese":"Basitleştirilmiş Çince","advancedSettings":"Gelişmiş","autoUpdate":"Otomatik güncelleme","autoCheckUpdate":"Güncellemeyi otomatik olarak kontrol et","proxy":"vekil","useProxyService":"Proxy\'yi Etkinleştir","trackerService":"Takip Sunucuları","recommendUse":"Tavsiye edilen","autoUpdateTrackerServiceList":"İzleyici listesini her gün otomatik olarak güncelleyin","manualUpdateTracker":"Elle güncelleme","manualUpdateSuccess":"İzleyici sunucularını başarıyla güncelleyin","manualUpdateFail":"Şu kaynaktan güncelleme başarısız oldu:","listenPort":"Bağlantı Noktalarını Dinle","BTlistenPort":"Veri İletim Portu","DHTlistenPort":"Dağıtılmış Karma Bağlantı Noktası","protocols":"Uyumlu Protokoller","setDefaultClientForFollowingProtocols":"Aşağıdaki protokoller için varsayılan istemci olarak ayarla","magnetUrl":"Mıknatıs","video_file":"Video dosyası","audio_file":"Ses dosyası","security":"Güvenlik","impersonateUserAgent":"Sahte Kullanıcı Aracısı","RPCauthorizationkey":"RPC Sırrı","viewDocument":"RPC Gizli Kılavuzunu Görüntüle","developer":"Geliştirici","applicationLogPath":"Uygulama günlüğü yolu","downloadSessionPath":"Oturum yolunu indir","resetDownloadSessionRecord":"İndirme oturumunu sıfırla","restoreInitialSettings":"Fabrika ayarları","preferences_set_successfully":"Tercihleri ​​başarıyla kaydedin!","preferences_set_fail":"Kaydetme tercihleri ​​başarısız!","change_not_save":"Değişiklikler kaydedilmedi","discard_all_changes":"Tüm değişiklikler silinsin ve çıkılsın mı?","stay_in_page":"sayfada kal","disk_usage":"Disk kullanımı","pause_if_less_space":"Alan (MB)\'den azsa duraklatın ve bildirin","default_video_player":"varsayılan video oynatıcı","video_cache_time":"Akış oynatma önbelleği","minutes":"dakika","system_default":"Sistem varsayılanı","media_player":"Medya oynatıcı","library_film_rate":"Kullanılabilir film hızı","library_show_explore":"[Keşfet] sayfasını göster","library_setting":"Kitaplık ayarı","library_sync_setting":"Kitaplık senkronizasyon ayarı","keychain_sync_status":"Anahtarlık senkronizasyon durumu","sync_with_aws":"Anahtar Zincirini Amazon Web Services ile Senkronize Etme","backup_to_local":"Yerel dosyaya yedekle","enable_sync_with_aws":"AWS ile senkronizasyonu etkinleştirin","disable_sync_with_aws":"AWS ile senkronizasyonu devre dışı bırakın","disable_sync_with_aws_desc":"Bu, sunucuda kayıtlı anahtarı kaldıracaktır. Lütfen anahtarınızı zaten dışa aktardığınızdan emin olun.","input_independent_password":"Bağımsız parola girin","change_independent_password":"Bağımsız şifreyi değiştir","password_error":"Şifre hatası","password_invalid":"Şifre geçersiz","key_existed":"Anahtar mevcuttu","key_not_found":"Anahtar bulunamadı","library_recommend":"Kitaplık tavsiyesi","show_all_channels":"Kitaplık tavsiye sayfasındaki tüm kanalları göster","not_logged_in":"Giriş yapmadınız","login_to_continue":"Devam etmek için giriş yapın","mnemonic_code":"Anımsatıcı kod","wordlist":"Kelime listesi","restore_code":"Koddan geri yükle","generate_code":"Kodunu oluşturun","export_mnemonic_code":"Anımsatıcı kodu dışa aktar","import_mnemonic_code":"Anımsatıcı kodu içe aktar","print":"Yazdır","save_as_txt":"txt olarak kaydet","save_as_pdf":"pdf olarak kaydet","from_file":"Dosyadan","not_valid_mnemonic_code":"Bu geçerli bir anımsatıcı kod değil","cannot_parse_code_as_key":"Bu anımsatıcı kod kitaplık anahtarı olarak ayrıştırılamıyor","import_key_hint":"Bu anahtarı alacağınızdan emin misiniz? Bu, kütüphanedeki eski anahtarınızı kurtaracaktır.","import_key_confirm":"Evet, içe aktarın.","library_preload":"Görevleri kitaplıktan önceden yükle","show_preload":"Ön yükleme görevlerini göster","set_download":"İndirme dizinini ayarla","set_download_desc":"macOS App Store sürümü için, varsayılan indirme dizini Uygulamanın korumalı alanındadır ve uygulama kaldırıldıktan sonra silinecektir. İndirme dosyalarınızı saklamak istiyorsanız, manuel olarak farklı bir indirme dizini seçmeniz gerekir.","home":"Ev","home_caption":"İndirme/Yükleme ve Medya Dosyaları","library":"Kütüphane","library_caption":"Medya kaynaklarını keşfedin","player":"oyuncu","player_caption":"Medya oynatıcı","credits":"Kredi","credits_caption":"Hesap Bakiyesini Kontrol Edin","account":"Hesap","account_caption":"Giriş Yap/Kaydol/Yönetim","settings":"Ayarlar","settings_caption":"Uygulama, Oyuncu, Hesap Ayarları","development":"Gelişim","development_caption":"Dahili Kullanım için Geliştirici Modu","basic":"Temel","basic_caption":"Temel Ayarlar","advanced":"Gelişmiş","advanced_caption":"Gelişmiş Ayarlar","blockchain":"Cüzdan","blockchain_caption":"${displayName} Merkezi Olmayan Cüzdan","internal_notice":"Dahili Yayın Bildirimi","release_notes":"Sürüm notları","terms_and_conditions":"Şartlar ve koşullar","license_and_listen_notices":"Açık Kaynak Lisanslama ve Dinleme Bildirimleri","close":"Kapalı","success":"Başarı","fail":"Hata","account_email_invalid_address":"Geçersiz e-posta adresi","account_email_invalid_domain":"Geçersiz e-posta alanı","account_email_unknown_status":"Bilinmeyen e-posta teslim durumu","account_email_unavailable_address":"Kullanılamayan e-posta adresi","account_email_suppressed_address":"Gizli e-posta adresi","account_loading":"Yükleniyor...","account_is_required":"gereklidir","account_sign_in_your_account":"Kayıt olmak","account_username":"Kullanıcı adı","account_username_email_phone":"Telefon numarası veya e-posta","account_password":"Şifre","account_new_password":"Yeni Şifre","account_re_enter_password":"Şifrenizi tekrar girin","account_password_not_equal":"İki şifre eşit değil","account_new_password_same":"Parola, orijinal parola ile aynıdır","account_forgot_your_password":"Parolanızı mı unuttunuz?","account_reset_password":"Şifreyi yenile","account_sign_in":"Kayıt olmak","account_signed_in":"Giriş yapıldı","account_sign_up":"Üye olmak","account_find_your_account":"Hesabını bul","account_enter_your_username":"Telefon numaranızı veya e-postanızı girin","account_search":"Aramak","account_email_sent_tip":"E-postanıza doğrulama kodu içeren bir e-posta gönderildi:","account_phone_sent_tip":"Telefonunuza doğrulama kodu içeren bir SMS gönderildi:","account_email_phone_sent_tip":"Doğrulama kodunu içeren e-posta ve SMS sırasıyla e-postanıza ve telefonunuza gönderildi:","account_software_token_tip":"Hesabınız için MFA etkinleştirildi. Oturum açmayı tamamlamak için lütfen cihazınızı açın veya görüntüleyin ve TOTP\'yi yazın.","account_reset_your_password":"şifrenizi sıfırlayın","account_verification_code":"Doğrulama kodu","account_resend_code":"Yeniden gönderme kodu","account_code_has_been_resent":"Doğrulama kodu yeniden gönderildi","account_password_has_been_reset":"Şifre sıfırlandı","account_submit":"Göndermek","account_sign_up_your_account":"hesabınızı kaydedin","account_fill_required_fields":"Aşağıda gerekli alanları doldurunuz.","account_fill_optional_fields":"Aşağıdaki isteğe bağlı alanları doldurun.","account_email":"E-posta","account_invitation":"Davet","account_invitation_code":"Davet Kodu","account_i_accept":"Kabul ediyorum","account_license_terms":"lisans ve şartlar","account_next":"Sonraki","account_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir.","account_verify_fill_optional_fields":"İsteğe bağlı alanları doğrulayın ve doldurun.","account_nickname":"Takma ad","account_gender":"Cinsiyet","account_male":"Erkek","account_female":"Dişi","account_not_say":"Söylememek","account_birthday":"Doğum günü","account_phone_number":"Telefon numarası","account_locale":"Yerel","account_tip_verified":"Doğrulandı, Oturum açılıyor...","account_verified":"doğrulandı","account_unverified":"doğrulanmamış","account_signed_up":"kayıt oldu","account_verify_your_identity":"Kimliginizi dogrulayin","account_finish":"Sona ermek","account_signed_out":"Oturum kapatıldı","account_change_password":"Şifre değiştir","account_change_email":"Değişim e-posta","account_change_phone_number":"Telefon numarasını değiştir","account_sign_out":"oturumu Kapat","account_current_password":"Mevcut Şifre","account_re_enter_new_password":"yeni şifreyi tekrar giriniz","account_personal_information":"Bilgi","account_edit":"düzenlemek","account_reset":"Sıfırla","account_greeting":"Merhaba,","account_cancel":"İptal etmek","account_change":"değiştirmek","account_not_set":"ayarlanmadı","account_setting":"ayar","account_copy_code":"kodu kopyala","account_account_setting":"Hesap","account_task_page":"Kredi görevi","account_setting_caption":"Şifreyi Değiştir / Bilgileri Düzenle","account_security":"Güvenlik","account_want_to_join":"Katılmak istiyorum?","account_sign_in_now":"Kayıt olmak","account_changed":"değişti","account_clipboard_with_invitation_code":"Davet kodu kopyalandı","account_clipboard_with_code":"Kod kopyalandı","account_invitation_code_dialog_tip":"Arkadaşınıza bir davet kodu içeren bir e-posta veya kısa mesaj göndereceksiniz:","account_available":"mevcut","account_invited":"davet edildi","account_used":"kullanılmış","account_invitation_code_sent":"Davet kodu gönderildi","account_invitation_channel_required":"En az bir davet kanalını doldurun","account_no_verification_code":"Doğrulama kodu alamıyor musunuz?","account_no_phone_number":"Telefon numarası yok mu?","account_sign_up_by_email":"e-posta ile kaydol","account_no_email":"Email yok?","account_sign_up_by_phone_number":"Telefon numarası ile kaydolun","account_no_totp":"TOTP yok mu?","account_tip_no_totp":"TOTP yoksa, lütfen önce TOTP\'yi kurun","account_setup_totp":"TOTP\'yi kur","account_contact_information":"İletişim bilgileri","account_delete_account":"Hesabı sil","account_deleted":"silindi","account_can_not_mfa":"MFA\'nın başı dertte mi?","account_set_mfa_type":"MFA\'yı yapılandır","account_disable_mfa":"MFA\'yı devre dışı bırak","account_disabled_mfa":"Engelli MFA","account_sms_mfa":"SMS MFA\'sı","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"tavsiye edilmez","account_oauth_sign_in_with":"{provider} ile oturum açın","account_sign_in_failed":"oturum açılamadı","account_tip_oath_sign_up":"Geçerli {provider} hesabına karşılık gelen e-posta: {email} henüz bir hesap oluşturmadı","account_tip_confirm_delete_account":"Cari hesabı silmek istediğinizi onaylamak için cari hesap şifresini girin.(Silinen hesaplar geri yüklenemez)","account_tip_config_mfa":"İkincil kimlik doğrulama olarak SMS veya zamana dayalı tek seferlik parola (TOTP) kullanmayı seçebilirsiniz.","account_error_can_not_enable_mfa":"MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir","account_tip_can_not_enable_sms_mfa":"SMS MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_can_not_enable_totp_mfa":"TOTP MFA\'yı etkinleştirmek için e-posta adresinizi ve cep telefonu numaranızı bağlamanız gerekir.","account_tip_setup_totp":"Aşağıdaki QR kodunu taramak için Kimlik Doğrulayıcı gibi uygulamaları kullanın veya bir güvenlik belirteci eklemek için kodu manuel olarak kopyalayın","account_tip_verify_totp":"TOTP\'nizi doğrulayın","account_link_your_social_account":"Sosyal hesabınızı bağlayın","account_unlink_your_social_account":"Sosyal hesabın bağlantısını kaldır","account_tip_confirm_link":"Cari hesabı {provider} hesabınıza bağlamak istediğinizden emin misiniz?","account_tip_confirm_unlink":"Bağlı {provider} hesabınızı iptal etmek istediğinizden emin misiniz?","account_tip_linking":"bağlayıcı...","account_tip_unlinking":"Çözülüyor...","account_linked":"Ciltli","account_unlinked":"bağlanmamış","account_error_can_not_link_to_the_linked_account":"Mevcut sosyal hesap başka bir hesaba bağlı","account_error_can_not_link_to_the_mismatched_email":"Cari hesap ve sosyal hesap e-posta adresi tutarsız","account_error_can_not_link_before_email_verified":"Mevcut hesap doğrulanmış bir e-postaya bağlı olmadığından sosyal hesap bağlanamıyor","account_tip_confirm_verify_email_phone":"Kimliğinizi doğrulamak için cari hesabın e-postasına ve telefon numarasına bir doğrulama kodu göndermek ister misiniz?","account_tip_confirm_verify_phone":"Kimliğinizi doğrulamak için geçerli telefon numarasına bir doğrulama kodu gönderilip gönderilmeyeceği?","account_error_1_message_60_seconds":"Her 60 saniyede yalnızca bir SMS veya e-posta gönderilebilir, bir {delta} saniye daha bekleyin","account_error_10_messages_per_day":"Her cep telefonu veya e-posta 24 saat içinde yalnızca 10 mesaj gönderebilir","account_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","Network Error":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","account_error_user_not_exist":"Kullanıcı yok","account_error_incorrect_username_or_password":"Yanlış kullanıcı adı ya da parola","account_error_incorrect_original_password":"Yanlış orijinal şifre","account_error_incorrect_password":"yanlış parola","account_error_username_not_found":"Kullanıcı adı bulunamadı","account_error_can_not_reset_for_no_verified":"Doğrulanmamış hesabın şifresi sıfırlanamaz","account_error_invalid_verification_code":"Yanlış doğrulama kodu, lütfen tekrar deneyin","account_error_expired_verification_code":"Doğrulama kodunun süresi doldu, lütfen tekrar deneyin","account_error_password_not_long_enough":"Şifre yeterince uzun değil","account_error_attempt_limit_exceeded":"Deneme sınırı aşıldı, lütfen bir süre sonra deneyin.","account_error_password_attempts_exceeded":"Parola girişimleri aşıldı.","account_error_invalid_phone_number_format":"Geçersiz telefon numarası biçimi","account_error_no_cell_phone_prefix":"Lütfen telefon numarası için önek seçin","account_error_username_already_exists":"Bu kullanıcı adı zaten var","account_error_you_need_to_accept_license_terms":"Önce lisansı ve şartları kabul etmeniz gerekir","account_error_inactive_code":"Davet kodu etkinleştirilen bir kod değil","account_error_non_existent_code":"Davet kodu mevcut değil","account_error_unexpected":"Beklenmeyen hata","account_error_can_not_change_email_before_phone_bound":"Telefon numarası bağlanmadan e-posta değiştirilemez","account_error_can_not_change_email_before_unbound_social_account":"Sosyal hesabın bağlayıcılığı kaldırılmadan e-posta değiştirilemez","account_error_can_not_change_phone_before_email_bound":"E-posta bağlanmadan telefon numarası değiştirilemez","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA devre dışı bırakılmadan önce e-posta veya cep telefonu numarası değiştirilemez","account_error_not_supported_yet":"Şu anda desteklenmiyor","account_error_same_email":"Yeni e-posta adresi, orijinal e-posta adresiyle aynı olamaz","account_error_same_phone":"Yeni telefon numarası orijinal telefon numarası ile aynı olamaz","account_error_email_not_exists":"e-posta adresi mevcut değil","account_error_email_already_exists":"Belirtilen e-postaya sahip bir hesap zaten var.","account_error_phone_already_exists":"Belirtilen telefon numarasına sahip bir hesap zaten var.","account_error_mfa_token_mismatch":"Yazılım Token Kodu uyuşmazlığı","account_error_recaptcha_not_loaded":"Ağda bir sorun var. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_recaptcha_validation_failed":"ReCAPTCHA doğrulaması başarısız oldu. Lütfen ağı yeniden bağlayın ve tekrar denemek için uygulamayı yeniden başlatın.","account_error_sign_in_in_progress":"Bekleyen oturum açma girişimi zaten devam ediyor","account_field_range":"{0}-{1} karakter girişini sınırlayın","account_field_only_alphanumeric":"Yalnızca alfanümeriği destekler","account_field_only_alphanumeric_and_symbol":"Yalnızca alfasayısal ve sembolleri destekler","account_field_only_chinese_alphanumeric_space_underline":"Yalnızca alfasayısal, boşluk ve alt çizgiyi destekler","account_field_prefix_without_number_space":"İlk karakter sayı veya boşluk olamaz","account_field_suffix_without_space":"boşlukla bitemez","account_field_without_repeat_space":"Art arda birden çok boşluk kullanılamaz","account_field_can_not_only_alphanumeric":"Sadece harf veya rakam kullanamazsınız","account_field_must_have_number_characters":"Sayı karakterleri olmalıdır","account_field_verification_code":"Doğrulama kodu altı haneli olmalıdır","account_field_invitation_code":"Davet kodu alfasayısal olmalıdır","account_field_phone_number":"Geçersiz telefon numarası biçimi","account_invalid_email_format":"Geçersiz e-posta formatı","account_sign_out_confirm":"Oturumu kapatacağınızdan emin misiniz? Bu, tüm görevleri durduracaktır.","account_sign_out_anyway":"Yine de oturumu kapat","account_signing_out":"Oturum kapatılıyor...","account_request_save_settings":"Ayarlar kaydedilmedi. Oturumu kapatmadan önce değişiklikleri kaydetmeniz gerekir.","pay":"Ödemek","pay_with_credit":"Hızlanan indirme için ödeme yapın. Yaklaşık {0} krediye ihtiyacı var","pay_with_credit_payed":"hızlanıyor. Hala yaklaşık {0} krediye ihtiyacı var","create_payment":"Ödeme Oluştur","pay_target":"Hedef","pay_for_torrent":"{0} için ödeme yapın","your_subid":"alt kimliğiniz","your_credits":"Kredileriniz","pay_point_for_data":"{1} verileri için {0} puan ödeyin","auto_renew":"Otomatik yenilemeyi etkinleştir","transaction_details":"ödeme detayları","transaction_id":"İD","transaction_payer":"ödeyen","transaction_payee":"Alacaklı","transaction_category":"Kategori","transaction_changed_amount":"Değiştirilen Tutar","transaction_meta":"Meta","transaction_status":"Durum","transaction_creation_time":"Oluşturma Zamanı","receipt_code":"Fiş Kodu","transfer_amount":"Transfer miktarı","code_the_receipt_code":"Aşağıdaki makbuz kodunu ödeyene kopyalayın","fill_the_receipt_code":"Alacaklı tarafından sağlanan ödeme kodunu doldurarak transfer edin","expense":"gider","copied":"kopyalandı","transfer":"Aktar","receive":"Almak","copy":"Kopyala","withdraw_fund":"Para Çekme","category_paydata_payer":"veri maliyeti","category_paydata_payee":"veri geliri","category_transfer":"Aktar","category_bonus":"Bonus","category_recharge":"şarj et","status_pending":"askıda olması","status_completed":"tamamlanmış","status_finish":"sona ermek","status_failed":"arızalı","tip_invalid_receiver":"Geçersiz alıcı kodu","tip_invalid_amount":"Kredi tutarı 0-1000 aralığında değişken olmalıdır (Minimum kesinlik 0,001\'dir)","credit_get_more":"Daha fazla kredi alın","credit_no_data":"Veri yok","credit_loading":"Yükleniyor...","credit_not_enough_amount":"Yeterli kredi yok","credit_amount_not_enough":"Yeterli kredi yok","credit_payee_not_exist":"Alacaklı mevcut değil","credit_invalid_amount":"Geçersiz kredi tutarı","credit_can_not_transfer_to_yourself":"Kendinize aktaramazsınız","credit_latest":"En sonuncu","credit_error_network":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","add_subtitles":"Altyazı Ekle","open_file":"Açık dosya...","advanced_options":"Gelişmiş seçenekler","title":"Başlık","location":"konum","subtitle_file":"altyazı dosyası","unsupported_subtitle_type":"{0} dosya türü desteklenen bir altyazı türü değil","not_default_player":"Varsayılan video oynatıcı ayarlanmamış","this_is_an_audio_file":"Bu bir ses dosyasıdır","the_added_subtitle_already_exists":"Eklenen altyazı zaten var","stop_stream_player":"Akış ortamı, görev duraklatıldığı veya silindiği için sonlandırıldı","stop_player":"Dosya silindiği için oynatıcı sonlandırıldı","playing_timeout_hint":"Bekle zaman aşımına uğradı. Lütfen görevi kontrol edin","autoplay_hint":"Otomatik oynatma, tarayıcınız tarafından engellenebilir. Oyuncu oynamıyorsa devam etmek için ekrana tıklamayı deneyin","remove_playing_confirm":"{0} hala oynuyor, onu kaldırırsanız oyuncu durur. Kaldıracağınızdan emin misiniz?","unsupported_in_browser":"Tarayıcı modunda henüz desteklenmiyor","client":"Müşteri","warning":"Uyarı","enable":"Olanak vermek","disable":"Devre dışı bırakmak","auto":"Oto","encrypt_connection":"Bağlantıyı şifrele","encrypted_connection":"Şifreli bağlantı","non_encrypted_connection":"Şifrelenmemiş bağlantı","connected_wires_not_disconnect":"Bağlı kabloların bağlantısı kesilmeyecek","audio":"ses","video":"video","image":"resim","subtitle":"alt yazı","zip":"zip","text":"metin","unknown":"Bilinmeyen","add":"Eklemek","undo":"Geri alma","backup":"Destek olmak","not_default_app":"${displayName}, torrent ve medya için varsayılan uygulamanız değil, varsayılan olarak ayarlamak istiyor musunuz?","dont_show_again":"tekrar gösterme","go_to_settings":"Ayarlara git","about_alphabiz":"Yaklaşık ${displayName}","last_check_at":"son kontrol","update_channel":"Kanalı güncelle","check_for_update":"Güncellemeleri kontrol ediniz","checking_for_update":"Güncellemeler kontrol ediliyor...","no_update_available":"Güncelleme mevcut değil","update_available":"Güncelleme uygun","update_now":"Şimdi güncelle","update_later":"Sonra güncelle","click_to_update":"İndirmek ve güncellemek için ŞİMDİ GÜNCELLE düğmesine tıklayın","update_failed":"Güncelleme başarısız oldu","update_failed_message":"Güncelleme sırasında bir hata oluştu:","check_shasum_failed":"Yükleyici için bütünlük kontrol edilemedi","downloading_update":"Güncelleme indiriliyor...","ready_to_update":"Güncellemeye hazır","restart_to_update":"Güncelleme indirildi. ${displayName}, birkaç dakikalığına güncelleme için çıkış yapacak.","already_latest":"Geçerli sürüm({0}) zaten en son sürüm","update_timeout":"Güncelleme zaman aşımı","no_available_release":"Kullanılabilir yayın yok","no_available_installer":"Kullanılabilir yükleyici yok","feedback":"Geri bildirim","select_a_type":"bir tür seçin","category":"Kategori","select_a_category":"bir kategori seç","require_title":"Başlık gerekli","describe_your_problem":"problemini açıkla","report_a_bug":"Hata bildir","request_a_new_feature":"Yeni bir özellik talep edin","download_or_upload":"İndirme yükleme","others":"Diğerleri","submit_with_system_info":"Sistem bilgisi ile gönder","submit_feedback":"Geri bildirim gönder","tweet_us":"bize tweet at","tweet_too_long":"Tweet çok uzun","delete_characters":"Lütfen en az {0} karakter(ler)i silin","rest_characters":"{0} daha fazla karakter girebilirsiniz","update_alphabiz":"${displayName} güncelle","current_version":"Şimdiki versiyonu","cancel_update":"Güncellemeyi iptal et","slow_download_speed":"Çok yavaş indir","slow_download_speed_caption":"Yükleyici indirme işlemi artık çok yavaş. Lütfen ağ durumunu kontrol edin","update_canceled":"Güncelleme iptal edildi","current_version_release_time":"Mevcut sürümün çıkış zamanı","expired_app":"${displayName} Süresi Doldu","version_out_of_date":"Versiyon güncel değil","have_to_update":"${displayName} sürümü güncel değil. Bazı protokoller veya API\'ler kullanımdan kaldırılmıştır. Devam etmeden önce ${displayName} güncellemeniz gerekiyor.","exit_alphabiz":"Çıkış ${displayName}","exit_and_update":"Çık ve güncellemeyi uygula","new_version_hint":"Yeni sürüm mevcut","no_new_version":"Yeni sürüm mevcut değil","current_is_latest":"Geçerli sürüm zaten en son sürüm","click_to_check_update":"Güncellemeyi kontrol etmek için [GÜNCELLEMEYİ KONTROL ET] düğmesine tıklayın","download_latest_version_from_website":"En son sürümü indirmek için lütfen resmi web sitesini ziyaret edin","to_the_website":"Web sitesine","network_diagnotic":"Ağ Teşhisi","diagnotic":"Tanı","click_to_check":"Kontrol etmek için tıklayın","click_to_check_again":"Tekrar kontrol etmek için tıklayın","checking":"Kontrol etme","online":"Çevrimiçi","offline":"çevrimdışı","dns_look_up":"DNS araması","error":"Hata","aws_service":"AWS Hizmeti","network_pings":"Ağ Pingi","not_found":"Bulunamadı","packet_loss":"Paket(ler) kaybı","official_site":"Resmi site","download_test":"Testi İndir","test_task":"Test Görevi {0}","download_failed":"Yükleme başarısız","second_spend":"{0} sn harcama","open_default_player_failed":"Varsayılan oynatıcı açılamadı","copied_to_clipboard":"Panoya kopyalandı","go_to":"git","region_not_available":"Bölge mevcut değil","region_not_available_message":"Üzgünüm! Bölgeniz bu uygulamayı kullanmak için uygun değil. Bu uygulama {0} saniye sonra kapanacak","confirm":"Onaylamak","no_available_result":"Kullanılabilir sonuç yok","invalid_password_format":"Geçersiz şifre biçimi","invalid_password_format_same":"Parola, orijinal parola ile aynıdır","error_password":"Şifre hatası","keychain_setting":"anahtarlık","setting_description":"Bulut depolama: Önemli verileri buluta kaydedin.\\nParolayı değiştir: Ortam kitaplığı anahtarının parolasını değiştirin.\\nAnımsatıcı: anahtarları oluşturmak ve geri yüklemek için alternatif bir yöntem.\\nYerel Anahtarı İçe Aktar: Yerel olarak kaydedilen anahtarı medya kitaplığına aktarın.\\nDışa Aktarma Anahtarı: Geçerli ortam kitaplığı verilerini yerele veya buluta kaydeder.\\nAnahtarı buluta yedekle: Mevcut medya kitaplığı verilerini yedekleme için buluta güncelleyin.","refresh_status":"Güncelleme durumu","confirm_import_key":"İçe aktarma anahtarını onaylayın","confirm_update_cloud_key":"Bulutta zaten bir anahtarınız var. Anahtarın güncellenmesi orijinal anahtarın üzerine yazacaktır. Bulutta saklanan anahtarı güncellemek istediğinizden emin misiniz?","export_key_with_cloud":"Bulutta depolanan kitaplık anahtarını dışa aktarmak için belirlediğiniz bağımsız parolayı girin ve kilit açma parolasıyla anahtar dosyasını kilitleyin","store_cloud_key_prompt_password":"Kitaplık anahtarını bulutta depolamak için bağımsız bir parola girin","update_cloud_key_prompt_password":"Kitaplık anahtarını şifrelemek için bağımsız bir parola ayarlayın ve ardından bunu buluta güncelleyin","enable_cloud_storage_prompt_password":"Bulutta depolanan anahtar için, anahtarı buluttan alabileceğiniz bir parola belirleyin","input_unlock_password":"Kilit açma şifresini ayarla","export_local_prompt_password":"Lütfen anahtar dosyanızı şifrelemek için bir kilit açma şifresi ayarlayın. Bu şifreyi sizin için kaydetmeyeceğiz, dolayısıyla şifrenizi kaybederseniz kütüphane anahtarınızın kilidini açamayacaksınız.","require_unlock_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","require_independent_password":"Bulutta depolanan anahtarı almak için bağımsız parolayı girin","import_local_prompt_password":"Anahtar dosyası kilitli, lütfen kilit açma şifresini girin","select_encrypt_mode":"Şifreleme modunu seçin","update_cloud_key":"Bulutta depolanan anahtarı güncelleyin","backup_to_cloud":"Kitaplık anahtarını buluta yedekleyin","save_local":"Kitaplık anahtarını yerel şifreli dosya olarak kaydedin","create_new_key":"Yeni bir kitaplık anahtarı oluştur","creating_lib_key":"Kitaplık anahtarı oluşturuluyor...","loading_lib_key":"Kitaplık anahtarı yükleniyor...","failed_to_create_lib_key":"Kitaplık anahtarı oluşturulamadı","failed_to_load_lib_key":"Kitaplık anahtarı yüklenemedi","import_local_key":"Anahtarı yerel olarak içe aktar","import_lib_key_from_local":"Bir kitaplık anahtarını Yerel Olarak İçe Aktar","import_from_cloud":"Kitaplık anahtarını buluttan içe aktarın","create_or_import_key":"Kitaplık anahtarı oluştur veya içe aktar","create_or_import_key_desc":"Kitaplık anahtarı, merkezi olmayan veritabanıyla içerikleri getirmek ve yayınlamak için kullanılan bağımsız bir anahtardır.","store_your_lib_key":"Kitaplık anahtarınızı saklayın","export_cloud_key":"Anahtarı Buluttan Dışa Aktar","export_current_key":"Geçerli Anahtarı Dışa Aktar","change_password":"Şifre değiştir","enable_cloud_storage":"Bulut depolamayı etkinleştir","disable_cloud_storage":"Bulut depolamayı devre dışı bırak","disable_cloud_storage_desc":"Bulut depolamayı devre dışı bırakmak, bulutta kayıtlı anahtarı kaldırır, lütfen anahtarın yerel olarak kaydedildiğinden emin olun","sync_at":"Senkronizasyon: {time}","cloud_storage_enabled":"Anahtar Zincirini {storage} ile senkronize edin","cloud_storage_disabled":"Bulut depolama devre dışı","saved_locally":"Yerel olarak kaydedildi","export_key":"Anahtar dosyasını dışa aktar","cloud_independent_password":"Buluttan bağımsız parola","key_file_unlock_password":"Anahtar dosya kilidini açma şifresi","re_enter_unlock_password":"Kilit açma şifresini tekrar girin","independent_password_not_enabled":"Mevcut şifre Alphabiz hesap şifresidir (bağımsız bir şifre belirlenmemiştir)","use_cognito_hash":"Alphabiz hesabı şifresini kullan","use_independent_password":"Bağımsız şifre kullan","keychain_lib":"kütüphane anahtarı","loading_keychain_state":"Anahtarlık yükleniyor...","backing_up":"Yedekleme...","backup_current_key":"Geçerli anahtarı Bulut\'a yedekle","cloud_lib_key_not_existed":"kitaplık anahtarı Bulut\'ta mevcut değil","open_keychain_file":"Anahtarlık Dosyasını Aç","confirm_open_abk":"ABK dosyasını açmak istiyor musunuz?","use_the_key":"anahtarı kullan","backup_the_key":"Anahtarı buluta yedekleyin","keychain_data_does_not_exist":"Anahtar zinciri verileri mevcut değil","timeout of 0ms exceeded":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","XhrError":"Ağla ilgili bir sorun var, lütfen daha sonra tekrar deneyin.","payer credit amount is not enough":"Yeterli kredi yok","payee does not exist":"Alacaklı mevcut değil","block_list_manage":"Blok listesi yönetimi","blocked_users":"Engellenmiş kullanıcılar","blocked_channels":"Engellenen kanallar","unblock_user":"Kullanıcının engelini kaldır","unblock_channel":"Kanalın engellemesini kaldır","no_blocked_user":"Engellenen kullanıcı yok","no_blocked_channel":"Engellenen kanal yok","field_required":"{0} gereklidir","setting":"Ayar","unknown_media":"Bilinmeyen Medya","settings_button_visible":"Düğme Görünür","settings_setting":"Ayar","settings_playback_rate":"Çalma oranı","settings_subtitle":"Alt yazı","settings_pip":"PiP","settings_fullscreen":"Tam ekran","settings_subtitle_options":"Altyazı Seçenekleri","settings_normal":"Normal","settings_italic":"İtalik","settings_lighter":"Çakmak","settings_bolder":"Daha cesur","settings_small":"Küçük","settings_large":"Büyük","about":"Hakkında","services":"Hizmetler","hide":"Saklamak","hide_others":"Diğerlerini sakla","show_all":"Hepsini Göster ↓","quit":"Çıkış yapmak","edit":"Düzenlemek","redo":"Yeniden yap","cut":"Kesmek","paste":"Yapıştırmak","select_all":"Hepsini seç","view":"Görüş","reload":"Tekrar yükle","toggle_full_screen":"Tam ekrana geç","toggle_developer_tools":"Geliştirici Araçlarını Değiştir","window":"pencere","minimize":"küçültmek","bring_all_to_front":"Hepsini Öne Getir","help":"Yardım","github_repo":"Github Deposu","issues":"Sorunlar","learn_more":"Daha fazla bilgi edin","learn_spelling":"Yazımı Öğrenin","lookup_selection":"Ara \\"{selection}\\"","search_with_google":"Google ile ara","save_as":"Farklı kaydet","save_image":"Resmi Kaydet","save_image_as":"Resmi Farklı Kaydet...","copy_link":"Bağlantıyı kopyala","save_link_as":"Linki farklı kaydet ...","copy_image":"Resmi kopyala","copy_image_as":"Resmi Farklı Kopyala...","copy_image_address":"Resim Adresini Kopyala","download_complete":"İndirme tamamlandı","download_complete_message":"{0} indirildi","is_running":"{0} çalışıyor","open":"{0} aç","launch_problem":"Başlatma sorunu","ask_clear_data":"Görünüşe göre {0} başlatmaya çalışıyorsunuz, ancak birkaç kez başarısız oldunuz.\\nTüm uygulama verilerini temizleyip daha sonra başlatmayı denemek istiyor musunuz?","launch_directly":"Doğrudan başlat","clear_all_data":"Tüm verileri temizle","ask_clear_confirm":"Bu, tüm yapılandırmaları, günlükleri ve kullanıcı verilerini kaldıracaktır!\\nBundan sonra {0}\'ı yeniden başlatmanız gerekebilir.\\nVerileri temizleyeceğinizden emin misiniz?","confirm_launch":"Hayır, doğrudan başlat","confirm_clear":"Evet, tüm verileri temizle"}')},12:function(e,t){},1254:function(e){e.exports=JSON.parse('{"lib_index":"Maison","lib_edit":"Publier","lib_publish":"Publier","lib_explore":"Explorer","lib_following":"Suivant","lib_favorite":"Favoris locaux","lib_local_favorites":"Favoris locaux","lib_channel":"Canaliser","lib_submit":"Soumettre","lib_from_network":"Utilisation d\'une base de données décentralisée à partir du réseau","welcome_to_lib":"Bienvenue à ${displayName} Médiathèque","register_or_login":"Inscription/Connexion","lib_recommend":"Recommander","lib_recommend_desc":"Bienvenue à la bibliothèque ${displayName} ! Cette bibliothèque utilise une base de données décentralisée du réseau. Pour commencer à l\'utiliser, vous devez suivre certains canaux.","follow_any_channel_to_continue":"Suivez n\'importe quelle chaîne pour continuer","follow_channels_and_continue":"Suivez les chaînes {0} et continuez","show_more_for_me":"Afficher plus pour moi","no_more_recommend":"Ne plus recommander","key":"Clé","create_key":"Créer une clé","save_key":"Enregistrer la clé","save_key_file":"Voulez-vous enregistrer votre clé en tant que fichier ?","import_key":"Clé d\'importation","import":"Importer","invalid_key":"Clé non valide","back_to_top":"Retour au sommet","search_for_channel":"Rechercher l\'ID de la chaîne","search_channel_no_result":"Impossible de trouver la chaîne avec l\'identifiant {0}","please_input_channel_id":"Veuillez saisir l\'ID de la chaîne","welcome_help_text":"Il s\'agit d\'une médiathèque décentralisée. Vous avez besoin\\n pour créer un compte pour cette base de données. Nous allons\\n générer automatiquement une clé personnelle pour vous.\\n Si vous avez déjà eu une clé, vous pouvez également importer\\n c\'est ici.","welcome_key_text":"Une fois connecté, veuillez cliquer sur le bouton [ENREGISTRER LA CLÉ]\\n dans le coin inférieur droit pour enregistrer votre clé privée.\\n Si vous perdez votre clé, vous ne pourrez peut-être pas vous reconnecter.","redirect_to_recommend":"Il semble que vous n\'ayez suivi aucune chaîne. Redirection vers la page [Explorer].","channel":"Canaliser","follow":"Suivre","unfollow":"Ne plus suivre","following":"Suivant","share":"Partager","unfollow_confirm":"Êtes-vous sûr de ne plus suivre cette chaîne ? Tous les messages de cette chaîne dans votre journal seront supprimés.","follow_failed_hint":"L\'opération est toujours en attente en arrière-plan. Si l\'opération n\'est pas appliquée pendant une longue période, veuillez redémarrer l\'application et réessayer.","block":"Bloc","unblock":"Débloquer","blocked":"Bloqué","block_channel":"Bloquer cette chaîne","block_channel_confirm":"Bloquer la chaîne la supprimera de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","block_creator":"Bloquer le créateur de cette chaîne","unblock_creator":"Débloquer le créateur de cette chaîne","block_creator_confirm":"Bloquer le créateur supprimera toutes les chaînes créées par ce créateur de votre chronologie. Vous pouvez gérer votre liste de blocage dans les paramètres du compte.","share_url_copied":"L\'URL de partage est copiée dans votre presse-papiers","follow_time":"Suivre le temps","update_time":"Temps de mise à jour","search":"Recherche","type":"Taper","added":"Ajoutée","click_to_task":"Cliquez pour accéder à la tâche","lib_already_added":"Vous avez déjà ajouté cette vidéo","description":"Description","poster":"Affiche","channel_poster":"Affiche de la chaîne","preview":"Aperçu","creator":"Créateur","creator_detail":"Détail du créateur","loading_creator":"Chargement des informations sur le créateur","wait_for_creator_loaded":"Veuillez attendre que les informations sur le créateur soient chargées.","follower":"Disciple","followers":"Suiveurs","follower_list":"Liste d\'abonnés","user":"Utilisateur","channel_title":"Titre de la chaîne","channel_id":"Identifiant de la chaine","post_title":"Titre de l\'article","post_id":"ID de publication","import_data_from_excel":"Importer des données depuis Excel","set_excel_keys":"Définir les clés Excel","excel_import_succeded":"L\'importation Excel a réussi","excel_import_success_msg":"{0} les lignes sont prêtes à être ajoutées, {1} les éléments invalides et {2} les éléments en double sont ignorés","cannot_find_channel":"Impossible de trouver la chaîne","cannot_find_posts":"Impossible de trouver des messages","add_channel":"Ajouter une chaîne","add_post":"Ajouter un message","edit_channel":"Modifier la chaîne","channel_setting":"Réglage du canal","edit_post":"Modifier le message","edit_posts":"Modifier les messages","channel_detail":"Détail de la chaîne","remove":"Retirer","remove_channel":"Supprimer la chaîne","remove_channel_confirm":"Êtes-vous sûr de supprimer ce message ? Cela ne peut pas être récupéré.","remove_post":"Supprimer le message","remove_post_confirm":"Voulez-vous vraiment supprimer cette chaîne ? Cela ne peut pas être récupéré.","preview_mode":"Mode Aperçu","preview_mode_desc":"Il s\'agit d\'un aperçu de votre chaîne. Tous les tarifs des films sont affichés ici.","edit_user_profile":"Modifier le profil utilisateur","name":"Surnom","avatar":"Avatar","no_following":"Aucune chaîne suivante. Cliquez pour aller","no_recommend":"Aucune chaîne recommandée. Cliquez pour aller","first_recomment_msg":"Cela peut prendre un certain temps si c\'est la première fois que l\'application est lancée.","invalid_image":"Image invalide","image_not_reachable":"Cette URL d\'image n\'est pas accessible.","channel_not_found":"Chaîne introuvable","cannot_get_channel_info":"Impossible d\'obtenir les informations sur la chaîne. Cette chaîne peut être supprimée par son créateur et ne plus être disponible.","validate_error":"Valider l\'erreur","validate_user_name_no_space":"Le nom d\'utilisateur ne doit pas contenir d\'espaces","validate_url_no_space":"L\'URL ne doit pas contenir d\'espaces","validate_user_name_length":"Le nom d\'utilisateur doit avoir une longueur comprise entre {0} et {1}","validate_user_desc_length":"La description de l\'utilisateur ne doit pas dépasser {0} caractères","validate_user_avatar_url":"L\'avatar de l\'utilisateur doit être une URL contenant moins de 2 048 caractères","validate_channel_title_length":"Le titre de la chaîne doit avoir une longueur comprise entre 1 et 100","validate_channel_desc_length":"La description de la chaîne doit avoir une longueur comprise entre 10 et 300","validate_channel_image_url":"L\'aperçu de la chaîne doit être une URL comportant moins de 2 048 caractères","validate_post_title_length":"Le titre du message doit avoir une longueur comprise entre 1 et 100","validate_post_desc_length":"La description du message doit avoir une longueur comprise entre 10 et 300","validate_post_image_url":"L\'affiche doit être une URL contenant moins de 2 048 caractères","validate_post_url":"URL ${displayName} invalide","validate_post_url_length":"${displayName} L\'URL ne doit pas dépasser 2 048 caractères","film_rate":"Tarif des films","set_film_rate":"Définir le taux de film","select_a_rate_before_enter":"Vous devez sélectionner un tarif de film avant d\'entrer dans la médiathèque.","library_available_rate":"Tarif des films disponibles à la bibliothèque","rate_g":"G – Audiences Générales","rate_g_desc":"Tous âges admis. Rien qui offenserait les parents pour le visionnement par les enfants.","rate_pg":"PG - Surveillance parentale suggérée","rate_pg_desc":"Certains matériaux peuvent ne pas convenir aux enfants. Les parents sont invités à donner une \\"orientation parentale\\". Peut contenir du matériel que les parents pourraient ne pas aimer pour leurs jeunes enfants.","rate_pg_13":"PG-13 – Parents fortement mis en garde","rate_pg_13_desc":"Certains contenus peuvent être inappropriés pour les enfants de moins de 13 ans. Les parents sont priés d\'être prudents. Certains contenus peuvent être inappropriés pour les pré-adolescents.","rate_r":"R – Restreint","rate_r_desc":"Les moins de 17 ans doivent être accompagnés d\'un parent ou d\'un tuteur adulte. Contient du matériel pour adultes. Les parents sont invités à en savoir plus sur le film avant d\'emmener leurs jeunes enfants avec eux.","rate_nc_17":"NC-17 – Adultes seulement","rate_nc_17_desc":"Interdit aux 17 ans et moins. Clairement adulte. Les enfants ne sont pas admis.","set_as_private":"Définir comme privé","hide_in_explore":"Masquer cette chaîne dans la page d\'exploration","hidden":"Caché","select_a_rate":"Veuillez sélectionner un tarif de film","select_from_tasks":"Sélectionnez parmi les tâches","import_from_magnet":"Importer depuis l\'aimant : ?...","input_magnet_url":"Aimant d\'entrée : ? URL","task_title":"Titre de la tâche","set_title":"Définir le titre","add_to_local_favorites":"Ajouter aux favoris locaux","remove_from_local_favorites":"Supprimer des favoris locaux","removed_favorite":"Favori supprimé","import_or_export_favorites":"Importer/exporter des favoris","export_local_favorites":"Exporter les favoris locaux en tant que sauvegarde","import_favorites_file":"Importer le fichier de favoris","not_a_favorite_file":"Ce fichier n\'est pas un fichier de sauvegarde favori","connection_status":"Statut de connexion","gun_server_list":"Cache Nodes","custom_nodes":"Nœuds de cache personnalisés","custom_nodes_hint":"Les nœuds de cache personnalisés seront appliqués après le redémarrage de l\'application","wait_for_reboot":"En attente de redémarrage...({seconds}s)","reboot_now":"Redémarrer maintenant","reboot_later":"Redémarrer plus tard","peer_list":"Nœuds directs","server":"URL du nœud","peer":"Pair","peer_id":"ID de nœud","connection":"Connexion","data_source":"La source de données","sync":"Synchroniser","syncing":"Synchronisation","sync_completed":"Synchronisation terminée","got_all_post":"Vous avez déjà tous les messages","placeholder_channel_title":"Nom de votre chaîne","placeholder_channel_desc":"Description de cette chaîne","placeholder_post_title":"Nom du film (année)","placeholder_post_desc":"Description de ce film","private_channel":"Chaîne privée","creator_blocked":"Créateur bloqué","go_to_library":"Aller à la librairie?","go_to_library_channel_msg":"Voulez-vous accéder au canal de la bibliothèque {0} ?","magnet_does_not_have_name":"Cet aimant : ? URL n\'a pas de nom, vous devez d\'abord ajouter un titre de message.","no_available_post":"Aucun poste disponible","following_channel_no_post":"Toutes vos chaînes suivantes n\'ont pas de publication disponible. Cela peut être dû à une erreur de réseau. Si vous avez déjà suivi certaines chaînes, les messages peuvent être chargés plus tard.","share_to_library":"Partager dans la bibliothèque","quick_start":"Démarrage rapide","quick_start_desc":"Commencer à créer une publication avec une tâche ou un fichier","select_file":"Choisir le dossier...","select_folder":"Sélectionner le dossier...","post_options":"Options de publication","channel_options":"Options de chaîne","create_new_channel":"Créer une nouvelle chaîne","use_existed_channel":"Utiliser le canal existant","select_existed_channel":"Sélectionnez une chaîne existante","uploaded_by":"{title} mis en ligne par {name}","created_by":"{title} créé par {name}","creating_new_channel":"Création d\'une nouvelle chaîne...","created_new_channel":"Nouvelle chaîne créée","creating_new_post":"Création d\'un nouveau message...","created_new_post":"Nouveau message créé","create_new_post":"Créer un nouveau message","quick_start_timeout":"{0} délai d\'attente. Cela peut être dû à une erreur de réseau. Veuillez réessayer plus tard.","file_too_large":"Fichier trop large","file_too_large_msg":"Ce fichier fait plus de 4 Go ({size}) et peut prendre beaucoup de temps à préparer. Êtes-vous sûr de continuer ?","resolving_folder_files":"Résolution des fichiers de dossier...","folder_too_large":"Dossier trop volumineux","folder_too_large_msg":"Les fichiers de ce dossier font plus de 4 Go (total {size}) et peuvent prendre beaucoup de temps pour préparer la tâche. Êtes-vous sûr de télécharger ?","creating_new_task":"Création d\'une nouvelle tâche...","cannot_create_task":"Impossible de créer la tâche","cannot_create_task_msg":"Cela peut être dû à une erreur. Si la tâche est créée correctement, vous pouvez vérifier la liste des tâches ultérieurement.","cannot_get_task_name":"Impossible d\'obtenir le nom de la tâche. Vous devez d\'abord en saisir un.","remove_old_task":"Supprimer l\'ancienne tâche","remove_old_task_desc":"Le mode Web ne peut créer qu\'une seule tâche à la fois. Voulez-vous supprimer l\'ancienne tâche ?","subtitle_list":"Liste des sous-titres","optional":"facultatif","with_subtitle":"Avec {language} sous-titres","maximumSubtitleNum_limit":"Le nombre de sous-titres a atteint son maximum","add_subtitle_url":"Ajouter le lien de téléchargement des sous-titres","cannot_add_subtitle":"Impossible d\'ajouter des sous-titres","cannot_add_subtitle_msg":"Langue des sous-titres non sélectionnée ou lien de téléchargement invalide.","support_subtitle_type":"Seuls les sous-titres au format srt et vtt sont pris en charge.","recommend_opensubtitles":"Il est recommandé d\'utiliser le lien ou l\'identifiant de téléchargement des sous-titres sur www.opensubtitles.org.","take_down":"Descendre","serious_violation":"Infraction grave","copyright_disputes":"Litiges de droit d\'auteur","adults_only":"Seulment les adultes","takedown_reason":"Raison du retrait","takedown_mode":"Mode retrait","admins":"Administrateurs","takedown_user":"Retirer ce créateur","takedown_channel":"Retirer cette chaîne","takedown_post":"Retirer ce message","select_takedown_reason":"Sélectionnez la raison du retrait","takedown_invalid_reason":"Motif de retrait non valide","takedown_invalid_user_id":"Identifiant invalide. L\'identifiant doit comprendre 87 caractères","takedown_invalid_channel_id":"ID de chaîne non valide. L\'ID doit inclure 20 caractères","takedown_invalid_post_id":"Identifiant de publication non valide. L\'ID doit inclure 20 caractères","takedown_management":"Gestion des démontages","users":"Utilisateurs","channels":"Chaînes","posts":"Des postes","you":"Toi","preset":"Préréglé","admin":"Administrateur","committee":"Comité","about_takedown_mode":"À propos du mode de retrait :\\nPréréglage : configuré dans le référentiel github. Tous seront supprimés de la bibliothèque.\\nAdmin : tout administrateur qui vote pour sera supprimé.\\nComité : au moins la moitié des administrateurs qui votent pour seront supprimés.","cannot_edit_preset":"Vous ne pouvez pas modifier cette ligne car il s\'agit d\'une ligne prédéfinie","cannot_edit_not_vote":"Vous ne pouvez pas modifier cette ligne puisque vous n\'avez pas voté pour elle","remove_vote":"Supprimer votre vote","post_preload_failed":"Échec du préchargement de ce message. Le lien de téléchargement peut être obsolète, ce message ne peut donc pas être lu immédiatement.","about_cache_node":"À propos du nœud de cache","edit_cache_node":"Edit cache node","create_cache_node":"Créer un nœud de cache","about_cache_node_desc":"${displayName} utilise le serveur gun comme nœud de cache. Vous pouvez modifier les nœuds personnalisés à l\'avance","learn_how_to_deploy_gun":"Apprenez à déployer votre propre serveur d\'armes","repeat_add":"La tâche a été ajoutée, veuillez ne pas l\'ajouter à nouveau","upload":"Télécharger","download":"Télécharger","delete":"Supprimer","delete_task":"Supprimer la tâche","delete_confirm_message":"Supprimer cette tâche ? C\'est irrévocable","also_delete_files":"Supprimer également les fichiers","default_delete_files":"Supprimer par défaut les fichiers téléchargés après la suppression de la tâche","not_now":"Pas maintenant","delete_autoupload_confirm":"Cette tâche contient le fichier que vous avez placé dans le répertoire de téléchargement automatique. Supprimer cette tâche supprimera également le fichier.","delete_anyway":"Supprimer quand même","upload_too_many_files":"Télécharger trop de fichiers","ask_if_unlimit_upload_amount":"Le répertoire de téléchargement automatique contient trop de fichiers. Voulez-vous désactiver la limitation du montant de téléchargement ? *Cela peut entraîner des problèmes de performances","disable_limitation":"Désactiver la limitation","not_length":"L\'opération multi-fichiers n\'est pas prise en charge pour le moment, veuillez coopérer","download_torrent":"Télécharger un fichier","upload_torrent":"Téléverser un fichier","files":"Des dossiers","file":"Déposer","folder":"Dossier","start_all":"Tout commencer","pause_all":"Tout mettre en pause","remove_all":"Enlever tout","upload_all":"Télécharger tout","clear_history":"Histoire claire","pause_all_finish_payments":"Cela terminera tous les paiements.","accelerating":"Accélérer","link_task":"Tâche de liaison","torrent_task":"Tâche de fichier","ok":"D\'ACCORD","cancel":"Annuler","download_directory_position":"Télécharger la position du répertoire","torrent_file":"fichier de tâche","magnetic_link_incorrect":"Le format du lien est incorrect","delete_fail":"Échec de la suppression","pause":"Pause","paused":"En pause","stop_torrent":"Arrêt","seed":"Graine","resume":"CV","downloading":"Téléchargement","downloaded":"Téléchargé","uploading":"Téléchargement","auto_uploading":"Téléchargement automatique","uploaded":"Téléchargé","pending":"En attente d\'autres tâches","verifying":"Vérification","waiting_for_verify":"En attente de vérification","seeding":"Semis","completed":"Complété","status":"Statut","task_name":"Nom de la tâche","size":"Taille","progress":"Progrès","sort":"Trier","ascending":"Ascendant","descending":"Descendant","file_loading":"Chargement du fichier...","loading":"Chargement","unknown_status":"Inconnu","play_while_downloading":"Jouer...","upload_or_play":"Télécharger / Jouer","play":"Jouer","ask_if_upload_file":"Téléverser un fichier?","ask_if_upload_or_play":"Télécharger ou lire un fichier ?","torrent_error":"Erreur lors de l\'ajout de la tâche :","no_peers":"Réessayez plus de {0} fois et aucun pair n\'est disponible","torrent_exists":"La tâche existe déjà.","show_origin_torrent":"Obtenir le fichier ou l\'URL de la tâche d\'origine","show_directory":"Ouvrir le répertoire de ce torrent","task_num":"Tâches","total_upload_speed":"Vitesse de téléchargement","total_download_speed":"Vitesse de téléchargement","path_missing":"Erreur : impossible de trouver le chemin du torrent","origin_not_found":"Impossible de trouver les informations sur la tâche d\'origine.","text_copied":"L\'URL Magnum est copiée dans votre presse-papiers","copy_magnet_uri":"Aimant de copie : ? URI","copy_download_uri":"Copier l\'URI de téléchargement","copy_share_uri":"Copier l\'URI de partage","uri_copied":"L\'URI a été copié avec succès dans votre presse-papiers","uri_copy_failed":"Échec de la copie de l\'URI","more":"Plus...","toggle_list_mode":"Basculer le mode liste","comment":"comment","operations":"Opérations","open_directory":"Ouvrir le répertoire","no_downloading_task":"Aucune tâche de téléchargement","remove_all_downloading_tasks":"Supprimer toutes les tâches de téléchargement ?","remove_all_upload_tasks":"Supprimer toutes les tâches d\'importation ?","remove_autoupload_files":"Supprimer les fichiers de téléchargement automatique","remove_all_history":"Supprimer tout l\'historique ?","remaining":"Restant","created_time":"Temps créé","used_time":"Temps utilisé","completed_time":"Temps terminé","yesterday":"Hier","before_yesterday":"{empty}","earlier":"Plus tôt","miss_file":"Certains fichiers sont manquants","delete_miss_file_task":"Il manque des fichiers dans {0}.","common_peer":"Pair commun","ab_peer":"${displayName} pair","ab_peer_verified":"Pair vérifié ${displayName}","ab_peer_available":"${displayName} homologue(s) disponible(s)","alphabiz_accelerating":"${displayName} accélération","income":"Revenu","income_info":"Revenu(aujourd\'hui/total)","total_income_info":"Revenu : {0}(aujourd\'hui) / {1}(total)","login_to_see_income":"Connectez-vous pour voir les statistiques de revenus","credit_cost":"Frais de crédit","downloaded_by_payment":"Téléchargé par Paiements","file_not_found":"Impossible de trouver ce fichier en local","no_task":"Ne pas demander","no_matched_task":"Aucune tâche correspondante","space_not_enough":"Espace disque insuffisant","need_more_space":"Besoin de {0} plus d\'espace mais le disque actuel a {1} libre ({2} réservé). Les tâches sont mises en pause. Le préchargement de la bibliothèque est désactivé. Vous pouvez le réactiver dans [Paramètres - Avancé].","seeders":"Semoirs","last_update":"Dernière mise à jour","connecting":"De liaison","connected":"Connecté","request_timed_out":"La demande a expiré","connection_failed":"La connexion a échoué","invalid_download_url":"URL de téléchargement invalide","download_link":"lien de téléchargement","empty_files":"Aucun fichier dans le répertoire","duplicate_task":"Tâche en double","duplicate_tracker":"Outil de suivi en double","this_task_not_ready":"Cette tâche n\'est pas prête. Suspendre cette tâche la supprimera directement.","some_task_not_ready":"Certaines tâches ne sont pas prêtes. Suspendre ces tâches les supprimera directement.","failed_to_delete_files":"Échec de la suppression des fichiers","failed_to_delete_files_desc":"Échec de la suppression de certains fichiers de la tâche. Vous devrez peut-être les supprimer manuellement","unknown_error":"Erreur inconnue : {0}","more_files_are_not_shown":"({0} plus de fichiers ne sont pas affichés pour des raisons de performances)","no_available_file":"Aucun fichier disponible. Veuillez attendre que la tâche soit prête.","service_worker_error":"Impossible de charger ServiceWorker pour jouer. Votre navigateur peut ne pas prendre en charge cette fonctionnalité ou le ServiceWorker n\'est pas activé. Vous devrez peut-être recharger cette page et réessayer.","add_task_first":"Vous devez d\'abord ajouter une tâche.","player_task_time":"Le joueur prend trop de secondes pour se préparer à jouer. Il y a peut-être quelque chose qui ne va pas avec la tâche.","web_mode_hint":"Le mode Web de ${displayName} ne prend en charge que les pairs WebRTC. Pour une meilleure expérience, veuillez télécharger l\'application de bureau ${displayName}.","web_mode_task_hint":"Cliquez sur les boutons ci-dessous pour ajouter une tâche. Vous ne pouvez ajouter qu\'une seule tâche à la fois.","save_to_local":"Enregistrer en local","save_as_zip":"Enregistrer au format ZIP","creating_save_file":"Création du fichier de sauvegarde...","upload_as_one_directory":"Télécharger comme un seul répertoire","upload_as_single_files":"Télécharger en tant que fichiers uniques","web_mode_upload_single":"Vous ne pouvez télécharger qu\'un seul fichier en mode Web","download_success":"Télécharger avec succès","download_fail":"Échec du téléchargement","wait_for_downloaded_to_share":"Veuillez attendre que la tâche soit téléchargée avant de partager.","download_with_cellular":"Télécharger des tâches à l\'aide du cellulaire","download_with_cellular_desc":"Vous utilisez le réseau cellulaire. Les tâches de téléchargement avec cellulaire peuvent entraîner des frais supplémentaires par votre opérateur.","download_with_cellular_confirm":"Toujours télécharger avec le cellulaire","language":"Langue","appearance":"Apparence","darkModeSystem":"Système","darkModeLight":"Lumière","darkModeDark":"Sombre","basic_setting":"Basique","hideMenu":"Masquer le menu de l\'application (Windows et Linux uniquement)","autoHide":"Masquer automatiquement la fenêtre","autoStart":"Ouvrir à la connexion","restore":"Conserver la taille et la position de la fenêtre lors de la sortie","autoStartUnfinished":"Reprendre automatiquement toutes les tâches inachevées","default_download_path":"Chemin par défaut","download_directory":"Répertoire de téléchargement","upload_directory":"Répertoire de téléchargement","enable_auto_upload":"Activer le téléchargement automatique","unlimit_upload_amount":"Montant de téléchargement illimité","unlimit_upload_warning":"Autoriser le téléchargement d\'une grande quantité de fichiers. Cela peut causer des problèmes de performances","start":"Démarrer","transport_setting":"Transmission","upload_limit":"Limite de téléchargement","download_limit":"Limite de téléchargement","payed_user_share_rate":"Taux de partage des utilisateurs payants","unlimited":"Illimité","limit_input_error":"Le nombre limite doit être positif","BT_setting":"Paramètres de tâche","saveLinkSeed":"Enregistrer le lien en tant que fichier de tâche","autoDownload":"Télécharger automatiquement le lien et le contenu","continuousSeeding":"Continuez à semer jusqu\'à ce que vous l\'arrêtiez manuellement","seedSharingRate":"Rapport de semences","seedTime":"Temps d\'amorçage (minutes)","task_manage":"Gestion des tâches","maximumDownloadNum":"Tâches actives maximales","maximumConnectionsNum":"Connexion maximale par serveur","range_error":"La plage doit être comprise entre {0} et {1}","random":"aléatoire","breakpointContinuation":"Continuer","automaticSkip":"Afficher automatiquement le téléchargement après l\'ajout d\'une tâche","afterNotification":"Notification une fois le téléchargement terminé","deleteConfirm":"Aucune confirmation n\'est requise avant de supprimer la tâche","submit":"Enregistrer et appliquer","discard":"Jeter","reset":"Réinitialiser","reset_all_settings":"Réinitialiser tous les réglages?","preferences_resetted":"Préférences réinitialisées","traditional_chinese":"chinois traditionnel","japanese":"Japonais","english":"Anglais","chinese":"Chinois simplifié","advancedSettings":"Avancé","autoUpdate":"Mise à jour automatique","autoCheckUpdate":"Vérifier automatiquement la mise à jour","proxy":"Procuration","useProxyService":"Activer le proxy","trackerService":"Serveurs de suivi","recommendUse":"Recommandé","autoUpdateTrackerServiceList":"Mettre à jour automatiquement la liste des trackers tous les jours","manualUpdateTracker":"Mise à jour manuelle","manualUpdateSuccess":"Mise à jour réussie des serveurs de suivi","manualUpdateFail":"Échec de la mise à jour depuis :","listenPort":"Ports d\'écoute","BTlistenPort":"Port de transmission de données","DHTlistenPort":"Port de hachage distribué","protocols":"Protocoles compatibles","setDefaultClientForFollowingProtocols":"Définir comme client par défaut pour les protocoles suivants","magnetUrl":"Aimant","video_file":"Fichier vidéo","audio_file":"Fichier audio","security":"Sécurité","impersonateUserAgent":"Agent utilisateur fictif","RPCauthorizationkey":"Secret RPC","viewDocument":"Afficher le manuel des secrets RPC","developer":"Développeur","applicationLogPath":"Chemin du journal de l\'application","downloadSessionPath":"Télécharger le chemin de la session","resetDownloadSessionRecord":"Réinitialiser la session de téléchargement","restoreInitialSettings":"Retour aux paramètres d\'usine","preferences_set_successfully":"Enregistrez les préférences avec succès !","preferences_set_fail":"Échec de l\'enregistrement des préférences !","change_not_save":"Les modifications ne sont pas enregistrées","discard_all_changes":"Supprimer toutes les modifications et quitter ?","stay_in_page":"Rester à la page","disk_usage":"Utilisation du disque","pause_if_less_space":"Mettre en pause et notifier si l\'espace est inférieur à (Mo)","default_video_player":"Lecteur vidéo par défaut","video_cache_time":"Cache de lecture de flux","minutes":"minutes","system_default":"Défaillance du système","media_player":"Lecteur multimédia","library_film_rate":"Tarif film disponible","library_show_explore":"Afficher la page [Explorer]","library_setting":"Réglage de la bibliothèque","library_sync_setting":"Paramètre de synchronisation de la bibliothèque","keychain_sync_status":"État de synchronisation du trousseau","sync_with_aws":"Synchroniser le trousseau avec Amazon Web Services","backup_to_local":"Sauvegarde dans un fichier local","enable_sync_with_aws":"Activer la synchronisation avec AWS","disable_sync_with_aws":"Désactiver la synchronisation avec AWS","disable_sync_with_aws_desc":"Cela supprimera la clé enregistrée sur le serveur. Veuillez vous assurer que vous avez déjà exporté votre clé.","input_independent_password":"Saisir un mot de passe indépendant","change_independent_password":"Changer le mot de passe indépendant","password_error":"Erreur de mot de passe","password_invalid":"mot de passe invalide","key_existed":"La clé existait","key_not_found":"Clé introuvable","library_recommend":"La bibliothèque recommande","show_all_channels":"Afficher toutes les chaînes dans la page de recommandation de la bibliothèque","not_logged_in":"Pas connecté","login_to_continue":"Connectez-vous pour continuer","mnemonic_code":"Code mnémonique","wordlist":"Liste de mots","restore_code":"Restaurer à partir du code","generate_code":"Générer du code","export_mnemonic_code":"Exporter le code mnémonique","import_mnemonic_code":"Importer le code mnémonique","print":"Imprimer","save_as_txt":"Enregistrer au format txt","save_as_pdf":"Enregistrer au format pdf","from_file":"À partir du fichier","not_valid_mnemonic_code":"Ceci n\'est pas un code mnémonique valide","cannot_parse_code_as_key":"Impossible d\'analyser ce code mnémonique en tant que clé de bibliothèque","import_key_hint":"Êtes-vous sûr d\'importer cette clé ? Cela récupérera votre ancienne clé dans la bibliothèque.","import_key_confirm":"Oui, importez-le.","library_preload":"Précharger les tâches de la bibliothèque","show_preload":"Afficher les tâches de préchargement","set_download":"Définir le répertoire de téléchargement","set_download_desc":"Pour la version macOS App Store, le répertoire de téléchargement par défaut se trouve dans le bac à sable de l\'application et sera supprimé après la désinstallation de l\'application. Si vous souhaitez conserver vos fichiers de téléchargement, vous devez sélectionner manuellement un autre répertoire de téléchargement.","home":"Maison","home_caption":"Téléchargement/téléchargement et fichiers multimédias","library":"Bibliothèque","library_caption":"Explorer les ressources médias","player":"Joueur","player_caption":"Lecteur multimédia","credits":"Crédits","credits_caption":"Vérifier le solde du compte","account":"Compte","account_caption":"Connexion/Inscription/Gestion","settings":"Paramètres","settings_caption":"Paramètres pour l\'application, le lecteur, le compte","development":"Développement","development_caption":"Mode développeur pour usage interne","basic":"Basique","basic_caption":"Paramètres de base","advanced":"Avancé","advanced_caption":"Réglages avancés","blockchain":"Portefeuille","blockchain_caption":"${displayName} Portefeuille décentralisé","internal_notice":"Avis de version interne","release_notes":"Notes de version","terms_and_conditions":"Termes et conditions","license_and_listen_notices":"Avis de licence et d\'écoute Open Source","close":"Fermer","success":"Succès","fail":"Échouer","account_email_invalid_address":"Adresse e-mail invalide","account_email_invalid_domain":"Domaine de messagerie invalide","account_email_unknown_status":"État de livraison des e-mails inconnu","account_email_unavailable_address":"Adresse e-mail indisponible","account_email_suppressed_address":"Adresse e-mail supprimée","account_loading":"Chargement...","account_is_required":"est requis","account_sign_in_your_account":"S\'identifier","account_username":"Nom d\'utilisateur","account_username_email_phone":"Numéro de téléphone ou email","account_password":"Mot de passe","account_new_password":"Nouveau mot de passe","account_re_enter_password":"Entrez à nouveau le mot de passe","account_password_not_equal":"Deux mots de passe ne sont pas égaux","account_new_password_same":"Le mot de passe est le même que le mot de passe d\'origine","account_forgot_your_password":"Mot de passe oublié?","account_reset_password":"Réinitialiser le mot de passe","account_sign_in":"Se connecter","account_signed_in":"Connecté","account_sign_up":"S\'inscrire","account_find_your_account":"Trouvez votre compte","account_enter_your_username":"Entrez votre numéro de téléphone ou email","account_search":"Recherche","account_email_sent_tip":"Un e-mail avec un code de vérification a été envoyé à votre adresse e-mail :","account_phone_sent_tip":"Un SMS avec un code de vérification a été envoyé sur votre téléphone :","account_email_phone_sent_tip":"Un e-mail et un SMS avec le code de vérification ont été envoyés respectivement à votre e-mail et à votre téléphone :","account_software_token_tip":"MFA est activé pour votre compte. Pour terminer la connexion, veuillez allumer ou afficher votre appareil et saisir le TOTP","account_reset_your_password":"réinitialisez votre mot de passe","account_verification_code":"Le code de vérification","account_resend_code":"Renvoyer le code","account_code_has_been_resent":"Le code de vérification a été renvoyé","account_password_has_been_reset":"Le mot de passe a été réinitialisé","account_submit":"Soumettre","account_sign_up_your_account":"Enregistrez votre compte","account_fill_required_fields":"Remplissez les champs obligatoires ci-dessous.","account_fill_optional_fields":"Remplissez les champs optionnels ci-dessous.","account_email":"E-mail","account_invitation":"Invitation","account_invitation_code":"Code d\'invitation","account_i_accept":"J\'accepte","account_license_terms":"la licence et les conditions","account_next":"Suivant","account_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions.","account_verify_fill_optional_fields":"Vérifiez et remplissez les champs optionnels.","account_nickname":"Surnom","account_gender":"Genre","account_male":"Mâle","account_female":"Femelle","account_not_say":"Ne pas dire","account_birthday":"Anniversaire","account_phone_number":"Numéro de téléphone","account_locale":"Locale","account_tip_verified":"Vérifié, Connexion...","account_verified":"vérifié","account_unverified":"non vérifié","account_signed_up":"Signé","account_verify_your_identity":"Vérifiez Votre Identité","account_finish":"Finir","account_signed_out":"Se déconnecter","account_change_password":"Changer le mot de passe","account_change_email":"Changer l\'e-mail","account_change_phone_number":"Changer de numéro de téléphone","account_sign_out":"se déconnecter","account_current_password":"Mot de passe actuel","account_re_enter_new_password":"ré-entrez le nouveau mot de passe","account_personal_information":"Information","account_edit":"modifier","account_reset":"réinitialiser","account_greeting":"Bonjour,","account_cancel":"Annuler","account_change":"changement","account_not_set":"pas encore défini","account_setting":"paramètre","account_copy_code":"copier le code","account_account_setting":"Compte","account_task_page":"Tâche de crédit","account_setting_caption":"Changer le mot de passe / Modifier les informations","account_security":"Sécurité","account_want_to_join":"Vouloirjoindre?","account_sign_in_now":"Se connecter","account_changed":"Modifié","account_clipboard_with_invitation_code":"Code d\'invitation copié","account_clipboard_with_code":"Le code copié","account_invitation_code_dialog_tip":"Vous enverrez à votre ami un e-mail ou un SMS avec un code d\'invitation :","account_available":"disponible","account_invited":"invité","account_used":"utilisé","account_invitation_code_sent":"Le code d\'invitation a été envoyé","account_invitation_channel_required":"Remplissez au moins un canal d\'invitation","account_no_verification_code":"Vous ne pouvez pas recevoir le code de vérification ?","account_no_phone_number":"Pas de numéro de téléphone ?","account_sign_up_by_email":"Inscrivez-vous par email","account_no_email":"Pas d\'e-mail ?","account_sign_up_by_phone_number":"Inscrivez-vous par numéro de téléphone","account_no_totp":"Pas de TOTP ?","account_tip_no_totp":"S\'il n\'y a pas de TOTP, veuillez d\'abord configurer TOTP","account_setup_totp":"Configurer le TOTP","account_contact_information":"Coordonnées","account_delete_account":"Supprimer le compte","account_deleted":"Supprimé","account_can_not_mfa":"MFA en difficulté ?","account_set_mfa_type":"Configurer MFA","account_disable_mfa":"Désactiver MFA","account_disabled_mfa":"MFA désactivé","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Non recommandé","account_oauth_sign_in_with":"Connectez-vous avec {provider}","account_sign_in_failed":"Échec de la connexion","account_tip_oath_sign_up":"L\'email correspondant au compte {provider} actuel : {email} n\'a pas encore créé de compte","account_tip_confirm_delete_account":"Entrez le mot de passe du compte actuel pour confirmer que vous souhaitez supprimer le compte actuel. (Les comptes supprimés ne peuvent pas être restaurés)","account_tip_config_mfa":"Vous pouvez choisir d\'utiliser un SMS ou un mot de passe à usage unique basé sur le temps (TOTP) comme authentification secondaire","account_error_can_not_enable_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer MFA","account_tip_can_not_enable_sms_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer SMS MFA","account_tip_can_not_enable_totp_mfa":"Vous devez lier votre adresse e-mail et votre numéro de téléphone mobile pour activer TOTP MFA","account_tip_setup_totp":"Utilisez des applications telles que Authenticator pour scanner le code QR ci-dessous ou copiez le code manuellement pour ajouter un jeton de sécurité","account_tip_verify_totp":"Vérifiez votre TOTP","account_link_your_social_account":"Liez votre compte social","account_unlink_your_social_account":"Dissocier le compte social","account_tip_confirm_link":"Êtes-vous sûr de vouloir lier le compte actuel à votre compte {provider} ?","account_tip_confirm_unlink":"Êtes-vous sûr d\'annuler votre compte lié {provider} ?","account_tip_linking":"obligatoire...","account_tip_unlinking":"Sans engagement...","account_linked":"Bondir","account_unlinked":"Non lié","account_error_can_not_link_to_the_linked_account":"Le compte social actuel est lié à un autre compte","account_error_can_not_link_to_the_mismatched_email":"Le compte actuel et l\'adresse e-mail du compte social sont incohérents","account_error_can_not_link_before_email_verified":"Le compte social ne peut pas être lié car le compte actuel n\'est pas lié à un e-mail vérifié","account_tip_confirm_verify_email_phone":"Voulez-vous envoyer un code de vérification à l\'adresse e-mail et au numéro de téléphone du compte actuel pour vérifier votre identité ?","account_tip_confirm_verify_phone":"Voulez-vous envoyer un code de vérification au numéro de téléphone actuel pour vérifier votre identité ?","account_error_1_message_60_seconds":"Un seul SMS ou e-mail peut être envoyé toutes les 60 secondes, attendez encore {delta} secondes","account_error_10_messages_per_day":"Chaque téléphone mobile ou e-mail ne peut envoyer que 10 messages en 24 heures","account_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","Network Error":"Il y a un problème avec le réseau, veuillez réessayer plus tard","account_error_user_not_exist":"L\'utilisateur n\'existe pas","account_error_incorrect_username_or_password":"identifiant ou mot de passe incorrect","account_error_incorrect_original_password":"Mot de passe d\'origine incorrect","account_error_incorrect_password":"Mot de passe incorrect","account_error_username_not_found":"Nom d\'utilisateur introuvable","account_error_can_not_reset_for_no_verified":"Impossible de réinitialiser le mot de passe pour le compte non vérifié","account_error_invalid_verification_code":"Code de vérification incorrect, veuillez réessayer","account_error_expired_verification_code":"Le code de vérification a expiré, veuillez réessayer","account_error_password_not_long_enough":"Le mot de passe n\'est pas assez long","account_error_attempt_limit_exceeded":"Limite de tentatives dépassée, veuillez réessayer après un certain temps.","account_error_password_attempts_exceeded":"Tentatives de mot de passe dépassées.","account_error_invalid_phone_number_format":"Format de numéro de téléphone invalide","account_error_no_cell_phone_prefix":"Veuillez sélectionner le préfixe du numéro de téléphone","account_error_username_already_exists":"Cet identifiant existe déjà","account_error_you_need_to_accept_license_terms":"Vous devez d\'abord accepter la licence et les conditions","account_error_inactive_code":"Le code d\'invitation n\'est pas un code activé","account_error_non_existent_code":"Le code d\'invitation est inexistant","account_error_unexpected":"Erreur inattendue","account_error_can_not_change_email_before_phone_bound":"L\'e-mail ne peut pas être modifié avant que le numéro de téléphone ne soit lié","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail ne peut pas être modifié avant de dissocier le compte social","account_error_can_not_change_phone_before_email_bound":"Le numéro de téléphone ne peut pas être modifié avant que l\'e-mail ne soit lié","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossible de modifier l\'adresse e-mail ou le numéro de téléphone mobile avant de désactiver MFA","account_error_not_supported_yet":"Pas de soutien pour le moment","account_error_same_email":"La nouvelle adresse e-mail ne peut pas être la même que l\'adresse e-mail d\'origine","account_error_same_phone":"Le nouveau numéro de téléphone ne peut pas être le même que le numéro de téléphone d\'origine","account_error_email_not_exists":"L\'adresse e-mail n\'existe pas","account_error_email_already_exists":"Un compte avec l\'adresse e-mail indiquée existe déjà.","account_error_phone_already_exists":"Un compte avec le numéro de téléphone indiqué existe déjà.","account_error_mfa_token_mismatch":"Incompatibilité de code de jeton logiciel","account_error_recaptcha_not_loaded":"Il y a un problème avec le réseau. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_recaptcha_validation_failed":"La validation ReCAPTCHA a échoué. Veuillez reconnecter le réseau et redémarrer l\'application pour réessayer.","account_error_sign_in_in_progress":"Tentative de connexion en attente déjà en cours","account_field_range":"Limiter la saisie de {0}-{1} caractères","account_field_only_alphanumeric":"Ne prend en charge que les caractères alphanumériques","account_field_only_alphanumeric_and_symbol":"Ne prend en charge que les caractères alphanumériques et les symboles","account_field_only_chinese_alphanumeric_space_underline":"Ne prend en charge que les caractères alphanumériques, les espaces et les traits de soulignement","account_field_prefix_without_number_space":"Le premier caractère ne peut pas être un chiffre ou un espace","account_field_suffix_without_space":"Ne peut pas se terminer par un espace","account_field_without_repeat_space":"Impossible d\'utiliser plusieurs espaces à la suite","account_field_can_not_only_alphanumeric":"Vous ne pouvez pas simplement utiliser des lettres ou des chiffres","account_field_must_have_number_characters":"Doit contenir des chiffres","account_field_verification_code":"Le code de vérification doit comporter six chiffres","account_field_invitation_code":"Le code d\'invitation doit être alphanumérique","account_field_phone_number":"Format de numéro de téléphone invalide","account_invalid_email_format":"Format d\'email invalide","account_sign_out_confirm":"Êtes-vous sûr de vous déconnecter ? Cela arrêtera toutes les tâches.","account_sign_out_anyway":"Déconnectez-vous quand même","account_signing_out":"Déconnecter...","account_request_save_settings":"Les paramètres ne sont pas enregistrés. Vous devez enregistrer les modifications avant de vous déconnecter.","pay":"Payer","pay_with_credit":"Payez pour l\'accélération du téléchargement. Besoin d\'environ {0} de crédit","pay_with_credit_payed":"Accélération. Encore besoin d\'environ {0} de crédit","create_payment":"Créer un paiement","pay_target":"Cible","pay_for_torrent":"Payer pour {0}","your_subid":"Votre sous-identifiant","your_credits":"Vos crédits","pay_point_for_data":"Payez {0} point pour {1} de données","auto_renew":"Activer le renouvellement automatique","transaction_details":"détails de la transaction","transaction_id":"Identifiant","transaction_payer":"Payer","transaction_payee":"Bénéficiaire","transaction_category":"Catégorie","transaction_changed_amount":"Montant modifié","transaction_meta":"Méta","transaction_status":"Statut","transaction_creation_time":"Temps de creation","receipt_code":"Code de reçu","transfer_amount":"Montant du transfert","code_the_receipt_code":"Copiez le code de reçu ci-dessous au payeur","fill_the_receipt_code":"Virement en renseignant le code de paiement fourni par le bénéficiaire","expense":"Frais","copied":"Copié","transfer":"Transfert","receive":"Recevoir","copy":"Copie","withdraw_fund":"Retirer des fonds","category_paydata_payer":"Coût des données","category_paydata_payee":"Revenu de données","category_transfer":"Transfert","category_bonus":"Prime","category_recharge":"Recharger","status_pending":"en attente","status_completed":"complété","status_finish":"finir","status_failed":"échoué","tip_invalid_receiver":"Code récepteur invalide","tip_invalid_amount":"Le montant du crédit doit être un flottant compris entre 0 et 1 000 (la précision minimale est de 0,001)","credit_get_more":"Obtenez plus de crédits","credit_no_data":"Pas de données disponibles","credit_loading":"Chargement...","credit_not_enough_amount":"Pas assez de crédits","credit_amount_not_enough":"Pas assez de crédits","credit_payee_not_exist":"Le bénéficiaire n\'existe pas","credit_invalid_amount":"Montant du crédit invalide","credit_can_not_transfer_to_yourself":"Impossible de transférer à vous-même","credit_latest":"Dernier","credit_error_network":"Il y a un problème avec le réseau, veuillez réessayer plus tard","add_subtitles":"Ajouter des sous-titres","open_file":"Fichier ouvert...","advanced_options":"Options avancées","title":"Titre","location":"emplacement","subtitle_file":"fichier de sous-titres","unsupported_subtitle_type":"Le type de fichier de {0} n\'est pas un type de sous-titre pris en charge","not_default_player":"Le lecteur vidéo par défaut n\'est pas défini","this_is_an_audio_file":"Ceci est un fichier audio","the_added_subtitle_already_exists":"Le sous-titre ajouté existe déjà","stop_stream_player":"La diffusion multimédia a été interrompue car la tâche a été interrompue ou supprimée","stop_player":"Le lecteur a été fermé car le fichier a été supprimé","playing_timeout_hint":"Délai d\'attente expiré. Veuillez vérifier la tâche","autoplay_hint":"La lecture automatique peut être bloquée par votre navigateur. Si le lecteur ne joue pas, essayez de cliquer sur l\'écran pour continuer","remove_playing_confirm":"{0} est toujours en cours de lecture, supprimez-le pour arrêter le lecteur. Êtes-vous sûr de le supprimer ?","unsupported_in_browser":"Pas encore pris en charge en mode navigateur","client":"Client","warning":"Avertissement","enable":"Activer","disable":"Désactiver","auto":"Auto","encrypt_connection":"Chiffrer la connexion","encrypted_connection":"Connexion cryptée","non_encrypted_connection":"Connexion non cryptée","connected_wires_not_disconnect":"Les fils connectés ne seront pas déconnectés","audio":"l\'audio","video":"vidéo","image":"image","subtitle":"Sous-titre","zip":"zipper","text":"texte","unknown":"inconnu","add":"Ajouter","undo":"annuler","backup":"Sauvegarde","not_default_app":"${displayName} n\'est pas votre application par défaut pour les torrents et les médias, voulez-vous la définir par défaut ?","dont_show_again":"Ne plus afficher","go_to_settings":"Aller aux paramètres","about_alphabiz":"Environ ${displayName}","last_check_at":"Dernière vérification à","update_channel":"Mettre à jour la chaîne","check_for_update":"Vérifier la mise à jour","checking_for_update":"Vérification de la mise à jour...","no_update_available":"Pas de mise a jour disponible","update_available":"Mise à jour disponible","update_now":"Mettez à jour maintenant","update_later":"Mise à jour plus tard","click_to_update":"Cliquez sur le bouton METTRE À JOUR MAINTENANT pour télécharger et mettre à jour","update_failed":"Mise à jour a échoué","update_failed_message":"Une erreur s\'est produite lors de la mise à jour :","check_shasum_failed":"Échec de la vérification de l\'intégrité pour le programme d\'installation","downloading_update":"Téléchargement de la mise à jour...","ready_to_update":"Prêt à mettre à jour","restart_to_update":"La mise à jour est téléchargée. ${displayName} sortira pour mettre à jour pendant quelques instants.","already_latest":"La version actuelle ({0}) est déjà la dernière","update_timeout":"Délai de mise à jour","no_available_release":"Aucune version disponible","no_available_installer":"Aucun programme d\'installation disponible","feedback":"Retour","select_a_type":"Sélectionnez un type","category":"Catégorie","select_a_category":"Choisir une catégorie","require_title":"Le titre est requis","describe_your_problem":"Décrivez votre problème","report_a_bug":"Signaler un bug","request_a_new_feature":"Demander une nouvelle fonctionnalité","download_or_upload":"Téléchargement","others":"Autres","submit_with_system_info":"Soumettre avec les informations système","submit_feedback":"Soumettre des commentaires","tweet_us":"Tweetez-nous","tweet_too_long":"Le tweet est trop long","delete_characters":"Veuillez supprimer au moins {0} caractère(s)","rest_characters":"Vous pouvez saisir {0} plus de caractère(s)","update_alphabiz":"Mettre à jour ${displayName}","current_version":"Version actuelle","cancel_update":"Annuler la mise à jour","slow_download_speed":"Téléchargement trop lent","slow_download_speed_caption":"Le téléchargement du programme d\'installation est trop lent maintenant. Veuillez vérifier l\'état du réseau","update_canceled":"Mise à jour annulée","current_version_release_time":"Date de sortie de la version actuelle","expired_app":"${displayName} Expiré","version_out_of_date":"Version obsolète","have_to_update":"La version de ${displayName} est obsolète. Certains protocoles ou API sont obsolètes. Vous devez mettre à jour ${displayName} avant de continuer.","exit_alphabiz":"Sortie ${displayName}","exit_and_update":"Quitter et appliquer la mise à jour","new_version_hint":"Une nouvelle version est disponible","no_new_version":"Aucune nouvelle version disponible","current_is_latest":"La version actuelle est déjà la plus récente","click_to_check_update":"Cliquez sur le bouton [CHECK FOR UPDATE] pour vérifier la mise à jour","download_latest_version_from_website":"Veuillez visiter le site officiel pour télécharger la dernière version","to_the_website":"Vers le site","network_diagnotic":"Diagnostique réseau","diagnotic":"Diagnostique","click_to_check":"Cliquez pour vérifier","click_to_check_again":"Cliquez pour vérifier à nouveau","checking":"Vérification","online":"En ligne","offline":"Hors ligne","dns_look_up":"Recherche DNS","error":"Erreur","aws_service":"ServicesAWS","network_pings":"Ping réseau","not_found":"Pas trouvé","packet_loss":"Perte de paquet(s)","official_site":"Site officiel","download_test":"Télécharger l\'essai","test_task":"Tâche d\'essai {0}","download_failed":"Échec du téléchargement","second_spend":"{0} dépenses","open_default_player_failed":"Impossible d\'ouvrir le lecteur par défaut","copied_to_clipboard":"Copié dans le presse-papier","go_to":"Aller à","region_not_available":"Région non disponible","region_not_available_message":"Désolé! Votre région n\'est pas disponible pour utiliser cette application. Cette application se fermera après {0} secondes","confirm":"Confirmer","no_available_result":"Aucun résultat disponible","invalid_password_format":"format de mot de passe invalide","invalid_password_format_same":"Le mot de passe est le même que le mot de passe d\'origine","error_password":"Erreur de mot de passe","keychain_setting":"Porte-clés","setting_description":"Stockage dans le cloud : enregistrez les données clés dans le cloud.\\nModifier le mot de passe : modifier le mot de passe de la clé de la bibliothèque multimédia.\\nMnémonique : une méthode alternative pour générer et restaurer des clés.\\nImporter la clé locale : importez la clé enregistrée localement dans la médiathèque.\\nClé d\'exportation : enregistre les données actuelles de la bibliothèque multimédia en local ou dans le cloud.\\nClé de sauvegarde vers le cloud : mettez à jour les données actuelles de la bibliothèque multimédia vers le cloud pour la sauvegarde.","refresh_status":"État de mise à jour","confirm_import_key":"Confirmer la clé d\'importation","confirm_update_cloud_key":"Vous avez déjà une clé dans le cloud. La mise à jour de la clé écrasera la clé d\'origine. Êtes-vous sûr de vouloir mettre à jour la clé stockée dans le cloud","export_key_with_cloud":"Entrez le mot de passe indépendant que vous avez défini pour exporter la clé de bibliothèque stockée dans le cloud et verrouillez le fichier de clé avec le mot de passe de déverrouillage","store_cloud_key_prompt_password":"Entrez un mot de passe indépendant pour stocker la clé de la bibliothèque dans le cloud","update_cloud_key_prompt_password":"Définissez un mot de passe indépendant pour chiffrer la clé de la bibliothèque, puis mettez-la à jour dans le cloud","enable_cloud_storage_prompt_password":"Définissez un mot de passe pour la clé stockée dans le cloud, grâce auquel vous pouvez récupérer la clé depuis le cloud","input_unlock_password":"Définir le mot de passe de déverrouillage","export_local_prompt_password":"Veuillez définir un mot de passe de déverrouillage pour chiffrer votre fichier clé. Nous n\'enregistrerons pas ce mot de passe pour vous, donc si vous perdez votre mot de passe, vous ne pourrez pas déverrouiller votre clé de bibliothèque","require_unlock_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","require_independent_password":"Entrez le mot de passe indépendant pour obtenir la clé stockée dans le cloud","import_local_prompt_password":"Le fichier clé est verrouillé, veuillez entrer le mot de passe de déverrouillage","select_encrypt_mode":"Sélectionnez le mode de cryptage","update_cloud_key":"Mettre à jour la clé stockée dans le cloud","backup_to_cloud":"Sauvegardez la clé de la bibliothèque dans le cloud","save_local":"Enregistrez la clé de la bibliothèque en tant que fichier crypté local","create_new_key":"Créer une nouvelle clé de bibliothèque","creating_lib_key":"Création de la clé de bibliothèque...","loading_lib_key":"Chargement de la clé de bibliothèque...","failed_to_create_lib_key":"Échec de la création de la clé de bibliothèque","failed_to_load_lib_key":"Impossible de charger la clé de la bibliothèque","import_local_key":"Importer la clé localement","import_lib_key_from_local":"Importer une clé de bibliothèque localement","import_from_cloud":"Importer la clé de la bibliothèque depuis le cloud","create_or_import_key":"Créer ou importer une clé de bibliothèque","create_or_import_key_desc":"La clé de bibliothèque est une clé indépendante utilisée pour récupérer et publier du contenu avec une base de données décentralisée.","store_your_lib_key":"Stockez votre clé de bibliothèque","export_cloud_key":"Exporter la clé depuis le cloud","export_current_key":"Exporter la clé actuelle","change_password":"Changer le mot de passe","enable_cloud_storage":"Activer le stockage en nuage","disable_cloud_storage":"Désactiver le stockage cloud","disable_cloud_storage_desc":"Désactiver le stockage dans le cloud supprimera la clé enregistrée dans le cloud, veuillez vous assurer que la clé est enregistrée localement","sync_at":"Synchroniser à : {time}","cloud_storage_enabled":"Synchroniser le trousseau avec {storage}","cloud_storage_disabled":"Stockage cloud désactivé","saved_locally":"Enregistré localement","export_key":"Exporter le fichier clé","cloud_independent_password":"Mot de passe indépendant du cloud","key_file_unlock_password":"Mot de passe de déverrouillage du fichier clé","re_enter_unlock_password":"Entrez à nouveau le mot de passe de déverrouillage","independent_password_not_enabled":"Le mot de passe actuel est le mot de passe du compte Alphabiz (aucun mot de passe indépendant n\'est défini)","use_cognito_hash":"Utiliser le mot de passe du compte Alphabiz","use_independent_password":"Utiliser un mot de passe indépendant","keychain_lib":"clé de la bibliothèque","loading_keychain_state":"Chargement du trousseau...","backing_up":"Sauvegarde...","backup_current_key":"Sauvegarder la clé actuelle sur le Cloud","cloud_lib_key_not_existed":"la clé de bibliothèque n\'existe pas dans le Cloud","open_keychain_file":"Ouvrir le fichier du trousseau","confirm_open_abk":"Voulez-vous ouvrir le fichier ABK","use_the_key":"Utilisez la clé","backup_the_key":"Sauvegardez la clé dans le cloud","keychain_data_does_not_exist":"Les données du trousseau n\'existent pas","timeout of 0ms exceeded":"Il y a un problème avec le réseau, veuillez réessayer plus tard","XhrError":"Il y a un problème avec le réseau, veuillez réessayer plus tard","payer credit amount is not enough":"Pas assez de crédits","payee does not exist":"Le bénéficiaire n\'existe pas","block_list_manage":"Gérer la liste de blocage","blocked_users":"Utilisateurs bloqués","blocked_channels":"Chaînes bloquées","unblock_user":"Débloquer l\'utilisateur","unblock_channel":"Débloquer la chaîne","no_blocked_user":"Aucun utilisateur bloqué","no_blocked_channel":"Aucune chaîne bloquée","field_required":"{0} est requis","setting":"Paramètre","unknown_media":"Média inconnu","settings_button_visible":"Bouton visible","settings_setting":"Paramètre","settings_playback_rate":"Taux de lecture","settings_subtitle":"Sous-titre","settings_pip":"Pépin","settings_fullscreen":"Plein écran","settings_subtitle_options":"Options de sous-titres","settings_normal":"Normale","settings_italic":"Italique","settings_lighter":"Plus léger","settings_bolder":"Plus audacieux","settings_small":"Petit","settings_large":"Grand","about":"À propos","services":"Prestations de service","hide":"Cacher","hide_others":"Masquer les autres","show_all":"Afficher tout","quit":"Arrêter","edit":"Modifier","redo":"Refaire","cut":"Couper","paste":"Pâte","select_all":"Tout sélectionner","view":"Voir","reload":"Recharger","toggle_full_screen":"Basculer en plein écran","toggle_developer_tools":"Basculer les outils de développement","window":"Fenêtre","minimize":"Minimiser","bring_all_to_front":"Amenez tout au premier plan","help":"Aider","github_repo":"Dépôt Github","issues":"Problèmes","learn_more":"Apprendre encore plus","learn_spelling":"Apprendre l\'orthographe","lookup_selection":"Rechercher \\"{selection}\\"","search_with_google":"Rechercher avec Google","save_as":"Enregistrer sous","save_image":"Enregistrer l\'image","save_image_as":"Enregistrer l\'image sous ...","copy_link":"Copier le lien","save_link_as":"Enregistrer le lien sous ...","copy_image":"Copier l\'image","copy_image_as":"Copier l\'image sous...","copy_image_address":"Copier l\'adresse de l\'image","download_complete":"Téléchargement complet","download_complete_message":"{0} est téléchargé","is_running":"{0} est en cours d\'exécution","open":"Ouvert {0}","launch_problem":"Problème de lancement","ask_clear_data":"Il semble que vous essayez de lancer {0} mais que vous avez échoué plusieurs fois.\\nVoulez-vous effacer toutes les données de l\'application et essayer de lancer plus tard ?","launch_directly":"Lancer directement","clear_all_data":"Effacer toutes les données","ask_clear_confirm":"Cela supprimera toutes les configurations, les journaux et les données utilisateur !\\nAprès cela, vous devrez peut-être relancer {0}.\\nVoulez-vous vraiment effacer les données ?","confirm_launch":"Non, lancer directement","confirm_clear":"Oui, effacer toutes les données"}')},1278:function(e,t,a){},13:function(e,t){},1357:function(e,t,a){"use strict";a("5960")},14:function(e,t){},15:function(e,t){},"15eb":function(e,t,a){"use strict";(function(e,n){a("de6c"),a("a1c1"),a("d4b5");var o=a("7d96"),i=a("d310"),r=a("4d52"),s=a("e75b"),l=a("c5a5");t["a"]=({Vue:t,app:c,router:d})=>{if(t.use(o["a"],{useComponent:{i18n:c.i18n}}),n.handleAbBlockchain=({url:t,action:a,actionArgs:n})=>{if(t){const o={type:"03",prefix:"ab-blockchain"},i={encode:t=>e.from(t,"utf-8").toString("base64"),decode:t=>e.from(t,"base64").toString("utf-8")},r=e=>{if(!e.startsWith(`${o.prefix}://`))return null;const[t,a]=e.replace(`${o.prefix}://`,"").split("/"),n=JSON.parse(i.decode(a));return{action:t,actionArgs:n}},s=r(t);a=s.action,n=s.actionArgs}if(console.log("ab-blockchain$",a,n),"Blockchain"===d.currentRoute.name){const e=d.currentRoute.matched.find((e=>"Blockchain"===e.name)),t=e.instances.default;t.handleAction(a,n)}else d.push({name:"Blockchain",params:{action:a,action_args:n}})},Object(i["isElectron"])()){const{ipcRenderer:e}=a("b052");e.on(`${r["a"].config.prefix}-action`,((e,t,a)=>{n.handleAbBlockchain({action:t,actionArgs:a})}))}Object.defineProperty(n.$blockchain.wallet,"fundAccountWithFaucet",{configurable:!0,get(){return async({address:e,amount:t})=>{const a=new s["a"].Rest("ABDevRest"),n=await a.post("/development/blockchain/fundAccountWithFaucet",{amount:t,address:e,testToken:"XWZWQFZOZ3"});return n}}}),n.$blockchain.$store.wallet.createCollectionLink=async()=>{const t=async(t,a)=>{const n=(t,a)=>{const n={type:"03",prefix:"ab-blockchain"},o={encode:t=>e.from(t,"utf-8").toString("base64"),decode:t=>e.from(t,"base64").toString("utf-8")},i=o.encode(JSON.stringify(a));return`${n.prefix}://${[t,i].join("/")}`},o=n(t,a);console.log("internalUrl",o);const i=await Object(l["a"])(o);return i},{account:a}=n.$blockchain.$store;await a.assertAccountAccessible();const o=a.address,i=await t("transfer",{to_address:o});return i}}}).call(this,a("eb72").Buffer,a("0ee4"))},16:function(e,t){},17:function(e,t){},1738:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return l}));a("0c26");var n=a("e757"),o=a("47fc"),i=a("d710"),r=a.n(i);const s={MEASUREMENT_ID:"G-9NE14P89WD",STREAM_ID:"4617180072",API_SECRET:"r7q0lwYuQeSimEJ5JnVFuQ"},l=new n["a"](s.MEASUREMENT_ID,s.API_SECRET);function c(){var e;const t=Object(o["a"])(),{packageFormat:n,version:i}=l(),s=i.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:r.a.name,app_type:"website",app_env:"production",app_format:null!==n&&void 0!==n?n:"unknown",app_version:s.version,app_channel:null!==(e=s.channel)&&void 0!==e?e:"stable",app_screen:t.screen,app_os:t.os,app_os_version:t.osVersion,app_arch:t.arch};function l(){return a("ae46")}}t["b"]=(t,{app:a,router:n})=>{(e&&e.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))&&(console.log("DISABLE GOOGLE ANALYTICS"),l.disable()),l.config(),setTimeout((async()=>{const e=c();console.log("[GA] App Data",e),await l.send("analytics_test_app_data",e)}),1e4);let o=Date.now();l.send("app_launch",{timestamp:o}),n.afterEach(((e,t)=>{if("/"===t.path||e.path===t.path)return;const a=Date.now(),n=a-o;o=a,l.send("app_route",{to:e.path,from:t.path,stayTime:n})})),t.prototype.$ga=l,console.log("Init Google Analytics")}}).call(this,a("28d0"))},1761:function(e,t,a){"use strict";a("5d03")},18:function(e,t){},"186c":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},19:function(e,t){},1926:function(e,t,a){"use strict";a.d(t,"b",(function(){return Ae}));a("a1c1"),a("de6c"),a("d4b5"),a("dc89"),a("2425"),a("7a76");var n=a("ff9b"),o=a("4d79"),i=a("d710"),r=a.n(i);const s=r.a.displayName;var l={repeat_add:"任务已添加,请勿重复添加",upload:"上传",download:"下载",delete:"删除",delete_task:"删除任务",delete_confirm_message:"是否删除该任务? 此操作不可恢复",also_delete_files:"同时删除文件",default_delete_files:"删除任务时默认删除已下载的文件",not_now:"暂不处理",delete_autoupload_confirm:"此任务文件位于自动上传文件夹, 删除任务将同时删除对应文件",delete_anyway:"仍要删除",upload_too_many_files:"上传文件过多",ask_if_unlimit_upload_amount:"自动上传文件夹包含过多文件. 是否取消上传数量限制? *此操作可能造成性能问题",disable_limitation:"取消限制",not_length:"暂不支持,多文件操作,请配合",download_torrent:"下载该任务",upload_torrent:"上传该任务",files:"文件",file:"文件",folder:"文件夹",start_all:"全部开始",pause_all:"全部暂停",remove_all:"全部移除",upload_all:"全部上传",clear_history:"清除历史",pause_all_finish_payments:"此操作将完成所有已支付的订单.",accelerating:"加速中",link_task:"链接任务",torrent_task:"文件任务",ok:"好的",cancel:"取消",download_directory_position:"下载目录位置",torrent_file:"任务文件",magnetic_link_incorrect:"链接格式不正确",delete_fail:"删除失败",pause:"暂停",paused:"已暂停",stop_torrent:"结束任务",seed:"上传",resume:"继续",downloading:"下载中",downloaded:"下载完成",uploading:"上传中",auto_uploading:"自动上传中",uploaded:"上传完成",pending:"等待其他任务完成",no_downloading_task:"没有下载中任务",remove_all_downloading_tasks:"是否移除所有下载中任务?",remove_all_upload_tasks:"是否移除所有上传任务?",remove_autoupload_files:"移除所有自动上传任务",remove_all_history:"是否移除历史下载记录?",verifying:"验证文件",waiting_for_verify:"等待验证文件",seeding:"上传中",completed:"已完成",status:"状态",task_name:"任务名",size:"大小",progress:"进度",sort:"排序",ascending:"升序",descending:"降序",file_loading:"文件加载中",loading:"加载中",unknown_status:"未知",play_while_downloading:"边下边播",upload_or_play:"上传 / 播放",play:"播放",ask_if_upload_file:"是否上传文件?",ask_if_upload_or_play:"是否上传/播放文件?",torrent_error:"添加任务时遇到错误:",no_peers:"多次尝试后仍未能与Peers建立连接",torrent_exists:"任务已存在",show_origin_torrent:"显示原始任务文件或链接",show_directory:"打开文件所在位置",task_num:"任务数",total_upload_speed:"上传速度",total_download_speed:"下载速度",path_missing:"Error: 找不到文件位置",origin_not_found:"获取任务信息失败",text_copied:"链接已复制到剪贴板",copy_magnet_uri:"复制链接地址",copy_download_uri:"复制下载链接",copy_share_uri:"复制社交分享链接",uri_copied:"链接已复制至剪贴板",uri_copy_failed:"复制链接失败",more:"更多",toggle_list_mode:"切换显示模式",comment:"评论",operations:"操作",open_directory:"打开所在文件夹",remaining:"剩余时间",created_time:"创建时间",used_time:"用时",completed_time:"完成时间",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分文件缺失.",common_peer:"普通用户",ab_peer:`${s} 用户`,ab_peer_verified:`${s} 注册用户`,ab_peer_available:`${s} peer 可用`,alphabiz_accelerating:`${s} 加速中`,income:"收入",income_info:"收入(今天/总计)",total_income_info:"收入: {0}(今天) / {1}(总计)",login_to_see_income:"登陆以查看收入统计",credit_cost:"积分支出",downloaded_by_payment:"付费下载量",file_not_found:"无法找到本地文件",no_task:"无任务",no_matched_task:"无法找到匹配的任务",space_not_enough:"磁盘空间不足",need_more_space:"需要 {0} 磁盘空间, 磁盘剩余空间为 {1} ({2} 为保留空间). 任务已暂停. 媒体库预加载已禁用. 您可以在[设置 - 进阶设置]中重新启用.",seeders:"做种",last_update:"最后更新",connecting:"连接中",connected:"已连接",request_timed_out:"请求超时",connection_failed:"连接失败",invalid_download_url:"下载链接错误",download_link:"下载链接",empty_files:"文件夹中没有文件",duplicate_task:"重复任务",duplicate_tracker:"重复 tracker",this_task_not_ready:"此任务尚未就绪,暂停该任务将直接移除它",some_task_not_ready:"部分任务尚未就绪,暂停这些任务将直接移除它们",failed_to_delete_files:"删除文件失败",failed_to_delete_files_desc:"无法删除部分任务文件,可能需要手动删除",unknown_error:"未知错误: {0}",more_files_are_not_shown:"(出于性能考虑,{0} 个文件未显示)",no_available_file:"没有可用的文件,请等待任务就绪",service_worker_error:"无法加载 ServiceWorker。您的浏览器可能不支持此特性,或者 ServiceWorker 尚未就绪。请刷新页面后重试。",add_task_first:"请先添加任务",player_task_time:"播放器准备时间过长,请检查任务是否就绪",web_mode_hint:`${s} Web 仅支持 WebRTC 种子。下载 ${s} 桌面版以获得最佳体验。`,web_mode_task_hint:"点击下方链接创建任务。Web 模式同时仅可创建一个任务。",save_to_local:"保存到本地",save_as_zip:"保存为 ZIP",creating_save_file:"正在创建文件...",upload_as_one_directory:"作为一个文件夹上传",upload_as_single_files:"作为单独的文件上传",web_mode_upload_single:"Web 模式下只能上传单个文件",download_success:"下载成功",download_fail:"下载失败",wait_for_downloaded_to_share:"请等待下载完成后进行分享。",download_with_cellular:"使用数据流量下载",download_with_cellular_desc:"您正在使用数据流量,下载时运营商可能会收取额外的费用。",download_with_cellular_confirm:"仍然使用数据流量"},c={language:"语言",appearance:"外观",darkModeSystem:"跟随系统",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基础设置",hideMenu:"隐藏菜单栏(仅支持Windows和Linux)",autoHide:"自动隐藏窗口",start:"启动",autoStart:"开机自动启动",restore:"恢复上次退出时窗口的大小和位置",autoStartUnfinished:"自动开始未完成的任务",default_download_path:"默认下载路径",download_directory:"下载目录",upload_directory:"上传目录",enable_auto_upload:"允许自动上传",unlimit_upload_amount:"不限制上传数量",unlimit_upload_warning:"允许同时上传大量文件. 此选项可能导致性能问题",transport_setting:"传输设置",upload_limit:"上传限速",download_limit:"下载限速",payed_user_share_rate:"付费用户上传比例",unlimited:"不限速",limit_input_error:"限速需为正数",BT_setting:"下载任务设置",saveLinkSeed:"保存链接元数据为任务文件",autoDownload:"自动开始下载链接任务、任务文件",continuousSeeding:"持续上传,直到手动停止",seedSharingRate:"分享率",seedTime:"上传时间(分钟)",task_manage:"任务管理",maximumDownloadNum:"同时下载的最大任务数",maximumConnectionsNum:"每个服务器最大的连接数",range_error:"范围需在{0}-{1}之间",random:"随机",breakpointContinuation:"断点续传",automaticSkip:"新建任务后自动跳转到下载页面",afterNotification:"下载完成后通知",deleteConfirm:"删除任务前无需确认",submit:"保存并应用",discard:"放弃",reset:"重置",reset_all_settings:"重置所有设置?",preferences_resetted:"偏好设置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"进阶设置",autoUpdate:"自动更新",autoCheckUpdate:"自动检查更新",proxy:"代理",useProxyService:"使用代理服务器",trackerService:"Tracker服务器",recommendUse:"推荐使用",autoUpdateTrackerServiceList:"每天自动更新Tracker服务器列表",manualUpdateTracker:"手动更新",manualUpdateSuccess:" Tracker服务器更新成功",manualUpdateFail:"更新以下Tracker服务器失败:",listenPort:"监听端口",BTlistenPort:"数据传输端口",DHTlistenPort:"分布式哈希通讯端口",protocols:"兼容以下协议",setDefaultClientForFollowingProtocols:"设置本软件为以下兼容协议的默认客户端",magnetUrl:"磁力链接",video_file:"视频文件",audio_file:"音频文件",security:"安全性",impersonateUserAgent:"模拟用户代理(UA)",RPCauthorizationkey:"RPC授权密钥",viewDocument:"查看说明文档",developer:"开发者",applicationLogPath:"应用日志路径",downloadSessionPath:"下载会话路径",resetDownloadSessionRecord:"重置下载会话记录",restoreInitialSettings:"恢复初始设置",preferences_set_successfully:"偏好设置成功!",preferences_set_fail:"偏好设置失败!",change_not_save:"修改未保存",discard_all_changes:"是否放弃所有更改?",stay_in_page:"留在此页",disk_usage:"保留磁盘空间",pause_if_less_space:"剩余空间小于此值时暂停并提醒(MB)",default_video_player:"默认视频播放器",video_cache_time:"边下边播缓存时间",minutes:"分钟",system_default:"系统默认",media_player:"媒体播放器",library_film_rate:"可见影片分级",library_show_explore:"显示[探索]页面",library_setting:"媒体库设置",library_sync_setting:"媒体库同步设置",keychain_sync_status:"密钥同步状态",sync_with_aws:"使用 Amazon Web Services 同步密钥",backup_to_local:"保存为本地文件",enable_sync_with_aws:"启用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作将移除保存在云端的密钥,请确保已将密钥保存至本地。",input_independent_password:"输入独立密码",change_independent_password:"修改独立密码",password_error:"密码错误",password_invalid:"密码格式错误",key_existed:"密钥已存在",key_not_found:"密钥不存在",library_recommend:"媒体库推荐",show_all_channels:"在媒体库推荐页显示所有频道",not_logged_in:"尚未登录",login_to_continue:"登陆以继续",mnemonic_code:"助记词",wordlist:"单词表",restore_code:"从助记词恢复",generate_code:"生成助记词",export_mnemonic_code:"导出助记词",import_mnemonic_code:"导入助记词",print:"打印",save_as_txt:"保存为 txt",save_as_pdf:"保存为 pdf",from_file:"从文件导入",not_valid_mnemonic_code:"助记词格式错误",cannot_parse_code_as_key:"无法将此助记词解析为密钥",import_key_hint:"是否确认导入此密钥?此操作将覆盖旧的密钥。",import_key_confirm:"确认导入",library_preload:"媒体库任务预加载",show_preload:"显示预加载任务",set_download:"设置下载文件夹",set_download_desc:"macOS App Store 版本默认保存位置为应用内部沙盒,在应用卸载时会一并删除。为了保留下载文件,您需要手动选择下载位置。"},d={home:"主页",home_caption:"下载/上传媒体文件",library:"媒体库",library_caption:"探索媒体资源",player:"播放器",player_caption:"视频播放",credits:"信用積分",credits_caption:"检查账户积分余额",account:"用户",account_caption:"个人用户配置",settings:"设置",settings_caption:"所有设置项",development:"开发者",development_caption:"应用开发者模式",basic:"主要设置",basic_caption:"主要的设置项",advanced:"进阶设置",advanced_caption:"进阶的设置项",blockchain:"钱包",blockchain_caption:"去中心化钱包",internal_notice:"内部版本声明",release_notes:"发行说明",terms_and_conditions:"条款和章程",license_and_listen_notices:"许可和监听开源说明",close:"关闭",success:"成功",fail:"失败"},u={credits:"信用积分",pay:"支付积分",pay_with_credit:"支付积分加速下载, 预计需要{0}积分",pay_with_credit_payed:"正在加速下载, 预计还需要{0}积分",create_payment:"创建积分订单",pay_target:"支付对象",pay_for_torrent:"为 {0} 支付",your_subid:"用户 subId",your_credits:"当前余额",pay_point_for_data:"支付{0}积分以加速{1}数据",auto_renew:"允许自动续费",transaction_details:"订单明细",transaction_id:"订单编号",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"类型",transaction_changed_amount:"变动金额",transaction_meta:"其他数据",transaction_status:"订单状态",transaction_creation_time:"订单创建时间",receipt_code:"收款码",transfer_amount:"转账金额",code_the_receipt_code:"复制下方收款码给付款人",fill_the_receipt_code:"通过填入收款人提供的收款码进行转账",income:"收入",expense:"支出",copied:"已复制",transfer:"转账",receive:"收款",copy:"复制",withdraw_fund:"提取基金",category_paydata_payer:"数据支付",category_paydata_payee:"数据收入",category_transfer:"个人转账",category_bonus:"系统奖励",category_recharge:"充值",status_pending:"等待中",status_completed:"已传完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"无效的收款码",tip_invalid_amount:"金额应为 0-1000 范围内的数(最小精度为0.001)",credit_get_more:"获得更多积分",credit_no_data:"无可用数据",credit_loading:"加载中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"网络出现异常,请稍后重试","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},_={account_email_invalid_address:"无效的电子邮件地址",account_email_invalid_domain:"无效的电子邮件域",account_email_unknown_status:"未知的邮件发送状态",account_email_unavailable_address:"邮件地址不可用",account_email_suppressed_address:"邮件地址被禁用",account_loading:"加载中...",account_is_required:"不能为空",account_sign_in_your_account:"登录账户",account_username:"用户名",account_username_email_phone:"手机号码或电子邮箱",account_password:"密码",account_new_password:"新密码",account_re_enter_password:"再次输入密码",account_password_not_equal:"输入的两个密码不同。",account_new_password_same:"新密码与原密码相同",account_forgot_your_password:"忘记密码了?",account_reset_password:"重置密码",account_sign_in:"登录",account_signed_in:"登录成功",account_sign_up:"注册",account_find_your_account:"找寻你的账户",account_enter_your_username:"输入你的手机号码或电子邮箱",account_search:"查找",account_email_sent_tip:"一封附带验证码的电子邮件已发送到您的邮箱:",account_phone_sent_tip:"一封附带验证码的短信已发送到您的手机:",account_email_phone_sent_tip:"附带验证码的电子邮件和手机短信已分别发送到您的邮箱和手机:",account_software_token_tip:"您的账户已启用安全令牌。要完成登录,请打开或查看您的设备并输入验证码",account_reset_your_password:"重置账户密码",account_verification_code:"验证码",account_resend_code:"重发验证码",account_code_has_been_resent:"验证码已发送",account_password_has_been_reset:"密码已重置",account_submit:"提交",account_sign_up_your_account:"注册账户",account_fill_required_fields:"填写下方的必填项。",account_fill_optional_fields:"填写下方的选填项。",account_email:"邮箱",account_invitation:"邀请",account_invitation_code:"邀请码",account_i_accept:"我接受",account_license_terms:"服务许可条款",account_next:"下一步",account_you_need_to_accept_license_terms:"请先勾选我接受服务许可条款",account_verify_fill_optional_fields:"验证身份与可选项",account_nickname:"昵称",account_gender:"性别",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手机号码",account_locale:"地区",account_tip_verified:"验证通过,正在登陆...",account_verified:"已验证",account_unverified:"未验证",account_signed_up:"注册成功",account_verify_your_identity:"验证您的身份",account_finish:"完成",account_signed_out:"注销成功",account_change_password:"修改密码",account_change_email:"修改电子邮箱",account_change_phone_number:"修改手机号码",account_sign_out:"注销",account_current_password:"当前密码",account_re_enter_new_password:"再次输入新密码",account_personal_information:"个人信息",account_edit:"编辑",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_not_set:"未设置",account_change:"修改",account_setting:"设置",account_copy_code:"复制代码",account_account_setting:"账户设置",account_task_page:"积分任务",account_setting_caption:"管理你的账户信息",account_security:"安全",account_want_to_join:"登录更精彩",account_sign_in_now:"点击登录",account_changed:"已更改",account_clipboard_with_invitation_code:"已复制邀请码",account_clipboard_with_code:"已复制代码",account_invitation_code_dialog_tip:"你将通过短信或电子邮件的方式发送邀请码:",account_available:"可用",account_invited:"已邀请",account_used:"已使用",account_invitation_code_sent:"邀请码已发送",account_invitation_channel_required:"至少需要填写一项邀请途径",account_no_verification_code:"无法收到验证码?",account_no_phone_number:"没有手机号码?",account_sign_up_by_email:"通过邮箱注册",account_no_email:"没有邮箱?",account_sign_up_by_phone_number:"通过手机注册",account_no_totp:"没有安全令牌?",account_tip_no_totp:"若沒有安全令牌請先設定安全令牌",account_setup_totp:"设置安全令牌",account_contact_information:"联系方式",account_delete_account:"删除账户",account_deleted:"已删除",account_can_not_mfa:"无法进行二级验证?",account_set_mfa_type:"更改二级验证",account_disable_mfa:"关闭二级验证",account_disabled_mfa:"已关闭二级验证",account_sms_mfa:"手机短信验证",account_totp_mfa:"安全令牌验证",account_totp:"安全令牌",account_not_recommend:"不推荐",account_oauth_sign_in_with:"通过 {provider} 登录",account_sign_in_failed:"登录失败",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通过手机短信或安全令牌为账户设置二级验证",account_error_can_not_enable_mfa:"您必须同时绑定邮箱和手机号码,才可以启用二级验证",account_tip_can_not_enable_sms_mfa:"您必须同时绑定邮箱和手机号码,才可以启用短信验证",account_tip_can_not_enable_totp_mfa:"您必须同时绑定邮箱和手机号码,才可以启用安全令牌",account_tip_setup_totp:"使用Authenticator等应用,扫描下方的二维码或手动复制代码来添加安全令牌",account_tip_verify_totp:"验证您的安全令牌",account_link_your_social_account:"绑定您的社交账号",account_unlink_your_social_account:"解除社交账号绑定",account_tip_confirm_link:"确定将当前账号与您的 {provider} 账号进行绑定吗?",account_tip_confirm_unlink:"确定解除您已绑定的 {provider} 账号吗?",account_tip_linking:"正在绑定...",account_tip_unlinking:"解除绑定中...",account_linked:"已绑定",account_unlinked:"已解除绑定",account_error_can_not_link_to_the_linked_account:"当前社交帐号已与其他账号绑定",account_error_can_not_link_to_the_mismatched_email:"当前账号与社交帐号邮箱地址不一致",account_error_can_not_link_before_email_verified:"未绑定邮箱的账户无法绑定社交帐户",account_tip_confirm_verify_email_phone:"是否向当前账户的email和手机号码发送验证码以验证您的身份?",account_tip_confirm_verify_phone:"是否向当前手机号码发送验证码以验证您的身份?",account_error_1_message_60_seconds:"每60秒只能发送一条短信或邮件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手机或电子邮件24小时内只能发送10条信息",account_error_network:"网络出现异常,请稍后重试","Network Error":"网络出现异常,请稍后重试",account_error_user_not_exist:"用户不存在",account_error_incorrect_username_or_password:"用户名或密码错误",account_error_incorrect_original_password:"原密码错误",account_error_incorrect_password:"密码错误",account_error_username_not_found:"找不到该用户名的账户",account_error_can_not_reset_for_no_verified:"账户未进行邮箱验证,无法重置密码",account_error_invalid_verification_code:"验证码错误,请重试",account_error_expired_verification_code:"验证码过期,请重试",account_error_password_not_long_enough:"密码长度不能小于8位",account_error_attempt_limit_exceeded:"尝试次数过多,请稍后重试",account_error_password_attempts_exceeded:"超过密码尝试次数",account_error_invalid_phone_number_format:"手机号码格式不正确",account_error_no_cell_phone_prefix:"请选择手机号前缀",account_error_username_already_exists:"该用户名已存在",account_error_you_need_to_accept_license_terms:"请勾选我接受服务许可条款",account_error_inactive_code:"该邀请码已失效",account_error_non_existent_code:"该邀请码不存在",account_error_unexpected:"未知错误",account_error_can_not_change_email_before_phone_bound:"绑定手机号码前无法更改邮箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帐户绑定前无法更改邮箱",account_error_can_not_change_phone_before_email_bound:"绑定邮箱前无法更改手机号码",account_error_can_not_change_email_phone_with_mfa_enabled:"关闭二级验证前无法更改邮箱或手机号码",account_error_not_supported_yet:"暂不支持",account_error_same_email:"新的邮箱不能与原邮箱相同",account_error_same_phone:"新手机号码不能与原手机号码相同",account_error_email_not_exists:"该邮箱不存在",account_error_email_already_exists:"该邮箱已有账户绑定",account_error_phone_already_exists:"该手机号码已有账户绑定",account_error_mfa_token_mismatch:"安全令牌错误",account_error_recaptcha_not_loaded:"网络出现异常,请重连网络后重启应用重试",account_error_recaptcha_validation_failed:"未通过ReCaptcha验证,请重连网络后重启应用重试",account_error_sign_in_in_progress:"等待登录尝试已在进行中",account_field_range:"字符个数应在{0}-{1}的范围中",account_field_only_alphanumeric:"仅支持字母和数字",account_field_only_alphanumeric_and_symbol:"仅支持字母数字和符号",account_field_only_chinese_alphanumeric_space_underline:"仅支持中英文数字空格下划线",account_field_prefix_without_number_space:"首个字符不能为数字或空格",account_field_suffix_without_space:"不能以空格结尾",account_field_without_repeat_space:"不能连续使用多个空格",account_field_can_not_only_alphanumeric:"不可仅为字母或数字",account_field_must_have_number_characters:"必须包含数字",account_field_verification_code:"验证码必须是六位数数字",account_field_invitation_code:"邀请码必须是字母和数字",account_field_phone_number:"手机号码格式不正确",account_invalid_email_format:"邮箱格式不正确",account_sign_out_confirm:"是否确认注销? 注销后将停止所有任务",account_sign_out_anyway:"仍要注销",account_signing_out:"正在注销...",account_request_save_settings:"设置未保存。在注销前请先保存修改。",invalid_password_format:"密码格式错误",invalid_password_format_same:"新密码与原密码相同",error_password:"密码错误",keychain_setting:"密钥管理",setting_description:"云端储存:将密钥数据保存到云端。\n修改密码:修改媒体库密钥的密码。\n助记词:一种生成和恢复密钥的替代方法。\n导入本地密钥:将本地保存的密钥导入媒体库。\n导出密钥:将当前媒体库数据保存到本地或云端。\n备份密钥到云端:将当前媒体库数据更新到云端进行备份。",refresh_status:"更新状态",confirm_import_key:"确认导入密钥",confirm_update_cloud_key:"你在云端已有密钥,更新密钥将覆盖原有的密钥,确认更新存储在云端的密钥吗",export_key_with_cloud:"输入您所设置的独立密码导出存储在云端的媒体库密钥,并通过解锁密码锁定密钥文件",store_cloud_key_prompt_password:"输入独立密码以存储媒体库密钥到云端",update_cloud_key_prompt_password:"设置独立密码以加密媒体库密钥并更新到云端",enable_cloud_storage_prompt_password:"为存储在云端的密钥设置密码,通过该密码可以从云上取回密钥",input_unlock_password:"设置解锁密码",export_local_prompt_password:"请设置一个解锁密码,该密码用于加密您的密钥文件。我们不会保存此密码,因此若您丢失该密码,密钥文件将无法解锁",require_unlock_password:"该密钥文件已被锁定,请输入解锁密码",require_independent_password:"输入独立密码以获取存储在云端的密钥",import_local_prompt_password:"该密钥文件已被锁定,请输入解锁密码",select_encrypt_mode:"选择加密模式",input_independent_password:"输入独立密码",update_cloud_key:"更新存储在云端的密钥",backup_to_cloud:"将媒体库密钥备份到云端",save_local:"将媒体库密钥保存为本地加密文件",create_new_key:"创建新的媒体库密钥",creating_lib_key:"正在创建媒体库密钥...",loading_lib_key:"正在载入媒体库密钥...",failed_to_create_lib_key:"创建媒体库密钥失败",failed_to_load_lib_key:"载入媒体库密钥失败",import_local_key:"导入本地密钥",import_lib_key_from_local:"从本地导入媒体库密钥",import_from_cloud:"从云端导入媒体库密钥",create_or_import_key:"创建或导入媒体库密钥",create_or_import_key_desc:"媒体库密钥用于与去中心化数据库同步内容。",store_your_lib_key:"存储你的媒体库密钥",export_cloud_key:"导出云端密钥",export_current_key:"导出当前密钥",change_password:"修改密码",enable_cloud_storage:"启用云端存储",disable_cloud_storage:"关闭云端存储",disable_cloud_storage_desc:"关闭云端存储将移除保存在云端的密钥,请确保已将密钥保存在本地",sync_at:"同步于:{time}",keychain_sync_status:"密钥同步状态",cloud_storage_enabled:"使用 {storage} 同步密钥",cloud_storage_disabled:"未启用云端存储",saved_locally:"已保存于本地",export_key:"导出密钥文件",cloud_independent_password:"云端独立密码",key_file_unlock_password:"密钥文件解锁密码",re_enter_unlock_password:"再次输入解锁密码",independent_password_not_enabled:"当前密码为 Alphabiz 账户密码(未设置独立密码)",use_cognito_hash:"使用 Alphabiz 账户密码",use_independent_password:"使用独立密码",keychain_lib:"媒体库密钥",loading_keychain_state:"加载密钥中...",backing_up:"备份中...",backup_current_key:"备份当前密钥到云端",cloud_lib_key_not_existed:"云端媒体库密钥不存在",open_keychain_file:"打开密钥文件",confirm_open_abk:"是否打开ABK文件",use_the_key:"使用该密钥",backup_the_key:"备份该密钥到云端",keychain_data_does_not_exist:"密钥数据不存在","timeout of 0ms exceeded":"网络出现异常,请稍后重试",XhrError:"网络出现异常,请稍后重试"},p={add_subtitles:"添加字幕",open_file:"打开文件...",advanced_options:"高级选项",title:"标题",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默认视频播放器未设置",this_is_an_audio_file:"这是一个音频文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任务被暂停或删除,流媒体播放被终止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超时,请检查任务",autoplay_hint:"自动播放功能可能受浏览器限制,若未开始播放,请手动点击播放器以播放",remove_playing_confirm:"{0} 正在播放中,删除任务将停止播放。是否仍要删除?",subtitle:"字幕",setting:"设置",loading:"加载中",unknown_media:"未知媒体",settings_button_visible:"按钮显示",settings_setting:"设置",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"画中画",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常规",settings_italic:"斜体",settings_lighter:"纤细",settings_bolder:"粗体",settings_small:"较小",settings_large:"较大"},m=a("8097");const h=r.a.displayName;var g={lib_index:"主页",lib_edit:"编辑",lib_publish:"发布",lib_explore:"探索",lib_following:"关注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"频道",lib_submit:"提交",lib_from_network:"使用去中心化数据库,所有数据来源于网络",welcome_to_lib:`欢迎使用 ${h} 媒体库`,register_or_login:"注册/登陆",lib_recommend:"推荐",lib_recommend_desc:`欢迎使用 ${h} 媒体库!本媒体库使用去中心化的数据库,所有数据来源于网络。在开始前,请先关注一些推荐频道。`,follow_any_channel_to_continue:"关注任意频道以继续",follow_channels_and_continue:"关注 {0} 个频道并继续",show_more_for_me:"为我展示更多",no_more_recommend:"没有更多推荐",key:"密钥",create_key:"生成密钥",save_key:"保存密钥",save_key_file:"是否将密钥保存为文件?",import_key:"导入密钥",import:"导入",invalid_key:"密钥格式错误",back_to_top:"回到顶部",search_for_channel:"搜索频道 ID",search_channel_no_result:"找不到 ID 为 {0} 的频道",please_input_channel_id:"请输入频道 ID",welcome_help_text:"\n 这是一个去中心化的媒体库,您需要为此创建一个专用账户,\n 我们将自动为您生成一套密钥。如果您已经拥有密钥了,\n 也可以在此导入密钥".replace(/\s/g,""),welcome_key_text:"\n 当您成功创建账号后,请点击右下角的【保存密钥】按钮导出\n 您的密钥。一旦您丢失密钥,对应的账号将无法找回。".replace(/\s/g,""),redirect_to_recommend:"您似乎没有关注任何频道,即将前往探索页。",channel:"频道",follow:"关注",unfollow:"取消关注",following:"关注中",share:"分享",block:"屏蔽",unblock:"取消屏蔽",blocked:"已屏蔽",block_channel:"屏蔽此频道",block_channel_confirm:"屏蔽频道后,频道的所有内容将从时间线上移除。您可以在账户设置中管理屏蔽列表。",block_creator:"屏蔽此频道的创作者",unblock_creator:"取消屏蔽此频道的创作者",block_creator_confirm:"屏蔽创作者后,该创作者的所有频道将从时间线上移除。您可以在账户设置中管理屏蔽列表",share_url_copied:"分享链接已复制至剪贴板",unfollow_confirm:"是否取消关注?此频道的所有推文将从你的时间线上移除。",follow_failed_hint:"操作仍在后台进行中,请耐心等待。如长时间未完成修改请尝试重启应用。",follow_time:"关注时间",update_time:"更新时间",search:"搜索",type:"类型",added:"已添加",click_to_task:"点击前往对应任务",lib_already_added:"您已添加此视频",description:"描述",poster:"海报",channel_poster:"频道海报",preview:"预览",creator:"创作者",creator_detail:"创作者详情",loading_creator:"正在加载创作者信息",wait_for_creator_loaded:"请等待创作者信息加载完成。",follower:"关注者",followers:"关注者",follower_list:"关注者列表",user:"用户",channel_title:"频道标题",channel_id:"频道 ID",post_title:"推文标题",post_id:"推文 ID",import_data_from_excel:"从 Excel 导入数据",set_excel_keys:"设置excel键",excel_import_succeded:"Excel 导入成功",excel_import_success_msg:"可添加 {0} 条新项目, {1} 条信息不完整及 {2} 条重复项已忽略",cannot_find_channel:"找不到指定频道",cannot_find_posts:"找不到指定视频",add_channel:"添加频道",add_post:"添加推文",edit_channel:"编辑频道",channel_setting:"频道设置",edit_post:"编辑推文",edit_posts:"编辑推文",channel_detail:"频道详情",remove:"移除",remove_channel:"移除频道",remove_channel_confirm:"是否确认移除频道?此操作不可恢复。",remove_post:"移除推文",remove_post_confirm:"是否确认移除推文?此操作不可恢复",preview_mode:"预览模式",preview_mode_desc:"这是频道的预览模式,所有分级的影片均为可见状态。",edit_user_profile:"编辑用户资料",name:"昵称",avatar:"头像",no_following:"没有已关注的频道。点击前往",no_recommend:"没有可推荐的频道。点击前往",first_recomment_msg:"如果您是初次使用,加载时间可能较长",invalid_image:"图片异常",image_not_reachable:"此图片URL不可用",channel_not_found:"找不到频道",cannot_get_channel_info:"无法获取指定的频道信息。该频道可能已被创作者删除而不再可见。",validate_error:"验证错误",validate_user_name_no_space:"用户名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"用户名应为 {0}-{1} 字符",validate_user_desc_length:"用户描述不可多于 {0} 字符",validate_user_avatar_url:"用户头像应为链接且不多于2048字符",validate_channel_title_length:"频道标题应为1-100字符",validate_channel_desc_length:"频道描述应为10-300字符",validate_channel_image_url:"频道预览图应为链接且不多于2048字符",validate_post_title_length:"推文标题应为1-100字符",validate_post_desc_length:"推文描述应为10-300字符",validate_post_image_url:"海报应为链接且不多于2048字符",validate_post_url:`${h} 链接格式错误`,validate_post_url_length:`${h} 链接不可多于2048字符`,film_rate:"影片分级",set_film_rate:"设置影片分级",select_a_rate_before_enter:"您需要设置一个影片分级才可进入媒体库。",library_available_rate:"媒体库可用影片分级",rate_g:"G(大众级)",rate_g_desc:"所有年龄皆可观赏\n此类影片不含或仅含少量会让家长在让儿童观赏时感到被冒犯的内容,无需家长陪同。",rate_pg:"PG(建议家长指导)",rate_pg_desc:"一些内容可能不适合儿童观看\n此类影片包含部分家长可能认为不适合儿童的内容,因此建议家长可同时进行指导。",rate_pg_13:"PG-13(家长特别留意)",rate_pg_13_desc:"一些内容可能不适合13岁以下儿童观看\n此类影片有部分内容对13岁以下儿童不适宜,需要有父母陪同观看。此类影片动作暴力适当,含有少量血腥场面及不雅用语,但也包含可能令人情绪不安的情节。",rate_r:"R(限制级)",rate_r_desc:"未满十七岁人士必须由家长或成年监护人陪同\n此类影片中常有大量血腥暴力、惊悚恐怖、裸露性爱或吸毒场景,且有大量性暗示及不雅用语/ 冒犯性言论等,17岁以下人士必须由父母或者监护陪伴才能观看。",rate_nc_17:"NC-17(只准成人观看)",rate_nc_17_desc:"17岁或以下人士不得观赏\n此类影片其中常有清楚的性爱场面,大量的吸毒或暴力镜头以及脏话等,因此仅适合成人观赏。",set_as_private:"设为私有",hide_in_explore:"在浏览页隐藏此频道",hidden:"已隐藏",select_a_rate:"请选择一个影片分级",select_from_tasks:"从上传任务中选择",import_from_magnet:`从${Object(m["a"])()?"链接":"磁力链接(magnet:?...)"}导入`,input_magnet_url:"输入链接",task_title:"任务标题",set_title:"设为标题",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"从本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"导入/导出收藏",export_local_favorites:"导出收藏文件作为备份",import_favorites_file:"导入备份的收藏",not_a_favorite_file:"此文件并非收藏备份",connection_status:"连接状态",gun_server_list:"缓存节点",custom_nodes:"自定义缓存节点",custom_nodes_hint:"缓存节点将在重启软件后应用",wait_for_reboot:"即将重启软件...({seconds}s)",reboot_now:"立即重启",reboot_later:"稍后重启",peer_list:"节点列表",server:"节点 URL",peer:"节点",peer_id:"节点 ID",connection:"连接",data_source:"数据源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已获取全部推文",placeholder_channel_title:"频道名称",placeholder_channel_desc:"关于此频道的描述",placeholder_post_title:"电影名称 (年份)",placeholder_post_desc:"关于此电影的描述",private_channel:"私有频道",creator_blocked:"已屏蔽创作者",go_to_library:"前往媒体库?",go_to_library_channel_msg:"是否前往媒体库频道 {0}?",magnet_does_not_have_name:"此链接不包含任务名,请输入推文标题后重试。",no_available_post:"无可见推文",following_channel_no_post:"已关注的频道中不含可见的推文。此问题可能由网络错误引起。如果您已关注带有推文的频道,这些推文将在稍后加载完成。",share_to_library:"分享到媒体库",quick_start:"快速开始",quick_start_desc:"选择一个任务或文件快速创建推文",select_file:"选择文件...",select_folder:"选择文件夹...",post_options:"推文选项",channel_options:"频道选项",create_new_channel:"创建新频道",use_existed_channel:"使用已存在的频道",select_existed_channel:"选择一个频道",uploaded_by:"{title} (由 {name} 上传)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在创建新频道...",created_new_channel:"新频道已创建",creating_new_post:"正在创建新推文...",created_new_post:"新推文已创建",create_new_post:"创建推文",quick_start_timeout:"{0}超时。此问题可能由网络错误引起。请稍后再试。",file_too_large:"文件过大",file_too_large_msg:"此文件的大小超过了 4GB ({size}),上传此文件可能需要较长的准备时间,是否仍要上传?",resolving_folder_files:"正在解析文件夹内容...",folder_too_large:"文件夹过大",folder_too_large_msg:"文件夹中的文件大小超过 4GB ({size} 总大小),上传此文件夹可能需要较长的准备时间,是否仍要上传?",creating_new_task:"正在创建新任务...",cannot_create_task:"创建任务异常",cannot_create_task_msg:"创建任务时产生了未知错误。任务可能已被创建,请查看上传列表以确定上传状态。",cannot_get_task_name:"无法获取任务名,请输入推文标题后重试",remove_old_task:"删除旧任务",remove_old_task_desc:"Web 模式仅允许创建一个任务,是否删除旧任务?",subtitle_list:"字幕列表",optional:"可选",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下载链接",maximumSubtitleNum_limit:"字幕数量已达到最大",cannot_add_subtitle:"添加字幕失败",cannot_add_subtitle_msg:"没有选择字幕语言或下载链接无效。",support_subtitle_type:"仅支持srt,vtt格式的字幕。",recommend_opensubtitles:"建议使用www.opensubtitles.org的字幕下载链接或id。",take_down:"下架",serious_violation:"严重违规",copyright_disputes:"版权争议",adults_only:"成人内容",takedown_reason:"下架理由",takedown_mode:"下架模式",admins:"管理员",takedown_user:"下架此创作者",takedown_channel:"下架此频道",takedown_post:"下架此推文",select_takedown_reason:"选择下架理由",takedown_invalid_reason:"下架理由错误",takedown_invalid_user_id:"用户ID错误。ID应为87位字符",takedown_invalid_channel_id:"频道ID错误。ID应为20位字符",takedown_invalid_post_id:"推文ID错误。ID应为20位字符",takedown_management:"下架管理",users:"用户",channels:"频道",posts:"推文",you:"你",preset:"预设",admin:"管理员",committee:"委员会",about_takedown_mode:"模式说明:\n预设:在github添加,所有内容都会移除。\n管理员:任一管理员投票后即会移除。\n委员会:超过半数管理员投票后才会移除。",cannot_edit_preset:"无法编辑此行,因为它是预设内容",cannot_edit_not_vote:"无法编辑此行,因为你未为其投票",remove_vote:"移除你的下架投票",post_preload_failed:"无法预载此推文。下载链接可能已过期,因此无法立即播放。",about_cache_node:"关于缓存节点",edit_cache_node:"编辑缓存节点",create_cache_node:"创建缓存节点",about_cache_node_desc:`${h} 使用 gun 服务器作为缓存节点,您可以在进阶设置中编辑自定义节点。`,learn_how_to_deploy_gun:"查看如何建立自定义节点",library_setting:"媒体库设置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用户",blocked_channels:"已屏蔽的频道",unblock_user:"解除用户屏蔽",unblock_channel:"解除频道屏蔽",no_blocked_user:"没有已屏蔽的用户",no_blocked_channel:"没有已屏蔽的频道",field_required:"{0} 不能为空"};const f=r.a.displayName,b={unsupported_in_browser:"此功能暂不支持浏览器模式",client:"客户端",warning:"警告",enable:"启用",disable:"禁用",auto:"自动",encrypt_connection:"加密连接",encrypted_connection:"已加密的连接",non_encrypted_connection:"未加密的连接",connected_wires_not_disconnect:"已存在的连接不会被断开",audio:"音频",video:"视频",image:"图片",subtitle:"字幕",zip:"压缩文件",text:"文本",unknown:"未知",add:"添加",undo:"撤销",backup:"备份",not_default_app:`${f}不是你的默认应用. 是否设置默认应用?`,dont_show_again:"不再提示",go_to_settings:"前往设置",about_alphabiz:`关于 ${f}`,update_channel:"更新通道",last_check_at:"上次检查更新时间",check_for_update:"检查更新",checking_for_update:"检查更新中...",no_update_available:"没有可用更新",update_available:"更新可用",update_now:"现在更新",update_later:"以后更新",click_to_update:"点击[现在更新]按钮以开始下载更新",update_failed:"更新失败",update_failed_message:"在更新时遇到了一个错误: ",check_shasum_failed:"安装包完整性检查失败",downloading_update:"更新下载中...",ready_to_update:"准备更新",restart_to_update:`更新下载已完成. ${f} 将在数秒后退出以安装更新`,already_latest:"当前版本({0})已是最新",update_timeout:"更新超时",no_available_release:"没有可用的版本",no_available_installer:"没有可用的安装包",feedback:"反馈",select_a_type:"选择一个类型",category:"分类",select_a_category:"选择一个分类",title:"标题",require_title:"请提供标题",describe_your_problem:"描述您遇到的问题",report_a_bug:"报告一个错误(bug)",request_a_new_feature:"请求一个新功能",download_or_upload:"下载/上传",others:"其他",submit_with_system_info:"提交时附带系统信息",submit_feedback:"提交反馈",tweet_us:"发送Twitter",tweet_too_long:"Tweet过长",delete_characters:"请删除{0}个字符",rest_characters:"还能输入{0}个字符",update_alphabiz:`更新 ${f}`,current_version:"当前版本",cancel_update:"取消更新",slow_download_speed:"下载过于缓慢",slow_download_speed_caption:"当前更新包下载过于缓慢,请检查网络状态",update_canceled:"更新已取消",current_version_release_time:"当前版本发布时间",expired_app:`${f} 过期`,version_out_of_date:"版本过旧",have_to_update:`${f} 版本过旧,部分接口或协议已失效。您需要升级 ${f} 才可继续使用。`,exit_alphabiz:`退出 ${f}`,exit_and_update:"退出并应用更新",new_version_hint:"新版本可用",no_new_version:"没有可用的新版本",current_is_latest:"当前版本已是最新版",click_to_check_update:"点击 [检查更新] 按钮以检查更新",download_latest_version_from_website:"请前往官网下载最新版本",to_the_website:"前往官网",network_diagnotic:"网络诊断",diagnotic:"诊断",click_to_check:"点击开始检查",click_to_check_again:"点击再次检查",checking:"检查中",online:"在线",offline:"离线",dns_look_up:"域名解析",error:"错误",aws_service:"AWS 服务",network_pings:"网络 Ping",not_found:"未找到",packet_loss:"丢包率",official_site:"官方网站",download_test:"下载测试",connected:"已连接",test_task:"测试任务 ({0})",download_failed:"下载失败",second_spend:"用时 {0} 秒",open_default_player_failed:"打开默认播放器失败",copied_to_clipboard:"已复制到剪贴板",go_to:"前往",region_not_available:"地区不可用",region_not_available_message:"抱歉,此应用在您的地区不可用。本应用将在{0}秒后退出",confirm:"确认",no_available_result:"无可用结果"};var y={...g,...l,...c,...d,..._,...u,...p,...b};const v=r.a.displayName;var w={repeat_add:"The task has been added, Please do not add it again",upload:"Upload",download:"Download",delete:"Delete",delete_task:"Delete task",delete_confirm_message:"Delete this task? This is irrevocable",also_delete_files:"Also delete files",default_delete_files:"Default delete downloaded files after remove task",not_now:"Not now",delete_autoupload_confirm:"This task contains file you put in auto-upload directory. Delete this task will also delete the file.",delete_anyway:"Delete anyway",upload_too_many_files:"Upload too many files",ask_if_unlimit_upload_amount:"The auto-upload directory contains too many files. Do you want to disable the upload amount limitation? *This may cause performance problem",disable_limitation:"Disable limitation",not_length:"Multi file operation is not supported at present, Please cooperate",download_torrent:"Download file",upload_torrent:"Upload file",files:"Files",file:"File",folder:"Folder",start_all:"Start all",pause_all:"Pause all",remove_all:"Remove all",upload_all:"Upload all",clear_history:"Clear history",pause_all_finish_payments:"This will finish all payments.",accelerating:"Accelerating",link_task:"Link task",torrent_task:"File task",ok:"OK",cancel:"Cancel",download_directory_position:"Download directory position",torrent_file:"task file",magnetic_link_incorrect:"The link format is incorrect",delete_fail:"Delete fail",pause:"Pause",paused:"Paused",stop_torrent:"Stop",seed:"Seed",resume:"Resume",downloading:"Downloading",downloaded:"Downloaded",uploading:"Uploading",auto_uploading:"Auto uploading",uploaded:"Uploaded",pending:"Waiting for other tasks",verifying:"Verifying",waiting_for_verify:"Waiting for verify",seeding:"Seeding",completed:"Completed",status:"Status",task_name:"Task name",size:"Size",progress:"Progress",sort:"Sort",ascending:"Ascending",descending:"Descending",file_loading:"Loading file...",loading:"Loading",unknown_status:"Unknown",play_while_downloading:"Play...",upload_or_play:"Upload / Play",play:"Play",ask_if_upload_file:"Upload file?",ask_if_upload_or_play:"Upload or play file?",torrent_error:"Error when adding task:",no_peers:"Retry for more than {0} times and no peer is available",torrent_exists:"Task already exists.",show_origin_torrent:"Get original task file or url",show_directory:"Open directory of this torrent",task_num:"Tasks",total_upload_speed:"Upload speed",total_download_speed:"Download speed",path_missing:"Error: cannot find torrent path",origin_not_found:"Cannot find origin task info.",text_copied:"Magnum url is copied to your clipboard",copy_magnet_uri:`Copy ${Object(m["a"])()?"link":"magnet:?"} URI`,copy_download_uri:"Copy download URI",copy_share_uri:"Copy share URI",uri_copied:"URI is successfully copied to your clipboard",uri_copy_failed:"Failed to copy uri",more:"More...",toggle_list_mode:"Toggle list mode",comment:"comment",operations:"Operations",open_directory:"Open directory",no_downloading_task:"No downloading task",remove_all_downloading_tasks:"Remove all downloading tasks?",remove_all_upload_tasks:"Remove all upload tasks?",remove_autoupload_files:"Remove auto-upload files",remove_all_history:"Remove all history?",remaining:"Remaining",created_time:"Created time",used_time:"Used time",completed_time:"Completed time",yesterday:"Yesterday",before_yesterday:"{empty}",earlier:"Earlier",miss_file:"Some files are missing",delete_miss_file_task:"There are fome files missing in {0}.",common_peer:"Common peer",ab_peer:`${v} peer`,ab_peer_verified:`Verified ${v} peer`,ab_peer_available:`${v} peer(s) available`,alphabiz_accelerating:`${v} accelerating`,income:"Income",income_info:"Income(today/total)",total_income_info:"Income: {0}(today) / {1}(total)",login_to_see_income:"Login to see income statistics",credit_cost:"Credit costs",downloaded_by_payment:"Downloaded by Payments",file_not_found:"Cannot find this file in local",no_task:"No task",no_matched_task:"No matched task",space_not_enough:"Disk space not enough",need_more_space:"Need {0} more space but current disk has {1} free ({2} reserved). Tasks are paused. Library preload is disabled. You can re-enable it in [Settings - Advanced].",seeders:"Seeders",last_update:"Last update",connecting:"Connecting",connected:"Connected",request_timed_out:"Request timed out",connection_failed:"Connection failed",invalid_download_url:"Invalid download URL",download_link:"download link",empty_files:"No files in directory",duplicate_task:"Duplicate task",duplicate_tracker:"Duplicate tracker",this_task_not_ready:"This task is not ready. Pause this task will directly remove it.",some_task_not_ready:"Some tasks are not ready. Pause these tasks will directly remove them.",failed_to_delete_files:"Failed to delete files",failed_to_delete_files_desc:"Failed to delete some files of the task. You may need to delete them manually",unknown_error:"Unknown error: {0}",more_files_are_not_shown:"({0} more files are not shown for performance reason)",no_available_file:"No available file. Please wait for task ready.",service_worker_error:"Cannot load ServiceWorker for playing. Your browser may not support this feature, or the ServiceWorker is not activated. You may need to reload this page and try again.",add_task_first:"You need to add task first.",player_task_time:"Player takes too many seconds preparing for play. There may be something wrong with the task.",web_mode_hint:`The web mode of ${v} only supports WebRTC peers. For best experience, please download ${v} Desktop App.`,web_mode_task_hint:"Click buttons below to add a task. You can only add one task at one time.",save_to_local:"Save to local",save_as_zip:"Save as ZIP",creating_save_file:"Creating save file...",upload_as_one_directory:"Upload as one directory",upload_as_single_files:"Upload as single files",web_mode_upload_single:"You can only upload a single file in web mode",download_success:"Download successfully",download_fail:"Download failed",wait_for_downloaded_to_share:"Please wait for task downloaded before sharing.",download_with_cellular:"Download tasks using cellular",download_with_cellular_desc:"You are using cellular network. Download tasks with cellular may take additional fees by your carrier.",download_with_cellular_confirm:"Still download with cellular"},k={language:"Language",appearance:"Appearance",darkModeSystem:"System",darkModeLight:"Light",darkModeDark:"Dark",basic_setting:"Basic",hideMenu:"Hide App Menu (Windows & Linux Only)",autoHide:"Auto Hide Window",autoStart:"Open at login",restore:"Keep size and position of the window when exit",autoStartUnfinished:"Automatically resume all unfinished tasks",default_download_path:"Default Path",download_directory:"Download Directory",upload_directory:"Upload Directory",enable_auto_upload:"Enable auto upload",unlimit_upload_amount:"Unlimit upload amount",unlimit_upload_warning:"Allow upload large amount of files. This may cause performance problem",start:"Startup",transport_setting:"Transmission",upload_limit:"Upload limit",download_limit:"Download limit",payed_user_share_rate:"Payed user share rate",unlimited:"Unlimited",limit_input_error:"Limit number should be positive",BT_setting:"Task Settings",saveLinkSeed:"Save link as task file",autoDownload:"Automatically download link and content",continuousSeeding:"Keep seeding until stop it manually",seedSharingRate:"Seed Ratio",seedTime:"Seed Time (minutes)",task_manage:"Task Management",maximumDownloadNum:"Maximum active tasks",maximumConnectionsNum:"Maximum connection per server",range_error:"Range should between {0} and {1}",random:"Random",breakpointContinuation:"Continue",automaticSkip:"Automatically show downloading after adding task",afterNotification:"Notification after download is complete",deleteConfirm:"No confirmation is required before deleting task",submit:"Save & Apply",discard:"Discard",reset:"Reset",reset_all_settings:"Reset all settings?",preferences_resetted:"Preferences resetted",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"简体中文",advancedSettings:"Advanced",autoUpdate:"Auto Update",autoCheckUpdate:"Automatically check for update",proxy:"Proxy",useProxyService:"Enable Proxy",trackerService:"Tracker Servers",recommendUse:"Recommended",autoUpdateTrackerServiceList:"Update tracker list every day automatically",manualUpdateTracker:"Manual update",manualUpdateSuccess:"Successfully update tracker servers",manualUpdateFail:"Failed to update from:",listenPort:"Listen Ports",BTlistenPort:"Data Transmission Port",DHTlistenPort:"Distributed Hash Port",protocols:"Compatible Protocols",setDefaultClientForFollowingProtocols:"Set as the default client for the following protocols",magnetUrl:"Magnet",video_file:"Video file",audio_file:"Audio file",security:"Security",impersonateUserAgent:"Mock User-Agent",RPCauthorizationkey:"RPC Secret",viewDocument:"View RPC Secret Manual",developer:"Developer",applicationLogPath:"App log path",downloadSessionPath:"Download session path",resetDownloadSessionRecord:"Reset download session",restoreInitialSettings:"Factory Reset",preferences_set_successfully:"Save preferences successfully!",preferences_set_fail:"Save preferences fail!",change_not_save:"Changes not save",discard_all_changes:"Discard all changes and leave?",stay_in_page:"Stay in page",disk_usage:"Disk usage",pause_if_less_space:"Pause and notify if space is less than (MB)",default_video_player:"Default video player",video_cache_time:"Stream play cache",minutes:"minutes",system_default:"System Default",media_player:"Media Player",library_film_rate:"Available film rate",library_show_explore:"Show [Explore] page",library_setting:"Library setting",library_sync_setting:"Library sync setting",keychain_sync_status:"Keychain sync status",sync_with_aws:"Sync Keychain with Amazon Web Services",backup_to_local:"Backup to local file",enable_sync_with_aws:"Enable sync with AWS",disable_sync_with_aws:"Disable sync with AWS",disable_sync_with_aws_desc:"This will remove saved key in server. Please ensure you have already export your key.",input_independent_password:"Input independent password",change_independent_password:"Change independent password",password_error:"Password error",password_invalid:"Password invalid",key_existed:"Key existed",key_not_found:"Key not found",library_recommend:"Library recommend",show_all_channels:"Show all channels in library recommend page",not_logged_in:"Not logged in",login_to_continue:"Login to continue",mnemonic_code:"Mnemonic code",wordlist:"Wordlist",restore_code:"Restore from code",generate_code:"Generate code",export_mnemonic_code:"Export mnemonic code",import_mnemonic_code:"Import mnemonic code",print:"Print",save_as_txt:"Save as txt",save_as_pdf:"Save as pdf",from_file:"From file",not_valid_mnemonic_code:"This is not a valid mnemonic code",cannot_parse_code_as_key:"Cannot parse this mnemonic code as library key",import_key_hint:"Are you sure to import this key? This will recover your old key in library.",import_key_confirm:"Yes, import it.",library_preload:"Preload tasks from library",show_preload:"Show preload tasks",set_download:"Set download directory",set_download_desc:"For macOS App Store version, the default download directory is in App's sandbox, and will be deleted after app uninstalled. If you want to keep your download files, you need to select a different download directory manually."};const S=r.a.displayName;var C={home:"Home",home_caption:"Download/Upload and Media Files",library:"Library",library_caption:"Explore media resources",player:"Player",player_caption:"Media Player",credits:"Credits",credits_caption:"Check Account Balance",account:"Account",account_caption:"Sign In/Sign Up/Management",settings:"Settings",settings_caption:"Settings for App, Player, Account",development:"Development",development_caption:"Developer Mode for Internal Use",basic:"Basic",basic_caption:"Basic Settings",advanced:"Advanced",advanced_caption:"Advanced Settings",blockchain:"Wallet",blockchain_caption:`${S} Decentralized Wallet`,internal_notice:"Internal Release Notice",release_notes:"Release notes",terms_and_conditions:"Terms and Conditions",license_and_listen_notices:"License and Listen Open Source Notices",close:"Close",success:"Success",fail:"Fail"},x={credits:"Credits",pay:"Pay",pay_with_credit:"Pay for download accelerating. Needs about {0} credit",pay_with_credit_payed:"Accelerating. Still needs about {0} credit",create_payment:"Create Payment",pay_target:"Target",pay_for_torrent:"Pay for {0}",your_subid:"Your subId",your_credits:"Your credits",pay_point_for_data:"Pay {0} point for {1} data",auto_renew:"Enable auto renew",transaction_details:"Transaction Details",transaction_id:"Id",transaction_payer:"Payer",transaction_payee:"Payee",transaction_category:"Category",transaction_changed_amount:"Changed Amount",transaction_meta:"Meta",transaction_status:"Status",transaction_creation_time:"Creation Time",receipt_code:"Receipt Code",transfer_amount:"Transfer Amount",code_the_receipt_code:"Copy the receipt code below to the payer",fill_the_receipt_code:"Transfer by filling in the payment code provided by the payee",income:"Income",expense:"Expense",copied:"Copied",transfer:"Transfer",receive:"Receive",copy:"Copy",withdraw_fund:"Withdraw Fund",category_paydata_payer:"Cost of data",category_paydata_payee:"Income of data",category_transfer:"Transfer",category_bonus:"Bonus",category_recharge:"Recharge",status_pending:"pending",status_completed:"completed",status_finish:"finish",status_failed:"failed",tip_invalid_receiver:"Invalid receiver code",tip_invalid_amount:"Credit amount should be an float in the range 0-1000 (Minimum precision is 0.001)",credit_get_more:"Get more credits",credit_no_data:"No data available",credit_loading:"Loading...",credit_not_enough_amount:"Not enough credits",credit_amount_not_enough:"Not enough credits",credit_payee_not_exist:"Payee does not exist",credit_invalid_amount:"Invalid credit amount",credit_can_not_transfer_to_yourself:"Can not transfer to yourself",credit_latest:"Latest",credit_error_network:"There is a problem with the network, please try again later","payer credit amount is not enough":"Not enough credits","payee does not exist":"Payee does not exist"},$={account_email_invalid_address:"Invalid email address",account_email_invalid_domain:"Invalid email domain",account_email_unknown_status:"Unknown email delivery status",account_email_unavailable_address:"Unavailable email address",account_email_suppressed_address:"Suppressed email address",account_loading:"Loading...",account_is_required:" is required",account_sign_in_your_account:"Sign in",account_username:"Username",account_username_email_phone:"Phone number or email",account_password:"Password",account_new_password:"New password",account_re_enter_password:"Re-enter password",account_password_not_equal:"Two passwords are not equal",account_new_password_same:"The password is the same as the original password",account_forgot_your_password:"Forgot your password? ",account_reset_password:"Reset password",account_sign_in:"Sign in",account_signed_in:"Signed in",account_sign_up:"Sign up",account_find_your_account:"Find your account",account_enter_your_username:"Enter your phone number or email",account_search:"Search",account_email_sent_tip:"An email with a verification code has been sent to your email: ",account_phone_sent_tip:"A SMS with a verification code has been sent to your phone: ",account_email_phone_sent_tip:"Email and SMS with verification code have been sent to your email and phone respectively:",account_software_token_tip:"MFA is enabled for your account. To finish signing in, please turn on or view your device and type the TOTP",account_reset_your_password:"Reset your password",account_verification_code:"Verification code",account_resend_code:"Resend code",account_code_has_been_resent:"Verification code has been resent",account_password_has_been_reset:"Password has been reset",account_submit:"Submit",account_sign_up_your_account:"Sign up your account",account_fill_required_fields:"Fill in the required fields below.",account_fill_optional_fields:"Fill in the optional fields below.",account_email:"Email",account_invitation:"Invitation",account_invitation_code:"Invitation code",account_i_accept:"I accept ",account_license_terms:"the license and terms",account_next:"Next",account_you_need_to_accept_license_terms:"You need to accept the license and terms first.",account_verify_fill_optional_fields:"Verify and fill in optional fields.",account_nickname:"Nickname",account_gender:"Gender",account_male:"Male",account_female:"Female",account_not_say:"Not say",account_birthday:"Birthday",account_phone_number:"Phone number",account_locale:"Locale",account_tip_verified:"Verified, Signing in...",account_verified:"verified",account_unverified:"unverified",account_signed_up:"Signed up",account_verify_your_identity:"Verify your identity",account_finish:"Finish",account_signed_out:"Signed out",account_change_password:"Change password",account_change_email:"Change email",account_change_phone_number:"Change phone number",account_sign_out:"Sign out",account_current_password:"Current password",account_re_enter_new_password:"Re-enter new password",account_personal_information:"Information",account_edit:"edit",account_reset:"reset",account_greeting:"Hello,",account_cancel:"Cancel",account_change:"change",account_not_set:"not set",account_setting:"setting",account_copy_code:"copy the code",account_account_setting:"Account",account_task_page:"Credit task",account_setting_caption:"Change Password / Edit Information",account_security:"Security",account_want_to_join:"Want to Join?",account_sign_in_now:"Sign in",account_changed:"Changed",account_clipboard_with_invitation_code:"Invitation code copied",account_clipboard_with_code:"The Code copied",account_invitation_code_dialog_tip:"You will send your friend an email or text message with an invitation code:",account_available:"available",account_invited:"invited",account_used:"used",account_invitation_code_sent:"Invitation code has been sent",account_invitation_channel_required:"Fill in at least one invitation channel",account_no_verification_code:"Can not receive verification code? ",account_no_phone_number:"No phone number? ",account_sign_up_by_email:"Sign up by email",account_no_email:"No email? ",account_sign_up_by_phone_number:"Sign up by phone number",account_no_totp:"No TOTP? ",account_tip_no_totp:"If there is no TOTP, please setup TOTP first",account_setup_totp:"Setup TOTP",account_contact_information:"Contact information",account_delete_account:"Delete account",account_deleted:"Deleted",account_can_not_mfa:"MFA in trouble? ",account_set_mfa_type:"Config MFA",account_disable_mfa:"Disable MFA",account_disabled_mfa:"Disabled MFA",account_sms_mfa:"SMS MFA",account_totp_mfa:"TOTP MFA",account_totp:"TOTP",account_not_recommend:"Not Recommend",account_oauth_sign_in_with:"Sign in with {provider}",account_sign_in_failed:"Failed to sign in",account_tip_oath_sign_up:"The email corresponding to the current {provider} account: {email} has not yet created an account",account_tip_confirm_delete_account:"Enter the current account password to confirm that you want to delete the current account.(Deleted accounts cannot be restored)",account_tip_config_mfa:"You can choose to use SMS or time-based one-time password (TOTP) as secondary authentication",account_error_can_not_enable_mfa:"You must bind your email address and mobile phone number to enable MFA",account_tip_can_not_enable_sms_mfa:"You must bind your email address and mobile phone number to enable SMS MFA",account_tip_can_not_enable_totp_mfa:"You must bind your email address and mobile phone number to enable TOTP MFA",account_tip_setup_totp:"Use apps such as Authenticator to scan the QR code below or copy the code manually to add a security token",account_tip_verify_totp:"Verify your TOTP",account_link_your_social_account:"Bind your social account",account_unlink_your_social_account:"Unbind social account",account_tip_confirm_link:"Are you sure you want to bind the current account to your {provider} account?",account_tip_confirm_unlink:"Are you sure to cancel your bound {provider} account?",account_tip_linking:"binding...",account_tip_unlinking:"Unbinding...",account_linked:"Bound",account_unlinked:"Unbound",account_error_can_not_link_to_the_linked_account:"The current social account is bound to another account",account_error_can_not_link_to_the_mismatched_email:"The current account and the social account email address are inconsistent",account_error_can_not_link_before_email_verified:"The social account cannot be linked because the current account is not bound to a verified email",account_tip_confirm_verify_email_phone:"Whether to send a verification code to the current account's email and phone number to verify your identity?",account_tip_confirm_verify_phone:"Whether to send a verification code to the current phone number to verify your identity?",account_error_1_message_60_seconds:"Only one SMS or email can be sent every 60 seconds, wait another {delta} seconds",account_error_10_messages_per_day:"Each mobile phone or email can only send 10 messages within 24 hours",account_error_network:"There is a problem with the network, please try again later","Network Error":"There is a problem with the network, please try again later",account_error_user_not_exist:"User does not exist",account_error_incorrect_username_or_password:"Incorrect username or password",account_error_incorrect_original_password:"Incorrect original password",account_error_incorrect_password:"Incorrect password",account_error_username_not_found:"Username not found",account_error_can_not_reset_for_no_verified:"Can not reset password for the unverified account",account_error_invalid_verification_code:"Incorrect verification code, please try again",account_error_expired_verification_code:"Verification code expired, please try again",account_error_password_not_long_enough:"Password is not long enough",account_error_attempt_limit_exceeded:"Attempt limit exceeded, please try after some time.",account_error_password_attempts_exceeded:"Password attempts exceeded.",account_error_invalid_phone_number_format:"Invalid phone number format",account_error_no_cell_phone_prefix:"Please select the prefix for the phone number",account_error_username_already_exists:"The username already exists",account_error_you_need_to_accept_license_terms:"You need to accept the license and terms first",account_error_inactive_code:"The invitation code is not an activated code",account_error_non_existent_code:"The invitation code is non-existent",account_error_unexpected:"Unexpected Error",account_error_can_not_change_email_before_phone_bound:"The email cannot be changed before the phone number is bound",account_error_can_not_change_email_before_unbound_social_account:"The email cannot be changed before unbinding the social account",account_error_can_not_change_phone_before_email_bound:"The phone number cannot be changed before the email is bound",account_error_not_supported_yet:"Not supported yet",account_error_can_not_change_email_phone_with_mfa_enabled:"Cannot change email or mobile phone number before disable MFA",account_error_same_email:"The new email address cannot be the same as the original email address",account_error_same_phone:"The new phone number cannot be the same as the original phone number",account_error_email_not_exists:"Email address does not exist",account_error_email_already_exists:"An account with the given email already exists.",account_error_phone_already_exists:"An account with the given phone number already exists.",account_error_mfa_token_mismatch:"Software Token Code mismatch",account_error_recaptcha_not_loaded:"There is a problem with the network. Please reconnect the network and restart the application to try again.",account_error_recaptcha_validation_failed:"ReCAPTCHA validation failed. Please reconnect the network and restart the application to try again.",account_error_sign_in_in_progress:"Pending sign-in attempt already in progress",account_field_range:"Limit input of {0}-{1} characters",account_field_only_alphanumeric:"Only supports alphanumeric",account_field_only_alphanumeric_and_symbol:"Only supports alphanumeric and symbols",account_field_only_chinese_alphanumeric_space_underline:"Only supports alphanumeric, space, underscore",account_field_prefix_without_number_space:"The first character cannot be a number or a space",account_field_suffix_without_space:"Cannot end with a space",account_field_without_repeat_space:"Cannot use multiple spaces in a row",account_field_can_not_only_alphanumeric:"You can't just use letters or numbers",account_field_must_have_number_characters:"Must have number characters",account_field_verification_code:"Verification code must be six digits",account_field_invitation_code:"Invitation code must be alphanumeric",account_field_phone_number:"Invalid phone number format",account_invalid_email_format:"Invalid email format",account_sign_out_confirm:"Are you sure to sign out? This will stop all tasks.",account_sign_out_anyway:"Sign out anyway",account_signing_out:"Signing out...",account_request_save_settings:"Settings are not saved. You need to save changes before sign out.",invalid_password_format:"Invalid password format",invalid_password_format_same:"The password is the same as the original password",error_password:"Password error",keychain_setting:"Keychain",setting_description:"Cloud storage: Save key data to the cloud.\nChange password: Change the password for the media library key.\nMnemonic: an alternative method for generating and restoring keys.\nImport Local Key: Import the locally saved key into the media library.\nExport Key: Saves the current media library data to the local or cloud.\nBackup key to cloud: Update the current media library data to the cloud for backup.",refresh_status:"Update Status",confirm_import_key:"Confirm import key",confirm_update_cloud_key:"You already have a key in the cloud. Updating the key will overwrite the original key. Are you sure you want to update the key stored in the cloud",export_key_with_cloud:"Enter the independent password you set to export the library key stored in the cloud, and lock the key file by the unlock password",store_cloud_key_prompt_password:"Enter an independent password to store the library key in the cloud",update_cloud_key_prompt_password:"Set an independent password to encrypt the library key then update it to the cloud",enable_cloud_storage_prompt_password:"Set a password for the key stored in the cloud, through which you can retrieve the key from the cloud",input_unlock_password:"Set unlock password",export_local_prompt_password:"Pleasse set an unlock password to encrypt your key file. We will not save this password for you, so if you loss your password, you will be not able to unlock your library key",require_unlock_password:"The key file is locked, please enter the unlock password",require_independent_password:"Enter the independent password to get the key stored in the cloud",import_local_prompt_password:"The key file is locked, please enter the unlock password",select_encrypt_mode:"Select encryption mode",input_independent_password:"Enter independent password",update_cloud_key:"Update the key stored in the cloud",backup_to_cloud:"Backup the library key to the cloud",save_local:"Save the library key as local encrypted file",create_new_key:"Create a new library key",creating_lib_key:"Creating library key...",loading_lib_key:"Loading library key...",failed_to_create_lib_key:"Failed to create library key",failed_to_load_lib_key:"Failed to load library key",import_local_key:"Import key locally",import_lib_key_from_local:"Import a library key Locally",import_from_cloud:"Import the library key from the cloud",create_or_import_key:"Create or import library key",create_or_import_key_desc:"Library key is an independent key used to fetch and publish contents with decentralized database.",store_your_lib_key:"Store your library key",export_cloud_key:"Export Key from Cloud",export_current_key:"Export Current Key",change_password:"Change Password",enable_cloud_storage:"Enable cloud storage",disable_cloud_storage:"Disable cloud storage",disable_cloud_storage_desc:"Disable cloud storage will remove the key saved in the cloud, please ensure the key is saved locally",sync_at:"Sync at: {time}",keychain_sync_status:"Keychain Sync Status",cloud_storage_enabled:"Sync Keychain with {storage}",cloud_storage_disabled:"Cloud storage disabled",saved_locally:"Saved locally",export_key:"Export key file",cloud_independent_password:"Cloud independent password",key_file_unlock_password:"Key file unlock password",re_enter_unlock_password:"Re-enter unlock password",independent_password_not_enabled:"The current password is the Alphabiz account password (no independent password is set)",use_cognito_hash:"Use Alphabiz account password",use_independent_password:"Use independent password",keychain_lib:"library key",loading_keychain_state:"Loading keychain...",backing_up:"Backing up...",backup_current_key:"Backup current key to Cloud",cloud_lib_key_not_existed:"library key does not exist in Cloud",open_keychain_file:"Open Keychain File",confirm_open_abk:"Do you want to open the ABK file",use_the_key:"Use the key",backup_the_key:"Backup the key to the cloud",keychain_data_does_not_exist:"Keychain data does not exist","timeout of 0ms exceeded":"There is a problem with the network, please try again later",XhrError:"There is a problem with the network, please try again later"},T={add_subtitles:"Add Subtitles",open_file:"Open File...",advanced_options:"Advanced options",title:"title",location:"location",subtitle_file:"subtitle file",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"The default video player is not set",this_is_an_audio_file:"This is an audio file",the_added_subtitle_already_exists:"The added subtitle already exists",stop_stream_player:"The streaming media was terminated because the task was paused or deleted",stop_player:"The player was terminated because the file was deleted",playing_timeout_hint:"Wait times out. Please check the task",autoplay_hint:"Autoplay may blocked by your browser. If the player is not playing, try click the screen to continue",remove_playing_confirm:"{0} is still playing, remove it will stop the player. Are you sure to remove it?",subtitle:"Subtitle",setting:"Setting",loading:"Loading",unknown_media:"Unknown Media",settings_button_visible:"Button Visible",settings_setting:"Setting",settings_playback_rate:"Playback Rate",settings_subtitle:"Subtitle",settings_pip:"PiP",settings_fullscreen:"Fullscreen",settings_subtitle_options:"Subtitle Options",settings_normal:"Normal",settings_italic:"Italic",settings_lighter:"Lighter",settings_bolder:"Bolder",settings_small:"Small",settings_large:"Large"};const z=r.a.displayName;var P={lib_index:"Home",lib_edit:"Publish",lib_publish:"Publish",lib_explore:"Explore",lib_following:"Following",lib_favorite:"Local Favorites",lib_local_favorites:"Local Favorites",lib_channel:"Channel",lib_submit:"Submit",lib_from_network:"Using decentralized database from network",welcome_to_lib:`Welcome to ${z} Media Library`,register_or_login:"Register/Login",lib_recommend:"Recommend",lib_recommend_desc:`Welcome to ${z} Library! This library uses decentralized database from network. To start using it, you need to follow some channels.`,follow_any_channel_to_continue:"Follow any channel to continue",follow_channels_and_continue:"Follow {0} channels and continue",show_more_for_me:"Show more for me",no_more_recommend:"No more recommend",key:"Key",create_key:"Create key",save_key:"Save key",save_key_file:"Do you want to save your key as file?",import_key:"Import key",import:"Import",invalid_key:"Invalid key",back_to_top:"Back to top",search_for_channel:"Search for channel ID",search_channel_no_result:"Cannot find channel with ID {0}",please_input_channel_id:"Please input channel ID",welcome_help_text:"\n This is a decentralized media library. You need\n to create an account for this database. We will\n generate a personal key for you automatically.\n If you have already had a key, you can also import\n it here.",welcome_key_text:"\n Once you logged in, please click [SAVE KEY] button\n in the right-bottom corner to save your private key.\n If you loss your key, you may not able to login again.",redirect_to_recommend:"It seems you had not followed any channel. Redirecting to [Explore] page.",channel:"Channel",follow:"Follow",unfollow:"Unfollow",following:"Following",share:"Share",unfollow_confirm:"Are you sure to unfollow this channel? All posts of this channel in your timeline will be removed.",follow_failed_hint:"Operation is still pending in background. If the operation is not applied for a long time, please restart app and try again.",block:"Block",unblock:"Unblock",blocked:"Blocked",block_channel:"Block this channel",block_channel_confirm:"Block channel will remove it from your timeline. You can manage your block list in account setting.",block_creator:"Block the creator of this channel",unblock_creator:"Unblock the creator of this channel",block_creator_confirm:"Block creator will remove all channels created by this creator from your timeline. You can manage your block list in account setting.",share_url_copied:"Share URL is copied to your clipboard",follow_time:"Follow time",update_time:"Update time",search:"Search",type:"Type",added:"Added",click_to_task:"Click to go to task",lib_already_added:"You have already added this video",description:"Description",poster:"Poster",channel_poster:"Channel poster",preview:"Preview",creator:"Creator",creator_detail:"Creator detail",loading_creator:"Loading creator info",wait_for_creator_loaded:"Please wait for creator info loaded.",follower:"Follower",followers:"Followers",follower_list:"Follower list",user:"User",channel_title:"Channel title",channel_id:"Channel ID",post_title:"Post title",post_id:"Post ID",import_data_from_excel:"Import data from excel",set_excel_keys:"Set excel keys",excel_import_succeded:"Excel import succeded",excel_import_success_msg:"{0} rows are ready to add, {1} invalid and {2} duplicated items are ignored",cannot_find_channel:"Cannot find channel",cannot_find_posts:"Cannot find posts",add_channel:"Add channel",add_post:"Add post",edit_channel:"Edit channel",channel_setting:"Channel setting",edit_post:"Edit post",edit_posts:"Edit posts",channel_detail:"Channel detail",remove:"Remove",remove_channel:"Remove channel",remove_channel_confirm:"Are you sure to remove this post? This cannot be recovered.",remove_post:"Remove post",remove_post_confirm:"Are you sure to remove this channel? This cannot be recovered.",preview_mode:"Preview Mode",preview_mode_desc:"This is a preview of your channel. All rates of films are shown here.",edit_user_profile:"Edit user profile",name:"Nickname",avatar:"Avatar",no_following:"No following channels. Click to goto",no_recommend:"No recommend channels. Click to goto",first_recomment_msg:"It may take a while if this is the first time app launched.",invalid_image:"Invalid image",image_not_reachable:"This image url is not reachable.",channel_not_found:"Channel not found",cannot_get_channel_info:"Cannot get channel info. This channel may be removed by its creator and no longer available.",validate_error:"Validate error",validate_user_name_no_space:"User name should not contain spaces",validate_url_no_space:"URL should not contain spaces",validate_user_name_length:"User name should have length between {0} and {1}",validate_user_desc_length:"User description should not be more than {0} characters",validate_user_avatar_url:"User avatar should be url with less than 2048 characters",validate_channel_title_length:"Channel title should have length between 1 and 100",validate_channel_desc_length:"Channel description should have length between 10 and 300",validate_channel_image_url:"Channel preview should be url with less than 2048 characters",validate_post_title_length:"Post title should have length between 1 and 100",validate_post_desc_length:"Post description should have length between 10 and 300",validate_post_image_url:"Poster should be url with less than 2048 characters",validate_post_url:`Invalid ${z} URL`,validate_post_url_length:`${z} URL should not be more than 2048 characters`,film_rate:"Film rate",set_film_rate:"Set film rate",select_a_rate_before_enter:"You need to select a film rate before enter media library.",library_available_rate:"Library available film rate",rate_g:"G – General Audiences",rate_g_desc:"All ages admitted. Nothing that would offend parents for viewing by children.",rate_pg:"PG – Parental Guidance Suggested",rate_pg_desc:'Some material may not be suitable for children. Parents urged to give "parental guidance". May contain some material parents might not like for their young children.',rate_pg_13:"PG-13 – Parents Strongly Cautioned",rate_pg_13_desc:"Some material may be inappropriate for children under 13. Parents are urged to be cautious. Some material may be inappropriate for pre-teenagers.",rate_r:"R – Restricted",rate_r_desc:"Under 17 requires accompanying parent or adult guardian. Contains some adult material. Parents are urged to learn more about the film before taking their young children with them.",rate_nc_17:"NC-17 – Adults Only",rate_nc_17_desc:"No One 17 and Under Admitted. Clearly adult. Children are not admitted.",set_as_private:"Set as private",hide_in_explore:"Hide this channel in explore page",hidden:"Hidden",select_a_rate:"Please select a film rate",select_from_tasks:"Select from tasks",import_from_magnet:`Import from ${Object(m["a"])()?"link":"magnet:?"}...`,input_magnet_url:`Input ${Object(m["a"])()?"link":"magnet:?"} url`,task_title:"Task title",set_title:"Set title",add_to_local_favorites:"Add to local favorites",remove_from_local_favorites:"Remove from local favorites",removed_favorite:"Removed favorite ",import_or_export_favorites:"Import/Export Favorites",export_local_favorites:"Export local favorites as backup",import_favorites_file:"Import favorites file",not_a_favorite_file:"This file is not a favorite backup file",connection_status:"Connection Status",gun_server_list:"Cache Nodes",custom_nodes:"Custom cache nodes",custom_nodes_hint:"Custom cache nodes will be applied after app relaunch",wait_for_reboot:"Waiting for reboot...({seconds}s)",reboot_now:"Reboot now",reboot_later:"Reboot later",peer_list:"Direct Nodes",server:"Node URL",peer:"Peer",peer_id:"Node ID",connection:"Connection",data_source:"Data Source",sync:"Sync",syncing:"Syncing",sync_completed:"Sync completed",got_all_post:"You have already got all posts",placeholder_channel_title:"Your Channel Name",placeholder_channel_desc:"Description about this channel",placeholder_post_title:"Movie Name (Year)",placeholder_post_desc:"Description about this movie",private_channel:"Private channel",creator_blocked:"Creator blocked",go_to_library:"Go to library?",go_to_library_channel_msg:"Do you want to go to the library channel {0}?",magnet_does_not_have_name:`This ${Object(m["a"])()?"link":"magnet:?"} url does not have a name, you need to add a post title first.`,no_available_post:"No available post",following_channel_no_post:"All your following channels do not have available post. This may caused by network error. If you have already followed some channels, the posts may be loaded later.",share_to_library:"Share to library",quick_start:"Quick start",quick_start_desc:"Start creating a post with a task or file",select_file:"Select file...",select_folder:"Select folder...",post_options:"Post options",channel_options:"Channel options",create_new_channel:"Create new channel",use_existed_channel:"Use existed channel",select_existed_channel:"Select existed channel",uploaded_by:"{title} uploaded by {name}",created_by:"{title} created by {name}",creating_new_channel:"Creating new channel...",created_new_channel:"New channel created",creating_new_post:"Creating new post...",created_new_post:"New post created",create_new_post:"Create new post",quick_start_timeout:"{0} timeout. This may be caused by network error. Please try again later.",file_too_large:"File too large",file_too_large_msg:"This file is larger than 4GB ({size}) and may take a long time preparing task. Are you sure to continue?",resolving_folder_files:"Resolving folder files...",folder_too_large:"Folder too large",folder_too_large_msg:"The files in this folder are larger than 4GB ({size} total) and may take a long time preparing task. Are you sure to upload?",creating_new_task:"Creating new task...",cannot_create_task:"Cannot create task",cannot_create_task_msg:"This may cause by some error. If the task is created correctly, you can check for task list later.",cannot_get_task_name:"Cannot get task name. You need to input one first.",remove_old_task:"Remove old task",remove_old_task_desc:"Web mode can only create one task at once. Do you want to remove old task?",subtitle_list:"Subtitle list",optional:"optional",with_subtitle:"With {language} subtitles",maximumSubtitleNum_limit:"The number of subtitles has reached its maximum",add_subtitle_url:"Add subtitle download link",cannot_add_subtitle:"Failed to add subtitles",cannot_add_subtitle_msg:"Subtitle language not selected or invalid download link.",support_subtitle_type:"Only subtitles in srt and vtt format are supported.",recommend_opensubtitles:"It is recommended to use the subtitle download link or id at www.opensubtitles.org.",take_down:"Take down",serious_violation:"Serious Violation",copyright_disputes:"Copyright Disputes",adults_only:"Adults Only",takedown_reason:"Takedown reason",takedown_mode:"Takedown mode",admins:"Admins",takedown_user:"Takedown this creator",takedown_channel:"Takedown this channel",takedown_post:"Takedown this post",select_takedown_reason:"Select takedown reason",takedown_invalid_reason:"Invalid takedown reason",takedown_invalid_user_id:"Invalid user id. Id should include 87 characters",takedown_invalid_channel_id:"Invalid channel id. ID should include 20 characters",takedown_invalid_post_id:"Invalid post id. ID should include 20 characters",takedown_management:"Take down management",users:"Users",channels:"Channels",posts:"Posts",you:"You",preset:"Preset",admin:"Admin",committee:"Committee",about_takedown_mode:"About takedown mode:\nPreset: Configured in github repository. All of them will be removed from library.\nAdmin: Any one of admins votes for will be removed.\nCommittee: At least half of admins vote for will be removed.",cannot_edit_preset:"You cannot edit this row since it is a preset row",cannot_edit_not_vote:"You cannot edit this row since you have not voted for it",remove_vote:"Remove your vote",post_preload_failed:"Failed to preload this post. The download link may be out-of-date, so this post cannot be played immediately.",about_cache_node:"About cache node",edit_cache_node:"Edit cache node",create_cache_node:"Create cache node",about_cache_node_desc:`${r.a.displayName} uses gun server as cache node. You can edit custom nodes in advance setting`,learn_how_to_deploy_gun:"Learn how to deploy your own gun server",library_setting:"Library setting",block_list_manage:"Block list manage",blocked_users:"Blocked users",blocked_channels:"Blocked channels",unblock_user:"Unblock user",unblock_channel:"Unblock channel",no_blocked_user:"No blocked user",no_blocked_channel:"No blocked channel",field_required:"{0} is required"};const A=r.a.displayName,I={unsupported_in_browser:"Not supported in browser mode yet",client:"Client",warning:"Warning",enable:"Enable",disable:"Disable",auto:"Auto",encrypt_connection:"Encrypt connection",encrypted_connection:"Encrypted connection",non_encrypted_connection:"Non-encrypted connection",connected_wires_not_disconnect:"Connected wires will not be disconnected",audio:"audio",video:"video",image:"image",subtitle:"subtitle",zip:"zip",text:"text",unknown:"unknown",add:"Add",undo:"Undo",backup:"Backup",not_default_app:`${A} is not your default app for torrent and media, do you want to set as default?`,dont_show_again:"Don't show again",go_to_settings:"Go to settings",about_alphabiz:`About ${A}`,last_check_at:"Last check at",update_channel:"Update channel",check_for_update:"Check for update",checking_for_update:"Checking for update...",no_update_available:"No update available",update_available:"Update available",update_now:"Update now",update_later:"Update later",click_to_update:"Click UPDATE NOW button to download and update",update_failed:"Update failed",update_failed_message:"An error occured while updating: ",check_shasum_failed:"Failed to check integrity for installer",downloading_update:"Downloading update...",ready_to_update:"Ready to update",restart_to_update:`Update is downloaded. ${A} will exit to update for a few moment.`,already_latest:"Current version({0}) is already latest",update_timeout:"Update timeout",no_available_release:"No available release",no_available_installer:"No available installer",feedback:"Feedback",select_a_type:"Select a type",category:"Category",select_a_category:"Select a category",title:"Title",require_title:"Title is required",describe_your_problem:"Describe your problem",report_a_bug:"Report a bug",request_a_new_feature:"Request a new feature",download_or_upload:"Download/Upload",others:"Others",submit_with_system_info:"Submit with system info",submit_feedback:"Submit feedback",tweet_us:"Tweet us",tweet_too_long:"Tweet is too long",delete_characters:"Please delete at least {0} character(s)",rest_characters:"You can input {0} more character(s)",update_alphabiz:`Update ${A}`,current_version:"Current version",cancel_update:"Cancel update",slow_download_speed:"Download too slow",slow_download_speed_caption:"The installer download is too slow now. Please check the network status",update_canceled:"Update canceled",current_version_release_time:"Release time of current version",expired_app:`${A} Expired`,version_out_of_date:"Version out of date",have_to_update:`The version of ${A} is out of date. Some protocols or APIs are deprecated. You have to update ${A} before continue.`,exit_alphabiz:`Exit ${A}`,exit_and_update:"Exit and apply update",new_version_hint:"New version is available",no_new_version:"No new version available",current_is_latest:"Current version is already latest",click_to_check_update:"Click [CHECK FOR UPDATE] button to check for update",download_latest_version_from_website:"Please visit the official website to download the latest version",to_the_website:"To the website",network_diagnotic:"Network Diagnotic",diagnotic:"Diagnotic",click_to_check:"Click to check",click_to_check_again:"Click to check again",checking:"Checking",online:"Online",offline:"Offline",dns_look_up:"DNS look up",error:"Error",aws_service:"AWS Service",network_pings:"Network Ping",not_found:"Not Found",packet_loss:"Packet(s) loss",official_site:"Official Site",download_test:"Download Test",connected:"Connected",test_task:"Test Task {0}",download_failed:"Download failed",second_spend:"{0} s spend",open_default_player_failed:"Failed to open the default player",copied_to_clipboard:"Copied to clipboard",go_to:"Go to",region_not_available:"Region not available",region_not_available_message:"Sorry! Your region is not available to use this app. This app will quit after {0} seconds",confirm:"Confirm",no_available_result:"No available result"};var q={...P,...w,...k,...C,...$,...x,...T,...I};const O=r.a.displayName;var E={repeat_add:"任務已添加,請勿重複添加",upload:"上傳",download:"下載",delete:"刪除",delete_task:"刪除任務",delete_confirm_message:"是否刪除該任務? 此操作不可恢復",also_delete_files:"同時刪除文檔",default_delete_files:"刪除任務時默認刪除已下載的文件",not_now:"暫不處理",delete_autoupload_confirm:"此任務檔位於自動上傳資料夾, 刪除任務將同時刪除對應檔",delete_anyway:"仍要刪除",upload_too_many_files:"上傳檔過多",ask_if_unlimit_upload_amount:"自動上傳資料夾包含過多檔. 是否取消上傳數量限制? *此操作可能造成性能問題",disable_limitation:"取消限制",not_length:"暫不支持,多檔操作,請配合",download_torrent:"下載該任務",upload_torrent:"上傳該任務",files:"文件",file:"文件",folder:"資料夾",start_all:"全部開始",pause_all:"全部暫停",remove_all:"全部移除",upload_all:"全部上傳",clear_history:"清除歷史",pause_all_finish_payments:"此操作將完成所有已支付的訂單.",accelerating:"加速中",link_task:"連結任務",torrent_task:"文件任務",ok:"好的",cancel:"取消",download_directory_position:"下載目錄位置",torrent_file:"任務檔",magnetic_link_incorrect:"連結格式不正確",delete_fail:"刪除失敗",pause:"暫停",paused:"已暫停",stop_torrent:"結束任務",seed:"上傳",resume:"繼續",downloading:"下載中",downloaded:"下載完成",uploading:"上傳中",auto_uploading:"自動上傳中",uploaded:"上傳完成",pending:"等待其他任務完成",no_downloading_task:"沒有下載中任務",remove_all_downloading_tasks:"是否移除所有下載中任務?",remove_all_upload_tasks:"是否移除所有上傳任務?",remove_autoupload_files:"移除所有自動上傳任務",remove_all_history:"是否移除歷史下載記錄?",verifying:"驗證文件",waiting_for_verify:"等待驗證文件",seeding:"上傳中",completed:"已完成",status:"狀態",task_name:"任務名",size:"大小",progress:"進度",sort:"排序",ascending:"昇冪",descending:"降冪",file_loading:"檔載入中",loading:"載入中",unknown_status:"未知",play_while_downloading:"邊下邊播",upload_or_play:"上傳 / 播放",play:"播放",ask_if_upload_file:"是否上傳檔?",ask_if_upload_or_play:"是否上傳/播放檔?",torrent_error:"添加任務時遇到錯誤:",no_peers:"多次嘗試後仍未能與Peers建立連接",torrent_exists:"任務已存在",show_origin_torrent:"顯示原始任務檔或連結",show_directory:"打開文件所在位置",task_num:"任務數",total_upload_speed:"上傳速度",total_download_speed:"下載速度",path_missing:"Error: 找不到檔位置",origin_not_found:"獲取任務資訊失敗",text_copied:"連結已複製到剪貼板",copy_magnet_uri:"複製連結位址",copy_download_uri:"複製下載連結",copy_share_uri:"複製社交分享連結",uri_copied:"連結已複製至剪貼板",uri_copy_failed:"複製連結失敗",more:"更多",toggle_list_mode:"切換顯示模式",comment:"評論",operations:"操作",open_directory:"打開所在資料夾",remaining:"剩餘時間",created_time:"創建時間",used_time:"用時",completed_time:"完成時間",yesterday:"昨天",before_yesterday:"前天",earlier:"更早之前",miss_file:"文件缺失",delete_miss_file_task:"{0} 有部分檔缺失.",common_peer:"普通用戶",ab_peer:`${O} 用戶`,ab_peer_verified:`${O} 註冊用戶`,ab_peer_available:`${O} peer 可用`,alphabiz_accelerating:`${O} 加速中`,income:"收入",income_info:"收入(今天/總計)",total_income_info:"收入: {0}(今天) / {1}(總計)",login_to_see_income:"登陸以查看收入統計",credit_cost:"積分支出",downloaded_by_payment:"付費下載量",file_not_found:"無法找到本地檔",no_task:"無任務",no_matched_task:"無法找到匹配的任務",space_not_enough:"磁盤空間不足",need_more_space:"需要 {0} 磁盤空間, 磁盤空間僅剩 {1}, ({2} 為保留空間). 所有任務已暫停. 媒體庫預加載已禁用. 您可以在[設置 - 進階設置]中重新啟用.",seeders:"做種",last_update:"最後更新",connecting:"連接中",connected:"已連接",request_timed_out:"請求超時",connection_failed:"連接失敗",invalid_download_url:"下載鏈接錯誤",download_link:"下载鏈接",empty_files:"目錄中沒有文檔",duplicate_task:"重複任務",duplicate_tracker:"重複 tracker",this_task_not_ready:"此任務尚未就緒,暫停任務將直接刪除該任務",some_task_not_ready:"部分任務尚未就緒,暫停這些任務將直接刪除它們",failed_to_delete_files:"刪除文件失敗",failed_to_delete_files_desc:"無法刪除部分任務文件,可能需要手動刪除",unknown_error:"未知錯誤: {0}",more_files_are_not_shown:"(出於性能考慮,{0} 個文件未顯示",no_available_file:"没有可用的文件,请等待任務就绪",service_worker_error:"無法加載 ServiceWorker。您的瀏覽器可能不支援此特性,或 ServiceWorker 尚未就緒。請刷新頁面後再試",add_task_first:"請先添加任務",player_task_time:"播放器等待時間過長,請檢查任務是否就緒 ",web_mode_hint:`${O} Web 僅支援 WebRTC 種子。下載 ${O} 桌面版以獲得最佳體驗。`,web_mode_task_hint:"點擊下方按鈕創建任務。Web 模式下僅可同時創建一個任務。",save_to_local:"保存到本地",save_as_zip:"保存為 ZIP",creating_save_file:"正在創建文件...",upload_as_one_directory:"作為一個文件夾上傳",upload_as_single_files:"作為單獨的文件上傳",web_mode_upload_single:"Web 模式下只能上傳單個文件",download_success:"下載成功",download_fail:"下載失敗",wait_for_downloaded_to_share:"請等待下載完成後再分享。",download_with_cellular:"使用蜂窩數據下載",download_with_cellular_desc:"您正在使用蜂窩數據,下載時營運商可能會收取額外的費用。",download_with_cellular_confirm:"仍然使用蜂窩數據下載"},D={language:"語言",appearance:"外觀",darkModeSystem:"跟隨系統",darkModeLight:"明亮",darkModeDark:"黑暗",basic_setting:"基礎設置",hideMenu:"隱藏功能表欄(僅支援Windows和Linux)",autoHide:"自動隱藏視窗",start:"啟動",autoStart:"開機自動啟動",restore:"恢復上次退出時視窗的大小和位置",autoStartUnfinished:"自動開始未完成的任務",default_download_path:"預設下載路徑",download_directory:"下載目錄",upload_directory:"上傳目錄",enable_auto_upload:"允許自動上傳",unlimit_upload_amount:"不限制上傳數量",unlimit_upload_warning:"允許同時上傳大量檔案,此選項可能導致性能問題",transport_setting:"傳輸設置",upload_limit:"上傳限速",download_limit:"下載限速",payed_user_share_rate:"付費用戶上傳比例",unlimited:"不限速",limit_input_error:"限速需為正數",BT_setting:"下載任務設置",saveLinkSeed:"保存鏈接元數據為任務檔",autoDownload:"自動開始下載鏈接任務、任務檔",continuousSeeding:"持續上傳,直到手動停止",seedSharingRate:"分享率",seedTime:"上傳時間(分鐘)",task_manage:"任務管理",maximumDownloadNum:"同時下載的最大任務數",maximumConnectionsNum:"每個伺服器最大的連接數",range_error:"範圍需在{0}-{1}之間",random:"隨機",breakpointContinuation:"斷點續傳",automaticSkip:"新建任務後自動跳轉到下載頁面",afterNotification:"下載完成後通知",deleteConfirm:"刪除任務前無需確認",submit:"保存並應用",discard:"放棄",reset:"重置",reset_all_settings:"重置所有設置?",preferences_resetted:"偏好設置已重置",traditional_chinese:"繁體中文",japanese:"日本語",english:"English",chinese:"簡體中文",advancedSettings:"進階設置",autoUpdate:"自動更新",autoCheckUpdate:"自動檢查更新",proxy:"代理",useProxyService:"使用代理伺服器",trackerService:"Tracker伺服器",recommendUse:"推薦使用",autoUpdateTrackerServiceList:"每天自動更新Tracker伺服器列表",manualUpdateTracker:"手動更新",manualUpdateSuccess:"Tracker伺服器更新成功",manualUpdateFail:"更新以下Tracker伺服器失敗:",listenPort:"監聽埠",BTlistenPort:"數據傳輸埠",DHTlistenPort:"分散式哈希通訊埠",protocols:"兼容以下協定",setDefaultClientForFollowingProtocols:"設置本軟體為以下相容協定的預設用戶端",magnetUrl:"磁力連結",video_file:"視頻檔",audio_file:"音訊檔",security:"安全性",impersonateUserAgent:"模擬使用者代理(UA)",RPCauthorizationkey:"RPC授權密鑰",viewDocument:"查看說明文檔",developer:"開發者",applicationLogPath:"應用日誌路徑",downloadSessionPath:"下載會話路徑",resetDownloadSessionRecord:"重置下載會話記錄",restoreInitialSettings:"恢復初始設置",preferences_set_successfully:"偏好設置成功!",preferences_set_fail:"偏好設置失敗!",change_not_save:"修改未保存",discard_all_changes:"是否放棄所有更改?",stay_in_page:"留在此頁",disk_usage:"保留磁盘空間",pause_if_less_space:"剩餘空間小於此值時暫停並提醒(MB)",default_video_player:"默認視頻播放機",video_cache_time:"邊下邊播緩存時間",minutes:"分鐘",system_default:"系統預設",media_player:"媒體播放機",library_film_rate:"可見影片分級",library_show_explore:"顯示[探索]頁面",library_setting:"媒體庫設置",library_sync_setting:"媒體庫同步設置",keychain_sync_status:"金鑰同步狀態",sync_with_aws:"使用 Amazon Web Services 同步密鑰",backup_to_local:"保存為本地檔",enable_sync_with_aws:"啟用 AWS 同步",disable_sync_with_aws:"禁用 AWS 同步",disable_sync_with_aws_desc:"此操作將移除儲存在雲端的金鑰,請確保已將密鑰保存至本地。 ",input_independent_password:"輸入獨立密碼",change_independent_password:"修改獨立密碼",password_error:"密碼錯誤",password_invalid:"密碼格式錯誤",key_existed:"金鑰已存在",key_not_found:"金鑰不存在",library_recommend:"媒體庫推薦",show_all_channels:"在媒體庫推薦頁顯示所有頻道",not_logged_in:"尚未登錄",login_to_continue:"登陸以繼續",mnemonic_code:"助記詞",wordlist:"單詞表",restore_code:"從助記詞恢復",generate_code:"生成助記詞",export_mnemonic_code:"導出助記詞",import_mnemonic_code:"導入助記詞",print:"列印",save_as_txt:"保存為 txt",save_as_pdf:"保存為 pdf",from_file:"從文件導入",not_valid_mnemonic_code:"助記詞格式錯誤",cannot_parse_code_as_key:"無法將此助記詞解析為密鑰",import_key_hint:"是否確認導入此金鑰? 此操作將覆蓋舊的金鑰。 ",import_key_confirm:"確認導入",library_preload:"媒體庫任務預加載",show_preload:"顯示預加載任務",set_download:"設置下載文件夾",set_download_desc:"macOS App Store 版本默認保存位置為應用沙盒,在應用卸載時會一併刪除。為了保留下載文件,您需要手動選擇保存位置。"},j={home:"主頁",home_caption:"下載/上傳媒體文件",library:"媒體庫",library_caption:"探索媒體資源",player:"播放器",player_caption:"視頻播放",credits:"信用積分",credits_caption:"檢查賬戶積分餘額",account:"用戶",account_caption:"個人用戶配置",settings:"設置",settings_caption:"所有設置項",development:"開發者",development_caption:"應用開發者模式",basic:"主要設置",basic_caption:"主要設置項",advanced:"進階設置",advanced_caption:"進階的設置項",blockchain:"錢包",blockchain_caption:"去中心化錢包",internal_notice:"內部版本聲明",release_notes:"發行説明",terms_and_conditions:"條款和章程",license_and_listen_notices:"許可和監聽開源説明",close:"關閉",success:"成功",fail:"失敗"},N={credits:"信用積分",pay:"支付積分",pay_with_credit:"支付積分加速下載, 預計需要{0}積分",pay_with_credit_payed:"正在加速下載, 預計還需要{0}積分",create_payment:"創建積分訂單",pay_target:"支付對象",pay_for_torrent:"為 {0} 支付",your_subid:"用戶 subId",your_credits:"當前餘額",pay_point_for_data:"支付{0}積分以加速{1}數據",auto_renew:"允許自動續費",transaction_details:"訂單明細",transaction_id:"訂單編號",transaction_payer:"付款人",transaction_payee:"收款人",transaction_category:"類型",transaction_changed_amount:"變動金額",transaction_meta:"其他數據",transaction_status:"訂單狀態",transaction_creation_time:"訂單創建時間",receipt_code:"收款碼",transfer_amount:"轉賬金額",code_the_receipt_code:"複製下方收款碼給付款人",fill_the_receipt_code:"通過填入收款人提供的收款碼進行轉賬",income:"收入",expense:"支出",copied:"已複製",transfer:"轉賬",receive:"收款",copy:"複製",withdraw_fund:"選取基金",category_paydata_payer:"數據支付",category_paydata_payee:"數據收入",category_transfer:"個人轉賬",category_bonus:"系統獎勵",category_recharge:"充值",status_pending:"等待中",status_completed:"已傳完",status_finish:"已完成",status_failed:"已失效",tip_invalid_receiver:"無效的收款碼",tip_invalid_amount:"金額應為 0-1000 範圍內的數(最小精度為0.001)",credit_get_more:"獲得更多積分",credit_no_data:"無可用數據",credit_loading:"加載中",credit_not_enough_amount:"积分不足",credit_amount_not_enough:"积分不足",credit_payee_not_exist:"收款人不存在",credit_invalid_amount:"输入金额不合法",credit_can_not_transfer_to_yourself:"不能向自己转账",credit_latest:"最新日期",credit_error_network:"網絡出現異常,請稍後重試","payer credit amount is not enough":"积分不足","payee does not exist":"收款人不存在"},L={account_email_invalid_address:"無效的電子郵寄地址",account_email_invalid_domain:"無效的電子郵件域",account_email_unknown_status:"未知的郵件發送狀態",account_email_unavailable_address:"郵寄地址不可用",account_email_suppressed_address:"郵寄地址被禁用",account_loading:"加載中...",account_is_required:"不能為空",account_sign_in_your_account:"登錄賬戶",account_username:"用戶名",account_username_email_phone:"手機號碼或電子郵箱",account_password:"密碼",account_new_password:"新密碼",account_re_enter_password:"再次輸入密碼",account_password_not_equal:"輸入的兩個密碼不同。",account_new_password_same:"新密碼與原密碼相同",account_forgot_your_password:"忘記密碼了?",account_reset_password:"重置密碼",account_sign_in:"登錄",account_signed_in:"登錄成功",account_sign_up:"註冊",account_find_your_account:"找尋你的賬戶",account_enter_your_username:"輸入你的手機號碼或電子郵箱",account_search:"查找",account_email_sent_tip:"一封附帶驗證碼的電子郵件已發送到您的郵箱:",account_phone_sent_tip:"一封附帶驗證碼的短信已發送到您的手機:",account_email_phone_sent_tip:"附帶驗證碼的電子郵件和手機短信已分別發送到您的郵箱和手機:",account_software_token_tip:"您的賬戶已啟用安全令牌。要完成登錄,請打開或查看您的設備並輸入驗證碼",account_reset_your_password:"重置賬戶密碼",account_verification_code:"驗證碼",account_resend_code:"重發驗證碼",account_code_has_been_resent:"驗證碼已發送",account_password_has_been_reset:"密碼已重置",account_submit:"提交",account_sign_up_your_account:"註冊賬戶",account_fill_required_fields:"填寫下方的必填項。",account_fill_optional_fields:"填寫下方的選填項。",account_email:"郵箱",account_invitation:"邀請",account_invitation_code:"邀請碼",account_i_accept:"我接受",account_license_terms:"服務許可條款",account_next:"下一步",account_you_need_to_accept_license_terms:"請先勾選我接受服務許可條款",account_verify_fill_optional_fields:"驗證身份與可選項",account_nickname:"暱稱",account_gender:"性別",account_male:"男",account_female:"女",account_not_say:"不透露",account_birthday:"生日",account_phone_number:"手機號碼",account_locale:"地區",account_tip_verified:"驗證通過,正在登陸…",account_verified:"已驗證",account_unverified:"未驗證",account_signed_up:"註冊成功",account_verify_your_identity:"驗證您的身份",account_finish:"完成",account_signed_out:"註銷成功",account_change_password:"修改密碼",account_change_email:"修改電子郵箱",account_change_phone_number:"修改手機號碼",account_sign_out:"註銷",account_current_password:"當前密碼",account_re_enter_new_password:"再次輸入新密碼",account_personal_information:"個人資訊",account_edit:"編輯",account_reset:"重置",account_greeting:"你好,",account_cancel:"取消",account_change:"更改",account_not_set:"未設置",account_setting:"設置",account_copy_code:"複製程式碼",account_account_setting:"賬戶設置",account_task_page:"積分任務",account_setting_caption:"管理你的賬戶信息",account_security:"安全",account_want_to_join:"登錄更精彩",account_sign_in_now:"點擊登錄",account_changed:"已更改",account_clipboard_with_invitation_code:"已復制邀請碼",account_clipboard_with_code:"已復制程式碼",account_invitation_code_dialog_tip:"你將通過短信或電子郵件的方式發送邀請碼:",account_available:"可用",account_invited:"已邀請",account_used:"已使用",account_invitation_code_sent:"邀請碼已發送",account_invitation_channel_required:"至少需要填寫一項邀請途徑",account_no_verification_code:"無法收到驗證碼?",account_no_phone_number:"沒有手機號碼?",account_sign_up_by_email:"通過郵箱註冊",account_no_email:"沒有郵箱?",account_sign_up_by_phone_number:"通過手機註冊",account_no_totp:"沒有安全令牌?",account_tip_no_totp:"若沒有安全令牌请先設置安全令牌",account_setup_totp:"設置安全令牌",account_contact_information:"聯繫方式",account_delete_account:"删除帳戶",account_deleted:"已删除",account_can_not_mfa:"無法進行二級驗證?",account_set_mfa_type:"更改二級驗證",account_disable_mfa:"關閉二級驗證",account_disabled_mfa:"已關閉二級驗證",account_sms_mfa:"手機短信驗證",account_totp_mfa:"安全令牌驗證",account_totp:"安全令牌",account_not_recommend:"不推薦",account_oauth_sign_in_with:"通過 {provider} 登錄",account_sign_in_failed:"登錄失敗",account_tip_oath_sign_up:"当前{provider}账户所对应的邮箱:{email}尚未创建账户",account_tip_confirm_delete_account:"输入当前账户密码以确认要删除当前账户。(账户删除后将无法恢复)",account_tip_config_mfa:"您可以通過手機短信或安全令牌為賬戶設置二級驗證",account_error_can_not_enable_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用二級驗證",account_tip_can_not_enable_sms_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用短信驗證",account_tip_can_not_enable_totp_mfa:"您必須同時綁定郵箱和手機號碼,才可以啟用安全令牌",account_tip_setup_totp:"使用Authenticator等應用,掃描下方的二維碼或手動複製代碼來添加安全令牌",account_tip_verify_totp:"驗證您的安全令牌",account_link_your_social_account:"綁定您的社交賬號",account_unlink_your_social_account:"解除社交賬號綁定",account_tip_confirm_link:"確定將當前賬號與您的 {provider} 賬號進行綁定嗎?",account_tip_confirm_unlink:"確定解除您已綁定的 {provider} 賬號嗎?",account_tip_linking:"正在綁定...",account_tip_unlinking:"解除綁定中...",account_linked:"已綁定",account_unlinked:"已解除綁定",account_error_can_not_link_to_the_linked_account:"當前社交帳號已與其他賬號綁定",account_error_can_not_link_to_the_mismatched_email:"當前賬號與社交帳號郵箱地址不一致",account_error_can_not_link_before_email_verified:"未綁定郵箱的賬戶無法綁定社交帳戶",account_tip_confirm_verify_email_phone:"是否向當前賬戶的email和手機號碼發送驗證碼以驗證您的身份?",account_tip_confirm_verify_phone:"是否向當前手機號碼發送驗證碼以驗證您的身份?",account_error_1_message_60_seconds:"每60秒只能發送一條簡訊或郵件,需再等待 {delta} 秒",account_error_10_messages_per_day:"每部手機或電子郵件24小時內只能發送10條資訊",account_error_network:"網絡出現異常,請稍後重試","Network Error":"網絡出現異常,請稍後重試",account_error_user_not_exist:"用戶不存在",account_error_incorrect_username_or_password:"用戶名或密碼錯誤",account_error_incorrect_original_password:"原密碼錯誤",account_error_incorrect_password:"密碼錯誤",account_error_username_not_found:"找不到該用戶名的賬戶",account_error_can_not_reset_for_no_verified:"賬戶未進行郵箱驗證,無法重置密碼",account_error_invalid_verification_code:"驗證碼錯誤,請重試",account_error_expired_verification_code:"驗證碼過期,請重試",account_error_password_not_long_enough:"密碼長度不能小於8位",account_error_attempt_limit_exceeded:"嘗試次數過多,請稍後重試",account_error_password_attempts_exceeded:"超過密碼嘗試次數",account_error_invalid_phone_number_format:"手機號碼格式不正確",account_error_no_cell_phone_prefix:"請選擇手機號前綴",account_error_username_already_exists:"該用戶名已存在",account_error_you_need_to_accept_license_terms:"請勾選我接受服務許可條款",account_error_inactive_code:"該邀請碼已失效",account_error_non_existent_code:"該邀請碼不存在",account_error_unexpected:"未知錯誤",account_error_can_not_change_email_before_phone_bound:"綁定手機號碼前無法更改郵箱",account_error_can_not_change_email_before_unbound_social_account:"解除社交帳戶綁定前無法更改郵箱",account_error_can_not_change_phone_before_email_bound:"綁定郵箱前無法更改手機號碼",account_error_can_not_change_email_phone_with_mfa_enabled:"關閉二級驗證前無法更改郵箱或手機號碼",account_error_not_supported_yet:"暫不支持",account_error_same_email:"新的郵箱不能與原郵箱相同",account_error_same_phone:"新手機號碼不能與原手機號碼相同",account_error_email_not_exists:"該郵箱不存在",account_error_email_already_exists:"該郵箱已有帳戶綁定",account_error_phone_already_exists:"該手機號碼已有帳戶綁定",account_error_mfa_token_mismatch:"安全令牌錯誤",account_error_recaptcha_not_loaded:"網絡出現異常,請重連網絡後重啓應用重試",account_error_recaptcha_validation_failed:"未通過ReCaptcha驗證,請重連網絡後重啓應用重試",account_error_sign_in_in_progress:"等待登錄嘗試已在進行中",account_field_range:"字符個數應在{0}-{1}的範圍中",account_field_only_alphanumeric:"僅支持字母和數字",account_field_only_alphanumeric_and_symbol:"僅支持字母數字和符號",account_field_only_chinese_alphanumeric_space_underline:"僅支持中英文數字空格下劃線",account_field_prefix_without_number_space:"首個字符不能為數字或空格",account_field_suffix_without_space:"不能以空格結尾",account_field_without_repeat_space:"不能連續使用多個空格",account_field_can_not_only_alphanumeric:"不可僅為字母或數字",account_field_must_have_number_characters:"必須包含數字",account_field_verification_code:"驗證碼必須是六位數數字",account_field_invitation_code:"邀請碼必須是字母和數字",account_field_phone_number:"手機號碼格式不正確",account_invalid_email_format:"郵箱格式不正確",account_sign_out_confirm:"是否確認註銷? 註銷後將停止所有任務.",account_sign_out_anyway:"仍要註銷",account_signing_out:"正在註銷...",account_request_save_settings:"設置未保存。在註銷前請先保存修改。",invalid_password_format:"密碼格式錯誤",invalid_password_format_same:"新密碼與原密碼相同",error_password:"密碼錯誤",keychain_setting:"密鑰管理",setting_description:"雲端儲存:將金鑰數據保存到雲端。\n修改密碼:修改媒體庫金鑰的密碼。\n助記詞:一種生成和恢復金鑰的替代方法。\n導入本地金鑰:將本地保存的金鑰導入媒體庫。\n匯出金鑰:將當前媒體庫數據保存到本地或雲端。\n備份金鑰到雲端:將當前媒體庫數據更新到雲端進行備份。",refresh_status:"更新狀態",confirm_import_key:"確認導入金鑰",confirm_update_cloud_key:"你在雲端已有金鑰,更新金鑰將覆蓋原有的金鑰,確認更新存儲在雲端的金鑰嗎",export_key_with_cloud:"輸入您所設定的獨立密碼匯出存儲在雲端的媒體庫金鑰,並通過解鎖密碼鎖定密鑰文件",store_cloud_key_prompt_password:"輸入獨立密碼以存儲媒體庫金鑰到雲端",update_cloud_key_prompt_password:"設定獨立密碼以加密媒體庫金鑰並更新到雲端",enable_cloud_storage_prompt_password:"為存儲在雲端的金鑰設置密碼,通過該密碼可以從雲上取回金鑰",input_unlock_password:"設定解鎖密碼",export_local_prompt_password:"請設定一個解鎖密碼,該密碼用於加密您的密鑰文件。我們不會保存此密碼,因此若您丟失該密碼,密鑰文件將無法解鎖。",require_unlock_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",require_independent_password:"輸入獨立密碼以獲取存儲在雲端的金鑰",import_local_prompt_password:"該密鑰文件已被鎖定,請輸入解鎖密碼",select_encrypt_mode:"選擇加密模式",input_independent_password:"輸入獨立秘碼",update_cloud_key:"更新存儲在雲端的金鑰",backup_to_cloud:"將媒體庫金鑰備份到雲端",save_local:"將媒體庫金鑰保存為本地加密檔",create_new_key:"創建新的媒體庫金鑰",creating_lib_key:"正在創建媒體庫金鑰...",loading_lib_key:"正在載入媒體庫金鑰...",failed_to_create_lib_key:"創建媒體庫金鑰失敗",failed_to_load_lib_key:"載入媒體庫金鑰失敗",import_local_key:"導入本地金鑰",import_lib_key_from_local:"從本地導入媒體庫金鑰",import_from_cloud:"從雲端導入媒體庫金鑰",create_or_import_key:"創建或導入媒體庫金鑰",create_or_import_key_desc:"媒體庫金鑰用於与去中心化數據庫同步內容。",store_your_lib_key:"存儲你的媒體庫金鑰",export_cloud_key:"導出雲端密鑰",export_current_key:"導出當前密鑰",change_password:"修改密碼",enable_cloud_storage:"啟用雲端存儲",disable_cloud_storage:"關閉雲端存儲",disable_cloud_storage_desc:"關閉雲端存儲將移除保存在雲端的密鑰,請確保已將密鑰保存在本地",sync_at:"同步於:{time}",keychain_sync_status:"密鑰同步狀態",cloud_storage_enabled:"使用 {storage} 同步密鑰",cloud_storage_disabled:"未啟用雲端存儲",saved_locally:"已保存於本地",export_key:"導出密鑰文件",cloud_independent_password:"雲端獨立密碼",key_file_unlock_password:"密鑰文件解鎖密碼",re_enter_unlock_password:"再次輸入解鎖密碼",independent_password_not_enabled:"當前密碼為 Alphabiz 帳戶密碼(未設定獨立密碼)",use_cognito_hash:"使用 Alphabiz 賬戶密碼",use_independent_password:"使用獨立密碼",keychain_lib:"媒體庫金鑰",loading_keychain_state:"加載密鑰中...",backing_up:"備份中...",backup_current_key:"備份當前金鑰到雲端",cloud_lib_key_not_existed:"雲端媒體庫金鑰不存在",open_keychain_file:"打開金鑰檔案",confirm_open_abk:"是否打開ABK檔案",use_the_key:"使用該金鑰",backup_the_key:"備份該金鑰到雲端",keychain_data_does_not_exist:"金鑰數據不存在","timeout of 0ms exceeded":"網絡出現異常,請稍後重試",XhrError:"網絡出現異常,請稍後重試"},U={add_subtitles:"添加字幕",open_file:"打開文件...",advanced_options:"高級選項",title:"標題",location:"位置",subtitle_file:"字幕文件",unsupported_subtitle_type:"The file type of {0} is not a supported subtitle type",not_default_player:"默認視頻播放器未設置",this_is_an_audio_file:"這是一個音頻文件",the_added_subtitle_already_exists:"添加的字幕已存在",stop_stream_player:"因任務被暫停或刪除,流媒體播放被終止",stop_player:"因文件被删除,播放被终止",playing_timeout_hint:"等待超時,請檢查任務",autoplay_hint:"自動播放功能可能受瀏覽器限制,若未開始播放,請手動點擊播放器以播放",remove_playing_confirm:"{0} 正在播放中,刪除任務將停止播放。是否仍要刪除?",subtitle:"字幕",setting:"設定",loading:"加載中",unknown_media:"未知媒體",settings_button_visible:"按鈕顯示",settings_setting:"設定",settings_playback_rate:"倍速",settings_subtitle:"字幕",settings_pip:"畫中畫",settings_fullscreen:"全屏",settings_subtitle_options:"字幕选项",settings_normal:"常規",settings_italic:"斜體",settings_lighter:"纖細",settings_bolder:"粗體",settings_small:"較小",settings_large:"較大"};const R=r.a.displayName;var M={lib_index:"主頁",lib_edit:"編輯",lib_publish:"發佈",lib_explore:"探索",lib_following:"關注",lib_favorite:"本地收藏",lib_local_favorites:"本地收藏",lib_channel:"頻道",lib_submit:"提交",lib_from_network:"使用去中心化資料庫,所有數據來源於網路",welcome_to_lib:`歡迎使用 ${R} 媒體庫`,register_or_login:"註冊/登陸",lib_recommend:"推薦",lib_recommend_desc:`歡迎使用 ${R} 媒體庫! 本媒體庫使用去中心化的資料庫,所有數據來源於網路。 在開始前,請先關注一些推薦頻道。`,follow_any_channel_to_continue:"關注任意頻道以繼續",follow_channels_and_continue:"關注 {0} 個頻道並繼續",show_more_for_me:"為我展示更多",no_more_recommend:"沒有更多推薦",key:"金鑰",create_key:"生成金鑰",save_key:"保存金鑰",save_key_file:"是否將金鑰保存為檔案?",import_key:"匯入金鑰",import:"導入",invalid_key:"金鑰格式錯誤",back_to_top:"回到頂部",search_for_channel:"搜索頻道 ID",search_channel_no_result:"找不到 ID 為 {0} 的頻道",please_input_channel_id:"請輸入頻道 ID",welcome_help_text:"\n 這是一個去中心化的媒體庫,您需要為此創建一個專用帳戶,\n 我們將自動為您生成一套金鑰。 如果您已經擁有金鑰了,\n也可以在此導入金鑰".replace(/\s/g,""),welcome_key_text:"\n 當您成功創建帳號后,請點擊右下角的【保存金鑰】按鈕匯出\n您的金鑰。 一旦您丟失金鑰,對應的帳號將無法找回。 ".replace(/\s/g,""),redirect_to_recommend:"您似乎沒有關注任何頻道,即將前往探索頁。 ",channel:"頻道",follow:"關注",unfollow:"取消關注",following:"關注中",share:"分享",block:"遮罩",unblock:"取消遮罩",blocked:"已遮罩",block_channel:"遮罩此頻道",block_channel_confirm:"遮罩頻道後,頻道的所有內容將從時間線上移除。 您可以在帳戶設定中管理遮罩清單。 ",block_creator:"遮罩此頻道的創作者",unblock_creator:"取消遮罩此頻道的創作者",block_creator_confirm:"遮罩創作者後,該創作者的所有頻道將從時間線上移除。 您可以在賬戶設置中管理遮罩清單",share_url_copied:"分享鏈接已複製至剪貼板",unfollow_confirm:"是否取消關注? 此頻道的所有推文將從你的時間線上移除。 ",follow_failed_hint:"操作仍在後台進行中,請耐心等待。如長時間未完成修改請嘗試重啟應用。 ",follow_time:"關注時間",update_time:"更新時間",search:"搜索",type:"類型",added:"已添加",click_to_task:"點擊前往對應任務",lib_already_added:"您已添加此視頻",description:"描述",poster:"海報",channel_poster:"頻道海報",preview:"預覽",creator:"創作者",creator_detail:"創作者詳情",loading_creator:"正在載入創作者資訊",wait_for_creator_loaded:"請等待創作者資訊載入完成。 ",follower:"關注者",followers:"關注者",follower_list:"關注者清單",user:"使用者",channel_title:"頻道標題",channel_id:"頻道 ID",post_title:"推文標題",post_id:"推文 ID",import_data_from_excel:"從 Excel 導入資料",set_excel_keys:"設置excel鍵",excel_import_succeded:"Excel 導入成功",excel_import_success_msg:"可添加 {0} 條新專案, {1} 條資訊不完整及 {2} 條重複項已忽略",cannot_find_channel:"找不到指定頻道",cannot_find_posts:"找不到指定視頻",add_channel:"添加頻道",add_post:"添加推文",edit_channel:"編輯頻道",channel_setting:"頻道設置",edit_post:"編輯推文",edit_posts:"編輯推文",channel_detail:"頻道詳情",remove:"移除",remove_channel:"移除頻道",remove_channel_confirm:"是否確認移除頻道? 此操作不可恢復。 ",remove_post:"移除推文",remove_post_confirm:"是否確認移除推文? 此操作不可恢復",preview_mode:"預覽模式",preview_mode_desc:"這是頻道的預覽模式,所有分級的影片均為可見狀態。 ",edit_user_profile:"編輯使用者資料",name:"昵稱",avatar:"頭像",no_following:"沒有已關注的頻道。 點擊前往",no_recommend:"沒有可推薦的頻道。 點擊前往",first_recomment_msg:"如果您是初次使用,載入時間可能較長",invalid_image:"圖片異常",image_not_reachable:"此圖片URL不可用",channel_not_found:"找不到頻道",cannot_get_channel_info:"無法獲取指定的頻道資訊。 該頻道可能已被創作者刪除而不再可見。 ",validate_error:"驗證錯誤",validate_user_name_no_space:"使用者名不可包含空格",validate_url_no_space:"URL 不可包含空格",validate_user_name_length:"使用者名應為 {0}-{1} 字元",validate_user_desc_length:"使用者描述不可多於 {0} 字元",validate_user_avatar_url:"使用者頭像應為連結且不多於2048字元",validate_channel_title_length:"頻道標題應為1-100字元",validate_channel_desc_length:"頻道描述應為10-300字元",validate_channel_image_url:"頻道預覽圖應為連結且不多於2048字元",validate_post_title_length:"推文標題應為1-100字元",validate_post_desc_length:"推文描述應為10-300字元",validate_post_image_url:"海報應為連結且不多於2048字元",validate_post_url:`${R} 連結格式錯誤`,validate_post_url_length:`${R} 連結不可多於2048字元`,film_rate:"影片分級",set_film_rate:"設置影片分級",select_a_rate_before_enter:"您需要設置一個影片分級才可進入媒體庫。 ",library_available_rate:"媒體庫可用影片分級",rate_g:"G(大眾級)",rate_g_desc:"所有年齡皆可觀賞\n此類影片不含或僅含少量會讓家長在讓兒童觀賞時感到被冒犯的內容,無需家長陪同。 ",rate_pg:"PG(建議家長指導)",rate_pg_desc:"一些內容可能不適合兒童觀看\n此類影片包含部分家長可能認為不適合兒童的內容,因此建議家長可同時進行指導。 ",rate_pg_13:"PG-13(家長特別留意)",rate_pg_13_desc:"一些內容可能不適合13歲以下兒童觀看\n此類影片有部分內容對 13歲以下兒童不適宜,需要有父母陪同觀看。 此類影片動作暴力適當,含有少量血腥場面及不雅用語,但也包含可能令人情緒不安的情節。 ",rate_r:"R(限制級)",rate_r_desc:"未滿十七歲人士必須由家長或成年監護人陪同\n此類影片中常有大量血腥暴力、驚悚恐怖、裸露性愛或吸毒場景, 且有大量性暗示及不雅用語/ 冒犯性言論等,17歲以下人士必須由父母或者監護陪伴才能觀看。 ",rate_nc_17:"NC-17(只准成人觀看)",rate_nc_17_desc:"17歲或以下人士不得觀賞\n此類影片其中常有清楚的性愛場面,大量的吸毒或暴力鏡頭以及髒話等,因此僅適合成人觀賞。 ",set_as_private:"設為私有",hide_in_explore:"在瀏覽頁隱藏此頻道",hidden:"已隱藏",select_a_rate:"請選擇一個影片分級",select_from_tasks:"從上傳任務中選擇",import_from_magnet:`從${Object(m["a"])()?"連結":"磁力連結(magnet:?...)"}導入`,input_magnet_url:"輸入連結",task_title:"任務標題",set_title:"設為標題",add_to_local_favorites:"添加到本地收藏",remove_from_local_favorites:"從本地收藏中移除",removed_favorite:"已移除收藏",import_or_export_favorites:"導入/匯出收藏",export_local_favorites:"匯出收藏文件作為備份",import_favorites_file:"導入備份的收藏",not_a_favorite_file:"此文件並非收藏備份",connection_status:"連接狀態",gun_server_list:"緩存節點",custom_nodes:"客製化緩存節點",custom_nodes_hint:"緩存節點將在重啟軟體後應用",wait_for_reboot:"即將重啟軟體...({seconds}s)",reboot_now:"立即重啟",reboot_later:"稍後重啟",peer_list:"節點清單",server:"節點 URL",peer:"節點",peer_id:"節點 ID",connection:"連接",data_source:"數據源",sync:"同步",syncing:"同步中",sync_completed:"同步完成",got_all_post:"已獲取全部推文",placeholder_channel_title:"頻道名稱",placeholder_channel_desc:"關於此頻道的描述",placeholder_post_title:"電影名稱 (年份)",placeholder_post_desc:"關於此電影的描述",private_channel:"私有頻道",creator_blocked:"已遮罩創作者",go_to_library:"前往媒體庫?",go_to_library_channel_msg:"是否前往媒體庫頻道 {0}?",magnet_does_not_have_name:"此連結不包含任務名,請輸入推文標題后重試。 ",no_available_post:"無可見推文",following_channel_no_post:"已關注的頻道中不含可見的推文。 此問題可能由網路錯誤引起。 如果您已關注帶有推文的頻道,這些推文將在稍後載入完成。 ",share_to_library:"分享到媒體庫",quick_start:"快速開始",quick_start_desc:"選擇一個任務或檔快速創建推文",select_file:"選擇檔...",select_folder:"選擇資料夾...",post_options:"推文選項",channel_options:"頻道選項",create_new_channel:"創建新頻道",use_existed_channel:"使用已存在的頻道",select_existed_channel:"選擇一個頻道",uploaded_by:"{title} (由 {name} 上傳)",created_by:"{title} (由 {name} 创建)",creating_new_channel:"正在創建新頻道...",created_new_channel:"新頻道已創建",creating_new_post:"正在創建新推文...",created_new_post:"新推文已創建",create_new_post:"創建推文",quick_start_timeout:"{0}超時。此問題可能由網路異常引起。請稍後再試。",file_too_large:"文件過大",file_too_large_msg:"此檔的大小超過了 4GB ({size}),上傳此檔可能需要較長的準備時間,是否仍要上傳? ",resolving_folder_files:"正在解析文件夾內容...",folder_too_large:"資料夾過大",folder_too_large_msg:"資料夾中的檔大小超過 4GB ({size} 總大小),上傳此資料夾可能需要較長的準備時間,是否仍要上傳? ",creating_new_task:"正在創建新任務...",cannot_create_task:"創建任務異常",cannot_create_task_msg:"創建任務時產生了未知錯誤。 任務可能已被創建,請查看上傳清單以確定上傳狀態。 ",cannot_get_task_name:"無法獲取任務名,請輸入推文標題后重試",remove_old_task:"刪除舊任務",remove_old_task_desc:"Web 模式僅允許創建一個任務,是否刪除舊任務? ",subtitle_list:"字幕清單",optional:"可選",with_subtitle:"含有{language}字幕",add_subtitle_url:"添加字幕下載連結",maximumSubtitleNum_limit:"字幕數量已達到最大",cannot_add_subtitle:"添加字幕失敗",cannot_add_subtitle_msg:"沒有選擇字幕語言或下載鏈接無效。",support_subtitle_type:"僅支援srt,vtt格式的字幕。",recommend_opensubtitles:"建議使用www.opensubtitles.org的字幕下載鏈接或id。",take_down:"下架",serious_violation:"嚴重違規",copyright_disputes:"版權爭議",adults_only:"成人內容",takedown_reason:"下架原因",takedown_mode:"下架模式",admins:"管理員",takedown_user:"下架此創作者",takedown_channel:"下架此頻道",takedown_post:"下架此推文",select_takedown_reason:"選擇下架原因",takedown_invalid_reason:"下架原因錯誤",takedown_invalid_user_id:"用戶ID錯誤。ID應為87位字符",takedown_invalid_channel_id:"頻道ID錯誤。ID應為20位字符",takedown_invalid_post_id:"推文ID錯誤。ID應為20位字符",takedown_management:"下架管理",users:"用戶",channels:"頻道",posts:"推文",you:"你",preset:"預設",admin:"管理員",committee:"委員會",about_takedown_mode:"模式說明:\n預設:在github添加,所有內容都會從媒體庫移除。\n管理員:任一管理員投票後即會移除。\n委員會:超過半數管理員投票後才會移除。",cannot_edit_preset:"無法編輯此行,因為它是預設內容",cannot_edit_not_vote:"無法編輯此行,因為你未為其投票",remove_vote:"移除你的下架投票",post_preload_failed:"無法預載此推文。下載連結可能已過期,因此無法立即播放。",about_cache_node:"關於緩存節點",edit_cache_node:"編輯緩存節點",create_cache_node:"創建緩存節點",about_cache_node_desc:`${R} 使用 gun 伺服器作為緩存節點,您可以在進階設置中編輯自定義節點。`,learn_how_to_deploy_gun:"查看如何建立自定義節點",library_setting:"媒體庫設置",block_list_manage:"屏蔽列表管理",blocked_users:"已屏蔽的用戶",blocked_channels:"已屏蔽的頻道",unblock_user:"解除用戶屏蔽",unblock_channel:"解除頻道屏蔽",no_blocked_user:"沒有已屏蔽的用戶",no_blocked_channel:"沒有已屏蔽的頻道",field_required:"{0} 不能為空"};const F=r.a.displayName,B={unsupported_in_browser:"此功能暫不支援瀏覽器模式",client:"客戶端",warning:"警告",enable:"啟用",disable:"禁用",auto:"自動",encrypt_connection:"加密傳輸",encrypted_connection:"已加密的連結",non_encrypted_connection:"未加密的連結",connected_wires_not_disconnect:"已存在的連結不會被斷開",audio:"音頻",video:"視頻",image:"圖片",subtitle:"字幕",zip:"壓縮文件",text:"文本",unknown:"未知",add:"添加",undo:"撤銷",backup:"備份",not_default_app:`${F}不是你的默認應用, 是否設置默認應用?`,dont_show_again:"不再提示",go_to_settings:"前往設置",about_alphabiz:`關於 ${F}`,update_channel:"更新通道",last_check_at:"上次檢查更新時間",check_for_update:"檢查更新",checking_for_update:"檢查更新中...",no_update_available:"沒有可用更新",update_available:"更新可用",update_now:"現在更新",update_later:"以後更新",click_to_update:"點擊[現在更新]按鈕以開始下載更新",update_failed:"更新失敗",update_failed_message:"在更新時遇到了一個錯誤: ",check_shasum_failed:"安裝包完整性檢查失敗",downloading_update:"更新下載中...",ready_to_update:"準備更新",restart_to_update:`更新下載已完成. ${F} 將在數秒後退出以應用更新`,already_latest:"當前版本({0})已是最新",update_timeout:"更新超時",no_available_release:"沒有可能的版本",no_available_installer:"沒有可用的安裝包",feedback:"反饋",select_a_type:"選擇一個類型",category:"分類",select_a_category:"選擇一個分類",title:"標題",require_title:"請提供標題",describe_your_problem:"描述您遇到的問題",report_a_bug:"報告一個錯誤(bug)",request_a_new_feature:"請求一個新功能",download_or_upload:"下載/上傳",others:"其他",submit_with_system_info:"提交時附加系統信息",submit_feedback:"提交反饋",tweet_us:"發送Twitter",tweet_too_long:"Tweet過長",delete_characters:"請刪除{0}個字符",rest_characters:"還能輸入{0}個字符",update_alphabiz:`更新 ${F}`,current_version:"當前版本",cancel_update:"取消更新",slow_download_speed:"下載過於緩慢",slow_download_speed_caption:"當前更新包下載過於緩慢,請檢查網絡狀態",update_canceled:"更新已取消",current_version_release_time:"當前版本發佈時間",expired_app:`${F} 過期`,version_out_of_date:"版本過舊",have_to_update:`${F} 版本過舊,部分接口或協議已失效。您需要升級 ${F} 才可繼續使用。`,exit_alphabiz:`退出 ${F}`,exit_and_update:"退出並應用更新",new_version_hint:"新版本可用",no_new_version:"沒有可用的新版本",current_is_latest:"當前版本已是最新版",click_to_check_update:"點擊 [檢查更新] 按鈕以檢查更新",download_latest_version_from_website:"請前往官網下載最新版本",to_the_website:"前往官網",network_diagnotic:"網路診斷",diagnotic:"診斷",click_to_check:"點擊以開始檢查",click_to_check_again:"點擊以再次檢查",checking:"檢查中",online:"在線",offline:"離線",dns_look_up:"域名解析",error:"錯誤",aws_service:"AWS 服務",network_pings:"網路 Ping",not_found:"未找到",packet_loss:"丟包率",official_site:"官方網站",download_test:"下載測試",connected:"已連結",test_task:"測試任務 ({0})",download_failed:"下載失敗",second_spend:"用時 {0} 秒",open_default_player_failed:"打開默認播放器失敗",copied_to_clipboard:"已複製到剪貼板",go_to:"前往",region_not_available:"地區不可用",region_not_available_message:"抱歉,此應用在您的地區不可用。本應用將在{0}秒後退出。",confirm:"確認",no_available_result:"無可用結果"};var W={...M,...E,...D,...j,...L,...N,...U,...B},H=a("e4a9"),V=a("a282"),Q=a("1254"),G=a("88ba"),K=a("6432"),Y=a("44ce"),J=a("3d2b"),Z=a("68e2"),X=a("5e9a"),ee=a("0699"),te=a("b36c"),ae=a("5d61"),ne=a("4165"),oe=a("111a"),ie=a("45bf"),re=a("186c"),se=a("c65d"),le=a("f3f7"),ce=a("e24e"),de=a("f7b1"),ue=a("1081"),_e=a("2c08"),pe=a("9256"),me=a("be00"),he=a("76b4"),ge=a("e9ac"),fe=a("be0d"),be=a("c9b4"),ye=a("d310");const ve={"zh-CN":y,"en-US":q,"zh-TW":W,"de-DE":H,"es-ES":V,"fr-FR":Q,"hi-IN":G,"id-ID":K,"it-IT":Y,"ja-JP":J,"ko-KR":Z,"nl-NL":X,"pl-PL":ee,"pt-PT":te,"ru-RU":ae,"th-TH":ne,"tr-TR":oe};for(const je in ve){const e=ve[je];for(const t in e)e[t].match(/\${(.+?)}/)&&(e[t]=e[t].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)))}const we={"en-US":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric"},YMDHms:{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric"}},"zh-CN":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"zh-TW":{M:{month:"short"},YM:{year:"numeric",month:"short"},YMD:{year:"numeric",month:"short",day:"numeric"},Hms:{hour:"numeric",minute:"numeric",second:"numeric"},MDHms:{month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0},YMDHms:{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric",hour12:!0}},"de-DE":ie,"es-ES":re,"fr-FR":se,"hi-IN":le,"id-ID":ce,"it-IT":de,"ja-JP":ue,"ko-KR":_e,"nl-NL":pe,"pl-PL":me,"pt-PT":he,"ru-RU":ge,"th-TH":fe,"tr-TR":be};for(const je in ve)je in we||(we[je]=Object(ye["deepClone"])(we["en-US"]));var ke=a("fe2c"),Se=a("d884"),Ce=a("9ad5"),xe=a.n(Ce),$e=a("5584"),Te=a("d7df");const ze=Se["b"].map((({value:e})=>e));ke["b"].registerHooks(["beforeRouteLeave","beforeRouteEnter"]),n["a"].use(o["a"]);const Pe="undefined"===typeof navigator?"en-US":Se["b"].find((({value:e})=>e===navigator.language))?navigator.language:"en-US";console.log(`[i18n] Default locale: ${Pe}`);const Ae=new o["a"]({locale:Pe,fallbackLocale:"en-US",dateTimeFormats:we,messages:ve,silentTranslationWarn:!0}),Ie={externals:"_i18n_externals_",locale:"_i18n_locale_",trans:"_i18n_translations_",dtf:"_i18n_datetime_"},qe=(e,t,a)=>{if(!e||!e.value)return console.warn(`Failed to add locale ${e}: 'value' is required but not found.`);if("object"!==typeof t||null===t)return console.warn(`Cannot add locale ${e.value}: 'translations' must be object.`);const o=Se["b"].findIndex((t=>t.value===e.value));-1!==o?(console.warn(`Add duplicate language ${e.value} will replace it with new configs`),n["a"].set(Se["b"],o,e)):n["a"].set(Se["b"],Se["b"].length,e);const i=e.value;for(const n in t)t[n].match(/\${(.+?)}/)&&(t[n]=t[n].replace(/\${(.+?)}/g,((e,t)=>t in r.a&&"string"===typeof r.a[t]?r.a[t]:e)));n["a"].set(ve,i,t),"object"===typeof a&&n["a"].set(we,i,a),console.log("Successfully add new locale",e);const s=[...new Set(JSON.parse(localStorage.getItem(Ie.externals)||"[]"))];if(s.some((e=>e===i))||s.push(i),localStorage.setItem(Ie.externals,JSON.stringify(s)),localStorage.setItem(Ie.locale+i,JSON.stringify(e)),localStorage.setItem(Ie.trans+i,JSON.stringify(t)),a?localStorage.setItem(Ie.dtf+i,JSON.stringify(a)):localStorage.removeItem(Ie.dtf+i),Object(ye["isElectron"])()&&Te["a"].emit("external-locale",{locale:e.value,translations:t}),Ae&&"en-US"===Ae.locale){const e=navigator.languages.map((e=>{const t=e.split("-");if(t.length<=2)return e;const a=t[0],n=t.pop();return[a,n].join("-")}));if(!e.includes(i))return console.log(`User prefer languages ${e.join(",")} does not includes ${i}`);console.log(`Automatically set locale to ${i}`),Ae.locale=i,$e["a"].dispatch("set",{language:i})}},Oe=e=>{const t=Se["b"].find((t=>t.value===e));if(-1===t)return console.warn(`Failed to remove locale ${e}: not found`);Ae&&Ae.locale===e&&(Ae.locale="en-US"),Se["b"].splice(t,1),n["a"].delete(ve,e),n["a"].delete(we,e),console.log("Successfully remove locale",e);const a=JSON.parse(localStorage.getItem(Ie.externals)||"[]");a.includes(e)&&(a.splice(a.indexOf(e),1),localStorage.setItem(Ie.externals,JSON.stringify(a))),localStorage.removeItem(Ie.locale+e),localStorage.removeItem(Ie.trans+e),localStorage.removeItem(Ie.dtf+e)},Ee=async()=>{const e=console.log.bind(console,"[Remote External I18n]");if(!r.a.externalI18n)return e("No external i18n url availabel");try{const t=e=>{let t=r.a.externalI18n;return t.endsWith("/")||(t+="/"),new URL(e,t).href};e(t("locales"));const{data:a}=await xe.a.get(t("locales"));if("string"!==typeof a)throw new Error(`Locale ${a} is not string`);e(`Fetch locales: ${a}`);const n=a.split("\n").map((t=>{const[a,...n]=t.replace(/#.*$/,"").split(" ");let o=n&&n.join(" ");return o||(o=a),a?{value:a,label:o}:(e(`No available locale in ${t}`),null)})).filter((e=>e));if(!n.length)return e(`No available external i18n from ${r.a.externalI18n}`);const o=n.map((async a=>{try{const{data:e}=await xe.a.get(t(`${a.value}/translations.json`)),{data:n}=await xe.a.get(t(`${a.value}/dateTimeFormat.json`)).catch((()=>({})));qe(a,e,n)}catch(n){e(`Failed to get ${a.label} ${a.value} from ${r.a.externalI18n}`)}}));if(await Promise.all(o),!Ae)return;for(const i in Ae.messages)ze.includes(i)||n.find((e=>e.value===i))||(e("Remove locale since external locales file deleted it",i),Oe(i))}catch(t){e(`Failed to get locales from ${r.a.externalI18n} since ${t.message||t}`)}},De=()=>{const e=localStorage.getItem(Ie.externals);if(!e)return console.log("No external i18n available");const t=JSON.parse(e);for(const n of t){const e=localStorage.getItem(Ie.locale+n),t=localStorage.getItem(Ie.trans+n),o=localStorage.getItem(Ie.dtf+n);if(e&&t)try{qe(JSON.parse(e),JSON.parse(t),o?JSON.parse(o):null)}catch(a){console.warn(`Failed to add locale ${n}:`,a.message)}else console.warn(`Failed to get local files for ${n}`,e,t)}};t["a"]=e=>{const{app:t}=e;t.i18n=Ae,new(n["a"].extend({i18n:Ae}))({beforeCreate(){const e=this.$q.notify;this.$q.notify=t=>{const a=e=>{try{const t=Ae.messages[Ae.locale];return Object.keys(t).includes(e)}catch(t){return console.log("Faild @ boot -> i18n",e,Ae.locale,t),!1}};let n;return"string"===typeof t?n=e(a(t)?this.$t(t):t):(a(t.message)&&(t.message=this.$t(t.message,t.i18nData),delete t.i18nData),n=e(t)),n};for(const t in ve){const e={locale:t,translations:ve[t]};Te["a"].emit("external-locale",e)}},created(){De(),Ee(),this.$watch((()=>Ae.locale),(()=>{if(!Ae.messages[Ae.locale]){if(Ae.locale===Ae.fallbackLocale)return console.warn(`Failed to set locale to default[${Ae.fallbackLocale}]`);Ae.locale=Ae.fallbackLocale}}))}})}},"19f3":function(e,t,a){},"1af1":function(e,t){const a={};e.exports=a},"1b99":function(e,t,a){"use strict";a("244a")},"1cda":function(e,t,a){"use strict";a("058f")},"1da1":function(e,t,a){},"1ef4":function(e,t,a){"use strict";(function(e){a("de6c"),a("a1c1");var n=a("fb31"),o=a.n(n);function i(t){return e.from(t,"utf-8").toString("hex")}function r(t){return e.from(t,"hex").toString("utf-8")}t["a"]={fromObject(e){const{protocolType:t,name:a,hash:n,data:i}=e,s=i.type||"channel";if("02"!==t)return null;const l=o.a.shortProtocol;return`${l}-library://${s}/${decodeURIComponent(a)}/${r(n)}`},toObject(e){if(console.log("lib toObj",e),!e.startsWith(o.a.shortProtocol+"-library://"))return null;const[t,a,n]=e.replace(o.a.shortProtocol+"-library://","").split("/"),r={};return"channel"!==t&&(r.type=t),{protocolType:"02",name:encodeURIComponent(a),hash:i(n),data:r}}}}).call(this,a("eb72").Buffer)},2:function(e,t){},20:function(e,t){},21:function(e,t){},"212e":function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));a("de6c");var n=a("229c");function o(e){const t={};return a(),o((()=>{i({handleBatchItem(e){console.log("Analytics.send.batchItem:",e)},handleEndpoint:(e,t)=>{console.log(`Analytics.send: Endpoint(${e})`,t)},handleEvent:(t,a)=>{console.log(`Analytics.send: Event<${a.EventType}>(${t})`,a);const n=e.eventHandlers[a.EventType];n&&n(a,t)}})})),n["a"].$debug=function(){console.log("Analytics$debug:",{_config:n["a"]._config,pinpoint:t.pinpoint,pinpointClient:t.pinpointClient})},n["a"].$context=t,window.Analytics=n["a"],t;function a(){const e=n["a"]._pluggables.find((e=>"AWSPinpoint"===e.getProviderName()));Object.assign(t,{pinpoint:e})}function o(e){Object.defineProperty(t.pinpoint,"pinpointClient",{get(){return t.pinpointClient},set(a){t.pinpointClient=a,e(a)}})}function i({handleEndpoint:e,handleEvent:a,handleBatchItem:n}){const o=t.pinpointClient.send;t.pinpointClient.send=async function(){var i;const r=arguments[0].input;r.EndpointId&&e(r.EndpointId,r.EndpointRequest);const s=await t.pinpoint._config.endpointId,l=null===(i=r.EventsRequest)||void 0===i?void 0:i.BatchItem;if(l&&n(l),l&&l[s]){const{Endpoint:e,Events:t}=l[s];Object.entries(t).forEach((([e,t])=>{a(e,t)}))}return await o.apply(this,arguments)}}}},2163:function(e,t,a){"use strict";a("e836")},22:function(e,t){},2214:function(e,t,a){"use strict";a("0d10")},23:function(e,t){},2377:function(e,t,a){"use strict";a("d7f6")},24:function(e,t){},"244a":function(e,t,a){},25:function(e,t){},"25b9":function(e,t,a){},26:function(e,t){},27:function(e,t){},28:function(e,t){},"28c4":function(e,t,a){"use strict";a("df2b")},29:function(e,t){},"2b49":function(e,t,a){"use strict";var n=a("e74d");const o=()=>"electron"===n["a"]._config.oauth.app_env?"_blank":"_self";var i=e=>{const t=window.open(e,o());return t?Promise.resolve(t):Promise.reject()},r=e=>{let t="",a=e;const n="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(;a>0;--a)t+=n[Math.round(Math.random()*(n.length-1))];return t},s=(a("a1c1"),a("98fd")),l=a.n(s),c=a("b858"),d=a.n(c),u=e=>l()(e).toString(d.a).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_");t["a"]={urlOpener:i,generateState:r,generateChallenge:u}},"2c08":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"2cab":function(e,t,a){"use strict";a("4d62")},"2cfd":function(e,t,a){},"2d55":function(e,t,a){},"2e22":function(e,t,a){"use strict";a.d(t,"c",(function(){return l})),a.d(t,"a",(function(){return c})),a.d(t,"b",(function(){return g}));a("de6c"),a("f18a");var n=a("5584"),o=a("d310"),i=(a("c49d"),a("36a1")),r=a("1926");const s=e=>new Promise((t=>{const a=setInterval((()=>{const n=e();void 0!==n&&(clearInterval(a),t(n))}),1e3)})),l={data(){return{previewImage:null}},computed:{showPreview:{set(e){this.previewImage=e||null},get(){return!!this.previewImage}}}},c={methods:{async initFilmRate(){const e=e=>{const t=new Date(e);if(!t||!t.valueOf())return;const a=Date.now();return t.setFullYear(t.getFullYear()+7),t.valueOf(){const e={type:"radio",model:"G"};e.items=[{label:r["b"].t("rate_g"),value:"G",tooltip:r["b"].t("rate_g_desc")},{label:r["b"].t("rate_pg"),value:"PG",tooltip:r["b"].t("rate_pg_desc")},{label:r["b"].t("rate_pg_13"),value:"PG-13",tooltip:r["b"].t("rate_pg_13_desc")},{label:r["b"].t("rate_r"),value:"R",tooltip:r["b"].t("rate_r_desc")},{label:r["b"].t("rate_nc_17"),value:"NC-17",tooltip:r["b"].t("rate_nc_17_desc")}];const t=this.$alphabiz.dialog({title:r["b"].t("set_film_rate"),message:r["b"].t("select_a_rate_before_enter"),options:e,ok:r["b"].t("ok")}),a=await t.promise("ok");if(a)return a.option},i=e=>{if(n["a"].dispatch("updateSettings",{libraryRate:e}),Object(o["isElectron"])()){const{ipcRenderer:t}=a("b052");t.send("set_settings",{libraryRate:e})}localStorage.setItem("set-film-rate",e)};if(localStorage.getItem("set-film-rate"))return;const l=await s((()=>{if(n["a"].getters.accountUserInfo&&n["a"].getters.accountUserInfo.sub)return n["a"].getters.accountUserInfo.birthday||null}));let c=e(l);c||(c=await t()),i(c)}},async activated(){await this.initFilmRate()}},d=(...e)=>console.tag.blue("Channel",...e),u=(...e)=>console.tag.blue("Post",...e),_={data(){return{loader$loadedChannels:{}}},created(){this.$watch("followingChannels",(e=>{let t=!1;Object.keys(this.loader$loadedChannels).forEach((a=>{e.some((e=>e.id===a))||(delete this.loader$loadedChannels[a],t=!0)})),t&&(this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels))}),{immediate:!0,deep:!0})},computed:{loader$toLoadChannels(){const e=this.followingChannels;return console.log(e),e.filter((e=>!(!e.title||!e.id)&&!this.loader$loadedChannels[e.id])).reduce(((e,t)=>(e[t.id]=t,e)),{})}},methods:{async loader$enableChannelsLoader({onLoaded:e},t){const a=async({onChannelLoaded:e,onChannelUpdated:t})=>{const a=Object.values(this.loader$toLoadChannels);await Promise.all(a.map((async a=>{await new Promise((e=>setTimeout(e,Math.round(2e3*Math.random()))));const n=await i["a"].getChannelPostIds(a.id,!0);if(!this.loaderEnabled)return;const o=this.loader$loadedChannels[a.id];o?o.ids=n:this.loader$loadedChannels[a.id]={channel:a,ids:n},this.loader$loadedChannels=Object.assign({},this.loader$loadedChannels),await(o?t:e)(a.id)})))},n=()=>({toLoadCount:Object.keys(this.loader$toLoadChannels).length,loadedCount:Object.keys(this.loader$loadedChannels).length}),o=e=>new Promise((t=>setTimeout(t,e)));let r=!0;while(this.loaderEnabled){const i=n();if(!i.toLoadCount){if(r){e(!0),r=!1;continue}await o(t);continue}if(await a({onChannelLoaded:async e=>{if(!this.loaderEnabled)return;const{loadedCount:t,toLoadCount:a}=n(),o=`${t}/${t+a}`;d("onLoaded",o).log(e)},onChannelUpdated:async e=>{this.loaderEnabled&&d("onUpdated").log(e)}}),!this.loaderEnabled)break;const s=n();s.toLoadCount||(e(r),r=!1,await o(t))}}}},p={data(){return{loader$loadedPosts:{}}},computed:{loader$toLoadPosts(){return Object.values(this.loader$loadedChannels).map((({channel:e,ids:t})=>t.map((t=>({id:t,channelId:e.id}))))).flat(1).reduce(((e,t)=>(this.loader$loadedPosts[t.id]||(e[t.id]=t),e)),{})},loader$toLoadPostIdListSorted(){const e=(e,t)=>e&&t?e.localeCompare(t):0;return Object.values(this.loader$loadedChannels).map((({ids:e})=>e.filter((e=>!this.loader$loadedPosts[e])))).flat(1).sort(e)}},methods:{async loader$loadPosts({count:e},{onPostsLoaded:t}){const a=async e=>{const{id:t,channelId:a}=e,n=this.loader$loadedChannels[a].channel,o=await i["a"].getPostById(a,t,!0);return o?(o.channel=n,o):null},n=e=>this.loader$toLoadPostIdListSorted.length?this.loader$toLoadPostIdListSorted.slice(0,e).map((e=>this.loader$toLoadPosts[e])):null,o=n(e);if(!o)return;const r=await Promise.all(o.map((async e=>{const t=await a(e);return t?{success:!0,post:t}:{success:!1,target:e}}))),s=r.filter((e=>e.success)).map((e=>e.post));return s.length&&(s.forEach((e=>{this.loader$loadedPosts[e.id]=e})),this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts),await t(s)),r},async loader$loadPostsNext({count:e}={}){if(!Object.keys(this.loader$toLoadPosts).length)return;if("loaded"!==this.loaderState)return;this.loaderState="fetching",await new Promise((e=>setTimeout(e,1e3)));const t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};await this.loader$loadPosts({count:e},{onPostsLoaded:t}),this.loaderState="loaded"},async loader$initPostLoader({initialCount:e}={},{onPostsLoaded:t}={}){var a;null!==(a=e)&&void 0!==a||(e=24),t=async()=>{const e=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),{loadedCount:t,toLoadCount:a}=e(),n=`${t}/${t+a}`;u("onLoaded",n).log()};const n=e=>new Promise((t=>setTimeout(t,e))),o=()=>({toLoadCount:Object.keys(this.loader$toLoadPosts).length,loadedCount:Object.keys(this.loader$loadedPosts).length}),i=()=>{const{toLoadCount:t,loadedCount:a}=o();return a&&(0===t||a>=e)};let r=!0;while(!i())await this.loader$loadPosts({count:10},{onPostsLoaded:t}),r?r=!1:await n(Math.round(3e3*Math.random()));u().log("loaded")}}},m={mixins:[_,p],data(){return{loaderState:"stopped"}},computed:{loaderEnabled(){return["loading","fetching","loaded","timeout"].includes(this.loaderState)}},created(){this.$watch("loaderState",((e,t)=>{const a={red:["timeout"]},n=Object.keys(a).find((t=>a[t].includes(e))),o=console.tag[n||"blue"]("State"),i={loading:"loading...",timeout:"timeout, maybe network error",fetching:"fetching next post slice",loaded:()=>{const e={loading:"loaded",timeout:"loaded but timeout"};return e[t]}};let r=i[e];"function"===typeof r&&(r=r()),r?o.log(r):o.log()}))},methods:{async enableLoader(){const e=e=>new Promise((t=>setTimeout(t,e))),t=async(t,a,n)=>{let o,i=!1;return await Promise.race([t.then((e=>{i=!0,o=e})),e(a).then((()=>{i||n&&(o=n())}))]),o};if(this.loaderEnabled)return;this.loaderState="loading";const a=6e4,n=async()=>{await new Promise((e=>this.loader$enableChannelsLoader({onLoaded:t=>{d().log(t?"loaded":"updated"),e(!0)}},1e4))),await this.loader$initPostLoader()},o=e=>{this.loaderEnabled&&(this.loaderState=e?"timeout":"loaded")};await t((async()=>{await n(),o(!1)})(),a,(()=>{o(!0)}))},async disableLoader(){this.loaderEnabled&&(this.loaderState="stopped")}}},h={methods:{loader$dialog(){const e=this.$alphabiz.dialog({title:r["b"].t("no_available_post"),message:r["b"].t("following_channel_no_post"),cancel:r["b"].t("cancel"),ok:r["b"].t("lib_explore")});return e.promise("ok").then((e=>{e&&(n["a"].getters.settings.libraryShowExplore||n["a"].dispatch("set",{libraryShowExplore:!0}),this.$root.$emit("navigate-to","/library/explore"),this.$router.push("/library/explore"))})),e}}},g={mixins:[m,h],computed:{loadedPosts(){return this.loader$loadedPosts}},created(){let e;this.$watch("loaderState",(t=>{if("timeout"===t);else{if(!e)return;try{e.hide()}catch(a){}finally{e=null}}}))},async activated(){const e=()=>{const e=Object.values(this.loader$loadedChannels).map((({ids:e})=>e)).flat(1),t=Object.keys(this.loader$loadedPosts).filter((t=>!e.includes(t)));t.forEach((e=>{delete this.loader$loadedPosts[e]})),t.length&&(this.loader$loadedPosts=Object.assign({},this.loader$loadedPosts))};e(),await i["a"].whenReady,this.enableLoader()},deactivated(){this.disableLoader()}}},"2e34":function(e,t,a){"use strict";a("3e69")},"2e69":function(e,t,a){"use strict";a("30c9")},3:function(e,t){},30:function(e,t){},3061:function(e,t,a){"use strict";a("aa59")},"30c9":function(e,t,a){},31:function(e,t){},32:function(e,t){},"326b":function(e,t,a){},33:function(e,t){},3334:function(e,t,a){"use strict";a.r(t),a.d(t,"getCurrentUser",(function(){return n})),a.d(t,"getCurrentExpenses",(function(){return o})),a.d(t,"getCurrentIncome",(function(){return i})),a.d(t,"getTransactionById",(function(){return r})),a.d(t,"getUser",(function(){return s})),a.d(t,"listUsers",(function(){return l})),a.d(t,"getInvitation",(function(){return c})),a.d(t,"listInvitations",(function(){return d})),a.d(t,"queryInvitationsByInviterId",(function(){return u})),a.d(t,"getMessageTimer",(function(){return _})),a.d(t,"listMessageTimers",(function(){return p})),a.d(t,"getTransaction",(function(){return m})),a.d(t,"listTransactions",(function(){return h})),a.d(t,"queryTransactionsByPayerId",(function(){return g})),a.d(t,"queryTransactionsByPayeeId",(function(){return f})),a.d(t,"getTask",(function(){return b})),a.d(t,"listTasks",(function(){return y})),a.d(t,"queryTasksByMember",(function(){return v})),a.d(t,"queryTaskByCategory",(function(){return w})),a.d(t,"getProvidentFund",(function(){return k})),a.d(t,"listProvidentFunds",(function(){return S}));const n="\n query GetCurrentUser {\n getCurrentUser {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",o="\n query GetCurrentExpenses($nextToken: String, $params: String) {\n getCurrentExpenses(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",i="\n query GetCurrentIncome($nextToken: String, $params: String) {\n getCurrentIncome(nextToken: $nextToken, params: $params) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",r="\n query GetTransactionById($id: String) {\n getTransactionById(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",s="\n query GetUser($id: ID!) {\n getUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",l="\n query ListUsers(\n $filter: ModelUserFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listUsers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n credit\n username\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",c="\n query GetInvitation($id: ID!) {\n getInvitation(id: $id) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",d="\n query ListInvitations(\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listInvitations(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",u="\n query QueryInvitationsByInviterId(\n $inviterId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelInvitationFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryInvitationsByInviterId(\n inviterId: $inviterId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n nextToken\n }\n }\n",_="\n query GetMessageTimer($id: ID!) {\n getMessageTimer(id: $id) {\n id\n times\n updatedAt\n createdAt\n }\n }\n",p="\n query ListMessageTimers(\n $filter: ModelMessageTimerFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listMessageTimers(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n times\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n",m="\n query GetTransaction($id: ID!) {\n getTransaction(id: $id) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",h="\n query ListTransactions(\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTransactions(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",g="\n query QueryTransactionsByPayerId(\n $payerId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayerId(\n payerId: $payerId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",f="\n query QueryTransactionsByPayeeId(\n $payeeId: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTransactionFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTransactionsByPayeeId(\n payeeId: $payeeId\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",b="\n query GetTask($id: ID!) {\n getTask(id: $id) {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n query ListTasks(\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listTasks(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",v="\n query QueryTasksByMember(\n $member: String\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTasksByMember(\n member: $member\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",w="\n query QueryTaskByCategory(\n $category: TaskCategory\n $createdAt: ModelStringKeyConditionInput\n $sortDirection: ModelSortDirection\n $filter: ModelTaskFilterInput\n $limit: Int\n $nextToken: String\n ) {\n queryTaskByCategory(\n category: $category\n createdAt: $createdAt\n sortDirection: $sortDirection\n filter: $filter\n limit: $limit\n nextToken: $nextToken\n ) {\n items {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n nextToken\n }\n }\n",k="\n query GetProvidentFund($id: ID!) {\n getProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",S="\n query ListProvidentFunds(\n $filter: ModelProvidentFundFilterInput\n $limit: Int\n $nextToken: String\n ) {\n listProvidentFunds(filter: $filter, limit: $limit, nextToken: $nextToken) {\n items {\n id\n amount\n updatedAt\n createdAt\n }\n nextToken\n }\n }\n"},3361:function(e,t,a){},34:function(e,t){},3408:function(e,t,a){"use strict";a("8306")},35:function(e,t){},36:function(e,t){},3669:function(e,t,a){"use strict";a("c7ce")},"36a1":function(e,t,a){"use strict";a.d(t,"a",(function(){return Q}));var n=a("ff9b"),o=a("2d62"),i=a("d7df"),r=a("5515"),s=a("f680"),l=a("5584"),c=a("1926"),d=a("c49d"),u=a("3aea"),_=(a("d4b5"),a("de6c"),a("0598")),p=a("9ad5"),m=a.n(p),h=a("a3fc"),g=a("61af"),f=a("d710"),b=a.n(f);const{github:y}=f["update"],v=e=>f["takedown"].admins.includes(e),w="Serious Violation",k="Copyright Disputes",S="Adults Only",C=()=>{const e=Object(_["default"])()?require("developer/take-down.json"):a("9445");return e},x=C(),$=()=>{if(!Object(_["default"])())return null;const{app:e}=a("3be9"),t=e.getPath("userData");if(!t)return null;const n=Object(h["resolve"])(t,"config/take-down.json");return Object(g["existsSync"])(n)?JSON.parse(Object(g["readFileSync"])(n)):null},T=async()=>{const e=`https://raw.githubusercontent.com/${y.username}/${y.repo}/${y.branch}/developer/take-down.json`,{data:t}=await m.a.get(e).catch((()=>({data:null})));return t},z=async()=>{let e=await T();if(console.log("get from remote",e),Object(_["default"])()&&e){const{app:t}=a("3be9"),n=t.getPath("userData");if(!n)return;const o=Object(h["resolve"])(n,"config/take-down.json");Object(g["writeFileSync"])(o,JSON.stringify(e,null,2))}if(e||(e=$(),console.log("get from saved",e)),e&&"object"===typeof e)for(const t in x)x[t].splice(0,x[t].length,...e[t])},P=()=>x,A={users:[],channels:[],posts:[]};let I=!1;const q=()=>A,O=()=>{if(I)return;I=!0;const{admins:e,mode:t}=f["takedown"],a="admin"===t?0:Math.ceil(e.length/2+.5),n=[],i=()=>{console.log("update extra list",n);const e={users:[],channels:[],posts:[]};n.forEach((({id:n,admins:o,reason:i})=>{const[r,s]=n.split("|");if(!r||!s||!e[r])return;const l={id:s,reason:i,admins:o,mode:t,minCount:a};e[r].find((e=>e.id===s))||e[r].push(l)}));for(const t in e)A[t].splice(0,A[t].length,...e[t])},r=()=>{i()},s=(e="",t={})=>{for(const o in t){const i=t[o],r=n.find((e=>e.id===o));if(r)i&&[w,k,S].includes(i)?r.admins.includes(e)||r.admins.push(e):r.admins.includes(e)&&(r.admins.splice(r.admins.indexOf(e),1),0===r.admins.length&&n.splice(n.indexOf(r),1));else{if(!i)continue;if(![w,k,S].includes(i))continue;n.push({id:o,admins:[e],reason:i,minCount:a})}}r()};e.forEach((e=>{console.log("add admin",e),o["v"].user(e).get("takedowns").on((t=>{s(e,t)}))}))};a("7a76"),a("0c26");var E=a("0f0c"),D=a("8097"),j=async()=>{const e=N();console.tag.orange("recommends","urls").log(e);const{data:t,url:a}=await new Promise((async t=>{for(const a of e){const e=await L(a);if(e){t({data:e,url:a});break}}}));return console.tag.orange("recommends","got").log({url:a,data:t}),t};function N(){const e={version:Object(E["a"])("version"),buildTime:Object(E["a"])("buildTime")},t=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),a=[`${f["homepage"]}/recommends/v${e.version}.txt`,`${f["homepage"]}/recommends/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/recommends.txt`,"recommends.txt"];return t?a.splice(1,2):Object(D["a"])()&&a.unshift(`${f["homepage"]}/recommends/store/v${e.version}.txt`,`${f["homepage"]}/recommends/store/v${e.version.split("-")[0]}.txt`,`${f["homepage"]}/recommends/store/recommends.txt`),Array.from(new Set(a))}async function L(e){const t=async()=>{const t=await fetch(e);if(!t.ok||200!==t.status)return console.tag.orange("recommends","fetch").warn(t.statusText),null;try{const e=await t.text();return U(e)}catch{return null}},a=async n=>{try{return n.count&&console.tag.orange("recommends","fetch:retry",n.count).log(e),await t()}catch(o){if(o instanceof TypeError)return await new Promise((e=>setTimeout(e,1e3))),n.count+=1,await a(n);throw o}};return await a({count:0})}function U(e){if("string"!==typeof e)throw console.tag.orange("recommends","parse").error("Cannot parse data as string",e),new Error("Cannot parse data as string");const t=e.split("\n").map((e=>{var t;return null===(t=e.trim().split(" "))||void 0===t?void 0:t[0]})).filter((e=>e.match(/^[a-z0-9]{20}$/)));return t}var R=a("1738"),M=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};let F=Date.now();i["a"].on("library-db",(e=>M(void 0,void 0,void 0,(function*(){e&&(setTimeout((()=>Object(r["b"])(e)),3e3),setTimeout((()=>Object(r["b"])(e)),3e4),setTimeout((()=>Object(r["b"])(e)),6e4))})))),i["a"].emit("library-db");let B=!1;Object.defineProperty(globalThis,"verb",{get(){return B},set(e){B=e}}),Object.defineProperty(globalThis,"eventBus",{get(){return o["i"]}});const W=["G","PG","PG-13","R","NC-17"];let H=()=>{},V=null;const Q=new n["a"]({data(){return{user:null,ownedChannels:[],ownedChannelInstances:[],ownedChannelMap:new Map,followingChannels:[],showRecommend:!1,recommendPage:0,recommendIdList:[],allChannelList:[],online:!1,onlineStatus:"connecting",gunPeers:[],channelFollowerCount:{},libStatus:"init",whenReady:new Promise((e=>{let t=!1;H=()=>{t||(t=!0,R["a"].send("library_init",{cost:Date.now()-F}),e())}})),search:{text:"",option:{label:"",value:""},options:[]},currentCreator:{name:"",description:"",avatar:"",id:"",channels:[]},currentUserFromGun:null,userData:{},takedownList:{users:[],channels:[],posts:[]},takedownExtraList:{users:[],channels:[],posts:[]},isLibAdmin:!1,isFirstRegister:!1}},computed:{allowAdults(){return"NC-17"===l["a"].state.setting.libraryRate},username(){return this.userData&&"string"===typeof this.userData.name?this.userData.name:"("+c["b"].t("loading")+")"},bannedUsers(){const e=[];return[this.takedownList,this.takedownExtraList].forEach((t=>{t.users.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.channels.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{t.posts.forEach((({id:t,reason:a,mode:n,admins:o,minCount:i})=>{"committee"===n&&o.length{if(t.id){if(e.includes(t.id))return!1;if(e.push(t.id),this.isBannedChannel(t))return!1}return t.title&&(t.creator||t.soul)}))},nonBlockFollowingChannels(){const{blockChannels:e,blockUsers:t}=this.userData;return e&&t?this.followingChannels.filter((a=>!(!a.id||!a.title)&&(!e.includes(a.id)&&!t.includes(a.creator)))):[]},isLoggedIn(){return!!this.user&&("ready"===this.libStatus&&!(!this.user.is||!this.user.is.pub))},sortedChannel(){return this.channelList},filteredChannels(){if(console.log("trigger filter channel"),"channel"!==this.search.option.label)return this.sortedChannel;const e=this.search.text;return this.sortedChannel.filter((t=>{var a;return!!t&&(t.title.toLowerCase().includes(e)||(null===(a=t.id)||void 0===a?void 0:a.includes(e)))}))},recommendChannels(){const e=5,t=this.filteredChannels.length,a=Math.ceil(t/e);while(this.recommendPage>a)this.recommendPage-=a;const n=[],o=this.recommendPage*e;for(let i=0;i<5;i++){const e=o+i;this.filteredChannels[e]&&!this.followingChannels.some((t=>t.id===this.filteredChannels[e].id))&&n.push(this.filteredChannels[e])}return n},addedPostMap(){const e=Object.create(null);for(const t in l["a"].getters.abKeys){const a=l["a"].getters.abKeys[t];a.forEach((a=>{e[a.key]={type:t,infoHash:a.infoHash,playFile:a.playFile}}))}return e}},methods:{register(e,t,a){return M(this,void 0,void 0,(function*(){this.isFirstRegister=!0,yield this.logout();const n=yield Object(o["z"])(e,t,a);return Object(r["c"])(),n}))},login(e){return M(this,void 0,void 0,(function*(){return this.isLibAdmin=!1,this.isLoggedIn?(console.log("should logged out",this.user),Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,console.log("relogin"),this.login(e)):(setTimeout((()=>{!this.followingChannels.length&&this.isLoggedIn&&this.updateFollow()}),1e4),Object(o["w"])(e))}))},logout(){return M(this,void 0,void 0,(function*(){this.isLibAdmin=!1,Object(o["x"])(),yield new Promise((e=>setTimeout(e,1e3))),this.user=null,this.userData={blockChannels:[],blockUsers:[]},this.followingChannels=[],this.ownedChannels=[]}))},prepareData(){var e;return M(this,void 0,void 0,(function*(){if(console.log("prepare data"),this.updateRecommends(),this.user=Object(o["u"])(),this.userData=Object(o["t"])().data,!this.user._||!this.user._.sea)throw new Error("User is not logged in");localStorage.setItem(`library-pair@${o["e"]}`,JSON.stringify(this.user._.sea)),this.isLibAdmin=v(null===(e=this.user.is)||void 0===e?void 0:e.pub),this.$emit("logged-in"),this.libStatus="fetch",yield this.getAllChannels(),this.updateOwn(),console.time("> lib: get private data"),yield this.updateFollow(),console.timeEnd("> lib: get private data"),this.libStatus="ready",H(),O(),this.takedownList=P(),this.takedownExtraList=q(),console.log("Takedown list:",this.takedownList)}))},isBannedChannel(e){return!!this.bannedUsers.includes(e.creator)||!!this.bannedChannels.includes(e.id)},isBannedPost(e){return!!this.bannedPosts.includes(e.id)},isValidRate(e){const t=l["a"].getters.settings.libraryRate,a=W.indexOf(e),n=W.indexOf(t);return a<=n},getAllChannels(){return M(this,void 0,void 0,(function*(){return V||(V=new Promise((e=>M(this,void 0,void 0,(function*(){const t=yield Object(o["k"])();if(t===this.allChannelList)return e();Object(d["a"])("get channel list",t,t.length),this.$set(this,"allChannelList",t),e()})))),V)}))},getRandomChannels(e,t){const a=this.followingChannels.map((e=>e.id)),n=(0===this.recommendIdList.length?this.channelList:this.recommendIdList.map((e=>this.channelList.find((t=>t.id===e))))).filter((e=>e&&!a.includes(e.id))),o=n.filter((e=>!e.hidden&&(!Array.isArray(t)||!t.includes(e.id))));if(0===o.length&&l["a"].getters.settings.libraryShowAllChannels){const e=this.channelList.filter((e=>!e.hidden&&(!!this.recommendIdList.includes(e.id)&&(!Array.isArray(t)||!t.includes(e.id)))));e.length&&o.push(...e)}if(o.length<=e)return o;for(let i=o.length-1;i>0;i--){const e=Math.floor(Math.random()*(i+1));[o[i],o[e]]=[o[e],o[i]]}if(b.a.library.recommends){const e=navigator.language,t=b.a.library.recommends[e]||b.a.library.recommends.default;if(t.length)for(let a=0;a(Object(d["a"])("Created new channel",e.id,e),Q.allChannelList.find((t=>!!t.id&&t.id===e.id))||e.id&&Q.allChannelList.push(e),setTimeout((()=>{Object(o["j"])(e.id).then((e=>{Object(r["c"])()}))}),1e3),e)))):null}))},editChannel(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["f"])(e,t);return Object(r["c"])(),a}))},removeChannel(e){return M(this,void 0,void 0,(function*(){const t=yield Object(o["A"])(e).then((t=>(Object(d["a"])("Removed",t,e),setTimeout((()=>Object(o["A"])(e)),1e3),t)));return Object(r["c"])(),t}))},createPost(e,t){return M(this,void 0,void 0,(function*(){if(!this.isLoggedIn)return null;const a=yield Object(o["b"])(t,e);return Object(r["c"])(),Q.getChannelPosts(t,!1).then((t=>{t.find((t=>!!t.id&&t.id===e.id))||e.id&&t.push(e)})),a}))},addPosts(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["c"])(t,e);return Object(r["c"])(),a}))},editPost(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["g"])(e,t,a);return Object(r["c"])(),n}))},removePost(e,t){return M(this,void 0,void 0,(function*(){const a=yield Object(o["B"])(t,e);return Object(r["c"])(),a}))},getChannelById(e){return Object(o["l"])(e)},getChannelPosts(e,t){return M(this,void 0,void 0,(function*(){return Object(o["o"])(e,t||!1)}))},getChannelPostIds(e,t){return M(this,void 0,void 0,(function*(){return Object(o["q"])(e,t||!1)}))},getPostById(e,t,a){return M(this,void 0,void 0,(function*(){return Object(o["p"])(e,t,a)}))},followChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: follow",e);const t=yield Promise.race([new Promise((t=>{setTimeout((()=>{this.followingChannels.some((t=>t.id===e))?t(null):Object(o["j"])(e).then(t)}),1500)})),Object(o["j"])(e)]);return this.isFirstRegister=!1,Object(r["c"])(),t}))},unfollowChannel(e){return M(this,void 0,void 0,(function*(){Object(d["a"])("lib: unfollow",e);const t=yield Object(o["E"])(e);return Object(r["c"])(),t}))},blockChannel(e){return Object(o["d"])("channel",e)},blockUser(e){return Object(o["d"])("user",e)},unblockChannel(e){return Object(o["D"])("channel",e)},unblockUser(e){return Object(o["D"])("user",e)},takedown(e,t,a){return M(this,void 0,void 0,(function*(){const n=yield Object(o["C"])(e,t,a);return console.log("Takedown result",n),n}))},setSearchOption(e){this.search.options=e,this.search.text="",e.length&&(this.search.option=e[0])},todo(e){s["a"].create(`Incomplete. info: ${e}`)}},created(){setTimeout((()=>{this.getAllChannels(),this.updateRecommends()}),2e3),z();const e=new Set;console.log("[lib] created"),Object(d["b"])((t=>{e.has(t)||Object(r["a"])(t)}));const t=new Set;setInterval((()=>{var e,a;const n=Object.values(o["v"]._.opt.peers);let i=!1;if(n.length){for(const t of n)if((null===(e=null===t||void 0===t?void 0:t.wire)||void 0===e?void 0:e.readyState)===WebSocket.OPEN&&(this.online=!0,this.onlineStatus="connected",i=!0),t.wire instanceof WebSocket){const e={type:"ws",url:t.url,status:(null===(a=t.wire)||void 0===a?void 0:a.readyState)||0},n=this.gunPeers.findIndex((t=>t.url===e.url));-1!==n?this.$set(this.gunPeers,n,e):this.gunPeers.push(e)}this.gunPeers.forEach((e=>{"wrtc"!==e.type&&(n.find((t=>t.url===e.url||t.id===e.url))||this.$set(e,"status",WebSocket.CLOSED))}))}else this.online=!1,"connected"===this.onlineStatus&&(this.onlineStatus="reconnecting");Object.values(r["d"]).forEach((e=>{var t;const a={closed:WebSocket.CLOSED,connected:WebSocket.OPEN,connecting:WebSocket.CONNECTING,disconnected:WebSocket.CLOSED,failed:WebSocket.CLOSED,new:WebSocket.CONNECTING}[e.connectionState];a===WebSocket.OPEN&&(i=!0);const n={type:"wrtc",url:e.id,from:e._from,status:a,statusText:e.connectionState,label:Object(u["f"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||""),syncState:e.syncState,remoteSyncState:e.remoteSyncState,downloaded:e.downloaded,downloadSpeed:e.downloadSpeed,uploaded:e.uploaded,uploadSpeed:e.uploadSpeed},o=this.gunPeers.findIndex((e=>e.url===n.url));-1!==o?this.$set(this.gunPeers,o,n):this.gunPeers.push(n)}));for(let o=0;o0},attrs:{rounded:"",color:"primary",icon:e.selected.length?"star":void 0,label:e.selected.length?e.$t("follow_channels_and_continue",[e.selected.length]):e.$t("follow_any_channel_to_continue"),disable:!e.selected.length},on:{click:e.onFollow}}),a("q-btn",{staticClass:"action-btn q-px-sm q-mr-xl",attrs:{rounded:"",color:"primary",icon:"refresh",label:e.$t("show_more_for_me")},on:{click:e.loadMore}})],1)],2)])},o=[],i=(a("de6c"),a("fb31")),r=a.n(i),s=a("36a1"),l={name:"LibraryRecommend",props:{fullscreen:Boolean},data(){return{initTimer:null,badImage:[],recommends:[],selected:[],lib:s["a"]}},computed:{autoSelectIds(){const e=navigator.language,t=r.a.library.recommends;return t[e]?t[e]:t.default},followings(){return s["a"].followingChannels.map((e=>e.id))},filteredRecommends(){const e=s["a"].recommendIdList.length?this.recommends.filter((e=>s["a"].recommendIdList.includes(e.id))):this.recommends;if(!s["a"].userData)return e;const{blockChannels:t,blockUsers:a}=s["a"].userData;return t&&a?e.filter(((n,o)=>e.findIndex((e=>e.id===n.id))===o&&!t.includes(n.id)&&!a.includes(n.creator))):e}},watch:{filteredRecommends(e){if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}},methods:{async initRecommends(){this.getRecommends(),this.$root.$emit("navigate-to"),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}))},getRecommends(){const e=this.lib.getRandomChannels(5);this.recommends.splice(0,5,...e),0===e.length&&setTimeout((()=>{this.getRecommends()}),2e3)},loadMore(){const e=this.lib.getRandomChannels(6,this.recommends.map((e=>e.id)));if(!e.length)return this.$q.dialog({message:this.$t("no_more_recommend"),ok:this.$t("ok")});this.recommends.push(...e),this.$nextTick((()=>{if(this.autoSelectIds.length)for(const t of this.autoSelectIds)!this.selected.includes(t)&&e.find((e=>e.id===t))&&this.selected.push(t)}))},select(e){this.selected.includes(e)?this.selected.splice(this.selected.indexOf(e),1):this.selected.push(e)},onFollow(){for(const e of this.selected)s["a"].followChannel(e);this.selected.splice(0),this.autoSelectIds.length&&setTimeout((()=>{for(const e of this.autoSelectIds)!this.selected.includes(e)&&this.filteredRecommends.find((t=>t.id===e))&&this.selected.push(e)}),5e3)},onImageError(e){this.badImage.push(e)},onImageLoaded(e){-1!==this.badImage.indexOf(e)&&this.badImage.splice(this.badImage.indexOf(e),1)}},mounted(){const e=()=>{var t;"signedIn"===(null===(t=this.$store.state.account)||void 0===t?void 0:t.authState)?this.initTimer=setTimeout((()=>{this.initRecommends()}),500):this.initTimer=setTimeout(e,1e3)};e()},beforeDestroy(){clearTimeout(this.initTimer)}},c=l,d=(a("7895"),a("2b5f")),u=a("e586"),_=a("d7c7"),p=a("f106"),m=a("1043"),h=a("4101"),g=a("09a4"),f=a.n(g),b=Object(d["a"])(c,n,o,!1,null,"0d732dc4",null);t["a"]=b.exports;f()(b,"components",{QCard:u["a"],QCardSection:_["a"],QIcon:p["a"],QBtn:m["a"],QColor:h["a"]})},37:function(e,t){},"38d2":function(e,t,a){},"39df":function(e,t,a){"use strict";a.r(t);var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"development-container",class:{large:e.isElectron}},[a("q-card",{attrs:{flat:"",square:""}},[a("q-tabs",{attrs:{align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},e._l(e.tabs,(function(t){return a("q-tab",e._b({key:t.name},"q-tab",t,!1))})),1),a("q-separator"),a("q-tab-panels",{staticClass:"panels",attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[a("q-tab-panel",{attrs:{name:"BasicPanel"}},[a("BasicPanel")],1),a("q-tab-panel",{attrs:{name:"accountInfo"}},[a("account-tab-panel")],1),a("q-tab-panel",{attrs:{name:"amplify"}},[a("amplify-tab-panel")],1),a("q-tab-panel",{attrs:{name:"devInfo"}},[a("dev-info-tab-panel")],1),a("q-tab-panel",{attrs:{name:"capacitorTest"}},[a("CapacitorTest")],1),a("q-tab-panel",{attrs:{name:"urlConvert"}},[a("url-convert")],1),a("q-tab-panel",{attrs:{name:"libraryData"}},[a("library-data")],1),a("q-tab-panel",{attrs:{name:"libraryPreload"}},[a("LibraryPreload")],1),a("q-tab-panel",{attrs:{name:"payment_mode"}},[a("payment-mode")],1),a("q-tab-panel",{attrs:{name:"theme_panel"}},[a("ThemeTabPanel")],1)],1)],1)],1)},o=[],i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticClass:"panel"},e._l(e.handlersData,(function(t){var n=t[0],o=t[1];return a("q-btn",e._b({key:n.key,attrs:{"no-caps":"",unelevated:""},on:{click:o}},"q-btn",n,!1))})),1),a("q-separator"),a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v("Dynamic Config")]),a("div",{staticStyle:{"white-space":"pre-wrap"}},[e._v(e._s(JSON.stringify(e.d$cfg,null,2)))])]),a("q-separator"),a("q-card-section")],1)},r=[],s=(a("de6c"),a("a1c1"),a("91ab")),l=a("d310");const c=a("d310").isElectron();var d={name:"BasicPanel",data(){return{handlers:[[{color:"positive",icon:"bug_report"},this.openWebtorrentDevTools],[{color:"positive",icon:"refresh"},this.reloadWebTorrent],[{color:"negative",icon:"delete_forever"},this.delete_config],[{color:"negative",icon:"delete"},this.clearBlockchainConfig],this.getUsersLanguage,this.getVueLocale,this.getLocale]}},computed:{handlersData(){return this.handlers.map((e=>Array.isArray(e)?e:[{},e])).map((([e,t])=>{e=Object.assign({key:t.name.substring(6),label:Object(s["a"])(t.name.substring(6)).replace(/-/g," "),color:"general",textColor:e.color||"general"},e);const a=async()=>{const e=t();e&&e.then&&await e};return[e,a]}))}},methods:{delete_config(){this.$q.electron.ipcRenderer.invoke("deleteConfig").then((e=>{this.$q.notify(e)}))},getLocale(){this.$q.notify(this.$q.lang.getLocale())},getVueLocale(){this.$q.notify(this.$i18n.locale)},getUsersLanguage(){l["localConfigs"].getSettingsItem("language").then((e=>{this.$q.notify({message:e,position:"bottom-right",type:"positive",timeout:3e3})})).catch((()=>{this.$q.notify({message:"未获取到数据项",position:"bottom-right",type:"negative",timeout:3e3})}))},openWebtorrentDevTools(){if(c)return a("b052").ipcRenderer.send("open-webtorrent-devtools")},reloadWebTorrent(){c&&(a("b052").ipcRenderer.send("reload-webtorrent-window"),this.$q.notify("WebTorrent window is reloaded"))},async clearBlockchainConfig(){await new Promise((e=>setTimeout(e,2e3))),await window.$blockchain.$store.account.deleteCurrentAccount(),localStorage.removeItem("blockchain.network");const e=window.$blockchain.network.getNetworkConfig();window.$blockchain.network.updateNetworkConfig(e),location.reload()}}},u=d,_=(a("bc42"),a("2b5f")),p=a("1043"),m=a("fc38"),h=a("d7c7"),g=a("09a4"),f=a.n(g),b=Object(_["a"])(u,i,r,!1,null,"60f74c22",null),y=b.exports;f()(b,"components",{QBtn:p["a"],QSeparator:m["a"],QCardSection:h["a"]});var v=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{staticStyle:{margin:"-4px"}},e._l(e.$account.$test,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{unelevated:"",color:"general","text-color":"general","no-caps":"",label:n,disable:!!e.test$loadingState,loading:e.test$loadingState===n},on:{click:function(a){return e.test$withLoadingState(n,t)}}})})),1),a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-ma-sm"},[a("q-checkbox",{attrs:{label:"isTestEnv"},model:{value:e.isTest,callback:function(t){e.isTest=t},expression:"isTest"}})],1),a("h4",[e._v(e._s(e.$store.state.account.authState))]),"signedIn"===e.$store.state.account.authState?a("div",{staticClass:"row",staticStyle:{margin:"-4px"}},[e._l(e.$store.getters.accountUserInfo,(function(t,n){return[Array.isArray(t)?[a("div",{key:n,staticClass:"col-12 col-lg-6 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden",attrs:{flat:"",bordered:""}},[Array.isArray(t)?a("q-expansion-item",{attrs:{"content-inset-level":.4,label:n}},e._l(t,(function(t,n){return a("div",{key:n},[e._v(e._s(t)+"\n ")])})),0):e._e()],1)],1)]:[a("div",{key:n,staticClass:"col-6 col-sm-3 col-lg-2 q-pa-xs"},[a("q-card",{staticClass:"overflow-hidden q-px-md q-py-sm",staticStyle:{"min-height":"66px"},attrs:{flat:"",bordered:""}},[a("div",{staticClass:"text-capitalize",staticStyle:{"font-size":"0.8rem",opacity:"0.8"}},[e._v(e._s(n)+"\n ")]),a("div",{staticClass:"text-weight-bold text-no-wrap ellipsis"},[e._v(e._s(t))])])],1)]]}))],2):e._e(),"signedIn"===e.$store.state.account.authState?[a("q-separator",{staticStyle:{margin:"16px -16px"}}),a("div",{staticClass:"q-mb-sm"},[a("q-input",{staticStyle:{"max-width":"300px"},attrs:{label:"TestToken",dense:"",outlined:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.testToken,callback:function(t){e.testToken=t},expression:"testToken"}})],1),a("div",[a("alphabiz-button",{attrs:{label:"Add Credits 100","on-click":e.addCredits}})],1)]:e._e()],2)},w=[],k=a("e75b");const S=new k["a"].Rest("ABDevRest");var C={name:"AccountTabPanel",data(){return{test$loadingState:null,testToken:""}},computed:{isTest:{get(){return this.$root.isTestEnv},set(e){this.$root.isTestEnv=e}}},methods:{async test$withLoadingState(e,t){try{this.test$loadingState=e,await t()}finally{this.test$loadingState=null}},async addCredits(){try{const e=await S.post("/development/addCredits",{testToken:this.testToken});console.log(e)}catch(e){this.$q.notify({message:e.message,type:"negative",position:"bottom-right",timeout:5e3})}}}},x=C,$=a("7498"),T=a("e586"),z=a("5bbd"),P=a("0e45"),A=Object(_["a"])(x,v,w,!1,null,"2975ce9d",null),I=A.exports;f()(A,"components",{QBtn:p["a"],QSeparator:m["a"],QCheckbox:$["a"],QCard:T["a"],QExpansionItem:z["a"],QInput:P["a"]});var q=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{margin:"-12px"}},[a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event"},on:{click:e.dispatchPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"send public event"},on:{click:e.sendPublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"subscribe public event"},on:{click:e.subscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"unsubscribe public event"},on:{click:e.unsubscribePublicEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dispatch public event [legacy]"},on:{click:e.dispatchPublicEventLegacy}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"rest_dev"},on:{click:e.restDev}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"regInfo"},on:{click:e.regInfo}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"dialog"},on:{click:e.dialog}}),a("q-separator",{staticClass:"q-my-xs",attrs:{color:"general"}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:trigger_event"},on:{click:e.triggerAnalyticsEvent}}),a("q-btn",{attrs:{flat:"","no-caps":"",label:"analytics:updateEndpoint"},on:{click:e.updateEndpoint}})],1)},O=[],E=(a("d4b5"),a("61af")),D=a.n(E),j=a("bbac"),N=a("229c");const L=new k["a"].Rest("ABDevRest"),U={mounted(){N["a"].$debug()},methods:{async updateEndpoint(){const e=await N["a"].updateEndpoint({attributes:{foo:"bar"},immediate:!0});console.log("updateEndpoint:",e)},async triggerAnalyticsEvent(){console.log("triggerAnalyticsEvent:","sending");const e=await N["a"].record({immediate:!0,name:"test_analytics",attributes:{source:"triggerAnalyticsEvent"},metrics:{foobar:Math.floor(1e3*Math.random())}});console.log("triggerAnalyticsEvent:","sent",e)}}};var R={name:"AmplifyTabPanel",mixins:[U],data(){return{currentLoadingState:!1}},methods:{async dispatchPublicEvent(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"9865c315-e778-4de3-8045-1af79eba7fb4",channel:"foo_channel",data:JSON.stringify({a:213123,b:"lorem-server"})});console.log(e)},async dispatchPublicEventLegacy(){const e=await L.postGuest("/development/dispatchPublicEvent",{id:"*",channel:"foo_channel-legacy",legacy:!0,data:JSON.stringify({a:213123,b:"lorem-server-legacy"})});console.log(e)},async sendPublicEvent(){},async subscribePublicEvent(){},async unsubscribePublicEvent(){},async dialog(){const e=this.$alphabiz.dialog({title:"Tel",prompts:{tel:{type:"tel",model:{countryCode:null,prefixCode:null,phoneNumber:""}}}}),t=await e.promise("ok");console.log(t)},async restDev(){const e=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},t=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e},a=t(),n=await e(a);if(!n)return;const o=this.$root.$children[0];console.log(n.path),o.lib$openABK(n.path)},async regInfo(){let e=null;const t=[],a=()=>L.post("/development/admin/query",{token:"asdasdasd",type:"reg_info",pagination_token:e});while(e||null===e)await a().then((({data:a})=>{e=a.PaginationToken,t.push(...a.Users),console.log(`queried ${t.length} (+${a.Users.length})`,a.PaginationToken)}));console.log("save users",t);const n=async e=>{const t=e=>{const t={};return t.username=e.Username,t.user_status=e.UserStatus,t.user_create_date=e.UserCreateDate,t.user_last_modified_date=e.UserLastModifiedDate,e.Attributes.forEach((({Name:e,Value:a})=>{t[`attr_${e}`]=a})),t},a=e.map(t),n=(()=>{let e=[];return a.forEach((t=>{const a=Object.keys(t);a.length>e.length&&(e=a)})),e=e.map((e=>({header:e,key:e}))),e})();console.log("columns",n);const o=a.map((e=>{const t=[];return n.forEach((a=>{var n;t.push(null!==(n=e[a.key])&&void 0!==n?n:"null")})),t})),i=await new Promise(((e,t)=>{Object(j["stringify"])(o,{header:!0,columns:n},((a,n)=>{a?t(a):e(n)}))}));return i};n(t).then((e=>{console.log("csv saving...",e),D.a.writeFileSync("./users.csv",e),console.log("done")}))}}},M=R,F=Object(_["a"])(M,q,O,!1,null,null,null),B=F.exports;f()(F,"components",{QSeparator:m["a"],QBtn:p["a"]});var W=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e.devInfo.torrentStore?a("div",{staticClass:"full-width"},[e._v("Torrent Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.torrentStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetTorrent}}),a("pre",[e._v(e._s(e.devInfo.torrentStore))])],1):e._e(),e.devInfo.settingStore?a("div",{staticClass:"full-width"},[e._v("Setting Config Store:\n "),a("alphabiz-button",{staticClass:"dev-info-action q-ml-md",attrs:{label:"Open"},on:{click:function(t){return e.open(e.devInfo.settingStore)}}}),a("alphabiz-button",{staticClass:"dev-info-action q-ml-sm",attrs:{label:"Reset"},on:{click:e.resetSetting}}),a("pre",[e._v(e._s(e.devInfo.settingStore))])],1):e._e(),e._v("\n We are using\n "),e.devInfo.electronVer?a("div",{staticClass:"full-width"},[e._v("Electron "+e._s(e.devInfo.electronVer)+"\n ")]):e._e(),e.devInfo.chromeVer?a("div",{staticClass:"full-width"},[e._v("Chrome "+e._s(e.devInfo.chromeVer)+"\n ")]):e._e(),e.devInfo.nodeVer?a("div",{staticClass:"full-width"},[e._v("Node "+e._s(e.devInfo.nodeVer)+"\n ")]):e._e(),a("div",[e._v("Quasar "+e._s(e.$q.version))]),a("div",[e._v("Vue "+e._s(e.vueVersion))]),a("div",[e._v(" "+e._s(e.$q.platform))]),e.devInfo.isCapacitor?a("div",{staticClass:"is-capacitor"},[e._v("[ Capacitor(Mobile) Mode ]")]):e._e(),e.devInfo.processArgv?a("div",{staticClass:"full-width"},[e._v("Process Argv "+e._s(e.devInfo.processArgv))]):e._e(),a("div",{staticClass:"full-width"},[e._v("Platform info: "+e._s(e.devInfo.platformInfo))]),a("div",{staticClass:"full-width"},[e._v("Location href: "+e._s(e.devInfo.locationHref))]),a("q-btn",{attrs:{color:"primary",icon:"aod",label:"capacitor test"},on:{click:e.testCapacitor}})],1)},H=[],V=a("ff9b"),Q=a("908d"),G=a("d7df"),K=a("d558");const Y=a("d310").isElectron(),J=Y?a("b052").ipcRenderer:null;var Z={name:"DevInfoTabPanel",data(){return console.log("PLATFORM",Q["b"].is,location),{io:G["a"],devInfo:{torrentStore:"",settingStore:"",platformInfo:Q["b"].is,locationHref:location.href,isCapacitor:Object(K["a"])()}}},methods:{open(e){this.io.emit("show_torrent_file",e)},resetTorrent(){Y&&J.send("reset-torrent")},resetSetting(){this.$store.dispatch("resetSettings").then((e=>{this.$i18n.locale=e.language,this.$q.notify("Reset success")}))},testCapacitor(){fetch("http://localhost:25742",{mode:"cors"}).then((e=>e.json())).then((e=>{console.log("CAPACITOR test success",e),this.$q.dialog({html:!0,message:"
"+JSON.stringify(e,null,2)+"
",ok:!0})})).catch((e=>{console.log("CAPACITOR test failed",e),console.log(e.message),console.log(e.stack),this.$q.dialog({message:e.message||e,ok:!0})}))}},mounted(){Y&&(J.on("dev-info",((e,t)=>{t.torrentStore&&(this.devInfo.torrentStore=t.torrentStore),t.settingStore&&(this.devInfo.settingStore=t.settingStore),t.electronVer&&(this.devInfo.electronVer=t.electronVer),t.chromeVer&&(this.devInfo.chromeVer=t.chromeVer),t.nodeVer&&(this.devInfo.nodeVer=t.nodeVer),t.argv&&(this.devInfo.processArgv=t.argv)})),J.send("dev-info")),this.io.off("notify",this.notify),this.io.on("notify",this.notify)},computed:{vueVersion(){return V["a"].version}}},X=Z,ee=(a("3fc8"),Object(_["a"])(X,W,H,!1,null,"39f109b1",null)),te=ee.exports;f()(ee,"components",{QBtn:p["a"]});var ae=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[e._v("\n Alphabiz URL Convert\n "),a("q-input",{staticClass:"q-my-md",attrs:{type:"text",label:"source url"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.url,callback:function(t){e.url=t},expression:"url"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Convert"},on:{click:e.convert}})],1)},ne=[],oe=a("c5a5"),ie={name:"DevInfoTabPanel",data(){return{url:""}},methods:{convert(){Object(oe["a"])(this.url).then((e=>{this.url=e})).catch((e=>{console.error(e)}))}}},re=ie,se=Object(_["a"])(re,ae,ne,!1,null,"19fc1694",null),le=se.exports;f()(se,"components",{QInput:P["a"],QBtn:p["a"]});var ce=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-data"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"text-h6 q-py-md"},[e._v("Media Library Database")]),a("div",{staticClass:"current-lib-status"},[e._v("There are "+e._s(e.entriesCount)+" entries in library")]),a("q-btn",{attrs:{color:"primary",icon:"save",label:"Export"},on:{click:e.saveDb}}),a("FileSelector",{on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",icon:"upload_file",label:"Import"}})],1),a("br"),a("q-btn",{staticClass:"q-mt-md",attrs:{color:"primary",icon:"bug_report",label:"Library Debug Log"},on:{click:function(t){e.showDebugLog=!0}}}),a("q-dialog",{model:{value:e.showDebugLog,callback:function(t){e.showDebugLog=t},expression:"showDebugLog"}},[a("q-card",{staticStyle:{"max-width":"80%"}},[a("q-card-section",[a("DebugLog")],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",color:"primary",icon:"close",label:"Close"}})],1)],1)],1)],1)},de=[],ue=a("2d62"),_e=a("3aea"),pe=a("5515"),me=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"debug-logs row col-12 q-pa-md"},[a("p",{staticClass:"col-12 q-mt-none",staticStyle:{"font-size":"24px"}},[e._v("Debug pannel")]),a("div",{staticClass:"peers col-6 q-pa-sm",staticStyle:{border:"1px solid gainsboro"}},e._l(e.peers,(function(t){return a("div",{key:t.url,staticClass:"peer"},[a("div",{staticClass:"status"},[a("q-badge",{attrs:{label:t.type}}),a("span",{directives:[{name:"show",rawName:"v-show",value:"wrtc"!==t.type,expression:"peer.type !== 'wrtc'"}],class:"connected"===t.status?"text-green":"text-grey"},[e._v("\n [ "+e._s(t.status)+" ]\n ")]),t.from?a("span",{staticClass:"text-green"},[e._v("[ "+e._s(t.from)+" ]")]):e._e(),a("span",[e._v(e._s(t.url))]),t.remoteSyncState?a("q-icon",{attrs:{color:"primary",name:t.stateIcon}},[a("q-tooltip",[a("span",[e._v("Local sync state: "+e._s(t.syncState))]),a("br"),a("span",[e._v("Remote sync state: "+e._s(t.remoteSyncState))])])],1):e._e()],1)])})),0),a("div",{staticClass:"logs col q-px-sm"},[e._v("\n --info--\n "),a("div",{staticClass:"user"},[e._v("User "+e._s(e.userInfo))]),a("div",{staticClass:"channels"},[e._v("Channels("+e._s(e.channels.length)+"): [\n "),e._l(e.channels,(function(t){return a("div",{key:t.id,staticClass:"channel q-ml-sm"},[e._v("\n "+e._s(t.title)+"\n "),a("span",{staticClass:"text-grey"},[e._v("UID: "+e._s(t.id))])])})),e._v("\n ]\n ")],2)])])},he=[],ge=a("36a1"),fe={data(){return{lib:ge["a"]}},computed:{peers(){const e=[];return this.lib.gunPeers.forEach((t=>{let a="";switch(t.status){case WebSocket.CONNECTING:a="connecting";break;case WebSocket.OPEN:a="connected";break;case WebSocket.CLOSED:a="closed";break;case WebSocket.CLOSING:a="closing";break}let n="arrow_downward";"completed"===t.remoteSyncState?n="completed"===t.syncState?"done_all":"arrow_upward":"completed"!==t.syncState&&(n="sync"),e.push({from:t.from,url:t.label||t.url,type:t.type,syncState:t.syncState,remoteSyncState:t.remoteSyncState,stateIcon:n,status:a})})),e},userInfo(){var e;const t=this.lib.user;return`UID: ${null===t||void 0===t||null===(e=t.is)||void 0===e?void 0:e.pub}`},channels(){return this.lib.channelList.map((e=>({title:e.title,id:e.id})))}}},be=fe,ye=(a("28c4"),a("90c4")),ve=a("f106"),we=a("cf25"),ke=Object(_["a"])(be,me,he,!1,null,null,null),Se=ke.exports;f()(ke,"components",{QBadge:ye["a"],QIcon:ve["a"],QTooltip:we["a"]});var Ce=a("d710"),xe=a.n(Ce),$e=a("9a50"),Te={components:{DebugLog:Se,FileSelector:$e["a"]},name:"LibraryData",data(){return{entriesCount:Object.keys(ue["v"]._.graph).length,showDebugLog:!1,countInterval:null}},methods:{parseLib(){},saveDb(){Object(_e["h"])(JSON.stringify({timestamp:Date.now(),graph:ue["v"]._.graph}),`${xe.a.name}-library-${Date.now()}.json`)},importDb(){this.$refs.fileSelector.click()},put(e){Object(pe["b"])(e),this.$q.notify(`Successfully import ${Object.keys(e).length} entries`)},onFileChange(e){e&&Object(_e["g"])(e).then((e=>{const t=JSON.parse(e);if(!t.graph)return this.$q.notify(`This JSON file is not an ${xe.a.name} library db`);Date.now()-t.timestamp>6048e5?this.$q.dialog({title:"DB file too old",message:"This database file is created long time ago and may not be latest. Latest version of data will overwrite this db. Still import it?",ok:"Import anyway",cancel:"No",persistent:!0}).onOk((()=>{this.put(t.graph)})):console.log("Loaded db")}))}},created(){clearInterval(this.countInterval),this.countInterval=setInterval((()=>{this.entriesCount=Object.keys(ue["v"]._.graph).length}),1e3)},beforeDestroy(){clearInterval(this.countInterval)}},ze=Te,Pe=a("b2aa"),Ae=a("59ba"),Ie=a("a431"),qe=Object(_["a"])(ze,ce,de,!1,null,"0442e706",null),Oe=qe.exports;f()(qe,"components",{QBtn:p["a"],QDialog:Pe["a"],QCard:T["a"],QCardSection:h["a"],QCardActions:Ae["a"]}),f()(qe,"directives",{ClosePopup:Ie["a"]});var Ee=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v("\n Payment Mode\n ")]),a("q-toggle",{model:{value:e.dp$toggle,callback:function(t){e.dp$toggle=t},expression:"dp$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":e.paymentColor,color:e.paymentColor}},[e._v("\n "+e._s(e.paymentLabel)+"\n ")])],1)],1),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Address",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$address))])]},proxy:!0}])}),a("q-field",{staticClass:"q-my-xs",staticStyle:{width:"640px"},attrs:{label:"Current Credits",outlined:"","stack-label":"",dense:""},scopedSlots:e._u([{key:"control",fn:function(){return[a("div",{staticClass:"self-center full-width no-outline",attrs:{tabindex:"0"}},[e._v(e._s(e.dp$credit))])]},proxy:!0}])}),a("q-list",{staticClass:"q-my-md rounded-borders overflow-hidden non-selectable",staticStyle:{width:"640px",border:"1px solid rgba(127,127,127,0.35)"}},[a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:!this.dp$toggle,expression:"!this.dp$toggle"}],attrs:{tag:"label",disable:!this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showCreditPage,disable:!this.dp$toggle,val:"teal",color:"teal"},on:{input:function(t){return e.leftDrawer.showCreditPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Amplify Credits Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1),a("q-item",{directives:[{name:"ripple",rawName:"v-ripple",value:this.dp$toggle,expression:"this.dp$toggle"}],attrs:{tag:"label",disable:this.dp$toggle}},[a("q-item-section",{attrs:{avatar:""}},[a("q-checkbox",{attrs:{value:e.leftDrawer.showBlockchainPage,disable:this.dp$toggle,val:"orange",color:"orange"},on:{input:function(t){return e.leftDrawer.showBlockchainPage=t}}})],1),a("q-item-section",[a("q-item-label",[e._v("Blockchain Account Page")]),a("q-item-label",{attrs:{caption:""}},[e._v("\n Lorem ipsum dolor sit amet, consectetur adipisicing elit. Autem debitis distinctio dolor, doloribus ex harum\n ipsa ipsum molestias nihil, nisi non nulla numquam placeat possimus quae rem sapiente sunt voluptatum.\n ")])],1)],1)],1),!e.dp$toggle&&e.$store.state.credits.providentFund?a("q-toggle",{model:{value:e.pf$toggle,callback:function(t){e.pf$toggle=t},expression:"pf$toggle"}},[a("q-badge",{staticClass:"q-py-xs q-px-sm q-mx-xs",attrs:{"text-color":"general",color:"general"}},[e._v("\n ProvidentFund: "+e._s(e.$store.state.credits.providentFund.enable?"Enabled":"Disabled")+"\n ")])],1):e._e()],1)},De=[],je=a("09e8");const Ne={computed:{pf$toggle:{get(){const e=this.$store.state.credits.providentFund;if(!e){const e=localStorage.getItem("credit.providentFund");return!e||JSON.parse(e).enable}return e.enable},set(e){const t=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},e)})();t.enable=e,localStorage.setItem("credit.providentFund",JSON.stringify(t)),this.$store.commit("CREDIT_UPDATE",{"providentFund.enable":e})}}}};var Le={name:"PaymentMode",mixins:[je["a"],Ne],data(){return{changed:!1}},watch:{dp$toggle(e){e?(this.leftDrawer.showCreditPage=!1,this.leftDrawer.showBlockchainPage=!0):(this.leftDrawer.showCreditPage=!0,this.leftDrawer.showBlockchainPage=!1),this.changed=!this.changed,this.changed&&this.showRestartDialog()}},computed:{dp$toggle:{get(){return this.dp$mode?"blockchain"===this.dp$mode:"blockchain"===localStorage.getItem("dataPaymentMixin.mode")},set(e){this.dp$mode=e?"blockchain":"amplify"}},leftDrawer(){const e=this.$route.matched.find((e=>"MainLayout"===e.name)).instances.default;return e.$refs.leftDrawer},paymentLabel(){return this.dp$toggle?"Blockchain-based Service":"Managed Service (Amplify)"},paymentColor(){return this.dp$toggle?"accent":"positive"}},methods:{showRestartDialog(){this.$q.dialog({title:"Change Payment Mode",message:"you should restart application",ok:"Restart",cancel:"Undo"}).onOk((async()=>{a("d310").isElectron()&&a("b052").ipcRenderer.send("reload-webtorrent-window"),await this.$router.push({name:"Index"}),location.reload()})).onCancel((()=>{this.dp$toggle=!this.dp$toggle}))}}},Ue=Le,Re=a("03bd"),Me=a("b121"),Fe=a("e7c2"),Be=a("b329"),We=a("25fb"),He=a("79e0"),Ve=a("719b"),Qe=Object(_["a"])(Ue,Ee,De,!1,null,"34cd40b6",null),Ge=Qe.exports;f()(Qe,"components",{QToggle:Re["a"],QBadge:ye["a"],QField:Me["a"],QList:Fe["a"],QItem:Be["a"],QItemSection:We["a"],QCheckbox:$["a"],QItemLabel:He["a"]}),f()(Qe,"directives",{Ripple:Ve["a"]});var Ke=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-preload"},[a("q-checkbox",{staticClass:"q-mr-lg",attrs:{value:e.libraryPreload,label:"Enable preload"},on:{input:e.changePreload}}),a("q-checkbox",{directives:[{name:"show",rawName:"v-show",value:e.libraryPreload,expression:"libraryPreload"}],attrs:{value:e.showPreload,label:"Show preload tasks"},on:{input:e.changeShowPreload}}),a("div",{staticClass:"preload-tasks"},e._l(e.preloadTasks,(function(t,n){return a("div",{key:t.abUrl,staticClass:"preload-task q-ma-xs"},[a("div",{staticClass:"task-name q-mr-xs"},[e._v(e._s(n+1)+". "+e._s(t.postTitle||t.torrent&&(t.torrent.postTitle||t.torrent.name)||t.abUrl))]),a("span",{staticClass:"status"},[e._v("Status:\n "),t.failed?a("span",{staticClass:"status-text text-red"},[e._v("Failed")]):t.torrentPath?a("span",{staticClass:"status-text",class:2===t.torrent.preloadStatus?"text-green":""},[e._v("\n "+e._s(2===t.torrent.preloadStatus?"Downloaded":"Downloading")+"\n ")]):a("span",{staticClass:"status-text text-grey"},[e._v("Loading")])]),t.torrent&&2===t.torrent.preloadStatus?a("span",{staticClass:"q-ml-sm"},[a("span",{staticClass:"downloaded"},[e._v("Preload size:")]),a("span",{staticClass:"downloaded-size q-mx-xs"},[e._v(e._s(e.byteToLarger(t.torrent.downloaded)))]),a("q-btn",{attrs:{color:"general","no-caps":"",flat:"",dense:"",size:"xs"},on:{click:function(a){return e.showLocal(t.torrent)}}},[a("q-icon",{attrs:{name:"open_in_new",size:"14px"}}),a("span",{staticClass:"label",staticStyle:{"font-size":"14px"}},[e._v("Local files")])],1)],1):e._e()])})),0)],1)},Ye=[],Je=a("5584"),Ze=a("6422"),Xe={name:"LibraryPreload",data(){return{libraryPreload:Je["a"].state.setting.libraryPreload,showPreload:Je["a"].state.setting.showPreload,preloadTasks:[]}},methods:{byteToLarger(e){return Object(Ze["a"])(e,{gb:!1,byte:!1})},async changePreload(){console.log("change preload"),await Je["a"].dispatch("set",{libraryPreload:!this.libraryPreload}),await Je["a"].dispatch("fetchSettings"),this.libraryPreload=Je["a"].state.setting.libraryPreload},async changeShowPreload(){console.log("change showPreload"),await Je["a"].dispatch("set",{showPreload:!this.showPreload}),await Je["a"].dispatch("fetchSettings"),this.showPreload=Je["a"].state.setting.showPreload},onPreloadTasks(e){this.preloadTasks=e},showLocal(e){G["a"].emit("show_torrent_file",e.path)}},mounted(){console.log("on mounted"),G["a"].on("preload-tasks",this.onPreloadTasks)},beforeDestroy(){console.log("on before destroy"),G["a"].off("preload-tasks",this.onPreloadTasks)}},et=Xe,tt=(a("f817"),Object(_["a"])(et,Ke,Ye,!1,null,"6f92a449",null)),at=tt.exports;f()(tt,"components",{QCheckbox:$["a"],QBtn:p["a"],QIcon:ve["a"]});var nt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"capacitor-test"},[a("q-input",{attrs:{value:e.forceLogin,type:"checkbox",label:"Force Login"},on:{change:e.changeForceLogin}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Network Check"},on:{click:e.checkNetwork}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Homedir Check"},on:{click:e.checkHomedir}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Write to clipboard"},on:{click:e.writeClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Copy from clipboard"},on:{click:e.readClipboard}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Crypto"},on:{click:e.checkCrypto}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Simulate wifi/cellular"},on:{click:e.changeNetworkType}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"ReadFile"},on:{click:e.checkReadFile}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"WriteFile"},on:{click:e.checkWriteFile}}),a("div",[a("q-input",{attrs:{type:"text",label:"Filepath"},model:{value:e.filepath,callback:function(t){e.filepath=t},expression:"filepath"}}),a("q-btn",{attrs:{color:"primary",icon:"check",label:"Get file uri"},on:{click:e.getFileUri}})],1),a("div",[a("FollowButton",{attrs:{id:"test",disableFollow:!1}}),a("FileSelector",{on:{select:e.onSelectFile}},[a("q-btn",{attrs:{color:"primary",icon:"folder",label:"File"}})],1)],1),a("div",{staticClass:"debug-logs"},e._l(e.logs,(function(t,n){return a("div",{key:n,staticClass:"log"},[a("span",{staticClass:"log-type"},[e._v(e._s(t.type))]),a("span",{staticClass:"log-value"},[e._v(e._s(t.value))])])})),0)],1)},ot=[],it=a("aa8a"),rt=a("c033"),st=a("a368"),lt=a("a749"),ct={name:"CapacitorCheck",data(){return{logs:[],filepath:"",forceLogin:Je["a"].state.setting.forceLogin,connectionType:"wifi"}},components:{FollowButton:rt["a"],FileSelector:$e["a"]},methods:{log(e,t,...a){this.logs||(this.logs=[]),this.logs.unshift({type:e,value:t}),a.length&&this.logs.unshift({type:e,value:a})},changeForceLogin(e){const t=!this.forceLogin;console.log("vla",e.target.value,this.forceLogin,t),this.forceLogin=t,Je["a"].dispatch("set",{forceLogin:t})},checkHomedir(){G["a"].once("homedir",(e=>this.log("Homedir",e))),G["a"].emit("get-homedir")},checkNetwork(){G["a"].emit("check-network")},onCheckProgress(e){console.log("network check progress",e),this.log(e.type,JSON.stringify(e.result))},onCheckEnd(e){console.log("network check end",e),this.log("isOnline",e.isOnline)},writeClipboard(){const e=Math.random().toString();this.log("Rand string",e),Object(it["b"])(e).then((()=>{this.log("Success",e)})).catch((e=>{this.log("Error",e)}))},async readClipboard(){const e=await Object(it["a"])();e?this.log("Read",e):this.log("Error",e)},onSelectFile(e){this.log("Select file",e,null===e||void 0===e?void 0:e.name,null===e||void 0===e?void 0:e.path,null===e||void 0===e?void 0:e.size)},checkCrypto(){const e=window.crypto;console.log(e),console.log(e.subtle),this.log("subtle",e.subtle),e.subtle&&this.log("digest",typeof e.subtle.digest)},async changeNetworkType(){const e="wifi"===this.connectionType?"cellular":"wifi";Object(lt["a"])({connected:!0,connectionType:e}),await new Promise(setTimeout);const t=await st["Network"].getStatus();this.connectionType=t.connectionType,this.log("Network status",t)},async checkReadFile(){const e=await st["Filesystem"].readFile({path:"some-file.txt",directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8});this.log("Read",e)},async checkWriteFile(){const e=Math.floor(5e4*Math.random())+12e3;await st["Filesystem"].writeFile({path:"some-file.txt",data:e.toString(),directory:st["Directory"].Documents,encoding:st["Encoding"].UTF8}),this.log("Write",e)},async getFileUri(){this.log("Raw",this.filepath);const e=await st["Filesystem"].getUri({path:this.filepath});this.log("URI result",e)}},mounted(){G["a"].on("check-network-result",this.onCheckProgress),G["a"].on("check-network-end",this.onCheckEnd),Object(K["a"])()&&st["Network"].getStatus().then((e=>{this.connectionType=e.connectionType}))},beforeDestroy(){console.log("unmount check"),G["a"].off("check-network-result",this.onCheckProgress),G["a"].off("check-network-end",this.onCheckEnd)},watch:{forceLogin(e){console.log("change",e)}}},dt=ct,ut=(a("b1d8"),Object(_["a"])(dt,nt,ot,!1,null,"a7504d8e",null)),_t=ut.exports;f()(ut,"components",{QInput:P["a"],QBtn:p["a"]});var pt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:!e.floating,expression:"!floating"}]},[a("ThemeEditor",{attrs:{inner:!0},on:{show:e.handleShow}})],1)},mt=[],ht={name:"ThemeTabPanel",data(){return{floating:this.$theme.hasFloatingEditor()}},methods:{handleShow(){this.floating=!0,this.$theme.showFloatingEditor({onClose:()=>{this.floating=!1}})}}},gt=ht,ft=Object(_["a"])(gt,pt,mt,!1,null,null,null),bt=ft.exports,yt={name:"Development",components:{BasicPanel:y,ThemeTabPanel:bt,PaymentMode:Ge,AccountTabPanel:I,AmplifyTabPanel:B,DevInfoTabPanel:te,UrlConvert:le,LibraryData:Oe,LibraryPreload:at,CapacitorTest:_t},data(){const e=[{name:"BasicPanel",icon:"developer_mode",label:"BasicPanel"},{name:"accountInfo",icon:"account_circle",label:"Account Info"},{name:"amplify",icon:"developer_board",label:"Amplify"},{name:"capacitorTest",icon:"app_settings_alt",label:"Capacitor test"},{name:"devInfo",icon:"info",label:"Dev Info"},{name:"urlConvert",icon:"link",label:"Alphabiz URL Convert"},{name:"libraryData",icon:"video_library",label:"Library"},{name:"libraryPreload",icon:"cloud_download",label:"Library Preload"},{name:"payment_mode",icon:"account_balance_wallet",label:"Payment Mode"},{name:"theme_panel",icon:"palette",label:"Theme Panel"}];return{tabs:e,currentTab:e[0].name,isElectron:Object(l["isElectron"])()}}},vt=yt,wt=(a("5bb9"),a("74cb")),kt=a("ec78"),St=a("917f"),Ct=a("c72d"),xt=Object(_["a"])(vt,n,o,!1,null,null,null);t["default"]=xt.exports;f()(xt,"components",{QCard:T["a"],QTabs:wt["a"],QTab:kt["a"],QSeparator:m["a"],QTabPanels:St["a"],QTabPanel:Ct["a"]})},"3a211":function(e,t,a){"use strict";a("10e1")},"3a62":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"audio-info-container"},[a("p",{staticClass:"info"},[e._v(e._s(e.$t("this_is_an_audio_file")))]),a("img",{attrs:{src:e.icon,alt:"favicon",width:"100px"}})])])},o=[],i={name:"AudioInfo",components:{},props:{show:{type:Boolean}},data(){return{icon:"developer/assets/icon-256.png"}},created(){},mounted(){},computed:{},methods:{}},r=i,s=(a("eb21"),a("2b5f")),l=Object(s["a"])(r,n,o,!1,null,"d5366250",null);t["a"]=l.exports},"3aea":function(e,t,a){"use strict";a.d(t,"h",(function(){return c})),a.d(t,"g",(function(){return d})),a.d(t,"f",(function(){return u})),a.d(t,"e",(function(){return _})),a.d(t,"b",(function(){return h})),a.d(t,"c",(function(){return g})),a.d(t,"d",(function(){return f})),a.d(t,"a",(function(){return b}));var n=a("5584"),o=a("d710"),i=a.n(o),r=a("36a1"),s=a("d558"),l=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};function c(e,t){return l(this,void 0,void 0,(function*(){if(Object(s["a"])()){const{Filesystem:n,Directory:o,Encoding:i,Share:r}=yield Promise.resolve().then(a.bind(null,"a368")),s=yield n.writeFile({path:t,data:e,directory:o.Cache,encoding:i.UTF8});return s.uri?(console.log("Save file result",s),(yield r.canShare()).value&&r.share({files:[s.uri],dialogTitle:"Save"}),s):console.log("Failed to save",t)}const n=new Blob([e]),o=document.createElement("a"),i=URL.createObjectURL(n);o.href=i,o.download=t,document.body.appendChild(o),o.click(),setTimeout((function(){document.body.removeChild(o),window.URL.revokeObjectURL(i)}),0)}))}function d(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve("")}function u(e){var t;const a=(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||"",o=e.match(/m=application\s(\d+)\s(\S+)/),i=(null===o||void 0===o?void 0:o[1])||"0",r=(null===o||void 0===o?void 0:o[2])||"unknown type";return n["a"].getters.isDevMode?`${a}:${i} (${r})`:`${a.substring(0,4)+"*"} (${r})`}function _(e){var t;return(null===(t=e.match(/c=IN\sIP\d\s([^\r]+)/))||void 0===t?void 0:t[1])||""}const p=["?","|","*","!",":",'"',":","<",">","/","/"],m=["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"];function h(e){let t=e.replace(/\s*\/\s*/g,"_").replace(/\s*\\\s*/g,"_").replace(/(\s|\.)+$/,"");for(const n of m)while(t.startsWith(n))t=t.replace(n,"");const a=t.split("");for(let n=0;nt.id===e));if(!t)return null;const a=["id","title","soul"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&");return`/library/channel?${a}`}function f(e){if(!e.startsWith(`${i.a.shortProtocol}`))return null;const[t,a,n]=e.replace(`${i.a.shortProtocol}-library://`,"").split("/");return t&&a&&n?{type:t,title:a,id:n}:null}function b(e){return e?e.replace(/ /g," ").trim():""}},"3b4b":function(e,t,a){"use strict";a("9c3b")},"3c15":function(e,t,a){"use strict";a("eec3")},"3c8a":function(e,t,a){"use strict";a("6755")},"3d18":function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return d})),a.d(t,"b",(function(){return g}));a("de6c"),a("a1c1");const n=a("c577"),o=a("61af"),{exec:i,spawn:r}=a("61af"),s="win32"===e.platform,l="darwin"===e.platform,c=new Map([["VLC Player",{win:"vlc.exe",winRegistry:["VLC.mp4","PlayWithVLC"],drawin:"VLC.app"}],["GOM Player",{win:"GOM.exe",drawin:"GOM Player.app"}],["PotPlayer",{win:"PotPlayerMini64.exe"}],["Kodi",{win:"kodi.exe",drawin:"Kodi.app"}],["KMPlayer",{win:"KMPlayer64.exe",drawin:"KMPlayer.app"}],["SMPlayer",{win:"smplayer.exe",drawin:"SMPlayer.app"}],["MediaMonkey",{win:"MediaMonkey.exe"}],["AllPlayer",{win:"ALLPlayer.exe"}],["5KPlayer",{win:"5KPlayer.exe",drawin:"5KPlayer.app"}],["MPC-HC",{win:"mpc-hc64.exe"}]]),d=async()=>new Promise((e=>{const t=[];if(s){const a={label:"Media Player",value:"Media Player"},i=u();i&&t.push(a);const r=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});r.values(((a,n)=>{if(a)return e(!1);for(let e=0;e{a.win&&new RegExp(a.win).test(n[e].name)&&(o.existsSync(n[e].name)?t.push({label:i,value:i}):console.log("player file does not exist"))}));e(t)}))}else l?o.readdir("/Applications/",((a,n)=>{if(a)return console.error(`error: ${a}`),e(!1);c.forEach(((e,a)=>{e.drawin&&new RegExp(e.drawin).test(n)&&t.push({label:a,value:a})})),e(t)})):e(!1)})),u=()=>{const t=e.arch;let a;return a="x64"===t?"C:\\Program Files\\Windows Media Player\\wmplayer.exe":"C:\\Program Files(x86)\\Windows Media Player\\wmplayer.exe",o.existsSync(a)?a:""},_=async e=>new Promise((t=>{if(s){if("Media Player"===e){const e=u();return t(e||!1)}const a=new n({hive:n.HKCU,key:"\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Compatibility Assistant\\Store"});a.values(((a,n)=>{if(a)return t(!1);if(!c.get(e))return t(!1);const i=c.get(e).win;for(let e=0;e{let a;if(s){if(!c.get(e))return;const n=c.get(e).winRegistry;if(!n)return;if("VLC Player"===e){const e=t.slice(2+(t.lastIndexOf(".")-1>>>0));n[0]=`VLC.${e}`,a=[...n]}}return a},m=async e=>new Promise((t=>{if(!e)return t(!1);if(s){const a=new n({hive:n.HKLM,key:`\\SOFTWARE\\Classes\\${e[0]}\\shell\\${e[1]}\\command`});a.values(((e,a)=>{if(e)return t(!1);const n=a[0].value.match(/-(?:-\w+)+/gm);t(n)}))}})),h=async(e,t,a)=>new Promise((n=>{let o,i;s?(o=e,i=a?[...a,t.replace("/","\\")]:[t.replace("/","\\")]):(o="open",i=["-a",e,t]),console.log("openPlayer:",o,i);const l=r(o,[...i]);l.on("error",(e=>{n(!1),console.log(`子进程错误,错误码 ${e}`)})),l.unref(),n(!0)})),g=async(e,t)=>{if("System Default"===e){const{shell:e}=a("b052");return e.openPath(t).catch((e=>{console.log("openPath err",e)}))}const n=await _(e);let o=!1;if(n){const a=p(e,t);let i;a&&(i=await m(a)),o=await h(n,t,i),console.log("openPlayer:"+o)}return o}}).call(this,a("28d0"))},"3d2b":function(e){e.exports=JSON.parse('{"lib_index":"家","lib_edit":"公開","lib_publish":"公開","lib_explore":"探検する","lib_following":"続く","lib_favorite":"地元のお気に入り","lib_local_favorites":"地元のお気に入り","lib_channel":"チャネル","lib_submit":"送信","lib_from_network":"ネットワークから分散データベースを使用する","welcome_to_lib":"${displayName} メディア ライブラリへようこそ","register_or_login":"登録/ログイン","lib_recommend":"推薦する","lib_recommend_desc":"${displayName} ライブラリへようこそ!このライブラリはネットワークからの分散データベースを使用します。使用を開始するには、いくつかのチャネルをフォローする必要があります。","follow_any_channel_to_continue":"続行するには任意のチャンネルをフォローしてください","follow_channels_and_continue":"{0} チャンネルをフォローして続行","show_more_for_me":"もっと見せて","no_more_recommend":"もうお勧めしません","key":"鍵","create_key":"キーの作成","save_key":"キーを保存","save_key_file":"キーをファイルとして保存しますか?","import_key":"インポートキー","import":"輸入","invalid_key":"無効キー","back_to_top":"トップに戻る","search_for_channel":"チャンネルIDを検索","search_channel_no_result":"ID {0} のチャンネルが見つかりません","please_input_channel_id":"チャンネルIDを入力してください","welcome_help_text":"これは分散型メディア ライブラリです。必要です\\n このデータベースのアカウントを作成します。私達はします\\n 個人キーを自動的に生成します。\\n すでにキーを持っている場合は、インポートすることもできます\\n それはここです。","welcome_key_text":"ログインしたら[SAVE KEY]ボタンをクリックしてください。\\n 右下隅にあるをクリックして秘密キーを保存します。\\n キーを紛失した場合、再度ログインできなくなる場合があります。","redirect_to_recommend":"どのチャンネルもフォローしていないようです。 [探索]ページにリダイレクトします。","channel":"チャネル","follow":"従う","unfollow":"フォローを解除する","following":"続く","share":"共有","unfollow_confirm":"このチャンネルのフォローを解除してもよろしいですか?タイムライン内のこのチャンネルの投稿はすべて削除されます。","follow_failed_hint":"操作はバックグラウンドでまだ保留中です。長時間操作が適用されなかった場合は、アプリを再起動して再度お試しください。","block":"ブロック","unblock":"ブロックを解除する","blocked":"ブロックされました","block_channel":"このチャンネルをブロックする","block_channel_confirm":"チャンネルをブロックするとタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","block_creator":"このチャンネルの作成者をブロックする","unblock_creator":"このチャンネルの作成者のブロックを解除する","block_creator_confirm":"クリエイターをブロックすると、このクリエイターが作成したすべてのチャンネルがタイムラインから削除されます。アカウント設定でブロックリストを管理できます。","share_url_copied":"共有 URL がクリップボードにコピーされます","follow_time":"フォロータイム","update_time":"更新時間","search":"検索","type":"タイプ","added":"追加した","click_to_task":"クリックしてタスクに移動します","lib_already_added":"このビデオはすでに追加されています","description":"説明","poster":"ポスター","channel_poster":"チャンネルポスター","preview":"プレビュー","creator":"クリエイター","creator_detail":"クリエイター詳細","loading_creator":"クリエイター情報を読み込み中","wait_for_creator_loaded":"クリエイター情報が読み込まれるまでお待ちください。","follower":"フォロワー","followers":"フォロワー","follower_list":"フォロワーリスト","user":"ユーザー","channel_title":"チャンネルタイトル","channel_id":"チャンネルID","post_title":"記事のタイトル","post_id":"投稿ID","import_data_from_excel":"Excelからデータをインポート","set_excel_keys":"Excelのキーを設定する","excel_import_succeded":"Excelのインポートに成功しました","excel_import_success_msg":"{0} 行は追加する準備ができています。{1} は無効で、{2} の重複項目は無視されます","cannot_find_channel":"チャンネルが見つかりません","cannot_find_posts":"投稿が見つかりません","add_channel":"チャンネルを追加","add_post":"投稿を追加","edit_channel":"チャンネルを編集する","channel_setting":"チャンネル設定","edit_post":"投稿を編集する","edit_posts":"投稿を編集する","channel_detail":"チャンネル詳細","remove":"取り除く","remove_channel":"チャンネルを削除する","remove_channel_confirm":"この投稿を削除してもよろしいですか?これは回復できません。","remove_post":"投稿を削除する","remove_post_confirm":"このチャンネルを削除してもよろしいですか?これは回復できません。","preview_mode":"プレビューモード","preview_mode_desc":"これはチャンネルのプレビューです。映画のすべての料金がここに表示されます。","edit_user_profile":"ユーザープロファイルを編集する","name":"ニックネーム","avatar":"アバター","no_following":"フォローしているチャンネルはありません。クリックして移動","no_recommend":"おすすめチャンネルはありません。クリックして移動","first_recomment_msg":"初めてアプリを起動する場合は、時間がかかる場合があります。","invalid_image":"無効な画像です","image_not_reachable":"この画像の URL にはアクセスできません。","channel_not_found":"チャンネルが見つかりません","cannot_get_channel_info":"チャンネル情報を取得できません。このチャンネルは作成者によって削除され、利用できなくなる可能性があります。","validate_error":"検証エラー","validate_user_name_no_space":"ユーザー名にはスペースを含めないでください","validate_url_no_space":"URL にスペースを含めないでください","validate_user_name_length":"ユーザー名の長さは {0} から {1} の間である必要があります","validate_user_desc_length":"ユーザーの説明は {0} 文字以下にしてください","validate_user_avatar_url":"ユーザーのアバターは 2048 文字未満の URL である必要があります","validate_channel_title_length":"チャンネルタイトルの長さは 1 ~ 100 にする必要があります","validate_channel_desc_length":"チャネルの説明の長さは 10 ~ 300 にする必要があります","validate_channel_image_url":"チャンネル プレビューの URL は 2048 文字未満である必要があります","validate_post_title_length":"投稿タイトルの長さは 1 ~ 100 にする必要があります","validate_post_desc_length":"投稿の説明の長さは 10 ~ 300 にする必要があります","validate_post_image_url":"ポスターの URL は 2048 文字未満である必要があります","validate_post_url":"無効な ${displayName} URL","validate_post_url_length":"${displayName} URL は 2048 文字以下にしてください","film_rate":"フィルムレート","set_film_rate":"フィルムレートを設定する","select_a_rate_before_enter":"メディア ライブラリに入る前に、フィルム レートを選択する必要があります。","library_available_rate":"図書館利用可能なフィルム料金","rate_g":"G – 一般視聴者","rate_g_desc":"すべての年齢層が受け入れられます。お子様が閲覧することで保護者を不快にさせるような内容は一切ありません。","rate_pg":"PG – 保護者による指導の推奨","rate_pg_desc":"一部の教材はお子様には適さない場合があります。保護者らは「保護者指導」を求めた。親が幼い子供にとって好まない内容が含まれる場合があります。","rate_pg_13":"PG-13 – 保護者は強く注意してください","rate_pg_13_desc":"一部のコンテンツは 13 歳未満の子供には不適切である可能性があります。保護者は注意することをお勧めします。内容によっては、10 代未満のお子様には不適切な場合があります。","rate_r":"R – 制限付き","rate_r_desc":"17 歳未満の場合は、親または成人の保護者の同伴が必要です。一部成人向けの内容が含まれております。保護者の方は、小さなお子様を連れて行く前に、この映画について詳しく学ぶことをお勧めします。","rate_nc_17":"NC-17 – 大人限定","rate_nc_17_desc":"17 歳以下は入場できません。明らかに大人っぽい。お子様のご入場はできません。","set_as_private":"プライベートとして設定","hide_in_explore":"探索ページでこのチャンネルを非表示にする","hidden":"隠れた","select_a_rate":"フィルム料金を選択してください","select_from_tasks":"タスクから選択","import_from_magnet":"マグネットからインポート:?...","input_magnet_url":"入力マグネット:? URL","task_title":"タスクのタイトル","set_title":"タイトルを設定する","add_to_local_favorites":"ローカルのお気に入りに追加","remove_from_local_favorites":"ローカルのお気に入りから削除","removed_favorite":"お気に入りを削除しました","import_or_export_favorites":"お気に入りのインポート/エクスポート","export_local_favorites":"ローカルのお気に入りをバックアップとしてエクスポート","import_favorites_file":"お気に入りファイルをインポートする","not_a_favorite_file":"このファイルはお気に入りのバックアップ ファイルではありません","connection_status":"接続ステータス","gun_server_list":"キャッシュノード","custom_nodes":"カスタムキャッシュノード","custom_nodes_hint":"カスタム キャッシュ ノードはアプリの再起動後に適用されます","wait_for_reboot":"再起動を待っています...({seconds}s)","reboot_now":"今すぐ再起動してください","reboot_later":"後で再起動します","peer_list":"ダイレクトノード","server":"ノードURL","peer":"ピア","peer_id":"ノードID","connection":"繋がり","data_source":"情報元","sync":"同期","syncing":"同期中","sync_completed":"同期が完了しました","got_all_post":"すでにすべての投稿を取得しています","placeholder_channel_title":"あなたのチャンネル名","placeholder_channel_desc":"このチャンネルについての説明","placeholder_post_title":"映画名(年)","placeholder_post_desc":"この映画についての説明","private_channel":"プライベートチャンネル","creator_blocked":"クリエイターがブロックされました","go_to_library":"図書館に行きますか?","go_to_library_channel_msg":"ライブラリ チャンネル {0} に行きますか?","magnet_does_not_have_name":"この磁石:? URL には名前がありません。最初に投稿のタイトルを追加する必要があります。","no_available_post":"利用可能なポストがありません","following_channel_no_post":"フォローしているすべてのチャンネルには利用可能な投稿がありません。ネットワークエラーが原因である可能性があります。すでにいくつかのチャンネルをフォローしている場合、投稿は後で読み込まれる可能性があります。","share_to_library":"ライブラリに共有する","quick_start":"クイックスタート","quick_start_desc":"タスクまたはファイルを使用して投稿の作成を開始します","select_file":"ファイルを選ぶ...","select_folder":"フォルダーを選択...","post_options":"投稿オプション","channel_options":"チャンネルオプション","create_new_channel":"新しいチャンネルを作成する","use_existed_channel":"既存のチャネルを使用する","select_existed_channel":"既存のチャンネルを選択","uploaded_by":"{title} が {name} によってアップロードされました","created_by":"{title} 作成者: {name}","creating_new_channel":"新しいチャンネルを作成しています...","created_new_channel":"新しいチャンネルが作成されました","creating_new_post":"新しい投稿を作成しています...","created_new_post":"新しい投稿が作成されました","create_new_post":"新しい投稿を作成する","quick_start_timeout":"{0} タイムアウト。ネットワークエラーが原因である可能性があります。後でもう一度試してください。","file_too_large":"あまりにも大きなファイル","file_too_large_msg":"このファイルは 4GB ({size}) より大きいため、タスクの準備に時間がかかる可能性があります。続けてもよろしいですか?","resolving_folder_files":"フォルダー ファイルを解決しています...","folder_too_large":"フォルダーが大きすぎます","folder_too_large_msg":"このフォルダー内のファイルは 4GB (合計 {size}) を超えており、タスクの準備に時間がかかる可能性があります。アップロードしてもよろしいですか?","creating_new_task":"新しいタスクを作成しています...","cannot_create_task":"タスクを作成できません","cannot_create_task_msg":"何らかの誤差が生じる可能性があります。タスクが正しく作成されていれば、後でタスク リストを確認できます。","cannot_get_task_name":"タスク名を取得できません。最初に 1 つを入力する必要があります。","remove_old_task":"古いタスクを削除する","remove_old_task_desc":"Web モードでは、一度に 1 つのタスクしか作成できません。古いタスクを削除しますか?","subtitle_list":"字幕リスト","optional":"オプション","with_subtitle":"{language} 字幕付き","maximumSubtitleNum_limit":"字幕の数が上限に達しました","add_subtitle_url":"字幕のダウンロードリンクを追加","cannot_add_subtitle":"字幕の追加に失敗しました","cannot_add_subtitle_msg":"字幕言語が選択されていないか、ダウンロード リンクが無効です。","support_subtitle_type":"srt および vtt 形式の字幕のみがサポートされています。","recommend_opensubtitles":"www.opensubtitles.org にある字幕のダウンロード リンクまたは ID を使用することをお勧めします。","take_down":"降ろす","serious_violation":"重大な違反","copyright_disputes":"著作権紛争","adults_only":"大人だけ","takedown_reason":"削除の理由","takedown_mode":"テイクダウンモード","admins":"管理者","takedown_user":"このクリエイターを削除する","takedown_channel":"このチャンネルを削除する","takedown_post":"この投稿を削除する","select_takedown_reason":"削除理由を選択してください","takedown_invalid_reason":"無効な削除理由","takedown_invalid_user_id":"無効なユーザーIDです。 ID には 87 文字を含める必要があります","takedown_invalid_channel_id":"無効なチャンネルIDです。 ID には 20 文字を含める必要があります","takedown_invalid_post_id":"投稿IDが無効です。 ID には 20 文字を含める必要があります","takedown_management":"管理を削除する","users":"ユーザー","channels":"チャンネル","posts":"投稿","you":"あなた","preset":"プリセット","admin":"管理者","committee":"委員会","about_takedown_mode":"テイクダウンモードについて:\\nプリセット: Github リポジトリで設定されます。それらはすべてライブラリから削除されます。\\n管理者: 管理者が投票したいずれかが削除されます。\\n委員会: 管理者投票の少なくとも半数が削除されます。","cannot_edit_preset":"この行はプリセット行であるため編集できません","cannot_edit_not_vote":"この行は投票していないため編集できません","remove_vote":"投票を削除します","post_preload_failed":"この投稿のプリロードに失敗しました。ダウンロード リンクが古い可能性があるため、この投稿はすぐに再生できません。","about_cache_node":"キャッシュノードについて","edit_cache_node":"キャッシュノードの編集","create_cache_node":"キャッシュノードの作成","about_cache_node_desc":"${displayName} はガン サーバーをキャッシュ ノードとして使用します。事前設定でカスタムノードを編集できます","learn_how_to_deploy_gun":"独自のガンサーバーを展開する方法を学ぶ","repeat_add":"タスクが追加されました。再度追加しないでください","upload":"アップロード","download":"ダウンロード","delete":"消去","delete_task":"タスクの削除","delete_confirm_message":"このタスクを削除しますか?これは取り消し不可能です","also_delete_files":"ファイルも削除","default_delete_files":"削除タスク後にダウンロードしたファイルをデフォルトで削除する","not_now":"今はやめろ","delete_autoupload_confirm":"このタスクには、自動アップロード ディレクトリに配置したファイルが含まれています。このタスクを削除すると、ファイルも削除されます。","delete_anyway":"とにかく削除する","upload_too_many_files":"アップロードするファイルが多すぎます","ask_if_unlimit_upload_amount":"自動アップロード ディレクトリに含まれるファイルが多すぎます。アップロード量制限を無効にしますか? ※パフォーマンス上の問題が発生する可能性があります","disable_limitation":"制限を無効にする","not_length":"マルチファイル操作は現在サポートされていません。ご協力ください。","download_torrent":"ダウンロードファイル","upload_torrent":"ファイルをアップロードする","files":"ファイル","file":"ファイル","folder":"フォルダ","start_all":"すべてを開始する","pause_all":"すべて一時停止する","remove_all":"すべて削除する","upload_all":"すべてアップロードする","clear_history":"履歴をクリア","pause_all_finish_payments":"これですべての支払いが完了します。","accelerating":"加速中","link_task":"リンクタスク","torrent_task":"ファイルタスク","ok":"OK","cancel":"キャンセル","download_directory_position":"ダウンロードディレクトリの位置","torrent_file":"タスクファイル","magnetic_link_incorrect":"リンクの形式が正しくありません","delete_fail":"削除失敗","pause":"一時停止","paused":"一時停止中","stop_torrent":"ストップ","seed":"シード","resume":"履歴書","downloading":"ダウンロード中","downloaded":"ダウンロード済み","uploading":"アップロード中","auto_uploading":"自動アップロード","uploaded":"アップロードされました","pending":"他のタスクを待っています","verifying":"検証中","waiting_for_verify":"検証待ち","seeding":"種まき","completed":"完了","status":"スターテス","task_name":"タスク名","size":"サイズ","progress":"進捗","sort":"選別","ascending":"上昇","descending":"降順","file_loading":"ファイルをロード中...","loading":"読み込み中","unknown_status":"未知","play_while_downloading":"遊ぶ...","upload_or_play":"アップロード/再生","play":"遊ぶ","ask_if_upload_file":"ファイルをアップロードする?","ask_if_upload_or_play":"ファイルをアップロードまたは再生しますか?","torrent_error":"タスク追加時のエラー:","no_peers":"{0} 回以上再試行しても使用可能なピアがありません","torrent_exists":"タスクはすでに存在します。","show_origin_torrent":"元のタスク ファイルまたは URL を取得する","show_directory":"この torrent のディレクトリを開く","task_num":"タスク","total_upload_speed":"アップロードの速さ","total_download_speed":"ダウンロード速度","path_missing":"エラー: torrent パスが見つかりません","origin_not_found":"元のタスク情報が見つかりません。","text_copied":"マグナムの URL がクリップボードにコピーされました","copy_magnet_uri":"コピーマグネット:? URI","copy_download_uri":"ダウンロード URI をコピーする","copy_share_uri":"共有URIをコピーする","uri_copied":"URI がクリップボードに正常にコピーされました","uri_copy_failed":"URIのコピーに失敗しました","more":"もっと...","toggle_list_mode":"リストモードの切り替え","comment":"コメント","operations":"オペレーション","open_directory":"ディレクトリを開く","no_downloading_task":"ダウンロードタスクはありません","remove_all_downloading_tasks":"ダウンロードタスクをすべて削除しますか?","remove_all_upload_tasks":"すべてのアップロード タスクを削除しますか?","remove_autoupload_files":"自動アップロードファイルを削除する","remove_all_history":"すべての履歴を削除しますか?","remaining":"残り","created_time":"作成時間","used_time":"使用時間","completed_time":"完了時間","yesterday":"昨日","before_yesterday":"$$$0$$$","earlier":"以前","miss_file":"一部のファイルがありません","delete_miss_file_task":"{0} に欠落しているファイルがあります。","common_peer":"共通ピア","ab_peer":"${displayName} ピア","ab_peer_verified":"確認済み ${displayName} ピア","ab_peer_available":"${displayName} ピアが利用可能","alphabiz_accelerating":"${displayName} 加速","income":"所得","income_info":"収入(今日/合計)","total_income_info":"収入: {0}(今日) / {1}(合計)","login_to_see_income":"ログインして収入統計を確認してください","credit_cost":"信用コスト","downloaded_by_payment":"ペイメントによってダウンロードされました","file_not_found":"このファイルがローカルに見つかりません","no_task":"聞かない","no_matched_task":"一致するタスクがありません","space_not_enough":"ディスク容量が不足しています","need_more_space":"さらに {0} のスペースが必要ですが、現在のディスクには {1} の空き領域があります ({2} は予約されています)。タスクは一時停止されています。ライブラリのプリロードは無効になっています。 [設定 - 詳細]で再度有効にすることができます。","seeders":"シーダー","last_update":"最後の更新","connecting":"接続中","connected":"接続済み","request_timed_out":"リクエストはタイムアウトしました","connection_failed":"接続に失敗しました","invalid_download_url":"無効なダウンロード URL","download_link":"ダウンロードリンク","empty_files":"ディレクトリにファイルがありません","duplicate_task":"タスクの重複","duplicate_tracker":"重複トラッカー","this_task_not_ready":"このタスクは準備ができていません。このタスクを一時停止すると、タスクが直接削除されます。","some_task_not_ready":"一部のタスクは準備ができていません。これらのタスクを一時停止すると、タスクが直接削除されます。","failed_to_delete_files":"ファイルの削除に失敗しました","failed_to_delete_files_desc":"タスクの一部のファイルの削除に失敗しました。手動で削除する必要がある場合があります","unknown_error":"不明なエラー: {0}","more_files_are_not_shown":"(パフォーマンス上の理由から、{0} 以上のファイルは表示されません)","no_available_file":"利用可能なファイルがありません。タスクの準備ができるまでお待ちください。","service_worker_error":"再生のために ServiceWorker をロードできません。お使いのブラウザがこの機能をサポートしていないか、ServiceWorker がアクティブ化されていない可能性があります。このページをリロードして再試行する必要がある場合があります。","add_task_first":"最初にタスクを追加する必要があります。","player_task_time":"プレーヤーはプレイの準備に時間がかかりすぎます。タスクに問題がある可能性があります。","web_mode_hint":"${displayName} の Web モードは WebRTC ピアのみをサポートします。最高のエクスペリエンスを得るには、${displayName} デスクトップ アプリをダウンロードしてください。","web_mode_task_hint":"タスクを追加するには、下のボタンをクリックします。一度に追加できるタスクは 1 つだけです。","save_to_local":"ローカルに保存","save_as_zip":"ZIP 形式で保存","creating_save_file":"保存ファイルを作成しています...","upload_as_one_directory":"1 つのディレクトリとしてアップロードする","upload_as_single_files":"単一ファイルとしてアップロードする","web_mode_upload_single":"Web モードでは 1 つのファイルのみアップロードできます","download_success":"ダウンロードが成功しました","download_fail":"ダウンロードに失敗しました","wait_for_downloaded_to_share":"共有する前に、タスクがダウンロードされるまで待ってください。","download_with_cellular":"携帯電話を使用してタスクをダウンロードする","download_with_cellular_desc":"携帯電話ネットワークを使用しています。携帯電話でタスクをダウンロードすると、携帯通信会社によって追加料金がかかる場合があります。","download_with_cellular_confirm":"携帯電話でもダウンロード可能","language":"言語","appearance":"外観","darkModeSystem":"システム","darkModeLight":"ライト","darkModeDark":"暗い","basic_setting":"基本","hideMenu":"アプリメニューを非表示にする (Windows および Linux のみ)","autoHide":"ウィンドウを自動的に非表示にする","autoStart":"ログイン時に開く","restore":"終了時にウィンドウのサイズと位置を維持する","autoStartUnfinished":"すべての未完了のタスクを自動的に再開します","default_download_path":"デフォルトのパス","download_directory":"ダウンロードディレクトリ","upload_directory":"アップロードディレクトリ","enable_auto_upload":"自動アップロードを有効にする","unlimit_upload_amount":"アップロード量を無制限にする","unlimit_upload_warning":"大量のファイルのアップロードを許可します。これによりパフォーマンスの問題が発生する可能性があります","start":"起動","transport_setting":"伝染 ; 感染","upload_limit":"アップロード制限","download_limit":"ダウンロード制限","payed_user_share_rate":"有料ユーザーシェア率","unlimited":"無制限","limit_input_error":"制限値は正の値である必要があります","BT_setting":"タスクの設定","saveLinkSeed":"リンクをタスクファイルとして保存","autoDownload":"リンクとコンテンツを自動的にダウンロードする","continuousSeeding":"手動で停止するまでシードを継続します","seedSharingRate":"シード率","seedTime":"シード時間 (分)","task_manage":"タスク管理","maximumDownloadNum":"アクティブなタスクの最大数","maximumConnectionsNum":"サーバーあたりの最大接続数","range_error":"範囲は {0} ~ {1} の間でなければなりません","random":"ランダム","breakpointContinuation":"続く","automaticSkip":"タスクを追加した後にダウンロード中を自動的に表示","afterNotification":"ダウンロード完了後の通知","deleteConfirm":"タスクを削除する前に確認は必要ありません","submit":"保存して適用","discard":"破棄","reset":"リセット","reset_all_settings":"すべての設定をリセットしますか?","preferences_resetted":"設定がリセットされました","traditional_chinese":"繁体字中国語","japanese":"日本語","english":"英語","chinese":"簡体字中国語","advancedSettings":"高度な","autoUpdate":"自動更新","autoCheckUpdate":"アップデートを自動的にチェックする","proxy":"プロキシ","useProxyService":"プロキシを有効にする","trackerService":"トラッカーサーバー","recommendUse":"おすすめされた","autoUpdateTrackerServiceList":"トラッカーリストを毎日自動的に更新します","manualUpdateTracker":"手動アップデート","manualUpdateSuccess":"トラッカーサーバーを正常に更新しました","manualUpdateFail":"次からの更新に失敗しました:","listenPort":"リッスンポート","BTlistenPort":"データ送信ポート","DHTlistenPort":"分散ハッシュポート","protocols":"互換性のあるプロトコル","setDefaultClientForFollowingProtocols":"次のプロトコルのデフォルトのクライアントとして設定します","magnetUrl":"磁石","video_file":"ビデオファイル","audio_file":"音声ファイル","security":"安全","impersonateUserAgent":"模擬ユーザーエージェント","RPCauthorizationkey":"RPC シークレット","viewDocument":"RPC シークレット マニュアルを表示する","developer":"デベロッパー","applicationLogPath":"アプリログのパス","downloadSessionPath":"ダウンロードセッションパス","resetDownloadSessionRecord":"ダウンロードセッションをリセットする","restoreInitialSettings":"工場出荷時設定にリセット","preferences_set_successfully":"設定が正常に保存されました。","preferences_set_fail":"設定の保存に失敗しました!","change_not_save":"変更が保存されない","discard_all_changes":"すべての変更を破棄して終了しますか?","stay_in_page":"ページ内に留まる","disk_usage":"ディスクの使用状況","pause_if_less_space":"空き容量が (MB) 未満の場合は一時停止して通知する","default_video_player":"デフォルトのビデオプレーヤー","video_cache_time":"ストリーム再生キャッシュ","minutes":"分","system_default":"システムのデフォルト","media_player":"メディアプレーヤー","library_film_rate":"利用可能なフィルムレート","library_show_explore":"[探索]ページを表示する","library_setting":"ライブラリ設定","library_sync_setting":"ライブラリ同期設定","keychain_sync_status":"キーチェーンの同期ステータス","sync_with_aws":"キーチェーンをアマゾン ウェブ サービスと同期する","backup_to_local":"ローカルファイルへのバックアップ","enable_sync_with_aws":"AWS との同期を有​​効にする","disable_sync_with_aws":"AWS との同期を無効にする","disable_sync_with_aws_desc":"これにより、サーバーに保存されているキーが削除されます。キーをすでにエクスポートしていることを確認してください。","input_independent_password":"独立したパスワードを入力してください","change_independent_password":"独立したパスワードを変更する","password_error":"パスワードエラー","password_invalid":"パスワードが無効です","key_existed":"キーが存在しました","key_not_found":"キーが見つかりません","library_recommend":"図書館のおすすめ","show_all_channels":"ライブラリのおすすめページにすべてのチャンネルを表示する","not_logged_in":"ログインしていない","login_to_continue":"続行するにはログインしてください","mnemonic_code":"ニーモニックコード","wordlist":"単語リスト","restore_code":"コードから復元する","generate_code":"コードを生成する","export_mnemonic_code":"ニーモニックコードのエクスポート","import_mnemonic_code":"ニーモニックコードをインポートする","print":"印刷する","save_as_txt":"txtとして保存","save_as_pdf":"PDFとして保存","from_file":"ファイルから","not_valid_mnemonic_code":"これは有効なニーモニック コードではありません","cannot_parse_code_as_key":"このニーモニック コードをライブラリ キーとして解析できません","import_key_hint":"このキーをインポートしてもよろしいですか?これにより、ライブラリ内の古いキーが回復されます。","import_key_confirm":"はい、インポートします。","library_preload":"ライブラリからタスクをプリロードする","show_preload":"プリロードタスクを表示","set_download":"ダウンロードディレクトリを設定する","set_download_desc":"macOS App Store バージョンの場合、デフォルトのダウンロード ディレクトリはアプリのサンドボックスにあり、アプリのアンインストール後に削除されます。ダウンロード ファイルを保持したい場合は、別のダウンロード ディレクトリを手動で選択する必要があります。","home":"家","home_caption":"ダウンロード/アップロードおよびメディア ファイル","library":"図書館","library_caption":"メディアリソースを調べる","player":"プレーヤー","player_caption":"メディアプレーヤー","credits":"クレジット","credits_caption":"アカウント残高を確認する","account":"アカウント","account_caption":"サインイン/サインアップ/管理","settings":"設定","settings_caption":"アプリ、プレーヤー、アカウントの設定","development":"発達","development_caption":"内部使用のための開発者モード","basic":"基本","basic_caption":"基本設定","advanced":"高度な","advanced_caption":"高度な設定","blockchain":"財布","blockchain_caption":"${displayName} 分散型ウォレット","internal_notice":"内部リリース通知","release_notes":"リリースノート","terms_and_conditions":"規約と条件","license_and_listen_notices":"オープンソースのライセンスとリッスンに関する通知","close":"近い","success":"成功","fail":"失敗","account_email_invalid_address":"無効なメールアドレス","account_email_invalid_domain":"無効なメールドメイン","account_email_unknown_status":"不明なメール配信ステータス","account_email_unavailable_address":"使用できないメールアドレス","account_email_suppressed_address":"抑止されたメールアドレス","account_loading":"読み込み中...","account_is_required":"必要とされている","account_sign_in_your_account":"ログイン","account_username":"ユーザー名","account_username_email_phone":"電話番号またはメールアドレス","account_password":"パスワード","account_new_password":"新しいパスワード","account_re_enter_password":"パスワード再入力","account_password_not_equal":"2 つのパスワードが等しくありません","account_new_password_same":"パスワードは元のパスワードと同じです","account_forgot_your_password":"パスワードをお忘れですか?","account_reset_password":"パスワードを再設定する","account_sign_in":"サインイン","account_signed_in":"サインインしました","account_sign_up":"サインアップ","account_find_your_account":"あなたのアカウントを見つけてください","account_enter_your_username":"電話番号またはメールアドレスを入力してください","account_search":"検索","account_email_sent_tip":"確認コードが記載されたメールがあなたのメールアドレスに送信されました。","account_phone_sent_tip":"確認コードを含む SMS が携帯電話に送信されました。","account_email_phone_sent_tip":"確認コードを含む電子メールと SMS がそれぞれあなたの電子メールと電話に送信されました:","account_software_token_tip":"お使いのアカウントでは MFA が有効になっています。サインインを完了するには、デバイスの電源を入れるか表示して TOTP を入力してください。","account_reset_your_password":"あなたのパスワードをリセット","account_verification_code":"検証コード","account_resend_code":"コードを再送信する","account_code_has_been_resent":"確認コードが再送信されました","account_password_has_been_reset":"パスワードがリセットされました","account_submit":"送信","account_sign_up_your_account":"アカウントにサインアップする","account_fill_required_fields":"以下の必須フィールドに入力します。","account_fill_optional_fields":"以下のオプションのフィールドに入力します。","account_email":"Eメール","account_invitation":"招待","account_invitation_code":"招待コード","account_i_accept":"承諾します","account_license_terms":"ライセンスと規約","account_next":"次","account_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります。","account_verify_fill_optional_fields":"オプションのフィールドを確認して入力します。","account_nickname":"ニックネーム","account_gender":"性別","account_male":"男","account_female":"女性","account_not_say":"言わない","account_birthday":"誕生日","account_phone_number":"電話番号","account_locale":"地元","account_tip_verified":"確認済み、サインイン中...","account_verified":"検証済み","account_unverified":"未確認","account_signed_up":"サインアップ","account_verify_your_identity":"身元を確認する","account_finish":"終了","account_signed_out":"サインアウトしました","account_change_password":"パスワードを変更する","account_change_email":"メールアドレスを変更","account_change_phone_number":"電話番号を変更する","account_sign_out":"サインアウト","account_current_password":"現在のパスワード","account_re_enter_new_password":"新しいパスワードを再入力してください","account_personal_information":"情報","account_edit":"編集","account_reset":"リセット","account_greeting":"こんにちは、","account_cancel":"キャンセル","account_change":"変化","account_not_set":"設定されていません","account_setting":"設定","account_copy_code":"コードをコピーする","account_account_setting":"アカウント","account_task_page":"クレジットタスク","account_setting_caption":"パスワード変更・情報編集","account_security":"安全","account_want_to_join":"参加したいですか?","account_sign_in_now":"ログイン","account_changed":"かわった","account_clipboard_with_invitation_code":"招待コードをコピーしました","account_clipboard_with_code":"コピーされたコード","account_invitation_code_dialog_tip":"招待コードを含む電子メールまたはテキスト メッセージを友達に送信します。","account_available":"利用可能","account_invited":"招待されました","account_used":"使用済み","account_invitation_code_sent":"招待コードが送信されました","account_invitation_channel_required":"少なくとも 1 つの招待チャネルを入力してください","account_no_verification_code":"認証コードが届かないのですが?","account_no_phone_number":"電話番号がありませんか?","account_sign_up_by_email":"メールで登録する","account_no_email":"電子メールがありませんか?","account_sign_up_by_phone_number":"電話番号で登録する","account_no_totp":"TOTPはありませんか?","account_tip_no_totp":"TOTP がない場合は、最初に TOTP を設定してください","account_setup_totp":"TOTPのセットアップ","account_contact_information":"連絡先","account_delete_account":"アカウントを削除する","account_deleted":"削除されました","account_can_not_mfa":"MFA でお困りですか?","account_set_mfa_type":"MFA の構成","account_disable_mfa":"MFA を無効にする","account_disabled_mfa":"無効なMFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"推奨しません","account_oauth_sign_in_with":"{provider} でサインイン","account_sign_in_failed":"サインインに失敗しました","account_tip_oath_sign_up":"現在の {provider} アカウントに対応する電子メール: {email} はまだアカウントを作成していません","account_tip_confirm_delete_account":"現在のアカウントのパスワードを入力して、現在のアカウントの削除を確認します。(削除されたアカウントは復元できません)","account_tip_config_mfa":"二次認証として SMS または時間ベースのワンタイム パスワード (TOTP) を使用することを選択できます。","account_error_can_not_enable_mfa":"MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_sms_mfa":"SMS MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_can_not_enable_totp_mfa":"TOTP MFA を有効にするには、電子メール アドレスと携帯電話番号をバインドする必要があります","account_tip_setup_totp":"Authenticator などのアプリを使用して以下の QR コードをスキャンするか、コードを手動でコピーしてセキュリティ トークンを追加します","account_tip_verify_totp":"TOTP を確認する","account_link_your_social_account":"ソーシャルアカウントをバインドする","account_unlink_your_social_account":"ソーシャルアカウントのバインドを解除する","account_tip_confirm_link":"現在のアカウントを {provider} アカウントにバインドしてもよろしいですか?","account_tip_confirm_unlink":"バインドされた {provider} アカウントをキャンセルしてもよろしいですか?","account_tip_linking":"バインディング...","account_tip_unlinking":"バインドを解除...","account_linked":"バウンド","account_unlinked":"束縛されていない","account_error_can_not_link_to_the_linked_account":"現在のソーシャル アカウントは別のアカウントにバインドされています","account_error_can_not_link_to_the_mismatched_email":"現在のアカウントとソーシャルアカウントのメールアドレスが一致していません","account_error_can_not_link_before_email_verified":"現在のアカウントが確認済みの電子メールにバインドされていないため、ソーシャル アカウントをリンクできません","account_tip_confirm_verify_email_phone":"本人確認のため、現在のアカウントのメールアドレスと電話番号に確認コードを送信するかどうか。","account_tip_confirm_verify_phone":"本人確認のために現在の電話番号に確認コードを送信するかどうか?","account_error_1_message_60_seconds":"60 秒ごとに 1 つの SMS または電子メールのみを送信できます。さらに {delta} 秒待ちます","account_error_10_messages_per_day":"各携帯電話または電子メールで 24 時間以内に送信できるメッセージは 10 件までです","account_error_network":"ネットワークに問題があります。後でもう一度お試しください。","Network Error":"ネットワークに問題があります。後でもう一度お試しください。","account_error_user_not_exist":"ユーザーは存在しません","account_error_incorrect_username_or_password":"ユーザーネームまたはパスワードが違います","account_error_incorrect_original_password":"元のパスワードが間違っています","account_error_incorrect_password":"パスワードが間違っています","account_error_username_not_found":"ユーザー名が見つかりません","account_error_can_not_reset_for_no_verified":"未検証のアカウントのパスワードをリセットできません","account_error_invalid_verification_code":"確認コードが間違っています。もう一度お試しください。","account_error_expired_verification_code":"確認コードの有効期限が切れました。もう一度お試しください。","account_error_password_not_long_enough":"パスワードの長さが足りません","account_error_attempt_limit_exceeded":"試行制限を超えました。しばらくしてからお試しください。","account_error_password_attempts_exceeded":"パスワードの試行回数を超えました。","account_error_invalid_phone_number_format":"電話番号の形式が無効です","account_error_no_cell_phone_prefix":"電話番号のプレフィックスを選択してください","account_error_username_already_exists":"ユーザー名は既に存在します","account_error_you_need_to_accept_license_terms":"まずライセンスと規約に同意する必要があります","account_error_inactive_code":"招待コードは有効化されたコードではありません","account_error_non_existent_code":"招待コードが存在しません","account_error_unexpected":"予期しないエラー","account_error_can_not_change_email_before_phone_bound":"電話番号がバインドされる前に電子メールを変更することはできません","account_error_can_not_change_email_before_unbound_social_account":"ソーシャルアカウントのバインドを解除するまで電子メールを変更することはできません","account_error_can_not_change_phone_before_email_bound":"電子メールがバインドされる前に電話番号を変更することはできません","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA を無効にする前に電子メールまたは携帯電話番号を変更することはできません","account_error_not_supported_yet":"サポートを保留中","account_error_same_email":"新しいメール アドレスは元のメール アドレスと同じにすることはできません","account_error_same_phone":"新しい電話番号を元の電話番号と同じにすることはできません","account_error_email_not_exists":"メールアドレスが存在しません","account_error_email_already_exists":"指定されたメールアドレスを持つアカウントはすでに存在します。","account_error_phone_already_exists":"指定された電話番号を持つアカウントはすでに存在します。","account_error_mfa_token_mismatch":"ソフトウェアトークンコードの不一致","account_error_recaptcha_not_loaded":"ネットワークに問題があります。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_recaptcha_validation_failed":"ReCAPTCHA 検証に失敗しました。ネットワークに再接続し、アプリケーションを再起動して、もう一度試してください。","account_error_sign_in_in_progress":"保留中のサインイン試行がすでに進行中です","account_field_range":"{0}-{1} 文字の入力を制限する","account_field_only_alphanumeric":"英数字のみをサポートします","account_field_only_alphanumeric_and_symbol":"英数字と記号のみをサポートします","account_field_only_chinese_alphanumeric_space_underline":"英数字、スペース、アンダースコアのみをサポートします","account_field_prefix_without_number_space":"最初の文字を数字やスペースにすることはできません","account_field_suffix_without_space":"スペースで終わることはできません","account_field_without_repeat_space":"複数のスペースを連続して使用することはできません","account_field_can_not_only_alphanumeric":"文字や数字だけを使用することはできません","account_field_must_have_number_characters":"数字文字が必要です","account_field_verification_code":"認証コードは6桁である必要があります","account_field_invitation_code":"招待コードは英数字である必要があります","account_field_phone_number":"電話番号の形式が無効です","account_invalid_email_format":"無効な電子メール形式","account_sign_out_confirm":"サインアウトしてもよろしいですか?これにより、すべてのタスクが停止します。","account_sign_out_anyway":"とにかくサインアウトしてください","account_signing_out":"サインアウト中...","account_request_save_settings":"設定は保存されません。サインアウトする前に変更を保存する必要があります。","pay":"支払う","pay_with_credit":"ダウンロードの有料化が加速します。約 {0} クレジットが必要です","pay_with_credit_payed":"加速中。 {0} 程度のクレジットがまだ必要です","create_payment":"支払いの作成","pay_target":"目標","pay_for_torrent":"{0} の支払い","your_subid":"あなたのサブID","your_credits":"あなたのクレジット","pay_point_for_data":"{1} データに対して {0} ポイントを支払う","auto_renew":"自動更新を有効にする","transaction_details":"取引詳細","transaction_id":"ID","transaction_payer":"支払者","transaction_payee":"受取人","transaction_category":"カテゴリー","transaction_changed_amount":"変更金額","transaction_meta":"メタ","transaction_status":"スターテス","transaction_creation_time":"作成時間","receipt_code":"受信コード","transfer_amount":"払込金額","code_the_receipt_code":"以下のレシートコードを支払者にコピーしてください","fill_the_receipt_code":"受取人から提供された支払いコードを入力して送金します","expense":"費用","copied":"コピーされました","transfer":"移行","receive":"受け取る","copy":"コピー","withdraw_fund":"資金を引き出す","category_paydata_payer":"データのコスト","category_paydata_payee":"データ収入","category_transfer":"移行","category_bonus":"ボーナス","category_recharge":"リチャージ","status_pending":"保留中","status_completed":"完成した","status_finish":"終了","status_failed":"失敗した","tip_invalid_receiver":"無効な受信機コードです","tip_invalid_amount":"クレジット額は 0 ~ 1000 の範囲の浮動小数点数である必要があります (最小精度は 0.001)。","credit_get_more":"さらにクレジットを取得","credit_no_data":"データなし","credit_loading":"読み込み中...","credit_not_enough_amount":"クレジットが足りません","credit_amount_not_enough":"クレジットが足りません","credit_payee_not_exist":"受取人が存在しません","credit_invalid_amount":"無効なクレジット金額です","credit_can_not_transfer_to_yourself":"自分への転送はできません","credit_latest":"最新","credit_error_network":"ネットワークに問題があります。後でもう一度お試しください。","add_subtitles":"字幕を追加する","open_file":"ファイルを開く...","advanced_options":"高度なオプション","title":"タイトル","location":"位置","subtitle_file":"字幕ファイル","unsupported_subtitle_type":"{0} のファイル タイプはサポートされている字幕タイプではありません","not_default_player":"デフォルトのビデオプレーヤーが設定されていません","this_is_an_audio_file":"これは音声ファイルです","the_added_subtitle_already_exists":"追加されたサブタイトルはすでに存在します","stop_stream_player":"タスクが一時停止または削除されたため、ストリーミング メディアが終了しました","stop_player":"ファイルが削除されたため、プレーヤーは終了しました","playing_timeout_hint":"待ち時間がタイムアウトします。タスクを確認してください","autoplay_hint":"自動再生はブラウザによってブロックされている可能性があります。プレーヤーが再生されていない場合は、画面をクリックして続行してください。","remove_playing_confirm":"{0} はまだ再生中です。削除するとプレーヤーが停止します。本当に削除しますか?","unsupported_in_browser":"ブラウザモードではまだサポートされていません","client":"クライアント","warning":"警告","enable":"有効にする","disable":"無効にする","auto":"自動","encrypt_connection":"接続を暗号化する","encrypted_connection":"暗号化された接続","non_encrypted_connection":"非暗号化接続","connected_wires_not_disconnect":"接続されたワイヤーが切れることはありません","audio":"オーディオ","video":"ビデオ","image":"画像","subtitle":"字幕","zip":"ジップ","text":"文章","unknown":"未知","add":"追加","undo":"元に戻す","backup":"バックアップ","not_default_app":"${displayName} はトレントとメディアのデフォルトのアプリではありません。デフォルトとして設定しますか?","dont_show_again":"二度と表示しないでください","go_to_settings":"設定に移動","about_alphabiz":"${displayName} について","last_check_at":"最終チェック日時","update_channel":"チャンネルを更新する","check_for_update":"更新を確認","checking_for_update":"アップデートをチェックしています...","no_update_available":"利用可能なアップデートはありません","update_available":"利用可能なアップデート","update_now":"今すぐアップデート","update_later":"後で更新","click_to_update":"「今すぐ更新」ボタンをクリックしてダウンロードして更新します","update_failed":"アップデートに失敗しました","update_failed_message":"更新中にエラーが発生しました:","check_shasum_failed":"インストーラーの整合性チェックに失敗しました","downloading_update":"アップデートをダウンロード中...","ready_to_update":"更新の準備ができました","restart_to_update":"アップデートがダウンロードされます。 ${displayName} は更新のためしばらく終了します。","already_latest":"現在のバージョン({0})はすでに最新です","update_timeout":"更新タイムアウト","no_available_release":"利用可能なリリースはありません","no_available_installer":"利用可能なインストーラーがありません","feedback":"フィードバック","select_a_type":"タイプを選択してください","category":"カテゴリー","select_a_category":"カテゴリーを選ぶ","require_title":"タイトルは必須です","describe_your_problem":"問題を説明してください","report_a_bug":"バグを報告","request_a_new_feature":"新しい機能をリクエストする","download_or_upload":"ダウンロードアップロード","others":"その他","submit_with_system_info":"システム情報を含めて送信する","submit_feedback":"フィードバックを送信","tweet_us":"ツイートしてください","tweet_too_long":"ツイートが長すぎます","delete_characters":"少なくとも {0} 文字を削除してください","rest_characters":"さらに {0} 文字を入力できます","update_alphabiz":"${displayName} を更新します","current_version":"現行版","cancel_update":"更新をキャンセルする","slow_download_speed":"ダウンロードが遅すぎる","slow_download_speed_caption":"インストーラーのダウンロードが遅すぎます。ネットワークのステータスを確認してください","update_canceled":"アップデートがキャンセルされました","current_version_release_time":"現在のバージョンのリリース時期","expired_app":"${displayName} 期限切れ","version_out_of_date":"バージョンが古い","have_to_update":"${displayName} のバージョンは古くなっています。一部のプロトコルまたは API は廃止されました。続行する前に ${displayName} を更新する必要があります。","exit_alphabiz":"終了 ${displayName}","exit_and_update":"終了してアップデートを適用する","new_version_hint":"新しいバージョンが利用可能です","no_new_version":"新しいバージョンは利用できません","current_is_latest":"現在のバージョンはすでに最新です","click_to_check_update":"[CHECK FOR UPDATE]ボタンをクリックしてアップデートを確認してください","download_latest_version_from_website":"公式 Web サイトにアクセスして最新バージョンをダウンロードしてください","to_the_website":"ウェブサイトへ","network_diagnotic":"ネットワーク診断","diagnotic":"診断","click_to_check":"クリックして確認してください","click_to_check_again":"クリックして再度確認してください","checking":"チェック中","online":"オンライン","offline":"オフライン","dns_look_up":"DNSルックアップ","error":"エラー","aws_service":"AWSサービス","network_pings":"ネットワークping","not_found":"見つかりません","packet_loss":"パケット損失","official_site":"オフィシャルサイト","download_test":"ダウンロードテスト","test_task":"テスト タスク {0}","download_failed":"ダウンロードに失敗しました","second_spend":"{0} の支出","open_default_player_failed":"デフォルトのプレーヤーを開けませんでした","copied_to_clipboard":"クリップボードにコピーされました","go_to":"に行く","region_not_available":"地域が利用できません","region_not_available_message":"ごめん!お住まいの地域ではこのアプリを使用できません。このアプリは {0} 秒後に終了します","confirm":"確認","no_available_result":"利用可能な結果がありません","invalid_password_format":"無効なパスワード形式です","invalid_password_format_same":"パスワードは元のパスワードと同じです","error_password":"パスワードエラー","keychain_setting":"キーホルダー","setting_description":"クラウドストレージ: 重要なデータをクラウドに保存します。\\nパスワードの変更: メディア ライブラリ キーのパスワードを変更します。\\nニーモニック: キーを生成および復元するための代替方法。\\nローカル キーのインポート: ローカルに保存されたキーをメディア ライブラリにインポートします。\\nエクスポート キー: 現在のメディア ライブラリ データをローカルまたはクラウドに保存します。\\nキーをクラウドにバックアップ: 現在のメディア ライブラリ データをバックアップのためにクラウドに更新します。","refresh_status":"最新状況","confirm_import_key":"インポートキーの確認","confirm_update_cloud_key":"クラウドにはすでにキーがあります。キーを更新すると、元のキーが上書きされます。クラウドに保存されているキーを更新してもよろしいですか?","export_key_with_cloud":"設定した独自のパスワードを入力してクラウドに保存されているライブラリキーをエクスポートし、ロック解除パスワードでキーファイルをロックします","store_cloud_key_prompt_password":"ライブラリキーをクラウドに保存するための独立したパスワードを入力します","update_cloud_key_prompt_password":"独立したパスワードを設定してライブラリキーを暗号化し、クラウドに更新します","enable_cloud_storage_prompt_password":"クラウドに保存されているキーのパスワードを設定します。これにより、クラウドからキーを取得できます。","input_unlock_password":"ロック解除パスワードを設定する","export_local_prompt_password":"キーファイルを暗号化するには、ロック解除パスワードを設定してください。このパスワードは保存されないため、パスワードを紛失するとライブラリ キーのロックを解除できなくなります。","require_unlock_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","require_independent_password":"独立したパスワードを入力して、クラウドに保存されているキーを取得します","import_local_prompt_password":"キーファイルはロックされています。ロック解除のパスワードを入力してください","select_encrypt_mode":"暗号化モードの選択","update_cloud_key":"クラウドに保存されているキーを更新する","backup_to_cloud":"ライブラリキーをクラウドにバックアップする","save_local":"ライブラリキーをローカルの暗号化ファイルとして保存します","create_new_key":"新しいライブラリキーを作成する","creating_lib_key":"ライブラリキーを作成しています...","loading_lib_key":"ライブラリキーをロードしています...","failed_to_create_lib_key":"ライブラリキーの作成に失敗しました","failed_to_load_lib_key":"ライブラリキーのロードに失敗しました","import_local_key":"キーをローカルにインポートする","import_lib_key_from_local":"ライブラリキーをローカルにインポートする","import_from_cloud":"クラウドからライブラリキーをインポートする","create_or_import_key":"ライブラリキーを作成またはインポートする","create_or_import_key_desc":"ライブラリ キーは、分散データベースでコンテンツを取得および公開するために使用される独立したキーです。","store_your_lib_key":"ライブラリキーを保管する","export_cloud_key":"クラウドからキーをエクスポート","export_current_key":"現在のキーをエクスポート","change_password":"パスワードを変更する","enable_cloud_storage":"クラウドストレージを有効にする","disable_cloud_storage":"クラウドストレージを無効にする","disable_cloud_storage_desc":"クラウド ストレージを無効にすると、クラウドに保存されているキーが削除されます。キーがローカルに保存されていることを確認してください。","sync_at":"同期先: {time}","cloud_storage_enabled":"キーチェーンを {storage} と同期する","cloud_storage_disabled":"クラウドストレージが無効になっています","saved_locally":"ローカルに保存されました","export_key":"キーファイルのエクスポート","cloud_independent_password":"クラウドに依存しないパスワード","key_file_unlock_password":"キーファイルのロック解除パスワード","re_enter_unlock_password":"ロック解除パスワードを再入力してください","independent_password_not_enabled":"現在のパスワードはAlphabizアカウントのパスワードです(独自のパスワードは設定されていません)","use_cognito_hash":"Alphabiz アカウントのパスワードを使用する","use_independent_password":"独立したパスワードを使用する","keychain_lib":"ライブラリキー","loading_keychain_state":"キーチェーンを読み込んでいます...","backing_up":"バックアップ...","backup_current_key":"現在のキーをクラウドにバックアップする","cloud_lib_key_not_existed":"ライブラリキーがクラウドに存在しません","open_keychain_file":"キーチェーン ファイルを開く","confirm_open_abk":"ABKファイルを開きますか?","use_the_key":"キーを使用する","backup_the_key":"キーをクラウドにバックアップする","keychain_data_does_not_exist":"キーチェーンデータが存在しません","timeout of 0ms exceeded":"ネットワークに問題があります。後でもう一度お試しください。","XhrError":"ネットワークに問題があります。後でもう一度お試しください。","payer credit amount is not enough":"クレジットが足りません","payee does not exist":"受取人が存在しません","block_list_manage":"ブロックリスト管理","blocked_users":"ブロックされたユーザー","blocked_channels":"ブロックされたチャンネル","unblock_user":"ユーザーのブロックを解除する","unblock_channel":"チャンネルのブロックを解除する","no_blocked_user":"ブロックされたユーザーはいません","no_blocked_channel":"ブロックされたチャンネルはありません","field_required":"{0} は必須です","setting":"設定","unknown_media":"不明なメディア","settings_button_visible":"ボタンが表示されます","settings_setting":"設定","settings_playback_rate":"再生速度","settings_subtitle":"字幕","settings_pip":"PiP","settings_fullscreen":"全画面表示","settings_subtitle_options":"字幕オプション","settings_normal":"普通","settings_italic":"イタリック","settings_lighter":"ライター","settings_bolder":"より大胆に","settings_small":"小さい","settings_large":"大きい","about":"について","services":"サービス","hide":"隠れる","hide_others":"他の人を隠す","show_all":"すべて表示する","quit":"やめる","edit":"編集","redo":"やり直し","cut":"切る","paste":"ペースト","select_all":"すべて選択","view":"ビュー","reload":"リロード","toggle_full_screen":"フルスクリーン切り替え","toggle_developer_tools":"開発者ツールの切り替え","window":"窓","minimize":"最小化する","bring_all_to_front":"すべてを前面に出す","help":"ヘルプ","github_repo":"Github リポジトリ","issues":"問題","learn_more":"もっと詳しく知る","learn_spelling":"スペルを学ぶ","lookup_selection":"「{selection}」を調べる","search_with_google":"Googleで検索","save_as":"名前を付けて保存","save_image":"画像を保存","save_image_as":"画像を保存します ...","copy_link":"リンクをコピーする","save_link_as":"リンクを名前を付けて保存 ...","copy_image":"画像をコピー","copy_image_as":"画像をコピー...","copy_image_address":"画像アドレスをコピー","download_complete":"ダウンロード完了","download_complete_message":"{0} がダウンロードされました","is_running":"{0} が実行中です","open":"{0} を開く","launch_problem":"起動の問題","ask_clear_data":"{0} を起動しようとしましたが、数回失敗したようです。\\nすべてのアプリデータをクリアして、後で起動してみますか?","launch_directly":"直接起動","clear_all_data":"すべてのデータをクリア","ask_clear_confirm":"これにより、すべての設定、ログ、ユーザー データが削除されます。\\nこの後、{0} を再度起動する必要がある場合があります。\\nデータを消去してもよろしいですか?","confirm_launch":"いいえ、直接起動します","confirm_clear":"はい、すべてのデータを消去します"}')},"3d7e":function(e,t,a){"use strict";a("b36a")},"3e69":function(e,t,a){},"3fc8":function(e,t,a){"use strict";a("0c2f")},4:function(e,t){},4027:function(e,t,a){"use strict";(function(e){var n=a("7ca3"),o=a.n(n),i=(a("de6c"),a("a1c1"),a("d4b5"),a("c581")),r=a("af04"),s=a("c228"),l=a("072b");const c=Object.values((()=>{const e={};Object.values(s["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})());class d extends i["b"]{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],PHONE_NUMBER:[["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[l["e"].bind(e)]}]}}constructor(e){super(...d.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=d.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class u extends i["a"]{constructor(e,t){if(super({username:new d(e)}),this.assumeData=u.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=s["b"][t])&&void 0!==a?a:s["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(u.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=u.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a])}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const[e,t]=this.items.username.value;console.log("Remove prefix",e,t),this.assume=!1,this.items.username.setMode("GENERAL",t)}get currentMode(){return this.items.username.currentMode}}o()(u,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}}),t["a"]={name:"ForgotPassword",props:{scope:Object},data(){const e=e=>e===this.submitForm.items.password.model||"account_password_not_equal";return{resendInterval:null,resendTimer:0,progress:0,searchForm:new u(this,this.$q.lang.getLocale().toLowerCase()),submitForm:new i["a"]({code:new i["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[l["h"].bind(this)]}),password:new i["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[l["d"].bind(this)]}),reEnterPassword:new i["b"]("",{type:"password",icon:"lock",label:"account_re_enter_password",rules:[l["d"].bind(this),e]})})}},watch:{progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{handleCancel(){0===e&&"PHONE_NUMBER"===this.searchForm.currentMode?this.form.backToGeneralMode():this.progress-=1},async handleSearch(){try{const e=this.searchForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SEND",e.username),this.resendTimer=60,0===this.progress?this.progress+=1:r["a"].showPositive("code_has_been_resent")}catch(e){r["a"].showNegative(e.message),this.searchForm.assume&&this.searchForm.turnToPhoneNumberMode()}},async handleSubmit(){try{const e=this.submitForm.formData;await this.$store.dispatch("ACCOUNT_FORGOT_PASSWORD_SUBMIT",e),r["a"].showPositive("password_has_been_reset"),this.progress=-1}catch(e){r["a"].showNegative(e.message)}},onInput(e){const t=this.searchForm.items.username.currentMode;let a=this.searchForm.items.username.model;if("GENERAL"===t){if(Array.isArray(a)&&(a=a[1]||""),a&&/^\d+$/g.test(a)&&this.searchForm.turnToPhoneNumberMode(),a&&/^\+\d+$/.test(a)){const e=a.substring(1),t=c.find((t=>e.startsWith(t.prefixCode)));if(t){const{prefixCode:a,countryCode:n}=t,o=e.replace(a,""),i=[a,o,n];this.searchForm.turnToPhoneNumberMode(),this.$nextTick((()=>{console.log("To Phone With",i),this.searchForm.items.username.updateModel(i)}))}else console.log(`Cannot find ${e} as prefix`)}}else"PHONE_NUMBER"===t&&(a=this.searchForm.items.username.model[1]||"",(a.includes("@")||a.startsWith("+"))&&this.searchForm.backToGeneralMode())},onPressBack(){const e=this.searchForm.items.username.model;if(Array.isArray(e)){const t=e[1]||"";this.$nextTick((()=>{this.searchForm.items.username.updateModel(t)}))}this.searchForm.backToGeneralMode()}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}}}).call(this,a("28d0"))},4165:function(e){e.exports=JSON.parse('{"lib_index":"บ้าน","lib_edit":"เผยแพร่","lib_publish":"เผยแพร่","lib_explore":"สำรวจ","lib_following":"กำลังติดตาม","lib_favorite":"รายการโปรดในท้องถิ่น","lib_local_favorites":"รายการโปรดในท้องถิ่น","lib_channel":"ช่อง","lib_submit":"ส่ง","lib_from_network":"การใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย","welcome_to_lib":"ยินดีต้อนรับสู่ห้องสมุดสื่อ ${displayName}","register_or_login":"ลงทะเบียน/เข้าสู่ระบบ","lib_recommend":"แนะนำ","lib_recommend_desc":"ยินดีต้อนรับสู่ ${displayName} ห้องสมุด! ห้องสมุดนี้ใช้ฐานข้อมูลแบบกระจายอำนาจจากเครือข่าย ในการเริ่มใช้งาน คุณต้องติดตามบางช่อง","follow_any_channel_to_continue":"ติดตามช่องใดก็ได้เพื่อดำเนินการต่อ","follow_channels_and_continue":"ติดตามช่อง {0} และดำเนินการต่อ","show_more_for_me":"แสดงมากขึ้นสำหรับฉัน","no_more_recommend":"ไม่แนะนำเพิ่มเติม","key":"สำคัญ","create_key":"สร้างคีย์","save_key":"บันทึกคีย์","save_key_file":"คุณต้องการบันทึกรหัสของคุณเป็นไฟล์หรือไม่?","import_key":"นำเข้าคีย์","import":"นำเข้า","invalid_key":"กุญแจนี้ใช้ไม่ได้","back_to_top":"กลับไปด้านบน","search_for_channel":"ค้นหารหัสช่อง","search_channel_no_result":"ไม่พบช่องที่มี ID {0}","please_input_channel_id":"โปรดป้อนรหัสช่อง","welcome_help_text":"นี่คือไลบรารีสื่อที่กระจายอำนาจ คุณต้องการ\\n เพื่อสร้างบัญชีสำหรับฐานข้อมูลนี้ เราจะ\\n สร้างรหัสส่วนตัวให้คุณโดยอัตโนมัติ\\n หากคุณมีรหัสอยู่แล้ว คุณสามารถนำเข้าได้เช่นกัน\\n ที่นี่.","welcome_key_text":"เมื่อคุณเข้าสู่ระบบแล้ว โปรดคลิกปุ่ม [SAVE KEY]\\n ที่มุมล่างขวาเพื่อบันทึกคีย์ส่วนตัวของคุณ\\n หากคุณทำกุญแจหาย คุณอาจไม่สามารถเข้าสู่ระบบได้อีก","redirect_to_recommend":"ดูเหมือนว่าคุณไม่ได้ติดตามช่องใดเลย กำลังเปลี่ยนเส้นทางไปยังหน้า [สำรวจ]","channel":"ช่อง","follow":"ติดตาม","unfollow":"เลิกติดตาม","following":"กำลังติดตาม","share":"แบ่งปัน","unfollow_confirm":"คุณแน่ใจหรือไม่ที่จะเลิกติดตามช่องนี้ โพสต์ทั้งหมดของช่องนี้ในไทม์ไลน์ของคุณจะถูกลบออก","follow_failed_hint":"การดำเนินการยังคงค้างอยู่ในพื้นหลัง หากไม่ได้ใช้การดำเนินการเป็นเวลานาน โปรดรีสตาร์ทแอปแล้วลองอีกครั้ง","block":"ปิดกั้น","unblock":"เลิกบล็อก","blocked":"ถูกบล็อก","block_channel":"บล็อกช่องนี้","block_channel_confirm":"ช่องที่ถูกบล็อกจะลบออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","block_creator":"บล็อกผู้สร้างช่องนี้","unblock_creator":"เลิกบล็อกผู้สร้างช่องนี้","block_creator_confirm":"ผู้สร้างบล็อกจะลบช่องทั้งหมดที่สร้างโดยผู้สร้างรายนี้ออกจากไทม์ไลน์ของคุณ คุณสามารถจัดการรายการบล็อกของคุณได้ในการตั้งค่าบัญชี","share_url_copied":"แบ่งปัน URL จะถูกคัดลอกไปยังคลิปบอร์ดของคุณ","follow_time":"ติดตามเวลา","update_time":"เวลาอัปเดต","search":"ค้นหา","type":"พิมพ์","added":"เพิ่ม","click_to_task":"คลิกเพื่อไปที่งาน","lib_already_added":"คุณได้เพิ่มวิดีโอนี้แล้ว","description":"คำอธิบาย","poster":"โปสเตอร์","channel_poster":"โปสเตอร์ช่อง","preview":"ดูตัวอย่าง","creator":"ผู้สร้าง","creator_detail":"รายละเอียดผู้สร้าง","loading_creator":"กำลังโหลดข้อมูลผู้สร้าง","wait_for_creator_loaded":"โปรดรอสักครู่เพื่อโหลดข้อมูลผู้สร้าง","follower":"ผู้ติดตาม","followers":"ผู้ติดตาม","follower_list":"รายชื่อผู้ติดตาม","user":"ผู้ใช้","channel_title":"ชื่อช่อง","channel_id":"รหัสช่อง","post_title":"ชื่อกระทู้","post_id":"รหัสโพสต์","import_data_from_excel":"นำเข้าข้อมูลจาก excel","set_excel_keys":"ตั้งค่าคีย์ excel","excel_import_succeded":"นำเข้า Excel สำเร็จ","excel_import_success_msg":"{0} แถวพร้อมที่จะเพิ่ม {1} ไม่ถูกต้องและ {2} รายการที่ซ้ำกันจะถูกละเว้น","cannot_find_channel":"ไม่พบช่อง","cannot_find_posts":"ไม่พบโพสต์","add_channel":"เพิ่มช่อง","add_post":"เพิ่มโพสต์","edit_channel":"แก้ไขช่อง","channel_setting":"การตั้งค่าช่อง","edit_post":"แก้ไขโพสต์","edit_posts":"แก้ไขข้อความ","channel_detail":"รายละเอียดช่อง","remove":"ลบ","remove_channel":"ลบช่อง","remove_channel_confirm":"คุณแน่ใจหรือไม่ว่าจะนำโพสต์นี้ออก สิ่งนี้ไม่สามารถกู้คืนได้","remove_post":"ลบโพสต์","remove_post_confirm":"คุณแน่ใจหรือว่าต้องการลบช่องนี้ สิ่งนี้ไม่สามารถกู้คืนได้","preview_mode":"โหมดดูตัวอย่าง","preview_mode_desc":"นี่คือตัวอย่างช่องของคุณ อัตราของภาพยนตร์ทั้งหมดแสดงไว้ที่นี่","edit_user_profile":"แก้ไขโปรไฟล์ผู้ใช้","name":"ชื่อเล่น","avatar":"สัญลักษณ์","no_following":"ไม่มีช่องติดตาม คลิกเพื่อข้ามไป","no_recommend":"ไม่มีช่องแนะนำ คลิกเพื่อข้ามไป","first_recomment_msg":"อาจใช้เวลาสักครู่หากนี่เป็นการเปิดแอปครั้งแรก","invalid_image":"รูปภาพไม่ถูกต้อง","image_not_reachable":"ไม่สามารถเข้าถึง URL รูปภาพนี้ได้","channel_not_found":"ไม่พบช่อง","cannot_get_channel_info":"ไม่สามารถรับข้อมูลช่อง ช่องนี้อาจถูกลบโดยผู้สร้างและไม่สามารถใช้งานได้อีกต่อไป","validate_error":"ตรวจสอบข้อผิดพลาด","validate_user_name_no_space":"ชื่อผู้ใช้ไม่ควรมีช่องว่าง","validate_url_no_space":"URL ไม่ควรมีช่องว่าง","validate_user_name_length":"ชื่อผู้ใช้ควรมีความยาวระหว่าง {0} ถึง {1}","validate_user_desc_length":"คำอธิบายผู้ใช้ไม่ควรเกิน {0} อักขระ","validate_user_avatar_url":"อวาตาร์ของผู้ใช้ควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_channel_title_length":"ชื่อช่องควรมีความยาวระหว่าง 1 ถึง 100","validate_channel_desc_length":"คำอธิบายช่องควรมีความยาวระหว่าง 10 ถึง 300","validate_channel_image_url":"การแสดงตัวอย่างช่องควรเป็น URL ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_title_length":"ชื่อโพสต์ควรมีความยาวระหว่าง 1 ถึง 100","validate_post_desc_length":"คำอธิบายโพสต์ควรมีความยาวระหว่าง 10 ถึง 300","validate_post_image_url":"โปสเตอร์ควรเป็น url ที่มีอักขระน้อยกว่า 2,048 ตัว","validate_post_url":"URL ${displayName} ไม่ถูกต้อง","validate_post_url_length":"${displayName} URL ไม่ควรเกิน 2,048 อักขระ","film_rate":"อัตราฟิล์ม","set_film_rate":"กำหนดอัตราภาพยนตร์","select_a_rate_before_enter":"คุณต้องเลือกอัตราภาพยนตร์ก่อนเข้าสู่ไลบรารีสื่อ","library_available_rate":"อัตราภาพยนตร์ที่มีอยู่ในห้องสมุด","rate_g":"G – ผู้ชมทั่วไป","rate_g_desc":"รับทุกวัย ไม่มีอะไรที่จะทำให้ผู้ปกครองขุ่นเคืองเมื่อเด็ก ๆ ดู","rate_pg":"PG – ผู้ปกครองแนะนำ","rate_pg_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสำหรับเด็ก ผู้ปกครองควรให้คำแนะนำแก่ผู้ปกครอง อาจมีเนื้อหาบางอย่างที่ผู้ปกครองอาจไม่ชอบสำหรับเด็กเล็ก","rate_pg_13":"PG-13 – ผู้ปกครองควรระมัดระวังเป็นอย่างยิ่ง","rate_pg_13_desc":"เนื้อหาบางอย่างอาจไม่เหมาะสมสำหรับเด็กอายุต่ำกว่า 13 ปี ผู้ปกครองควรระมัดระวัง เนื้อหาบางอย่างอาจไม่เหมาะสมกับเด็กก่อนวัยรุ่น","rate_r":"R – ถูกจำกัด","rate_r_desc":"อายุต่ำกว่า 17 ปีต้องมีพ่อแม่หรือผู้ปกครองที่เป็นผู้ใหญ่มาด้วย มีเนื้อหาสำหรับผู้ใหญ่ ผู้ปกครองควรเรียนรู้เพิ่มเติมเกี่ยวกับภาพยนตร์ก่อนที่จะพาลูกเล็กไปด้วย","rate_nc_17":"NC-17 – สำหรับผู้ใหญ่เท่านั้น","rate_nc_17_desc":"ห้ามใครอายุต่ำกว่า 17 ปีเข้า ผู้ใหญ่ชัดๆ ไม่อนุญาตให้เด็กเข้าพัก","set_as_private":"ตั้งเป็นส่วนตัว","hide_in_explore":"ซ่อนช่องนี้ในหน้าสำรวจ","hidden":"ที่ซ่อนอยู่","select_a_rate":"กรุณาเลือกอัตราภาพยนตร์","select_from_tasks":"เลือกจากงาน","import_from_magnet":"นำเข้าจากแม่เหล็ก:?...","input_magnet_url":"แม่เหล็กอินพุต:? URL","task_title":"ชื่องาน","set_title":"ตั้งชื่อเรื่อง","add_to_local_favorites":"เพิ่มในรายการโปรดในท้องถิ่น","remove_from_local_favorites":"ลบออกจากรายการโปรดในท้องถิ่น","removed_favorite":"ลบรายการโปรดแล้ว","import_or_export_favorites":"นำเข้า/ส่งออกรายการโปรด","export_local_favorites":"ส่งออกรายการโปรดในเครื่องเป็นข้อมูลสำรอง","import_favorites_file":"นำเข้าไฟล์รายการโปรด","not_a_favorite_file":"ไฟล์นี้ไม่ใช่ไฟล์สำรองข้อมูลโปรด","connection_status":"สถานะการเชื่อมต่อ","gun_server_list":"โหนดแคช","custom_nodes":"โหนดแคชที่กำหนดเอง","custom_nodes_hint":"โหนดแคชที่กำหนดเองจะถูกนำไปใช้หลังจากเปิดแอปใหม่","wait_for_reboot":"กำลังรอการรีบูต...({seconds}s)","reboot_now":"รีบูทเดี๋ยวนี้","reboot_later":"รีบูตในภายหลัง","peer_list":"โหนดโดยตรง","server":"โหนด URL","peer":"เพียร์","peer_id":"รหัสโหนด","connection":"การเชื่อมต่อ","data_source":"แหล่งข้อมูล","sync":"ซิงค์","syncing":"กำลังซิงค์","sync_completed":"ซิงค์เสร็จสมบูรณ์","got_all_post":"คุณได้รับโพสต์ทั้งหมดแล้ว","placeholder_channel_title":"ชื่อช่องของคุณ","placeholder_channel_desc":"คำอธิบายเกี่ยวกับช่องนี้","placeholder_post_title":"ชื่อภาพยนตร์ (ปี)","placeholder_post_desc":"คำอธิบายเกี่ยวกับหนังเรื่องนี้","private_channel":"ช่องส่วนตัว","creator_blocked":"ผู้สร้างบล็อก","go_to_library":"ไปห้องสมุด?","go_to_library_channel_msg":"คุณต้องการไปที่ช่องไลบรารี {0} หรือไม่","magnet_does_not_have_name":"แม่เหล็กนี้:? url ไม่มีชื่อ คุณต้องเพิ่มชื่อโพสต์ก่อน","no_available_post":"ไม่มีโพสต์","following_channel_no_post":"ช่องที่คุณติดตามทั้งหมดไม่มีโพสต์ อาจเกิดจากข้อผิดพลาดของเครือข่าย หากคุณเคยติดตามบางช่องแล้ว โพสต์อาจถูกโหลดในภายหลัง","share_to_library":"แบ่งปันไปที่ห้องสมุด","quick_start":"เริ่มต้นอย่างรวดเร็ว","quick_start_desc":"เริ่มสร้างโพสต์ด้วยงานหรือไฟล์","select_file":"เลือกไฟล์...","select_folder":"เลือกโฟลเดอร์...","post_options":"โพสต์ตัวเลือก","channel_options":"ตัวเลือกช่อง","create_new_channel":"สร้างช่องใหม่","use_existed_channel":"ใช้ช่องทางที่มีอยู่","select_existed_channel":"เลือกช่องที่มีอยู่","uploaded_by":"{title} อัพโหลดโดย {name}","created_by":"{title} สร้างโดย {name}","creating_new_channel":"กำลังสร้างช่องใหม่...","created_new_channel":"สร้างช่องใหม่แล้ว","creating_new_post":"กำลังสร้างโพสต์ใหม่...","created_new_post":"สร้างโพสต์ใหม่แล้ว","create_new_post":"สร้างโพสต์ใหม่","quick_start_timeout":"{0} หมดเวลา อาจเกิดจากข้อผิดพลาดของเครือข่าย กรุณาลองใหม่อีกครั้งในภายหลัง.","file_too_large":"ไฟล์ใหญ่เกินไป","file_too_large_msg":"ไฟล์นี้มีขนาดใหญ่กว่า 4GB ({size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจหรือไม่ว่าจะดำเนินการต่อ","resolving_folder_files":"กำลังแก้ไขไฟล์โฟลเดอร์...","folder_too_large":"โฟลเดอร์ใหญ่เกินไป","folder_too_large_msg":"ไฟล์ในโฟลเดอร์นี้มีขนาดใหญ่กว่า 4GB (รวม {size}) และอาจใช้เวลาในการเตรียมงานนาน คุณแน่ใจว่าจะอัปโหลดหรือไม่","creating_new_task":"กำลังสร้างงานใหม่...","cannot_create_task":"ไม่สามารถสร้างงาน","cannot_create_task_msg":"ซึ่งอาจเกิดจากข้อผิดพลาดบางอย่าง หากงานถูกสร้างขึ้นอย่างถูกต้อง คุณสามารถตรวจสอบรายการงานได้ในภายหลัง","cannot_get_task_name":"ไม่สามารถรับชื่องาน คุณต้องป้อนข้อมูลก่อน","remove_old_task":"ลบงานเก่า","remove_old_task_desc":"โหมดเว็บสามารถสร้างได้ครั้งละหนึ่งงานเท่านั้น คุณต้องการลบงานเก่าหรือไม่?","subtitle_list":"รายการคำบรรยาย","optional":"ไม่จำเป็น","with_subtitle":"พร้อมคำบรรยาย {language}","maximumSubtitleNum_limit":"จำนวนคำบรรยายถึงขีดสุดแล้ว","add_subtitle_url":"เพิ่มลิงค์ดาวน์โหลดคำบรรยาย","cannot_add_subtitle":"ไม่สามารถเพิ่มคำบรรยาย","cannot_add_subtitle_msg":"ไม่ได้เลือกภาษาคำบรรยายหรือลิงก์ดาวน์โหลดไม่ถูกต้อง","support_subtitle_type":"รองรับคำบรรยายในรูปแบบ srt และ vtt เท่านั้น","recommend_opensubtitles":"ขอแนะนำให้ใช้ลิงค์ดาวน์โหลดคำบรรยายหรือรหัสที่ www.opensubtitles.org","take_down":"ลง","serious_violation":"การละเมิดอย่างร้ายแรง","copyright_disputes":"ข้อพิพาทด้านลิขสิทธิ์","adults_only":"ผู้ใหญ่เท่านั้น","takedown_reason":"เหตุผลในการลบออก","takedown_mode":"โหมดลบออก","admins":"ผู้ดูแลระบบ","takedown_user":"ลบผู้สร้างรายนี้","takedown_channel":"ลบช่องนี้","takedown_post":"ลบโพสต์นี้","select_takedown_reason":"เลือกเหตุผลในการลบออก","takedown_invalid_reason":"เหตุผลในการลบออกไม่ถูกต้อง","takedown_invalid_user_id":"รหัสผู้ใช้ไม่ถูกต้อง รหัสควรมีอักขระ 87 ตัว","takedown_invalid_channel_id":"รหัสช่องไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_invalid_post_id":"รหัสโพสต์ไม่ถูกต้อง รหัสควรมีอักขระ 20 ตัว","takedown_management":"จัดการลง","users":"ผู้ใช้","channels":"ช่อง","posts":"กระทู้","you":"คุณ","preset":"ตั้งค่าล่วงหน้า","admin":"ผู้ดูแลระบบ","committee":"คณะกรรมการ","about_takedown_mode":"เกี่ยวกับโหมดลบออก:\\nตั้งค่าล่วงหน้า: กำหนดค่าในที่เก็บ github พวกเขาทั้งหมดจะถูกลบออกจากห้องสมุด\\nผู้ดูแลระบบ: คนใดคนหนึ่งที่ผู้ดูแลระบบโหวตให้จะถูกลบออก\\nคณะกรรมการ: แอดมินอย่างน้อยครึ่งหนึ่งโหวตให้จะถูกลบออก","cannot_edit_preset":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากเป็นแถวที่กำหนดไว้ล่วงหน้า","cannot_edit_not_vote":"คุณไม่สามารถแก้ไขแถวนี้ได้เนื่องจากคุณยังไม่ได้ลงคะแนน","remove_vote":"ลบการลงคะแนนของคุณ","post_preload_failed":"โหลดโพสต์นี้ล่วงหน้าไม่สำเร็จ ลิงก์ดาวน์โหลดอาจล้าสมัย ดังนั้นโพสต์นี้จึงไม่สามารถเล่นได้ทันที","about_cache_node":"เกี่ยวกับโหนดแคช","edit_cache_node":"แก้ไขโหนดแคช","create_cache_node":"สร้างโหนดแคช","about_cache_node_desc":"${displayName} ใช้เซิร์ฟเวอร์ปืนเป็นโหนดแคช คุณสามารถแก้ไขโหนดที่กำหนดเองได้ในการตั้งค่าล่วงหน้า","learn_how_to_deploy_gun":"เรียนรู้วิธีการปรับใช้เซิร์ฟเวอร์ปืนของคุณเอง","repeat_add":"เพิ่มงานแล้ว โปรดอย่าเพิ่มอีกครั้ง","upload":"ที่อัพโหลด","download":"ดาวน์โหลด","delete":"ลบ","delete_task":"ลบงาน","delete_confirm_message":"ลบงานนี้ไหม สิ่งนี้ไม่สามารถเพิกถอนได้","also_delete_files":"ลบไฟล์ด้วย","default_delete_files":"เริ่มต้นลบไฟล์ที่ดาวน์โหลดหลังจากลบงาน","not_now":"ไม่ใช่ตอนนี้","delete_autoupload_confirm":"งานนี้มีไฟล์ที่คุณใส่ไว้ในไดเร็กทอรีอัปโหลดอัตโนมัติ การลบงานนี้จะเป็นการลบไฟล์ด้วย","delete_anyway":"ลบต่อไป","upload_too_many_files":"อัปโหลดไฟล์มากเกินไป","ask_if_unlimit_upload_amount":"ไดเร็กทอรีอัปโหลดอัตโนมัติมีไฟล์มากเกินไป คุณต้องการปิดการจำกัดจำนวนการอัปโหลดหรือไม่ *สิ่งนี้อาจทำให้เกิดปัญหาด้านประสิทธิภาพ","disable_limitation":"ปิดการใช้งานข้อ จำกัด","not_length":"ขณะนี้ยังไม่รองรับการทำงานหลายไฟล์ โปรดให้ความร่วมมือ","download_torrent":"ดาวน์โหลดไฟล์","upload_torrent":"อัพโหลดไฟล์","files":"ไฟล์","file":"ไฟล์","folder":"โฟลเดอร์","start_all":"เริ่มต้นทั้งหมด","pause_all":"หยุดทั้งหมด","remove_all":"ลบทั้งหมด","upload_all":"อัปโหลดทั้งหมด","clear_history":"ล้างประวัติ","pause_all_finish_payments":"การดำเนินการนี้จะเสร็จสิ้นการชำระเงินทั้งหมด","accelerating":"กำลังเร่ง","link_task":"งานเชื่อมโยง","torrent_task":"งานไฟล์","ok":"ตกลง","cancel":"ยกเลิก","download_directory_position":"ดาวน์โหลดตำแหน่งไดเร็กทอรี","torrent_file":"ไฟล์งาน","magnetic_link_incorrect":"รูปแบบลิงค์ไม่ถูกต้อง","delete_fail":"ลบล้มเหลว","pause":"หยุดชั่วคราว","paused":"หยุดชั่วคราว","stop_torrent":"หยุด","seed":"เมล็ดพันธุ์","resume":"ประวัติย่อ","downloading":"กำลังดาวน์โหลด","downloaded":"ดาวน์โหลดแล้ว","uploading":"กำลังอัปโหลด","auto_uploading":"อัปโหลดอัตโนมัติ","uploaded":"อัปโหลดแล้ว","pending":"รองานอื่นๆ","verifying":"กำลังตรวจสอบ","waiting_for_verify":"กำลังรอการตรวจสอบ","seeding":"การเพาะเมล็ด","completed":"สมบูรณ์","status":"สถานะ","task_name":"ชื่องาน","size":"ขนาด","progress":"ความคืบหน้า","sort":"เรียงลำดับ","ascending":"จากน้อยไปมาก","descending":"จากมากไปน้อย","file_loading":"กำลังโหลดไฟล์...","loading":"กำลังโหลด","unknown_status":"ไม่ทราบ","play_while_downloading":"เล่น...","upload_or_play":"อัปโหลด / เล่น","play":"เล่น","ask_if_upload_file":"อัพโหลดไฟล์?","ask_if_upload_or_play":"อัปโหลดหรือเล่นไฟล์?","torrent_error":"เกิดข้อผิดพลาดเมื่อเพิ่มงาน:","no_peers":"ลองใหม่มากกว่า {0} ครั้ง แต่ไม่มีเพียร์","torrent_exists":"งานมีอยู่แล้ว","show_origin_torrent":"รับไฟล์งานหรือ URL ต้นฉบับ","show_directory":"เปิดไดเร็กทอรีของทอร์เรนต์นี้","task_num":"งาน","total_upload_speed":"ความเร็วในการอัปโหลด","total_download_speed":"ความเร็วดาวน์โหลด","path_missing":"ข้อผิดพลาด: ไม่พบเส้นทาง torrent","origin_not_found":"ไม่พบข้อมูลงานต้นทาง","text_copied":"Magnum url ถูกคัดลอกไปยังคลิปบอร์ดของคุณ","copy_magnet_uri":"คัดลอกแม่เหล็ก:? ยูอาร์ไอ","copy_download_uri":"คัดลอก URI ดาวน์โหลด","copy_share_uri":"คัดลอก URI ที่ใช้ร่วมกัน","uri_copied":"คัดลอก URI ไปยังคลิปบอร์ดของคุณเรียบร้อยแล้ว","uri_copy_failed":"คัดลอก uri.dll ไม่สำเร็จ","more":"มากกว่า...","toggle_list_mode":"สลับโหมดรายการ","comment":"ความคิดเห็น","operations":"การดำเนินงาน","open_directory":"เปิดไดเรกทอรี","no_downloading_task":"ไม่มีงานดาวน์โหลด","remove_all_downloading_tasks":"นำงานดาวน์โหลดทั้งหมดออกไหม","remove_all_upload_tasks":"นำงานอัปโหลดทั้งหมดออกไหม","remove_autoupload_files":"ลบไฟล์ที่อัปโหลดอัตโนมัติ","remove_all_history":"นำประวัติทั้งหมดออกไหม","remaining":"ที่เหลืออยู่","created_time":"สร้างเวลา","used_time":"เวลาที่ใช้","completed_time":"ครบเวลา","yesterday":"เมื่อวาน","before_yesterday":"{empty}","earlier":"ก่อนหน้านี้","miss_file":"ไฟล์บางไฟล์หายไป","delete_miss_file_task":"มีไฟล์ fome หายไปใน {0}","common_peer":"เพื่อนทั่วไป","ab_peer":"${displayName} เพื่อน","ab_peer_verified":"ยืนยันแล้ว ${displayName} เพียร์","ab_peer_available":"${displayName} เพียร์ที่มีอยู่","alphabiz_accelerating":"${displayName} เร่ง","income":"รายได้","income_info":"รายได้(วันนี้/ทั้งหมด)","total_income_info":"รายได้: {0}(วันนี้) / {1}(ทั้งหมด)","login_to_see_income":"เข้าสู่ระบบเพื่อดูสถิติรายได้","credit_cost":"ต้นทุนเครดิต","downloaded_by_payment":"ดาวน์โหลดโดยการชำระเงิน","file_not_found":"ไม่พบไฟล์นี้ในเครื่อง","no_task":"ไม่มีงาน","no_matched_task":"ไม่มีงานที่ตรงกัน","space_not_enough":"พื้นที่ดิสก์ไม่เพียงพอ","need_more_space":"ต้องการพื้นที่เพิ่ม {0} แต่ดิสก์ปัจจุบันมี {1} ฟรี (สงวน {2}) งานถูกหยุดชั่วคราว การโหลดไลบรารีล่วงหน้าถูกปิดใช้งาน คุณสามารถเปิดใช้งานอีกครั้งได้ใน [การตั้งค่า - ขั้นสูง]","seeders":"เครื่องหยอดเมล็ด","last_update":"การปรับปรุงครั้งล่าสุด","connecting":"กำลังเชื่อมต่อ","connected":"เชื่อมต่อแล้ว","request_timed_out":"คำขอหมดเวลา","connection_failed":"การเชื่อมต่อล้มเหลว","invalid_download_url":"URL ดาวน์โหลดไม่ถูกต้อง","download_link":"ลิ้งค์ดาวน์โหลด","empty_files":"ไม่มีไฟล์ในไดเรกทอรี","duplicate_task":"งานที่ซ้ำกัน","duplicate_tracker":"ตัวติดตามที่ซ้ำกัน","this_task_not_ready":"งานนี้ไม่พร้อม การหยุดงานนี้ชั่วคราวจะเป็นการลบออกโดยตรง","some_task_not_ready":"งานบางอย่างไม่พร้อม การหยุดงานเหล่านี้จะลบออกโดยตรง","failed_to_delete_files":"ลบไฟล์ไม่สำเร็จ","failed_to_delete_files_desc":"ลบบางไฟล์ของงานไม่สำเร็จ คุณอาจต้องลบออกด้วยตนเอง","unknown_error":"ข้อผิดพลาดที่ไม่รู้จัก: {0}","more_files_are_not_shown":"(ไฟล์เพิ่มเติม ${0} ไม่แสดงเนื่องจากเหตุผลด้านประสิทธิภาพ)","no_available_file":"ไม่มีไฟล์ที่ใช้ได้ กรุณารองานพร้อม","service_worker_error":"ไม่สามารถโหลด ServiceWorker เพื่อเล่นได้ เบราว์เซอร์ของคุณอาจไม่รองรับคุณลักษณะนี้ หรือไม่ได้เปิดใช้งาน ServiceWorker คุณอาจต้องโหลดหน้านี้ใหม่แล้วลองอีกครั้ง","add_task_first":"คุณต้องเพิ่มงานก่อน","player_task_time":"ผู้เล่นใช้เวลาหลายวินาทีในการเตรียมตัวสำหรับการเล่น อาจมีบางอย่างผิดปกติกับงาน","web_mode_hint":"โหมดเว็บของ ${displayName} รองรับเฉพาะ WebRTC เพียร์ เพื่อประสบการณ์ที่ดีที่สุด โปรดดาวน์โหลด ${displayName} Desktop App","web_mode_task_hint":"คลิกปุ่มด้านล่างเพื่อเพิ่มงาน คุณสามารถเพิ่มได้ครั้งละหนึ่งงานเท่านั้น","save_to_local":"บันทึกไปยังท้องถิ่น","save_as_zip":"บันทึกเป็น ZIP","creating_save_file":"กำลังสร้างไฟล์บันทึก...","upload_as_one_directory":"อัปโหลดเป็นไดเร็กทอรีเดียว","upload_as_single_files":"อัปโหลดเป็นไฟล์เดียว","web_mode_upload_single":"คุณสามารถอัปโหลดไฟล์เดียวในโหมดเว็บเท่านั้น","download_success":"ดาวน์โหลดสำเร็จ","download_fail":"การดาวน์โหลดล้มเหลว","wait_for_downloaded_to_share":"โปรดรอให้ดาวน์โหลดงานก่อนแชร์","download_with_cellular":"ดาวน์โหลดงานโดยใช้เซลลูลาร์","download_with_cellular_desc":"คุณกำลังใช้เครือข่ายเซลลูลาร์ การดาวน์โหลดงานด้วยเซลลูลาร์อาจมีค่าธรรมเนียมเพิ่มเติมจากผู้ให้บริการของคุณ","download_with_cellular_confirm":"ยังคงดาวน์โหลดด้วยมือถือ","language":"ภาษา","appearance":"รูปร่าง","darkModeSystem":"ระบบ","darkModeLight":"แสงสว่าง","darkModeDark":"มืด","basic_setting":"ขั้นพื้นฐาน","hideMenu":"ซ่อนเมนูแอพ (Windows & Linux เท่านั้น)","autoHide":"ซ่อนหน้าต่างอัตโนมัติ","autoStart":"เปิดที่เข้าสู่ระบบ","restore":"รักษาขนาดและตำแหน่งของหน้าต่างเมื่อออก","autoStartUnfinished":"ดำเนินงานที่ยังไม่เสร็จทั้งหมดต่อโดยอัตโนมัติ","default_download_path":"เส้นทางเริ่มต้น","download_directory":"ดาวน์โหลดไดเรกทอรี","upload_directory":"อัปโหลดไดเร็กทอรี","enable_auto_upload":"เปิดใช้งานการอัปโหลดอัตโนมัติ","unlimit_upload_amount":"ไม่จำกัดจำนวนอัพโหลด","unlimit_upload_warning":"อนุญาตให้อัปโหลดไฟล์จำนวนมาก ซึ่งอาจทำให้เกิดปัญหาด้านประสิทธิภาพ","start":"สตาร์ทอัพ","transport_setting":"การแพร่เชื้อ","upload_limit":"ขีดจำกัดการอัปโหลด","download_limit":"ขีดจำกัดการดาวน์โหลด","payed_user_share_rate":"อัตราส่วนแบ่งของผู้ใช้ที่ชำระเงิน","unlimited":"ไม่ จำกัด","limit_input_error":"จำนวนจำกัดควรเป็นค่าบวก","BT_setting":"การตั้งค่างาน","saveLinkSeed":"บันทึกลิงค์เป็นไฟล์งาน","autoDownload":"ดาวน์โหลดลิงค์และเนื้อหาโดยอัตโนมัติ","continuousSeeding":"เก็บเมล็ดไว้จนกว่าจะหยุดด้วยตนเอง","seedSharingRate":"อัตราส่วนเมล็ด","seedTime":"เวลาเมล็ด (นาที)","task_manage":"การจัดการงาน","maximumDownloadNum":"งานที่ใช้งานสูงสุด","maximumConnectionsNum":"การเชื่อมต่อสูงสุดต่อเซิร์ฟเวอร์","range_error":"ช่วงควรอยู่ระหว่าง {0} ถึง {1}","random":"สุ่ม","breakpointContinuation":"ดำเนินการต่อ","automaticSkip":"แสดงการดาวน์โหลดโดยอัตโนมัติหลังจากเพิ่มงาน","afterNotification":"การแจ้งเตือนหลังจากการดาวน์โหลดเสร็จสิ้น","deleteConfirm":"ไม่จำเป็นต้องมีการยืนยันก่อนที่จะลบงาน","submit":"บันทึกและสมัคร","discard":"ทิ้ง","reset":"รีเซ็ต","reset_all_settings":"รีเซ็ตการตั้งค่าทั้งหมดไหม","preferences_resetted":"รีเซ็ตค่ากำหนดแล้ว","traditional_chinese":"จีนดั้งเดิม","japanese":"ญี่ปุ่น","english":"ภาษาอังกฤษ","chinese":"ภาษาจีนตัวย่อ","advancedSettings":"ขั้นสูง","autoUpdate":"อัปเดตอัตโนมัติ","autoCheckUpdate":"ตรวจสอบการอัปเดตโดยอัตโนมัติ","proxy":"หนังสือมอบฉันทะ","useProxyService":"เปิดใช้งานพร็อกซี","trackerService":"เซิร์ฟเวอร์ติดตาม","recommendUse":"ที่แนะนำ","autoUpdateTrackerServiceList":"อัปเดตรายการติดตามทุกวันโดยอัตโนมัติ","manualUpdateTracker":"อัปเดตด้วยตนเอง","manualUpdateSuccess":"อัปเดตเซิร์ฟเวอร์ตัวติดตามสำเร็จแล้ว","manualUpdateFail":"ไม่สามารถอัปเดตจาก:","listenPort":"ฟังพอร์ต","BTlistenPort":"พอร์ตส่งข้อมูล","DHTlistenPort":"แฮชพอร์ตแบบกระจาย","protocols":"โปรโตคอลที่เข้ากันได้","setDefaultClientForFollowingProtocols":"ตั้งเป็นไคลเอนต์เริ่มต้นสำหรับโปรโตคอลต่อไปนี้","magnetUrl":"แม่เหล็ก","video_file":"ไฟล์วิดีโอ","audio_file":"ไฟล์เสียง","security":"ความปลอดภัย","impersonateUserAgent":"จำลอง User-Agent","RPCauthorizationkey":"ความลับของ RPC","viewDocument":"ดูคู่มือลับ RPC","developer":"นักพัฒนา","applicationLogPath":"เส้นทางบันทึกแอป","downloadSessionPath":"ดาวน์โหลดเส้นทางเซสชัน","resetDownloadSessionRecord":"รีเซ็ตเซสชันการดาวน์โหลด","restoreInitialSettings":"รีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน","preferences_set_successfully":"บันทึกค่ากำหนดเรียบร้อยแล้ว!","preferences_set_fail":"บันทึกค่ากำหนดล้มเหลว!","change_not_save":"ไม่ได้บันทึกการเปลี่ยนแปลง","discard_all_changes":"ยกเลิกการเปลี่ยนแปลงทั้งหมดแล้วออกไหม","stay_in_page":"อยู่ในหน้า","disk_usage":"การใช้ดิสก์","pause_if_less_space":"หยุดชั่วคราวและแจ้งเตือนหากพื้นที่ว่างน้อยกว่า (MB)","default_video_player":"เครื่องเล่นวิดีโอเริ่มต้น","video_cache_time":"แคชการเล่นสตรีม","minutes":"นาที","system_default":"ค่าเริ่มต้นของระบบ","media_player":"เครื่องเล่นสื่อ","library_film_rate":"อัตราฟิล์มที่มีอยู่","library_show_explore":"แสดงหน้า [สำรวจ]","library_setting":"การตั้งค่าห้องสมุด","library_sync_setting":"การตั้งค่าการซิงค์ไลบรารี","keychain_sync_status":"สถานะการซิงค์พวงกุญแจ","sync_with_aws":"ซิงค์พวงกุญแจกับ Amazon Web Services","backup_to_local":"สำรองข้อมูลไปยังไฟล์ในเครื่อง","enable_sync_with_aws":"เปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws":"ปิดใช้งานการซิงค์กับ AWS","disable_sync_with_aws_desc":"นี่จะเป็นการลบรหัสที่บันทึกไว้ในเซิร์ฟเวอร์ โปรดตรวจสอบว่าคุณได้ส่งออกคีย์ของคุณแล้ว","input_independent_password":"ป้อนรหัสผ่านอิสระ","change_independent_password":"เปลี่ยนรหัสผ่านอิสระ","password_error":"รหัสผ่านผิดพลาด","password_invalid":"รหัสผ่านไม่ถูกต้อง","key_existed":"มีคีย์อยู่","key_not_found":"ไม่พบคีย์","library_recommend":"ห้องสมุดแนะนำ","show_all_channels":"แสดงช่องทั้งหมดในหน้าแนะนำห้องสมุด","not_logged_in":"ไม่ได้เข้าสู่ระบบ","login_to_continue":"เข้าสู่ระบบเพื่อดำเนินการต่อ","mnemonic_code":"รหัสช่วยในการจำ","wordlist":"รายการคำ","restore_code":"กู้คืนจากรหัส","generate_code":"สร้างรหัส","export_mnemonic_code":"ส่งออกรหัสช่วยจำ","import_mnemonic_code":"นำเข้ารหัสช่วยในการจำ","print":"พิมพ์","save_as_txt":"บันทึกเป็น txt","save_as_pdf":"บันทึกเป็น pdf","from_file":"จากไฟล์","not_valid_mnemonic_code":"นี่ไม่ใช่รหัสช่วยจำที่ถูกต้อง","cannot_parse_code_as_key":"ไม่สามารถแยกวิเคราะห์รหัสช่วยจำนี้เป็นรหัสไลบรารี","import_key_hint":"คุณแน่ใจหรือไม่ที่จะนำเข้าคีย์นี้ นี่จะกู้คืนรหัสเก่าของคุณในห้องสมุด","import_key_confirm":"ใช่ นำเข้าเลย","library_preload":"โหลดงานล่วงหน้าจากห้องสมุด","show_preload":"แสดงงานโหลดล่วงหน้า","set_download":"ตั้งค่าไดเร็กทอรีการดาวน์โหลด","set_download_desc":"สำหรับเวอร์ชัน macOS App Store ไดเร็กทอรีการดาวน์โหลดเริ่มต้นจะอยู่ในแซนด์บ็อกซ์ของแอพ และจะถูกลบหลังจากถอนการติดตั้งแอพ หากคุณต้องการเก็บไฟล์ดาวน์โหลด คุณต้องเลือกไดเร็กทอรีดาวน์โหลดอื่นด้วยตนเอง","home":"บ้าน","home_caption":"ดาวน์โหลด/อัพโหลดและไฟล์มีเดีย","library":"ห้องสมุด","library_caption":"สำรวจทรัพยากรสื่อ","player":"ผู้เล่น","player_caption":"เครื่องเล่นสื่อ","credits":"เครดิต","credits_caption":"ตรวจสอบยอดเงินในบัญชี","account":"บัญชี","account_caption":"ลงชื่อเข้าใช้/ลงทะเบียน/การจัดการ","settings":"การตั้งค่า","settings_caption":"การตั้งค่าสำหรับแอพ ผู้เล่น บัญชี","development":"การพัฒนา","development_caption":"โหมดนักพัฒนาสำหรับการใช้งานภายใน","basic":"ขั้นพื้นฐาน","basic_caption":"การตั้งค่าพื้นฐาน","advanced":"ขั้นสูง","advanced_caption":"ตั้งค่าขั้นสูง","blockchain":"กระเป๋าสตางค์","blockchain_caption":"${displayName} กระเป๋าเงินกระจายอำนาจ","internal_notice":"ประกาศการเผยแพร่ภายใน","release_notes":"บันทึกประจำรุ่น","terms_and_conditions":"ข้อกำหนดและเงื่อนไข","license_and_listen_notices":"ใบอนุญาตและฟังประกาศโอเพ่นซอร์ส","close":"ปิด","success":"ความสำเร็จ","fail":"ล้มเหลว","account_email_invalid_address":"ที่อยู่อีเมลที่ไม่ถูกต้อง","account_email_invalid_domain":"โดเมนอีเมลไม่ถูกต้อง","account_email_unknown_status":"สถานะการส่งอีเมลที่ไม่รู้จัก","account_email_unavailable_address":"ที่อยู่อีเมลไม่พร้อมใช้งาน","account_email_suppressed_address":"ที่อยู่อีเมลที่ถูกระงับ","account_loading":"กำลังโหลด...","account_is_required":"ต้องระบุ","account_sign_in_your_account":"เข้าสู่ระบบ","account_username":"ชื่อผู้ใช้","account_username_email_phone":"เบอร์โทรหรืออีเมล์","account_password":"รหัสผ่าน","account_new_password":"รหัสผ่านใหม่","account_re_enter_password":"ป้อนรหัสผ่านอีกครั้ง","account_password_not_equal":"รหัสผ่านสองรหัสไม่เท่ากัน","account_new_password_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","account_forgot_your_password":"ลืมรหัสผ่านหรือไม่?","account_reset_password":"รีเซ็ตรหัสผ่าน","account_sign_in":"เข้าสู่ระบบ","account_signed_in":"ลงทะเบียนเข้า","account_sign_up":"ลงชื่อ","account_find_your_account":"ค้นหาบัญชีของคุณ","account_enter_your_username":"ป้อนหมายเลขโทรศัพท์หรืออีเมลของคุณ","account_search":"ค้นหา","account_email_sent_tip":"อีเมลพร้อมรหัสยืนยันถูกส่งไปยังอีเมลของคุณแล้ว:","account_phone_sent_tip":"SMS พร้อมรหัสยืนยันถูกส่งไปยังโทรศัพท์ของคุณแล้ว:","account_email_phone_sent_tip":"อีเมลและ SMS พร้อมรหัสยืนยันถูกส่งไปยังอีเมลและโทรศัพท์ของคุณตามลำดับแล้ว:","account_software_token_tip":"MFA เปิดใช้งานสำหรับบัญชีของคุณ หากต้องการลงชื่อเข้าใช้ให้เสร็จสิ้น โปรดเปิดหรือดูอุปกรณ์ของคุณและพิมพ์ TOTP","account_reset_your_password":"รีเซ็ตรหัสผ่านของคุณ","account_verification_code":"รหัสยืนยัน","account_resend_code":"ส่งรหัสอีกครั้ง","account_code_has_been_resent":"ส่งรหัสยืนยันแล้ว","account_password_has_been_reset":"รีเซ็ตรหัสผ่านแล้ว","account_submit":"ส่ง","account_sign_up_your_account":"ลงทะเบียนบัญชีของคุณ","account_fill_required_fields":"กรอกข้อมูลในฟิลด์บังคับด้านล่าง","account_fill_optional_fields":"กรอกข้อมูลในฟิลด์ตัวเลือกด้านล่าง","account_email":"อีเมล","account_invitation":"การเชิญ","account_invitation_code":"รหัสการเชิญ","account_i_accept":"ฉันยอมรับ","account_license_terms":"ใบอนุญาตและเงื่อนไข","account_next":"ต่อไป","account_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_verify_fill_optional_fields":"ตรวจสอบและกรอกข้อมูลในช่องเพิ่มเติม","account_nickname":"ชื่อเล่น","account_gender":"เพศ","account_male":"ชาย","account_female":"หญิง","account_not_say":"ไม่พูด","account_birthday":"วันเกิด","account_phone_number":"หมายเลขโทรศัพท์","account_locale":"ท้องถิ่น","account_tip_verified":"ยืนยันแล้ว กำลังลงชื่อเข้าใช้...","account_verified":"ตรวจสอบแล้ว","account_unverified":"ไม่ได้รับการยืนยัน","account_signed_up":"ลงทะเบียน","account_verify_your_identity":"ยืนยันตัวตนของคุณ","account_finish":"เสร็จ","account_signed_out":"ออกจากระบบ","account_change_password":"เปลี่ยนรหัสผ่าน","account_change_email":"เปลี่ยนอีเมล","account_change_phone_number":"เปลี่ยนหมายเลขโทรศัพท์","account_sign_out":"ออกจากระบบ","account_current_password":"รหัสผ่านปัจจุบัน","account_re_enter_new_password":"ป้อนรหัสผ่านใหม่","account_personal_information":"ข้อมูล","account_edit":"แก้ไข","account_reset":"รีเซ็ต","account_greeting":"สวัสดี,","account_cancel":"ยกเลิก","account_change":"เปลี่ยน","account_not_set":"ไม่ได้ตั้งค่า","account_setting":"การตั้งค่า","account_copy_code":"คัดลอกรหัส","account_account_setting":"บัญชี","account_task_page":"งานสินเชื่อ","account_setting_caption":"เปลี่ยนรหัสผ่าน / แก้ไขข้อมูล","account_security":"ความปลอดภัย","account_want_to_join":"ต้องการเข้าร่วมหรือไม่","account_sign_in_now":"เข้าสู่ระบบ","account_changed":"เปลี่ยน","account_clipboard_with_invitation_code":"คัดลอกรหัสคำเชิญแล้ว","account_clipboard_with_code":"คัดลอกรหัสแล้ว","account_invitation_code_dialog_tip":"คุณจะส่งอีเมลหรือข้อความถึงเพื่อนพร้อมรหัสคำเชิญ:","account_available":"มีอยู่","account_invited":"เชิญ","account_used":"ใช้แล้ว","account_invitation_code_sent":"ส่งรหัสคำเชิญแล้ว","account_invitation_channel_required":"กรอกช่องเชิญอย่างน้อยหนึ่งช่อง","account_no_verification_code":"ไม่สามารถรับรหัสยืนยันได้?","account_no_phone_number":"ไม่มีหมายเลขโทรศัพท์?","account_sign_up_by_email":"ลงทะเบียนทางอีเมล","account_no_email":"ไม่มีอีเมล?","account_sign_up_by_phone_number":"ลงทะเบียนด้วยหมายเลขโทรศัพท์","account_no_totp":"ไม่มีทีโอที?","account_tip_no_totp":"หากไม่มี TOTP ให้ตั้งค่า TOTP ก่อน","account_setup_totp":"ตั้งค่า TOTP","account_contact_information":"ข้อมูลติดต่อ","account_delete_account":"ลบบัญชี","account_deleted":"ลบแล้ว","account_can_not_mfa":"MFA มีปัญหา?","account_set_mfa_type":"กำหนดค่า MFA","account_disable_mfa":"ปิดใช้งาน MFA","account_disabled_mfa":"MFA พิการ","account_sms_mfa":"SMS มฟ","account_totp_mfa":"ทีโอที สพม","account_totp":"ทีโอพี","account_not_recommend":"ไม่แนะนำ","account_oauth_sign_in_with":"ลงชื่อเข้าใช้ด้วย {provider}","account_sign_in_failed":"ลงชื่อเข้าใช้ไม่สำเร็จ","account_tip_oath_sign_up":"อีเมลที่เกี่ยวข้องกับบัญชี {provider} ปัจจุบัน: {email} ยังไม่ได้สร้างบัญชี","account_tip_confirm_delete_account":"ป้อนรหัสผ่านบัญชีปัจจุบันเพื่อยืนยันว่าคุณต้องการลบบัญชีปัจจุบัน (บัญชีที่ถูกลบไม่สามารถกู้คืนได้)","account_tip_config_mfa":"คุณสามารถเลือกใช้ SMS หรือรหัสผ่านครั้งเดียวตามเวลา (TOTP) เป็นการรับรองความถูกต้องรอง","account_error_can_not_enable_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน MFA","account_tip_can_not_enable_sms_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน SMS MFA","account_tip_can_not_enable_totp_mfa":"คุณต้องผูกที่อยู่อีเมลและหมายเลขโทรศัพท์มือถือของคุณเพื่อเปิดใช้งาน TOTP MFA","account_tip_setup_totp":"ใช้แอพ เช่น Authenticator เพื่อสแกนรหัส QR ด้านล่างหรือคัดลอกรหัสด้วยตนเองเพื่อเพิ่มโทเค็นความปลอดภัย","account_tip_verify_totp":"ตรวจสอบ TOTP ของคุณ","account_link_your_social_account":"ผูกบัญชีโซเชียลของคุณ","account_unlink_your_social_account":"ยกเลิกการผูกบัญชีโซเชียล","account_tip_confirm_link":"คุณแน่ใจหรือไม่ว่าต้องการผูกบัญชีปัจจุบันกับบัญชี {provider} ของคุณ?","account_tip_confirm_unlink":"แน่ใจไหมว่าจะยกเลิกบัญชี {provider} ที่ผูกไว้","account_tip_linking":"ผูกพัน...","account_tip_unlinking":"ไม่ผูกพัน...","account_linked":"ผูกพัน","account_unlinked":"หลุด","account_error_can_not_link_to_the_linked_account":"บัญชีโซเชียลปัจจุบันเชื่อมโยงกับบัญชีอื่น","account_error_can_not_link_to_the_mismatched_email":"บัญชีปัจจุบันและที่อยู่อีเมลบัญชีโซเชียลไม่สอดคล้องกัน","account_error_can_not_link_before_email_verified":"ไม่สามารถเชื่อมโยงบัญชีโซเชียลได้เนื่องจากบัญชีปัจจุบันไม่ได้เชื่อมโยงกับอีเมลที่ยืนยันแล้ว","account_tip_confirm_verify_email_phone":"จะส่งรหัสยืนยันไปยังอีเมลและหมายเลขโทรศัพท์ของบัญชีปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_tip_confirm_verify_phone":"จะส่งรหัสยืนยันไปยังหมายเลขโทรศัพท์ปัจจุบันเพื่อยืนยันตัวตนของคุณหรือไม่","account_error_1_message_60_seconds":"สามารถส่ง SMS หรืออีเมลได้เพียง 1 ฉบับทุกๆ 60 วินาที โปรดรออีก {delta} วินาที","account_error_10_messages_per_day":"โทรศัพท์มือถือหรืออีเมลแต่ละเครื่องสามารถส่งข้อความได้ 10 ข้อความภายใน 24 ชั่วโมง","account_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","Network Error":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","account_error_user_not_exist":"ไม่มีผู้ใช้","account_error_incorrect_username_or_password":"ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง","account_error_incorrect_original_password":"รหัสผ่านเดิมไม่ถูกต้อง","account_error_incorrect_password":"รหัสผ่านผิดพลาด","account_error_username_not_found":"ไม่พบชื่อผู้ใช้","account_error_can_not_reset_for_no_verified":"ไม่สามารถรีเซ็ตรหัสผ่านสำหรับบัญชีที่ไม่ได้รับการยืนยัน","account_error_invalid_verification_code":"รหัสยืนยันไม่ถูกต้อง โปรดลองอีกครั้ง","account_error_expired_verification_code":"รหัสยืนยันหมดอายุ โปรดลองอีกครั้ง","account_error_password_not_long_enough":"รหัสผ่านยาวไม่พอ","account_error_attempt_limit_exceeded":"เกินขีดจำกัดความพยายาม โปรดลองอีกครั้งในภายหลัง","account_error_password_attempts_exceeded":"เกินความพยายามรหัสผ่าน","account_error_invalid_phone_number_format":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_error_no_cell_phone_prefix":"โปรดเลือกคำนำหน้าสำหรับหมายเลขโทรศัพท์","account_error_username_already_exists":"ชื่อผู้ใช้นี้มีอยู่แล้ว","account_error_you_need_to_accept_license_terms":"คุณต้องยอมรับใบอนุญาตและเงื่อนไขก่อน","account_error_inactive_code":"รหัสเชิญไม่ใช่รหัสเปิดใช้งาน","account_error_non_existent_code":"รหัสเชิญไม่มีอยู่จริง","account_error_unexpected":"ข้อผิดพลาดที่ไม่คาดคิด","account_error_can_not_change_email_before_phone_bound":"เปลี่ยนอีเมลก่อนผูกเบอร์โทรไม่ได้","account_error_can_not_change_email_before_unbound_social_account":"ไม่สามารถเปลี่ยนอีเมลได้ก่อนที่จะยกเลิกการเชื่อมโยงบัญชีโซเชียล","account_error_can_not_change_phone_before_email_bound":"เปลี่ยนเบอร์โทรก่อนอีเมลผูกมัดไม่ได้","account_error_can_not_change_email_phone_with_mfa_enabled":"ไม่สามารถเปลี่ยนอีเมลหรือหมายเลขโทรศัพท์มือถือก่อนปิดใช้งาน MFA","account_error_not_supported_yet":"ไม่รองรับชั่วคราว","account_error_same_email":"ที่อยู่อีเมลใหม่ต้องไม่เหมือนกับที่อยู่อีเมลเดิม","account_error_same_phone":"หมายเลขโทรศัพท์ใหม่ต้องไม่ซ้ำกับหมายเลขโทรศัพท์เดิม","account_error_email_not_exists":"ไม่มีที่อยู่อีเมล","account_error_email_already_exists":"มีบัญชีที่ใช้อีเมลที่ระบุอยู่แล้ว","account_error_phone_already_exists":"มีบัญชีที่ใช้หมายเลขโทรศัพท์ที่ระบุอยู่แล้ว","account_error_mfa_token_mismatch":"รหัสโทเค็นของซอฟต์แวร์ไม่ตรงกัน","account_error_recaptcha_not_loaded":"มีปัญหากับเครือข่าย โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_recaptcha_validation_failed":"การตรวจสอบ ReCAPTCHA ล้มเหลว โปรดเชื่อมต่อเครือข่ายอีกครั้งและรีสตาร์ทแอปพลิเคชันเพื่อลองอีกครั้ง","account_error_sign_in_in_progress":"กำลังพยายามลงชื่อเข้าใช้ที่รอดำเนินการอยู่","account_field_range":"จำกัดการป้อนอักขระ {0}-{1} ตัว","account_field_only_alphanumeric":"รองรับเฉพาะตัวอักษรและตัวเลขเท่านั้น","account_field_only_alphanumeric_and_symbol":"รองรับเฉพาะตัวอักษรและตัวเลขและสัญลักษณ์เท่านั้น","account_field_only_chinese_alphanumeric_space_underline":"รองรับเฉพาะตัวอักษร ตัวเลข เว้นวรรค ขีดล่าง","account_field_prefix_without_number_space":"อักขระตัวแรกไม่สามารถเป็นตัวเลขหรือช่องว่างได้","account_field_suffix_without_space":"ไม่สามารถลงท้ายด้วยช่องว่าง","account_field_without_repeat_space":"ไม่สามารถใช้หลายช่องว่างในแถว","account_field_can_not_only_alphanumeric":"คุณไม่สามารถใช้ตัวอักษรหรือตัวเลขได้","account_field_must_have_number_characters":"ต้องมีอักขระตัวเลข","account_field_verification_code":"รหัสยืนยันต้องเป็นตัวเลขหกหลัก","account_field_invitation_code":"รหัสเชิญต้องเป็นตัวอักษรและตัวเลข","account_field_phone_number":"รูปแบบหมายเลขโทรศัพท์ไม่ถูกต้อง","account_invalid_email_format":"รูปแบบอีเมลไม่ถูกต้อง","account_sign_out_confirm":"คุณแน่ใจหรือที่จะออกจากระบบ? สิ่งนี้จะหยุดงานทั้งหมด","account_sign_out_anyway":"ออกจากระบบต่อไป","account_signing_out":"กำลังออกจากระบบ...","account_request_save_settings":"ไม่ได้บันทึกการตั้งค่า คุณต้องบันทึกการเปลี่ยนแปลงก่อนออกจากระบบ","pay":"จ่าย","pay_with_credit":"จ่ายสำหรับการเร่งความเร็วการดาวน์โหลด ต้องการเครดิตประมาณ {0}","pay_with_credit_payed":"กำลังเร่ง ยังคงต้องการเครดิตประมาณ {0}","create_payment":"สร้างการชำระเงิน","pay_target":"เป้า","pay_for_torrent":"จ่าย ${0}","your_subid":"รหัสย่อยของคุณ","your_credits":"เครดิตของคุณ","pay_point_for_data":"จ่ายคะแนน {0} สำหรับข้อมูล {1}","auto_renew":"เปิดใช้งานการต่ออายุอัตโนมัติ","transaction_details":"รายละเอียดการทำธุรกรรม","transaction_id":"รหัส","transaction_payer":"ผู้ชำระเงิน","transaction_payee":"ผู้รับเงิน","transaction_category":"หมวดหมู่","transaction_changed_amount":"จำนวนเงินที่เปลี่ยนแปลง","transaction_meta":"เมตา","transaction_status":"สถานะ","transaction_creation_time":"เวลาในการสร้าง","receipt_code":"รหัสใบเสร็จ","transfer_amount":"ยอดโอน","code_the_receipt_code":"คัดลอกรหัสใบเสร็จด้านล่างไปยังผู้ชำระเงิน","fill_the_receipt_code":"โอนเงินโดยกรอกรหัสการชำระเงินที่ผู้รับเงินให้ไว้","expense":"ค่าใช้จ่าย","copied":"คัดลอก","transfer":"โอนย้าย","receive":"รับ","copy":"สำเนา","withdraw_fund":"ถอนเงิน","category_paydata_payer":"ค่าใช้จ่ายของข้อมูล","category_paydata_payee":"รายได้ของข้อมูล","category_transfer":"โอนย้าย","category_bonus":"โบนัส","category_recharge":"เติมเงิน","status_pending":"รอดำเนินการ","status_completed":"สมบูรณ์","status_finish":"เสร็จ","status_failed":"ล้มเหลว","tip_invalid_receiver":"รหัสผู้รับไม่ถูกต้อง","tip_invalid_amount":"จำนวนเครดิตควรเป็นแบบลอยตัวในช่วง 0-1000 (ความแม่นยำขั้นต่ำคือ 0.001)","credit_get_more":"รับเครดิตมากขึ้น","credit_no_data":"ไม่มีข้อมูลที่สามารถใช้ได้","credit_loading":"กำลังโหลด...","credit_not_enough_amount":"เครดิตไม่เพียงพอ","credit_amount_not_enough":"เครดิตไม่เพียงพอ","credit_payee_not_exist":"ไม่มีผู้รับเงิน","credit_invalid_amount":"จำนวนเครดิตไม่ถูกต้อง","credit_can_not_transfer_to_yourself":"ไม่สามารถโอนเป็นของตนเองได้","credit_latest":"ล่าสุด","credit_error_network":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","add_subtitles":"เพิ่มคำบรรยาย","open_file":"เปิดไฟล์...","advanced_options":"ตัวเลือกขั้นสูง","title":"ชื่อ","location":"ที่ตั้ง","subtitle_file":"ไฟล์คำบรรยาย","unsupported_subtitle_type":"ประเภทไฟล์ {0} ไม่ใช่ประเภทคำบรรยายที่รองรับ","not_default_player":"ไม่ได้ตั้งค่าเครื่องเล่นวิดีโอเริ่มต้น","this_is_an_audio_file":"นี่คือไฟล์เสียง","the_added_subtitle_already_exists":"มีคำบรรยายที่เพิ่มเข้ามาแล้ว","stop_stream_player":"สื่อการสตรีมถูกยกเลิกเนื่องจากงานถูกหยุดชั่วคราวหรือถูกลบ","stop_player":"เครื่องเล่นถูกยกเลิกเนื่องจากไฟล์ถูกลบ","playing_timeout_hint":"หมดเวลารอ กรุณาตรวจสอบงาน","autoplay_hint":"การเล่นอัตโนมัติอาจถูกบล็อกโดยเบราว์เซอร์ของคุณ หากผู้เล่นไม่ได้เล่น ให้ลองคลิกที่หน้าจอเพื่อดำเนินการต่อ","remove_playing_confirm":"{0} ยังเล่นอยู่ ลบออกจะหยุดเล่น แน่ใจหรือว่าจะเอาออก?","unsupported_in_browser":"ยังไม่รองรับโหมดเบราว์เซอร์","client":"ลูกค้า","warning":"คำเตือน","enable":"เปิดใช้งาน","disable":"ปิดการใช้งาน","auto":"อัตโนมัติ","encrypt_connection":"เข้ารหัสการเชื่อมต่อ","encrypted_connection":"การเชื่อมต่อที่เข้ารหัส","non_encrypted_connection":"การเชื่อมต่อที่ไม่ได้เข้ารหัส","connected_wires_not_disconnect":"สายที่เชื่อมต่อจะไม่ถูกตัดการเชื่อมต่อ","audio":"เสียง","video":"วิดีโอ","image":"ภาพ","subtitle":"คำบรรยาย","zip":"ซิป","text":"ข้อความ","unknown":"ไม่ทราบ","add":"เพิ่ม","undo":"เลิกทำ","backup":"การสำรองข้อมูล","not_default_app":"${displayName} ไม่ใช่แอปเริ่มต้นของคุณสำหรับทอร์เรนต์และสื่อ คุณต้องการตั้งค่าเป็นค่าเริ่มต้นหรือไม่","dont_show_again":"ไม่ต้องแสดงอีก","go_to_settings":"ไปที่การตั้งค่า","about_alphabiz":"ประมาณ ${displayName}","last_check_at":"ตรวจครั้งล่าสุดเมื่อ","update_channel":"อัพเดทช่อง","check_for_update":"ตรวจสอบสำหรับการปรับปรุง","checking_for_update":"กำลังตรวจสอบการอัปเดต...","no_update_available":"ไม่มีการอัพเดท","update_available":"มีการปรับปรุง","update_now":"อัพเดทเลย","update_later":"อัปเดตในภายหลัง","click_to_update":"คลิกปุ่ม UPDATE NOW เพื่อดาวน์โหลดและอัปเดต","update_failed":"การอัพเดทล้มเหลว","update_failed_message":"เกิดข้อผิดพลาดขณะอัปเดต:","check_shasum_failed":"ตรวจสอบความสมบูรณ์ของตัวติดตั้งไม่สำเร็จ","downloading_update":"กำลังดาวน์โหลดอัปเดต...","ready_to_update":"พร้อมอัพเดท","restart_to_update":"ดาวน์โหลดการอัปเดตแล้ว ${displayName} จะออกจากการอัปเดตสักครู่","already_latest":"เวอร์ชันปัจจุบัน ({0}) เป็นเวอร์ชันล่าสุดแล้ว","update_timeout":"หมดเวลาอัปเดต","no_available_release":"ไม่มีรุ่นที่วางจำหน่าย","no_available_installer":"ไม่มีตัวติดตั้งที่ใช้ได้","feedback":"ข้อเสนอแนะ","select_a_type":"เลือกประเภท","category":"หมวดหมู่","select_a_category":"เลือกหมวดหมู่","require_title":"ต้องระบุชื่อเรื่อง","describe_your_problem":"อธิบายปัญหาของคุณ","report_a_bug":"รายงานข้อผิดพลาด","request_a_new_feature":"ขอคุณสมบัติใหม่","download_or_upload":"ดาวน์โหลด/อัพโหลด","others":"คนอื่น","submit_with_system_info":"ส่งพร้อมข้อมูลระบบ","submit_feedback":"ส่งความคิดเห็น","tweet_us":"ทวีตหาเรา","tweet_too_long":"ทวีตยาวเกินไป","delete_characters":"โปรดลบอักขระอย่างน้อย {0} ตัว","rest_characters":"คุณสามารถป้อนอักขระได้อีก {0} ตัว","update_alphabiz":"อัปเดต ${displayName}","current_version":"รุ่นปัจจุบัน","cancel_update":"ยกเลิกการปรับปรุง","slow_download_speed":"ดาวน์โหลดช้าเกินไป","slow_download_speed_caption":"การดาวน์โหลดตัวติดตั้งช้าเกินไปในขณะนี้ กรุณาตรวจสอบสถานะเครือข่าย","update_canceled":"ยกเลิกการอัปเดตแล้ว","current_version_release_time":"เวลาวางจำหน่ายของเวอร์ชันปัจจุบัน","expired_app":"${displayName} หมดอายุ","version_out_of_date":"เวอร์ชันล้าสมัย","have_to_update":"เวอร์ชัน ${displayName} ล้าสมัย โปรโตคอลหรือ API บางอย่างเลิกใช้แล้ว คุณต้องอัปเดต ${displayName} ก่อนดำเนินการต่อ","exit_alphabiz":"ออกจาก ${displayName}","exit_and_update":"ออกและใช้การอัปเดต","new_version_hint":"มีเวอร์ชันใหม่","no_new_version":"ไม่มีเวอร์ชั่นใหม่","current_is_latest":"เวอร์ชันปัจจุบันเป็นเวอร์ชันล่าสุดแล้ว","click_to_check_update":"คลิกปุ่ม [ตรวจสอบการอัปเดต] เพื่อตรวจสอบการอัปเดต","download_latest_version_from_website":"โปรดไปที่เว็บไซต์อย่างเป็นทางการเพื่อดาวน์โหลดเวอร์ชันล่าสุด","to_the_website":"ไปที่เว็บไซต์","network_diagnotic":"การวินิจฉัยเครือข่าย","diagnotic":"การวินิจฉัย","click_to_check":"คลิกเพื่อตรวจสอบ","click_to_check_again":"คลิกเพื่อตรวจสอบอีกครั้ง","checking":"กำลังตรวจสอบ","online":"ออนไลน์","offline":"ออฟไลน์","dns_look_up":"การค้นหา DNS","error":"ข้อผิดพลาด","aws_service":"บริการของ AWS","network_pings":"เครือข่ายปิง","not_found":"ไม่พบ","packet_loss":"การสูญเสียแพ็คเก็ต","official_site":"เว็บไซต์อย่างเป็นทางการ","download_test":"ดาวน์โหลดแบบทดสอบ","test_task":"งานทดสอบ {0}","download_failed":"การดาวน์โหลดล้มเหลว","second_spend":"การใช้จ่าย ${0}","open_default_player_failed":"ไม่สามารถเปิดโปรแกรมเล่นเริ่มต้นได้","copied_to_clipboard":"คัดลอกไปที่คลิปบอร์ดแล้ว","go_to":"ไปที่","region_not_available":"ภูมิภาคไม่พร้อมใช้งาน","region_not_available_message":"ขอโทษ! ภูมิภาคของคุณไม่สามารถใช้แอพนี้ได้ แอปนี้จะออกหลังจาก {0} วินาที","confirm":"ยืนยัน","no_available_result":"ไม่มีผลลัพธ์","invalid_password_format":"รูปแบบรหัสผ่านไม่ถูกต้อง","invalid_password_format_same":"รหัสผ่านเหมือนกับรหัสผ่านเดิม","error_password":"รหัสผ่านผิดพลาด","keychain_setting":"พวงกุญแจ","setting_description":"ที่เก็บข้อมูลบนคลาวด์: บันทึกข้อมูลสำคัญไปยังคลาวด์\\nเปลี่ยนรหัสผ่าน: เปลี่ยนรหัสผ่านสำหรับคีย์ไลบรารีสื่อ\\nช่วยในการจำ: วิธีอื่นสำหรับการสร้างและกู้คืนคีย์\\nนำเข้ารหัสภายในเครื่อง: นำเข้ารหัสที่บันทึกไว้ในเครื่องไปยังไลบรารีสื่อ\\nคีย์ส่งออก: บันทึกข้อมูลไลบรารีสื่อปัจจุบันลงในเครื่องหรือระบบคลาวด์\\nคีย์สำรองไปยังคลาวด์: อัปเดตข้อมูลไลบรารีสื่อปัจจุบันไปยังคลาวด์เพื่อสำรองข้อมูล","refresh_status":"อัปเดตสถานะ","confirm_import_key":"ยืนยันคีย์นำเข้า","confirm_update_cloud_key":"คุณมีรหัสในระบบคลาวด์แล้ว การอัปเดตคีย์จะเขียนทับคีย์เดิม คุณแน่ใจหรือไม่ว่าต้องการอัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","export_key_with_cloud":"ป้อนรหัสผ่านอิสระที่คุณตั้งไว้เพื่อส่งออกคีย์ไลบรารีที่จัดเก็บไว้ในระบบคลาวด์ และล็อคไฟล์คีย์ด้วยรหัสผ่านปลดล็อค","store_cloud_key_prompt_password":"ป้อนรหัสผ่านอิสระเพื่อจัดเก็บรหัสห้องสมุดในระบบคลาวด์","update_cloud_key_prompt_password":"ตั้งรหัสผ่านอิสระเพื่อเข้ารหัสคีย์ไลบรารี จากนั้นอัปเดตไปยังระบบคลาวด์","enable_cloud_storage_prompt_password":"ตั้งรหัสผ่านสำหรับคีย์ที่จัดเก็บไว้ในคลาวด์ ซึ่งคุณสามารถดึงคีย์จากคลาวด์ได้","input_unlock_password":"ตั้งรหัสผ่านปลดล็อค","export_local_prompt_password":"โปรดตั้งรหัสผ่านปลดล็อคเพื่อเข้ารหัสไฟล์คีย์ของคุณ เราจะไม่บันทึกรหัสผ่านนี้ให้คุณ ดังนั้นหากคุณทำรหัสผ่านหาย คุณจะไม่สามารถปลดล็อกรหัสห้องสมุดของคุณได้","require_unlock_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","require_independent_password":"ป้อนรหัสผ่านอิสระเพื่อรับรหัสที่จัดเก็บไว้ในระบบคลาวด์","import_local_prompt_password":"ไฟล์คีย์ถูกล็อก โปรดป้อนรหัสผ่านปลดล็อก","select_encrypt_mode":"เลือกโหมดการเข้ารหัส","update_cloud_key":"อัปเดตคีย์ที่จัดเก็บไว้ในระบบคลาวด์","backup_to_cloud":"สำรองคีย์ไลบรารีไปยังระบบคลาวด์","save_local":"บันทึกคีย์ไลบรารีเป็นไฟล์เข้ารหัสในเครื่อง","create_new_key":"สร้างรหัสห้องสมุดใหม่","creating_lib_key":"กำลังสร้างรหัสห้องสมุด...","loading_lib_key":"กำลังโหลดรหัสห้องสมุด...","failed_to_create_lib_key":"สร้างรหัสห้องสมุดไม่สำเร็จ","failed_to_load_lib_key":"โหลดรหัสห้องสมุดไม่สำเร็จ","import_local_key":"นำเข้าคีย์ในเครื่อง","import_lib_key_from_local":"นำเข้าคีย์ไลบรารีในเครื่อง","import_from_cloud":"นำเข้ารหัสห้องสมุดจากระบบคลาวด์","create_or_import_key":"สร้างหรือนำเข้ารหัสห้องสมุด","create_or_import_key_desc":"คีย์ไลบรารีเป็นคีย์อิสระที่ใช้ในการดึงข้อมูลและเผยแพร่เนื้อหาด้วยฐานข้อมูลแบบกระจายอำนาจ","store_your_lib_key":"เก็บรหัสห้องสมุดของคุณ","export_cloud_key":"ส่งออกคีย์จากคลาวด์","export_current_key":"ส่งออกคีย์ปัจจุบัน","change_password":"เปลี่ยนรหัสผ่าน","enable_cloud_storage":"เปิดใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage":"ปิดการใช้งานที่เก็บข้อมูลบนคลาวด์","disable_cloud_storage_desc":"การปิดใช้ที่เก็บข้อมูลบนคลาวด์จะลบคีย์ที่บันทึกไว้ในคลาวด์ โปรดตรวจสอบให้แน่ใจว่าคีย์นั้นบันทึกไว้ในเครื่อง","sync_at":"ซิงค์ที่: {time}","cloud_storage_enabled":"ซิงค์พวงกุญแจกับ {storage}","cloud_storage_disabled":"ที่เก็บข้อมูลบนคลาวด์ถูกปิดใช้งาน","saved_locally":"บันทึกไว้ในเครื่อง","export_key":"ส่งออกไฟล์คีย์","cloud_independent_password":"รหัสผ่านอิสระบนคลาวด์","key_file_unlock_password":"รหัสผ่านปลดล็อคไฟล์ที่สำคัญ","re_enter_unlock_password":"ป้อนรหัสผ่านปลดล็อคอีกครั้ง","independent_password_not_enabled":"รหัสผ่านปัจจุบันคือรหัสผ่านบัญชี Alphabiz (ไม่ได้ตั้งรหัสผ่านอิสระ)","use_cognito_hash":"ใช้รหัสผ่านบัญชี Alphabiz","use_independent_password":"ใช้รหัสผ่านอิสระ","keychain_lib":"กุญแจห้องสมุด","loading_keychain_state":"กำลังโหลดพวงกุญแจ...","backing_up":"สำรอง...","backup_current_key":"สำรองคีย์ปัจจุบันไปยัง Cloud","cloud_lib_key_not_existed":"รหัสห้องสมุดไม่มีอยู่ในคลาวด์","open_keychain_file":"เปิดไฟล์พวงกุญแจ","confirm_open_abk":"คุณต้องการเปิดไฟล์ ABK หรือไม่","use_the_key":"ใช้กุญแจ","backup_the_key":"สำรองคีย์ไปยังคลาวด์","keychain_data_does_not_exist":"ไม่มีข้อมูลพวงกุญแจ","timeout of 0ms exceeded":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","XhrError":"มีปัญหากับเครือข่าย โปรดลองอีกครั้งในภายหลัง","payer credit amount is not enough":"เครดิตไม่เพียงพอ","payee does not exist":"ไม่มีผู้รับเงิน","block_list_manage":"จัดการรายการบล็อก","blocked_users":"ผู้ใช้ที่ถูกบล็อก","blocked_channels":"ช่องที่ถูกบล็อก","unblock_user":"ผู้ใช้ยกเลิกการปิดกั้น","unblock_channel":"เลิกบล็อกช่อง","no_blocked_user":"ไม่มีผู้ใช้ที่ถูกบล็อก","no_blocked_channel":"ไม่มีช่องที่ถูกบล็อก","field_required":"จำเป็นต้องมี {0}","setting":"การตั้งค่า","unknown_media":"สื่อที่ไม่รู้จัก","settings_button_visible":"ปุ่มที่มองเห็นได้","settings_setting":"การตั้งค่า","settings_playback_rate":"อัตราการเล่น","settings_subtitle":"คำบรรยาย","settings_pip":"ปี๊บ","settings_fullscreen":"เต็มจอ","settings_subtitle_options":"ตัวเลือกคำบรรยาย","settings_normal":"ปกติ","settings_italic":"ตัวเอียง","settings_lighter":"ไฟแช็ก","settings_bolder":"โดดเด่นยิ่งขึ้น","settings_small":"เล็ก","settings_large":"ใหญ่","about":"เกี่ยวกับ","services":"บริการ","hide":"ซ่อน","hide_others":"ซ่อนอื่น ๆ","show_all":"แสดงทั้งหมด","quit":"ล้มเลิก","edit":"แก้ไข","redo":"ทำซ้ำ","cut":"ตัด","paste":"แปะ","select_all":"เลือกทั้งหมด","view":"ดู","reload":"โหลดใหม่","toggle_full_screen":"สลับโหมดเต็มหน้าจอ","toggle_developer_tools":"สลับเครื่องมือสำหรับนักพัฒนา","window":"หน้าต่าง","minimize":"ย่อเล็กสุด","bring_all_to_front":"นำทั้งหมดมาไว้ข้างหน้า","help":"ช่วย","github_repo":"Github Repo","issues":"ปัญหา","learn_more":"เรียนรู้เพิ่มเติม","learn_spelling":"เรียนรู้การสะกดคำ","lookup_selection":"ค้นหา \\"{selection}\\"","search_with_google":"ค้นหาด้วย Google","save_as":"บันทึกเป็น","save_image":"บันทึกภาพ","save_image_as":"บันทึกภาพเป็น ...","copy_link":"คัดลอกลิงค์","save_link_as":"บันทึกลิงค์เป็น ...","copy_image":"คัดลอกรูปภาพ","copy_image_as":"คัดลอกรูปภาพเป็น ...","copy_image_address":"คัดลอกที่อยู่รูปภาพ","download_complete":"ดาวน์โหลดเสร็จสิ้น","download_complete_message":"ดาวน์โหลด {0} แล้ว","is_running":"{0} กำลังดำเนินการ","open":"เปิด {0}","launch_problem":"ปัญหาการเปิดตัว","ask_clear_data":"ดูเหมือนว่าคุณกำลังพยายามเปิด {0} แต่ล้มเหลวหลายครั้ง\\nคุณต้องการล้างข้อมูลแอปทั้งหมดแล้วลองเปิดใช้งานในภายหลังหรือไม่","launch_directly":"เปิดตัวโดยตรง","clear_all_data":"ล้างข้อมูลทั้งหมด","ask_clear_confirm":"การดำเนินการนี้จะลบการกำหนดค่า บันทึก และข้อมูลผู้ใช้ทั้งหมด!\\nหลังจากนี้ คุณอาจต้องเปิดใช้ {0} อีกครั้ง\\nคุณแน่ใจว่าจะล้างข้อมูลหรือไม่","confirm_launch":"ไม่ เปิดใช้โดยตรง","confirm_clear":"ใช่ ล้างข้อมูลทั้งหมด"}')},"41c7":function(e,t){e.exports={mode:"committee",admins:["FQi3UfsB5zY7SSfLMPdl9Fdh7_EeM4og0ZGivp4tfJU.yXhvCAmmUz1Pw9-Iwhf9hpo9-H4WDHwezzRAGE5Oipk","an_id_of_admin","an_id_of_other_admin"]}},"44ce":function(e){e.exports=JSON.parse('{"lib_index":"Casa","lib_edit":"Pubblicare","lib_publish":"Pubblicare","lib_explore":"Esplorare","lib_following":"Seguente","lib_favorite":"Preferiti locali","lib_local_favorites":"Preferiti locali","lib_channel":"Canale","lib_submit":"Invia","lib_from_network":"Utilizzo di database decentralizzati dalla rete","welcome_to_lib":"Benvenuto nella libreria multimediale ${displayName}","register_or_login":"Registrati/Accedi","lib_recommend":"Consiglia","lib_recommend_desc":"Benvenuto nella libreria ${displayName}! Questa libreria utilizza un database decentralizzato dalla rete. Per iniziare a usarlo, devi seguire alcuni canali.","follow_any_channel_to_continue":"Segui qualsiasi canale per continuare","follow_channels_and_continue":"Segui i canali {0} e continua","show_more_for_me":"Mostra di più per me","no_more_recommend":"Non più raccomandare","key":"Chiave","create_key":"Crea chiave","save_key":"Salva chiave","save_key_file":"Vuoi salvare la tua chiave come file?","import_key":"Chiave di importazione","import":"Importare","invalid_key":"Chiave non valida","back_to_top":"Torna in cima","search_for_channel":"Cerca ID canale","search_channel_no_result":"Impossibile trovare il canale con ID {0}","please_input_channel_id":"Inserisci l\'ID del canale","welcome_help_text":"Questa è una libreria multimediale decentralizzata. Hai bisogno\\n per creare un account per questo database. Noi\\n generare automaticamente una chiave personale per te.\\n Se hai già avuto una chiave, puoi anche importare\\n qui.","welcome_key_text":"Una volta effettuato l\'accesso, fare clic sul pulsante [SALVA CHIAVE].\\n nell\'angolo in basso a destra per salvare la tua chiave privata.\\n Se perdi la tua chiave, potresti non essere in grado di accedere nuovamente.","redirect_to_recommend":"Sembra che tu non abbia seguito nessun canale. Reindirizzamento alla pagina [Esplora].","channel":"Canale","follow":"Seguire","unfollow":"Smetti di seguire","following":"Seguente","share":"Condividere","unfollow_confirm":"Sei sicuro di smettere di seguire questo canale? Tutti i post di questo canale nella tua cronologia verranno rimossi.","follow_failed_hint":"L\'operazione è ancora in sospeso in background. Se l\'operazione non viene applicata per molto tempo, riavviare l\'app e riprovare.","block":"Bloccare","unblock":"Sbloccare","blocked":"Bloccato","block_channel":"Blocca questo canale","block_channel_confirm":"Blocca il canale lo rimuoverà dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","block_creator":"Blocca il creatore di questo canale","unblock_creator":"Sblocca il creatore di questo canale","block_creator_confirm":"Blocca creatore rimuoverà tutti i canali creati da questo creatore dalla tua sequenza temporale. Puoi gestire l\'elenco dei blocchi nelle impostazioni dell\'account.","share_url_copied":"L\'URL di condivisione viene copiato negli appunti","follow_time":"Segui il tempo","update_time":"Tempo di aggiornamento","search":"Ricerca","type":"Tipo","added":"Aggiunto","click_to_task":"Fare clic per andare all\'attività","lib_already_added":"Hai già aggiunto questo video","description":"Descrizione","poster":"Manifesto","channel_poster":"Manifesto del canale","preview":"Anteprima","creator":"Creatore","creator_detail":"Dettaglio del creatore","loading_creator":"Caricamento delle informazioni sull\'autore","wait_for_creator_loaded":"Attendi il caricamento delle informazioni sul creatore.","follower":"Seguace","followers":"Seguaci","follower_list":"Elenco seguaci","user":"Utente","channel_title":"Titolo del canale","channel_id":"Canale ID","post_title":"Titolo del post","post_id":"Post ID","import_data_from_excel":"Importa dati da excel","set_excel_keys":"Imposta chiavi excel","excel_import_succeded":"L\'importazione di Excel è riuscita","excel_import_success_msg":"{0} le righe sono pronte per essere aggiunte, {1} non valide e {2} gli elementi duplicati vengono ignorati","cannot_find_channel":"Impossibile trovare il canale","cannot_find_posts":"Impossibile trovare i post","add_channel":"Aggiungi canale","add_post":"Aggiungi post","edit_channel":"Modifica canale","channel_setting":"Impostazione del canale","edit_post":"Modifica post","edit_posts":"Modifica post","channel_detail":"Dettaglio del canale","remove":"Rimuovere","remove_channel":"Rimuovi canale","remove_channel_confirm":"Sei sicuro di rimuovere questo post? Questo non può essere recuperato.","remove_post":"Rimuovi messaggio","remove_post_confirm":"Sei sicuro di rimuovere questo canale? Questo non può essere recuperato.","preview_mode":"Modalità anteprima","preview_mode_desc":"Questa è un\'anteprima del tuo canale. Tutte le tariffe dei film sono mostrate qui.","edit_user_profile":"Modifica profilo utente","name":"Soprannome","avatar":"Avatar","no_following":"Nessun canale successivo. Clicca per andare a","no_recommend":"Nessun canale consigliato. Clicca per andare a","first_recomment_msg":"Potrebbe volerci un po\' se questa è la prima volta che l\'app viene avviata.","invalid_image":"Immagine non valida","image_not_reachable":"L\'URL di questa immagine non è raggiungibile.","channel_not_found":"Canale non trovato","cannot_get_channel_info":"Impossibile ottenere informazioni sul canale. Questo canale potrebbe essere rimosso dal suo creatore e non essere più disponibile.","validate_error":"Convalida errore","validate_user_name_no_space":"Il nome utente non deve contenere spazi","validate_url_no_space":"L\'URL non deve contenere spazi","validate_user_name_length":"Il nome utente deve avere una lunghezza compresa tra {0} e {1}","validate_user_desc_length":"La descrizione dell\'utente non deve contenere più di {0} caratteri","validate_user_avatar_url":"L\'avatar dell\'utente deve essere un URL con meno di 2048 caratteri","validate_channel_title_length":"Il titolo del canale deve avere una lunghezza compresa tra 1 e 100","validate_channel_desc_length":"La descrizione del canale deve avere una lunghezza compresa tra 10 e 300","validate_channel_image_url":"L\'anteprima del canale deve essere un URL con meno di 2048 caratteri","validate_post_title_length":"Il titolo del post deve avere una lunghezza compresa tra 1 e 100","validate_post_desc_length":"La descrizione del post dovrebbe avere una lunghezza compresa tra 10 e 300","validate_post_image_url":"Il poster deve essere un URL con meno di 2048 caratteri","validate_post_url":"URL ${displayName} non valido","validate_post_url_length":"${displayName} L\'URL non deve superare i 2048 caratteri","film_rate":"Tasso di film","set_film_rate":"Imposta la velocità del film","select_a_rate_before_enter":"È necessario selezionare una tariffa film prima di accedere alla libreria multimediale.","library_available_rate":"Tasso di film disponibile in biblioteca","rate_g":"G – Udienze generali","rate_g_desc":"Ammesse tutte le età. Niente che possa offendere i genitori per la visione da parte dei bambini.","rate_pg":"PG - Suggerimenti per la guida dei genitori","rate_pg_desc":"Alcuni materiali potrebbero non essere adatti ai bambini. I genitori hanno esortato a dare \\"una guida dei genitori\\". Può contenere del materiale che i genitori potrebbero non gradire per i loro figli piccoli.","rate_pg_13":"PG-13 – Genitori fortemente avvertiti","rate_pg_13_desc":"Alcuni materiali potrebbero essere inappropriati per i bambini sotto i 13 anni. I genitori sono invitati a essere cauti. Alcuni materiali potrebbero non essere adatti ai preadolescenti.","rate_r":"R – Limitato","rate_r_desc":"I minori di 17 anni richiedono un genitore accompagnatore o un tutore adulto. Contiene del materiale per adulti. I genitori sono invitati a saperne di più sul film prima di portare con sé i loro figli piccoli.","rate_nc_17":"NC-17 – Solo per adulti","rate_nc_17_desc":"Nessuno sotto i 17 anni ammesso. Chiaramente adulto. I bambini non sono ammessi.","set_as_private":"Imposta come privato","hide_in_explore":"Nascondi questo canale nella pagina Esplora","hidden":"Nascosto","select_a_rate":"Seleziona una tariffa per il film","select_from_tasks":"Seleziona dalle attività","import_from_magnet":"Importazione da magnete:?...","input_magnet_url":"Magnete di ingresso:? URL","task_title":"Titolo dell\'attività","set_title":"Imposta titolo","add_to_local_favorites":"Aggiungi ai preferiti locali","remove_from_local_favorites":"Rimuovi dai preferiti locali","removed_favorite":"Preferito rimosso","import_or_export_favorites":"Importa/esporta preferiti","export_local_favorites":"Esporta i preferiti locali come backup","import_favorites_file":"Importa il file dei preferiti","not_a_favorite_file":"Questo file non è un file di backup preferito","connection_status":"Stato della connessione","gun_server_list":"Nodi di cache","custom_nodes":"Nodi di cache personalizzati","custom_nodes_hint":"I nodi di cache personalizzati verranno applicati dopo il riavvio dell\'app","wait_for_reboot":"In attesa di riavvio...({seconds}s)","reboot_now":"Riavvia ora","reboot_later":"Riavvia in seguito","peer_list":"Nodi diretti","server":"URL del nodo","peer":"Pari","peer_id":"ID nodo","connection":"Connessione","data_source":"Fonte di dati","sync":"Sincronizza","syncing":"Sincronizzazione","sync_completed":"Sincronizzazione completata","got_all_post":"Hai già tutti i post","placeholder_channel_title":"Il nome del tuo canale","placeholder_channel_desc":"Descrizione di questo canale","placeholder_post_title":"Nome film (anno)","placeholder_post_desc":"Descrizione di questo film","private_channel":"Canale privato","creator_blocked":"Creatore bloccato","go_to_library":"Vai in biblioteca?","go_to_library_channel_msg":"Vuoi andare al canale della biblioteca {0}?","magnet_does_not_have_name":"Questo magnete:? url non ha un nome, devi prima aggiungere un titolo al post.","no_available_post":"Nessun post disponibile","following_channel_no_post":"Tutti i tuoi canali seguenti non hanno post disponibili. Ciò potrebbe essere causato da un errore di rete. Se hai già seguito alcuni canali, i post potrebbero essere caricati in seguito.","share_to_library":"Condividi nella libreria","quick_start":"Avvio rapido","quick_start_desc":"Inizia a creare un post con un\'attività o un file","select_file":"Seleziona il file...","select_folder":"Seleziona cartella...","post_options":"Posta opzioni","channel_options":"Opzioni canale","create_new_channel":"Crea nuovo canale","use_existed_channel":"Usa canale esistente","select_existed_channel":"Seleziona il canale esistente","uploaded_by":"{title} caricato da {name}","created_by":"{title} creato da {name}","creating_new_channel":"Creazione nuovo canale...","created_new_channel":"Nuovo canale creato","creating_new_post":"Creazione nuovo post...","created_new_post":"Nuovo post creato","create_new_post":"Crea nuovo post","quick_start_timeout":"{0} timeout. Ciò potrebbe essere causato da un errore di rete. Per favore riprova più tardi.","file_too_large":"File troppo grande","file_too_large_msg":"Questo file è più grande di 4 GB ({size}) e potrebbe richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di continuare?","resolving_folder_files":"Risoluzione dei file delle cartelle...","folder_too_large":"Cartella troppo grande","folder_too_large_msg":"I file in questa cartella sono più grandi di 4 GB ({size} in totale) e potrebbero richiedere molto tempo per la preparazione dell\'attività. Sei sicuro di caricare?","creating_new_task":"Creazione nuova attività...","cannot_create_task":"Impossibile creare l\'attività","cannot_create_task_msg":"Questo può causare qualche errore. Se l\'attività è stata creata correttamente, puoi controllare l\'elenco delle attività in un secondo momento.","cannot_get_task_name":"Impossibile ottenere il nome dell\'attività. Devi prima inserirne uno.","remove_old_task":"Rimuovi la vecchia attività","remove_old_task_desc":"La modalità Web può creare solo un\'attività alla volta. Vuoi rimuovere la vecchia attività?","subtitle_list":"Elenco dei sottotitoli","optional":"opzionale","with_subtitle":"Con sottotitoli {language}","maximumSubtitleNum_limit":"Il numero di sottotitoli ha raggiunto il massimo","add_subtitle_url":"Aggiungi il link per il download dei sottotitoli","cannot_add_subtitle":"Impossibile aggiungere i sottotitoli","cannot_add_subtitle_msg":"Lingua dei sottotitoli non selezionata o collegamento per il download non valido.","support_subtitle_type":"Sono supportati solo i sottotitoli in formato srt e vtt.","recommend_opensubtitles":"Si consiglia di utilizzare il collegamento o l\'ID per il download dei sottotitoli su www.opensubtitles.org.","take_down":"Prendere nota","serious_violation":"Violazione grave","copyright_disputes":"Controversie sul copyright","adults_only":"Solo adulti","takedown_reason":"Motivo della rimozione","takedown_mode":"Modalità abbattimento","admins":"Amministratori","takedown_user":"Rimuovi questo creatore","takedown_channel":"Rimuovi questo canale","takedown_post":"Rimuovi questo post","select_takedown_reason":"Seleziona il motivo della rimozione","takedown_invalid_reason":"Motivo della rimozione non valido","takedown_invalid_user_id":"ID utente non valido. L\'ID deve includere 87 caratteri","takedown_invalid_channel_id":"ID canale non valido. L\'ID deve includere 20 caratteri","takedown_invalid_post_id":"ID post non valido. L\'ID deve includere 20 caratteri","takedown_management":"Abbatti la gestione","users":"Utenti","channels":"Canali","posts":"Messaggi","you":"Voi","preset":"Preimpostato","admin":"Amministratore","committee":"Comitato","about_takedown_mode":"Informazioni sulla modalità di rimozione:\\nPredefinito: configurato nel repository github. Verranno tutti rimossi dalla libreria.\\nAmministratore: tutti i voti degli amministratori verranno rimossi.\\nComitato: almeno la metà degli amministratori che votano a favore verrà rimossa.","cannot_edit_preset":"Non puoi modificare questa riga poiché è una riga preimpostata","cannot_edit_not_vote":"Non puoi modificare questa riga perché non l\'hai votata","remove_vote":"Rimuovi il tuo voto","post_preload_failed":"Impossibile precaricare questo post. Il link per il download potrebbe non essere aggiornato, quindi questo post non può essere riprodotto immediatamente.","about_cache_node":"Informazioni sul nodo della cache","edit_cache_node":"Modifica il nodo della cache","create_cache_node":"Crea nodo cache","about_cache_node_desc":"${displayName} utilizza il server della pistola come nodo della cache. È possibile modificare i nodi personalizzati nelle impostazioni anticipate","learn_how_to_deploy_gun":"Scopri come distribuire il tuo server di armi","repeat_add":"L\'attività è stata aggiunta, non aggiungerla di nuovo","upload":"Caricamento","download":"Scaricamento","delete":"Eliminare","delete_task":"Elimina attività","delete_confirm_message":"Eliminare questa attività? Questo è irrevocabile","also_delete_files":"Elimina anche i file","default_delete_files":"Per impostazione predefinita, elimina i file scaricati dopo aver rimosso l\'attività","not_now":"Non adesso","delete_autoupload_confirm":"Questa attività contiene il file inserito nella directory di caricamento automatico. Elimina questa attività eliminerà anche il file.","delete_anyway":"Elimina comunque","upload_too_many_files":"Carica troppi file","ask_if_unlimit_upload_amount":"La directory di caricamento automatico contiene troppi file. Vuoi disabilitare la limitazione della quantità di upload? *Ciò potrebbe causare problemi di prestazioni","disable_limitation":"Disabilita limitazione","not_length":"L\'operazione su più file non è attualmente supportata, si prega di collaborare","download_torrent":"Download file","upload_torrent":"Caricare un file","files":"File","file":"File","folder":"Cartella","start_all":"Inizia tutto","pause_all":"Metti in pausa tutto","remove_all":"Rimuovi tutto","upload_all":"Carica tutto","clear_history":"Cancellare la cronologia","pause_all_finish_payments":"Questo terminerà tutti i pagamenti.","accelerating":"Accelerando","link_task":"Attività di collegamento","torrent_task":"Attività di archiviazione","ok":"OK","cancel":"Annulla","download_directory_position":"Scarica la posizione della directory","torrent_file":"file di attività","magnetic_link_incorrect":"Il formato del collegamento non è corretto","delete_fail":"Elimina fallita","pause":"Pausa","paused":"In pausa","stop_torrent":"Fermare","seed":"Seme","resume":"Riprendere","downloading":"Download","downloaded":"Scaricato","uploading":"Caricamento in corso","auto_uploading":"Caricamento automatico","uploaded":"Caricato","pending":"In attesa di altri compiti","verifying":"Verifica","waiting_for_verify":"In attesa di verifica","seeding":"Semina","completed":"Completato","status":"Stato","task_name":"Nome dell\'attività","size":"Misurare","progress":"Progresso","sort":"Ordinare","ascending":"Ascendente","descending":"Discendente","file_loading":"Caricamento file...","loading":"Caricamento","unknown_status":"Sconosciuto","play_while_downloading":"Giocare...","upload_or_play":"Carica / Riproduci","play":"Giocare","ask_if_upload_file":"Caricare un file?","ask_if_upload_or_play":"Caricare o riprodurre file?","torrent_error":"Errore durante l\'aggiunta dell\'attività:","no_peers":"Riprova per più di {0} volte e nessun peer è disponibile","torrent_exists":"L\'attività esiste già.","show_origin_torrent":"Ottieni il file o l\'URL dell\'attività originale","show_directory":"Apri la directory di questo torrent","task_num":"Compiti","total_upload_speed":"Velocità di caricamento","total_download_speed":"Velocità di download","path_missing":"Errore: impossibile trovare il percorso del torrent","origin_not_found":"Impossibile trovare le informazioni sull\'attività di origine.","text_copied":"L\'URL Magnum viene copiato negli appunti","copy_magnet_uri":"Copia magnete:? URI","copy_download_uri":"Copia l\'URI di download","copy_share_uri":"Copia l\'URI di condivisione","uri_copied":"L\'URI è stato copiato con successo negli appunti","uri_copy_failed":"Impossibile copiare l\'URI","more":"Di più...","toggle_list_mode":"Attiva/disattiva la modalità elenco","comment":"commento","operations":"Operazioni","open_directory":"Apri rubrica","no_downloading_task":"Nessuna attività di download","remove_all_downloading_tasks":"Rimuovere tutte le attività di download?","remove_all_upload_tasks":"Rimuovere tutte le attività di caricamento?","remove_autoupload_files":"Rimuovi i file di caricamento automatico","remove_all_history":"Rimuovere tutta la cronologia?","remaining":"Residuo","created_time":"Tempo creato","used_time":"Tempo utilizzato","completed_time":"Tempo completato","yesterday":"Ieri","before_yesterday":"{empty}","earlier":"Prima","miss_file":"Mancano alcuni file","delete_miss_file_task":"Ci sono file fome mancanti in {0}.","common_peer":"Pari comune","ab_peer":"${displayName} peer","ab_peer_verified":"Peer ${displayName} verificato","ab_peer_available":"${displayName} peer disponibili","alphabiz_accelerating":"${displayName} in accelerazione","income":"Reddito","income_info":"Reddito(oggi/totale)","total_income_info":"Entrate: {0}(oggi) / {1}(totale)","login_to_see_income":"Accedi per vedere le statistiche sul reddito","credit_cost":"Costi del credito","downloaded_by_payment":"Scaricato da Payments","file_not_found":"Impossibile trovare questo file in locale","no_task":"Non chiedere","no_matched_task":"Nessuna attività corrispondente","space_not_enough":"Lo spazio su disco non è sufficiente","need_more_space":"Hai bisogno di {0} di spazio in più ma il disco corrente ha {1} liberi ({2} riservati). Le attività sono sospese. Il precaricamento della libreria è disabilitato. Puoi riattivarlo in [Impostazioni - Avanzate].","seeders":"Seminatrici","last_update":"Ultimo aggiornamento","connecting":"Collegamento","connected":"Collegato","request_timed_out":"Tempo scaduto per la richiesta","connection_failed":"Connessione fallita","invalid_download_url":"URL di download non valido","download_link":"Link per scaricare","empty_files":"Nessun file nella directory","duplicate_task":"Compito duplicato","duplicate_tracker":"Tracker duplicato","this_task_not_ready":"Questa attività non è pronta. Metti in pausa questa attività la rimuoverà direttamente.","some_task_not_ready":"Alcune attività non sono pronte. Mettere in pausa queste attività le rimuoverà direttamente.","failed_to_delete_files":"Impossibile eliminare i file","failed_to_delete_files_desc":"Impossibile eliminare alcuni file dell\'attività. Potrebbe essere necessario eliminarli manualmente","unknown_error":"Errore sconosciuto: {0}","more_files_are_not_shown":"({0} altri file non vengono visualizzati per motivi di prestazioni)","no_available_file":"Nessun file disponibile. Attendere che l\'attività sia pronta.","service_worker_error":"Impossibile caricare ServiceWorker per giocare. Il tuo browser potrebbe non supportare questa funzione o ServiceWorker non è attivato. Potrebbe essere necessario ricaricare questa pagina e riprovare.","add_task_first":"Devi prima aggiungere l\'attività.","player_task_time":"Il giocatore impiega troppi secondi a prepararsi per il gioco. Potrebbe esserci qualcosa di sbagliato nell\'attività.","web_mode_hint":"La modalità web di ${displayName} supporta solo peer WebRTC. Per un\'esperienza migliore, scarica l\'app desktop ${displayName}.","web_mode_task_hint":"Fai clic sui pulsanti sottostanti per aggiungere un\'attività. Puoi aggiungere solo un\'attività alla volta.","save_to_local":"Salva in locale","save_as_zip":"Salva come CAP","creating_save_file":"Creazione del file di salvataggio...","upload_as_one_directory":"Carica come un\'unica directory","upload_as_single_files":"Carica come file singoli","web_mode_upload_single":"Puoi caricare un solo file in modalità web","download_success":"Scarica con successo","download_fail":"Scaricamento fallito","wait_for_downloaded_to_share":"Attendere il download dell\'attività prima di condividerla.","download_with_cellular":"Scarica le attività utilizzando il cellulare","download_with_cellular_desc":"Stai utilizzando una rete cellulare. Le attività di download con cellulare potrebbero richiedere costi aggiuntivi da parte del tuo operatore.","download_with_cellular_confirm":"Scarica ancora con il cellulare","language":"Lingua","appearance":"Aspetto","darkModeSystem":"Sistema","darkModeLight":"Leggero","darkModeDark":"Buio","basic_setting":"Di base","hideMenu":"Nascondi menu app (solo Windows e Linux)","autoHide":"Nascondi automaticamente la finestra","autoStart":"Apri al login","restore":"Mantieni le dimensioni e la posizione della finestra quando esci","autoStartUnfinished":"Riprendi automaticamente tutte le attività non completate","default_download_path":"Percorso predefinito","download_directory":"Scarica Rubrica","upload_directory":"Carica directory","enable_auto_upload":"Abilita il caricamento automatico","unlimit_upload_amount":"Quantità di caricamento illimitata","unlimit_upload_warning":"Consenti il ​​caricamento di grandi quantità di file. Ciò potrebbe causare problemi di prestazioni","start":"Avviare","transport_setting":"Trasmissione","upload_limit":"Limite di caricamento","download_limit":"Limite di download","payed_user_share_rate":"Tasso di condivisione degli utenti a pagamento","unlimited":"Illimitato","limit_input_error":"Il numero limite deve essere positivo","BT_setting":"Impostazioni attività","saveLinkSeed":"Salva collegamento come file attività","autoDownload":"Scarica automaticamente link e contenuti","continuousSeeding":"Continua a seminare finché non lo interrompi manualmente","seedSharingRate":"Rapporto seme","seedTime":"Tempo di semina (minuti)","task_manage":"Gestione dei compiti","maximumDownloadNum":"Attività attive massime","maximumConnectionsNum":"Connessione massima per server","range_error":"L\'intervallo dovrebbe essere compreso tra {0} e {1}","random":"casuale","breakpointContinuation":"Continua","automaticSkip":"Mostra automaticamente il download dopo aver aggiunto l\'attività","afterNotification":"Notifica dopo il completamento del download","deleteConfirm":"Non è richiesta alcuna conferma prima di eliminare l\'attività","submit":"Salva e applica","discard":"Scartare","reset":"Ripristina","reset_all_settings":"Resettare tutte le impostazioni?","preferences_resetted":"Preferenze ripristinate","traditional_chinese":"cinese tradizionale","japanese":"giapponese","english":"Inglese","chinese":"Cinese semplificato","advancedSettings":"Avanzate","autoUpdate":"Auto Update","autoCheckUpdate":"Controlla automaticamente l\'aggiornamento","proxy":"Delega","useProxyService":"Abilita proxy","trackerService":"Server di monitoraggio","recommendUse":"Consigliato","autoUpdateTrackerServiceList":"Aggiorna automaticamente l\'elenco dei tracker ogni giorno","manualUpdateTracker":"Aggiornamento manuale","manualUpdateSuccess":"Aggiorna correttamente i server del tracker","manualUpdateFail":"Impossibile aggiornare da:","listenPort":"Ascolta Porti","BTlistenPort":"Porta di trasmissione dati","DHTlistenPort":"Porta hash distribuita","protocols":"Protocolli compatibili","setDefaultClientForFollowingProtocols":"Imposta come client predefinito per i seguenti protocolli","magnetUrl":"Magnete","video_file":"File video","audio_file":"Fascicolo audio","security":"Sicurezza","impersonateUserAgent":"Agente utente fittizio","RPCauthorizationkey":"Segreto RPC","viewDocument":"Visualizza il manuale segreto RPC","developer":"Sviluppatore","applicationLogPath":"Percorso del registro dell\'app","downloadSessionPath":"Scarica il percorso della sessione","resetDownloadSessionRecord":"Reimposta sessione di download","restoreInitialSettings":"Ripristino delle impostazioni di fabbrica","preferences_set_successfully":"Salva le preferenze con successo!","preferences_set_fail":"Il salvataggio delle preferenze fallisce!","change_not_save":"Modifiche non salvate","discard_all_changes":"Annullare tutte le modifiche e andarsene?","stay_in_page":"Rimani nella pagina","disk_usage":"Uso del disco","pause_if_less_space":"Metti in pausa e notifica se lo spazio è inferiore a (MB)","default_video_player":"Lettore video predefinito","video_cache_time":"Cache di riproduzione in streaming","minutes":"minuti","system_default":"Default del sistema","media_player":"Media Player","library_film_rate":"Tasso di film disponibile","library_show_explore":"Mostra la pagina [Esplora].","library_setting":"Impostazione della libreria","library_sync_setting":"Impostazione della sincronizzazione della libreria","keychain_sync_status":"Stato di sincronizzazione del portachiavi","sync_with_aws":"Sincronizza il portachiavi con Amazon Web Services","backup_to_local":"Backup su file locale","enable_sync_with_aws":"Abilita la sincronizzazione con AWS","disable_sync_with_aws":"Disabilita la sincronizzazione con AWS","disable_sync_with_aws_desc":"Questo rimuoverà la chiave salvata nel server. Assicurati di aver già esportato la tua chiave.","input_independent_password":"Immettere una password indipendente","change_independent_password":"Cambia password indipendente","password_error":"Password errata","password_invalid":"password non valida","key_existed":"La chiave esisteva","key_not_found":"Chiave non trovata","library_recommend":"Libreria consigliata","show_all_channels":"Mostra tutti i canali nella pagina dei consigli della biblioteca","not_logged_in":"Accesso non effettuato","login_to_continue":"Accedi per continuare","mnemonic_code":"Codice mnemonico","wordlist":"Elenco di parole","restore_code":"Ripristina da codice","generate_code":"Genera codice","export_mnemonic_code":"Esporta codice mnemonico","import_mnemonic_code":"Importa il codice mnemonico","print":"Stampa","save_as_txt":"Salva come txt","save_as_pdf":"Salva come pdf","from_file":"Dal file","not_valid_mnemonic_code":"Questo non è un codice mnemonico valido","cannot_parse_code_as_key":"Impossibile analizzare questo codice mnemonico come chiave di libreria","import_key_hint":"Sei sicuro di importare questa chiave? Questo ripristinerà la tua vecchia chiave nella libreria.","import_key_confirm":"Sì, importalo.","library_preload":"Precarica le attività dalla libreria","show_preload":"Mostra le attività di precarico","set_download":"Imposta la directory di download","set_download_desc":"Per la versione macOS App Store, la directory di download predefinita si trova nella sandbox dell\'app e verrà eliminata dopo la disinstallazione dell\'app. Se desideri conservare i file di download, devi selezionare manualmente una directory di download diversa.","home":"Casa","home_caption":"Download/caricamento e file multimediali","library":"Biblioteca","library_caption":"Esplora le risorse multimediali","player":"Giocatore","player_caption":"Media Player","credits":"Crediti","credits_caption":"Controlla il saldo del conto","account":"Account","account_caption":"Accedi/Registrati/Gestisci","settings":"Impostazioni","settings_caption":"Impostazioni per app, lettore, account","development":"Sviluppo","development_caption":"Modalità sviluppatore per uso interno","basic":"Di base","basic_caption":"Impostazioni di base","advanced":"Avanzate","advanced_caption":"Impostazioni avanzate","blockchain":"Portafoglio","blockchain_caption":"${displayName} Portafoglio decentralizzato","internal_notice":"Avviso di rilascio interno","release_notes":"Note di rilascio","terms_and_conditions":"Termini e Condizioni","license_and_listen_notices":"Licenza e ascolto Avvisi open source","close":"Vicino","success":"Successo","fail":"Fallire","account_email_invalid_address":"indirizzo email non valido","account_email_invalid_domain":"Dominio e-mail non valido","account_email_unknown_status":"Stato di recapito email sconosciuto","account_email_unavailable_address":"Indirizzo email non disponibile","account_email_suppressed_address":"Indirizzo email soppresso","account_loading":"Caricamento...","account_is_required":"è obbligatorio","account_sign_in_your_account":"Registrazione","account_username":"Nome utente","account_username_email_phone":"Numero di telefono o e-mail","account_password":"Parola d\'ordine","account_new_password":"Nuova password","account_re_enter_password":"Reinserire la password","account_password_not_equal":"Due password non sono uguali","account_new_password_same":"La password è la stessa della password originale","account_forgot_your_password":"Hai dimenticato la password?","account_reset_password":"Resetta la password","account_sign_in":"Registrazione","account_signed_in":"Registrato in","account_sign_up":"Iscrizione","account_find_your_account":"Trova il tuo account","account_enter_your_username":"Inserisci il tuo numero di telefono o email","account_search":"Ricerca","account_email_sent_tip":"Un\'email con un codice di verifica è stata inviata alla tua email:","account_phone_sent_tip":"Un SMS con un codice di verifica è stato inviato al tuo telefono:","account_email_phone_sent_tip":"L\'e-mail e l\'SMS con il codice di verifica sono stati inviati rispettivamente alla tua e-mail e al tuo telefono:","account_software_token_tip":"MFA è abilitato per il tuo account. Per terminare l\'accesso, accendi o visualizza il tuo dispositivo e digita il TOTP","account_reset_your_password":"reimposta la tua password","account_verification_code":"Codice di verifica","account_resend_code":"Codice di rispedizione","account_code_has_been_resent":"Il codice di verifica è stato inviato di nuovo","account_password_has_been_reset":"La password è stata reimpostata","account_submit":"Invia","account_sign_up_your_account":"Registra il tuo account","account_fill_required_fields":"Compila i campi richiesti di seguito.","account_fill_optional_fields":"Compila i campi facoltativi di seguito.","account_email":"E-mail","account_invitation":"Invito","account_invitation_code":"Codice invito","account_i_accept":"Accetto","account_license_terms":"la licenza e le condizioni","account_next":"Prossimo","account_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini.","account_verify_fill_optional_fields":"Verifica e compila i campi facoltativi.","account_nickname":"Soprannome","account_gender":"Genere","account_male":"Maschio","account_female":"Femmina","account_not_say":"Non dire","account_birthday":"Compleanno","account_phone_number":"Numero di telefono","account_locale":"Locale","account_tip_verified":"Verificato, accesso...","account_verified":"verificato","account_unverified":"non verificato","account_signed_up":"Iscritto","account_verify_your_identity":"Verifica la tua identità","account_finish":"Fine","account_signed_out":"Disconnesso","account_change_password":"Cambiare la password","account_change_email":"Cambia email","account_change_phone_number":"Cambia numero di telefono","account_sign_out":"disconnessione","account_current_password":"Password attuale","account_re_enter_new_password":"Reinserire la nuova password","account_personal_information":"Informazione","account_edit":"modificare","account_reset":"Ripristina","account_greeting":"Ciao,","account_cancel":"Annulla","account_change":"modifica","account_not_set":"non impostato","account_setting":"collocamento","account_copy_code":"copiare il codice","account_account_setting":"Account","account_task_page":"Attività di credito","account_setting_caption":"Cambia password / Modifica informazioni","account_security":"Sicurezza","account_want_to_join":"Voglio aderire?","account_sign_in_now":"Registrazione","account_changed":"Cambiato","account_clipboard_with_invitation_code":"Codice invito copiato","account_clipboard_with_code":"Il Codice copiato","account_invitation_code_dialog_tip":"Invierai al tuo amico un\'e-mail o un messaggio di testo con un codice di invito:","account_available":"disponibile","account_invited":"invitato","account_used":"usato","account_invitation_code_sent":"Il codice di invito è stato inviato","account_invitation_channel_required":"Compila almeno un canale di invito","account_no_verification_code":"Non riesci a ricevere il codice di verifica?","account_no_phone_number":"Nessun numero di telefono?","account_sign_up_by_email":"Iscriviti tramite e-mail","account_no_email":"Nessuna e-mail?","account_sign_up_by_phone_number":"Iscriviti per numero di telefono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se non è presente TOTP, impostare prima TOTP","account_setup_totp":"Imposta TOTP","account_contact_information":"Informazioni sui contatti","account_delete_account":"Eliminare l\'account","account_deleted":"Eliminato","account_can_not_mfa":"MFA nei guai?","account_set_mfa_type":"Configurazione MFA","account_disable_mfa":"Disabilita l\'autenticazione a più fattori","account_disabled_mfa":"AMF disabilitato","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOP","account_not_recommend":"Non consigliato","account_oauth_sign_in_with":"Accedi con {provider}","account_sign_in_failed":"Impossibile accedere","account_tip_oath_sign_up":"L\'e-mail corrispondente all\'attuale account {provider}: {email} non ha ancora creato un account","account_tip_confirm_delete_account":"Immettere la password dell\'account corrente per confermare che si desidera eliminare l\'account corrente. (Gli account eliminati non possono essere ripristinati)","account_tip_config_mfa":"Puoi scegliere di utilizzare SMS o password monouso basata sul tempo (TOTP) come autenticazione secondaria","account_error_can_not_enable_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'MFA","account_tip_can_not_enable_sms_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare l\'autenticazione a più fattori SMS","account_tip_can_not_enable_totp_mfa":"Devi associare il tuo indirizzo e-mail e il numero di cellulare per abilitare TOTP MFA","account_tip_setup_totp":"Usa app come Authenticator per scansionare il codice QR qui sotto o copia il codice manualmente per aggiungere un token di sicurezza","account_tip_verify_totp":"Verifica il tuo TOTP","account_link_your_social_account":"Associa il tuo account social","account_unlink_your_social_account":"Scollega account social","account_tip_confirm_link":"Sei sicuro di voler associare l\'account corrente al tuo account {provider}?","account_tip_confirm_unlink":"Sei sicuro di cancellare il tuo account {provider} associato?","account_tip_linking":"legame...","account_tip_unlinking":"Non vincolante...","account_linked":"Limite","account_unlinked":"Non legato","account_error_can_not_link_to_the_linked_account":"L\'attuale account social è associato a un altro account","account_error_can_not_link_to_the_mismatched_email":"L\'account corrente e l\'indirizzo email dell\'account social non sono coerenti","account_error_can_not_link_before_email_verified":"L\'account social non può essere collegato perché l\'account corrente non è associato a un\'e-mail verificata","account_tip_confirm_verify_email_phone":"Se inviare un codice di verifica all\'e-mail e al numero di telefono dell\'account corrente per verificare la tua identità?","account_tip_confirm_verify_phone":"Se inviare un codice di verifica al numero di telefono corrente per verificare la tua identità?","account_error_1_message_60_seconds":"È possibile inviare un solo SMS o e-mail ogni 60 secondi, attendere altri {delta} secondi","account_error_10_messages_per_day":"Ogni telefono cellulare o e-mail può inviare solo 10 messaggi entro 24 ore","account_error_network":"Si è verificato un problema con la rete, riprova più tardi","Network Error":"Si è verificato un problema con la rete, riprova più tardi","account_error_user_not_exist":"l\'utente non esiste","account_error_incorrect_username_or_password":"nome utente o password errati","account_error_incorrect_original_password":"Password originale errata","account_error_incorrect_password":"password errata","account_error_username_not_found":"Nome utente non trovato","account_error_can_not_reset_for_no_verified":"Impossibile reimpostare la password per l\'account non verificato","account_error_invalid_verification_code":"Codice di verifica errato, riprova","account_error_expired_verification_code":"Codice di verifica scaduto, riprova","account_error_password_not_long_enough":"La password non è abbastanza lunga","account_error_attempt_limit_exceeded":"Limite di tentativi superato, riprova dopo un po\' di tempo.","account_error_password_attempts_exceeded":"Tentativi password superati.","account_error_invalid_phone_number_format":"Formato del numero di telefono non valido","account_error_no_cell_phone_prefix":"Seleziona il prefisso per il numero di telefono","account_error_username_already_exists":"Il nome utente esiste già","account_error_you_need_to_accept_license_terms":"Devi prima accettare la licenza e i termini","account_error_inactive_code":"Il codice di invito non è un codice attivato","account_error_non_existent_code":"Il codice di invito è inesistente","account_error_unexpected":"Errore inaspettato","account_error_can_not_change_email_before_phone_bound":"L\'e-mail non può essere modificata prima che il numero di telefono sia associato","account_error_can_not_change_email_before_unbound_social_account":"L\'e-mail non può essere modificata prima di annullare l\'associazione dell\'account social","account_error_can_not_change_phone_before_email_bound":"Il numero di telefono non può essere modificato prima che l\'e-mail sia vincolata","account_error_can_not_change_email_phone_with_mfa_enabled":"Impossibile modificare l\'e-mail o il numero di cellulare prima di disabilitare l\'MFA","account_error_not_supported_yet":"Attualmente non supportato","account_error_same_email":"Il nuovo indirizzo email non può essere uguale all\'indirizzo email originale","account_error_same_phone":"Il nuovo numero di telefono non può essere uguale al numero di telefono originale","account_error_email_not_exists":"L\'indirizzo email non esiste","account_error_email_already_exists":"Esiste già un account con l\'indirizzo email indicato.","account_error_phone_already_exists":"Esiste già un account con il numero di telefono indicato.","account_error_mfa_token_mismatch":"Codice token software non corrispondente","account_error_recaptcha_not_loaded":"C\'è un problema con la rete. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_recaptcha_validation_failed":"Convalida ReCAPTCHA non riuscita. Ricollegare la rete e riavviare l\'applicazione per riprovare.","account_error_sign_in_in_progress":"Tentativo di accesso in sospeso già in corso","account_field_range":"Limita l\'immissione di {0}-{1} caratteri","account_field_only_alphanumeric":"Supporta solo caratteri alfanumerici","account_field_only_alphanumeric_and_symbol":"Supporta solo caratteri alfanumerici e simboli","account_field_only_chinese_alphanumeric_space_underline":"Supporta solo caratteri alfanumerici, spazio, trattino basso","account_field_prefix_without_number_space":"Il primo carattere non può essere un numero o uno spazio","account_field_suffix_without_space":"Non può terminare con uno spazio","account_field_without_repeat_space":"Non è possibile utilizzare più spazi di seguito","account_field_can_not_only_alphanumeric":"Non puoi usare solo lettere o numeri","account_field_must_have_number_characters":"Deve contenere caratteri numerici","account_field_verification_code":"Il codice di verifica deve essere di sei cifre","account_field_invitation_code":"Il codice di invito deve essere alfanumerico","account_field_phone_number":"Formato del numero di telefono non valido","account_invalid_email_format":"formato email non valido","account_sign_out_confirm":"Sei sicuro di uscire? Questo interromperà tutte le attività.","account_sign_out_anyway":"Esci comunque","account_signing_out":"Uscita...","account_request_save_settings":"Le impostazioni non vengono salvate. Devi salvare le modifiche prima di uscire.","pay":"Paga","pay_with_credit":"Paga per l\'accelerazione del download. Ha bisogno di circa {0} di credito","pay_with_credit_payed":"Accelerando. Ha ancora bisogno di circa {0} di credito","create_payment":"Crea pagamento","pay_target":"Bersaglio","pay_for_torrent":"Paga per {0}","your_subid":"Il tuo ID secondario","your_credits":"I tuoi crediti","pay_point_for_data":"Paga {0} punto per dati {1}","auto_renew":"Abilita il rinnovo automatico","transaction_details":"Dettagli di Transazione","transaction_id":"Id","transaction_payer":"Pagatore","transaction_payee":"Beneficiario","transaction_category":"Categoria","transaction_changed_amount":"Importo modificato","transaction_meta":"Meta","transaction_status":"Stato","transaction_creation_time":"Tempo di creazione","receipt_code":"Codice scontrino","transfer_amount":"Importo del trasferimento","code_the_receipt_code":"Copia il codice della ricevuta qui sotto per il pagatore","fill_the_receipt_code":"Bonifico compilando il codice di pagamento fornito dal beneficiario","expense":"Spese","copied":"Copiato","transfer":"Trasferimento","receive":"Ricevere","copy":"copia","withdraw_fund":"Ritiro del Fondo","category_paydata_payer":"Costo dei dati","category_paydata_payee":"Entrata di dati","category_transfer":"Trasferimento","category_bonus":"Bonus","category_recharge":"Ricaricare","status_pending":"in attesa di","status_completed":"completato","status_finish":"fine","status_failed":"fallito","tip_invalid_receiver":"Codice ricevitore non valido","tip_invalid_amount":"L\'importo del credito deve essere un float compreso tra 0 e 1000 (la precisione minima è 0,001)","credit_get_more":"Ottieni più crediti","credit_no_data":"Nessun dato disponibile","credit_loading":"Caricamento...","credit_not_enough_amount":"Crediti insufficienti","credit_amount_not_enough":"Crediti insufficienti","credit_payee_not_exist":"Il beneficiario non esiste","credit_invalid_amount":"Importo del credito non valido","credit_can_not_transfer_to_yourself":"Impossibile trasferire a te stesso","credit_latest":"Ultimo","credit_error_network":"Si è verificato un problema con la rete, riprova più tardi","add_subtitles":"Aggiungi sottotitoli","open_file":"Apri il file...","advanced_options":"Opzioni avanzate","title":"Titolo","location":"posizione","subtitle_file":"file di sottotitoli","unsupported_subtitle_type":"Il tipo di file {0} non è un tipo di sottotitoli supportato","not_default_player":"Il lettore video predefinito non è impostato","this_is_an_audio_file":"Questo è un file audio","the_added_subtitle_already_exists":"Il sottotitolo aggiunto esiste già","stop_stream_player":"Lo streaming multimediale è stato interrotto perché l\'attività è stata sospesa o eliminata","stop_player":"Il lettore è stato chiuso perché il file è stato eliminato","playing_timeout_hint":"I tempi di attesa sono scaduti. Si prega di controllare l\'attività","autoplay_hint":"La riproduzione automatica potrebbe essere bloccata dal tuo browser. Se il giocatore non sta giocando, prova a fare clic sullo schermo per continuare","remove_playing_confirm":"{0} è ancora in riproduzione, rimuoverlo fermerà il giocatore. Sei sicuro di rimuoverlo?","unsupported_in_browser":"Non ancora supportato in modalità browser","client":"Cliente","warning":"Avvertimento","enable":"Abilitare","disable":"disattivare","auto":"Auto","encrypt_connection":"Crittografare la connessione","encrypted_connection":"Connessione crittografata","non_encrypted_connection":"Connessione non crittografata","connected_wires_not_disconnect":"I cavi collegati non verranno scollegati","audio":"Audio","video":"video","image":"Immagine","subtitle":"sottotitolo","zip":"cerniera lampo","text":"testo","unknown":"sconosciuto","add":"Aggiungere","undo":"Disfare","backup":"Backup","not_default_app":"${displayName} non è la tua app predefinita per torrent e media, vuoi impostarla come predefinita?","dont_show_again":"Non mostrare più","go_to_settings":"Vai alle impostazioni","about_alphabiz":"Circa ${displayName}","last_check_at":"Ultimo controllo alle","update_channel":"Aggiorna canale","check_for_update":"Ricerca aggiornamenti","checking_for_update":"Controllo dell\'aggiornamento...","no_update_available":"Nessun aggiornamento disponibile","update_available":"Aggiornamento disponibile","update_now":"Aggiorna ora","update_later":"Aggiorna dopo","click_to_update":"Fare clic sul pulsante AGGIORNA ORA per scaricare e aggiornare","update_failed":"Aggiornamento non riuscito","update_failed_message":"Si è verificato un errore durante l\'aggiornamento:","check_shasum_failed":"Impossibile controllare l\'integrità per il programma di installazione","downloading_update":"Download dell\'aggiornamento...","ready_to_update":"Pronto per l\'aggiornamento","restart_to_update":"L\'aggiornamento viene scaricato. ${displayName} uscirà per aggiornarsi per qualche istante.","already_latest":"La versione corrente ({0}) è già l\'ultima","update_timeout":"Timeout di aggiornamento","no_available_release":"Nessuna versione disponibile","no_available_installer":"Nessun programma di installazione disponibile","feedback":"Feedback","select_a_type":"Seleziona un tipo","category":"Categoria","select_a_category":"Seleziona una categoria","require_title":"Il titolo è obbligatorio","describe_your_problem":"Descrivi il tuo problema","report_a_bug":"Segnalare un bug","request_a_new_feature":"Richiedi una nuova funzionalità","download_or_upload":"Scaricare caricare","others":"Altri","submit_with_system_info":"Invia con informazioni di sistema","submit_feedback":"Invia feedback","tweet_us":"Twittaci","tweet_too_long":"Il tweet è troppo lungo","delete_characters":"Elimina almeno {0} caratteri","rest_characters":"Puoi inserire {0} più caratteri","update_alphabiz":"Aggiorna ${displayName}","current_version":"Versione attuale","cancel_update":"Annulla Aggiornamento","slow_download_speed":"Download troppo lento","slow_download_speed_caption":"Il download del programma di installazione è troppo lento ora. Controlla lo stato della rete","update_canceled":"Aggiornamento annullato","current_version_release_time":"Tempo di rilascio della versione corrente","expired_app":"${displayName} Scaduto","version_out_of_date":"Versione obsoleta","have_to_update":"La versione di ${displayName} non è aggiornata. Alcuni protocolli o API sono obsoleti. Devi aggiornare ${displayName} prima di continuare.","exit_alphabiz":"Esci ${displayName}","exit_and_update":"Esci e applica l\'aggiornamento","new_version_hint":"La nuova versione è disponibile","no_new_version":"Nessuna nuova versione disponibile","current_is_latest":"La versione attuale è già l\'ultima","click_to_check_update":"Fare clic sul pulsante [VERIFICA AGGIORNAMENTI] per verificare la presenza di aggiornamenti","download_latest_version_from_website":"Visitare il sito Web ufficiale per scaricare l\'ultima versione","to_the_website":"Al sito web","network_diagnotic":"Diagnostica di rete","diagnotic":"Diagnostico","click_to_check":"Fare clic per verificare","click_to_check_again":"Fare clic per controllare di nuovo","checking":"Controllo","online":"in linea","offline":"disconnesso","dns_look_up":"Ricerca DNS","error":"Errore","aws_service":"Servizio AWS","network_pings":"Ping di rete","not_found":"Non trovato","packet_loss":"Perdita di pacchetti","official_site":"Sito ufficiale","download_test":"Scarica Prova","test_task":"Compito di prova {0}","download_failed":"Scaricamento fallito","second_spend":"{0} s spendere","open_default_player_failed":"Impossibile aprire il lettore predefinito","copied_to_clipboard":"Copiato negli appunti","go_to":"Vai a","region_not_available":"Regione non disponibile","region_not_available_message":"Scusa! La tua regione non è disponibile per utilizzare questa app. Questa app si chiuderà dopo {0} secondi","confirm":"Confermare","no_available_result":"Nessun risultato disponibile","invalid_password_format":"formato della password invalido","invalid_password_format_same":"La password è la stessa della password originale","error_password":"Password errata","keychain_setting":"Portachiavi","setting_description":"Archiviazione cloud: salva i dati chiave nel cloud.\\nModifica password: consente di modificare la password per la chiave del catalogo multimediale.\\nMnemonico: un metodo alternativo per generare e ripristinare le chiavi.\\nImporta chiave locale: importa la chiave salvata localmente nel catalogo multimediale.\\nChiave di esportazione: salva i dati della libreria multimediale corrente in locale o nel cloud.\\nChiave di backup su cloud: aggiorna i dati della libreria multimediale corrente sul cloud per il backup.","refresh_status":"Aggiorna stato","confirm_import_key":"Conferma la chiave di importazione","confirm_update_cloud_key":"Hai già una chiave nel cloud. L\'aggiornamento della chiave sovrascriverà la chiave originale. Sei sicuro di voler aggiornare la chiave archiviata nel cloud?","export_key_with_cloud":"Immettere la password indipendente impostata per esportare la chiave della libreria archiviata nel cloud e bloccare il file della chiave con la password di sblocco","store_cloud_key_prompt_password":"Immettere una password indipendente per archiviare la chiave della libreria nel cloud","update_cloud_key_prompt_password":"Imposta una password indipendente per crittografare la chiave della libreria, quindi aggiornala nel cloud","enable_cloud_storage_prompt_password":"Imposta una password per la chiave memorizzata nel cloud, attraverso la quale puoi recuperare la chiave dal cloud","input_unlock_password":"Imposta la password di sblocco","export_local_prompt_password":"Si prega di impostare una password di sblocco per crittografare il file chiave. Non salveremo questa password per te, quindi se perdi la password, non sarai in grado di sbloccare la tua chiave della biblioteca","require_unlock_password":"Il file chiave è bloccato, inserisci la password di sblocco","require_independent_password":"Inserisci la password indipendente per ottenere la chiave memorizzata nel cloud","import_local_prompt_password":"Il file chiave è bloccato, inserisci la password di sblocco","select_encrypt_mode":"Seleziona la modalità di crittografia","update_cloud_key":"Aggiorna la chiave archiviata nel cloud","backup_to_cloud":"Eseguire il backup della chiave della libreria nel cloud","save_local":"Salva la chiave della libreria come file crittografato locale","create_new_key":"Crea una nuova chiave di libreria","creating_lib_key":"Creazione della chiave della libreria...","loading_lib_key":"Caricamento della chiave della libreria...","failed_to_create_lib_key":"Impossibile creare la chiave della libreria","failed_to_load_lib_key":"Impossibile caricare la chiave della libreria","import_local_key":"Importa la chiave localmente","import_lib_key_from_local":"Importa una chiave di libreria in locale","import_from_cloud":"Importa la chiave della libreria dal cloud","create_or_import_key":"Crea o importa la chiave della libreria","create_or_import_key_desc":"La chiave della libreria è una chiave indipendente utilizzata per recuperare e pubblicare contenuti con un database decentralizzato.","store_your_lib_key":"Memorizza la chiave della libreria","export_cloud_key":"Esporta chiave dal cloud","export_current_key":"Esporta chiave corrente","change_password":"Cambiare la password","enable_cloud_storage":"Abilita l\'archiviazione cloud","disable_cloud_storage":"Disabilita l\'archiviazione cloud","disable_cloud_storage_desc":"Disabilitare l\'archiviazione cloud rimuoverà la chiave salvata nel cloud, assicurati che la chiave sia salvata localmente","sync_at":"Sincronizza a: {time}","cloud_storage_enabled":"Sincronizza il portachiavi con {storage}","cloud_storage_disabled":"Archiviazione cloud disattivata","saved_locally":"Salvato localmente","export_key":"Esporta file chiave","cloud_independent_password":"Password indipendente dal cloud","key_file_unlock_password":"Password di sblocco del file chiave","re_enter_unlock_password":"Reinserire la password di sblocco","independent_password_not_enabled":"La password corrente è la password dell\'account Alphabiz (non è impostata alcuna password indipendente)","use_cognito_hash":"Usa la password dell\'account Alphabiz","use_independent_password":"Usa una password indipendente","keychain_lib":"chiave della biblioteca","loading_keychain_state":"Caricamento portachiavi...","backing_up":"Backup in corso...","backup_current_key":"Esegui il backup della chiave corrente su Cloud","cloud_lib_key_not_existed":"la chiave della libreria non esiste in Cloud","open_keychain_file":"Apri file portachiavi","confirm_open_abk":"Vuoi aprire il file ABK","use_the_key":"Usa la chiave","backup_the_key":"Eseguire il backup della chiave nel cloud","keychain_data_does_not_exist":"I dati del portachiavi non esistono","timeout of 0ms exceeded":"Si è verificato un problema con la rete, riprova più tardi","XhrError":"Si è verificato un problema con la rete, riprova più tardi","payer credit amount is not enough":"Crediti insufficienti","payee does not exist":"Il beneficiario non esiste","block_list_manage":"Gestione elenco blocchi","blocked_users":"Utenti bloccati","blocked_channels":"Canali bloccati","unblock_user":"Sblocca utente","unblock_channel":"Sblocca canale","no_blocked_user":"Nessun utente bloccato","no_blocked_channel":"Nessun canale bloccato","field_required":"{0} è obbligatorio","setting":"Collocamento","unknown_media":"Media sconosciuti","settings_button_visible":"Pulsante visibile","settings_setting":"Collocamento","settings_playback_rate":"Velocità di riproduzione","settings_subtitle":"Sottotitolo","settings_pip":"PiP","settings_fullscreen":"A schermo intero","settings_subtitle_options":"Opzioni sottotitoli","settings_normal":"Normale","settings_italic":"Corsivo","settings_lighter":"Accendino","settings_bolder":"Più audace","settings_small":"Piccolo","settings_large":"Grande","about":"Di","services":"Servizi","hide":"Nascondere","hide_others":"Nascondi altri","show_all":"Mostra tutto","quit":"Esentato","edit":"Modificare","redo":"Rifare","cut":"Taglio","paste":"Impasto","select_all":"Seleziona tutto","view":"Visualizzazione","reload":"Ricaricare","toggle_full_screen":"Passare a schermo intero","toggle_developer_tools":"Attiva/disattiva Strumenti per sviluppatori","window":"Finestra","minimize":"Minimizzare","bring_all_to_front":"Porta tutto in primo piano","help":"Aiuto","github_repo":"Github Repo","issues":"Problemi","learn_more":"Saperne di più","learn_spelling":"Impara l\'ortografia","lookup_selection":"Cerca \\"{selection}\\"","search_with_google":"Cerca con Google","save_as":"Salva come","save_image":"Salva immagine","save_image_as":"Salva l\'immagine come ...","copy_link":"Copia link","save_link_as":"Salva collegamento come ...","copy_image":"Copia l\'immagine","copy_image_as":"Copia immagine come...","copy_image_address":"Copia l\'indirizzo dell\'immagine","download_complete":"Download completato","download_complete_message":"{0} viene scaricato","is_running":"{0} è in esecuzione","open":"Apri {0}","launch_problem":"Problema di avvio","ask_clear_data":"Sembra che tu stia tentando di avviare {0} ma non ci sei riuscito più volte.\\nVuoi cancellare tutti i dati dell\'app e provare ad avviarla più tardi?","launch_directly":"Avvia direttamente","clear_all_data":"Cancella tutti i dati","ask_clear_confirm":"Questo rimuoverà tutte le configurazioni, i registri e i dati utente!\\nDopo questo potrebbe essere necessario lanciare di nuovo {0}.\\nSei sicuro di cancellare i dati?","confirm_launch":"No, avvia direttamente","confirm_clear":"Sì, cancella tutti i dati"}')},4544:function(e,t,a){},"45bf":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"46a2":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],attrs:{id:"video-splash"}},[a("div",{staticClass:"loading"},[a("q-circular-progress",{staticClass:"q-ma-md",attrs:{indeterminate:"",size:"24px",color:"warning"}}),a("p",[e._v(e._s(e.videoLoadingHint))])],1)])])},o=[],i={name:"VideoSplash",props:{show:{type:Boolean},videoLoadingHint:{type:String}},data(){return{}},created(){},mounted(){},computed:{},methods:{}},r=i,s=(a("e0e1"),a("2b5f")),l=a("64e7"),c=a("09a4"),d=a.n(c),u=Object(s["a"])(r,n,o,!1,null,"bcdd35fc",null);t["a"]=u.exports;d()(u,"components",{QCircularProgress:l["a"]})},"47fc":function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));a("a1c1");const n=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"macOS",r:/Mac OS X/},{s:"UNIX",r:/UNIX/}];let o="unknown",i=()=>{};const r=new Promise((e=>i=e));function s(){const e="Unknown";let t=e;if(screen){const e=screen.width||"",a=screen.height||"";t=e+" x "+a}const a=navigator.appVersion,i=navigator.userAgent;let s,l,c,d=navigator.appName,u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10);-1!==(l=i.indexOf("Opera"))&&(d="Opera",u=i.substring(l+6),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))),-1!==(l=i.indexOf("Electron"))?(d="Electron",u=i.substring(l+9)):-1!==(l=i.indexOf("OPR"))?(d="Opera",u=i.substring(l+4)):-1!==(l=i.indexOf("Edge"))?(d="Microsoft Legacy Edge",u=i.substring(l+5)):-1!==(l=i.indexOf("Edg"))?(d="Microsoft Edge",u=i.substring(l+4)):-1!==(l=i.indexOf("MSIE"))?(d="Microsoft Internet Explorer",u=i.substring(l+5)):-1!==(l=i.indexOf("Chrome"))?(d="Chrome",u=i.substring(l+7)):-1!==(l=i.indexOf("Safari"))?(d="Safari",u=i.substring(l+7),-1!==(l=i.indexOf("Version"))&&(u=i.substring(l+8))):-1!==(l=i.indexOf("Firefox"))?(d="Firefox",u=i.substring(l+8)):-1!==i.indexOf("Trident/")?(d="Microsoft Internet Explorer",u=i.substring(i.indexOf("rv:")+3)):(s=i.lastIndexOf(" ")+1)<(l=i.lastIndexOf("/"))&&(d=i.substring(s,l),u=i.substring(l+1),d.toLowerCase()===d.toUpperCase()&&(d=navigator.appName)),-1!==(c=u.indexOf(";"))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(" "))&&(u=u.substring(0,c)),-1!==(c=u.indexOf(")"))&&(u=u.substring(0,c)),_=parseInt(""+u,10),isNaN(_)&&(u=""+parseFloat(navigator.appVersion),_=parseInt(navigator.appVersion,10));const p=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(a),m=navigator.cookieEnabled;let h=e;for(const o in n){const e=n[o];if(e.r.test(i)){h=e.s;break}}let g=e;switch(/Windows/.test(h)&&(g=/Windows (.*)/.exec(h)[1],h="Windows"),h){case"macOS":case"Android":g=/(?:Android|Mac OS|Mac OS X|MacIntel) ([._\d]+)/.exec(i)[1],g=g.replace(/_/g,".");break;case"iOS":g=/OS (\d+)_(\d+)_?(\d+)?/.exec(a),g=g[1]+"."+g[2]+"."+(g[3]||0);break}console.log("getSystemInfo");const f={screen:t,os:h,browser:d,osVersion:g,browserVersion:u,browserMajorVersion:_,mobile:p,cookies:m,arch:o};return r.then((()=>{f.arch=o})),f}"userAgentData"in navigator&&(console.log("Init userAgentData"),navigator.userAgentData.getHighEntropyValues(["architecture","bitness"]).then((({architecture:e,bitness:t})=>{console.log("Navigator userAgentData",e,t),"string"===typeof e&&(o=e),"string"===typeof t&&(o.includes("arm")?o+=t:o+="_"+t),i(o)})))},"49d6":function(e,t,a){},"4b8c":function(e,t,a){"use strict";a("80f4")},"4d52":function(e,t,a){"use strict";(function(e){a("d4b5"),a("de6c"),a("a1c1"),a("7a76");var n=a("fb31");const o={type:"03",prefix:n["shortProtocol"]+"-blockchain"},i={encode:t=>e.from(t,"utf-8").toString("hex"),decode:t=>e.from(t,"hex").toString("utf-8")},r={encode:t=>e.from(t,"utf-8").toString("base64"),decode:t=>e.from(t,"base64").toString("utf-8")},s={stringifyProtocolObject(e){const t=JSON.parse(i.decode(e.hash)),a=e.data,n={to_address:t.to_address,coin_type:a.coin_type,amount:a.amount,expiration:a.expiration},o=r.encode(JSON.stringify(n));return[t.action,o].join("/")},parseProtocolObject(e){const t=`Transfer to ${e.to_address.substr(2,10)}`,a=JSON.stringify({action:"transfer",to_address:e.to_address}),n={};return["coin_type","amount","expiration"].forEach((t=>{n[t]=e[t]})),{name:t,id:a,data:n}}},l={transfer:s},c=e=>{if(!e.startsWith(`${o.prefix}://`))return null;const[t,a]=e.replace(`${o.prefix}://`,"").split("/");if(!l[t])throw new Error("Unexpected action: "+t);const n=JSON.parse(r.decode(a));return{action:t,actionArgs:n}},d=(e,t)=>{const a=r.encode(JSON.stringify(t));return`${o.prefix}://${[e,a].join("/")}`};t["a"]={config:o,parseAction:c,stringifyAction:d,fromObject(e){if(e.protocolType!==o.type)return null;const{action:t}=JSON.parse(i.decode(e.hash));if(!l[t])throw new Error("Unexpected action: "+t);return`${o.prefix}://${l[t].stringifyProtocolObject(e)}`},toObject(e){const{action:t,actionArgs:a}=c(e),{name:n,id:r,data:s}=l[t].parseProtocolObject(a);return{protocolType:o.type,name:encodeURIComponent(n),hash:i.encode(r),data:s}}}}).call(this,a("eb72").Buffer)},"4d62":function(e,t,a){},"4d89":function(e,t,a){"use strict";a("c294")},"4dbc":function(e,t,a){"use strict";a("fe8f")},"4eaf":function(e,t,a){},"4ec4":function(e,t,a){"use strict";a("cb96")},"4fd2":function(e,t,a){"use strict";a.d(t,"b",(function(){return l})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return d}));a("de6c"),a("a1c1");const n=a("d310").isElectron(),o=new Map,i=e=>{if(!n)return!1;if("string"!==typeof e)return!1;if(o.has(e))return o.get(e);const t=a("61af");return!!t.existsSync(e)&&(o.set(e,t.statSync(e).isDirectory()),o.get(e))},r=["mp3","wav","aac","flac","m4a","wma"],s=["mp4","mkv","flv","avi","mov","wmv","rmvb","flv","webm"],l=e=>r.includes(e),c=e=>s.includes(e);function d(e){const t=e.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!t)return!1;const a=t[0].slice(1);if(!a.length)return!1;const n=r.includes(a.toLowerCase())||s.includes(a.toLowerCase());return!!n&&!i(e)}},5:function(e,t){},"508e":function(e,t){const a=["udp://open.tracker.cl:1337/announce","udp://tracker.opentrackr.org:1337/announce","udp://9.rarbg.com:2810/announce","udp://tracker.openbittorrent.com:6969/announce","udp://exodus.desync.com:6969/announce","udp://www.torrent.eu.org:451/announce","udp://tracker1.bt.moack.co.kr:80/announce","udp://tracker.zerobytes.xyz:1337/announce","udp://tracker.torrent.eu.org:451/announce","udp://tracker.theoks.net:6969/announce","udp://tracker.srv00.com:6969/announce","udp://tracker.pomf.se:80/announce","udp://tracker.ololosh.space:6969/announce","udp://tracker.monitorit4.me:6969/announce","udp://tracker.moeking.me:6969/announce","udp://tracker.lelux.fi:6969/announce","udp://tracker.jordan.im:6969/announce","udp://tracker-udp.gbitt.info:80/announce","udp://retracker.sevstar.net:2710/announce","udp://retracker.netbynet.ru:2710/announce","udp://186.10.181.71:1337/announce","udp://93.158.213.92:1337/announce","udp://151.80.120.113:2810/announce","udp://45.154.253.6:6969/announce","udp://208.83.20.20:6969/announce","udp://91.216.110.52:451/announce","udp://156.234.201.18:80/announce","udp://62.210.217.207:1337/announce","udp://89.234.156.205:451/announce","udp://209.141.59.16:6969/announce","udp://62.109.31.95:6969/announce","udp://65.108.63.133:80/announce","udp://93.104.214.40:6969/announce","udp://163.172.170.127:6969/announce","udp://95.217.161.135:6969/announce","udp://213.108.105.23:6969/announce","udp://109.72.83.209:80/announce","udp://78.30.254.12:2710/announce","udp://212.1.226.176:2710/announce","udp://tracker.leechers-paradise.org:6969","udp://tracker.coppersurfer.tk:6969","udp://tracker.opentrackr.org:1337","udp://explodie.org:6969","udp://tracker.empire-js.us:1337","wss://tracker.btorrent.xyz","wss://tracker.openwebtorrent.com"],n=e=>a.indexOf(e),o=e=>a[e];e.exports={getTrackerById:o,getIdByTracker:n,trackerList:a}},"50de":function(e,t,a){"use strict";a("bba7")},"512b":function(e,t,a){},"525c":function(e,t,a){},"536e":function(e,t,a){"use strict";a("a5d3")},5415:function(e,t,a){"use strict";a("512b")},5515:function(e,t,a){"use strict";(function(e){a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"b",(function(){return v}));a("de6c"),a("d4b5"),a("4db2"),a("a1c1");var n=a("2d62"),o=a("d7df"),i=a("d710"),r=a("ddf9"),s=a("c49d");const l=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100),c=(e="",t={})=>{if(e.startsWith("ab-")||e.startsWith(i["appName"].toLowerCase()))return!1;if(!e.startsWith("~"))return!0;if(e.startsWith("~@"))return 42!==e.length;const a=e.split("/");if(1===a.length){const[e,n]=a[0].split(".");if(!e||!n)return!0;if(e.length<40||n.length<40)return!0;const o=Object.keys(t);return o.some((e=>!["_","alias","auth","pub","epub","profile","follow","channels","blockChannels","blockUsers","takedowns"].includes(e)))}const n=a[1];if(!["follow","profile","channels","takedowns"].includes(n))return!0;const o=a[2]?[a[2]]:Object.keys(t);return"profile"===n?o.some((e=>!["_","#",">","avatar","description","name","id","blockChannels","blockUsers"].includes(e))):"follow"===n?o.some((e=>!(!e.match(/[^.]{43}\.[^.]{43}/)||e.includes("channels")))):Object.values(t).some((e=>"string"===typeof e&&e.includes("data:image")))},d=(e,t)=>{for(const r in t){const e=t[r];if("string"===typeof e&&e.includes("data:image"))return[]}const a=[],n=t._;if(!n||!n["#"]||!n[">"])return[];let o={[e]:{_:{"#":n["#"],">":{}}}},i=0;for(const r in t){if("_"===r)continue;const s=t[r];if("string"===typeof s&&s.includes("data:image"))return[];o[e][r]=s,i+=(JSON.stringify(s).length||0)+r.length,o[e]._[">"][r]=n[">"][r],i>1e4&&(a.push(o),i=0,o={[e]:{_:{"#":n["#"],">":{}}}})}return Object.keys(o).length&&a.push(o),a},u=(e,t,a)=>{if(e[t]){const n=e[t];e[t]=(...e)=>{n(...e),a(...e)}}else e[t]=a},_={timer:null,pending:!1,last:Date.now(),lastSize:0},p=async()=>{if(_.pending)return;const e=n["v"]._.graph;console.time("saveGraph"),_.pending=!0,_.last=Date.now();const t=Object.keys(e);if(_.lastSize>t.length)return console.log("Skip saving library");_.lastSize=t.length,console.log("start sending splice graph",t.length);let a=Object.create(null);o["a"].emit("save-library-db-start");for(const n of t){const t=e[n];if(!t)continue;if(c(n,t))continue;a[n]=t;const i=JSON.stringify(a);i.length>5e4&&(await new Promise((e=>l((()=>{o["a"].emit("save-library-db-partial",a),e()})))),a=Object.create(null))}Object.keys(a).length&&o["a"].emit("save-library-db-partial",a),l((()=>{o["a"].emit("save-library-db-end"),_.pending=!1,_.last=Date.now(),Object(s["a"])("Save partials",(new Date).toLocaleString()),console.timeEnd("saveGraph")}))},m=()=>{if(clearTimeout(_.timer),Date.now()-_.last>6e5)return p();_.timer=setTimeout(p,6e4)},h={};Object.defineProperty(window,"wrtcPeers",{get(){return h}}),Object.defineProperty(window,"saveGraph",{get(){return m}});let g=null;const f=async e=>{const t=g;return g=new Promise((a=>{const n=()=>{const t=e();t instanceof Promise?t.then(a):l((()=>a(t)))};t instanceof Promise?t.then(n):n()})),g};function b(t){const a=Object(r["a"])()?2:5;if(Object.keys(h).length>a)return Object(s["d"])(),void(t._destroy&&t._destroy(null,(()=>{})));const o=t.wire;if(!o)return;const i=n["v"]._.root;if(t.syncState="waiting",t.remoteSyncState="waiting",h[t.id]&&"open"===h[t.id].wire.readyState)return;h[t.id]=t;let l=!1;t.downloaded=0,t.uploaded=0,t.downloadSpeed=0,t.uploadSpeed=0;const _={time:Date.now(),downloaded:0,uploaded:0},p=setInterval((()=>{if(l)return clearInterval(p);const e=Date.now(),a=e-_.time;t.downloadSpeed=Math.floor((t.downloaded-_.downloaded)/a*1e3),t.uploadSpeed=Math.floor((t.uploaded-_.uploaded)/a*1e3),_.time=e,_.downloaded=t.downloaded,_.uploaded=t.uploaded}),1e3),g=async(e="")=>(o.bufferedAmount>o.bufferedAmountLowThreshold&&await new Promise((e=>{o.onbufferedamountlow=e})),f((()=>{"open"===o.readyState?(t.uploaded+=e.length,o.send(e)):l=!0}))),b=()=>{if(!i.graph)return setTimeout(b,5e3);let e=-1;for(const a in i.graph){var t;const n=i.graph[a],o=null===n||void 0===n||null===(t=n._)||void 0===t?void 0:t[">"];o&&o>e&&(e=o)}g("ABINFO"+JSON.stringify({timestamp:e}))};b(),t.lastUpdate=-1,t.syncTimer=null;const y=async()=>{if(l)return;if(t.syncTimer&&clearTimeout(t.syncTimer),!i.graph)return void(t.syncTimer=setTimeout(y,5e3));t.syncState="syncing";const e=Object.keys(i.graph);for(let t=e.length-1;t>0;t--){const a=Math.floor(Math.random()*(t+1));[e[t],e[a]]=[e[a],e[t]]}let a=Object.create(null);const n=Date.now();let r=0,u=0;for(const m of e){if("open"!==o.readyState){"connecting"!==o.readyState&&(delete h[t.id],l=!0,t.close(),t._destroy&&t._destroy(null,(()=>{})),Object.keys(h).length<5&&Object(s["c"])());break}r++;const e=i.graph[m];if(!e)continue;if(e._&&e._[">"]){const a=Object.values(e._[">"]);if(a.every((e=>e5e4){const t=d(m,e);if(!t.length)continue;window.verb&&Object(s["a"])("SPLICES",t,JSON.stringify(e).length);for(const e of t)await g("ABSYNC"+JSON.stringify(e)),u++;continue}a[m]=e;const n="ABSYNC"+JSON.stringify(a);if(n.length>5e4&&(await g(n),u++,a=Object.create(null)),l)return}Object.keys(a).length&&u++,u&&(t.lastUpdate=n,m(),Object(s["a"])("Synced",r,"items to",t.id));const _=Object.keys(a).length?JSON.stringify(a):"{}",p="ABSYNC!"+_;"open"===o.readyState&&g(p),t.syncState="completed",t.syncTimer=setTimeout(y,1e4)};return u(o,"onclose",(function(){l=!0,delete h[t.id],clearTimeout(t.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(o,"onerror",(function(){l=!0,delete h[t.id],clearTimeout(t.syncTimer),Object.keys(h).length<5&&Object(s["c"])()})),u(o,"onmessage",(function(a){if(!a)return;let o=a.data;if("string"!==typeof o&&(o instanceof ArrayBuffer?o=e.from(o).toString("utf-8"):(Object(s["a"])("unknown data",typeof o,o),o=o.toString())),o)if(o.startsWith("ABSYNC")){t.downloaded+=o.length,o.startsWith("ABSYNC!")?(t.remoteSyncState="completed",m()):t.remoteSyncState="syncing";try{if("ABSYNC!{}"===o)return;const e=JSON.parse(o.replace(/ABSYNC(!?)/,"")),t={put:e,_:function(){},$:n["v"]};f((()=>i.on.put(t)))}catch(r){Object(s["a"])("put error",r,o)}}else if(o.startsWith("ABINFO")){const e=JSON.parse(o.substring(6));e.timestamp&&(t.lastUpdate=e.timestamp,y())}})),u(t,"ondatachannel",(function(e){const t=e.channel;t.onmessage=o.onmessage,t.onopen=o.onopen,t.onclose=o.onclose})),t}function y(e){if(h[e.id])return;const t=e._pc;return t.id=e.id,t.wire=e._channel,t._from="tracker",e.on("error",(e=>window.verb&&Object(s["a"])("peer error",e))),t._destroy=()=>{e._destroy&&e._destroy(null,(()=>{}))},b(t)}async function v(e){let t=Object.create(null),a=0;const o=Object.keys(e);for(const i of o)if(a++,t[i]=e[i],a>300||a===o.length){const e={...t},i={put:e,_:function(){},$:n["v"]};if(await f((()=>n["v"]._.root.on.put(i))),a===o.length){for(const e in h)h[e].lastUpdate=-1;Object(s["a"])(`Put ${o.length} items from local db`)}else await new Promise((e=>l(e)));t=Object.create(null)}}n["v"]._.opt.onWrtcPeer=function(e){return e._from="gun",b(e)},t["a"]=y,setInterval((()=>{Object.keys(h).length>=5||n["v"]._.opt&&"function"===typeof n["v"]._.opt.announce&&n["v"]._.opt.announce()}),6e4)}).call(this,a("eb72").Buffer)},5584:function(e,t,a){"use strict";(function(e){var n=a("ff9b"),o=a("358c"),i=a("79e7"),r=a("d310"),s=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};n["a"].use(o["a"]);const l=new o["a"].Store({modules:i["a"],strict:!1});t["a"]=l,Object.defineProperty(e,"vuex",{get(){return l}});const c=e=>["us"].includes(e.toLowerCase());if(Object(r["isElectron"])()){const{ipcRenderer:t}=a("b052");t.on("app-init",(()=>s(void 0,void 0,void 0,(function*(){const t=e["require"]("geoip-country"),a=yield(yield fetch("https://api.ipify.org")).text(),n=t.lookup(a);n&&(console.log("Init user with ip",a,n),c(n.country)&&(console.log(`User country: ${n.country}. Enable secure.'`),l.dispatch("set",{secureOption:"enable"})))}))))}}).call(this,a("0ee4"))},"55e6":function(e,t,a){"use strict";a("0336")},5653:function(e,t,a){"use strict";(function(e){a.d(t,"b",(function(){return y}));a("de6c"),a("a1c1"),a("dc89"),a("2425"),a("d4b5");var n=a("eb7a"),o=a("d6ab"),i=a("5fc6"),r=a("4fd2"),s=a("3d18"),l=a("5584"),c=a("e3c7"),d=a("46a2"),u=a("3a62"),_=a("00dd"),p=a("d710"),m=a.n(p),h=a("908d"),g=a("d558");const f=a("d310").isElectron();window.videojs=n["default"],a("4b37"),a("94ce"),a("63f2");const b=m.a.fileName,y={toggleSplash(){},updatePlayer(){}};t["a"]={name:"Player",inject:["rootApp","io"],components:{VideoSplash:d["a"],AudioInfo:u["a"],AdvancedOptions:_["a"]},data(){return{player:null,playerOptions:{fill:!1,autoplay:!0,responsive:!0,fluid:!0,preload:"auto",controls:!0,controlBar:{volumePanel:{inline:!1}}},subsBtn:null,progress:[],fileName:"",playerLang:"",playerCacheTime:0,showSplash:!1,videoLoadingHint:"",showAdvancedOptions:!1,isUpdateSubtitle:"",isAudio:!1,isPause:!1}},created(){this.initVideoComponent(),this.playerLang=l["a"].state.setting.language,this.playerCacheTime=l["a"].state.setting.videoCacheTime,window.addEventListener("error",(e=>{console.log("Uncaught global error",e.message,"\nThis has no effect to app and can be ignore")})),f&&(c["ipcRenderer"].once("ask-for-player",(()=>{this.$q.notify({message:this.$t("not_default_player"),actions:[{label:this.$t("dont_show_again"),textColor:"warning",handler:()=>{l["a"].dispatch("set",{dontAskForPlayer:!0})}},{label:this.$t("go_to_settings"),textColor:"warning",handler:()=>{this.$router.push("/basicSetting")}}]}),l["a"].dispatch("set",{dontAskForPlayer:!0})})),this.$root.$on("pause-player-before-close",(()=>{this.player&&(this.isPause=!0,l["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),l["a"].state.video.currentVideo.status&&this.player&&this.player.pause())})));for(const e in y)"function"===typeof this[e]&&(y[e]=(...t)=>this[e](...t))},mounted(){console.log("player mounted"),this.loadPlayer(!0)},async activated(){if(this.playerLang!==l["a"].state.setting.language&&(this.playerLang=l["a"].state.setting.language,this.languageChange()),this.playerCacheTime!==l["a"].state.setting.videoCacheTime){console.log("videoCacheTime change",l["a"].state.setting.videoCacheTime),this.playerCacheTime=l["a"].state.setting.videoCacheTime;const e=this.updateCacheRate(l["a"].state.setting.videoCacheTime);if(e){this.updateSrc(l["a"].state.video.currentVideo.url,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(l["a"].state.video.currentVideo.currentTime);const e=l["a"].state.video.currentVideo.currentTime/this.player.duration(),t=document.querySelector(".vjs-play-progress");t&&setTimeout((()=>{t.style.width=100*e+"%"}),500)}}if(f||Object(g["a"])()){if(l["a"].state.video.currentVideo.remotePlay){this.isUpdateSubtitle="",this.isPause=!1,this.loadPlayer(!0),this.toggleSplash(!0),this.player.bigPlayButton.hide();const t=setTimeout((()=>{this.videoLoadingHint=this.$t("playing_timeout_hint")}),18e4);c["ipcRenderer"].send("get-stream-address"),c["ipcRenderer"].once("stream-address",((a,n)=>{console.log("got stream address",n),this.toggleSplash(!1),clearTimeout(t);let{address:o,filepath:i}=n;console.log("Stream play, try update player.src",n,"address",o,"filepath",i),i||(i="win32"===e.platform?decodeURI(o).replace("play:///","").replace(/\//g,"\\"):decodeURI(o).replace("play://","")),l["a"].dispatch("currentVideoUrl",o),l["a"].dispatch("currentVideoPath",i),l["a"].dispatch("currentVideoCurrentTime",0);try{this.updateSrc(o),this.isPause?(setTimeout((()=>{this.player.pause()}),1e3),this.isPause=!1):this.player.play(),this.player.readyState()&&l["a"].dispatch("resetRemotePlay"),this.clearOldSubtitle(),this.addSubtitle(i),this.changeSubtitleForLang()}catch(a){console.log("src err",a),l["a"].dispatch("resetRemotePlay")}}))}l["a"].state.video.currentVideo.url||l["a"].state.video.currentVideo.infoHash||this.loadPlayer(!0),c["ipcRenderer"].on("pause-player",(()=>{this.player&&(this.isPause=!0,l["a"].state.video.currentVideo.pipStatus&&this.player&&this.player.exitPictureInPicture(),l["a"].state.video.currentVideo.status&&this.player&&this.player.pause())}))}else l["a"].state.video.currentVideo.url!==this.player.src()&&console.log("url changed",l["a"].state.video.currentVideo.url,this.player.src());this.io.on("server_progress",(e=>{var t;if("/player"!==this.$router.currentRoute.path)return;if(!this.player&&!this.player.readyState())return;if(null===(t=l["a"].state.video.currentVideo)||void 0===t||!t.url)return;const a=e.find((e=>{var t;return null===(t=l["a"].state.video.currentVideo)||void 0===t?void 0:t.url.includes(e.name)}));if(a&&a.progress){const e=[],t=a.progress.length;let n=a.progress[0],o=1;for(let i=1;i{this.isUpdateSubtitle||(this.isUpdateSubtitle=e,console.log("update_subtitleList!!!",e,"path:",l["a"].state.video.currentVideo.path,t))})),this.io.on("clear_player",(e=>{const t=l["a"].state.video.currentVideo.url;if(l["a"].state.video.currentVideo.infoHash!==e.infoHash)return;const a=/^http/gm.test(t),n=/^play:\/\//gm.test(t);n&&"paused"===e.status||(a||n)&&(console.log("is",a,n),l["a"].state.video.currentVideo.pipStatus&&this.player.exitPictureInPicture(),l["a"].dispatch("resetPlayer"),this.$destroy(),setTimeout((()=>{console.log("timeout",a,n),this.$router.push("/player");try{this.loadPlayer(!0)}catch(e){console.log("Failed to force load player. This will not go wrong.",e.message||e)}a&&this.$q.notify(this.$t("stop_stream_player")),n&&this.$q.notify(this.$t("stop_player"))}),500))}))},beforeDestroy(){this&&this.player&&this.player.dispose()},computed:{lang(){const e=l["a"].state.setting.language?l["a"].state.setting.language:"en-US";return this.player&&this.player.language(e),e},settings(){const e=l["a"].state.setting;return{defaultVideoPlayer:e.defaultVideoPlayer,language:e.language}},advancedOpt(){let e=l["a"].state.video.currentVideo.path;const t=l["a"].state.video.currentVideo.url;t&&t.startsWith("play://")&&(e=decodeURI(t).replace("play:///",""));const a=e?e.replace(/^.*[\\\/]/,""):this.fileName;return[{name:this.$t("title"),value:decodeURIComponent(a).replace("\\","")},{name:this.$t("location"),value:e},{name:this.$t("subtitle_file"),value:l["a"].state.video.currentVideo.subtitleList}]}},watch:{"$store.state.video.currentVideo.updatePlayer"(e,t){console.log("watch updatePlayer:",e),e&&e!==t&&(console.log("need update player"),l["a"].dispatch("updatePlayer",!1),this.updatePlayer(l["a"].state.video.currentVideo.url))}},methods:{toggleSplash(e,t=""){this.showSplash=e,this.videoLoadingHint=t},toggleAudio(e){this.isAudio=e},toggleAdvancedOptions(e){this.showAdvancedOptions=e},openFile(){console.log("click",this.$refs.file),this.$refs.file.click()},bigPlayBtnOpenFile(){const e=document.querySelector("#my-video video").src;console.log("bigPlayBtn",e),e?this.player.play():this.openFile()},async languageChange(){this.player&&(this.player.language(this.lang),this.updateComponentText(),l["a"].state.video.currentVideo.url&&await this.loadPlayer(!0))},manualAddFile(e){console.log("Open Media File: "+e.target.files[0]),0!==e.target.files.length&&(e.target.files[0].path&&l["a"].dispatch("currentVideoPath",e.target.files[0].path),this.updatePlayer(e.target.files[0]),setTimeout((()=>{this.$refs.file.value=null}),500))},async manualAddSubtitle(e){const t=e.target.files;if(!t.length)return;const a=t[0],n=this.player.textTracks(),o=await this.addSubtitle(a,a.name);console.log("manualAddSubtitle",a,a.name,o);let i=-1;setTimeout((()=>{for(let e=0;e`,this.updateTitle=function(e){this.el_.innerHTML=``}}})),n["default"].registerComponent("SubsButton",n["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Add subtitles...",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}})),n["default"].registerComponent("AddSubButton",n["default"].extend(t,{constructor:function(){t.apply(this,arguments);const e=arguments[1];this._text=e.text||"Add subtitles...",this.el_.innerHTML+=`${this._text}`}})),n["default"].registerComponent("AdvancedOptionsButton",n["default"].extend(e,{constructor:function(){e.apply(this,arguments);const t=arguments[1];this._text=t.text||"Advanced Options",this.el_.innerHTML=``,this.updateTitle=function(e){this.el_.innerHTML=``}}}));const a=n["default"].getComponent("SeekBar");a.prototype.getPercent=function(){const e=this.player_.currentTime(),t=e/this.player_.duration();return t>=1?1:t},a.prototype.handleMouseMove=function(e){let t=this.calculateDistance(e)*this.player_.duration();t===this.player_.duration()&&(t-=.1),this.player_.currentTime(t),this.update()}},addControlBarComponent(){const e=this.player.controlBar.addChild("FileButton",{text:this.$t("open_file")},1),t=h["b"].is.mobile?"touchend":"click";e.on(t,this.openFile),this.subsBtn=this.player.controlBar.addChild("SubsButton",{text:this.$t("add_subtitles")+"..."},14),this.subsBtn.on(t,(()=>this.$refs.subtitle.click()));const a=this.player.controlBar.addChild("AdvancedOptionsButton",{text:this.$t("advanced_options")},16);a.on(t,(()=>{this.player.isFullscreen()&&this.player.exitFullscreen(),this.toggleAdvancedOptions(!0)}))},updateComponentText(){const e=this.player.controlBar.getChild("FileButton");e.updateTitle(this.$t("open_file")),this.subsBtn.updateTitle(this.$t("add_subtitles")+"...");const t=this.player.controlBar.getChild("AdvancedOptionsButton");t.updateTitle(this.$t("advanced_options"))},loadPlayer(e=!1){let t=()=>{};const a=new Promise((e=>{t=e}));if(!n["default"].getPlayer("my-video")||e){if(e){Object(n["default"])("my-video")&&(Object(n["default"])("my-video").isInPictureInPicture()&&Object(n["default"])("my-video").exitPictureInPicture(),Object(n["default"])("my-video").dispose());const e=document.querySelector("#video-container");e&&(e.innerHTML='')}try{this.player=Object(n["default"])("my-video",this.playerOptions,(()=>t()))}catch(o){console.log("loadPlayer error",o);const e=o.message;e.includes("The element or ID supplied is not valid.")&&(l["a"].dispatch("resetPlayer"),this.$destroy())}if(this.player.on("ready",(async()=>{l["a"].dispatch("updateVideoStatus",!1)})),this.player.on("canplay",(async()=>{l["a"].dispatch("resetRemotePlay");const e=(f?l["a"].state.video.currentVideo.path:this.fileName||l["a"].state.video.currentVideo.url).split(".").pop();if(this.toggleAudio(Object(r["b"])(e)),this.isUpdateSubtitle&&l["a"].state.video.currentVideo.infoHash===this.isUpdateSubtitle&&l["a"].state.video.currentVideo.path&&(await this.addSubtitle(l["a"].state.video.currentVideo.path),this.changeSubtitleForLang(),this.isUpdateSubtitle=""),!l["a"].state.video.currentVideo.url){const e=document.querySelector("#my-video video").src;l["a"].dispatch("currentVideoUrl",e);const t=e.split("/"),a=t[t.length-1];"undefined"!==typeof a&&(this.fileName=a),this.loadPlayer(!0),setTimeout((()=>this.player.play()),500)}setTimeout((()=>{!1===l["a"].state.video.currentVideo.status&&this.player.paused()&&this.player.bigPlayButton.show()}),700)})),this.player.on("play",(async()=>{if(this.settings.defaultVideoPlayer!==b&&l["a"].state.video.currentVideo.url.startsWith("play://")&&l["a"].state.video.currentVideo.infoHash){this.player.pause(),this.player.exitPictureInPicture();const e=l["a"].state.video.currentVideo.path;return console.log("player will pause,open default player,"+e),await Object(s["b"])(this.settings.defaultVideoPlayer,e),l["a"].dispatch("resetPlayer"),this.loadPlayer(!0)}this.player.bigPlayButton.hide(),l["a"].dispatch("updateVideoStatus",!0)})),this.player.on("pause",(()=>{4===this.player.readyState()&&this.player.bigPlayButton.show(),l["a"].dispatch("updateVideoStatus",!1)})),this.player.on("seeked",(()=>{setTimeout((()=>{const e=document.querySelector(".vjs-load-progress"),t=document.querySelector(".vjs-play-progress");e.style.width=t.style.width}),200)})),this.player.on("waiting",(()=>{const e=document.querySelector("#my-video video");e&&(e.style.backgroundColor="black")})),this.player.on("loadedmetadata",(()=>{const e=l["a"].state.video.currentVideo.url;if(!e||!/^http/gm.test(e))return;if(!/wait=0$/gm.test(e)||0===l["a"].state.setting.videoCacheTime)return;const t=this.updateCacheRate(l["a"].state.setting.videoCacheTime);console.log("loadedmetadata!",t),t&&(this.updateSrc(e,{clearSubtitle:!1,clearProgress:!1}),this.player.currentTime(l["a"].state.video.currentVideo.currentTime))})),this.player.on("leavepictureinpicture",(()=>{this.player&&this.player.bigPlayButton.hide(),l["a"].dispatch("updateVideoPIPStatus",!1),setTimeout((()=>{try{this.player.paused()?this.player.bigPlayButton.show():this.$router.push("/player")}catch(o){console.log("Failed to check pause status, but nothing will go wrong with this.",o.message||o)}}),500)})),this.player.on("enterpictureinpicture",(()=>{l["a"].dispatch("updateVideoPIPStatus",!0),this.player.paused()||setTimeout((()=>this.player.play()),500)})),this.player.on("timeupdate",(()=>{l["a"].dispatch("currentVideoCurrentTime",this.player.currentTime())})),this.player.on("error",(()=>{this.toggleSplash(!1),console.log("player error event!",this.player.error_.message);const e=this.player.languages()[this.player.language()],t=e&&e[this.player.error_.message]||this.player.error_.message;if(4!==this.player.error_.code||f||Object(g["a"])())this.$q.notify(t);else{const e='open_in_new',a=`${this.$t("download")} ${b} Desktop${e}`,n=`${a}`,o=this.$q.notify({html:!0,message:`${t}${n}`,actions:[{label:this.$t("close"),color:"green",handler(){o()}}],timeout:0})}l["a"].dispatch("resetPlayer"),this.$q.loading.hide(),this.loadPlayer(!0)})),l["a"].state.video.currentVideo.url&&!l["a"].state.video.currentVideo.remotePlay){this.player&&this.player.bigPlayButton.hide();const e=l["a"].state.video.currentVideo.subtitleList,t=l["a"].state.video.currentVideo.status,a=l["a"].state.video.currentVideo.updatePlayer;if(this.updateSrc(l["a"].state.video.currentVideo.url),this.player.currentTime(a?0:l["a"].state.video.currentVideo.currentTime),console.log("loadplayer(force) status",a,t,e,this.player),!a&&!t&&!/^https:\/\/localhost:8080\/webtorrent/gm.test(l["a"].state.video.currentVideo.url)){const e=()=>{this.player.pause(),this.player.off("play",e)};this.player.on("play",e)}"undefined"!==typeof e&&e.length?this.restoreSub(e):this.addSubtitle(l["a"].state.video.currentVideo.path),l["a"].dispatch("updatePlayer",!1)}return h["b"].is.mobile?this.player.bigPlayButton.on("touchend",this.bigPlayBtnOpenFile):this.player.bigPlayButton.on("click",this.bigPlayBtnOpenFile),this.addControlBarComponent(),l["a"].dispatch("updateVideoPIPStatus",!1),a}this.player=n["default"].getPlayer("my-video")},async updatePlayer(e){if(!e)return;this.player||await this.loadPlayer(!0);const t="string"===typeof e?e:URL.createObjectURL(e);console.log("update Player",e,t),this.fileName=e.name,l["a"].dispatch("currentVideoUrl",t);try{this.updateSrc(t)}catch(a){console.debug("updateSrc error",a.message||a),await this.loadPlayer(!0)}l["a"].dispatch("resetInfoHash"),this.clearOldSubtitle(),l["a"].state.video.currentVideo.path?await this.addSubtitle(l["a"].state.video.currentVideo.path):await this.addSubtitle(e,e.name),this.changeSubtitleForLang()},updateSrc(e,t={clearSubtitle:!0,clearProgress:!0}){this.toggleAudio(!1),t.clearProgress&&this.clearProgress(),t.clearSubtitle&&l["a"].dispatch("currentVideoSubtitleList",[]),e.startsWith("play://")&&(e+=`?infoHash=${l["a"].state.video.currentVideo.infoHash}`),console.log("updateSrc()",e),this.player.src([{src:e,type:"video/mp4"}])},updateCacheRate(e){if(!this.player.duration())return;const t=60*e/this.player.duration(),a=l["a"].state.video.currentVideo.url;return!!a&&(l["a"].dispatch("currentVideoUrl",a.replace(/wait=.*/gm,`wait=${t}`)),!0)},updateProgress(e){if(e){let t=document.querySelector("#download-progress");if(!t){const e=document.querySelector(".vjs-progress-holder");if(!e)return;t=e.appendChild(document.createElement("div")),t.id="download-progress"}const a=e=>{let t=0;for(let a=0;a1?t+e[a].length:t+1,e[a].rate=t;return e},n=a(e);t.style.background=n.reduce(((e,t)=>e+`, ${t.color} 0%, ${t.color} ${t.rate}%`),"linear-gradient(90deg")+")"}},clearProgress(){let e=document.querySelector("#download-progress");if(!e){const t=document.querySelector(".vjs-progress-holder");if(!t)return;e=t.appendChild(document.createElement("div")),e.id="download-progress"}e.style.background=""},async addSubtitle(e,t){var a;console.log("sub",e,t);let n=e;if("string"===typeof e){if(e.startsWith("blob:"))return;n=e.startsWith("play://")?Object(i["a"])(decodeURI(e.replace("play:///",""))):Object(i["a"])(e)}t||(t=(null===(a=n)||void 0===a?void 0:a.name)||"");const r=t.match(/\.[^.]+$/);if(!r)return;const s=r[0].toLowerCase();console.log("addSubtitle sub",n,t);let l=!1,c=!1;if(f)[".ass"].includes(s)?console.log("add .ass sub"):await Promise.all(Object(o["a"])(n).map((e=>new Promise((a=>{setTimeout((()=>{c=this.isRepeatSubtitle(e.label,e.path),"number"!==typeof c&&(this.player.addRemoteTextTrack({kind:"captions",label:e.label||t,src:e.src},!0),this.updateSubtitleList(e.label||t,{path:e.path}),l=!0),a()}))})))));else{if(console.log("web addSubtitle"),![".srt",".vtt"].includes(s))return;c=this.isRepeatSubtitle(t),"number"!==typeof c&&await new Promise((e=>{const a=new FileReader;a.readAsText(n),a.onload=a=>{const n=".vtt"===s?a.target.result:Object(o["b"])(a.target.result);console.log(a.target.result),this.player.addRemoteTextTrack({src:URL.createObjectURL(new Blob([n])),kind:"captions",label:t},!0),this.updateSubtitleList(t),l=!0,e()}}))}if(l&&this.subsBtn){this.subsBtn.addClass("hidden"),this.listenSubsCapsMenuItem();const e=this.player.textTracks();e&&e[0]&&(e[0].mode="showing",this.updateSubtitleList(e[0].label,{isShow:!0})),this.appendAddSubBtn()}return c},isRepeatSubtitle(e,t){const a=l["a"].state.video.currentVideo.subtitleList;let n=!1;for(let o=0;o{a[o].label===e&&(n=o),a[o].isShow=!1})),"number"===typeof t.index?a[t.index].isShow=!0:-1!==n&&(a[n].isShow=!0)}else a.push({label:e,path:t.path,isShow:t.isShow});l["a"].dispatch("currentVideoSubtitleList",a)},listenSubsCapsMenuItem(){const e=this.player.controlBar.subsCapsButton,t=e.menu.children();t.forEach(((e,t)=>{if("SubsCapsMenuItem"===e.constructor.name){const a=h["b"].is.mobile?"touchend":"click";e.on(a,(()=>{this.updateSubtitleList(e.track.label,{index:t-2,isShow:!0})}))}}))},clearOldSubtitle(){if(!this.subsBtn)return;this.subsBtn.removeClass("hidden");const e=this.player.remoteTextTracks();for(let t=e.length-1;t>=0;t--)this.player.removeRemoteTextTrack(e[t])},async restoreSub(e){let t;console.log("restoreSub",e),l["a"].dispatch("currentVideoSubtitleList",[]);for(const a in e){if(!e[a].path)return;await this.addSubtitle(e[a].path),e[a].isShow&&(t=a)}if("string"===typeof t){const e=this.player.textTracks();for(let t=0;t{const t=this.player.controlBar.subsCapsButton,a=t.menu.children();if(!a)return;if(a.some((e=>"AddSubButton"===e.name_)))return;const n=t.menu.addChild("AddSubButton",{text:e.$t("add_subtitles")+"..."},2);n.addClass("add-sub-btn");const o=h["b"].is.mobile?"touchend":"click";n.on(o,(()=>{this.$refs.subtitle.click()}))}),1e3)}}}}).call(this,a("28d0"))},"571b":function(e,t,a){},"586d":function(e,t,a){"use strict";a.r(t),a.d(t,"onGeneralUpdate",(function(){return n})),a.d(t,"onMessage",(function(){return o})),a.d(t,"onUpdateUserFromId",(function(){return i})),a.d(t,"onCreditChange",(function(){return r})),a.d(t,"onUpdateExpensesFromId",(function(){return s})),a.d(t,"onUpdateIncomeFromId",(function(){return l})),a.d(t,"onCreateUser",(function(){return c})),a.d(t,"onUpdateUser",(function(){return d})),a.d(t,"onDeleteUser",(function(){return u})),a.d(t,"onCreateInvitation",(function(){return _})),a.d(t,"onUpdateInvitation",(function(){return p})),a.d(t,"onDeleteInvitation",(function(){return m})),a.d(t,"onCreateMessageTimer",(function(){return h})),a.d(t,"onUpdateMessageTimer",(function(){return g})),a.d(t,"onDeleteMessageTimer",(function(){return f})),a.d(t,"onCreateTransaction",(function(){return b})),a.d(t,"onUpdateTransaction",(function(){return y})),a.d(t,"onDeleteTransaction",(function(){return v})),a.d(t,"onCreateTask",(function(){return w})),a.d(t,"onUpdateTask",(function(){return k})),a.d(t,"onDeleteTask",(function(){return S})),a.d(t,"onCreateProvidentFund",(function(){return C})),a.d(t,"onUpdateProvidentFund",(function(){return x})),a.d(t,"onDeleteProvidentFund",(function(){return $}));const n="\n subscription OnGeneralUpdate($id: String!) {\n onGeneralUpdate(id: $id) {\n id\n channel\n data\n }\n }\n",o="\n subscription OnMessage($channel: String!, $params: String) {\n onMessage(channel: $channel, params: $params) {\n channel\n data\n }\n }\n",i="\n subscription OnUpdateUserFromId($id: String!) {\n onUpdateUserFromId(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",r="\n subscription OnCreditChange($ownerId: String!) {\n onCreditChange(ownerId: $ownerId) {\n ownerId\n amount\n }\n }\n",s="\n subscription OnUpdateExpensesFromId($payerId: String!) {\n onUpdateExpensesFromId(payerId: $payerId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",l="\n subscription OnUpdateIncomeFromId($payeeId: String!) {\n onUpdateIncomeFromId(payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",c="\n subscription OnCreateUser($id: String) {\n onCreateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",d="\n subscription OnUpdateUser($id: String) {\n onUpdateUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",u="\n subscription OnDeleteUser($id: String) {\n onDeleteUser(id: $id) {\n id\n credit\n username\n createdAt\n updatedAt\n }\n }\n",_="\n subscription OnCreateInvitation($inviterId: String) {\n onCreateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",p="\n subscription OnUpdateInvitation($inviterId: String) {\n onUpdateInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",m="\n subscription OnDeleteInvitation($inviterId: String) {\n onDeleteInvitation(inviterId: $inviterId) {\n id\n inviterId\n inviteeId\n status\n email\n phone\n createdAt\n updatedAt\n }\n }\n",h="\n subscription OnCreateMessageTimer {\n onCreateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",g="\n subscription OnUpdateMessageTimer {\n onUpdateMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",f="\n subscription OnDeleteMessageTimer {\n onDeleteMessageTimer {\n id\n times\n updatedAt\n createdAt\n }\n }\n",b="\n subscription OnCreateTransaction($payerId: String, $payeeId: String) {\n onCreateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",y="\n subscription OnUpdateTransaction($payerId: String, $payeeId: String) {\n onUpdateTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",v="\n subscription OnDeleteTransaction($payerId: String, $payeeId: String) {\n onDeleteTransaction(payerId: $payerId, payeeId: $payeeId) {\n id\n payerId\n payeeId\n amount\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",w="\n subscription OnCreateTask {\n onCreateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",k="\n subscription OnUpdateTask {\n onUpdateTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",S="\n subscription OnDeleteTask {\n onDeleteTask {\n id\n member\n status\n category\n createdAt\n meta\n updatedAt\n }\n }\n",C="\n subscription OnCreateProvidentFund($id: String) {\n onCreateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",x="\n subscription OnUpdateProvidentFund($id: String) {\n onUpdateProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n",$="\n subscription OnDeleteProvidentFund($id: String) {\n onDeleteProvidentFund(id: $id) {\n id\n amount\n updatedAt\n createdAt\n }\n }\n"},5960:function(e,t,a){},5984:function(e,t,a){},"5a2f":function(e,t,a){"use strict";a("7447")},"5ab7":function(e,t,a){"use strict";a("3361")},"5bb9":function(e,t,a){"use strict";a("cf6e")},"5ccc":function(e,t,a){},"5d03":function(e,t,a){},"5d61":function(e){e.exports=JSON.parse('{"lib_index":"Дом","lib_edit":"Публиковать","lib_publish":"Публиковать","lib_explore":"Исследовать","lib_following":"Следующий","lib_favorite":"Местные избранные","lib_local_favorites":"Местные избранные","lib_channel":"Канал","lib_submit":"Представлять на рассмотрение","lib_from_network":"Использование децентрализованной базы данных из сети","welcome_to_lib":"Добро пожаловать в ${displayName} Медиатеку","register_or_login":"Регистрация Войти","lib_recommend":"Рекомендовать","lib_recommend_desc":"Добро пожаловать в библиотеку ${displayName}! Эта библиотека использует децентрализованную базу данных из сети. Чтобы начать использовать его, вам нужно следить за некоторыми каналами.","follow_any_channel_to_continue":"Подпишитесь на любой канал, чтобы продолжить","follow_channels_and_continue":"Следите за каналами {0} и продолжайте","show_more_for_me":"Показать больше для меня","no_more_recommend":"Больше не рекомендую","key":"Ключ","create_key":"Создать ключ","save_key":"Сохранить ключ","save_key_file":"Вы хотите сохранить свой ключ в виде файла?","import_key":"Ключ импорта","import":"Импортировать","invalid_key":"Неправильный ключ","back_to_top":"Наверх","search_for_channel":"Поиск идентификатора канала","search_channel_no_result":"Не удается найти канал с идентификатором {0}","please_input_channel_id":"Пожалуйста, введите идентификатор канала","welcome_help_text":"Это децентрализованная медиатека. Тебе нужно\\n создать учетную запись для этой базы данных. Мы будем\\n автоматически сгенерирует для вас персональный ключ.\\n Если у вас уже есть ключ, вы также можете импортировать\\n это здесь.","welcome_key_text":"После входа в систему нажмите кнопку [СОХРАНИТЬ КЛЮЧ].\\n в правом нижнем углу, чтобы сохранить закрытый ключ.\\n Если вы потеряете свой ключ, вы не сможете снова войти в систему.","redirect_to_recommend":"Кажется, вы не следили за каким-либо каналом. Перенаправление на страницу [Обзор].","channel":"Канал","follow":"Следовать","unfollow":"Отписаться","following":"Следующий","share":"Делиться","unfollow_confirm":"Вы уверены, что хотите отписаться от этого канала? Все сообщения этого канала в вашей хронике будут удалены.","follow_failed_hint":"Операция все еще выполняется в фоновом режиме. Если операция не применяется в течение длительного времени, перезапустите приложение и повторите попытку.","block":"Блокировать","unblock":"Разблокировать","blocked":"Заблокировано","block_channel":"Заблокировать этот канал","block_channel_confirm":"Заблокировать канал удалит его из вашей временной шкалы. Вы можете управлять своим черным списком в настройках учетной записи.","block_creator":"Заблокировать создателя этого канала","unblock_creator":"Разблокировать создателя этого канала","block_creator_confirm":"Создатель блока удалит все каналы, созданные этим создателем, из вашей хроники. Вы можете управлять своим черным списком в настройках учетной записи.","share_url_copied":"URL-адрес общего доступа скопирован в буфер обмена","follow_time":"Следите за временем","update_time":"Время обновления","search":"Поиск","type":"Тип","added":"Добавлен","click_to_task":"Нажмите, чтобы перейти к задаче","lib_already_added":"Вы уже добавили это видео","description":"Описание","poster":"Плакат","channel_poster":"Афиша канала","preview":"Предварительный просмотр","creator":"Создатель","creator_detail":"Сведения о создателе","loading_creator":"Загрузка информации о создателе","wait_for_creator_loaded":"Подождите, пока загрузится информация о создателе.","follower":"Последователь","followers":"Последователи","follower_list":"Список подписчиков","user":"Пользователь","channel_title":"Название канала","channel_id":"Идентификатор канала","post_title":"Заголовок поста","post_id":"Идентификатор сообщения","import_data_from_excel":"Импортировать данные из excel","set_excel_keys":"Установить клавиши Excel","excel_import_succeded":"Импорт Excel выполнен успешно","excel_import_success_msg":"Строки {0} готовы к добавлению, {1} недействительны, а повторяющиеся элементы {2} игнорируются.","cannot_find_channel":"Не могу найти канал","cannot_find_posts":"Не могу найти сообщения","add_channel":"Добавить канал","add_post":"Добавить сообщение","edit_channel":"Изменить канал","channel_setting":"Настройка канала","edit_post":"Редактировать пост","edit_posts":"Редактировать сообщения","channel_detail":"Сведения о канале","remove":"Удалять","remove_channel":"Удалить канал","remove_channel_confirm":"Вы уверены, что хотите удалить этот пост? Это не может быть восстановлено.","remove_post":"Удалить сообщение","remove_post_confirm":"Вы уверены, что хотите удалить этот канал? Это не может быть восстановлено.","preview_mode":"Режим предварительного просмотра","preview_mode_desc":"Это предварительный просмотр вашего канала. Здесь показаны все рейтинги фильмов.","edit_user_profile":"Изменить профиль пользователя","name":"Псевдоним","avatar":"Аватар","no_following":"Нет следующих каналов. Нажмите, чтобы перейти","no_recommend":"Нет рекомендуемых каналов. Нажмите, чтобы перейти","first_recomment_msg":"Это может занять некоторое время, если это первое приложение, которое запускается.","invalid_image":"Недопустимое изображение","image_not_reachable":"URL этого изображения недоступен.","channel_not_found":"Канал не найден","cannot_get_channel_info":"Не могу получить информацию о канале. Этот канал может быть удален его создателем и больше недоступен.","validate_error":"Подтвердить ошибку","validate_user_name_no_space":"Имя пользователя не должно содержать пробелов","validate_url_no_space":"URL не должен содержать пробелов","validate_user_name_length":"Имя пользователя должно иметь длину от {0} до {1}.","validate_user_desc_length":"Описание пользователя не должно превышать {0} символов.","validate_user_avatar_url":"Аватар пользователя должен быть URL длиной менее 2048 символов.","validate_channel_title_length":"Название канала должно иметь длину от 1 до 100.","validate_channel_desc_length":"Описание канала должно иметь длину от 10 до 300","validate_channel_image_url":"URL-адрес предварительного просмотра канала должен содержать менее 2048 символов.","validate_post_title_length":"Заголовок сообщения должен иметь длину от 1 до 100.","validate_post_desc_length":"Описание поста должно иметь длину от 10 до 300","validate_post_image_url":"Плакат должен быть URL-адресом, содержащим менее 2048 символов.","validate_post_url":"Недействительный URL-адрес ${displayName}","validate_post_url_length":"${displayName} Длина URL не должна превышать 2048 символов.","film_rate":"Скорость фильма","set_film_rate":"Установить скорость фильма","select_a_rate_before_enter":"Перед входом в медиатеку необходимо выбрать скорость фильма.","library_available_rate":"Доступная в библиотеке скорость фильма","rate_g":"G – обычная аудитория","rate_g_desc":"Допускаются все возрасты. Ничего, что могло бы обидеть родителей за просмотр детьми.","rate_pg":"PG – рекомендуется родительский контроль","rate_pg_desc":"Некоторые материалы могут не подходить для детей. Родителей призвали дать «родительское руководство». Может содержать некоторые материалы, которые родителям могут не понравиться для их маленьких детей.","rate_pg_13":"PG-13 – Родители строго предупреждены","rate_pg_13_desc":"Некоторые материалы могут быть неприемлемы для детей младше 13 лет. Родителям настоятельно рекомендуется быть осторожными. Некоторые материалы могут быть неподходящими для подростков.","rate_r":"R - Ограничено","rate_r_desc":"До 17 лет требуется сопровождающий родитель или взрослый опекун. Содержит материалы для взрослых. Родителям настоятельно рекомендуется узнать больше о фильме, прежде чем брать с собой маленьких детей.","rate_nc_17":"NC-17 – Только для взрослых","rate_nc_17_desc":"Никто в возрасте 17 лет и младше не допускается. Явно взрослый. Дети не допускаются.","set_as_private":"Установить как личное","hide_in_explore":"Скрыть этот канал на странице исследования","hidden":"Скрытый","select_a_rate":"Пожалуйста, выберите рейтинг фильма","select_from_tasks":"Выбрать из задач","import_from_magnet":"Импорт из магнита:?...","input_magnet_url":"Входной магнит:? URL","task_title":"Название задачи","set_title":"Установить заголовок","add_to_local_favorites":"Добавить в избранное","remove_from_local_favorites":"Удалить из местных избранных","removed_favorite":"Удалено из избранного","import_or_export_favorites":"Импорт/экспорт избранного","export_local_favorites":"Экспорт локального избранного в качестве резервной копии","import_favorites_file":"Импорт файла избранного","not_a_favorite_file":"Этот файл не является любимым файлом резервной копии","connection_status":"Состояние подключения","gun_server_list":"Узлы кэша","custom_nodes":"Пользовательские узлы кэша","custom_nodes_hint":"Пользовательские узлы кэша будут применены после перезапуска приложения.","wait_for_reboot":"Ожидание перезагрузки...({seconds}s)","reboot_now":"Перезагрузить сейчас","reboot_later":"Перезагрузить позже","peer_list":"Прямые узлы","server":"URL-адрес узла","peer":"Вглядеться","peer_id":"Идентификатор узла","connection":"Связь","data_source":"Источник данных","sync":"Синхронизировать","syncing":"Синхронизации","sync_completed":"Синхронизация завершена","got_all_post":"Вы уже получили все сообщения","placeholder_channel_title":"Название вашего канала","placeholder_channel_desc":"Описание этого канала","placeholder_post_title":"Название фильма (год)","placeholder_post_desc":"Описание этого фильма","private_channel":"Частный канал","creator_blocked":"Создатель заблокирован","go_to_library":"Идти в библиотеку?","go_to_library_channel_msg":"Хотите перейти на библиотечный канал {0}?","magnet_does_not_have_name":"Этот магнит:? URL-адрес не имеет имени, вам нужно сначала добавить заголовок сообщения.","no_available_post":"Нет доступной записи","following_channel_no_post":"На всех ваших следующих каналах нет доступных сообщений. Это может быть вызвано сетевой ошибкой. Если вы уже подписались на некоторые каналы, сообщения могут быть загружены позже.","share_to_library":"Поделиться в библиотеке","quick_start":"Быстрый старт","quick_start_desc":"Начните создавать пост с заданием или файлом","select_file":"Выберите файл...","select_folder":"Выберите папку...","post_options":"Параметры публикации","channel_options":"Параметры канала","create_new_channel":"Создать новый канал","use_existed_channel":"Использовать существующий канал","select_existed_channel":"Выберите существующий канал","uploaded_by":"{title} загружено пользователем {name}","created_by":"{title} создано {name}","creating_new_channel":"Создание нового канала...","created_new_channel":"Создан новый канал","creating_new_post":"Создание нового поста...","created_new_post":"Создан новый пост","create_new_post":"Создать новый пост","quick_start_timeout":"{0} тайм-аут. Это может быть вызвано сетевой ошибкой. Пожалуйста, повторите попытку позже.","file_too_large":"Файл слишком большой","file_too_large_msg":"Размер этого файла превышает 4 ГБ ({size}), и его подготовка может занять много времени. Вы уверены, что хотите продолжить?","resolving_folder_files":"Разрешение файлов папки...","folder_too_large":"Папка слишком большая","folder_too_large_msg":"Размер файлов в этой папке превышает 4 ГБ (всего {size}), поэтому подготовка задачи может занять много времени. Вы уверены, что загрузите?","creating_new_task":"Создание новой задачи...","cannot_create_task":"Не могу создать задачу","cannot_create_task_msg":"Это может быть вызвано некоторой ошибкой. Если задача создана правильно, вы можете проверить список задач позже.","cannot_get_task_name":"Не удается получить имя задачи. Сначала вам нужно ввести один.","remove_old_task":"Удалить старую задачу","remove_old_task_desc":"В веб-режиме можно создать только одну задачу за раз. Удалить старую задачу?","subtitle_list":"Список субтитров","optional":"необязательный","with_subtitle":"С субтитрами {language}","maximumSubtitleNum_limit":"Количество субтитров достигло своего максимума","add_subtitle_url":"Добавьте ссылку на скачивание субтитров","cannot_add_subtitle":"Не удалось добавить субтитры","cannot_add_subtitle_msg":"Не выбран язык субтитров или недействительная ссылка для скачивания.","support_subtitle_type":"Поддерживаются только субтитры в формате srt и vtt.","recommend_opensubtitles":"Рекомендуется использовать ссылку или идентификатор загрузки субтитров на www.opensubtitles.org.","take_down":"Снять","serious_violation":"Серьезное нарушение","copyright_disputes":"Споры об авторских правах","adults_only":"Только для взрослых","takedown_reason":"Причина удаления","takedown_mode":"Режим тейкдауна","admins":"Админы","takedown_user":"Удалить этого автора","takedown_channel":"Удалить этот канал","takedown_post":"Удалить этот пост","select_takedown_reason":"Выберите причину удаления","takedown_invalid_reason":"Неверная причина удаления","takedown_invalid_user_id":"Недопустимый идентификатор пользователя. Идентификатор должен содержать 87 символов.","takedown_invalid_channel_id":"Недопустимый идентификатор канала. ID должен содержать 20 символов.","takedown_invalid_post_id":"Неверный идентификатор сообщения. ID должен содержать 20 символов.","takedown_management":"Снять управление","users":"Пользователи","channels":"каналы","posts":"Сообщения","you":"Ты","preset":"Предустановка","admin":"Администратор","committee":"комитет","about_takedown_mode":"О режиме удаления:\\nПредустановка: настроена в репозитории github. Все они будут удалены из библиотеки.\\nАдминистратор: Любой из админов, за которого проголосовали, будет удален.\\nКомитет: Не менее половины админов проголосовали за удаление.","cannot_edit_preset":"Вы не можете редактировать эту строку, так как это предустановленная строка.","cannot_edit_not_vote":"Вы не можете редактировать эту строку, так как вы не проголосовали за нее","remove_vote":"Удалить свой голос","post_preload_failed":"Не удалось предварительно загрузить это сообщение. Ссылка для скачивания может быть устаревшей, поэтому этот пост нельзя воспроизвести сразу.","about_cache_node":"Об узле кеша","edit_cache_node":"Изменить узел кеша","create_cache_node":"Создать кеш-узел","about_cache_node_desc":"${displayName} использует пушечный сервер в качестве кеш-узла. Вы можете редактировать пользовательские узлы в предварительной настройке","learn_how_to_deploy_gun":"Узнайте, как развернуть собственный оружейный сервер","repeat_add":"Задача добавлена, больше не добавляйте","upload":"Загрузить","download":"Скачать","delete":"Удалить","delete_task":"Удалить задачу","delete_confirm_message":"Удалить эту задачу? Это необратимо","also_delete_files":"Также удалить файлы","default_delete_files":"Удаление загруженных файлов по умолчанию после удаления задачи","not_now":"Не сейчас","delete_autoupload_confirm":"Эта задача содержит файл, который вы поместили в каталог автозагрузки. Удаление этой задачи также приведет к удалению файла.","delete_anyway":"Все равно удалить","upload_too_many_files":"Загрузить слишком много файлов","ask_if_unlimit_upload_amount":"Каталог автозагрузки содержит слишком много файлов. Вы хотите отключить ограничение суммы загрузки? * Это может вызвать проблемы с производительностью","disable_limitation":"Отключить ограничение","not_length":"Работа с несколькими файлами в настоящее время не поддерживается. Пожалуйста, сотрудничайте","download_torrent":"Загрузить файл","upload_torrent":"Загрузить файл","files":"Файлы","file":"Файл","folder":"Папка","start_all":"Начать все","pause_all":"Приостановить все","remove_all":"Убрать все","upload_all":"Загрузить все","clear_history":"Чистая история","pause_all_finish_payments":"На этом все платежи закончатся.","accelerating":"Ускорение","link_task":"Связать задачу","torrent_task":"Файловая задача","ok":"ХОРОШО","cancel":"Отмена","download_directory_position":"Загрузить положение каталога","torrent_file":"файл задачи","magnetic_link_incorrect":"Неверный формат ссылки","delete_fail":"Удалить не удалось","pause":"Пауза","paused":"Приостановлено","stop_torrent":"Останавливаться","seed":"Семя","resume":"Резюме","downloading":"Загрузка","downloaded":"Скачано","uploading":"Загрузка","auto_uploading":"Автоматическая загрузка","uploaded":"Загружено","pending":"Жду других задач","verifying":"Проверка","waiting_for_verify":"Ожидание проверки","seeding":"Посев","completed":"Завершенный","status":"Положение дел","task_name":"Название задачи","size":"Размер","progress":"Прогресс","sort":"Сортировать","ascending":"Восходящий","descending":"По убыванию","file_loading":"Загрузка файла...","loading":"Загрузка","unknown_status":"Неизвестный","play_while_downloading":"Играть...","upload_or_play":"Загрузить / Воспроизвести","play":"Играть","ask_if_upload_file":"Загрузить файл?","ask_if_upload_or_play":"Загрузить или воспроизвести файл?","torrent_error":"Ошибка при добавлении задачи:","no_peers":"Повторите попытку более {0} раз, и нет доступных одноранговых узлов","torrent_exists":"Задача уже существует.","show_origin_torrent":"Получить исходный файл задачи или URL-адрес","show_directory":"Открыть каталог этого торрента","task_num":"Задания","total_upload_speed":"Скорость загрузки","total_download_speed":"Скорость загрузки","path_missing":"Ошибка: не удается найти торрент-путь","origin_not_found":"Не удается найти информацию об исходной задаче.","text_copied":"URL Magnum скопирован в буфер обмена","copy_magnet_uri":"Копировать магнит:? URI","copy_download_uri":"Скопировать URI загрузки","copy_share_uri":"Скопировать общий URI","uri_copied":"URI успешно скопирован в буфер обмена","uri_copy_failed":"Не удалось скопировать uri","more":"Более...","toggle_list_mode":"Переключить режим списка","comment":"комментарий","operations":"Операции","open_directory":"Открыть каталог","no_downloading_task":"Нет задачи загрузки","remove_all_downloading_tasks":"Удалить все задачи загрузки?","remove_all_upload_tasks":"Удалить все задачи загрузки?","remove_autoupload_files":"Убрать автозагрузку файлов","remove_all_history":"Удалить всю историю?","remaining":"Оставшийся","created_time":"Время создания","used_time":"Использованное время","completed_time":"Завершенное время","yesterday":"Вчера","before_yesterday":"{empty}","earlier":"Ранее","miss_file":"Некоторые файлы отсутствуют","delete_miss_file_task":"Отсутствуют файлы fome в {0}.","common_peer":"Общий пир","ab_peer":"${displayName} коллега","ab_peer_verified":"Подтвержденный партнер ${displayName}","ab_peer_available":"${displayName} доступный пир(ы)","alphabiz_accelerating":"${displayName} ускорение","income":"Доход","income_info":"Доход(сегодня/всего)","total_income_info":"Доход: {0}(сегодня) / {1}(всего)","login_to_see_income":"Войдите, чтобы увидеть статистику доходов","credit_cost":"Стоимость кредита","downloaded_by_payment":"Скачано платежами","file_not_found":"Не удается найти этот файл в локальной","no_task":"Не спрашивай","no_matched_task":"Нет подходящей задачи","space_not_enough":"Недостаточно места на диске","need_more_space":"Требуется больше места на {0}, но на текущем диске свободно {1} (зарезервировано {2}). Задачи приостановлены. Предварительная загрузка библиотеки отключена. Вы можете снова включить его в [Настройки - Дополнительные].","seeders":"Сеялки","last_update":"Последнее обновление","connecting":"Подключение","connected":"Связанный","request_timed_out":"Истекло время запроса","connection_failed":"Ошибка подключения","invalid_download_url":"Неверный URL-адрес загрузки","download_link":"ссылка для скачивания","empty_files":"Нет файлов в каталоге","duplicate_task":"Дублировать задачу","duplicate_tracker":"Дублирующий трекер","this_task_not_ready":"Эта задача не готова. Приостановка этой задачи приведет к ее непосредственному удалению.","some_task_not_ready":"Некоторые задачи не готовы. Приостановка этих задач приведет к их непосредственному удалению.","failed_to_delete_files":"Не удалось удалить файлы","failed_to_delete_files_desc":"Не удалось удалить некоторые файлы задания. Возможно, вам придется удалить их вручную","unknown_error":"Неизвестная ошибка: {0}","more_files_are_not_shown":"({0} дополнительные файлы не отображаются из соображений производительности)","no_available_file":"Нет доступного файла. Пожалуйста, дождитесь готовности задачи.","service_worker_error":"Не удается загрузить ServiceWorker для игры. Возможно, ваш браузер не поддерживает эту функцию, или ServiceWorker не активирован. Возможно, вам придется перезагрузить эту страницу и повторить попытку.","add_task_first":"Сначала нужно добавить задачу.","player_task_time":"Игрок слишком долго готовится к игре. Возможно, что-то не так с заданием.","web_mode_hint":"Веб-режим ${displayName} поддерживает только одноранговые узлы WebRTC. Для получения наилучших результатов загрузите настольное приложение ${displayName}.","web_mode_task_hint":"Нажмите кнопки ниже, чтобы добавить задачу. Вы можете добавить только одну задачу за один раз.","save_to_local":"Сохранить в локальном","save_as_zip":"Сохранить как ZIP","creating_save_file":"Создание файла сохранения...","upload_as_one_directory":"Загрузить как один каталог","upload_as_single_files":"Загружать отдельными файлами","web_mode_upload_single":"Вы можете загрузить только один файл в веб-режиме","download_success":"Скачать успешно","download_fail":"Загрузка не удалась","wait_for_downloaded_to_share":"Пожалуйста, дождитесь загрузки задания, прежде чем делиться им.","download_with_cellular":"Скачивайте задания с помощью сотовой связи","download_with_cellular_desc":"Вы используете сотовую сеть. Загрузка задач с помощью сотовой связи может взимать дополнительную плату с вашего оператора связи.","download_with_cellular_confirm":"Еще скачать с сотовой связи","language":"Язык","appearance":"Появление","darkModeSystem":"Система","darkModeLight":"Свет","darkModeDark":"Темный","basic_setting":"Базовый","hideMenu":"Скрыть меню приложений (только для Windows и Linux)","autoHide":"Автоматическое скрытие окна","autoStart":"Открыть при входе","restore":"Сохранять размер и положение окна при выходе","autoStartUnfinished":"Автоматически возобновлять все незавершенные задачи","default_download_path":"Путь по умолчанию","download_directory":"Скачать каталог","upload_directory":"Загрузить каталог","enable_auto_upload":"Включить автоматическую загрузку","unlimit_upload_amount":"Неограниченная сумма загрузки","unlimit_upload_warning":"Разрешить загружать большое количество файлов. Это может вызвать проблемы с производительностью","start":"Запускать","transport_setting":"Передача инфекции","upload_limit":"Лимит загрузки","download_limit":"Лимит загрузки","payed_user_share_rate":"Доля оплаченных пользователей","unlimited":"Неограниченный","limit_input_error":"Число лимита должно быть положительным","BT_setting":"Параметры задачи","saveLinkSeed":"Сохранить ссылку как файл задачи","autoDownload":"Автоматически загружать ссылку и контент","continuousSeeding":"Продолжайте заполнение, пока не остановите его вручную","seedSharingRate":"Соотношение семян","seedTime":"Начальное время (минуты)","task_manage":"Управление задачами","maximumDownloadNum":"Максимальное количество активных задач","maximumConnectionsNum":"Максимальное количество подключений на сервер","range_error":"Диапазон должен быть между {0} и {1}.","random":"случайный","breakpointContinuation":"Продолжать","automaticSkip":"Автоматически показывать загрузку после добавления задачи","afterNotification":"Уведомление после завершения загрузки","deleteConfirm":"Перед удалением задачи не требуется подтверждение","submit":"Сохранить и применить","discard":"Отказаться","reset":"Перезагрузить","reset_all_settings":"Сбросить все настройки?","preferences_resetted":"Настройки сброшены","traditional_chinese":"традиционный китайский","japanese":"Японский","english":"Английский","chinese":"Упрощенный китайский","advancedSettings":"Передовой","autoUpdate":"Автоматическое обновление","autoCheckUpdate":"Автоматически проверять наличие обновлений","proxy":"Прокси","useProxyService":"Включить прокси","trackerService":"Трекерные серверы","recommendUse":"рекомендуемые","autoUpdateTrackerServiceList":"Автоматически обновлять список трекеров каждый день","manualUpdateTracker":"Ручное обновление","manualUpdateSuccess":"Успешно обновить серверы отслеживания","manualUpdateFail":"Не удалось обновить с:","listenPort":"Прослушивание портов","BTlistenPort":"Порт передачи данных","DHTlistenPort":"Распределенный хэш-порт","protocols":"Совместимые протоколы","setDefaultClientForFollowingProtocols":"Установить в качестве клиента по умолчанию для следующих протоколов","magnetUrl":"Магнит","video_file":"Видеофайл","audio_file":"Аудиофайл","security":"Безопасность","impersonateUserAgent":"Имитация пользовательского агента","RPCauthorizationkey":"Секрет RPC","viewDocument":"Посмотреть секретное руководство RPC","developer":"Разработчик","applicationLogPath":"Путь к журналу приложения","downloadSessionPath":"Скачать путь сеанса","resetDownloadSessionRecord":"Сбросить сеанс загрузки","restoreInitialSettings":"Сброс к заводским настройкам","preferences_set_successfully":"Сохраните настройки успешно!","preferences_set_fail":"Не удалось сохранить настройки!","change_not_save":"Изменения не сохраняются","discard_all_changes":"Отменить все изменения и уйти?","stay_in_page":"Оставайтесь на странице","disk_usage":"Использование диска","pause_if_less_space":"Пауза и уведомление, если места меньше (МБ)","default_video_player":"Видеопроигрыватель по умолчанию","video_cache_time":"Кэш потокового воспроизведения","minutes":"минуты","system_default":"Системные установки по умолчанию","media_player":"Медиа плеер","library_film_rate":"Доступная скорость фильма","library_show_explore":"Показать страницу [Исследовать]","library_setting":"Настройка библиотеки","library_sync_setting":"Настройка синхронизации библиотеки","keychain_sync_status":"Статус синхронизации связки ключей","sync_with_aws":"Синхронизируйте связку ключей с Amazon Web Services","backup_to_local":"Резервное копирование в локальный файл","enable_sync_with_aws":"Включить синхронизацию с AWS","disable_sync_with_aws":"Отключить синхронизацию с AWS","disable_sync_with_aws_desc":"Это удалит сохраненный ключ на сервере. Пожалуйста, убедитесь, что вы уже экспортировали свой ключ.","input_independent_password":"Введите независимый пароль","change_independent_password":"Изменить независимый пароль","password_error":"Ошибка пароля","password_invalid":"Неверный пароль","key_existed":"Ключ существовал","key_not_found":"Ключ не найден","library_recommend":"Библиотека рекомендует","show_all_channels":"Показать все каналы на странице рекомендаций библиотеки","not_logged_in":"Не вошел","login_to_continue":"Войдите, чтобы продолжить","mnemonic_code":"Мнемонический код","wordlist":"Список слов","restore_code":"Восстановить из кода","generate_code":"Сгенерировать код","export_mnemonic_code":"Экспорт мнемонического кода","import_mnemonic_code":"Импорт мнемонического кода","print":"Распечатать","save_as_txt":"Сохранить как текст","save_as_pdf":"Сохранить как PDF","from_file":"Из файла","not_valid_mnemonic_code":"Это неверный мнемонический код.","cannot_parse_code_as_key":"Не удается разобрать этот мнемонический код как библиотечный ключ","import_key_hint":"Вы уверены, что хотите импортировать этот ключ? Это восстановит ваш старый ключ в библиотеке.","import_key_confirm":"Да, импортировать.","library_preload":"Предварительно загрузить задачи из библиотеки","show_preload":"Показать задачи предварительной загрузки","set_download":"Установить каталог загрузки","set_download_desc":"Для версии App Store для macOS каталог загрузки по умолчанию находится в песочнице приложения и будет удален после удаления приложения. Если вы хотите сохранить загруженные файлы, вам нужно выбрать другой каталог загрузки вручную.","home":"Дом","home_caption":"Загрузка/выгрузка и медиафайлы","library":"Библиотека","library_caption":"Исследуйте медиа-ресурсы","player":"Игрок","player_caption":"Медиа плеер","credits":"Кредиты","credits_caption":"Проверить баланс счета","account":"Счет","account_caption":"Войти/Зарегистрироваться/Управление","settings":"Настройки","settings_caption":"Настройки для приложения, плеера, учетной записи","development":"Разработка","development_caption":"Режим разработчика для внутреннего использования","basic":"Базовый","basic_caption":"Базовые настройки","advanced":"Передовой","advanced_caption":"Расширенные настройки","blockchain":"Кошелек","blockchain_caption":"${displayName} Децентрализованный кошелек","internal_notice":"Уведомление о внутреннем выпуске","release_notes":"Примечания к выпуску","terms_and_conditions":"Условия и положения","license_and_listen_notices":"Лицензия и прослушивание уведомлений с открытым исходным кодом","close":"Закрывать","success":"Успех","fail":"Неудача","account_email_invalid_address":"Неверный адрес электронной почты","account_email_invalid_domain":"Недействительный домен электронной почты","account_email_unknown_status":"Неизвестный статус доставки электронной почты","account_email_unavailable_address":"Недоступный адрес электронной почты","account_email_suppressed_address":"Заблокированный адрес электронной почты","account_loading":"Загрузка...","account_is_required":"требуется","account_sign_in_your_account":"Войти","account_username":"Имя пользователя","account_username_email_phone":"Номер телефона или электронная почта","account_password":"Пароль","account_new_password":"Новый пароль","account_re_enter_password":"Повторно введите пароль","account_password_not_equal":"Два пароля не равны","account_new_password_same":"Пароль такой же, как исходный пароль","account_forgot_your_password":"Забыли пароль?","account_reset_password":"Сброс пароля","account_sign_in":"Войти","account_signed_in":"Вошел","account_sign_up":"Зарегистрироваться","account_find_your_account":"Найти ваш аккаунт","account_enter_your_username":"Введите свой номер телефона или адрес электронной почты","account_search":"Поиск","account_email_sent_tip":"На вашу электронную почту отправлено письмо с кодом подтверждения:","account_phone_sent_tip":"На ваш телефон отправлено SMS с кодом подтверждения:","account_email_phone_sent_tip":"Электронное письмо и SMS с кодом подтверждения были отправлены на ваш адрес электронной почты и телефон соответственно:","account_software_token_tip":"Для вашей учетной записи включена функция MFA. Чтобы завершить вход, включите или просмотрите свое устройство и введите TOTP.","account_reset_your_password":"Сбросить пароль","account_verification_code":"Проверочный код","account_resend_code":"Отправить код еще раз","account_code_has_been_resent":"Код подтверждения отправлен повторно","account_password_has_been_reset":"Пароль был сброшен","account_submit":"Представлять на рассмотрение","account_sign_up_your_account":"Зарегистрируйтесь","account_fill_required_fields":"Заполните необходимые поля ниже.","account_fill_optional_fields":"Заполните необязательные поля ниже.","account_email":"Электронная почта","account_invitation":"Приглашение","account_invitation_code":"Код приглашения","account_i_accept":"Я принимаю","account_license_terms":"лицензия и условия","account_next":"Следующий","account_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия.","account_verify_fill_optional_fields":"Проверьте и заполните необязательные поля.","account_nickname":"Псевдоним","account_gender":"Пол","account_male":"Мужской","account_female":"Женский","account_not_say":"Не сказать","account_birthday":"День рождения","account_phone_number":"Номер телефона","account_locale":"Местный","account_tip_verified":"Подтверждено, вход...","account_verified":"проверено","account_unverified":"непроверенный","account_signed_up":"Подписали","account_verify_your_identity":"Подтвердите вашу личность","account_finish":"Заканчивать","account_signed_out":"Вышел","account_change_password":"Изменить пароль","account_change_email":"Изменить e-mail","account_change_phone_number":"Изменить номер телефона","account_sign_out":"выход","account_current_password":"Текущий пароль","account_re_enter_new_password":"Повторно введите новый пароль","account_personal_information":"Информация","account_edit":"редактировать","account_reset":"перезагрузить","account_greeting":"Привет,","account_cancel":"Отмена","account_change":"изменять","account_not_set":"не задано","account_setting":"параметр","account_copy_code":"скопируйте код","account_account_setting":"Счет","account_task_page":"Кредитная задача","account_setting_caption":"Изменить пароль/редактировать информацию","account_security":"Безопасность","account_want_to_join":"Хочу присоединиться?","account_sign_in_now":"Войти","account_changed":"Измененный","account_clipboard_with_invitation_code":"Код приглашения скопирован","account_clipboard_with_code":"Код скопирован","account_invitation_code_dialog_tip":"Вы отправите другу электронное письмо или текстовое сообщение с кодом приглашения:","account_available":"доступный","account_invited":"приглашенный","account_used":"использовал","account_invitation_code_sent":"Пригласительный код отправлен","account_invitation_channel_required":"Заполните хотя бы один канал приглашения","account_no_verification_code":"Не можете получить код подтверждения?","account_no_phone_number":"Нет номера телефона?","account_sign_up_by_email":"Зарегистрироваться по электронной почте","account_no_email":"Нет электронной почты?","account_sign_up_by_phone_number":"Запись по номеру телефона","account_no_totp":"Нет ТОТП?","account_tip_no_totp":"Если нет TOTP, сначала настройте TOTP","account_setup_totp":"Настройка ТОТП","account_contact_information":"Контактная информация","account_delete_account":"Удалить аккаунт","account_deleted":"Удалено","account_can_not_mfa":"МИД в беде?","account_set_mfa_type":"Конфигурация многофакторной идентификации","account_disable_mfa":"Отключить многофакторную идентификацию","account_disabled_mfa":"Отключено многофакторной идентификации","account_sms_mfa":"СМС МФА","account_totp_mfa":"ТОТП МИД","account_totp":"ТОТП","account_not_recommend":"Не рекомендую","account_oauth_sign_in_with":"Войти с помощью {provider}","account_sign_in_failed":"Не удалось войти","account_tip_oath_sign_up":"Адрес электронной почты, соответствующий текущей учетной записи {provider}: {email} еще не создал учетную запись","account_tip_confirm_delete_account":"Введите пароль текущей учетной записи, чтобы подтвердить, что вы хотите удалить текущую учетную запись. (Удаленные учетные записи не могут быть восстановлены)","account_tip_config_mfa":"Вы можете использовать SMS или одноразовый пароль на основе времени (TOTP) в качестве вторичной аутентификации.","account_error_can_not_enable_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить MFA","account_tip_can_not_enable_sms_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить SMS MFA","account_tip_can_not_enable_totp_mfa":"Вы должны привязать свой адрес электронной почты и номер мобильного телефона, чтобы включить TOTP MFA.","account_tip_setup_totp":"Используйте приложения, такие как Authenticator, для сканирования приведенного ниже QR-кода или скопируйте код вручную, чтобы добавить токен безопасности.","account_tip_verify_totp":"Подтвердите свой TOTP","account_link_your_social_account":"Привяжите свой социальный аккаунт","account_unlink_your_social_account":"Отвязать социальный аккаунт","account_tip_confirm_link":"Вы уверены, что хотите привязать текущую учетную запись к своей учетной записи {provider}?","account_tip_confirm_unlink":"Вы уверены, что хотите отменить привязанную учетную запись {provider}?","account_tip_linking":"связывание...","account_tip_unlinking":"Отвязка...","account_linked":"Граница","account_unlinked":"Свободный","account_error_can_not_link_to_the_linked_account":"Текущая социальная учетная запись привязана к другой учетной записи","account_error_can_not_link_to_the_mismatched_email":"Текущая учетная запись и адрес электронной почты социальной учетной записи несовместимы","account_error_can_not_link_before_email_verified":"Невозможно связать социальную учетную запись, поскольку текущая учетная запись не привязана к подтвержденному адресу электронной почты.","account_tip_confirm_verify_email_phone":"Нужно ли отправлять код подтверждения на адрес электронной почты и номер телефона текущей учетной записи для подтверждения вашей личности?","account_tip_confirm_verify_phone":"Нужно ли отправлять код подтверждения на текущий номер телефона для подтверждения личности?","account_error_1_message_60_seconds":"Каждые 60 секунд можно отправлять только одно SMS или электронное письмо, подождите еще {delta} секунд","account_error_10_messages_per_day":"Каждый мобильный телефон или адрес электронной почты может отправлять только 10 сообщений в течение 24 часов.","account_error_network":"Возникла проблема с сетью, повторите попытку позже","Network Error":"Возникла проблема с сетью, повторите попытку позже","account_error_user_not_exist":"Пользователь не существует","account_error_incorrect_username_or_password":"Неверное имя пользователя или пароль","account_error_incorrect_original_password":"Неверный исходный пароль","account_error_incorrect_password":"неверный пароль","account_error_username_not_found":"Имя пользователя не найдено","account_error_can_not_reset_for_no_verified":"Невозможно сбросить пароль для неподтвержденной учетной записи","account_error_invalid_verification_code":"Неверный проверочный код, попробуйте еще раз","account_error_expired_verification_code":"Срок действия кода подтверждения истек, попробуйте еще раз","account_error_password_not_long_enough":"Пароль недостаточно длинный","account_error_attempt_limit_exceeded":"Превышен лимит попыток, попробуйте через некоторое время.","account_error_password_attempts_exceeded":"Превышено количество попыток ввода пароля.","account_error_invalid_phone_number_format":"Неверный формат номера телефона","account_error_no_cell_phone_prefix":"Пожалуйста, выберите префикс для номера телефона","account_error_username_already_exists":"Имя пользователя уже существует","account_error_you_need_to_accept_license_terms":"Сначала необходимо принять лицензию и условия","account_error_inactive_code":"Код приглашения не является активированным кодом","account_error_non_existent_code":"Код приглашения не существует","account_error_unexpected":"Неожиданная ошибка","account_error_can_not_change_email_before_phone_bound":"Электронная почта не может быть изменена до привязки номера телефона","account_error_can_not_change_email_before_unbound_social_account":"Электронная почта не может быть изменена до отвязки социальной учетной записи","account_error_can_not_change_phone_before_email_bound":"Номер телефона нельзя изменить, пока электронная почта не будет привязана","account_error_can_not_change_email_phone_with_mfa_enabled":"Невозможно изменить адрес электронной почты или номер мобильного телефона до отключения MFA","account_error_not_supported_yet":"Временно не поддерживается","account_error_same_email":"Новый адрес электронной почты не может совпадать с исходным адресом электронной почты.","account_error_same_phone":"Новый номер телефона не может совпадать с исходным номером телефона.","account_error_email_not_exists":"Адрес электронной почты не существует","account_error_email_already_exists":"Учетная запись с указанным адресом электронной почты уже существует.","account_error_phone_already_exists":"Учетная запись с указанным номером телефона уже существует.","account_error_mfa_token_mismatch":"Несоответствие кода программного токена","account_error_recaptcha_not_loaded":"Есть проблема с сетью. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_recaptcha_validation_failed":"Ошибка проверки ReCAPTCHA. Переподключите сеть и перезапустите приложение, чтобы повторить попытку.","account_error_sign_in_in_progress":"Ожидающая попытка входа уже выполняется","account_field_range":"Ограничьте ввод {0}-{1} символов","account_field_only_alphanumeric":"Поддерживает только буквенно-цифровые","account_field_only_alphanumeric_and_symbol":"Поддерживает только буквенно-цифровые и символы","account_field_only_chinese_alphanumeric_space_underline":"Поддерживает только буквы, цифры, пробел, подчеркивание","account_field_prefix_without_number_space":"Первый символ не может быть цифрой или пробелом","account_field_suffix_without_space":"Не может заканчиваться пробелом","account_field_without_repeat_space":"Нельзя использовать несколько пробелов подряд","account_field_can_not_only_alphanumeric":"Вы не можете просто использовать буквы или цифры","account_field_must_have_number_characters":"Должен содержать числовые символы","account_field_verification_code":"Код подтверждения должен состоять из шести цифр.","account_field_invitation_code":"Код приглашения должен быть буквенно-цифровым","account_field_phone_number":"Неверный формат номера телефона","account_invalid_email_format":"Неверный формат электронной почты","account_sign_out_confirm":"Вы уверены, что хотите выйти? Это остановит все задачи.","account_sign_out_anyway":"Выйти в любом случае","account_signing_out":"Выписка...","account_request_save_settings":"Настройки не сохраняются. Перед выходом необходимо сохранить изменения.","pay":"Платить","pay_with_credit":"Плата за ускорение скачивания. Нужно около {0} кредита","pay_with_credit_payed":"Ускорение. Все еще требуется около {0} кредита","create_payment":"Создать платеж","pay_target":"Цель","pay_for_torrent":"Оплатить {0}","your_subid":"Ваш субидентификатор","your_credits":"Ваши кредиты","pay_point_for_data":"Заплатите {0} баллов за {1} данных","auto_renew":"Включить автоматическое продление","transaction_details":"Детали транзакции","transaction_id":"Идентификатор","transaction_payer":"Плательщик","transaction_payee":"Получатель платежа","transaction_category":"Категория","transaction_changed_amount":"Изменена сумма","transaction_meta":"Мета","transaction_status":"Положение дел","transaction_creation_time":"Время создания","receipt_code":"Код получения","transfer_amount":"Сумма перевода","code_the_receipt_code":"Скопируйте код квитанции ниже плательщику","fill_the_receipt_code":"Перевод путем заполнения кода платежа, предоставленного получателем платежа","expense":"Расход","copied":"Скопировано","transfer":"Передача","receive":"Получать","copy":"Копировать","withdraw_fund":"Вывод средств","category_paydata_payer":"Стоимость данных","category_paydata_payee":"Доход от данных","category_transfer":"Передача","category_bonus":"Бонус","category_recharge":"Перезарядка","status_pending":"в ожидании","status_completed":"завершенный","status_finish":"заканчивать","status_failed":"неуспешный","tip_invalid_receiver":"Неверный код получателя","tip_invalid_amount":"Сумма кредита должна быть числом с плавающей запятой в диапазоне 0-1000 (минимальная точность 0,001).","credit_get_more":"Получите больше кредитов","credit_no_data":"Данные недоступны","credit_loading":"Загрузка...","credit_not_enough_amount":"Недостаточно кредитов","credit_amount_not_enough":"Недостаточно кредитов","credit_payee_not_exist":"Плательщик не существует","credit_invalid_amount":"Неверная сумма кредита","credit_can_not_transfer_to_yourself":"Не могу перевести на себя","credit_latest":"Последний","credit_error_network":"Возникла проблема с сетью, повторите попытку позже","add_subtitles":"Добавить субтитры","open_file":"Открыть файл...","advanced_options":"Расширенные настройки","title":"Заголовок","location":"расположение","subtitle_file":"файл субтитров","unsupported_subtitle_type":"Тип файла {0} не является поддерживаемым типом субтитров.","not_default_player":"Видеоплеер по умолчанию не установлен","this_is_an_audio_file":"это аудиофайл","the_added_subtitle_already_exists":"Добавленный субтитр уже существует","stop_stream_player":"Потоковое мультимедиа было прекращено, потому что задача была приостановлена ​​или удалена","stop_player":"Работа плеера была завершена, так как файл был удален","playing_timeout_hint":"Время ожидания истекло. Пожалуйста, проверьте задание","autoplay_hint":"Автозапуск может быть заблокирован вашим браузером. Если плеер не играет, попробуйте нажать на экран, чтобы продолжить","remove_playing_confirm":"{0} все еще воспроизводится, удалите его, чтобы остановить проигрыватель. Вы уверены, что хотите удалить его?","unsupported_in_browser":"Пока не поддерживается в режиме браузера","client":"Клиент","warning":"Предупреждение","enable":"Давать возможность","disable":"Запрещать","auto":"Авто","encrypt_connection":"Зашифровать соединение","encrypted_connection":"Зашифрованное соединение","non_encrypted_connection":"Незашифрованное соединение","connected_wires_not_disconnect":"Подключенные провода не будут отсоединены","audio":"аудио","video":"видео","image":"изображение","subtitle":"подзаголовок","zip":"молния","text":"текст","unknown":"неизвестный","add":"Добавлять","undo":"Отменить","backup":"Резервное копирование","not_default_app":"${displayName} не является вашим приложением по умолчанию для торрентов и мультимедиа, вы хотите установить его по умолчанию?","dont_show_again":"Больше не показывать","go_to_settings":"Перейдите в настройки","about_alphabiz":"Около ${displayName}","last_check_at":"Последняя проверка в","update_channel":"Обновить канал","check_for_update":"Проверить обновления","checking_for_update":"Проверка обновлений...","no_update_available":"Нет доступных обновлений","update_available":"Доступно обновление","update_now":"Обновить сейчас","update_later":"Обновить позже","click_to_update":"Нажмите кнопку ОБНОВИТЬ СЕЙЧАС, чтобы загрузить и обновить","update_failed":"Не удалось обновить","update_failed_message":"При обновлении произошла ошибка:","check_shasum_failed":"Не удалось проверить целостность установщика","downloading_update":"Загрузка обновления...","ready_to_update":"Готов к обновлению","restart_to_update":"Обновление скачивается. ${displayName} на некоторое время выйдет из режима обновления.","already_latest":"Текущая версия ({0}) уже является последней","update_timeout":"Время ожидания обновления","no_available_release":"Нет доступных выпусков","no_available_installer":"Нет доступного установщика","feedback":"Обратная связь","select_a_type":"Выберите тип","category":"Категория","select_a_category":"Выберите категорию","require_title":"Требуется заголовок","describe_your_problem":"Опишите вашу проблему","report_a_bug":"Сообщить об ошибке","request_a_new_feature":"Запросить новую функцию","download_or_upload":"Загрузка выгрузка","others":"Другие","submit_with_system_info":"Отправить с информацией о системе","submit_feedback":"Отправить отзыв","tweet_us":"Напишите нам","tweet_too_long":"Твит слишком длинный","delete_characters":"Удалите как минимум {0} символов.","rest_characters":"Вы можете ввести еще {0} символов","update_alphabiz":"Обновить ${displayName}","current_version":"Текущая версия","cancel_update":"Отменить обновление","slow_download_speed":"Загрузка слишком медленная","slow_download_speed_caption":"Загрузка установщика теперь слишком медленная. Пожалуйста, проверьте состояние сети","update_canceled":"Обновление отменено","current_version_release_time":"Время выпуска текущей версии","expired_app":"${displayName} Просрочено","version_out_of_date":"Версия устарела","have_to_update":"Версия ${displayName} устарела. Некоторые протоколы или API устарели. Вы должны обновить ${displayName}, прежде чем продолжить.","exit_alphabiz":"Выход ${displayName}","exit_and_update":"Выйти и применить обновление","new_version_hint":"Доступна новая версия","no_new_version":"Нет новой версии","current_is_latest":"Текущая версия уже является последней","click_to_check_update":"Нажмите кнопку [ПРОВЕРИТЬ ОБНОВЛЕНИЕ], чтобы проверить наличие обновлений.","download_latest_version_from_website":"Пожалуйста, посетите официальный сайт, чтобы загрузить последнюю версию","to_the_website":"На сайт","network_diagnotic":"Диагностика сети","diagnotic":"Диагностика","click_to_check":"Нажмите, чтобы проверить","click_to_check_again":"Нажмите, чтобы проверить еще раз","checking":"Проверка","online":"В сети","offline":"Не в сети","dns_look_up":"DNS-поиск","error":"Ошибка","aws_service":"Сервис AWS","network_pings":"Сетевой пинг","not_found":"Не найдено","packet_loss":"Потеря пакетов","official_site":"Официальный сайт","download_test":"Скачать тест","test_task":"Тестовое задание {0}","download_failed":"Загрузка не удалась","second_spend":"{0} потрачено","open_default_player_failed":"Не удалось открыть проигрыватель по умолчанию","copied_to_clipboard":"Скопировано в буфер обмена","go_to":"Идти к","region_not_available":"Регион недоступен","region_not_available_message":"Извини! Ваш регион недоступен для использования этого приложения. Это приложение будет закрыто через {0} секунд","confirm":"Подтверждать","no_available_result":"Нет доступных результатов","invalid_password_format":"Неверный формат пароля","invalid_password_format_same":"Пароль такой же, как исходный пароль","error_password":"Ошибка пароля","keychain_setting":"Брелок","setting_description":"Облачное хранилище: Сохраняйте ключевые данные в облаке.\\nИзменить пароль: изменить пароль для ключа библиотеки мультимедиа.\\nМнемоника: альтернативный метод генерации и восстановления ключей.\\nИмпортировать локальный ключ: Импорт локально сохраненного ключа в медиатеку.\\nКлюч экспорта: сохраняет текущие данные медиатеки в локальном хранилище или в облаке.\\nКлюч резервного копирования в облако: обновите данные текущей медиатеки в облаке для резервного копирования.","refresh_status":"Обновить состояние","confirm_import_key":"Подтвердить ключ импорта","confirm_update_cloud_key":"У вас уже есть ключ в облаке. Обновление ключа перезапишет исходный ключ. Вы уверены, что хотите обновить ключ, хранящийся в облаке?","export_key_with_cloud":"Введите независимый пароль, который вы установили для экспорта ключа библиотеки, хранящегося в облаке, и заблокируйте файл ключа с помощью пароля разблокировки.","store_cloud_key_prompt_password":"Введите независимый пароль для хранения ключа библиотеки в облаке","update_cloud_key_prompt_password":"Установите независимый пароль для шифрования ключа библиотеки, а затем обновите его в облаке.","enable_cloud_storage_prompt_password":"Установите пароль для ключа, хранящегося в облаке, с помощью которого вы сможете получить ключ из облака","input_unlock_password":"Установить пароль разблокировки","export_local_prompt_password":"Пожалуйста, установите пароль разблокировки, чтобы зашифровать файл ключа. Мы не сохраним этот пароль для вас, поэтому, если вы потеряете свой пароль, вы не сможете разблокировать ключ библиотеки.","require_unlock_password":"Файл ключа заблокирован, введите пароль разблокировки","require_independent_password":"Введите независимый пароль, чтобы получить ключ, хранящийся в облаке.","import_local_prompt_password":"Файл ключа заблокирован, введите пароль разблокировки","select_encrypt_mode":"Выберите режим шифрования","update_cloud_key":"Обновите ключ, хранящийся в облаке","backup_to_cloud":"Резервное копирование ключа библиотеки в облако","save_local":"Сохраните ключ библиотеки как локальный зашифрованный файл.","create_new_key":"Создайте новый ключ библиотеки","creating_lib_key":"Создание ключа библиотеки...","loading_lib_key":"Загрузка ключа библиотеки...","failed_to_create_lib_key":"Не удалось создать ключ библиотеки","failed_to_load_lib_key":"Не удалось загрузить ключ библиотеки","import_local_key":"Импортировать ключ локально","import_lib_key_from_local":"Импортировать библиотечный ключ локально","import_from_cloud":"Импортировать ключ библиотеки из облака","create_or_import_key":"Создать или импортировать библиотечный ключ","create_or_import_key_desc":"Библиотечный ключ — это независимый ключ, используемый для извлечения и публикации содержимого в децентрализованной базе данных.","store_your_lib_key":"Сохраните ключ библиотеки","export_cloud_key":"Экспорт ключа из облака","export_current_key":"Экспорт текущего ключа","change_password":"Изменить пароль","enable_cloud_storage":"Включить облачное хранилище","disable_cloud_storage":"Отключить облачное хранилище","disable_cloud_storage_desc":"Отключение облачного хранилища приведет к удалению ключа, сохраненного в облаке, убедитесь, что ключ сохранен локально.","sync_at":"Синхронизировать по адресу: {time}","cloud_storage_enabled":"Синхронизировать связку ключей с {storage}","cloud_storage_disabled":"Облачное хранилище отключено","saved_locally":"Сохранено локально","export_key":"Экспорт файла ключа","cloud_independent_password":"Независимый от облака пароль","key_file_unlock_password":"Пароль разблокировки файла ключа","re_enter_unlock_password":"Повторно введите пароль разблокировки","independent_password_not_enabled":"Текущий пароль — это пароль учетной записи Alphabiz (независимый пароль не установлен)","use_cognito_hash":"Использовать пароль учетной записи Alphabiz","use_independent_password":"Используйте независимый пароль","keychain_lib":"ключ библиотеки","loading_keychain_state":"Загрузка связки ключей...","backing_up":"Резервное копирование...","backup_current_key":"Резервное копирование текущего ключа в облако","cloud_lib_key_not_existed":"ключ библиотеки не существует в облаке","open_keychain_file":"Открыть файл связки ключей","confirm_open_abk":"Вы хотите открыть файл ABK?","use_the_key":"Используйте ключ","backup_the_key":"Резервное копирование ключа в облако","keychain_data_does_not_exist":"Данные связки ключей не существуют","timeout of 0ms exceeded":"Возникла проблема с сетью, повторите попытку позже","XhrError":"Возникла проблема с сетью, повторите попытку позже","payer credit amount is not enough":"Недостаточно кредитов","payee does not exist":"Плательщик не существует","block_list_manage":"Управление черным списком","blocked_users":"Заблокированные пользователи","blocked_channels":"Заблокированные каналы","unblock_user":"Разблокировать пользователя","unblock_channel":"Разблокировать канал","no_blocked_user":"Нет заблокированных пользователей","no_blocked_channel":"Нет заблокированного канала","field_required":"{0} требуется","setting":"Параметр","unknown_media":"Неизвестные СМИ","settings_button_visible":"Кнопка видна","settings_setting":"Параметр","settings_playback_rate":"Скорость воспроизведения","settings_subtitle":"Подзаголовок","settings_pip":"Картинка в картинке","settings_fullscreen":"Полноэкранный","settings_subtitle_options":"Параметры субтитров","settings_normal":"Нормальный","settings_italic":"Курсив","settings_lighter":"Более легкий","settings_bolder":"Смелее","settings_small":"Маленький","settings_large":"Большой","about":"О","services":"Услуги","hide":"Скрывать","hide_others":"Скрыть другие","show_all":"Показать все","quit":"Покидать","edit":"Редактировать","redo":"Повторить","cut":"Резать","paste":"Вставить","select_all":"Выбрать все","view":"Вид","reload":"Перезагрузить","toggle_full_screen":"Включить полноэкранный режим","toggle_developer_tools":"Переключить инструменты разработчика","window":"Окно","minimize":"Минимизировать","bring_all_to_front":"Вывести всех на передний план","help":"Помощь","github_repo":"Репозиторий Github","issues":"Проблемы","learn_more":"Узнать больше","learn_spelling":"Учиться правописанию","lookup_selection":"Посмотрите вверх \\"{selection}\\"","search_with_google":"Поиск с помощью Google","save_as":"Сохранить как","save_image":"Сохранить изображение","save_image_as":"Сохранить изображение как ...","copy_link":"Копировать ссылку","save_link_as":"Сохранить ссылку как ...","copy_image":"Копировать изображение","copy_image_as":"Копировать изображение как...","copy_image_address":"Копировать адрес изображения","download_complete":"Загрузка завершена","download_complete_message":"{0} скачивается","is_running":"{0} выполняется","open":"Открыть {0}","launch_problem":"Проблема с запуском","ask_clear_data":"Кажется, вы пытаетесь запустить {0}, но это несколько раз не удалось.\\nВы хотите очистить все данные приложения и попробовать запустить его позже?","launch_directly":"Запустить напрямую","clear_all_data":"Удалить все данные","ask_clear_confirm":"Это удалит все конфиги, логи и пользовательские данные!\\nПосле этого вам может понадобиться снова запустить {0}.\\nВы уверены, что хотите очистить данные?","confirm_launch":"Нет, запустить напрямую","confirm_clear":"Да, удалить все данные"}')},"5e65":function(e,t,a){},"5e6d":function(e,t,a){},"5e87":function(e,t,a){"use strict";a("8fd4")},"5e95":function(e,t,a){"use strict";a("0c7a")},"5e9a":function(e){e.exports=JSON.parse('{"lib_index":"Thuis","lib_edit":"Publiceren","lib_publish":"Publiceren","lib_explore":"Ontdekken","lib_following":"Als vervolg op","lib_favorite":"Lokale favorieten","lib_local_favorites":"Lokale favorieten","lib_channel":"Kanaal","lib_submit":"Indienen","lib_from_network":"Gebruik van gedecentraliseerde database van netwerk","welcome_to_lib":"Welkom bij ${displayName} Mediabibliotheek","register_or_login":"Registreren/Inloggen","lib_recommend":"Aanbevelen","lib_recommend_desc":"Welkom bij ${displayName} Bibliotheek! Deze bibliotheek maakt gebruik van een gedecentraliseerde database van het netwerk. Om het te gaan gebruiken, moet je enkele kanalen volgen.","follow_any_channel_to_continue":"Volg een willekeurig kanaal om door te gaan","follow_channels_and_continue":"Volg {0} kanalen en ga verder","show_more_for_me":"Laat meer zien voor mij","no_more_recommend":"Niet meer aanbevelen","key":"Sleutel","create_key":"Sleutel maken","save_key":"Bewaar sleutel","save_key_file":"Wilt u uw sleutel opslaan als bestand?","import_key":"Sleutel importeren","import":"Importeren","invalid_key":"Ongeldige sleutel","back_to_top":"Terug naar boven","search_for_channel":"Zoek naar kanaal-ID","search_channel_no_result":"Kan kanaal met ID {0} niet vinden","please_input_channel_id":"Voer de kanaal-ID in","welcome_help_text":"Dit is een gedecentraliseerde mediabibliotheek. Jij hebt nodig\\n om een ​​account aan te maken voor deze database. Wij zullen\\n automatisch een persoonlijke sleutel voor u genereren.\\n Als u al een sleutel heeft gehad, kunt u ook importeren\\n het hier.","welcome_key_text":"Nadat u bent ingelogd, klikt u op de knop [SLEUTEL OPSLAAN].\\n in de rechterbenedenhoek om uw privésleutel op te slaan.\\n Als u uw sleutel kwijtraakt, kunt u mogelijk niet meer inloggen.","redirect_to_recommend":"Het lijkt erop dat je geen enkel kanaal hebt gevolgd. Omleiding naar de pagina [Verkennen].","channel":"Kanaal","follow":"Volgen","unfollow":"Ontvolgen","following":"Als vervolg op","share":"Deel","unfollow_confirm":"Weet je zeker dat je dit kanaal niet meer wilt volgen? Alle berichten van dit kanaal in je tijdlijn worden verwijderd.","follow_failed_hint":"De bewerking is nog steeds in behandeling op de achtergrond. Als de bewerking lange tijd niet wordt toegepast, start u de app opnieuw en probeert u het opnieuw.","block":"Blok","unblock":"Deblokkeren","blocked":"Geblokkeerd","block_channel":"Blokkeer dit kanaal","block_channel_confirm":"Door kanaal te blokkeren wordt het van je tijdlijn verwijderd. U kunt uw blokkeerlijst beheren in de accountinstellingen.","block_creator":"Blokkeer de maker van dit kanaal","unblock_creator":"Deblokkeer de maker van dit kanaal","block_creator_confirm":"De maker van het blok verwijdert alle kanalen die door deze maker zijn gemaakt van je tijdlijn. U kunt uw blokkeerlijst beheren in de accountinstellingen.","share_url_copied":"Share-URL wordt gekopieerd naar uw klembord","follow_time":"Volg de tijd","update_time":"Update tijd","search":"Zoekopdracht","type":"Type","added":"Toegevoegd","click_to_task":"Klik om naar de taak te gaan","lib_already_added":"Je hebt deze video al toegevoegd","description":"Beschrijving","poster":"Poster","channel_poster":"Kanaalposter","preview":"Voorbeeld","creator":"Schepper","creator_detail":"Creator-detail","loading_creator":"Informatie over maker laden","wait_for_creator_loaded":"Wacht tot de informatie over de maker is geladen.","follower":"Volgeling","followers":"Volgers","follower_list":"Lijst met volgers","user":"Gebruiker","channel_title":"Kanaal titel","channel_id":"Kanaal Nr","post_title":"Titel posten","post_id":"Post-ID","import_data_from_excel":"Importeer gegevens uit Excel","set_excel_keys":"Excel-sleutels instellen","excel_import_succeded":"Excel-import gelukt","excel_import_success_msg":"{0} rijen zijn klaar om toe te voegen, {1} ongeldige en {2} gedupliceerde items worden genegeerd","cannot_find_channel":"Kan zender niet vinden","cannot_find_posts":"Kan berichten niet vinden","add_channel":"Kanaal toevoegen","add_post":"Bericht toevoegen","edit_channel":"Kanaal bewerken","channel_setting":"Kanaal instelling","edit_post":"Bericht bewerken","edit_posts":"Berichten bewerken","channel_detail":"Kanaaldetail","remove":"Verwijderen","remove_channel":"Kanaal verwijderen","remove_channel_confirm":"Weet je zeker dat je dit bericht wilt verwijderen? Dit kan niet worden hersteld.","remove_post":"Bericht verwijderen","remove_post_confirm":"Weet je zeker dat je dit kanaal wilt verwijderen? Dit kan niet worden hersteld.","preview_mode":"Preview-modus","preview_mode_desc":"Dit is een voorbeeld van je kanaal. Alle tarieven van films worden hier getoond.","edit_user_profile":"Gebruikersprofiel bewerken","name":"Bijnaam","avatar":"Avatar","no_following":"Geen volgende kanalen. Klik om te gaan","no_recommend":"Geen aanbevolen kanalen. Klik om te gaan","first_recomment_msg":"Het kan even duren als dit de eerste keer is dat de app wordt gelanceerd.","invalid_image":"Ongeldige afbeelding","image_not_reachable":"Deze afbeeldings-URL is niet bereikbaar.","channel_not_found":"Kanaal niet gevonden","cannot_get_channel_info":"Kan kanaalinfo niet ophalen. Dit kanaal kan door de maker worden verwijderd en is niet langer beschikbaar.","validate_error":"Fout valideren","validate_user_name_no_space":"Gebruikersnaam mag geen spaties bevatten","validate_url_no_space":"URL mag geen spaties bevatten","validate_user_name_length":"De gebruikersnaam moet een lengte hebben tussen {0} en {1}","validate_user_desc_length":"De gebruikersbeschrijving mag niet langer zijn dan {0} tekens","validate_user_avatar_url":"Gebruikersavatar moet een URL zijn met minder dan 2048 tekens","validate_channel_title_length":"De kanaaltitel moet een lengte hebben tussen 1 en 100","validate_channel_desc_length":"De kanaalbeschrijving moet een lengte hebben tussen 10 en 300","validate_channel_image_url":"Kanaalvoorbeeld moet een URL zijn met minder dan 2048 tekens","validate_post_title_length":"De titel van het bericht moet een lengte hebben tussen 1 en 100","validate_post_desc_length":"De berichtbeschrijving moet een lengte hebben tussen 10 en 300","validate_post_image_url":"Poster moet een URL zijn met minder dan 2048 tekens","validate_post_url":"Ongeldige URL ${displayName}","validate_post_url_length":"${displayName} URL mag niet langer zijn dan 2048 tekens","film_rate":"Film tarief","set_film_rate":"Filmsnelheid instellen","select_a_rate_before_enter":"U moet een filmsnelheid selecteren voordat u naar de mediabibliotheek gaat.","library_available_rate":"Bibliotheek beschikbaar filmtarief","rate_g":"G – Algemeen publiek","rate_g_desc":"Alle leeftijden toegelaten. Niets dat ouders zou beledigen voor het bekijken door kinderen.","rate_pg":"PG - Ouderlijk toezicht voorgesteld","rate_pg_desc":"Sommige materialen zijn mogelijk niet geschikt voor kinderen. Ouders worden aangespoord om \\"ouderlijke begeleiding\\" te geven. Kan materiaal bevatten dat ouders misschien niet leuk vinden voor hun jonge kinderen.","rate_pg_13":"PG-13 – Ouders sterk gewaarschuwd","rate_pg_13_desc":"Sommige materialen kunnen ongeschikt zijn voor kinderen onder de 13 jaar. Ouders worden dringend verzocht voorzichtig te zijn. Sommige materialen zijn mogelijk niet geschikt voor pre-tieners.","rate_r":"R - Beperkt","rate_r_desc":"Onder de 17 jaar is een begeleidende ouder of volwassen voogd vereist. Bevat wat materiaal voor volwassenen. Ouders worden dringend verzocht meer over de film te weten te komen voordat ze hun jonge kinderen meenemen.","rate_nc_17":"NC-17 - Alleen volwassenen","rate_nc_17_desc":"Niemand van 17 jaar en jonger toegelaten. Duidelijk volwassen. Kinderen worden niet toegelaten.","set_as_private":"Instellen als privé","hide_in_explore":"Verberg dit kanaal op de verkenningspagina","hidden":"Verborgen","select_a_rate":"Selecteer een filmtarief","select_from_tasks":"Kies uit taken","import_from_magnet":"Importeren van magneet:?...","input_magnet_url":"Ingangsmagneet:? url","task_title":"Taak titel","set_title":"Titel instellen","add_to_local_favorites":"Toevoegen aan lokale favorieten","remove_from_local_favorites":"Verwijderen uit lokale favorieten","removed_favorite":"Favoriet verwijderd","import_or_export_favorites":"Favorieten importeren/exporteren","export_local_favorites":"Exporteer lokale favorieten als back-up","import_favorites_file":"Favorietenbestand importeren","not_a_favorite_file":"Dit bestand is geen favoriet back-upbestand","connection_status":"Verbindingsstatus","gun_server_list":"Cache-knooppunten","custom_nodes":"Aangepaste cacheknooppunten","custom_nodes_hint":"Aangepaste cacheknooppunten worden toegepast nadat de app opnieuw is gestart","wait_for_reboot":"Wachten op opnieuw opstarten...({seconds}s)","reboot_now":"Herstart nu","reboot_later":"Start later opnieuw op","peer_list":"Directe knooppunten","server":"Knooppunt-URL","peer":"Gelijke","peer_id":"Knooppunt-ID","connection":"Verbinding","data_source":"Databron","sync":"Synchroniseren","syncing":"synchroniseren","sync_completed":"Synchronisatie voltooid","got_all_post":"Je hebt al alle berichten","placeholder_channel_title":"Je kanaalnaam","placeholder_channel_desc":"Beschrijving over dit kanaal","placeholder_post_title":"Filmnaam (jaar)","placeholder_post_desc":"Beschrijving over deze film","private_channel":"Privé kanaal","creator_blocked":"Maker geblokkeerd","go_to_library":"Ga naar de bibliotheek?","go_to_library_channel_msg":"Wil je naar het bibliotheekkanaal {0}?","magnet_does_not_have_name":"Deze magneet:? url heeft geen naam, je moet eerst een berichttitel toevoegen.","no_available_post":"Geen beschikbaar bericht","following_channel_no_post":"Al je volgende kanalen hebben geen beschikbare post. Dit kan worden veroorzaakt door een netwerkfout. Als je al enkele kanalen hebt gevolgd, kunnen de berichten later worden geladen.","share_to_library":"Delen met bibliotheek","quick_start":"Snelle start","quick_start_desc":"Begin met het maken van een bericht met een taak of bestand","select_file":"Selecteer bestand...","select_folder":"Selecteer map...","post_options":"Plaats opties","channel_options":"Kanaal opties","create_new_channel":"Nieuw kanaal maken","use_existed_channel":"Gebruik bestaand kanaal","select_existed_channel":"Selecteer bestaand kanaal","uploaded_by":"{title} geüpload door {name}","created_by":"{title} gemaakt door {name}","creating_new_channel":"Nieuw kanaal maken...","created_new_channel":"Nieuw kanaal gemaakt","creating_new_post":"Nieuw bericht maken...","created_new_post":"Nieuw bericht gemaakt","create_new_post":"Nieuw bericht maken","quick_start_timeout":"{0} time-out. Dit kan worden veroorzaakt door een netwerkfout. Probeer het later opnieuw.","file_too_large":"Bestand te groot","file_too_large_msg":"Dit bestand is groter dan 4 GB ({size}) en kan een lange voorbereidingstijd in beslag nemen. Weet je zeker dat je door wilt gaan?","resolving_folder_files":"Mapbestanden oplossen...","folder_too_large":"Map te groot","folder_too_large_msg":"De bestanden in deze map zijn groter dan 4 GB ({size} totaal) en het kan een lange voorbereidingstijd kosten. Weet je zeker dat je wilt uploaden?","creating_new_task":"Nieuwe taak maken...","cannot_create_task":"Kan taak niet maken","cannot_create_task_msg":"Dit kan een fout veroorzaken. Als de taak correct is gemaakt, kunt u later controleren op de takenlijst.","cannot_get_task_name":"Kan de taaknaam niet ophalen. U moet er eerst een invoeren.","remove_old_task":"Verwijder oude taak","remove_old_task_desc":"De webmodus kan slechts één taak tegelijk maken. Wilt u de oude taak verwijderen?","subtitle_list":"Ondertitel lijst","optional":"optioneel","with_subtitle":"Met {language} ondertitels","maximumSubtitleNum_limit":"Het aantal ondertitels heeft zijn maximum bereikt","add_subtitle_url":"Downloadlink voor ondertiteling toevoegen","cannot_add_subtitle":"Het toevoegen van ondertitels is mislukt","cannot_add_subtitle_msg":"Ondertitelingstaal niet geselecteerd of ongeldige downloadlink.","support_subtitle_type":"Alleen ondertitels in srt- en vtt-indeling worden ondersteund.","recommend_opensubtitles":"Het wordt aanbevolen om de downloadlink of id voor ondertitels te gebruiken op www.opensubtitles.org.","take_down":"Neerhalen","serious_violation":"Ernstige overtreding","copyright_disputes":"Geschillen over auteursrechten","adults_only":"Alleen volwassenen","takedown_reason":"Reden voor verwijdering","takedown_mode":"Takedown-modus","admins":"Beheerders","takedown_user":"Schakel deze maker uit","takedown_channel":"Verwijder dit kanaal","takedown_post":"Verwijder dit bericht","select_takedown_reason":"Selecteer de verwijderingsreden","takedown_invalid_reason":"Ongeldige verwijderingsreden","takedown_invalid_user_id":"Ongeldige gebruikersnaam. ID moet 87 tekens bevatten","takedown_invalid_channel_id":"Ongeldige kanaal-ID. ID moet 20 tekens bevatten","takedown_invalid_post_id":"Ongeldige post-ID. ID moet 20 tekens bevatten","takedown_management":"Beheer afschaffen","users":"Gebruikers","channels":"Kanalen","posts":"Berichten","you":"Jij","preset":"Vooraf ingesteld","admin":"beheerder","committee":"Commissie","about_takedown_mode":"Over de takedown-modus:\\nVoorinstelling: geconfigureerd in github-repository. Ze worden allemaal uit de bibliotheek verwijderd.\\nAdmin: Elke stem van een admin wordt verwijderd.\\nCommissie: Minstens de helft van de admins die op stemmen, wordt verwijderd.","cannot_edit_preset":"U kunt deze rij niet bewerken omdat het een vooraf ingestelde rij is","cannot_edit_not_vote":"Je kunt deze rij niet bewerken omdat je er niet op hebt gestemd","remove_vote":"Verwijder uw stem","post_preload_failed":"Kan dit bericht niet vooraf laden. De downloadlink is mogelijk verouderd, dus dit bericht kan niet onmiddellijk worden afgespeeld.","about_cache_node":"Over cacheknooppunt","edit_cache_node":"Cacheknooppunt bewerken","create_cache_node":"Cacheknooppunt maken","about_cache_node_desc":"${displayName} gebruikt de wapenserver als cacheknooppunt. U kunt aangepaste knooppunten vooraf instellen","learn_how_to_deploy_gun":"Leer hoe u uw eigen wapenserver kunt inzetten","repeat_add":"De taak is toegevoegd. Voeg deze niet opnieuw toe","upload":"Uploaden","download":"Downloaden","delete":"Verwijderen","delete_task":"Taak verwijderen","delete_confirm_message":"Deze taak verwijderen? Dit is onherroepelijk","also_delete_files":"Verwijder ook bestanden","default_delete_files":"Verwijder standaard gedownloade bestanden na verwijdertaak","not_now":"Niet nu","delete_autoupload_confirm":"Deze taak bevat het bestand dat u in de map voor automatisch uploaden hebt geplaatst. Als u deze taak verwijdert, wordt het bestand ook verwijderd.","delete_anyway":"Hoe dan ook verwijderen","upload_too_many_files":"Upload te veel bestanden","ask_if_unlimit_upload_amount":"De map voor automatisch uploaden bevat te veel bestanden. Wilt u de beperking van het uploadbedrag uitschakelen? *Dit kan prestatieproblemen veroorzaken","disable_limitation":"Beperking uitschakelen","not_length":"Werken met meerdere bestanden wordt momenteel niet ondersteund. Werk alstublieft mee","download_torrent":"Download bestand","upload_torrent":"Upload bestand","files":"Bestanden","file":"Bestand","folder":"Map","start_all":"Begin allemaal","pause_all":"Pauzeer alles","remove_all":"Verwijder alles","upload_all":"Alles uploaden","clear_history":"Geschiedenis wissen","pause_all_finish_payments":"Hiermee worden alle betalingen voltooid.","accelerating":"Versnellen","link_task":"Koppel taak","torrent_task":"Dossier taak","ok":"OK","cancel":"Annuleren","download_directory_position":"Directory positie downloaden","torrent_file":"taak bestand","magnetic_link_incorrect":"Het linkformaat is onjuist","delete_fail":"Verwijderen mislukt","pause":"Pauze","paused":"Gepauzeerd","stop_torrent":"Stop","seed":"Zaad","resume":"Cv","downloading":"downloaden","downloaded":"gedownload","uploading":"Uploaden","auto_uploading":"Auto uploading","uploaded":"Geüpload","pending":"Wachten op andere taken","verifying":"Verifiëren","waiting_for_verify":"Wachten op verificatie","seeding":"Zaaien","completed":"Voltooid","status":"Toestand","task_name":"Opdrachtnaam","size":"Maat","progress":"Voortgang","sort":"Soort","ascending":"Oplopend","descending":"Aflopend","file_loading":"Bestand laden...","loading":"Bezig met laden","unknown_status":"Onbekend","play_while_downloading":"Toneelstuk...","upload_or_play":"Uploaden / afspelen","play":"Toneelstuk","ask_if_upload_file":"Upload bestand?","ask_if_upload_or_play":"Bestand uploaden of afspelen?","torrent_error":"Fout bij het toevoegen van taak:","no_peers":"Probeer het meer dan {0} keer opnieuw en er is geen peer beschikbaar","torrent_exists":"Taak bestaat al.","show_origin_torrent":"Haal het originele taakbestand of de url op","show_directory":"Open directory van deze torrent","task_num":"Taken","total_upload_speed":"Upload snelheid","total_download_speed":"Download snelheid","path_missing":"Fout: kan het torrent-pad niet vinden","origin_not_found":"Kan informatie over oorspronkelijke taak niet vinden.","text_copied":"De Magnum-URL wordt naar uw klembord gekopieerd","copy_magnet_uri":"Magneet kopiëren:? URI","copy_download_uri":"Download-URI kopiëren","copy_share_uri":"Deel-URI kopiëren","uri_copied":"URI is met succes naar uw klembord gekopieerd","uri_copy_failed":"Kopiëren van uri is mislukt","more":"Meer...","toggle_list_mode":"Schakel de lijstmodus in","comment":"opmerking","operations":"Activiteiten","open_directory":"Adresboek openen","no_downloading_task":"Geen downloadtaak","remove_all_downloading_tasks":"Alle downloadtaken verwijderen?","remove_all_upload_tasks":"Alle uploadtaken verwijderen?","remove_autoupload_files":"Verwijder automatisch geüploade bestanden","remove_all_history":"Alle geschiedenis verwijderen?","remaining":"Overig","created_time":"Gecreëerde tijd","used_time":"Gebruikte tijd","completed_time":"Voltooide tijd","yesterday":"Gisteren","before_yesterday":"{empty}","earlier":"Eerder","miss_file":"Er ontbreken enkele bestanden","delete_miss_file_task":"Er ontbreken enkele bestanden in {0}.","common_peer":"Gemeenschappelijke collega","ab_peer":"${displayName} collega","ab_peer_verified":"Geverifieerd ${displayName} peer","ab_peer_available":"${displayName} peer(s) beschikbaar","alphabiz_accelerating":"${displayName} versnellen","income":"Inkomen","income_info":"Inkomen (vandaag/totaal)","total_income_info":"Inkomen: {0}(vandaag) / {1}(totaal)","login_to_see_income":"Log in om inkomensstatistieken te bekijken","credit_cost":"Krediet kosten","downloaded_by_payment":"Gedownload door betalingen","file_not_found":"Kan dit bestand niet vinden in lokaal","no_task":"Niet vragen","no_matched_task":"Geen overeenkomende taak","space_not_enough":"Schijfruimte niet genoeg","need_more_space":"Heb {0} meer ruimte nodig, maar de huidige schijf heeft {1} vrij ({2} gereserveerd). Taken zijn gepauzeerd. Bibliotheek vooraf laden is uitgeschakeld. U kunt het opnieuw inschakelen in [Instellingen - Geavanceerd].","seeders":"Zaaimachines","last_update":"Laatste update","connecting":"Verbinden","connected":"Verbonden","request_timed_out":"Verzoek verlopen","connection_failed":"Verbinding mislukt","invalid_download_url":"Ongeldige download-URL","download_link":"download link","empty_files":"Geen bestanden in map","duplicate_task":"Dubbele taak","duplicate_tracker":"Dubbele tracker","this_task_not_ready":"Deze taak is niet gereed. Pauzeer deze taak om deze direct te verwijderen.","some_task_not_ready":"Sommige taken zijn nog niet klaar. Pauzeer deze taken om ze direct te verwijderen.","failed_to_delete_files":"Kan bestanden niet verwijderen","failed_to_delete_files_desc":"Kan sommige bestanden van de taak niet verwijderen. Mogelijk moet u ze handmatig verwijderen","unknown_error":"Onbekende fout: {0}","more_files_are_not_shown":"({0} meer bestanden worden niet weergegeven om prestatieredenen)","no_available_file":"Geen beschikbaar bestand. Wacht tot de taak gereed is.","service_worker_error":"Kan ServiceWorker niet laden om te spelen. Uw browser ondersteunt deze functie mogelijk niet of de ServiceWorker is niet geactiveerd. Mogelijk moet u deze pagina opnieuw laden en het opnieuw proberen.","add_task_first":"U moet eerst een taak toevoegen.","player_task_time":"De speler heeft te veel seconden nodig om zich voor te bereiden op het spel. Er kan iets mis zijn met de taak.","web_mode_hint":"De webmodus van ${displayName} ondersteunt alleen WebRTC-peers. Download voor de beste ervaring ${displayName} Desktop-app.","web_mode_task_hint":"Klik op onderstaande knoppen om een ​​taak toe te voegen. U kunt slechts één taak tegelijk toevoegen.","save_to_local":"Opslaan in lokaal","save_as_zip":"Opslaan als ZIP","creating_save_file":"Opslaan bestand maken...","upload_as_one_directory":"Uploaden als één map","upload_as_single_files":"Uploaden als afzonderlijke bestanden","web_mode_upload_single":"U kunt slechts één bestand uploaden in de webmodus","download_success":"Succesvol downloaden","download_fail":"Download mislukt","wait_for_downloaded_to_share":"Wacht tot de taak is gedownload voordat u deze deelt.","download_with_cellular":"Taken downloaden met mobiel","download_with_cellular_desc":"U gebruikt een mobiel netwerk. Downloadtaken met mobiel kunnen extra kosten in rekening brengen door uw provider.","download_with_cellular_confirm":"Nog steeds downloaden met mobiel","language":"Taal","appearance":"Verschijning","darkModeSystem":"Systeem","darkModeLight":"Licht","darkModeDark":"Donker","basic_setting":"Eenvoudig","hideMenu":"App-menu verbergen (alleen Windows en Linux)","autoHide":"Venster automatisch verbergen","autoStart":"Openen bij inloggen","restore":"Houd grootte en positie van het raam bij het verlaten","autoStartUnfinished":"Hervat automatisch alle onvoltooide taken","default_download_path":"Standaardpad","download_directory":"Directory downloaden","upload_directory":"Directory uploaden","enable_auto_upload":"Automatisch uploaden inschakelen","unlimit_upload_amount":"Onbeperkt uploadbedrag","unlimit_upload_warning":"Sta het uploaden van een groot aantal bestanden toe. Dit kan prestatieproblemen veroorzaken","start":"Beginnen","transport_setting":"Overdragen","upload_limit":"Uploadlimiet","download_limit":"Downloadlimiet","payed_user_share_rate":"Betaald gebruikerspercentage","unlimited":"Onbeperkt","limit_input_error":"Het limietnummer moet positief zijn","BT_setting":"Taak instellingen","saveLinkSeed":"Link opslaan als taakbestand","autoDownload":"Link en inhoud automatisch downloaden","continuousSeeding":"Blijf zaaien tot het handmatig stopt","seedSharingRate":"Zaad verhouding","seedTime":"Zaaitijd (minuten)","task_manage":"Taak beheer","maximumDownloadNum":"Maximaal actieve taken","maximumConnectionsNum":"Maximale verbinding per server","range_error":"Het bereik moet liggen tussen {0} en {1}","random":"willekeurig","breakpointContinuation":"Doorgaan","automaticSkip":"Laat automatisch downloaden zien na het toevoegen van een taak","afterNotification":"Melding nadat het downloaden is voltooid","deleteConfirm":"Er is geen bevestiging vereist voordat de taak wordt verwijderd","submit":"Opslaan en toepassen","discard":"Weggooien","reset":"Resetten","reset_all_settings":"Alle instellingen resetten?","preferences_resetted":"Voorkeuren gereset","traditional_chinese":"traditioneel Chinees","japanese":"Japans","english":"Engels","chinese":"Vereenvoudigd Chinees","advancedSettings":"Geavanceerd","autoUpdate":"Auto Update","autoCheckUpdate":"Automatisch controleren op updates","proxy":"Volmacht","useProxyService":"Proxy inschakelen","trackerService":"Tracker-servers","recommendUse":"Aanbevolen","autoUpdateTrackerServiceList":"Update de trackerlijst elke dag automatisch","manualUpdateTracker":"Handmatige update","manualUpdateSuccess":"Trackerservers succesvol bijwerken","manualUpdateFail":"Kan niet updaten van:","listenPort":"Luister poorten","BTlistenPort":"Poort voor gegevensoverdracht","DHTlistenPort":"Gedistribueerde hashpoort","protocols":"Compatibele protocollen","setDefaultClientForFollowingProtocols":"Instellen als de standaardclient voor de volgende protocollen","magnetUrl":"Magneet","video_file":"Video bestand","audio_file":"Geluidsbestand","security":"Beveiliging","impersonateUserAgent":"Onechte user-agent","RPCauthorizationkey":"RPC-geheim","viewDocument":"Bekijk de RPC Secret-handleiding","developer":"Ontwikkelaar","applicationLogPath":"App-logboekpad","downloadSessionPath":"Sessiepad downloaden","resetDownloadSessionRecord":"Reset downloadsessie","restoreInitialSettings":"Fabrieksinstellingen","preferences_set_successfully":"Bewaar voorkeuren succesvol!","preferences_set_fail":"Voorkeuren opslaan mislukt!","change_not_save":"Wijzigingen worden niet opgeslagen","discard_all_changes":"Alle wijzigingen negeren en vertrekken?","stay_in_page":"Blijf op de pagina","disk_usage":"Schijfgebruik","pause_if_less_space":"Pauzeren en melden als er minder ruimte is dan (MB)","default_video_player":"Standaard videospeler","video_cache_time":"Stream afspeelcache","minutes":"minuten","system_default":"Systeemfout","media_player":"Mediaspeler","library_film_rate":"Beschikbaar filmtarief","library_show_explore":"Toon [Verkennen] pagina","library_setting":"Bibliotheek instelling","library_sync_setting":"Instelling bibliotheeksynchronisatie","keychain_sync_status":"Synchronisatiestatus van sleutelhanger","sync_with_aws":"Synchroniseer sleutelhanger met Amazon Web Services","backup_to_local":"Back-up naar lokaal bestand","enable_sync_with_aws":"Schakel synchronisatie met AWS in","disable_sync_with_aws":"Schakel synchronisatie met AWS uit","disable_sync_with_aws_desc":"Hiermee wordt de opgeslagen sleutel op de server verwijderd. Zorg ervoor dat u uw sleutel al heeft geëxporteerd.","input_independent_password":"Voer een onafhankelijk wachtwoord in","change_independent_password":"Wijzig onafhankelijk wachtwoord","password_error":"Verkeerd wachtwoord","password_invalid":"Wachtwoord fout","key_existed":"Sleutel bestond","key_not_found":"Sleutel niet gevonden","library_recommend":"Bibliotheek aanbevelen","show_all_channels":"Toon alle kanalen op de aanbevelingspagina van de bibliotheek","not_logged_in":"Niet ingelogd","login_to_continue":"Log in om verder te gaan","mnemonic_code":"Mnemonische code","wordlist":"Woordenlijst","restore_code":"Herstellen vanuit code","generate_code":"Code genereren","export_mnemonic_code":"Export geheugensteuntje code","import_mnemonic_code":"Mnemocode importeren","print":"Afdrukken","save_as_txt":"Opslaan als txt","save_as_pdf":"Opslaan als pdf","from_file":"Van bestand","not_valid_mnemonic_code":"Dit is geen geldige geheugensteuncode","cannot_parse_code_as_key":"Kan deze geheugensteuncode niet ontleden als bibliotheeksleutel","import_key_hint":"Weet u zeker dat u deze sleutel wilt importeren? Hiermee wordt uw oude sleutel in de bibliotheek hersteld.","import_key_confirm":"Ja, importeer het.","library_preload":"Taken vooraf laden vanuit de bibliotheek","show_preload":"Vooraf geladen taken weergeven","set_download":"Downloadmap instellen","set_download_desc":"Voor de macOS App Store-versie bevindt de standaard downloadmap zich in de sandbox van de app en wordt deze verwijderd nadat de app is verwijderd. Als u uw downloadbestanden wilt behouden, moet u handmatig een andere downloaddirectory selecteren.","home":"Thuis","home_caption":"Downloaden/uploaden en mediabestanden","library":"Bibliotheek","library_caption":"Verken mediabronnen","player":"Speler","player_caption":"Mediaspeler","credits":"Credits","credits_caption":"Accountsaldo controleren","account":"Rekening","account_caption":"Aanmelden/Aanmelden/Beheer","settings":"Instellingen","settings_caption":"Instellingen voor app, speler, account","development":"Ontwikkeling","development_caption":"Ontwikkelaarsmodus voor intern gebruik","basic":"Eenvoudig","basic_caption":"Basis instellingen","advanced":"Geavanceerd","advanced_caption":"Geavanceerde instellingen","blockchain":"Portemonnee","blockchain_caption":"${displayName} Gedecentraliseerde portemonnee","internal_notice":"Interne vrijgavemelding","release_notes":"Release-opmerkingen","terms_and_conditions":"Voorwaarden","license_and_listen_notices":"Licentie en Luister Open Source Kennisgevingen","close":"Dichtbij","success":"Succes","fail":"Mislukking","account_email_invalid_address":"Ongeldig e-mailadres","account_email_invalid_domain":"Ongeldig e-maildomein","account_email_unknown_status":"Onbekende status van e-mailbezorging","account_email_unavailable_address":"E-mailadres niet beschikbaar","account_email_suppressed_address":"Onderdrukt e-mailadres","account_loading":"Bezig met laden...","account_is_required":"Is benodigd","account_sign_in_your_account":"Aanmelden","account_username":"Gebruikersnaam","account_username_email_phone":"Telefoonnummer of e-mail","account_password":"Wachtwoord","account_new_password":"Nieuw paswoord","account_re_enter_password":"Geef het wachtwoord opnieuw in","account_password_not_equal":"Twee wachtwoorden zijn niet gelijk","account_new_password_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","account_forgot_your_password":"Je wachtwoord vergeten?","account_reset_password":"Wachtwoord opnieuw instellen","account_sign_in":"Aanmelden","account_signed_in":"Ingelogd","account_sign_up":"Aanmelden","account_find_your_account":"Vind je account","account_enter_your_username":"Voer uw telefoonnummer of e-mailadres in","account_search":"Zoekopdracht","account_email_sent_tip":"Er is een e-mail met een verificatiecode naar uw e-mailadres verzonden:","account_phone_sent_tip":"Er is een sms met een verificatiecode naar je telefoon gestuurd:","account_email_phone_sent_tip":"E-mail en sms met verificatiecode zijn respectievelijk naar uw e-mail en telefoon verzonden:","account_software_token_tip":"MFA is ingeschakeld voor uw account. Om het inloggen te voltooien, schakelt u uw apparaat in of bekijkt u het en typt u de TOTP","account_reset_your_password":"Stel je wachtwoord opnieuw in","account_verification_code":"Verificatie code","account_resend_code":"Code nogmaals versturen","account_code_has_been_resent":"Verificatiecode is opnieuw verzonden","account_password_has_been_reset":"Wachtwoord is gereset","account_submit":"Indienen","account_sign_up_your_account":"Registreer uw account","account_fill_required_fields":"Vul hieronder de verplichte velden in.","account_fill_optional_fields":"Vul onderstaande optionele velden in.","account_email":"E-mail","account_invitation":"Uitnodiging","account_invitation_code":"Uitnodigingscode","account_i_accept":"ik aanvaard","account_license_terms":"de licentie en voorwaarden","account_next":"Volgende","account_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren.","account_verify_fill_optional_fields":"Controleer en vul optionele velden in.","account_nickname":"Bijnaam","account_gender":"Geslacht","account_male":"Mannelijk","account_female":"Vrouwelijk","account_not_say":"Niet zeggen","account_birthday":"Verjaardag","account_phone_number":"Telefoonnummer","account_locale":"Lokaal","account_tip_verified":"Geverifieerd, aanmelden...","account_verified":"geverifieerd","account_unverified":"niet geverifieerd","account_signed_up":"Ingeschreven","account_verify_your_identity":"Verifieer uw identiteit","account_finish":"Finish","account_signed_out":"Uitgelogd","account_change_password":"Verander wachtwoord","account_change_email":"E-mailadres wijzigen","account_change_phone_number":"Wijzig telefoonnummer","account_sign_out":"Afmelden","account_current_password":"Huidig ​​wachtwoord","account_re_enter_new_password":"voer nieuw wachtwoord opnieuw in","account_personal_information":"Informatie","account_edit":"bewerking","account_reset":"resetten","account_greeting":"Hallo,","account_cancel":"Annuleren","account_change":"wijziging","account_not_set":"niet ingesteld","account_setting":"instelling","account_copy_code":"kopieer de code","account_account_setting":"Rekening","account_task_page":"Krediet taak","account_setting_caption":"Wijzig wachtwoord / bewerk informatie","account_security":"Beveiliging","account_want_to_join":"Wil je meedoen?","account_sign_in_now":"Aanmelden","account_changed":"gewijzigd","account_clipboard_with_invitation_code":"Uitnodigingscode gekopieerd","account_clipboard_with_code":"De code gekopieerd","account_invitation_code_dialog_tip":"Je stuurt je vriend een e-mail of sms met een uitnodigingscode:","account_available":"beschikbaar","account_invited":"uitgenodigd","account_used":"gebruikt","account_invitation_code_sent":"Uitnodigingscode is verzonden","account_invitation_channel_required":"Vul minimaal één uitnodigingskanaal in","account_no_verification_code":"Verificatiecode niet ontvangen?","account_no_phone_number":"Geen telefoonnummer?","account_sign_up_by_email":"Aanmelden per e-mail","account_no_email":"Geen e-mail?","account_sign_up_by_phone_number":"Aanmelden via telefoonnummer","account_no_totp":"Geen TOTP?","account_tip_no_totp":"Als er geen TOTP is, stel dan eerst TOTP in","account_setup_totp":"Stel TOTP in","account_contact_information":"Contactgegevens","account_delete_account":"Account verwijderen","account_deleted":"verwijderd","account_can_not_mfa":"MFB in de problemen?","account_set_mfa_type":"MFA configureren","account_disable_mfa":"MFA uitschakelen","account_disabled_mfa":"MFA uitgeschakeld","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFB","account_totp":"TOTP","account_not_recommend":"Niet aan te raden","account_oauth_sign_in_with":"Log in met {provider}","account_sign_in_failed":"Inloggen mislukt","account_tip_oath_sign_up":"Het e-mailadres dat overeenkomt met het huidige {provider}-account: {email} heeft nog geen account aangemaakt","account_tip_confirm_delete_account":"Voer het huidige accountwachtwoord in om te bevestigen dat u het huidige account wilt verwijderen. (Verwijderde accounts kunnen niet worden hersteld)","account_tip_config_mfa":"U kunt ervoor kiezen om SMS of op tijd gebaseerd eenmalig wachtwoord (TOTP) als secundaire authenticatie te gebruiken","account_error_can_not_enable_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om MFA in te schakelen","account_tip_can_not_enable_sms_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om SMS MFA in te schakelen","account_tip_can_not_enable_totp_mfa":"U moet uw e-mailadres en mobiele telefoonnummer koppelen om TOTP MFA in te schakelen","account_tip_setup_totp":"Gebruik apps zoals Authenticator om onderstaande QR-code te scannen of kopieer de code handmatig om een ​​security token toe te voegen","account_tip_verify_totp":"Controleer uw TOTP","account_link_your_social_account":"Bind uw sociale account","account_unlink_your_social_account":"Ontkoppel sociaal account","account_tip_confirm_link":"Weet u zeker dat u de lopende rekening aan uw {provider}-rekening wilt binden?","account_tip_confirm_unlink":"Weet u zeker dat u uw gebonden {provider}-account wilt annuleren?","account_tip_linking":"verbindend...","account_tip_unlinking":"Ontbinden...","account_linked":"Gebonden","account_unlinked":"Ongebonden","account_error_can_not_link_to_the_linked_account":"Het huidige sociale account is gekoppeld aan een ander account","account_error_can_not_link_to_the_mismatched_email":"Het huidige account en het e-mailadres van het sociale account zijn niet consistent","account_error_can_not_link_before_email_verified":"Het sociale account kan niet worden gekoppeld omdat het huidige account niet is gebonden aan een geverifieerde e-mail","account_tip_confirm_verify_email_phone":"Of u een verificatiecode naar het e-mailadres en telefoonnummer van het huidige account moet sturen om uw identiteit te verifiëren?","account_tip_confirm_verify_phone":"Of u een verificatiecode naar het huidige telefoonnummer moet sturen om uw identiteit te verifiëren?","account_error_1_message_60_seconds":"Er kan slechts één sms of e-mail per 60 seconden worden verzonden, wacht nog eens {delta} seconden","account_error_10_messages_per_day":"Elke mobiele telefoon of e-mail kan maximaal 10 berichten binnen 24 uur verzenden","account_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","Network Error":"Er is een probleem met het netwerk, probeer het later opnieuw","account_error_user_not_exist":"Gebruiker bestaat niet","account_error_incorrect_username_or_password":"foute gebruikersnaam of wachtwoord","account_error_incorrect_original_password":"Onjuist origineel wachtwoord","account_error_incorrect_password":"Incorrect wachtwoord","account_error_username_not_found":"gebruikersnaam niet gevonden","account_error_can_not_reset_for_no_verified":"Kan het wachtwoord voor het niet-geverifieerde account niet resetten","account_error_invalid_verification_code":"Onjuiste verificatiecode, probeer het opnieuw","account_error_expired_verification_code":"Verificatiecode is verlopen, probeer het opnieuw","account_error_password_not_long_enough":"Wachtwoord is niet lang genoeg","account_error_attempt_limit_exceeded":"Pogingslimiet overschreden, probeer het na enige tijd opnieuw.","account_error_password_attempts_exceeded":"Wachtwoordpogingen overschreden.","account_error_invalid_phone_number_format":"Ongeldig telefoonnummerformaat","account_error_no_cell_phone_prefix":"Selecteer het voorvoegsel voor het telefoonnummer","account_error_username_already_exists":"De gebruikersnaam bestaat al","account_error_you_need_to_accept_license_terms":"U moet eerst de licentie en voorwaarden accepteren","account_error_inactive_code":"De uitnodigingscode is geen geactiveerde code","account_error_non_existent_code":"De uitnodigingscode bestaat niet","account_error_unexpected":"Onverwachte fout","account_error_can_not_change_email_before_phone_bound":"Het e-mailadres kan niet worden gewijzigd voordat het telefoonnummer is gebonden","account_error_can_not_change_email_before_unbound_social_account":"De e-mail kan niet worden gewijzigd voordat het sociale account is losgekoppeld","account_error_can_not_change_phone_before_email_bound":"Het telefoonnummer kan niet worden gewijzigd voordat de e-mail is gebonden","account_error_can_not_change_email_phone_with_mfa_enabled":"Kan e-mailadres of mobiel telefoonnummer niet wijzigen voordat MFA is uitgeschakeld","account_error_not_supported_yet":"Momenteel niet ondersteund","account_error_same_email":"Het nieuwe e-mailadres mag niet hetzelfde zijn als het oorspronkelijke e-mailadres","account_error_same_phone":"Het nieuwe telefoonnummer kan niet hetzelfde zijn als het oorspronkelijke telefoonnummer","account_error_email_not_exists":"Email adres bestaat niet","account_error_email_already_exists":"Er bestaat al een account met het opgegeven e-mailadres.","account_error_phone_already_exists":"Er bestaat al een account met het opgegeven telefoonnummer.","account_error_mfa_token_mismatch":"Softwaretokencode komt niet overeen","account_error_recaptcha_not_loaded":"Er is een probleem met het netwerk. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_recaptcha_validation_failed":"ReCAPTCHA-validatie mislukt. Maak opnieuw verbinding met het netwerk en start de applicatie opnieuw om het opnieuw te proberen.","account_error_sign_in_in_progress":"Aanmeldingspoging in behandeling is al bezig","account_field_range":"Beperk de invoer van {0}-{1} tekens","account_field_only_alphanumeric":"Ondersteunt alleen alfanumeriek","account_field_only_alphanumeric_and_symbol":"Ondersteunt alleen alfanumeriek en symbolen","account_field_only_chinese_alphanumeric_space_underline":"Ondersteunt alleen alfanumeriek, spatie, underscore","account_field_prefix_without_number_space":"Het eerste teken mag geen cijfer of spatie zijn","account_field_suffix_without_space":"Kan niet eindigen op een spatie","account_field_without_repeat_space":"Kan niet meerdere spaties achter elkaar gebruiken","account_field_can_not_only_alphanumeric":"U kunt niet alleen letters of cijfers gebruiken","account_field_must_have_number_characters":"Moet cijfertekens hebben","account_field_verification_code":"De verificatiecode moet uit zes cijfers bestaan","account_field_invitation_code":"Uitnodigingscode moet alfanumeriek zijn","account_field_phone_number":"Ongeldig telefoonnummerformaat","account_invalid_email_format":"ongeldige email formaat","account_sign_out_confirm":"Weet u zeker dat u zich wilt afmelden? Hierdoor worden alle taken stopgezet.","account_sign_out_anyway":"Meld je toch af","account_signing_out":"Uitloggen...","account_request_save_settings":"Instellingen worden niet opgeslagen. U moet de wijzigingen opslaan voordat u zich afmeldt.","pay":"Betalen","pay_with_credit":"Betalen voor het versnellen van downloaden. Heeft ongeveer {0} tegoed nodig","pay_with_credit_payed":"Versnellen. Heeft nog ongeveer {0} tegoed nodig","create_payment":"Betaling aanmaken","pay_target":"Doel","pay_for_torrent":"Betaal voor {0}","your_subid":"Uw subID","your_credits":"Uw tegoeden","pay_point_for_data":"Betaal {0} punt voor {1} data","auto_renew":"Automatisch verlengen inschakelen","transaction_details":"transactie details","transaction_id":"ID kaart","transaction_payer":"Betaler","transaction_payee":"Begunstigde","transaction_category":"Categorie","transaction_changed_amount":"Gewijzigd bedrag","transaction_meta":"Meta","transaction_status":"Toestand","transaction_creation_time":"Creatie tijd","receipt_code":"Ontvangstcode","transfer_amount":"Bedrag overmaken","code_the_receipt_code":"Kopieer onderstaande boncode naar de betaler","fill_the_receipt_code":"Maak over door de door de begunstigde verstrekte betaalcode in te vullen","expense":"Kosten","copied":"Gekopieerd","transfer":"Overdracht","receive":"Ontvangen","copy":"Kopiëren","withdraw_fund":"Fonds opnemen","category_paydata_payer":"Kosten van gegevens","category_paydata_payee":"Inkomsten van gegevens","category_transfer":"Overdracht","category_bonus":"Bonus","category_recharge":"Opladen","status_pending":"in behandeling","status_completed":"voltooid","status_finish":"finish","status_failed":"mislukt","tip_invalid_receiver":"Ongeldige ontvangercode","tip_invalid_amount":"Het kredietbedrag moet een float zijn in het bereik van 0-1000 (minimale precisie is 0,001)","credit_get_more":"Krijg meer kredieten","credit_no_data":"Geen gegevens beschikbaar","credit_loading":"Bezig met laden...","credit_not_enough_amount":"Niet genoeg tegoeden","credit_amount_not_enough":"Niet genoeg tegoeden","credit_payee_not_exist":"Begunstigde bestaat niet","credit_invalid_amount":"Ongeldig tegoedbedrag","credit_can_not_transfer_to_yourself":"Kan niet naar jezelf overdragen","credit_latest":"Laatste","credit_error_network":"Er is een probleem met het netwerk, probeer het later opnieuw","add_subtitles":"Ondertiteling toevoegen","open_file":"Open bestand...","advanced_options":"Geavanceerde mogelijkheden","title":"Titel","location":"plaats","subtitle_file":"ondertitel bestand","unsupported_subtitle_type":"Het bestandstype {0} is geen ondersteund ondertitelingstype","not_default_player":"De standaard videospeler is niet ingesteld","this_is_an_audio_file":"Dit is een audiobestand","the_added_subtitle_already_exists":"De toegevoegde ondertitel bestaat al","stop_stream_player":"De streaming media is beëindigd omdat de taak is onderbroken of verwijderd","stop_player":"De speler is beëindigd omdat het bestand is verwijderd","playing_timeout_hint":"Wacht tijden uit. Controleer de taak","autoplay_hint":"Autoplay kan worden geblokkeerd door uw browser. Als de speler niet speelt, klik dan op het scherm om door te gaan","remove_playing_confirm":"{0} speelt nog steeds, verwijder het om de speler te stoppen. Weet je zeker dat je het wilt verwijderen?","unsupported_in_browser":"Nog niet ondersteund in browsermodus","client":"Cliënt","warning":"Waarschuwing","enable":"Inschakelen","disable":"Uitzetten","auto":"Auto","encrypt_connection":"Versleutel de verbinding","encrypted_connection":"Versleutelde verbinding","non_encrypted_connection":"Niet-versleutelde verbinding","connected_wires_not_disconnect":"Aangesloten draden worden niet losgekoppeld","audio":"geluid","video":"video","image":"afbeelding","subtitle":"ondertitel","zip":"ritssluiting","text":"tekst","unknown":"onbekend","add":"Toevoegen","undo":"Ongedaan maken","backup":"Back-up","not_default_app":"${displayName} is niet je standaard app voor torrent en media, wil je deze als standaard instellen?","dont_show_again":"Niet meer laten zien","go_to_settings":"Ga naar Instellingen","about_alphabiz":"Over ${displayName}","last_check_at":"Laatste controle om","update_channel":"Kanaal bijwerken","check_for_update":"Controleer op updates","checking_for_update":"Controleren op updates...","no_update_available":"Geen update beschikbaar","update_available":"Update beschikbaar","update_now":"Update nu","update_later":"Later bijwerken","click_to_update":"Klik op de knop NU UPDATEN om te downloaden en bij te werken","update_failed":"Update mislukt","update_failed_message":"Er is een fout opgetreden tijdens het updaten:","check_shasum_failed":"Kan de integriteit van het installatieprogramma niet controleren","downloading_update":"Update downloaden...","ready_to_update":"Klaar om te updaten","restart_to_update":"Update wordt gedownload. ${displayName} wordt afgesloten om even bij te werken.","already_latest":"De huidige versie ({0}) is al de laatste","update_timeout":"Time-out bijwerken","no_available_release":"Geen beschikbare uitgave","no_available_installer":"Geen beschikbaar installatieprogramma","feedback":"Feedback","select_a_type":"Selecteer een soort","category":"Categorie","select_a_category":"Kies een categorie","require_title":"Titel is vereist","describe_your_problem":"Beschrijf uw probleem","report_a_bug":"Meld een fout","request_a_new_feature":"Vraag een nieuwe functie aan","download_or_upload":"Downloaden uploaden","others":"Anderen","submit_with_system_info":"Dien in met systeeminfo","submit_feedback":"Feedback verzenden","tweet_us":"Tweet ons","tweet_too_long":"Tweet is te lang","delete_characters":"Verwijder ten minste {0} karakter(s)","rest_characters":"U kunt {0} meer teken(s) invoeren","update_alphabiz":"Bijwerken ${displayName}","current_version":"Huidige versie","cancel_update":"Update annuleren","slow_download_speed":"Te langzaam downloaden","slow_download_speed_caption":"Het downloaden van het installatieprogramma is nu te traag. Controleer de netwerkstatus","update_canceled":"Update geannuleerd","current_version_release_time":"Releasetijd van de huidige versie","expired_app":"${displayName} Verlopen","version_out_of_date":"Versie verouderd","have_to_update":"De versie van ${displayName} is verouderd. Sommige protocollen of API\'s zijn verouderd. U moet ${displayName} updaten voordat u doorgaat.","exit_alphabiz":"Uitgang ${displayName}","exit_and_update":"Sluit af en pas de update toe","new_version_hint":"Nieuwe versie is beschikbaar","no_new_version":"Geen nieuwe versie beschikbaar","current_is_latest":"De huidige versie is al de nieuwste","click_to_check_update":"Klik op de knop [CHECK FOR UPDATE] om te controleren op updates","download_latest_version_from_website":"Bezoek de officiële website om de nieuwste versie te downloaden","to_the_website":"Naar de website","network_diagnotic":"Netwerk diagnose","diagnotic":"Diagnostisch","click_to_check":"Klik om te controleren","click_to_check_again":"Klik om opnieuw te controleren","checking":"Controleren","online":"Online","offline":"offline","dns_look_up":"DNS-zoekopdracht","error":"Fout","aws_service":"AWS-service","network_pings":"Netwerkping","not_found":"Niet gevonden","packet_loss":"Pakket(ten) verloren","official_site":"Officiële site","download_test":"Test downloaden","test_task":"Testtaak {0}","download_failed":"Download mislukt","second_spend":"{0} s uitgeven","open_default_player_failed":"Kan de standaardspeler niet openen","copied_to_clipboard":"Gekopieerd naar het klembord","go_to":"Ga naar","region_not_available":"Regio niet beschikbaar","region_not_available_message":"Sorry! Uw regio is niet beschikbaar om deze app te gebruiken. Deze app stopt na {0} seconden","confirm":"Bevestigen","no_available_result":"Geen beschikbaar resultaat","invalid_password_format":"ongeldig wachtwoord formaat","invalid_password_format_same":"Het wachtwoord is hetzelfde als het originele wachtwoord","error_password":"Verkeerd wachtwoord","keychain_setting":"Sleutelhanger","setting_description":"Cloudopslag: sla belangrijke gegevens op in de cloud.\\nWachtwoord wijzigen: Wijzig het wachtwoord voor de mediabibliotheeksleutel.\\nMnemonic: een alternatieve methode voor het genereren en herstellen van sleutels.\\nLokale sleutel importeren: importeer de lokaal opgeslagen sleutel in de mediabibliotheek.\\nExportsleutel: Slaat de huidige mediabibliotheekgegevens op naar de lokale of cloud.\\nBack-upsleutel naar cloud: werk de huidige mediabibliotheekgegevens bij naar de cloud voor back-up.","refresh_status":"Status bijwerken","confirm_import_key":"Bevestig de importsleutel","confirm_update_cloud_key":"Je hebt al een sleutel in de cloud. Als u de sleutel bijwerkt, wordt de originele sleutel overschreven. Weet u zeker dat u de in de cloud opgeslagen sleutel wilt bijwerken","export_key_with_cloud":"Voer het onafhankelijke wachtwoord in dat u hebt ingesteld om de bibliotheeksleutel die in de cloud is opgeslagen te exporteren en vergrendel het sleutelbestand met het ontgrendelingswachtwoord","store_cloud_key_prompt_password":"Voer een onafhankelijk wachtwoord in om de bibliotheeksleutel in de cloud op te slaan","update_cloud_key_prompt_password":"Stel een onafhankelijk wachtwoord in om de bibliotheeksleutel te coderen en update deze vervolgens naar de cloud","enable_cloud_storage_prompt_password":"Stel een wachtwoord in voor de sleutel die in de cloud is opgeslagen, waarmee u de sleutel uit de cloud kunt ophalen","input_unlock_password":"Stel het ontgrendelingswachtwoord in","export_local_prompt_password":"Stel een ontgrendelingswachtwoord in om uw sleutelbestand te versleutelen. We slaan dit wachtwoord niet voor u op, dus als u uw wachtwoord kwijtraakt, kunt u uw bibliotheeksleutel niet ontgrendelen","require_unlock_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","require_independent_password":"Voer het onafhankelijke wachtwoord in om de sleutel in de cloud op te slaan","import_local_prompt_password":"Het sleutelbestand is vergrendeld, voer het ontgrendelingswachtwoord in","select_encrypt_mode":"Selecteer de coderingsmodus","update_cloud_key":"Werk de sleutel bij die in de cloud is opgeslagen","backup_to_cloud":"Maak een back-up van de bibliotheeksleutel naar de cloud","save_local":"Sla de bibliotheeksleutel op als lokaal gecodeerd bestand","create_new_key":"Maak een nieuwe bibliotheeksleutel aan","creating_lib_key":"Bibliotheeksleutel maken...","loading_lib_key":"Bibliotheeksleutel laden...","failed_to_create_lib_key":"Kan bibliotheeksleutel niet maken","failed_to_load_lib_key":"Kan bibliotheeksleutel niet laden","import_local_key":"Sleutel lokaal importeren","import_lib_key_from_local":"Importeer lokaal een bibliotheeksleutel","import_from_cloud":"Importeer de bibliotheeksleutel uit de cloud","create_or_import_key":"Bibliotheeksleutel maken of importeren","create_or_import_key_desc":"Bibliotheeksleutel is een onafhankelijke sleutel die wordt gebruikt om inhoud op te halen en te publiceren met een gedecentraliseerde database.","store_your_lib_key":"Bewaar uw bibliotheeksleutel","export_cloud_key":"Sleutel exporteren vanuit de cloud","export_current_key":"Exporteer huidige sleutel","change_password":"Verander wachtwoord","enable_cloud_storage":"Schakel cloudopslag in","disable_cloud_storage":"Schakel cloudopslag uit","disable_cloud_storage_desc":"Als u cloudopslag uitschakelt, wordt de in de cloud opgeslagen sleutel verwijderd. Zorg ervoor dat de sleutel lokaal wordt opgeslagen","sync_at":"Synchroniseren op: {time}","cloud_storage_enabled":"Synchroniseer sleutelhanger met {storage}","cloud_storage_disabled":"Cloudopslag uitgeschakeld","saved_locally":"Lokaal opgeslagen","export_key":"Sleutelbestand exporteren","cloud_independent_password":"Cloudonafhankelijk wachtwoord","key_file_unlock_password":"Sleutelbestand ontgrendelingswachtwoord","re_enter_unlock_password":"Voer het ontgrendelingswachtwoord opnieuw in","independent_password_not_enabled":"Het huidige wachtwoord is het wachtwoord van het Alphabiz-account (er is geen onafhankelijk wachtwoord ingesteld)","use_cognito_hash":"Gebruik het wachtwoord van het Alphabiz-account","use_independent_password":"Gebruik onafhankelijk wachtwoord","keychain_lib":"bibliotheek sleutel","loading_keychain_state":"Sleutelhanger laden...","backing_up":"Ondersteunen...","backup_current_key":"Maak een back-up van de huidige sleutel naar de cloud","cloud_lib_key_not_existed":"bibliotheeksleutel bestaat niet in Cloud","open_keychain_file":"Open Sleutelhangerbestand","confirm_open_abk":"Wilt u het ABK-bestand openen","use_the_key":"Gebruik de sleutel","backup_the_key":"Maak een back-up van de sleutel naar de cloud","keychain_data_does_not_exist":"Sleutelhangergegevens bestaan ​​niet","timeout of 0ms exceeded":"Er is een probleem met het netwerk, probeer het later opnieuw","XhrError":"Er is een probleem met het netwerk, probeer het later opnieuw","payer credit amount is not enough":"Niet genoeg tegoeden","payee does not exist":"Begunstigde bestaat niet","block_list_manage":"Blokkeerlijst beheren","blocked_users":"Geblokkeerde gebruikers","blocked_channels":"Geblokkeerde kanalen","unblock_user":"Deblokkeer gebruiker","unblock_channel":"Kanaal deblokkeren","no_blocked_user":"Geen geblokkeerde gebruiker","no_blocked_channel":"Geen geblokkeerd kanaal","field_required":"{0} is vereist","setting":"Instelling","unknown_media":"Onbekende media","settings_button_visible":"Knop zichtbaar","settings_setting":"Instelling","settings_playback_rate":"Afspeelsnelheid","settings_subtitle":"Ondertitel","settings_pip":"Pip","settings_fullscreen":"Volledig scherm","settings_subtitle_options":"Ondertitel opties","settings_normal":"Normaal","settings_italic":"Cursief","settings_lighter":"Aansteker","settings_bolder":"Bolder","settings_small":"Klein","settings_large":"Groot","about":"Over","services":"Diensten","hide":"Verbergen","hide_others":"Verberg anderen","show_all":"Toon alles","quit":"Ontslag nemen","edit":"Bewerking","redo":"Opnieuw doen","cut":"Snee","paste":"Plakken","select_all":"Selecteer alles","view":"Weergave","reload":"Herladen","toggle_full_screen":"Volledig scherm activeren","toggle_developer_tools":"Schakel ontwikkelaarstools in","window":"Raam","minimize":"Minimaliseren","bring_all_to_front":"Breng alles naar voren","help":"Hulp","github_repo":"Github-opslagplaats","issues":"Problemen","learn_more":"Kom meer te weten","learn_spelling":"Leer spelling","lookup_selection":"Zoek \\"{selection}\\" op","search_with_google":"Zoek met Google","save_as":"Opslaan als","save_image":"Afbeelding opslaan","save_image_as":"Sla afbeelding op als ...","copy_link":"Kopieer link","save_link_as":"Link opslaan als ...","copy_image":"Kopieer afbeelding","copy_image_as":"Afbeelding kopiëren als...","copy_image_address":"Kopieer afbeeldingsadres","download_complete":"Download compleet","download_complete_message":"{0} wordt gedownload","is_running":"{0} is actief","open":"{0} openen","launch_problem":"Start probleem","ask_clear_data":"Het lijkt erop dat je {0} probeert te starten, maar meerdere keren is mislukt.\\nWilt u alle app-gegevens wissen en later proberen te starten?","launch_directly":"Start direct","clear_all_data":"Wis alle gegevens","ask_clear_confirm":"Hiermee worden alle configuraties, logs en gebruikersgegevens verwijderd!\\nHierna moet u mogelijk {0} opnieuw starten.\\nWeet u zeker dat u gegevens wilt wissen?","confirm_launch":"Nee, start direct","confirm_clear":"Ja, wis alle gegevens"}')},"5fa3":function(e,t,a){"use strict";(function(e){var n=a("e75b"),o=a("9572"),i=a("e74d"),r=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const s=new n["a"].Rest("ABDevRest"),l={currentRoute:"/library",user:{id:"",name:"",description:"",avatar:""},userLoggedIn:!1,keychainState:{keychainData:{},unset:!0,hash:"",timestamps:{metadata:0},lib:null},followQueue:[]},c={updateRoute(e,t){e.currentRoute=t},setUser(e,t){e.user=t},setKeychainState(e,t){Object.assign(e.keychainState,t)},addFollowQueue(e,t){e.followQueue.includes(t)||e.followQueue.push(t)},removeFollowQueue(e,t){while(e.followQueue.includes(t))e.followQueue.splice(e.followQueue.indexOf(t),1)}},d=()=>r(void 0,void 0,void 0,(function*(){const e=()=>r(void 0,void 0,void 0,(function*(){const t=yield i["a"].currentUserInfo();return t&&t.attributes?t.attributes:yield e()}));return yield e()})),u={syncKeychainState({state:e,commit:t}){return r(this,void 0,void 0,(function*(){const a=()=>r(this,void 0,void 0,(function*(){const e=yield d();let{"custom:key_metadata":t,"custom:key_lib":a}=e;return t=t?JSON.parse(t):{unset:!0,timestamps:{}},{metadata:t,lib:a}})),n=yield a();if(n){const e=e=>{if(!e.lib)return null;if(e.lib.startsWith("{"))return JSON.parse(e.lib);throw new Error("Failed to parseLib")};t("setKeychainState",{keychainData:n,unset:n.metadata.unset,hash:n.metadata.hash||"",timestamps:n.metadata.timestamps||{},lib:e(n)})}return e.keychainState}))},changeKeychainPassword(e,{oldPassword:t,password:a}){return r(this,void 0,void 0,(function*(){if(!t&&!a)throw Error("Invalid arguments");let e;t||(e="from_cognito"),a||(e="to_cognito"),yield s.post("/keychain/changePassword",{password:t?o["a"].digestPassword(t):void 0,newPassword:a?o["a"].digestPassword(a):void 0,type:e})}))},getKeychainCloud({state:e,commit:t,dispatch:a},{password:n,mode:i,keyName:l}){return r(this,void 0,void 0,(function*(){const e=()=>r(this,void 0,void 0,(function*(){if(!["lib"].includes(l))throw new Error("invalid_keychain_keyname");const e=yield d().then((e=>!!e[`custom:key_${l}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>r(this,void 0,void 0,(function*(){if("cognito_hash"===i){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===i){if(!n)throw new Error("keychain_password_not_found");return o["a"].digestPassword(n)}throw new Error("invalid_keychain_mode")})))(),c=yield s.post("/keychain/getKeychain",{password:t,keyName:l});if(!c)throw new Error("password_error");if(["epriv","epub","priv","pub"].some((e=>!c[e])))throw new Error("invalid_key");return console.log("getKeychainFromCloud:",c),c}))},createKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:i,mode:l,keyName:c}){return r(this,void 0,void 0,(function*(){const e=()=>r(this,void 0,void 0,(function*(){if(!["lib"].includes(c))throw new Error("invalid_keychain_keyname");const e=yield d().then((e=>!!e[`custom:key_${c}`]));if(e)throw new Error("keychain_data_existed")}));yield e();const t=yield(()=>r(this,void 0,void 0,(function*(){if("cognito_hash"===l){const e=yield a("syncKeychainState");if(!e.unset)throw new Error("invalid_keychain_mode");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===l){if(!i)throw new Error("keychain_password_not_found");return o["a"].digestPassword(i)}throw new Error("invalid_keychain_mode")})))();yield s.post("/keychain/enableLibKey",Object.assign(Object.assign(Object.assign({},"cognito_hash"===l?{}:{password:t}),"cognito_hash"===l?{type:"cognito"}:{}),{keyName:c,keyData:JSON.stringify(n)})).catch(console.log)}))},updateKeychainCloud({state:e,commit:t,dispatch:a},{keyObj:n,password:i,mode:l,keyName:c}){return r(this,void 0,void 0,(function*(){const e=()=>r(this,void 0,void 0,(function*(){if(!["lib"].includes(c))throw new Error("invalid_keychain_keyname");const e=yield d().then((e=>!!e[`custom:key_${c}`]));if(!e)throw new Error("keychain_data_does_not_exist")}));yield e();const t=yield(()=>r(this,void 0,void 0,(function*(){if("cognito_hash"===l){const e=yield a("syncKeychainState");if(!e.hash)throw new Error("cognito_hash_not_found");return e.hash}if("independent_password"===l){if(!i)throw new Error("keychain_password_not_found");return o["a"].digestPassword(i)}throw new Error("invalid_keychain_mode")})))();yield s.post("/keychain/updateKeychain",Object.assign(Object.assign(Object.assign({},"cognito_hash"===l?{}:{password:t}),"cognito_hash"===l?{type:"cognito"}:{}),{keyName:c,keyData:JSON.stringify(n)}))}))},disableKeychainCloud(e){return r(this,void 0,void 0,(function*(){yield s.post("/keychain/disableKeychain")}))}};Object.defineProperty("undefined"===typeof window?e:window,"rest",{get(){return s}});const _={libraryRoute(e){return e.currentRoute},libraryUser(){return l.user},keychainState(){return l.keychainState},followQueue(e){return e.followQueue}},p={namespaced:!1,state:l,mutations:c,actions:u,getters:_};t["a"]=p}).call(this,a("0ee4"))},"5fc6":function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));const n=a("d310").isElectron();function o(e){if(!n||"string"!==typeof e)return e;const t=a("a3fc"),o=t.basename(e);return{name:o,path:e}}},6:function(e,t){},"603c":function(e,t,a){},"61a1":function(e,t,a){"use strict";a.d(t,"b",(function(){return xi}));var n=a("ff9b"),o=a("fe87"),i=(a("de6c"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-container",class:{larger:!e.isElectron}},[a("q-toolbar",{staticClass:"library-header q-py-sm flex",staticStyle:{"flex-wrap":"nowrap","max-height":"57px"}},[e.lib.search.options.length?[e.$q.screen.xs?a("q-btn",{attrs:{unelevated:"",round:"",icon:"search"}},[a("q-menu",[a("q-card",{staticClass:"q-pa-md"},[a("q-select",{staticClass:"q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}}),a("q-input",{attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})],1)],1)],1):a("q-input",{staticStyle:{width:"320px"},attrs:{outlined:"",dense:"",type:"text",label:e.$t("search")},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"before",fn:function(){return[a("q-select",{staticStyle:{"min-width":"120px"},attrs:{dense:"",outlined:"",label:e.$t("type"),options:e.lib.search.options},model:{value:e.lib.search.option,callback:function(t){e.$set(e.lib.search,"option",t)},expression:"lib.search.option"}})]},proxy:!0},{key:"append",fn:function(){return[a("q-icon",{attrs:{name:"search"}})]},proxy:!0}],null,!1,311008788),model:{value:e.lib.search.text,callback:function(t){e.$set(e.lib.search,"text",t)},expression:"lib.search.text"}})]:e._e(),a("q-space"),a("div",{staticClass:"header-bar-status text-grey q-my-sm q-ml-xs flex no-wrap items-center text-right overflow-hidden"},[a("div",{staticClass:"from-network-hint",staticStyle:{"flex-shrink":"1"}},[e._v(e._s(e.$t("lib_from_network")))]),a("q-badge",{staticClass:"connection-status cursor-pointer q-ml-xs",attrs:{"text-color":"white",color:e.statusColor},on:{click:function(t){e.peerDialog=!0}}},[e.lib.online?a("q-icon",{staticClass:"status-icon",attrs:{name:"flash_on"}}):e._e(),a("span",{staticClass:"status-label"},[e._v(e._s(e.statusLabel))])],1)],1)],2),a("div",{staticClass:"library-view"},[a("transition",{attrs:{name:"slide",mode:"out-in"}},[a("keep-alive",{attrs:{exclude:"LibraryChannel,LibraryRecommend"}},[e.isLoggedIn?e.showRecommend?a("Recommend"):a("router-view"):a("Login")],1)],1)],1),a("ConnectionStatus",{model:{value:e.peerDialog,callback:function(t){e.peerDialog=t},expression:"peerDialog"}})],1)}),r=[],s=(a("a1c1"),a("36a1")),l=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"login-container"},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".abk"},on:{change:e.onFileChange}}),a("q-dialog",{model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[a("q-card",[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("import_key")))]),a("q-input",{staticStyle:{width:"480px"},attrs:{type:"text",label:e.$t("key")},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.userKey,callback:function(t){e.userKey=t},expression:"userKey"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{attrs:{flat:"",label:e.$t("import"),color:"primary"},on:{click:e.importKey}})],1)],1)],1),a("Loading",{attrs:{value:!0}})],1)},c=[],d=(a("e39c"),a("5584")),u=a("35f4"),_=a("3aea"),p=a("2d62"),m=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.showLoading,expression:"showLoading"}],staticClass:"non-selectable",class:["absolute-top-left","full-width","full-height"].concat(["column","justify-center","items-center"],["bg-page","text-page"])},[a("div",{staticClass:"items-center"},[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])])},h=[],g=a("a449");const f=()=>{let e;return{data(){return{keychainLoadingState:!1,keychain:g["a"]}},watch:{"keychain.loading"(t){e&&clearTimeout(e),t?e=setTimeout((()=>{this.keychainLoadingState=!0}),500):this.keychainLoadingState=!1}}}};var b={name:"Loading",mixins:[f()],props:{value:Boolean},computed:{showLoading(){const e="signedOut"===this.$store.state.account.authState;return this.value&&!this.keychainLoadingState&&!e}},methods:{onChange(){this.$emit("change",!this.value)}}},y=b,v=(a("9fe7"),a("2b5f")),w=a("53ef"),k=a("09a4"),S=a.n(k),C=Object(v["a"])(y,m,h,!1,null,"1f47903d",null),x=C.exports;S()(C,"components",{QSpinner:w["a"]});const $=Object(u["a"])("abcdefg",5),T=Object(u["a"])("0123456789abcdef",40);var z={data(){return{username:"",password:"",nickname:"",description:"",avatar:"",userKey:"",showImport:!1}},components:{Loading:x},computed:{showLoading(){const e=this.$store.state.account.authState;return null===e}},methods:{validate(){if(!this.nickname){const e=d["a"].getters.accountUserInfo.nickname;this.nickname=e||this.username.substring(0,12)}return!0},showImportDialog(){this.$refs.fileSelector.click()},onFileChange(e){var t,a;null!==e&&void 0!==e&&null!==(t=e.target)&&void 0!==t&&null!==(a=t.files)&&void 0!==a&&a[0]&&Object(_["g"])(e.target.files[0]).then((e=>{if(!e)return this.$q.notify("Cannot read key pair from this file");this.userKey=e,this.importKey()}))},onReset(){this.username=$()+T(35),this.password=T(),this.nickname="",this.description=""},async onSubmit(){const e=this.validate();if("string"===typeof e)return this.$q.dialog({message:e});console.log(this.username,this.password,this.nickname),s["a"].register(this.username,this.password,{name:this.nickname,description:this.description,avatar:this.avatar}).then((()=>{const e=Object(p["t"])();if(console.log(e,s["a"].user),e._&&e._.sea){const t=e._.sea,{epub:a,pub:n,epriv:o,priv:i}=t;if(!a||!n||!o||!i)return;const r=[a,n,o,i].join(":");this.$q.dialog({title:this.$t("save_key"),message:this.$t("save_key_file"),ok:this.$t("save_key"),cancel:this.$t("cancel")}).onOk((()=>{var t,a;Object(_["h"])(r,`${(null===(t=e.data)||void 0===t?void 0:t.name)||(null===(a=s["a"].userData)||void 0===a?void 0:a.name)||"user"}.abk`)})).onDismiss((()=>{s["a"].prepareData()}))}}))},autoCreate(){this.onReset(),this.onSubmit()},importKey(){if(s["a"].isLoggedIn)return;console.log(this.userKey);const[e,t,a,n]=this.userKey.split(":");if(!e||!t||!a||!n)return this.$q.notify(this.$t("invalid_key"));s["a"].login({epub:e,pub:t,epriv:a,priv:n}).then(s["a"].prepareData)}},created(){this.onReset(),s["a"].$on("logged-in",(()=>{const e=[this.username,this.password].join(":");console.log("Logged in",e),this.$emit("login")}))}},P=z,A=(a("86d7"),a("1043")),I=a("b2aa"),q=a("e586"),O=a("d7c7"),E=a("0e45"),D=a("59ba"),j=Object(v["a"])(P,l,c,!1,null,"6a9c1d57",null),N=j.exports;S()(j,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]});var L=a("36a5"),U=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.value,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:function(t){return e.$emit("input",t)}}},[a("q-card",{staticClass:"peer-dialog-card"},[a("q-card-section",{staticClass:"row items-center",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-bold peers-title"},[e._v(e._s(e.$t("connection_status")))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{unelevated:"",round:"",icon:"close"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}],staticClass:"q-mb-sm"}),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area gun-server-list"},[a("div",{staticClass:"servers-title q-ml-sm q-mb-sm row items-center"},[a("div",{staticClass:"text-h6 q-mr-sm"},[e._v(e._s(e.$t("gun_server_list")))]),a("q-btn",{attrs:{flat:"",unelevated:"",rounded:"",dense:"",icon:"help_outline"},on:{click:e.showServerHelp}},[a("q-tooltip",[e._v(e._s(e.$t("about_cache_node")))])],1),a("q-space"),a("q-btn",{attrs:{unelevated:"",round:"",icon:"add"},on:{click:e.createCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("create_cache_node")))])],1),a("q-btn",{attrs:{unelevated:"",round:"",icon:"edit"},on:{click:e.editCacheNode}},[a("q-tooltip",[e._v(e._s(e.$t("edit_cache_node")))])],1)],1),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("server")))])])]),a("tbody",e._l(e.wsPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left",class:"text-"+e.statusColorMap[t.status]},[e._v(e._s(e.statusTextMap[t.status]))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))])])})),0)])],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"scroll-area wrtc-peer-list"},[a("div",{staticClass:"peers-title q-ml-sm q-mb-sm text-h6"},[e._v(e._s(e.$t("peer_list")))]),a("q-markup-table",{attrs:{flat:"",bordered:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"}),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("peer_id")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("connection")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("data_source")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("download")))]),a("th",{staticClass:"text-center",attrs:{colspan:"2"}},[e._v(e._s(e.$t("upload")))])])]),a("tbody",[e.wrtcPeers&&Object.keys(e.wrtcPeers).length?e._l(e.wrtcPeers,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left"},[a("q-icon",{attrs:{name:e.getPeerStatusIcon(t),color:"primary"}},[a("q-tooltip",[e._v(e._s(e.getPeerStatusTooltip(t)))])],1)],1),a("td",{staticClass:"text-left"},[e._v(e._s(e.getPeerId(t)))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.label))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.from))]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.downloaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.downloadSpeed))+" / s")]),a("td",{staticClass:"text-right"},[e._v(e._s(e.byteToLarger(t.uploaded)))]),a("td",{staticClass:"text-left"},[e._v(e._s(e.byteToLarger(t.uploadSpeed))+" / s")])])})):a("tr",{staticClass:"q-pa-md"},[a("td",{staticClass:"full-width text-center",attrs:{colspan:"8"}},[e._v("\n "+e._s(e.$t("credit_no_data"))+"\n ")])])],2)])],1)])],1)],1)},R=[],M=a("6422"),F={name:"LibraryConnectionStatus",props:{value:Boolean},data(){return{}},computed:{statusTextMap(){return{[WebSocket.CLOSED]:this.$t("offline"),[WebSocket.OPEN]:this.$t("connected"),[WebSocket.CONNECTING]:this.$t("connecting"),[WebSocket.CLOSING]:this.$t("offline")}},statusColorMap(){return{[WebSocket.CLOSED]:"red",[WebSocket.OPEN]:"green",[WebSocket.CONNECTING]:"none",[WebSocket.CLOSING]:"red"}},wsPeers(){return s["a"].gunPeers.filter((e=>"ws"===e.type))},wrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type))}},methods:{getPeerId(e){if("tracker"!==e.from)return e.url;let t=parseInt(e.url.substring(20),16),a="",n=0;while(t>0)n=t%62,t=Math.floor(t/62),a+=n<36?n.toString(36):(n-26).toString(36).toUpperCase();return a.substring(0,9)},getPeerStatusIcon(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?"import_export":"arrow_upward":"syncing"===e.remoteSyncState?"arrow_downward":"completed"===e.syncState?"completed"===e.remoteSyncState?"done_all":"done":"settings_ethernet"},getPeerStatusTooltip(e){return"syncing"===e.syncState?"syncing"===e.remoteSyncState?this.$t("syncing"):this.$t("uploading"):"syncing"===e.remoteSyncState?this.$t("downloading"):"completed"===e.syncState?"completed"===e.remoteSyncState?this.$t("sync_completed"):this.$t("uploaded"):this.$t("connecting")},byteToLarger(e){return Object(M["a"])(e,{byte:!1,gb:!1})},showServerHelp(){this.$alphabiz.dialog({title:this.$t("about_cache_node"),message:this.$t("about_cache_node_desc"),cancel:!0,ok:{label:this.$t("go_to_settings"),handler:e=>{this.$emit("input",!1),setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300),e.hide()}}})},async createCacheNode(){window.open("https://alpha.biz/blog/how-to-deploy-a-gun-server/","_blank")},editCacheNode(){setTimeout((()=>{this.$router.push("/advanceSetting?highlight=custom-nodes")}),300)}}},B=F,W=(a("9f3a"),a("990e")),H=a("fc38"),V=a("cf25"),Q=a("3714"),G=a("f106"),K=a("a431"),Y=Object(v["a"])(B,U,R,!1,null,"54be07de",null),J=Y.exports;S()(Y,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QTooltip:V["a"],QMarkupTable:Q["a"],QIcon:G["a"]}),S()(Y,"directives",{ClosePopup:K["a"]});var Z=a("d7df"),X=a("d310"),ee=a("3fd2"),te=a.n(ee),ae=(a("d4b5"),a("0598")),ne=a("f680"),oe=a("1926");console.log("===",oe["b"]);const ie={_store:null,store:{favorites:[],ids:[]},_preNotify:null,_init(){if(Object(ae["default"])()){const e=a("f4b7");this._store=new e({name:"favorite",defaults:{favorites:[]}}),this.store=this._store.store}else{const e="ab-local-favorites",t=localStorage.getItem(e);this.store=t?JSON.parse(t):{favorites:[],ids:[]};const a=this.store;this._store={get(e){return console.log("get",e,a),a[e]},set(t,n){console.log("set",t,n,a),a[t]=n,localStorage.setItem(e,JSON.stringify(a))},clear(){console.log("clear"),localStorage.removeItem(e),ie._init()}}}this.store.ids=this.store.favorites.map((e=>e.id))},set(e){for(const t of e)this.add(t)},add(e){if(this.store.ids.find((t=>t===e.id)))return;e.timestamp||(e.timestamp=Date.now());let t=0;for(const a of this.store.favorites){if(!(a.timestamp>e.timestamp))break;t++}this.store.favorites.splice(t,0,e),this.store.ids.splice(t,0,e.id),this._store.set("favorites",this.store.favorites)},remove(e,t){const a="string"===typeof e?e:e.id,n=this.store.ids.findIndex((e=>e===a));if(-1===n)return;const[o]=this.store.favorites.splice(n,1);if(this.store.ids.splice(n,1),this._store.set("favorites",this.store.favorites),!o)return;const i=ne["a"].create({message:oe["b"].t("removed_favorite")+o.title,group:!1,actions:[{label:oe["b"].t("undo"),handler(){ie.add(o),t&&t(o)}}]});this._preNotify&&this._preNotify(),this._preNotify=i},list(){return this.store.favorites.sort(((e,t)=>t.timestamp-e.timestamp))},isFavorite(e){return this.store.ids.includes(e)},clear(){this._store.clear(),this.store.favorites.splice(0),this.store.ids.splice(0),this._store.set("favorites",this.store.favorites)}};ie._init();var re=ie,se={name:"Library",mixins:[g["d"]],components:{Login:N,Recommend:L["a"],ConnectionStatus:J},data(){return{breadcrumbs:[{label:this.$t("library"),icon:"video_library",to:"/library"}],peerDialog:!1,isElectron:Object(X["isElectron"])(),lib:s["a"]}},computed:{showRecommend(){return!!s["a"].isLoggedIn&&(!this.isVisitable(this.$route.fullPath)&&(s["a"].followingChannels.length?!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus:!s["a"].isFirstRegister))},currentView(){const e=this.$route.path.replace(/^\//,"").split("/");return e},hasWrtcPeers(){return s["a"].gunPeers.filter((e=>"wrtc"===e.type)).length},statusColor(){if(this.hasWrtcPeers)return"green";if(!s["a"].online)return"red";switch(s["a"].onlineStatus){case"connected":return"green";case"connecting":return"yellow";case"reconnecting":return"yellow";default:return"red"}},statusLabel(){if(this.hasWrtcPeers)return this.$t("connected");if(!s["a"].online)return this.$t("offline");switch(s["a"].onlineStatus){case"connected":return this.$t("connected");case"connecting":return this.$t("connecting");case"reconnecting":return this.$t("connecting");default:return this.$t("unknown")}},isLoggedIn(){return this.lib.isLoggedIn}},methods:{isVisitable(e){return e.startsWith("/library/edit")||e.includes("preview=1")||e.includes("fromLink=1")||e.startsWith("/library/takedown")},getIcon(e){switch(e){case"following":return"star";case"explore":return"travel_explore";case"edit":return"edit_note"}return"list"}},beforeCreate(){if(te.a.mas()){const e=localStorage.getItem("__mas_library_user__");e||(console.log("clear store since no old user"),re.clear()),s["a"].whenReady.then((()=>{var t;s["a"].user&&null!==(t=s["a"].user.is)&&void 0!==t&&t.pub&&(e&&e!==s["a"].user.is.pub&&(console.log("clear store since user changed",e,s["a"].user.is.pub),re.clear()),localStorage.setItem("__mas_library_user__",s["a"].user.is.pub))}))}},mounted(){Z["a"].on("open-library",(e=>{console.log("open library url:",e);const t=Object(_["d"])(e);if(!t||!t.id)return;let a=0;const n=()=>{const e=Object(_["c"])(t.id);e?(console.log("go library",e),this.$root.$emit("navigate-to"),this.$router.push(e+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",e)))):(console.log("cannot get id from channel list",t.id,e),a||this.$q.notify(this.$t("loading")),a++<5?setTimeout(n,2e3):this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))};s["a"].whenReady.then(n)}))},watch:{"lib.libStatus":{handler(e){"ready"===e&&console.log("> library ready <")},immediate:!0},showRecommend(e){if(e){if(console.log("Show recommend. Redirect to library index"),"/library"===this.$route.path)return;this.$router.replace("/library")}}},beforeRouteUpdate(e,t,a){if(!e.path.startsWith("/library"))return a();const n=()=>!s["a"].isLoggedIn||!s["a"].nonBlockFollowingChannels.length&&"ready"===s["a"].libStatus;if(n()){if("/library/"===e.path||"/library"===e.path)return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to")}));if(this.isVisitable(e.fullPath))return this.$root.$emit("navigate-to"),a(),void setTimeout((()=>{this.$root.$emit("navigate-to",e.path)}));a()}else a()}},le=se,ce=(a("899b5"),a("7285"),a("99c4")),de=a("a829"),ue=a("a4ac"),_e=a("90c4"),pe=a("c6f0"),me=Object(v["a"])(le,i,r,!1,null,"203f2a72",null),he=me.exports;S()(me,"components",{QToolbar:ce["a"],QBtn:A["a"],QMenu:de["a"],QCard:q["a"],QSelect:ue["a"],QInput:E["a"],QIcon:G["a"],QSpace:W["a"],QBadge:_e["a"],QBreadcrumbs:pe["a"]});var ge=a("d558"),fe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-explore"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{followable:"",post:n,disableFollow:e.loadingNext},on:{preview:e.showPreviewImage,follow:e.follow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.mod,o=t.column;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.shouldLoading(t,Math.max(Math.ceil(10/o),2)*o+(n?o-n:0))},expression:"(entry) => shouldLoading(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px - env(safe-area-inset-bottom) - env(safe-area-inset-top))"}},[e.searchFilteredPosts.length||e.loadingPosts||!e.loadedAll?e.loadedAll&&!e.loadingPosts?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):[a("div",[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{directives:[{name:"show",rawName:"v-show",value:!e.loadingPosts||e.filteredPosts.length,expression:"!loadingPosts || filteredPosts.length"}],attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),e.allPosts.length||e.loadingPosts?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToFollowing}},[a("q-tooltip",[e._v(e._s(e.$t("no_recommend"))+" "+e._s(e.$t("lib_following")))])],1)],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPosts&&!e.filteredPosts.length}})],1)},be=[],ye=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"intersection",rawName:"v-intersection",value:{handler:e.triggerPreload,threshold:0},expression:"{ handler: triggerPreload, threshold: 0 }"}],staticClass:"post-card overflow-hidden relative-position column no-wrap",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},on:{mouseenter:function(){return e.onCardHover(!0)},mouseleave:function(){return e.onCardHover(!1)}}},[a("img",{staticClass:"absolute-top-left",staticStyle:{filter:"blur(24px)",transform:"scale(1.25)",opacity:"0.08"},attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}),e.post.channel?a("div",[e.hideChannel?e._e():a("q-card-section",{staticClass:"post-channel-info no-wrap overflow-hidden row items-center"},[a("div",{staticClass:"channel cursor-pointer row items-center no-wrap",on:{click:e.toChannelPage}},[a("q-avatar",{staticClass:"shadow-2",staticStyle:{background:"#282828"},attrs:{size:"18"}},[e.isLoadedChannelImage?a("img",{attrs:{src:e.post.channel.image},on:{error:e.onChannelAvatarError,load:e.onChannelAvatarLoaded}}):e._e(),e.isLoadedChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"30px"}})],1),a("div",{staticClass:"channel-title q-ml-md ellipsis-2-lines",attrs:{title:e.post.channel.title}},[e._v("\n "+e._s(e.post.channel.title||e.$t("loading"))+"\n ")]),e.post.channel.hidden?a("span",{staticClass:"hidden-info text-grey q-ml-xs"},[e._v("("+e._s(e.$t("private_channel"))+")")]):e._e()],1),a("q-space"),a("FollowButton",{attrs:{id:e.post.channel.id,disableFollow:e.disableFollow}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:!e.hideChannel,expression:"!hideChannel"}],staticStyle:{margin:"0 -4px"}})],1):e._e(),a("q-card-section",{staticClass:"post-info q-pa-none overflow-hidden",class:e.$q.screen.width>=790?["row","no-wrap","justify-start","items-stretch"]:["column","no-wrap","justify-start","items-center"],style:{maxHeight:e.$q.screen.width>=790?"calc(16px * 2 + 360px)":"unset",flexGrow:1}},[a("div",{staticClass:"image",class:e.$q.screen.width>=790?["q-pa-md"]:["q-pa-sm"]},[a("div",{staticClass:"image-container row justify-center items-center"},[e.allowClickImage?a("img",{attrs:{src:e.post.image,loading:"lazy"},on:{click:e.popupImage,error:e.onImageError,load:e.onImageLoaded}}):e._e(),e.allowClickImage?e._e():a("q-icon",{attrs:{size:"80px",name:"video_file",color:"general"}})],1)]),a("div",{staticClass:"overflow-hidden full-width flex-grow column no-wrap q-pb-md",style:{marginLeft:e.$q.screen.width>=790?"-8px !important":"0"}},[a("div",{staticClass:"desc-main q-pa-sm"},[a("div",{staticClass:"text-bold desc-title row overflow-hidden full-width no-wrap items-center"},[a("div",{staticClass:"post-title q-mr-sm overflow-hidden",attrs:{title:e.post.title}},[a("div",{staticClass:"text-no-wrap ellipsis"},[e._v(e._s(e.post.title))])]),a("q-space"),a("q-btn",{staticClass:"favorite-icon block",attrs:{dense:"",flat:"",color:"primary","text-color":"primary",round:"",icon:e.isFavorite?"star":"star_border"},on:{click:e.setFavorite}},[a("q-tooltip",[e._v(e._s(e.isFavorite?e.$t("remove_from_local_favorites"):e.$t("add_to_local_favorites")))])],1),e.post.channel?a("q-btn",{staticClass:"block",attrs:{dense:"",flat:"",round:"",icon:"more_vert"}},[a("q-menu",[a("q-list",{staticStyle:{"min-width":"100px"}},[a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.follow}},[a("q-item-section",[e._v("\n "+e._s(e.followable?e.$t("follow"):e.$t("unfollow"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.share}},[a("q-item-section",[e._v("\n "+e._s(e.$t("share"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockChannel}},[a("q-item-section",[e._v("\n "+e._s(e.isBlocked?e.$t("unblock"):e.$t("block"))+"\n "+e._s(e.shortChannelTitle)+"\n ")])],1),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.blockUser}},[a("q-item-section",[e._v(e._s(e.isBlockedUser?e.$t("unblock_creator"):e.$t("block_creator")))])],1),e.lib.isLibAdmin?[a("q-separator"),a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{clickable:""},on:{click:e.takedownPost}},[a("q-item-section",[e._v(e._s(e.$t("takedown_post")))])],1)]:e._e()],2)],1)],1):e._e()],1),a("div",{staticClass:"text-subtitle2 q-mt-xs text-grey desc-time"},[a("span",[e._v(e._s(new Date(e.post.timestamp).toLocaleString()))]),a("q-badge",{staticClass:"q-ml-md bg-primary text-primary"},[e._v("\n "+e._s(e.post.rate||"G")+"\n "),a("q-tooltip",e._l(e.getRateText(e.post.rate).split("\n"),(function(t,n){return a("div",{key:n,staticClass:"rate-tip"},[e._v(e._s(t)+"\n ")])})),0)],1),e.subtitleLang?a("q-btn",{staticClass:"q-ml-sm",attrs:{dense:"",flat:"",size:"xs"}},[a("q-icon",{staticStyle:{"font-size":"22px"},attrs:{name:"subtitles"}}),a("q-tooltip",[e._v(e._s(e.$t("with_subtitle",{language:e.subtitleLang})))])],1):e._e()],1)]),a("div",{staticClass:"overflow-auto q-pa-sm",staticStyle:{"flex-grow":"1","flex-shrink":"1"}},[a("div",{staticClass:"full-width overflow-hidden"},e._l((e.post.description||"").split("\n"),(function(t,n){return a("div",{key:n,staticClass:"desc-para"},[e._v(e._s(t)+"\n ")])})),0)]),a("div",{directives:[{name:"show",rawName:"v-show",value:!e.hideButtons,expression:"!hideButtons"}],staticClass:"text-center post-buttons q-pt-sm"},[e.post.abUrl||e.backAbUrl?a("div",{staticClass:"download-btns"},[e.addedStatus?a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"",flat:"",ripple:!1,"text-color":"primary",color:"primary"},on:{click:e.toTaskInfo}},[a("span",{staticClass:"action-button-content"},[a("q-tooltip",[e._v(e._s(e.$t("lib_already_added"))),a("br"),e._v(e._s(e.$t("click_to_task")))]),a("q-icon",{attrs:{name:"downloading"===e.addedStatus?"download":"done"}}),e._v("\n "+e._s("downloading"===e.addedStatus?e.$t("downloading"):e.$t("completed"))+"\n ")],1)]):a("q-btn",{staticClass:"q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.download}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("download")}},[a("q-icon",{attrs:{name:"download"}}),e._v(e._s(e.$t("download"))+"\n ")],1)]),e.playFile||e.preloadFailed?!e.playFile&&e.preloadFailed?a("q-btn",{staticClass:"q-ml-sm q-px-sm cursor-inherit",attrs:{unelevated:"",dense:"",flat:"",ripple:!1,"text-color":"primary",color:"primary"}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-tooltip",[e._v(e._s(e.$t("post_preload_failed")))]),a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm",attrs:{unelevated:"",dense:"","text-color":"primary",color:"primary"},on:{click:e.play}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play")}},[a("q-icon",{attrs:{name:"play_arrow"}}),e._v(e._s(e.$t("play"))+"\n ")],1)]):a("q-btn",{staticClass:"q-ml-sm q-px-sm action-button",attrs:{unelevated:"",dense:"","no-wrap":"","text-color":"primary",color:"primary"},on:{click:e.triggerPlay}},[a("span",{staticClass:"action-button-content",attrs:{title:e.$t("play_while_downloading")}},[a("q-icon",{attrs:{name:"ondemand_video"}}),e._v(e._s(e.$t("play_while_downloading"))+"\n ")],1)])],1):a("div",{staticClass:"no-ab-url"},[a("q-btn",{attrs:{unelevated:"",dense:"",disable:"",label:e.$t("loading")}})],1)])])]),e.screen$xs?a("div",{staticClass:"dialog-actions"},[a("q-separator"),a("q-card-section",{staticClass:"flex q-py-sm"},[a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",label:e.$t("cancel"),color:"general","text-color":"general",unelevated:""}})],1)],1):e._e()],1)},ve=[],we=a("a11f"),ke=a("fc3a"),Se=a("c5a5");a("0c26");const{languages:Ce}=a("1c53"),xe="https://www.opensubtitles.org/subtitleserve/sub/";function $e(){const e=["en","zh","es","fr","de","ru","pt"],t=[],a=[];return Object.entries(Ce).forEach((([n,o])=>{const i={label:`${o.native}(${n})`,value:n,name:o.name};e.includes(n)?a.push(i):t.push(i)})),[...a,...t]}function Te(e){let t="";for(const a of e)(a.lang||a.url)&&(t&&(t+="%%%"),t=t+a.lang+"%%"+a.url);return t}function ze(e){const t=[];if(!e||""===e)return t;let a;a=e.includes("%%%")?e.split("%%%"):[e];for(const n of a){const e=n.split("%%");t.push({lang:e[0],url:e[1]})}return t}function Pe(e){let t=e,a="";if(!Array.isArray(e)&&"string"!==typeof e)return a;"string"===typeof e&&(t=ze(e));for(const n of t)a.includes(n.lang)||(a&&(a+="、"),a+=n.lang);return a}async function Ae(e){const t=a("9ad5");let n=e.trim();return/^\d+$/.test(n)&&(n=`${xe}${n}`),console.log(`requestSubtitleUrl: [${n}]`),!!n.startsWith("http")&&new Promise((e=>{t({method:"get",url:n,headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36"},responseType:"stream"}).then((t=>{console.log("succ",t.status),e(!0)})).catch((t=>{var a,n;console.log("err",(null===(a=t.response)||void 0===a?void 0:a.status)||t.response||t),429===(null===(n=t.response)||void 0===n?void 0:n.status)&&e(!0),e(!1)}))}))}function Ie(e){return/^\d+$/.test(e)}function qe(e){return Ie(e)?xe+e:e}var Oe=a("c033"),Ee=a("d710"),De=a.n(Ee);const je=n["a"].observable([]);Z["a"].on("preload-failed",(e=>{console.log("preload failed",e),je.includes(e)||(je.push(e),console.log(je))})),Z["a"].on("preload-done",(e=>{console.log("preload done",e),je.includes(e)&&je.splice(je.indexOf(e),1)}));const Ne="requestIdleCallback"in window?requestIdleCallback:e=>setTimeout(e,100);async function Le({url:e,postTitle:t}){if(!je.includes(e))return new Promise((a=>{Ne((()=>{Z["a"].emit("preload-task",{url:e,postTitle:t}),a()}))}))}const Ue=document.querySelector("#q-app"),Re=e=>new Promise((t=>setTimeout(t,e)));var Me={name:"PostCard",inject:["rootApp","io"],components:{FollowButton:Oe["a"]},props:{post:{type:Object,required:!0},hideChannel:{type:Boolean},hideButtons:{type:Boolean},disableFollow:{type:Boolean}},data(){return{scrollRoot:Ue,postCardHover:!1,allowClickImage:!0,animating:!1,followBtnHover:!1,pending:!1,favoriteNotifyFns:[],backAbUrl:"",isLoadedChannelImage:!0,isFavorite:re.isFavorite(this.post.id),lib:s["a"],preloadTriggered:!1,notAvailable:je}},computed:{followable(){return!s["a"].followingChannels.find((e=>{var t;return e.id===(null===(t=this.post.channel)||void 0===t?void 0:t.id)}))},isBlocked(){var e,t;return null===(e=s["a"].userData.blockChannels)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.id)},isBlockedUser(){var e,t;return null===(e=s["a"].userData.blockUsers)||void 0===e?void 0:e.includes(null===(t=this.post.channel)||void 0===t?void 0:t.creator)},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHover?this.$t("unfollow"):this.$t("following")},abKey(){const e=this.post.abUrl||this.backAbUrl;return e?Object(we["a"])(e.includes("://")?e:decodeURIComponent(e)):""},addedStatus(){var e;return(null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.type)||!1},shortChannelTitle(){return this.post.channel&&this.post.channel.title?this.post.channel.title.length>12?this.post.channel.title.substring(0,10)+"...":this.post.channel.title:""},playFile(){var e;return null===(e=s["a"].addedPostMap[this.abKey])||void 0===e?void 0:e.playFile},settings(){var e,t;const a=(null===(e=this.post)||void 0===e||null===(t=e._)||void 0===t?void 0:t["#"])||this.post.soul,n=d["a"].state.setting,o={downloadDirectory:n.downloadDirectory,uploadSpeed:n.uploadSpeed,downloadSpeed:n.downloadSpeed,maximumDownloadNum:n.maximumDownloadNum,maximumConnectionsNum:n.maximumConnectionsNum,payedUserShareRadix:n.payedUserShareRadix,trackers:n.trackerList||[],postTitle:Object(_["b"])(this.post.title)};return a&&(o.fromPost=a),o},subtitleLang(){return Pe(this.post.subtitleList)},preloadFailed(){return this.notAvailable.includes(this.post.abUrl||this.backAbUrl)}},methods:{onCardHover(e){this.postCardHover=e},getRateText(e="G"){switch(e){case"G":return this.$t("rate_g_desc");case"PG":return this.$t("rate_pg_desc");case"PG-13":return this.$t("rate_pg_13_desc");case"R":return this.$t("rate_r_desc");case"NC-17":return this.$t("rate_nc_17_desc")}return this.$t("rate_g_desc")},confirm(e,t={ok:"",cancel:"",message:""}){const a={title:e,ok:t.ok||this.$t("ok"),cancel:t.cancel||this.$t("cancel")};return t.message&&(a.message=t.message),new Promise((e=>{this.$q.dialog(a).onOk((()=>e(!0))).onDismiss((()=>e(!1)))}))},popupImage(){console.log("popup",this.allowClickImage),this.allowClickImage&&this.$emit("preview",this.post.image)},async playAnimation(e,t="#downloading"){if(this.animating)return;this.animating=!0;const a=document.querySelector(t),n=a?a.getBoundingClientRect():{x:0,y:e.clientY,width:0,height:0},o={left:e.clientX-36+"px",top:e.clientY-36+"px"},i={left:n.x+n.width/3-36+"px",top:n.y+n.height/2-36+"px"},r=document.createElement("i");r.classList.add("q-icon","material-icons","text-primary"),r.innerHTML="video_file",r.style.position="absolute",r.style.fontSize="72px",r.style.left=o.left,r.style.top=o.top,r.style.opacity=0,r.style.transform="scale(2.5)",r.style.transition="0.4s ease",document.body.appendChild(r),await Re(0),r.style.opacity=1,r.style.transform="scale(1)",await Re(500),r.style.transition="1s ease",r.style.left=i.left,r.style.top=i.top,r.style.transform="scale(0.5)",r.style.opacity=0,await Re(600),this.animating=!1,document.body.removeChild(r)},async triggerPlay(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);if(!Object(X["isElectron"])()&&!Object(ge["a"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task")+"?",{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.playAnimation(e,"#drawer-player"),await Re(600);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;if(this.io.emit("download-and-play",{type:"magnet",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings}),Object(X["isElectron"])()||Object(ge["a"])()){var i;const e=await Object(Se["a"])(o);if(!e)return;const t=null===(i=e.match(/([0-9a-fA-F]{40})/))||void 0===i?void 0:i[1];t&&d["a"].dispatch("remotePlay",t)}else{const{default:e}=a("7d7c"),{wtClient:t}=a("c620"),n=setInterval((()=>{t.torrents.length&&(clearInterval(n),e())}),100)}},async download(e){if(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)return this.$q.dialog({message:this.$t("login_to_continue"),ok:this.$t("ok")});const t=this.post.abUrl||this.backAbUrl,n=t.includes(":")?t:decodeURIComponent(t);if("string"!==typeof n||!n.startsWith(De.a.shortProtocol+"://")&&!n.startsWith(De.a.protocol+"://")&&!n.startsWith("magnet:"))return this.$q.notify(this.$t("invalid_download_url")+": "+n);const o=n.startsWith(De.a.shortProtocol+"://")?n.replace(De.a.shortProtocol+"://",`${De.a.protocol}://${encodeURIComponent(this.post.title)}/`):n;console.log(o),console.group("subtitle"),console.log(this.post.subtitleList),console.table(ze(this.post.subtitleList)),console.groupEnd();const i={type:"url",url:o,token:o,subtitleList:ze(this.post.subtitleList),...this.settings};if(!Object(X["isElectron"])()){const e=a("c620").wtClient;if(e.torrents[0]){const t=a("7d7c").default;if(this.addedStatus)return t();const n=await this.confirm(this.$t("remove_old_task"),{message:this.$t("remove_old_task_desc")});if(!n)return;e.torrents[0]&&await new Promise((t=>{e.torrents[0].destroy(t)}))}}this.io.emit("download_torrent",i),this.playAnimation(e,Object(X["isElectron"])()?"#downloading":"#task-management")},checkChannel(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.id,a=s["a"].channelList.find((e=>e.id===t));return!(!t||!a)||(this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}),!1)},async follow(){if(this.pending)return;if(!this.checkChannel())return;const e=this.post.channel.id,t=!s["a"].followingChannels.find((t=>t&&t.id===e));if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)),this.pending=!1}),2e3),console.log("follow click",t),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},async share(){if(!this.checkChannel())return;const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.post.channel.title)}/${this.post.channel.id}`;console.log("share",e);const t=await Object(Se["a"])(e);if(console.log("converted url"),!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(ke["a"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))},async blockChannel(){if(!this.checkChannel())return;if(console.log("block channel",this.post.channel.id,this.isBlocked),this.isBlocked)return s["a"].unblockChannel(this.post.channel.id).then((e=>{console.log("unblock channel result",e)}));const e=await this.confirm(this.$t("block_channel"),{message:this.$t("block_channel_confirm"),ok:this.$t("block")});e&&s["a"].blockChannel(this.post.channel.id).then((e=>{console.log("block channel result",e)}))},async blockUser(){var e;if(console.log("block user",null===(e=this.post.channel)||void 0===e?void 0:e.creator,this.isBlockedUser),!this.post.channel||!this.post.channel.creator)return;if(this.isBlockedUser)return s["a"].unblockUser(this.post.channel.creator).then((e=>{console.log("unblock user result",e)}));const t=await this.confirm(this.$t("block_creator"),{message:this.$t("block_creator_confirm"),ok:this.$t("block")});t&&s["a"].blockUser(this.post.channel.creator).then((e=>{console.log("block user result",e)}))},toChannelPage(){this.checkChannel()&&this.$emit("to-channel",this.post.channel)},toTaskInfo(){var e;const t=null===(e=this.post.channel)||void 0===e?void 0:e.soul;let a=`/downloader?currentTab=${this.addedStatus}&abKey=${this.abKey}`;t&&(a+=`&channel=${encodeURIComponent(t)}`),this.post.id&&(a+=`&postId=${this.post.id}`),t&&this.post.id&&(a+=`&soul=${encodeURIComponent(t+"/posts/"+this.post.id)}`),console.log("to",this.abKey,this.addedStatus,t,this.post.id),console.log(a),this.$router.push(a)},setFavorite(){const e=this.post.id;var t,a,n,o,i,r,s,l,c,d,u,_,p,m,h;this.isFavorite?re.remove({id:e},(()=>{this.isFavorite=re.isFavorite(e)})):re.add({id:this.post.id,title:this.post.title,description:this.post.description,image:this.post.image,abUrl:this.post.abUrl||this.backAbUrl,soul:null===(t=this.post)||void 0===t||null===(a=t._)||void 0===a?void 0:a["#"],subtitleList:this.post.subtitleList,channel:{id:null===(n=this.post)||void 0===n||null===(o=n.channel)||void 0===o?void 0:o.id,title:null===(i=this.post)||void 0===i||null===(r=i.channel)||void 0===r?void 0:r.title,description:null===(s=this.post)||void 0===s||null===(l=s.channel)||void 0===l?void 0:l.description,image:null===(c=this.post)||void 0===c||null===(d=c.channel)||void 0===d?void 0:d.image,soul:null===(u=this.post)||void 0===u||null===(_=u.channel)||void 0===_||null===(p=_._)||void 0===p?void 0:p["#"],creator:null===(m=this.post)||void 0===m||null===(h=m.channel)||void 0===h?void 0:h.creator}});this.isFavorite=re.isFavorite(e)},play(){if(!Object(X["isElectron"])()&&!Object(ge["a"])()&&this.addedStatus){const e=a("7d7c").default;return e()}const{infoHash:e,playFile:t}=s["a"].addedPostMap[this.abKey]||{};console.log("play",e,t);const n=t.path||t;d["a"].dispatch("remotePlay",e),Z["a"].emit("play-torrent",{infoHash:e,filepath:n})},onChannelAvatarError(){this.isLoadedChannelImage=!1},takedownPost(){if(!s["a"].isLibAdmin||!this.post.id)return;if(20!==this.post.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("post",this.post.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))},onChannelAvatarLoaded(e){e.target.src===this.post.channel.image&&(this.isLoadedChannelImage=!0)},onImageError(){this.allowClickImage=!1},onImageLoaded(e){e.target.src===this.post.image&&(this.allowClickImage=!0)},triggerPreload({isIntersecting:e}){if(e&&!this.preloadTriggered&&this.settings.postTitle)return this.preloadFailed?console.log("skip preload failed",this.settings.postTitle):this.addedStatus?console.log("skip added",this.settings.postTitle):void((this.post.abUrl||this.backAbUrl)&&(console.log(`Scroll into view ${this.settings.postTitle}`),this.preloadTriggered=!0,Le({url:this.post.abUrl||this.backAbUrl,postTitle:this.settings.postTitle})))}},activated(){var e,t;this.post.abUrl||(console.log("no aburl",{...this.post}),null!==(e=this.post)&&void 0!==e&&null!==(t=e.channel)&&void 0!==t&&t.soul&&this.post.id&&p["v"].get(this.post.channel.soul+"/posts/"+this.post.id).on(((e,t,a,n)=>{e&&e.abUrl&&(console.log("Get abUrl for",this.post.id,e.abUrl),this.backAbUrl=e.abUrl,n.off())})));this.isFavorite=re.isFavorite(this.post.id)}},Fe=Me,Be=(a("cbf3"),a("9f3e")),We=a("e7c2"),He=a("b329"),Ve=a("25fb"),Qe=a("bcaf"),Ge=a("fa4f"),Ke=Object(v["a"])(Fe,ye,ve,!1,null,"580a0550",null),Ye=Ke.exports;S()(Ke,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QSeparator:H["a"],QBtn:A["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QBadge:_e["a"],QDialog:I["a"],QVirtualScroll:Qe["a"]}),S()(Ke,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Je=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page-sticky",{staticClass:"back-to-top",attrs:{position:"bottom-right"}},[a("transition",{attrs:{name:"animate"}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"back-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"publish"},on:{click:e.onClick}},[a("div",{staticClass:"fab-inner-text"},[e._v("\n "+e._s(e.$t("back_to_top"))+"\n ")])])],1)],1)},Ze=[],Xe={name:"BackToTop",props:{show:Boolean},data(){return{hide:!1,hovered:!1}},methods:{onClick(){this.$emit("click")}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0}},et=Xe,tt=(a("3408"),a("84f9")),at=Object(v["a"])(et,Je,Ze,!1,null,"ec8a50cc",null),nt=at.exports;S()(at,"components",{QPageSticky:tt["a"],QBtn:A["a"]});var ot=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"search-channel"},[a("div",{staticClass:"fixed-bottom-right show-search-channel",class:{higher:e.higher}},[a("q-btn",{staticClass:"channel-search-btn q-ma-xs",class:{hide:e.hide},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary","text-color":"primary",icon:"library_add"},on:{click:function(t){e.showDialog=!0}}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("search")))])])],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{hide:e.clearInput},model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",{staticClass:"search-dialog overflow-hidden"},[a("q-card-section",{staticClass:"flex items-center q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("search_for_channel")))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(t){e.showDialog=!1}}})],1),a("q-card-section",{staticClass:"column items-stretch q-pt-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"search-textfield"},[a("q-input",{attrs:{type:"text",outlined:"",dense:"",autofocus:"",label:this.$t("channel")+" ID",placeholder:"%abcd1234"},on:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.search.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{color:"primary",name:"search"},on:{click:e.search}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}})],1),a("q-scroll-area",{staticClass:"items-center",staticStyle:{height:"calc(100vh - 256px)",margin:"4px auto 0",width:"100%"}},[a("div",{staticClass:"search-results full-width flex justify-center items-stretch"},[e._l(e.searchResults,(function(t){return a("ChannelCard",e._b({key:t.id,attrs:{followable:!e.lib.followingChannels.find((function(e){return e.id===t.id}))},on:{detail:e.detail,follow:e.follow}},"ChannelCard",t,!1))})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")],2)])],1)],1)],1)],1)},it=[],rt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-card column relative-position overflow-hidden rounded-borders",style:{border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"},attrs:{flat:""}},[a("q-img",{staticClass:"channel-image absolute-top-left full-height",staticStyle:{filter:"blur(24px) saturate(1.5)",opacity:"0.2",transform:"scale(1.25)"},attrs:{src:e.image,ratio:1,"placeholder-src":"platform-assets/windows/icon/Wide310x150Logo.scale-240.png"}}),a("div",{staticClass:"image-container overflow-hidden",staticStyle:{"border-top-left-radius":"4px!important","border-top-right-radius":"4px!important"}},[a("q-img",{staticClass:"channel-image cursor-pointer",attrs:{contain:"",src:e.image,ratio:1},on:{click:e.detail,error:e.onImageError},scopedSlots:e._u([{key:"error",fn:function(){return[a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[a("q-icon",{attrs:{name:"video_library"}}),e._v("\n "+e._s(e.title)+"\n ")],1)]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])]},proxy:!0}])},[e.image&&e.isHaveImage?e._e():a("q-icon",{staticClass:"absolute-center",staticStyle:{color:"#ccc"},attrs:{size:"90px",name:"subscriptions"}}),a("div",{staticClass:"absolute-bottom"},[a("div",{staticClass:"text-h6 ellipsis-3-lines overflow-hidden"},[e._v("\n "+e._s(e.title)+"\n ")])]),a("q-tooltip",[e._v(e._s(e.editable?e.$t("edit_posts"):e.$t("channel_detail")))])],1)],1),a("q-card-section",{staticClass:"q-py-none",staticStyle:{overflow:"visible"}},[a("div",{staticClass:"q-pa-none row",staticStyle:{margin:"0 -16px"}},[a("div",{staticClass:"q-py-sm q-px-sm q-pl-md",attrs:{"data-cy":"channel-ID"}},[e._v("ID: "+e._s(e.id))]),a("q-space"),a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyId}}),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-py-xs q-px-sm",attrs:{unelevated:"",icon:"block",size:"xs",dense:""},on:{click:e.takedown}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"q-px-md channel-desc",staticStyle:{margin:"0 -16px"}},[e._v(e._s(e.description))]),a("div",{staticClass:"channel-tags",staticStyle:{margin:"4px -4px 0"}},[e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative"}},[e._v(e._s(e.$t("blocked")))]):e._e(),e.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general"}},[e._v(e._s(e.$t("private_channel")))]):e._e()],1)]),a("q-space"),e.hideFollow?a("q-card-actions",[e.editable?a("q-btn",{attrs:{flat:"",icon:"delete",color:"negative"},on:{click:function(t){return t.stopPropagation(),e.remove.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("remove_channel"))+"\n ")])],1):e._e(),a("q-space"),e.editable?a("q-btn",{attrs:{flat:"",icon:"edit"},on:{click:function(t){return t.stopPropagation(),e.detail.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("edit_channel"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"find_in_page"},on:{click:function(t){return t.stopPropagation(),e.preview.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("preview"))+"\n ")])],1):e._e(),e.editable?a("q-btn",{attrs:{flat:"",icon:"settings"},on:{click:function(t){return t.stopPropagation(),e.edit.apply(null,arguments)}}},[a("q-tooltip",{attrs:{anchor:"top middle",self:"bottom middle",offset:[10,10]}},[e._v(e._s(e.$t("channel_setting"))+"\n ")])],1):e._e()],1):a("q-card-actions",{staticClass:"flex justify-center items-center"},[a("FollowButton",{staticClass:"q-my-sm",attrs:{id:e.id}})],1)],1)},st=[],lt=a("aa8a"),ct={name:"ChannelCard",components:{FollowButton:Oe["a"]},data(){return{isHaveImage:!0,lib:s["a"]}},props:{title:{type:String,required:!0},description:{type:String,required:!0},image:{type:String,required:!0},id:{type:String,default:""},soul:{type:String,default:""},hidden:{type:Boolean},editable:{type:Boolean},hideFollow:{type:Boolean},followable:{type:Boolean}},watch:{image(e,t){e&&e!==t&&(this.isHaveImage=!0)}},computed:{isBlocked(){return s["a"].userData.blockChannels.includes(this.id)}},methods:{copyId(){Object(lt["b"])(this.id).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},edit(){this.editable&&this.$emit("edit",this.id)},detail(){this.$emit("detail",this.id)},onImageError(){this.isHaveImage=!1},preview(){this.$emit("preview",this.id)},follow(){this.$emit("follow",this.id)},remove(){this.$emit("remove-channel",this.id)},takedown(){if(!s["a"].isLibAdmin||!this.id)return;if(20!==this.id.length)return this.$q.notify("Cannot parse post id");const e=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:e[0].value,type:"radio",items:e},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((e=>{console.log(e),["Serious Violation","Copyright Disputes","Adults Only"].includes(e)&&s["a"].takedown("channel",this.id,e).then((()=>{this.$q.notify(this.$t("success"))}))}))}}},dt=ct,ut=(a("4b8c"),a("9767")),_t=Object(v["a"])(dt,rt,st,!1,null,"37cd58ed",null),pt=_t.exports;S()(_t,"components",{QCard:q["a"],QImg:ut["a"],QIcon:G["a"],QTooltip:V["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QBadge:_e["a"],QCardActions:D["a"]});var mt={name:"SearchChannel",props:{higher:Boolean},components:{ChannelCard:pt},data(){return{hide:!1,showDialog:!1,searchText:"",searchResults:[],lib:s["a"]}},methods:{clearInput(){this.searchText="",this.searchResults=[]},search(){if(console.log("search",this.searchText),!this.searchText||!this.searchText.trim())return this.$q.dialog({message:this.$t("please_input_channel_id"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const e=this.searchText.trim().replace(/^%/,""),t=s["a"].channelList.filter((t=>!!(t&&t.title&&t.id)&&(t.hidden?t.id===e:t.id.includes(e))));this.searchResults=t,t.length||this.$q.dialog({message:this.$t("search_channel_no_result",[e]),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}})},follow(e){const t=!s["a"].followingChannels.find((t=>t.id===e));if(t)return s["a"].followChannel(e);this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},detail(e){const t=s["a"].allChannelList.find((t=>t.id===e&&t.title&&t.creator));if(!t)return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});console.log("find ch",t);const a=["id","title"].map((e=>{const a=t[e];return e+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)}},activated(){this.hide=!0,setTimeout((()=>{this.hide=!1}),300)},deactivated(){this.hide=!0,this.clearInput()}},ht=mt,gt=(a("6792"),a("c782")),ft=Object(v["a"])(ht,ot,it,!1,null,"1c919252",null),bt=ft.exports;S()(ft,"components",{QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QInput:E["a"],QIcon:G["a"],QScrollArea:gt["a"]});var yt=a("c49d");const vt={data(){return{isActive:!1,searchText:"",lib:s["a"]}},activated(){this.isActive=!0,this.searchText=s["a"].search.text.trim()},deactivated(){this.isActive=!1},watch:{"lib.search.text"(e){this.isActive&&(this.searchText=e.trim())}}};var wt=function(e){const t=function(){return"index"===e||"explore"===e?this.searchFilteredPosts:"favorite"===e?this.filteredFavorites:void 0},a=async function(){this.loader$loadPostsNext?await this.loader$loadPostsNext({count:6}):this.loadNext&&await this.loadNext()};return{data(){return{pagination:{descending:!0,page:1,rowsPerPage:6}}},computed:{tableData:t,pagesNumber(){return Math.ceil(this.tableData.length/this.pagination.rowsPerPage)},currentPageNumber(){return this.pagination.page}},watch:{async currentPageNumber(e){const t=this.$el.querySelector(".library-table>.q-table__grid-content");if(t.scrollTop=0,e===this.pagesNumber)try{this.loading=!0,console.log("query"),await a.call(this)}catch(n){this.$q.notify({type:"negative",position:"bottom-right",message:n.message})}finally{this.loading=!1}}}}};let kt=null;var St={data(){return{showBackToTop:!1,scrollContentSelector:".virtual-scroll-grid-wrapper"}},methods:{handleBackToTop(){if(this.showBackToTop){const e=this.$el.querySelector(this.scrollContentSelector);if(!e)return;e.scrollTop=0}else{if(!this.$refs.vscroll)return;this.$refs.vscroll.scrollTo(0,"start")}}},mounted(){const e=this.$el.querySelector(this.scrollContentSelector),t=()=>{this.showBackToTop=e.scrollTop>0};e&&(e.addEventListener("scroll",t),kt=()=>e.removeEventListener("scroll",t))},beforeDestroy(){kt&&kt()}},Ct={name:"LibraryExplore",components:{PostCard:Ye,BackToTop:nt,SearchChannel:bt,Loading:x},mixins:[vt,wt("explore"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,showPreview:!1,previewImage:"",loadingPosts:!1,loadTimer:null,allPosts:[],loadingNext:!1,loadedAll:!0,loadedChannels:[],loadedPostIds:[],scrollIndex:0,loadingIntersecting:!1,loadStartTime:Date.now(),lib:s["a"]}},computed:{nonFollowingChannels(){const e=this.lib.followingChannels.map((e=>e.id)),t=this.lib.userData.blockChannels,a=this.lib.userData.blockUsers;return this.lib.channelList.filter((n=>!t.includes(null===n||void 0===n?void 0:n.id)&&(!a.includes(null===n||void 0===n?void 0:n.creator)&&!e.includes(null===n||void 0===n?void 0:n.id)))).filter((e=>e))},filteredPosts(){return this.allPosts.filter((e=>e.title&&e.timestamp)).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channel":return e.channel.title;case"channelID":return e.channel.id;default:return e.title}},n=n=>{var o,i;if(!n||!n.title)return!1;if(!e)return!0;const r=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&e===r||(null===(i=n.channel)||void 0===i||!i.hidden)&&r.includes(e)};console.time("filter");const o=this.filteredPosts.filter(n);return console.timeEnd("filter"),o},allPostToFetch(){const e=[];return this.loadedChannels.forEach((({channel:t,ids:a})=>{a.forEach((a=>{this.loadedPostIds.includes(a)||e.push({channel:t,postId:a})}))})),e}},methods:{onScroll(e){this.scrollIndex=e.index},itemsFn(e=0,t=5){return Object(yt["a"])("vitem",e,t),this.searchFilteredPosts.slice(e,e+t)},shouldLoading(e,t){this.loadingIntersecting=e.isIntersecting,e.isIntersecting&&this.loadNext(t)},async loadNext(e=24){if(!this.active)return!1;if(this.loadingNext)return;this.loadingNext=!0,this.allPostToFetch.sort(((e,t)=>e.postId&&t.postId?e.postId.localeCompare(t.postId):0));const t=this.allPostToFetch.slice(0,e);if(Object(yt["a"])("Load Next",t),!t.length)return this.loadingNext=!1,this.loadedAll=!0,void setTimeout((()=>{Object(yt["a"])("try load more"),this.loadPostList()}),3e3);this.loadedAll=!1;const a=await Promise.all(t.map((async({channel:e,postId:t},a)=>(await new Promise((e=>setTimeout(e,Math.floor(Math.random()*a*500)))),{channel:e,post:await s["a"].getPostById(e.id,t,!0)}))));Object(yt["a"])("fetch results",a),a.forEach((({channel:e,post:t})=>{var a;t&&"object"===typeof t&&(e.hidden&&e.creator!==(null===(a=s["a"].user.is)||void 0===a?void 0:a.pub)||(t.channel=e,this.allPosts.push(t)))})),this.loadedPostIds.push(...t.map((e=>e.postId))),this.loadingNext=!1,setTimeout((()=>{Object(yt["a"])("should load next",this.loadingIntersecting),this.loadingIntersecting&&this.loadNext()}),200)},loadPostList(){if(!this.active)return;if(this.loadStartTime+15e3e.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);const e=this.nonFollowingChannels.filter((e=>!(!e.title||!e.id)&&!this.loadedChannels.find((t=>t.channel.id===e.id))));Promise.all(e.map((async(e,t)=>s["a"].getChannelPostIds(e.id,!0).then((t=>{const a=this.loadedChannels.find((t=>t.channel.id===e.id));if(Object(yt["a"])("[Explore] get channel post ids",e.id,t,!a),a?t.forEach((e=>{a.ids.includes(e)||a.ids.push(e)})):this.loadedChannels.push({channel:e,ids:t}),this.active&&!this.allPosts.length){if(this.loadedChannels.length<7&&this.nonFollowingChannels.length>2)return;this.loadNext()}}))))).then((()=>{if(this.allPosts.length)this.loadingPosts=!1;else{if(!this.active)return;setTimeout((()=>{this.loadingPosts=!1,this.allPosts.length||this.loadPostList()}),2e3)}this.active&&this.loadingIntersecting&&this.loadNext()}))},prune(){const e=this.nonFollowingChannels.map((e=>e.id));for(let n=0;n(t.ids&&e.push(...t.ids),e)),[]);for(let n=0;nthis.allPosts[n].id===e));e.includes(null===(a=this.allPosts[n].channel)||void 0===a?void 0:a.id)&&t.includes(this.allPosts[n].id)||(this.allPosts.splice(n--,1),-1!==o&&this.loadedPostIds.splice(o,1))}for(let n=0;ne.id===this.loadedPostIds[n]))||this.loadedPostIds.splice(n--,1)},showPreviewImage(e){this.previewImage=e,this.showPreview=!0},toChannelPage(e){Object(yt["a"])("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},follow(e){this.lib.followChannel(e).then((t=>{Object(yt["a"])("followed",e,t)}))},goToFollowing(){this.$router.push("/library/following")},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.active=!0,this.prune(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/explore"),this.loadStartTime=Date.now(),this.loadPostList();const e=this;"explore"in window||Object.defineProperty(window,"explore",{get(){return e.loadedChannels}})},deactivated(){this.active=!1},mounted(){this.loadPostList(),this.setSearch()},watch:{nonFollowingChannels(e,t){if(e.length!==t.length){for(let t=0;te.id===this.loadedChannels[t].channel.id))||this.loadedChannels.splice(t--,1);this.loadPostList()}},"lib.search.text"(e){this.isActive&&(this.searchText=e)},"searchFilteredPosts.length"(e,t){t||!e||this.active||(console.log("change length"),this.$router.push("/library/explore"))},searchText(e){e&&this.active&&this.handleBackToTop()}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},beforeRouteLeave(e,t,a){clearTimeout(this.loadTimer),a()}},xt=Ct,$t=(a("6580"),a("7027")),Tt=a("8a98"),zt=a("526f"),Pt=a("d919"),At=a("32d0"),It=a("f065"),qt=Object(v["a"])(xt,fe,be,!1,null,"872ead0c",null),Ot=qt.exports;S()(qt,"components",{QIcon:G["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QTooltip:V["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(qt,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Et=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"library-following row justify-center",class:{web:!e.isElectron}},[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],followable:!1,blocked:e.blockMap[t.id]},on:{detail:e.showChannelDetail,follow:e.unfollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),e.followings.length?e._e():a("div",{staticClass:"no-data"},[a("q-btn",{staticClass:"no-data-btn",attrs:{round:"",color:"primary","text-color":"primary",icon:"arrow_forward",size:"24px"},on:{click:e.goToExplore}},[a("q-tooltip",[e._v(e._s(e.$t("no_following"))+" "+e._s(e.$t("lib_explore")))])],1)],1),a("BackToTop",{attrs:{show:e.scrollOffset>0},on:{click:e.scrollTop}}),a("SearchChannel",{attrs:{higher:e.scrollOffset>0}})],2)},Dt=[],jt=a("018b"),Nt={name:"LibraryFollowing",components:{ChannelCard:pt,SearchChannel:bt,BackToTop:nt},mixins:[vt],data(){return{isElectron:Object(X["isElectron"])(),scrollOffset:0,lib:s["a"]}},computed:{followings(){return this.lib.followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(e.title&&e.id)))},blockMap(){const e={};return s["a"].userData&&s["a"].userData.blockChannels?(this.followings.forEach((t=>{(s["a"].userData.blockChannels.includes(t.id)||s["a"].userData.blockUsers.includes(t.creator))&&(e[t.id]=!0)})),e):e},filteredChannels(){const e=this.searchText.toLowerCase();if(!e)return this.followings;const t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{const n=a(t);return Object(_["a"])(null===n||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.followings.filter(n)}},methods:{scrollTop(){this.$refs.scrollEl.scrollTo(0,0)},showChannelDetail(e){const t=this.followings.find((t=>t.id===e));console.log("to",t);const a=["id","title"].map((e=>{const a=t[e];return encodeURIComponent(e)+"="+encodeURIComponent(a)})).join("&"),n=`/library/channel?${a}`;this.$root.$emit("navigate-to",n),this.$router.push(n)},unfollow(e){this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)}))},goToExplore(){this.$root.$emit("navigate-to"),this.$router.push("/library/explore")},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/following"),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.scrollTo(0,this.scrollOffset)},mounted(){this.setSearch(),this.$refs&&this.$refs.scrollEl&&this.$refs.scrollEl.addEventListener("scroll",Object(jt["a"])((()=>{this.scrollOffset=this.$refs.scrollEl.scrollTop})))},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Lt=Nt,Ut=(a("3d7e"),Object(v["a"])(Lt,Et,Dt,!1,null,"0a6f4e44",null)),Rt=Ut.exports;S()(Ut,"components",{QBtn:A["a"],QTooltip:V["a"]});var Mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"scrollEl",staticClass:"local-favorite",class:{web:!e.isElectron}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"input-file",accept:".json"},on:{change:e.onFileChange}}),a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.filteredFavorites.length,itemsFn:function(t,a){return e.filteredFavorites.slice(t,a)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n,followable:!e.lib.followingChannels.some((function(e){return e.id===n.channel.id}))},on:{follow:e.onFollow,preview:e.preview,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"rounded-borders bg-page column justify-center items-center",class:e.filteredFavorites.length?"q-mb-sm q-pa-md":"",style:e.filteredFavorites.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},[e.filteredFavorites.length?e._e():a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)])]},proxy:!0}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("div",{staticClass:"fixed-bottom-right save-or-load",class:{higher:e.scrollIndex>0||e.showBackToTop}},[a("q-btn",{staticClass:"backup-btn q-ma-xs",class:{hide:e.hideBtn},attrs:{fab:"","no-wrap":"",size:"18px",color:"primary",icon:"source"},on:{click:e.saveOrLoad}},[a("div",{staticClass:"fab-inner-text"},[e._v(e._s(e.$t("backup")))])])],1),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("q-dialog",{model:{value:e.showDialog,callback:function(t){e.showDialog=t},expression:"showDialog"}},[a("q-card",[a("q-card-section",{staticClass:"row"},[a("div",{staticClass:"text-h6 col-12"},[e._v(e._s(e.$t("import_or_export_favorites")))]),a("div",{staticClass:"col-12"},[e._v("\n Total: "+e._s(e.favorites.length)+"\n ")]),a("div",{staticClass:"btns col-12 text-right q-mt-md"},[a("q-btn",{attrs:{color:"primary",flat:"",icon:"save",label:e.$t("export_local_favorites")},on:{click:e.exportData}}),a("FileSelector",{attrs:{accept:{name:"JSON",extensions:["json"]}},on:{select:e.onFileChange}},[a("q-btn",{staticClass:"q-ml-md",attrs:{color:"primary",flat:"",icon:"add",label:e.$t("import_favorites_file")}})],1)],1)])],1)],1)],1)},Ft=[],Bt=a("9a50"),Wt={name:"LibraryFavorite",components:{PostCard:Ye,BackToTop:nt,FileSelector:Bt["a"]},mixins:[vt,wt("favorite"),St],data(){return{isElectron:Object(X["isElectron"])(),hideBtn:!1,favorites:re.list(),scrollIndex:0,showPreview:!1,previewImage:"",showDialog:!1,lib:s["a"]}},computed:{filteredFavorites(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"postID":return e.id;case"postDesc":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.favorites.filter(n)}},methods:{onScroll(e){this.scrollIndex=e.index},preview(e){this.previewImage=e,this.showPreview=!0},remove(e){return re.remove(e)},saveOrLoad(){this.showDialog=!0},exportData(){Object(_["h"])(JSON.stringify({favorites:this.favorites}),"favorites.json"),this.showDialog=!1},importData(){console.log(this.$refs.fileSelector),this.$refs.fileSelector.value="",this.$refs.fileSelector.click()},onFileChange(e){e&&Object(_["g"])(e).then((e=>{if(!e)return this.$q.notify("Cannot read data from this file");const t=JSON.parse(e);if(!t.favorites||!Array.isArray(t.favorites))return this.$q.notify(this.$t("not_a_favorite_file"));re.set(t.favorites),this.showDialog=!1}))},onFollow(e){if(s["a"].followingChannels.some((t=>t.id===e||t.soul===e)))return console.log("unfollow"),s["a"].unfollowChannel(e).then(console.log);console.log("follow"),s["a"].followChannel(e).then(console.log)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"postTitle"},{label:this.$t("description"),value:"postDesc"},{label:this.$t("channel_title"),value:"channel"}])}},activated(){this.setSearch(),this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/favorite"),this.hideBtn=!0,setTimeout((()=>{this.hideBtn=!1}),300)},deactivated(){this.hideBtn=!0},watch:{searchText(e){e&&this.active&&this.handleBackToTop()}}},Ht=Wt,Vt=(a("2377"),Object(v["a"])(Ht,Mt,Ft,!1,null,"c0faef30",null)),Qt=Vt.exports;S()(Vt,"components",{QIcon:G["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSpinnerIos:$t["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QBtn:A["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"]}),S()(Vt,"directives",{ClosePopup:K["a"]});var Gt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"edit-container"},[a("div",{ref:"scrollArea",staticClass:"edit-main flex items-stretch justify-center"},[a("div",{staticClass:"add-channel rounded-borders bg-general q-ma-sm flex justify-center items-center column",staticStyle:{"min-height":"290px"}},[a("div",{staticClass:"add-channel-panel relative-position"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticClass:"add-channel-btn block absolute-left",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle_outline",size:"24px"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_channel")))])],1),a("q-btn",{staticClass:"quick-start block absolute-right",attrs:{round:"",unelevated:"",color:"primary","text-color":"primary",icon:"add_circle",size:"24px"},on:{click:function(t){e.showQuickStart=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("quick_start_desc")))])],1)],1)]),e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{title:t.title,description:t.description,image:t.image,id:t.id,soul:t.soul,hidden:t.hidden,followers:e.lib.channelFollowerCount[t.id],editable:!0,hideFollow:""},on:{edit:e.edit,detail:e.showChannelDetail,preview:e.showPreview,"remove-channel":e.removeChannel}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("ChannelEdit",{attrs:{title:e.modeTitle,show:e.showEdit,channel:e.edittingChannel,rules:{validateChannelTitle:e.validateChannelTitle,validateChannelDesc:e.validateChannelDesc,validateChannelImage:e.validateChannelImage}},on:{close:function(t){e.showEdit=!1},submit:e.submit}}),a("PostEdit",{attrs:{title:e.postModeTitle,show:e.showPostEdit,post:e.edittingPost,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl}},on:{close:function(t){e.showPostEdit=!1},submit:e.submitPost}}),a("QuickStart",{attrs:{show:e.showQuickStart},on:{input:function(t){return e.showQuickStart=t}}})],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}}),a("q-dialog",{attrs:{"full-width":"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showPostList,callback:function(t){e.showPostList=t},expression:"showPostList"}},[a("PostList",{attrs:{channel:e.listChannel,rules:{validatePostTitle:e.validatePostTitle,validatePostDesc:e.validatePostDesc,validatePostImage:e.validatePostImage,validatePostUrl:e.validatePostUrl},editable:!0},on:{edit:e.showPostEditor,add:e.showPostAdd,"remove-post":e.removePost}})],1)],1)},Kt=[],Yt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,"content-class":"fullscreen-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.close}},[e.channel?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.title))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{staticClass:"column q-pb-none",class:e.screen$xs?"q-pt-md":"q-pt-none",staticStyle:{width:"560px","max-width":"100%","flex-grow":"1"}},[a("q-input",{attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle],placeholder:e.$t("placeholder_channel_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{outlined:"",dense:"","stack-label":"",label:e.$t("description"),rules:[e.rules.validateChannelDesc],placeholder:e.$t("placeholder_channel_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("q-toggle",{staticStyle:{"margin-top":"-8px"},attrs:{color:"green"},model:{value:e.hidden,callback:function(t){e.hidden=t},expression:"hidden"}},[a("span",[e._v(e._s(e.$t("set_as_private")))]),a("q-tooltip",[e._v(e._s(e.$t("hide_in_explore")))])],1)],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"q-px-md",class:e.screen$xs?"q-py-sm":"q-py-md",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-px-md",attrs:{unelevated:"",color:"general","text-color":"general",label:e.$t("cancel")}}),a("q-btn",{staticClass:"q-px-md",attrs:{unelevated:"",color:"primary","text-color":"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1):e._e()],1)},Jt=[],Zt=a("d534"),Xt={name:"ChannelEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,channel:Object,title:String,rules:{validateChannelTitle:Function,validateChannelDesc:Function,validateChannelImage:Function}},data(){const e=[{label:this.$t("channel_title"),key:"title",rules:[this.rules.validateChannelTitle],value:""},{label:this.$t("description"),key:"description",rules:[this.rules.validateChannelDesc],value:""},{label:this.$t("preview")+"(url)",key:"image",rules:[this.rules.validateChannelImage],value:""}];return{inputs:e,channelTitle:"",description:"",image:"",isImageLoaded:!1,hidden:!1}},methods:{close(){this.$emit("close")},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.channelTitle,description:this.description,image:this.image,hidden:this.hidden})}},watch:{show(e){e&&this.channel?(this.channelTitle=this.channel.title,this.description=this.channel.description,this.image=this.channel.image,this.channel.hidden?this.hidden=!0:this.hidden=!1):(this.channelTitle="",this.description="",this.image="",this.hidden=!1)}}},ea=Xt,ta=a("03bd"),aa=Object(v["a"])(ea,Yt,Jt,!1,null,"01839ef4",null),na=aa.exports;S()(aa,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QInput:E["a"],QToggle:ta["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(aa,"directives",{ClosePopup:K["a"]});var oa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.close}},[e.post?a("q-card",{staticClass:"column no-wrap"},[a("q-card-section",{class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))])]),a("q-card-section",{staticClass:"row q-pt-none justify-start items-start"},[a("div",{staticClass:"full-width title-input-container"},[a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"bottom-slots":"","stack-label":"",outlined:"",dense:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle],placeholder:e.$t("placeholder_post_title"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.titleFromTask,expression:"titleFromTask"}],staticClass:"full-width"},[a("span",{staticClass:"task-prefix"},[e._v(e._s(e.$t("task_title"))+":")]),a("span",{staticClass:"title-from-task q-ml-xs text-grey"},[e._v(e._s(e.titleFromTask))]),a("span",{staticClass:"cursor-pointer q-ml-sm set-title",on:{click:e.setTitleFromTask}},[e._v(e._s(e.$t("set_title")))])])]},proxy:!0}],null,!1,1210891792),model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}})],1),a("q-input",{staticClass:"full-width q-mt-xs",attrs:{"stack-label":"",outlined:"",dense:"",label:e.$t("description"),rules:[e.rules.validatePostDesc],placeholder:e.$t("placeholder_post_desc"),debounce:500},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.description,callback:function(t){e.description=t},expression:"description"}}),a("ImageWithPreview",{staticClass:"q-mt-xs",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updateImageState},model:{value:e.image,callback:function(t){e.image=t},expression:"image"}}),a("div",{staticClass:"full-width row col-12"},[a("q-input",{staticClass:"col-7 q-pr-md",attrs:{outlined:"",dense:"",label:e.appName+" URL",rules:[e.rules.validatePostUrl],debounce:500},on:{input:e.inputUrl},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("q-select",{staticClass:"col-5",attrs:{outlined:"",dense:"","bottom-slots":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important","use-input":"",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}],null,!1,1979668889),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("q-select",{staticClass:"q-mt-sm",staticStyle:{width:"100%"},attrs:{outlined:"",dense:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}}),a("q-markup-table",{staticClass:"q-mt-lg full-width",attrs:{bordered:"",flat:"",dense:"","no-data-label":"I didn't find anything for you"}},[a("thead",[a("tr",[a("th",{attrs:{colspan:"3"}},[a("div",{staticClass:"flex items-center full-width"},[a("div",[e._v(e._s(e.$t("subtitle_list"))+" ("+e._s(e.$t("optional"))+")")]),a("q-btn",{staticClass:"q-ml-sm",attrs:{flat:"",round:"",icon:"help_outline",size:"0.7rem"}},[a("q-tooltip",[e._v(e._s(e.$t("support_subtitle_type"))),a("br"),e._v(e._s(e.$t("recommend_opensubtitles")))])],1),a("q-btn",{staticClass:"q-mx-xs",attrs:{flat:"",round:"",icon:"add",size:"0.7rem"},on:{click:function(t){return e.editSubtitle()}}},[a("q-tooltip",[e._v(e._s(e.$t("add_subtitles")))])],1)],1)])]),e.subtitleList.length?a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("download_link")))]),a("th",{staticClass:"text-center"})]):e._e()]),a("tbody",e._l(e.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left"},[e._v(e._s(t.url))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"edit",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.editSubtitle(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1),a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:"",size:"0.5rem"},on:{click:function(t){return e.modifySubtitleList(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1)],1)])})),0)])],1),a("q-space"),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:e.$t("lib_submit"),color:"primary"},on:{click:e.submit}})],1)],1):e._e(),a("q-dialog",{ref:"addSubtitleDialog",on:{hide:function(t){e.subtitle={}}},model:{value:e.showSubtitleInput,callback:function(t){e.showSubtitleInput=t},expression:"showSubtitleInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("add_subtitle_url")))])]),a("q-card-section",{staticClass:"q-pt-none full-width"},[a("q-select",{staticStyle:{width:"200px"},attrs:{dense:"",outlined:"","emit-value":"",label:e.$t("language"),options:e.languageOptions},model:{value:e.subtitle.lang,callback:function(t){e.$set(e.subtitle,"lang",t)},expression:"subtitle.lang"}}),a("q-input",{staticClass:"q-mt-sm",attrs:{label:e.$t("download_link"),outlined:"",dense:"",type:"text",placeholder:"https://www.opensubtitles.org/.../subtitleserve/sub/..."},model:{value:e.subtitle.url,callback:function(t){e.$set(e.subtitle,"url",t)},expression:"subtitle.url"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{attrs:{flat:"",icon:"done",loading:e.loading,disable:e.loading},on:{click:function(t){return e.modifySubtitleList(e.subtitle.index,e.subtitle)}},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])})],1)],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},ia=[],ra={name:"PostEdit",components:{ImageWithPreview:Zt["a"]},props:{show:Boolean,post:Object,title:String,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},data(){const e=De.a.displayName;return{appName:e,postTitle:"",titleFromTask:"",description:"",image:"",isImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,rate:{label:this.$t("film_rate"),value:""},showSubtitleInput:!1,loading:!1,subtitle:{},languageOptions:$e(),subtitleList:[],taskOptions:[]}},computed:{rateOptions(){return[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}]},uploadingTasks(){return d["a"].getters.uploading.filter((e=>!!e.title||(console.log("PostEdit.uploadingTasks:",e),!1))).map((e=>{var t;const a=e.title.length>28?e.title.substring(0,24)+"...":e.title;return{label:a,title:e.title,value:(null===(t=e.abUrl.split("&"))||void 0===t?void 0:t[0])||e.abUrl}}))}},methods:{filterOptions(e,t){console.log("filter",e);const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.label.toLowerCase().includes(a)))}))},close(){this.$emit("close")},setTitleFromTask(){this.postTitle=this.titleFromTask,this.titleFromTask=""},inputUrl(e){this.abSelect&&e!==this.abSelect.value&&(this.abSelect=null,this.titleFromTask="")},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title},updateImageState(e){console.log("img state changed",e),this.isImageLoaded=1===e},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});this.abUrl=t},editSubtitle(e){if(this.loading=!1,"number"===typeof e)this.subtitle=JSON.parse(JSON.stringify(this.subtitleList[e])),this.subtitle.index=e;else{if(this.subtitleList.length>=5)return this.$q.notify(this.$t("maximumSubtitleNum_limit"));this.subtitle={index:this.subtitleList.length}}this.showSubtitleInput=!0},async modifySubtitleList(e,t){if(console.log("modifySubtitleList",e),this.loading=!0,t&&"number"===typeof t.index){if(!t.lang||!t.url||""===t.lang)return this.loading=!1,this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("cannot_add_subtitle_msg")+this.$t("recommend_opensubtitles"),ok:this.$t("ok")});const a=await Ae(this.subtitle.url);if(this.loading=!1,!a)return this.$q.dialog({title:this.$t("cannot_add_subtitle"),message:this.$t("invalid_download_url"),ok:this.$t("ok")});this.subtitleList[e]=t}else this.subtitleList.splice(e,1);this.$refs.addSubtitleDialog.hide()},async checkSubtitleUrl(){if(!/https:\/\/www\.opensubtitles\.org.*\/subtitleserve\/sub\/\d+$/gm.test(this.subtitle.url)&&!/^\d+$/.test(this.subtitle.url))return this.$t("invalid_download_url");const e=await Ae(this.subtitle.url);return e?void 0:this.$t("invalid_download_url")},submit(){if(this.image&&!this.isImageLoaded)return this.$q.dialog({title:this.$t("invalid_image"),message:this.$t("image_not_reachable"),ok:this.$t("ok")});this.$emit("submit",{title:this.postTitle.trim(),description:this.description.trim(),image:this.image.trim(),rate:this.rate.value,abUrl:this.abUrl.trim(),subtitleList:Te(this.subtitleList).trim()})}},watch:{show(e){if(e&&this.post){if(this.postTitle=this.post.title,this.description=this.post.description,this.image=this.post.image,this.abUrl=this.post.abUrl.includes(":")?this.post.abUrl:decodeURIComponent(this.post.abUrl),this.post.rate){const e=this.rateOptions.find((e=>e.value===this.post.rate));e&&(this.rate={...e})}else this.rate={label:this.$t("film_rate"),value:""};this.subtitleList=ze(this.post.subtitleList)}else this.postTitle="",this.description="",this.image="",this.abUrl="",this.titleFromTask="",this.abSelect=null,this.rate={label:this.$t("film_rate"),value:""},this.subtitleList=[]}}},sa=ra,la=(a("1761"),a("4101")),ca=Object(v["a"])(sa,oa,ia,!1,null,"48adc3b5",null),da=ca.exports;S()(ca,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QSelect:ue["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QSpace:W["a"],QCardActions:D["a"],QSpinner:w["a"],QColor:la["a"]}),S()(ca,"directives",{ClosePopup:K["a"]});var ua=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"post-list-card column no-wrap overflow-hidden relative-position"},[a("q-card-section",{staticClass:"flex items-center bg-page",class:[e.screen$xs?"q-py-sm":"q-py-md"]},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.channel.title))]),a("q-space"),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"add"},on:{click:e.add}},[a("q-tooltip",[e._v(e._s(e.$t("add_post")))])],1):e._e(),e.editable?a("q-btn",{staticClass:"q-mx-xs",attrs:{"fab-mini":"",flat:"",icon:"file_open"},on:{click:function(t){e.showImport=!0}}},[a("q-tooltip",[e._v(e._s(e.$t("import_data_from_excel")))])],1):e._e(),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],staticClass:"q-ml-xs",attrs:{"fab-mini":"",flat:"",icon:"close"}})],1),a("q-card-section",{staticClass:"q-py-sm q-pb-none"},[a("div",{staticClass:"description"},[e._v(e._s(e.channel.description))])]),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none",staticStyle:{"flex-grow":"1","flex-shrink":"1","overflow-y":"scroll"}},[a("q-markup-table",{attrs:{square:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("created_time")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("operations")))])])]),a("tbody",{staticClass:"post-table"},e._l(e.sortedPosts,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-left"},[a("img",{attrs:{src:t.image,loading:"lazy",width:"64px"}})]),a("td",{staticClass:"text-left post-title"},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc",staticStyle:{"min-width":"240px"}},[e._v(e._s(t.description))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-center"},[e._v(e._s(e.stampToString(t.timestamp)))]),a("td",{staticClass:"text-center"},[e.editable?a("q-btn",{attrs:{icon:"edit",round:"",flat:""},on:{click:function(a){return e.edit(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("lib_edit")))])],1):e._e(),e.editable?a("q-btn",{attrs:{icon:"close",color:"red",round:"",flat:""},on:{click:function(a){return e.deletePost(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("delete")))])],1):e._e()],1)])})),0)])],1),a("q-dialog",{attrs:{"content-class":"fullscreen-dialog excel-dialog",position:e.screen$xs?"bottom":"standard"},on:{input:e.importDialogChange},model:{value:e.showImport,callback:function(t){e.showImport=t},expression:"showImport"}},[e.excelFile?a("Excel",{attrs:{file:e.excelFile,channelId:e.channel.id,channelPosts:e.posts,propKeys:e.excelProps,rules:e.rules}}):a("q-card",{staticClass:"import-entry"},[a("q-card-section",{staticClass:"row items-center no-wrap q-py-sm"},[a("div",{staticClass:"text-h6 text-weight-bold"},[e._v(e._s(e.$t("import_data_from_excel")))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-card-section",{staticClass:"row items-center q-pt-none excel-import-dialog"},[a("div",{staticClass:"prop-settings col-12"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("set_excel_keys")))]),e._l(e.excelProps,(function(t,n){return a("q-input",{key:n,staticClass:"q-my-sm",attrs:{outlined:"",dense:"",label:t.label},model:{value:t.tableKey,callback:function(a){e.$set(t,"tableKey",a)},expression:"conf.tableKey"}})}))],2),a("q-file",{staticClass:"col-12",attrs:{outlined:"",dense:"",label:e.$t("open_file"),accept:".xls,.xlsx"},model:{value:e.excelFile,callback:function(t){e.excelFile=t},expression:"excelFile"}})],1)],1)],1),a("q-inner-loading",{staticClass:"q-pt-xl",attrs:{showing:e.showLoading,label:e.$t("loading")}},[a("q-spinner-gears",{attrs:{size:"50px",color:"primary"}}),a("div",{staticClass:"text-center"},[e._v(e._s(e.$t("lib_from_network")))])],1)],1)},_a=[],pa=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-excel"},[a("q-card",{staticClass:"excel-card"},[a("q-card-section",{staticClass:"excel-main"},[a("div",{staticClass:"text-h6"},[e._v("Excel")]),a("q-markup-table",[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("title")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("description")))]),a("th",{staticClass:"text-left"},[e._v("Url")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("poster")))]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("film_rate")))]),a("th",{staticClass:"operation"})])]),a("tbody",{staticClass:"post-table"},e._l(e.posts,(function(t,n){return a("tr",{key:t.title},[a("td",{staticClass:"text-left post-title",attrs:{title:t.title}},[e._v(e._s(t.title))]),a("td",{staticClass:"text-left post-desc"},[e._v(e._s(t.description))]),a("td",{staticClass:"text-left post-url",attrs:{title:t.abUrl}},[e._v(e._s(t.abUrl))]),a("td",{staticClass:"text-left post-img"},[a("img",{attrs:{src:t.image,width:"24px",loading:"lazy"}})]),a("td",{staticClass:"text-left post-rating"},[e._v(e._s(t.rate))]),a("td",{staticClass:"text-left post-options"},[a("q-btn",{attrs:{dense:"",flat:"",icon:"close",color:"red"},on:{click:function(t){return e.removePost(n)}}},[a("q-tooltip",[e._v(e._s(e.$t("remove")))])],1)],1)])})),0)])],1),a("q-card-actions",{staticClass:"excel-actions q-pb-xs",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",dense:"",color:"primary",label:e.$t("lib_submit")},on:{click:e.submit}})],1)],1)],1)},ma=[],ha=a("8b4c"),ga={name:"LibraryExcel",props:{file:{type:File,default:()=>null},channelId:{type:String,default:""},channelPosts:{type:Array,default:()=>[]},rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function},propKeys:{type:Array,default:()=>[{key:"title",label:(void 0).$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:"Alphabiz URL",tableKey:"AB-S"},{key:"description",label:(void 0).$t("description"),tableKey:"描述"},{key:"image",label:(void 0).$t("poster"),tableKey:"海报"},{key:"rate",label:(void 0).$t("film_rate"),tableKey:"分级"}]}},data(){return{posts:[]}},methods:{removePost(e){this.posts.splice(e,1)},readFile(e){return new Promise(((t,a)=>{const n=new FileReader;n.onload=e=>{const n=e.target.result;try{const e=ha["read"](n);t(e)}catch(e){a(e)}},n.onerror=e=>a(e),n.readAsArrayBuffer(e)}))},async parseXlsx(){console.log("parse xlsx",this.file,ha);const e=await this.readFile(this.file);console.log(e),this.$q.loading.show(),this.posts=[];let t=0,a=0,n=0;for(const o in e.Sheets){const i=e.Sheets[o],r=ha["utils"].sheet_to_json(i);console.log("Parsed",r),r.length&&await r.reduce((async(e,o)=>{await e,await new Promise((e=>setTimeout(e)));const i={};for(const a of this.propKeys){if(!o[a.tableKey]||!o[a.tableKey].length)return console.log("[Excel] Failed",a,a.tableKey,o[a.tableKey]),t++;i[a.key]=o[a.tableKey]}if(this.channelPosts.some((e=>e.title===i.title||e.abUrl===i.abUrl)))return console.log("[Excel] Skip existed",i,this.channelPosts.find((e=>e.title===i.title||e.abUrl===i.abUrl))),a++;if(i.abUrl&&i.abUrl.startsWith("magnet"))try{i.abUrl=await Object(Se["a"])(i.abUrl)}catch(r){console.log("cannot convert abUrl",i.abUrl,r)}if(i.description=i.description.substring(0,299),[this.rules.validatePostTitle(i.title),this.rules.validatePostDesc(i.description),this.rules.validatePostImage(i.image),this.rules.validatePostUrl(i.abUrl)].some((e=>"string"===typeof e)))return console.log("[Excel] Validate error",[i.title,this.rules.validatePostTitle(i.title),i.description,this.rules.validatePostDesc(i.description),i.image,this.rules.validatePostImage(i.image),i.abUrl,this.rules.validatePostUrl(i.abUrl)]),n++;this.posts.push(i)}),Promise.resolve())}this.$q.loading.hide(),this.$q.dialog({title:this.$t("excel_import_succeded"),message:this.$t("excel_import_success_msg",[this.posts.length,t,a,n])})},submit(){return console.log(this.channelId,s["a"],this.posts),this.channelId?this.posts.length?void s["a"].addPosts(this.posts,this.channelId).then(((...e)=>{console.log("add posts",...e)})):this.$q.notify(this.$t("cannot_find_posts")):this.$q.notify(this.$t("cannot_find_channel"))}},watch:{file(e){console.log("file:",e)}},mounted(){console.log("excel mounted"),this.parseXlsx()},activated(){console.log("excel activated")}},fa=ga,ba=(a("5415"),Object(v["a"])(fa,pa,ma,!1,null,"27719a2e",null)),ya=ba.exports;S()(ba,"components",{QCard:q["a"],QCardSection:O["a"],QMarkupTable:Q["a"],QBtn:A["a"],QTooltip:V["a"],QCardActions:D["a"]}),S()(ba,"directives",{ClosePopup:K["a"]});const va=e=>("00"+e).slice(-2);var wa={props:{channel:Object,editable:Boolean,rules:{validatePostTitle:Function,validatePostDesc:Function,validatePostImage:Function,validatePostUrl:Function}},components:{Excel:ya},data(){const e=De.a.name;return{appName:e,showLoading:!1,showImport:!1,excelFile:null,posts:[],excelProps:[{key:"title",label:this.$t("title"),tableKey:"IMDb Rating"},{key:"abUrl",label:`${De.a.displayName} URL`,tableKey:"AB-S"},{key:"description",label:this.$t("description"),tableKey:this.$t("description")},{key:"image",label:this.$t("poster"),tableKey:this.$t("poster")},{key:"rate",label:this.$t("film_rate"),tableKey:this.$t("film_rate")}]}},inject:["rootApp"],computed:{sortedPosts(){return[...this.posts].sort(((e,t)=>t.timestamp-e.timestamp))}},methods:{loadPosts(){this.showLoading=!0,console.log("load posts",this.channel.id,this.channel),Object(p["o"])(this.channel.id,!this.editable).then((e=>{this.posts=e,console.log("Got posts",e),this.showLoading=!1}))},edit(e){console.log("edit",e,this.channel),this.$emit("edit",e,this.channel)},add(){this.$emit("add",this.channel)},deletePost(e){this.$emit("remove-post",e.id,this.channel.id)},download(e){this.rootApp.promptDownload(e.abUrl,!0)},stampToString(e){if(isNaN(e))return console.log("stamp is not number",e),"-";const t=new Date(e);return isNaN(t.getFullYear())?(console.log("date is invalid",e,t),"-"):[t.getFullYear(),...[t.getMonth()+1,t.getDate()].map(va)].join("-")+" "+[t.getHours(),t.getMinutes(),t.getSeconds()].map(va).join(":")},importDialogChange(e){e||(this.excelFile=null)}},mounted(){console.log("mounted",this.channel),this.loadPosts()},beforeDestroy(){console.log("destroyed",this.channel),this.channel&&this.channel.id&&Object(p["y"])(this.channel.id)}},ka=wa,Sa=(a("5e95"),a("3927")),Ca=Object(v["a"])(ka,ua,_a,!1,null,"1e291392",null),xa=Ca.exports;S()(Ca,"components",{QCard:q["a"],QCardSection:O["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QDialog:I["a"],QInput:E["a"],QFile:Sa["a"],QInnerLoading:At["a"],QSpinnerGears:It["a"],QColor:la["a"]}),S()(Ca,"directives",{ClosePopup:K["a"]});var $a=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.show,persistent:"",position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.changeShow}},[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",id:"file-selector"},on:{change:e.onFileChange}}),a("input",{ref:"folderSelector",staticStyle:{display:"none"},attrs:{type:"file",webkitdirectory:"",id:"folder-selector"},on:{change:e.onFolderChange}}),a("q-card",{staticClass:"card-container"},[a("q-card-section",{staticClass:"card-header non-selectable",class:{"q-py-sm":e.screen$xs}},[a("div",{staticClass:"text-h6 text-weight-bold q-my-none"},[e._v(e._s(e.$t("quick_start")))])]),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("div",{staticClass:"card-content"},[a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"from-file-or-task flex items-start justify-start q-mb-lg"},[e.isCapacitor?e._e():a("div",{staticClass:"from-file-or-folder q-mt-md col-grow"},[a("q-btn",{staticClass:"full-width",class:{"q-mt-sm":!e.isElectron},attrs:{unelevated:"",dense:e.isElectron,color:"primary","text-color":"primary",label:e.$t("select_file")},on:{click:function(){return e.$refs.fileSelector.click()}}}),e.isElectron?a("q-btn",{staticClass:"full-width q-mt-sm",attrs:{unelevated:"",dense:"",color:"primary","text-color":"primary",label:e.$t("select_folder")},on:{click:function(){return e.$refs.folderSelector.click()}}}):e._e()],1),a("q-select",{staticClass:"col-grow q-mt-md from-upload-task",class:e.isCapacitor?"q-ml-none":"q-ml-sm",attrs:{outlined:"",dense:"","bottom-slots":"","use-input":"","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"popup-content-style":"height: 320px !important",behavior:"menu",label:e.$t("select_from_tasks"),options:e.taskOptions},on:{input:e.selectTask,filter:e.filterOptions},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"hint",fn:function(){return[a("div",{staticClass:"from-magnet text-primary cursor-pointer non-selectable",on:{click:function(t){t.stopPropagation(),t.preventDefault(),e.showMagnetInput=!0}}},[e._v("\n "+e._s(e.$t("import_from_magnet"))+"\n ")])]},proxy:!0}]),model:{value:e.abSelect,callback:function(t){e.abSelect=t},expression:"abSelect"}})],1),a("div",{staticClass:"post-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("post_title"),rules:[e.rules.validatePostTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postTitle,callback:function(t){e.postTitle=t},expression:"postTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_post_desc"),rules:[e.rules.validatePostDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.postDescription,callback:function(t){e.postDescription=t},expression:"postDescription"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.appName+" "+e.$t("download_link"),rules:[e.rules.validatePostUrl]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.abUrl,callback:function(t){e.abUrl=t},expression:"abUrl"}}),a("ImageWithPreview",{staticClass:"q-mb-sm",attrs:{label:e.$t("poster"),rules:[e.rules.validatePostImage]},on:{state:e.updatePostImageState},model:{value:e.postImage,callback:function(t){e.postImage=t},expression:"postImage"}}),a("q-select",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",options:e.rateOptions,label:e.$t("film_rate")},model:{value:e.rate,callback:function(t){e.rate=t},expression:"rate"}})],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"channel-option non-selectable"},[a("label",{staticClass:"text-bold q-mr-sm",staticStyle:{"font-size":"1.125rem"}},[e._v(e._s(e.$t("channel_options")))]),a("q-radio",{attrs:{val:!0,label:e.$t("create_new_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}}),a("q-radio",{attrs:{val:!1,label:e.$t("use_existed_channel")},model:{value:e.createChannel,callback:function(t){e.createChannel=t},expression:"createChannel"}})],1),e.createChannel?a("div",{staticClass:"channel-inputs"},[a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("channel_title"),rules:[e.rules.validateChannelTitle]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelTitle,callback:function(t){e.channelTitle=t},expression:"channelTitle"}}),a("q-input",{staticClass:"full-width q-mb-sm",attrs:{dense:"",outlined:"",label:e.$t("placeholder_channel_desc"),rules:[e.rules.validateChannelDesc]},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.channelDescription,callback:function(t){e.channelDescription=t},expression:"channelDescription"}}),a("ImageWithPreview",{attrs:{label:e.$t("channel_poster"),rules:[e.rules.validateChannelImage]},on:{state:e.updateChannelImageState},model:{value:e.channelImage,callback:function(t){e.channelImage=t},expression:"channelImage"}})],1):a("div",{staticClass:"channel-select"},[a("q-select",{staticClass:"full-width",attrs:{outlined:"","bottom-slots":"","use-input":"",dense:"","popup-content-style":"max-height: 320px !important","menu-anchor":"bottom right","menu-self":"top end","menu-offset":[0,0],"data-cy":"select-direct",behavior:"menu",label:e.$t("select_existed_channel"),options:e.channelOptions},on:{filter:e.filterChannels},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"option",fn:function(t){return[a("q-item",e._g(e._b({},"q-item",t.itemProps,!1),t.itemEvents),[a("q-item-section",[a("q-item-label",[a("span",{staticClass:"label"},[e._v(e._s(t.opt.label))]),a("small",{staticClass:"text-grey q-ml-sm"},[e._v(e._s(t.opt.caption))])])],1)],1)]}}]),model:{value:e.selectedChannel,callback:function(t){e.selectedChannel=t},expression:"selectedChannel"}})],1)])],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-actions",{staticClass:"card-footer",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{attrs:{unelevated:"",label:e.$t("lib_submit"),disable:!e.submitReady,"text-color":"primary",color:"primary"},on:{click:e.submit}})],1)],1),a("q-dialog",{attrs:{value:!!e.progressText,persistent:""}},[a("q-card",{staticClass:"progress-card"},[a("q-card-section",[a("div",{staticClass:"text q-pa-md"},[e._v(e._s(e.progressText))])])],1)],1),a("q-dialog",{on:{hide:function(t){e.magnetInput=""}},model:{value:e.showMagnetInput,callback:function(t){e.showMagnetInput=t},expression:"showMagnetInput"}},[a("q-card",{staticStyle:{width:"480px"}},[a("q-card-section",{staticClass:"full-width"},[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("input_magnet_url")))]),a("q-input",{attrs:{type:"text",autofocus:""},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.magnetInput,callback:function(t){e.magnetInput=t},expression:"magnetInput"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"done",color:"primary","text-color":"primary"},on:{click:e.fromMagnet}})],1)],1)],1)],1)},Ta=[],za=(a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("84f6")),Pa=a("a3fc"),Aa=a.n(Pa);function Ia(e){if(!Array.isArray(e)||!e[0])return"";let t=Object(Pa["dirname"])(e[0]);for(let a=1;a1)t=Object(Pa["dirname"])(t);return t}var qa=a("8a63");const Oa=4e9,Ea=e=>new Promise((t=>setTimeout(t,e))),Da=()=>{const e=new Uint8Array(12);return crypto.getRandomValues(e),e.reduce(((e,t)=>{const a=t.toString(16).padStart(2,"0");return e+a}),"")};var ja={components:{ImageWithPreview:Zt["a"]},name:"QuickStart",props:{show:Boolean,preset:{required:!1,default:null}},data(){const e=[{label:this.$t("rate_g"),value:"G"},{label:this.$t("rate_pg"),value:"PG"},{label:this.$t("rate_pg_13"),value:"PG-13"},{label:this.$t("rate_r"),value:"R"},{label:this.$t("rate_nc_17"),value:"NC-17"}],t={validateChannelTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||oe["b"].t("validate_channel_image_url"))},validatePostTitle(e){return e.length>0&&e.length<100||oe["b"].t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||oe["b"].t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?oe["b"].t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||oe["b"].t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return oe["b"].t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?oe["b"].t("validate_post_url"):e.length<2048||oe["b"].t("validate_post_url_length")}},a=De.a.displayName;return{appName:a,rules:t,progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,rateOptions:e,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:e[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""},isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{username(){return s["a"].userData.name?s["a"].userData.name:d["a"].getters.accountUserInfo.nickname?d["a"].getters.accountUserInfo.nickname:s["a"].user.name||"-"},uploadingTasks(){return za["a"].taskList.uploading.map((e=>this.getTaskOption(e)))},channelOptions(){return s["a"].ownedChannels.filter((e=>!!e.id&&e.title.toLowerCase().includes(this.channelFilterInput))).filter((e=>s["a"].channelList.some((t=>e.id===t.id)))).map((e=>{const t=e.title.length>48?e.title.substring(0,44)+"...":e.title;return{label:t,title:e.title,caption:"%"+e.id,id:e.id}}))},submitReady(){if(this.channelImage&&!this.isChannelImageLoaded)return!1;if(this.channelImage&&!0!==this.rules.validateChannelImage(this.channelImage))return!1;if(this.postImage&&!this.isPostImageLoaded)return!1;if(this.postImage&&!0!==this.rules.validatePostImage(this.postImage))return!1;if(!this.rate)return!1;if(this.createChannel){if([this.rules.validateChannelTitle(this.channelTitle),this.rules.validateChannelDesc(this.channelDescription)].some((e=>!0!==e)))return!1}else if(!this.selectedChannel.id)return!1;return!![this.rules.validatePostTitle(this.postTitle),this.rules.validatePostDesc(this.postDescription),this.rules.validatePostUrl(this.abUrl)].every((e=>!0===e))}},methods:{todo(){this.$q.notify("TODO: This is not impl")},changeShow(e){this.$emit("input",e)},clear(){var e;const t={progressText:"",postTitle:"",titleFromTask:"",postDescription:"",postImage:"",isPostImageLoaded:!1,channelTitle:"",channelDescription:"",channelImage:"",isChannelImageLoaded:!1,abUrl:"",abSelect:null,magnetInput:"",showMagnetInput:!1,createChannel:!0,rate:this.rateOptions[0],taskOptions:[],channelFilterInput:"",selectedChannel:{label:"",title:"",id:""}};null!==(e=this.channelOptions)&&void 0!==e&&e.length&&(t.createChannel=!1,t.selectedChannel=this.channelOptions[0]);for(const a in t)this.$set(this,a,t[a])},getTaskOption(e){var t;const a=e.postTitle||e.name||e.infoHash,n=a.length>36?a.substring(0,32)+"...":a;let o=Object(M["g"])(e.progress||1);if(e.ready)o="100.00%";else if(e.verifyStatus){const{current:t,total:a}=e.verifyStatus,n=t/a,i=Object(M["g"])(n);isNaN(n)||(o=i)}const i=(null===(t=e.alphabizURI.split("&"))||void 0===t?void 0:t[0])||e.alphabizURI,r=De.a.shortProtocol+"://"+i.split("/").pop();return{label:e.ready?n:n+` (${o})`,title:a,progress:o,value:r,ready:e.ready}},filterOptions(e,t){const a=e.toLowerCase();t((()=>{this.taskOptions=this.uploadingTasks.filter((e=>e.title.toLowerCase().includes(a)))}))},selectTask(e){this.abUrl=e.value,this.postTitle?this.titleFromTask=e.title:this.postTitle=e.title,this.postDescription||(this.postDescription=this.$t("uploaded_by",{title:e.title,name:this.username}))},filterChannels(e,t){const a=e.toLowerCase();t((()=>{this.channelFilterInput=a}))},updatePostImageState(e){this.isPostImageLoaded=1===e},updateChannelImageState(e){this.isChannelImageLoaded=1===e},showProgress(e,...t){console.log(this.$t("progress")+":",e,...t),this.progressText=e},async createNewChannel(){const e=await s["a"].createChannel(this.channelTitle.trim(),this.channelDescription.trim(),this.channelImage.trim());return console.log("Channel created",e),e},async submit(){let e=!1,t=null;const a=async a=>(clearTimeout(t),t=setTimeout((()=>{e=!0,this.$q.dialog({message:this.$t("quick_start_timeout",[a]),ok:this.$t("ok")})}),11e3),new Promise((e=>setTimeout(e,1e4))));let n=this.selectedChannel.id;if(this.createChannel){this.showProgress(this.$t("creating_new_channel")),await Ea(1e3);const o=await Promise.race([this.createNewChannel(),a(this.$t("create_new_channel"))]);if(clearTimeout(t),console.log(o),e||!o)return this.showProgress("");this.showProgress(this.$t("created_new_channel"),o),await Ea(1e3),n=o.id}this.showProgress(this.$t("creating_new_post")),await Ea(1e3);const o=await Promise.race([s["a"].createPost({title:this.postTitle.trim(),description:this.postDescription.trim(),image:this.postImage.trim(),rate:this.rate.value,abUrl:this.abUrl.trim()},n),a(this.$t("create_new_post"))]);if(e||!o)return this.showProgress("");clearTimeout(t),this.showProgress(this.$t("created_new_post"),o),await Ea(2e3),this.showProgress(""),await Ea(500),this.$emit("input",!1),this.$q.dialog({message:this.$t("success"),ok:this.$t("ok")})},async askForConfirm(e,t){return new Promise((a=>{this.$q.dialog({title:e,message:t,ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>a(!0))).onCancel((()=>a(!1)))}))},calcFileSize(e){return e.reduce(((e,t)=>e+t.size),0)},async onFileChange(e){var t,n;const o=null===e||void 0===e||null===(t=e.target)||void 0===t||null===(n=t.files)||void 0===n?void 0:n[0];if(o){if(console.log("file selected",o),e.target.value=null,o.size>Oa){const e=await this.askForConfirm(this.$t("file_too_large"),this.$t("file_too_large_msg",{size:Object(M["a"])(o.size)}));if(!e)return}if(Object(X["isElectron"])())this.createTask(o.path);else{const e=a("c620").wtClient;if(e.torrents.length){const t=await this.askForConfirm(this.$t("remove_old_task"),this.$t("remove_old_task_desc"));if(!t)return;e.torrents[0].destroy(),e.torrents.splice(0)}this.createTask(o)}}},async onFolderChange(e){var t,a,n;console.log("onFolderChange",e),(null===e||void 0===e||null===(t=e.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a.length)>100&&(this.showProgress(this.$t("resolving_folder_files")),await Ea(100));const o=[...null===e||void 0===e||null===(n=e.target)||void 0===n?void 0:n.files];if(!o)return;console.log("folder selected",o),e.target.value=null;const i=this.calcFileSize(o),r=Ia(o.map((e=>e.path)));if(this.showProgress(""),await Ea(50),i>Oa){const e=await this.askForConfirm(this.$t("folder_too_large"),this.$t("folder_too_large_msg",{size:Object(M["a"])(i)}));if(!e)return}console.log("TOTAL:",i),console.log("Create task with folder",r),this.createTask(r)},async createTask(e){const t=Da();this.showProgress(this.$t("creating_new_task")),Object(X["isElectron"])()?Object(qa["g"])(e,t):Z["a"].emit("wt-add",e,{token:t});const a=()=>{const e=setInterval((()=>{const a=za["a"].taskList.uploading.find((e=>e.token===t)),n=()=>{this.showProgress(""),this.selectTask(this.getTaskOption(a))};if(a.ready&&a.alphabizURI)return clearInterval(e),void n();if(!a.verifyStatus)return this.showProgress(this.$t("loading")+"... (0%)");const o=Object(M["g"])(a.verifyStatus.current/a.verifyStatus.total);this.showProgress(this.$t("loading")+`... (${o})`),a.verifyStatus.current>=a.verifyStatus.total&&a.alphabizURI&&(clearInterval(e),setTimeout(n,1e3))}),1e3)},n=Date.now(),o=setInterval((()=>{const e=za["a"].taskList.uploading.find((e=>e.token===t));if(e)clearInterval(o),a();else if(Date.now()-n>3e3)return clearInterval(o),this.showProgress(""),this.askForConfirm(this.$t("cannot_create_task"),this.$t("cannot_create_task_msg"))}),500)},async fromMagnet(){if("string"!==typeof this.magnetInput||!this.magnetInput)return;if(!this.magnetInput.startsWith("magnet"))return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});let e=this.magnetInput;if(!e.includes("dn=")){if(!this.postTitle)return this.$q.dialog({message:this.$t("magnet_does_not_have_name"),ok:this.$t("ok")});e+=`&dn=${encodeURIComponent(this.postTitle)}`}const t=await Object(Se["a"])(e);if(!t)return this.$q.dialog({title:this.$t("invalid_download_url"),ok:this.$t("ok")});const a=e.split("&").find((e=>e.startsWith("dn="))),n=a?decodeURIComponent(a.substring(3)):this.postTitle;if(!n)return this.$q.dialog({title:this.$t("cannot_get_task_name"),ok:this.$t("ok")});this.selectTask({value:t,label:n,title:n})}},watch:{show(e){e&&this.$nextTick((()=>{this.clear(),this.preset&&this.selectTask(this.getTaskOption(this.preset))}))}}},Na=ja,La=(a("50de"),a("2b77")),Ua=a("79e0"),Ra=Object(v["a"])(Na,$a,Ta,!1,null,"7e12c2f2",null),Ma=Ra.exports;S()(Ra,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QSeparator:H["a"],QBtn:A["a"],QSelect:ue["a"],QInput:E["a"],QRadio:La["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QCardActions:D["a"]}),S()(Ra,"directives",{ClosePopup:K["a"]});var Fa={name:"EditMain",components:{ChannelCard:pt,ChannelEdit:na,PostEdit:da,PostList:xa,BackToTop:nt,QuickStart:Ma},mixins:[vt],data(){return{current:null,showEdit:!1,edittingChannel:null,mode:"edit",currentId:"",listChannelId:"",edittingPost:null,edittingPostId:"",edittingPostChannelId:"",showPostList:!1,showPostEdit:!1,showBackToTop:!1,showQuickStart:!1,postMode:"edit",lib:s["a"]}},computed:{modeTitle(){return"add"===this.mode?this.$t("add_channel"):this.$t("channel_setting")},postModeTitle(){return"add"===this.postMode?this.$t("add_post"):this.$t("edit_post")},ownedChannels(){return this.lib.ownedChannels.filter((e=>s["a"].channelList.some((t=>t.id===e.id))))},filteredChannels(){const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(e)};return this.ownedChannels.filter(n)},ownedChannelInstances(){return this.lib.ownedChannelInstances},editTitle(){return"edit"===this.mode?this.$t("edit_channel"):this.$t("add_channel")},editPostTitle(){return"edit"===this.postMode?this.$t("edit_post"):this.$t("add_post")},listChannel(){const e=s["a"].ownedChannels.find((e=>e.id===this.listChannelId));return e||{}}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},edit(e){const t=this.ownedChannels.find((t=>t.id===e));t&&(this.edittingChannel=t,this.currentId=e,this.mode="edit",this.showEdit=!0)},add(){this.edittingChannel={title:"",description:"",image:""},this.mode="add",this.showEdit=!0},validateChannelTitle(e){return e.length>0&&e.length<100||this.$t("validate_channel_title_length")},validateChannelDesc(e){return e.length>9&&e.length<301||this.$t("validate_channel_desc_length")},validateChannelImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https://"))&&e.length<2048||this.$t("validate_channel_image_url"))},validateChannel(e){return[this.validateChannelTitle(e.title),this.validateChannelDesc(e.description),this.validateChannelImage(e.image)]},editChannel(e){console.log(e,this.currentId);const t=this.validateChannel(e);t.every((e=>!0===e))?(s["a"].editChannel(this.currentId,e).catch((e=>{console.error(e),this.$q.notify(this.$t("Network Error"))})),this.showEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addChannel(e){console.log(e);const t=this.validateChannel(e);if(t.every((e=>!0===e))){const t=this.lib.createChannel(e.title,e.description,e.image,e.hidden);console.log(t),this.showEdit=!1,t.then(console.log)}else this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submit(e){return"edit"===this.mode?this.editChannel(e):this.addChannel(e)},showPostEditor(e,t){console.log("show",e,t),this.postMode="edit",this.edittingPostId=e.id,this.edittingPostChannelId=t.id,this.edittingPost={...e},this.showPostEdit=!0},showPostAdd(){this.postMode="add",this.edittingPost={title:"",description:"",image:"",abUrl:""},this.showPostEdit=!0},validatePostTitle(e){return e.length>0&&e.length<100||this.$t("validate_post_title_length")},validatePostDesc(e){return e.length>9&&e.length<301||this.$t("validate_post_desc_length")},validatePostImage(e){return!e||(e.match(/\s/)?this.$t("validate_url_no_space"):(e.startsWith("http://")||e.startsWith("https"))&&e.length<2048||this.$t("validate_post_image_url"))},validatePostUrl(e){if(!e.startsWith(De.a.shortProtocol+"://")&&!e.startsWith(De.a.protocol+"://"))return this.$t("validate_post_url");const t=Object(we["a"])(e);return 28!==t.length?this.$t("validate_post_url"):e.length<2048||this.$t("validate_post_url_length")},validatePost(e){return e.rate?[this.validatePostTitle(e.title),this.validatePostDesc(e.description),this.validateChannelImage(e.image),this.validatePostUrl(e.abUrl)]:[this.$t("select_a_rate")]},editPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("edit",e,this.edittingPostChannelId,this.edittingPostId),s["a"].editPost(this.edittingPostChannelId,this.edittingPostId,e),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},addPost(e){const t=this.validatePost(e);t.every((e=>!0===e))?(console.log("new post to add",e),s["a"].createPost(e,this.edittingPostChannelId),this.showPostEdit=!1):this.$q.dialog({title:this.$t("validate_error"),message:t.filter((e=>!0!==e)).join("; "),ok:this.$t("ok")})},submitPost(e){return"edit"===this.postMode?this.editPost(e):this.addPost(e)},removePost(e,t){console.log("remove post",e,t),this.$q.dialog({title:this.$t("remove_post"),message:this.$t("remove_post_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removePost(e,t)}))},removeChannel(e){console.log("remove channel by id:",e),this.$q.dialog({title:this.$t("remove_channel"),message:this.$t("remove_channel_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"gray",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{s["a"].removeChannel(e)}))},showChannelDetail(e){this.listChannelId=e,this.edittingPostChannelId=e,this.showPostList=!0},showPreview(e){const t=s["a"].channelList.find((t=>t.id===e));if(!t)return;const a=["id","title","soul"].map((e=>{const a=t[e];return a?encodeURIComponent(e)+"="+encodeURIComponent(a):""})).filter((e=>e)).join("&"),n=`/library/channel?${a}&fromEdit=1&preview=1`;this.$root.$emit("navigate-to",n),this.$router.push(n)},setSearch(){this.lib.setSearchOption([{label:this.$t("title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&e.setSearch()}))},mounted(){this.setSearch()},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/edit")},watch:{searchText(e){e&&this.active&&this.scrollTop()}}},Ba=Fa,Wa=(a("61dc"),Object(v["a"])(Ba,Gt,Kt,!1,null,"755ddde0",null)),Ha=Wa.exports;S()(Wa,"components",{QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QColor:la["a"]}),S()(Wa,"directives",{Intersection:Ge["a"]});var Va=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"channel-page"},[a("q-virtual-scroll",{ref:"vscroll",staticClass:"posts",staticStyle:{height:"calc(100vh - 130px - env(safe-area-inset-bottom) - env(safe-area-inset-top))",padding:"0"},attrs:{separator:"",items:e.filteredPosts,"virtual-scroll-slice-size":10,"virtual-scroll-item-size":385,"virtual-scroll-sticky-size-end":16,"virtual-scroll-sticky-size-start":560},on:{"virtual-scroll":e.onScroll},scopedSlots:e._u([{key:"before",fn:function(){return[e.isPreview?a("q-card",{staticClass:"channel-preview-hint",attrs:{id:"channel-preview-hint"}},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("preview_mode")))]),a("div",{staticClass:"text-subtitle2"},[e._v(e._s(e.$t("preview_mode_desc")))])])],1):e._e(),a("div",{staticClass:"full-width flex justify-center",class:e.screen$xs?["q-pt-sm"]:["q-pt-md"]},[e.channel&&e.channel.id?a("ChannelHeader",{staticClass:"col-grow",class:[e.screen$xs?"q-ml-sm q-mr-xs":"q-mx-md"],attrs:{channel:e.channel},on:{scrollTop:e.scrollTop,intersect:e.intersect}}):e._e()],1)]},proxy:!0},{key:"default",fn:function(t){var n=t.item,o=t.index;return[a("PostCard",{key:o,attrs:{hideChannel:"",post:n},on:{preview:e.preview}})]}},{key:"after",fn:function(){return[a("div",{staticClass:"flex justify-center items-center",class:e.filteredPosts.length?["q-py-xl"]:["full-height"],style:{marginTop:e.filteredPosts.length?"-16px":"0"}},[e.filteredPosts.length?[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])]:[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])]],2)]},proxy:!0}])}),a("BackToTop",{attrs:{show:e.scrollIndex>0&&!e.isIntersecting},on:{click:e.scrollTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1),a("Loading",{attrs:{value:e.loadingPost}})],1)},Qa=[],Ga=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"channel-header relative-position overflow-hidden",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.24)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.channel.image,width:"100%"},on:{error:e.onImageError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-pr-none q-mb-md flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black",staticStyle:{transform:"translateY(-50%)"},attrs:{size:"120px"}},[e.isLoadChannelImage?a("img",{attrs:{src:e.channel.image},on:{error:e.onChannelImageError,load:e.onChannelImageLoaded}}):e._e(),e.isLoadChannelImage?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"subscriptions",size:"65px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"},[a("q-badge",{staticClass:"block q-py-xs cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:function(t){e.showFollowers=!0}}},[a("div",{staticClass:"header-channel-info"},[a("span",{staticClass:"text-weight-bolder"},[e._v(e._s(e.followerCount))]),e._v(" "),a("span",[e._v(e._s(e.$t("followers")))])])]),a("q-space"),a("FollowButton",{attrs:{id:e.channel.id}})],1)],1),a("q-card-section",{staticClass:"q-pt-none column items-stretch",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis col-shrink",attrs:{title:e.channel.title}},[e._v(e._s(e.channel.title))]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.channel.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("channel")+" ID: "))]),a("span",[e._v("%"+e._s(e.channel.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownChannel}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_channel")))])],1):e._e()],1),a("div",{staticClass:"flex items-center no-wrap overflow-hidden full-width"},[a("div",{staticClass:"creator-title cursor-pointer ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"},on:{click:e.gotoCreator}},[e._v("\n "+e._s(e.$t("creator"))+": "),a("span",[e._v(e._s(e.creator.name))])]),a("q-space"),e.creator.id?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:function(t){return e.copy(e.creator.id)}}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("creator")+" ID: "))]),a("span",[e._v("@"+e._s(e.creator.id))])])],1):e._e(),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-xs q-pa-xs",attrs:{unelevated:"",dense:"",color:"general","text-color":"general",icon:"block",size:"xs"},on:{click:e.takedownCreator}},[a("q-tooltip",[e._v(e._s(e.$t("takedown_user")))])],1):e._e()],1)]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"header-description"},[e._v("\n "+e._s(e.channel.description)+"\n ")]),a("div",{staticClass:"header-badges q-mt-sm non-selectable",staticStyle:{height:"min-content"}},[a("div",{staticClass:"overflow-hidden",staticStyle:{margin:"-4px"}},[e.channel.hidden?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"general","text-color":"general",label:e.$t("private_channel")}}):e._e(),e.isBlocked?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("blocked")}}):e._e(),e.isBlockedCreator?a("q-badge",{staticClass:"q-ma-xs q-py-xs",attrs:{color:"negative","text-color":"negative",label:e.$t("creator_blocked")}}):e._e()],1)])]),a("div",{staticClass:"absolute-top-right q-ma-sm flex"},[a("q-btn",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.$emit("intersect",t)},expression:"e => $emit('intersect', e)"}],attrs:{unelevated:"",round:"",icon:"share","text-color":"white"},on:{click:e.copyShareLink}},[a("q-tooltip",[e._v(e._s(e.$t("share")))])],1)],1),a("q-dialog",{attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showFollowers,callback:function(t){e.showFollowers=t},expression:"showFollowers"}},[a("q-card",{staticClass:"column overflow-hidden no-wrap",style:{minWidth:e.screen$xs?void 0:"560px",maxHeight:e.screen$xs?void 0:"calc(100vh - 120px)"}},[a("q-card-section",{staticClass:"row items-center q-py-sm"},[a("div",{staticClass:"text-h6 follower-title"},[e._v(e._s(e.$t("follower"))+" - "+e._s(e.channel.title))]),a("q-space"),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",icon:"close",round:""}})],1),a("q-separator"),a("q-card-section",{staticClass:"row items-center q-pa-none",staticStyle:{"min-width":"400px","flex-grow":"1","flex-shrink":"1","overflow-y":"auto"}},[a("q-markup-table",{staticStyle:{width:"100%"},attrs:{dense:"",flat:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("user")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("follow_time")))])])]),a("tbody",e._l(e.followers,(function(t){return a("tr",{key:t.id},[a("td",{staticClass:"text-left"},[e._v(e._s(t.user))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))])])})),0)])],1)],1)],1)],1)},Ka=[],Ya=(a("7a76"),{components:{FollowButton:Oe["a"]},name:"ChannelHeader",props:{channel:{type:Object,required:!0}},data(){return{creator:{name:this.$t("loading"),id:"",avatar:"",description:""},followBtnHovered:!1,pending:!1,showFollowers:!1,offFollower:null,isLoadChannelImage:!0,followers:[],lib:s["a"]}},computed:{currentCreator(){return s["a"].currentCreator},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&s["a"].userData.blockChannels.includes(this.channel.id)},isBlockedCreator(){return!(!s["a"].userData||!s["a"].userData.blockUsers)&&s["a"].userData.blockUsers.includes(this.channel.creator)},followable(){return!s["a"].followingChannels.find((e=>e.id===this.channel.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.followBtnHovered?this.$t("unfollow"):this.$t("following")},followerCount(){let e=this.followers.length;return e<1e3?e.toString():(e=Math.floor(e/1e3),e<1e3?e.toString()+"K+":(e=Math.floor(e/1e3),e<1e3?e.toString()+"M+":(e=Math.floor(e/1e3),e.toString()+"B+")))}},methods:{loadCreator(){this.channel.creator.id!==this.creator.id&&(this.creator={name:this.$t("loading"),id:"",avatar:"",description:""}),s["a"].getUserProfile(this.channel.creator).then((e=>{this.creator=e}))},loadFollowers(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on(((e,t,a,n)=>{this.offFollower=()=>n.off();const o=Object.values(e);for(let i=0;ie.id===i)),r={id:i,user:a,timestamp:n,time:new Date(n).toLocaleString()};-1!==o?this.followers.splice(o,1,r):this.followers.push(r)}}))},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied_to_clipboard"))}))},async copyShareLink(){const e=`${De.a.shortProtocol}-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`,t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("share_url_copied"))}))},async follow(){if(this.pending)return;const e=this.channel.id;if(!e)return;if(!s["a"].allChannelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:!0});const t=this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>e(!1))).onDismiss((()=>e(!0)))}));if(e)return}this.pending=!0,setTimeout((()=>{!s["a"].followingChannels.find((t=>t.id===e))===t&&(console.log("follow failed!",e,t),t&&s["a"].followChannel(e))}),2e3),t?s["a"].followChannel(e):s["a"].unfollowChannel(e)},gotoCreator(){if(console.log("goto creator",this.currentCreator),!this.currentCreator||!this.currentCreator.name)return this.$q.dialog({title:this.$t("loading_creator"),message:this.$t("wait_for_creator_loaded"),ok:this.$t("ok")});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(this.currentCreator.name)}`;this.$router.push(e).then((t=>{t instanceof Error||this.$root.$emit("navigate-to",e)}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{console.log(a),["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(){if(!this.channel.id)return this.$q.notify("Cannot get channel id");this.takedown("channel",this.channel.id)},onImageError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onChannelImageError(){this.isLoadChannelImage=!1},onChannelImageLoaded(e){e.target.src===this.channel.image&&(this.isLoadChannelImage=!0)}},mounted(){this.loadCreator(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")}))},activated(){this.loadCreator(),"function"===typeof this.offFollower&&(this.offFollower(),this.loadFollowers(),this.$nextTick((()=>{this.$emit("scrollTop")})))},beforeDestroy(){"function"===typeof this.offFollower&&this.offFollower()},watch:{followable(){this.pending=!1},currentCreator(){this.loadCreator()},channel(e,t){e&&e.image!==t.image&&(this.isLoadChannelImage=!0)}}}),Ja=Ya,Za=(a("ec6d"),Object(v["a"])(Ja,Ga,Ka,!1,null,"1d2daf92",null)),Xa=Za.exports;S()(Za,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QBadge:_e["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QSeparator:H["a"],QMarkupTable:Q["a"],QColor:la["a"]}),S()(Za,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var en={name:"LibraryChannel",components:{ChannelHeader:Xa,PostCard:Ye,Loading:x,BackToTop:nt},data(){return{channel:{id:""},posts:[],showPreview:!1,loadingPost:!1,previewImage:"",channelFollowers:[],currentId:"",scrollIndex:0,isIntersecting:!1,isChecking:!1,isPreview:!1,showLoading:!1,lib:s["a"]}},computed:{isDev(){return d["a"].getters.isDevMode},isFollowed(){return s["a"].followingChannels.some((e=>e.id===this.channel.id))},isBlocked(){return!(!s["a"].userData||!s["a"].userData.blockChannels)&&(s["a"].userData.blockChannels.includes(this.channel.id)||s["a"].userData.blockUsers.includes(this.channel.creator))},channelPosts(){const e=Object.assign({},this.channel);return this.posts.map((t=>({...t,rate:t.rate||"G",channel:e}))).sort(((e,t)=>t.timestamp-e.timestamp))},filteredPosts(){const e=s["a"].search.text.toLowerCase(),t=s["a"].search.option.value,a=e=>{switch(t){case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.channelPosts.filter((e=>!!this.isPreview||!s["a"].isBannedPost(e)&&s["a"].isValidRate(e.rate))).filter(n)}},methods:{intersect(e){this.isIntersecting=e.isIntersecting},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onScroll(e){this.scrollIndex=e.index},scrollTop(){this.$refs.vscroll.scrollTo(0,"start")},loadChannelPosts(){console.log(this.$route.query);const e=this.lib.allChannelList.find((e=>e.id===this.$route.query.id||e.soul===this.$route.query.soul));if(console.log("load channel",e),e){var t,a;if(this.channel=e,this.loadingPost=!0,this.channel.creator||this.channel.soul)s["a"].setCreator(this.channel.creator||(null===(t=this.channel.soul)||void 0===t||null===(a=t.split("/"))||void 0===a?void 0:a[0]));this.posts=[],s["a"].getChannelPosts(e.id,!0).then((e=>{console.log("Channel posts",e),this.posts=e.sort(((e,t)=>{const a=t.timestamp-e.timestamp;return 0===a?e.title.match(/^\d+/)&&t.title.match(/^\d+/)?parseInt(t.title)-parseInt(e.title):t.title.localeCompare(e.title):a}));const t=Date.now(),a=setInterval((()=>{(this.posts.length||Date.now()-t>5e3)&&(this.loadingPost=!1,clearInterval(a))}),1e3)}))}else{if(this.posts=[],console.log(this.$route.path),"library/channel"!==this.$route.path)return;this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),persistent:!0,ok:this.$t("lib_index")}).onOk((()=>{this.currentId="",this.$root.$emit("navigate-to"),this.$router.push("/library")}))}},loadChannelFollowers(){const e=[];p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).on((t=>{if(!t)return;const a=Object.values(t);for(let n=0;ne.id===n));-1!==r?e.splice(r,1,{id:n,user:i,timestamp:o}):e.push({id:n,user:i,timestamp:o})}})),this.channelFollowers=e.sort(((e,t)=>t.timestamp-e.timestamp))},async copyShare(){const e=`ab-library://channel/${Object(_["b"])(this.channel.title)}/${this.channel.id}`;if(console.log("share",e),Object(X["isElectron"])()){const t=await Object(Se["a"])(e);if(!t)return this.$q.notify(this.$t("uri_copy_failed"));Object(lt["b"])(t).then((()=>{this.$q.notify(this.$t("copied"))}))}},onFollow(){const e=this.channel.id;console.log("follow",e),s["a"].followingChannels.map((e=>e.id)).includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},preview(e){this.previewImage=e,this.showPreview=!0},gotoCreator(){if(!s["a"].currentCreator||!s["a"].currentCreator.name)return this.$q.dialog({title:"Loading creator",message:"Please wait for creator info loaded",ok:!0});const e=`/library/creator?fromChannel=1&name=${encodeURIComponent(s["a"].currentCreator.name)}`;this.$root.$emit("navigate-to",e),this.$router.push(e)},checkAndReload(){console.log("check and reload"),this.isChecking||(this.isChecking=!0,setTimeout((()=>{this.isChecking=!1}),1e3),this.currentId===this.$route.query.id&&this.channelPosts.length||(console.log("load channel posts"),p["v"].get(`${p["e"]}/channels:follower/${this.currentId}`).off(),this.channel={},this.posts=[],this.currentId=this.$route.query.id,this.loadChannelPosts(),this.loadChannelFollowers()),this.$route.query.preview?this.isPreview=!0:this.isPreview=!1)},setSearch(){this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"}])}},mounted(){this.setSearch(),this.checkAndReload()},watch:{"$route.query.id"(e){e&&(console.log("query id check"),this.checkAndReload())},searchText(e){e&&this.active&&this.scrollTop()}},beforeDestroy(){p["v"].get(`${p["e"]}/channels:follower/${this.channel.id}`).off()}},tn=en,an=(a("b16a"),Object(v["a"])(tn,Va,Qa,!1,null,"fb451ef2",null)),nn=an.exports;S()(an,"components",{QVirtualScroll:Qe["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QDialog:I["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(an,"directives",{ClosePopup:K["a"]});var on=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.lib.currentCreator?a("div",{ref:"scrollArea",staticClass:"library-creator q-pa-md q-pb-lg"},[a("q-card",{staticClass:"creator-info relative-position overflow-hidden q-mb-sm",style:{boxShadow:"0 1px 2px rgba(0, 0, 0, 0.48)",border:e.$q.dark.isActive?"1px solid rgba(255,255,255,0.24)":"none"}},[a("q-card-section",{directives:[{name:"intersection",rawName:"v-intersection",value:e.intersect,expression:"intersect"}],staticStyle:{height:"140px"}},[a("div",{staticClass:"absolute-top-left bg-black full-width full-height overflow-hidden"},[a("img",{staticStyle:{filter:"brightness(0.7)"},attrs:{src:e.profile.avatar,width:"100%"},on:{error:e.onAvatarError}}),a("div",{staticClass:"absolute-top-left full-width full-height",staticStyle:{"box-shadow":"inset 0 0 50px rgba(0,0,0,0.8)"}})])]),a("q-card-section",{staticClass:"q-py-none q-mb-md q-pr-none flex no-wrap items-start bg-transparent relative-position",staticStyle:{height:"calc(60px + 4px)"}},[a("q-avatar",{staticClass:"q-ml-xs bg-black creator-avatar",attrs:{size:"120px"}},[e.isLoadCreatorAvatar?a("img",{attrs:{src:e.profile.avatar},on:{error:e.onCreatorAvatarError,load:e.onCreatorAvatarLoaded}}):e._e(),e.isLoadCreatorAvatar?e._e():a("q-icon",{staticStyle:{color:"#ccc"},attrs:{name:"account_circle",size:"90px"}})],1),a("div",{staticClass:"q-px-md overflow-hidden full-height full-width flex items-center justify-start"})],1),a("q-card-section",{staticClass:"q-pt-none column items-start overflow-hidden full-width"},[a("div",{staticClass:"channel-title text-h6 text-weight-bold ellipsis",staticStyle:{"max-width":"100%"},attrs:{title:e.profile.name}},[e._v("\n "+e._s(e.profile.name)+"\n ")]),e.profile.id?a("div",{staticClass:"flex items-center no-wrap overflow-hidden",staticStyle:{width:"fit-content","max-width":"100%"}},[a("div",{staticClass:"creator-id ellipsis col-shrink",staticStyle:{"font-size":"0.9rem"}},[a("span",[e._v("@"+e._s(e.profile.id))])]),a("q-space"),a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"content_copy",size:"xs",dense:""},on:{click:e.copyCreatorId}},[a("q-tooltip",[a("span",[e._v(e._s("ID: "))]),a("span",[e._v("@"+e._s(e.profile.id))])])],1),e.lib.isLibAdmin?a("q-btn",{staticClass:"q-ml-sm q-pa-xs",attrs:{unelevated:"",color:"general","text-color":"general",icon:"block",size:"xs",dense:""},on:{click:e.takedownCreator}},[a("q-tooltip",[a("span",[e._v(e._s(e.$t("takedown_user")))])])],1):e._e()],1):e._e()]),e.profile.description?a("q-card-section",{staticClass:"q-pt-none creator-section overflow-hidden"},[a("div",{staticClass:"creator-description q-mb-sm scroll-y"},[e._v(e._s(e.profile.description))])]):e._e()],1),a("div",{staticClass:"creator-flex-layout flex justify-center"},[e.filteredChannels.length?[e._l(e.filteredChannels,(function(t){return a("ChannelCard",{key:t.id,attrs:{id:t.id,title:t.title,description:t.description,image:t.image,soul:t.soul,hidden:t.hidden,followable:!e.followedIds.includes(t.id)},on:{takedown:e.takedownChannel,detail:e.showChannelDetail,follow:e.onFollow}})})),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i"),a("i")]:a("div",{staticClass:"empty-placeholder full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),a("span",{staticClass:"empty-hint q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2),a("BackToTop",{attrs:{show:e.showBackToTop},on:{click:e.scrollTop}})],1):e._e()},rn=[],sn={name:"LibraryCreator",components:{ChannelCard:pt,BackToTop:nt},mixins:[vt],data(){return{profile:{name:this.$t("loading"),id:"",avatar:"",description:""},showBackToTop:!1,isLoadCreatorAvatar:!0,lib:s["a"]}},computed:{filteredChannels(){const e=this.searchText.toLowerCase(),t=this.lib.search.option.value,a=e=>{switch(t){case"channelID":return e.id;default:return e.title}},n=n=>{var o;const i=Object(_["a"])(null===(o=a(n))||void 0===o?void 0:o.toLowerCase());return"channelID"===t&&i===e||!(n.hidden&&!s["a"].followingChannels.find((e=>e.id===n.id)))&&i.includes(e)};return this.lib.currentCreator.channels.filter((e=>s["a"].channelList.some((t=>t.id===e.id)))).filter(n)},followedIds(){return s["a"].followingChannels.map((e=>e.id))}},watch:{profile(e,t){if(e&&e.avatar!==t.avatar&&(this.isLoadCreatorAvatar=!0),e&&e.name){const t=`/library/creator?fromChannel=1&name=${encodeURIComponent(e.name)}`;this.$root.$emit("update-path",t)}},searchText(e){e&&this.active&&this.scrollTop()}},methods:{intersect(e){this.showBackToTop=!e.isIntersecting},scrollTop(){this.$refs.scrollArea.scrollTop=0},loadProfile(){this.profile={name:this.$t("loading"),id:"",avatar:"",description:""},s["a"].getUserProfile(s["a"].currentCreator.id).then((e=>{this.profile=e}))},onAvatarError(e){e.target.src="developer/platform-assets/linux/512x512.png"},onCreatorAvatarError(){this.isLoadCreatorAvatar=!1},onCreatorAvatarLoaded(e){e.target.src===this.profile.avatar&&(this.isLoadCreatorAvatar=!0)},showChannelDetail(e){const t=Object(_["c"])(e);console.log(t),this.$root.$emit("navigate-to",t),this.$router.push(t)},copyCreatorId(){Object(lt["b"])(this.profile.id).then((()=>{this.$q.notify(this.$t("copied"))}))},takedown(e,t){const a=[{value:"Serious Violation",label:this.$t("serious_violation")},{value:"Copyright Disputes",label:this.$t("copyright_disputes")},{value:"Adults Only",label:this.$t("adults_only")}];this.$q.dialog({options:{model:a[0].value,type:"radio",items:a},message:this.$t("select_takedown_reason"),ok:this.$t("take_down"),cancel:this.$t("cancel")}).onOk((a=>{["Serious Violation","Copyright Disputes","Adults Only"].includes(a)&&s["a"].takedown(e,t,a).then((()=>{this.$q.notify(this.$t("success"))}))}))},takedownCreator(){if(!s["a"].currentCreator.id)return this.$q.notify("Please wait for creator loaded");this.takedown("user",s["a"].currentCreator.id)},takedownChannel(e){if(!e||20!==e.length)return this.$q.notify("Cannot parse channel id");this.takedown("channel",e)},onFollow(e){console.log("follow",e),this.followedIds.includes(e)?this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}).onOk((()=>{s["a"].unfollowChannel(e)})):s["a"].followChannel(e)},setSearch(){this.lib.setSearchOption([{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])}},beforeRouteEnter(e,t,a){a((e=>{t.path.startsWith("/library")&&(e.setSearch(),s["a"].setCreator(s["a"].currentCreator.id))}))},mounted(){this.setSearch()},activated(){this.loadProfile()}},ln=sn,cn=(a("878c"),Object(v["a"])(ln,on,rn,!1,null,"5975beaa",null)),dn=cn.exports;S()(cn,"components",{QCard:q["a"],QCardSection:O["a"],QAvatar:Be["a"],QIcon:G["a"],QSpace:W["a"],QBtn:A["a"],QTooltip:V["a"],QColor:la["a"]}),S()(cn,"directives",{Intersection:Ge["a"]});var un=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"take-down"},[a("div",{staticClass:"text-h6"},[e._v("\n "+e._s(e.$t("takedown_management"))+"\n "),a("q-icon",{attrs:{name:"help"}},[a("q-tooltip",e._l(e.$t("about_takedown_mode").split("\n"),(function(t){return a("div",{key:t,staticStyle:{"font-size":"14px"}},[e._v(e._s(t))])})),0)],1)],1),a("div",{staticClass:"take-down-lists"},e._l(e.takedownList,(function(t){var n=t.type,o=t.label,i=t.list,r=t.model;return a("q-table",{key:n,staticStyle:{"max-height":"400px"},attrs:{flat:"",dense:"",title:o,data:i,columns:e.columns,"row-key":"name","virtual-scroll":"","rows-per-page-options":[0]},scopedSlots:e._u([{key:"top-row",fn:function(){return[a("q-tr",{staticClass:"takedown-row add"},[a("q-td",{staticClass:"takedown-id"},[a("q-input",{attrs:{placeholder:e.$t(n)+" ID",dense:""},model:{value:r.id,callback:function(t){e.$set(r,"id",t)},expression:"model.id"}})],1),a("q-td",{staticClass:"takedown-reason"},[a("q-select",{attrs:{options:e.reasonOptions,label:e.$t("takedown_reason"),dense:""},model:{value:r.reason,callback:function(t){e.$set(r,"reason",t)},expression:"model.reason"}})],1),a("q-td",[e._v(e._s(e.$t(e.mode)))]),a("q-td",{staticClass:"takedown-admin"},[e._v("("+e._s(e.$t("you"))+")")]),a("q-td",{staticClass:"text-center"},[a("q-btn",{attrs:{flat:"",dense:"",color:"primary",icon:"add"},on:{click:function(t){return e.addTakedown(n)}}})],1)],1)]},proxy:!0},{key:"body",fn:function(t){var o=t.row;return[a("q-tr",{key:o.id,staticClass:"takedown-row"},[a("q-td",{key:"id",staticClass:"takedown-id",attrs:{title:o.id}},[a("q-btn",{staticClass:"q-mr-sm",attrs:{flat:"",dense:"",color:"general",icon:"content_copy",size:"xs"},on:{click:function(t){return e.copy(o.id)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy"))+" ID")])],1),a("span",[e._v(e._s(o.id))])],1),a("q-td",{key:"reason",staticClass:"takedown-reason"},[e._v(e._s(o.reasonLabel))]),a("q-td",{key:"by",staticClass:"takedown-by"},[e._v(e._s(e.$t(o.by)))]),a("q-td",{key:"admins",staticClass:"takedown-admins"},[o.admins?a("div",[a("span",{staticClass:"voted-count",class:{"text-primary":o.selfVoted}},[a("span",[e._v(e._s(o.admins.length)+" voted")]),o.selfVoted?a("q-tooltip",[e._v("You have voted")]):e._e()],1),"committee"===o.by?a("span",{staticClass:"total-count",class:{"text-primary":o.admins.length>=o.minCount}},[e._v("\n / "+e._s(o.minCount)+" needs to takedown\n ")]):e._e()]):a("div",[e._v("-")])]),a("q-td",{key:"operations",staticClass:"takedown-operations text-center"},[a("q-btn",{attrs:{flat:"",dense:"",size:"xs",color:o.selfVoted?"negative":"positive",icon:o.selfVoted?"close":"add"},on:{click:function(t){return e.changeVote(n,o)}}}),"preset"===o.by?a("q-tooltip",[e._v(e._s(e.$t("cannot_edit_preset")))]):o.selfVoted?a("q-tooltip",[e._v(e._s(e.$t("remove_vote")))]):a("q-tooltip",[e._v(e._s(e.$t("add_vote")))])],1)],1)]}}],null,!0)})})),1)])},_n=[],pn=a("41c7"),mn=a.n(pn);const hn=["Serious Violation","Copyright Disputes","Adults Only"];var gn={name:"TakeDown",data(){return{mode:mn.a.mode,columns:[{name:"id",label:"ID",field:"id",align:"left",sortable:!0},{name:"reason",label:this.$t("takedown_reason"),field:"reason",align:"left",sortable:!0},{name:"by",label:this.$t("takedown_mode"),field:"by",align:"left",sortable:!0},{name:"admins",label:this.$t("admins"),field:"admins",align:"left",sortable:!1},{name:"operations",label:this.$t("operations"),field:"operations",align:"center",sortable:!1}],reasonOptions:[{label:this.$t("serious_violation"),value:"Serious Violation"},{label:this.$t("copyright_disputes"),value:"Copyright Disputes"},{label:this.$t("adults_only"),value:"Adults Only"}],user:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},channel:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},post:{id:"",reason:{label:this.$t("serious_violation"),value:"Serious Violation"}},lib:s["a"]}},computed:{uid(){return s["a"].user&&s["a"].user.is?s["a"].user.is.pub:""},takedownUsers(){const e=s["a"].takedownList.users,t=s["a"].takedownExtraList.users,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownChannels(){const e=s["a"].takedownList.channels,t=s["a"].takedownExtraList.channels,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownPosts(){const e=s["a"].takedownList.posts,t=s["a"].takedownExtraList.posts,a=[];return e.forEach((({id:e,reason:t})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),by:"preset",disable:!0})})),t.forEach((({id:e,reason:t,admins:n,minCount:o})=>{a.push({id:e,reason:t,reasonLabel:this.$t(t.replace(/\s/g,"_").toLowerCase()),admins:n,minCount:o,selfVoted:n.includes(this.uid),by:mn.a.mode,disable:!n.includes(this.uid)})})),a},takedownList(){return[{type:"user",label:this.$t("users"),model:this.user,list:this.takedownUsers},{type:"channel",label:this.$t("channels"),model:this.channel,list:this.takedownChannels},{type:"post",label:this.$t("posts"),model:this.post,list:this.takedownPosts}]}},methods:{takedownUser(){return 87!==this.user.id.length||this.user.id.split(".").some((e=>43!==e.length))?this.$q.notify(this.$t("takedown_invalid_user_id")):hn.includes(this.user.reason.value)?(console.log("takedown user",this.user.id,this.user.reason.value),void s["a"].takedown("user",this.user.id,this.user.reason.value).then(console.log)):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownChannel(){const e=this.channel.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_channel_id")):hn.includes(this.channel.reason.value)?void s["a"].takedown("channel",e,this.channel.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},takedownPost(){const e=this.post.id;return 20!==e.length?this.$q.notify(this.$t("takedown_invalid_post_id")):hn.includes(this.post.reason.value)?void s["a"].takedown("post",e,this.post.reason.value):this.$q.notify(this.$t("takedown_invalid_reason"))},untakedownUser(e){s["a"].takedown("user",e,"None")},addTakedown(e){return console.log("add",e),"user"===e?this.takedownUser():"channel"===e?this.takedownChannel():"post"===e?this.takedownPost():void 0},removeTakedown(e,t){return console.log("untakedown",e,t),"user"===e?this.untakedownUser(t):"channel"===e?s["a"].takedown("channel",t,"None"):"post"===e?s["a"].takedown("post",t,"None"):void 0},changeVote(e,t){return"preset"===t.by?console.log(t):t.selfVoted?this.removeTakedown(e,t.id):void s["a"].takedown(e,t.id,t.reason).then(console.log)},copy(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("copied"))}))}},activated(){this.$root.$emit("navigate-to"),this.$root.$emit("navigate-to","/library/takedown"),this.lib.setSearchOption([])}},fn=gn,bn=(a("a44b"),a("85c4")),yn=a("236f"),vn=Object(v["a"])(fn,un,_n,!1,null,"888fffa4",null),wn=vn.exports;S()(vn,"components",{QIcon:G["a"],QTooltip:V["a"],QTable:Tt["a"],QTr:bn["a"],QTd:yn["a"],QInput:E["a"],QSelect:ue["a"],QBtn:A["a"],QColor:la["a"]});var kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"library-index"},[a("div",{staticClass:"library-inner-container"},[a("VirtualScrollGrid",{staticClass:"library-grid",attrs:{virtualScrollSliceRow:30,itemWidth:560,itemHeight:473,gutter:8,itemsSize:e.searchFilteredPosts.length,itemsFn:function(t,a){return e.itemsFn(t,a-t)}},on:{"virtual-scroll":function(t){var a=t.from;return e.scrollIndex=a||0}},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("PostCard",{key:n.id,attrs:{post:n},on:{preview:function(t){return e.showPreview=t},follow:e.unfollow,"to-channel":e.toChannelPage}})]}},{key:"after",fn:function(t){var n=t.column,o=t.mod;return[a("div",{directives:[{name:"intersection",rawName:"v-intersection",value:function(t){return e.fetchNext(t,Math.max(Math.ceil(10/n),2)*n+(o?n-o:0))},expression:"(entry) => fetchNext(entry, (Math.max(Math.ceil(10 / column), 2) * column) + (mod ? column - mod : 0))"}],staticClass:"rounded-borders bg-page column justify-center items-center",class:e.searchFilteredPosts.length?"q-mb-sm q-pa-md":"",style:e.searchFilteredPosts.length?{}:{height:"calc(100vh - var(--header-height) - var(--appbar-height) - 8px)"}},["loaded"!==e.loaderState||e.searchFilteredPosts.length?"loaded"===e.loaderState?a("div",[a("q-icon",{attrs:{name:"check_circle_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("got_all_post")))])],1):e.searchFilteredPosts.length?a("div",{staticClass:"column items-center"},[a("div",{staticClass:"flex"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))])]):[a("div",[a("q-spinner",{attrs:{size:"4rem",color:"secondary"}}),a("div",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("loading"))+"...")])],1),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("lib_from_network")))]),e.searchFilteredPosts.length?e._e():a("div",{staticClass:"q-mt-sm"},[e._v(e._s(e.$t("first_recomment_msg")))])]:a("div",[a("q-icon",{attrs:{name:"error_outline",size:"1.2rem"}}),a("span",{staticClass:"q-ml-sm"},[e._v(e._s(e.$t("credit_no_data")))])],1)],2)]}}])}),e._e()],1),e._e(),a("BackToTop",{attrs:{show:e.scrollIndex>0||e.showBackToTop},on:{click:e.handleBackToTop}}),a("SearchChannel",{attrs:{higher:e.scrollIndex>0||e.showBackToTop}}),a("q-dialog",{model:{value:e.showPreview,callback:function(t){e.showPreview=t},expression:"showPreview"}},[a("q-card",{staticClass:"image-preview-card"},[a("q-card-section",{staticClass:"q-pa-none"},[a("img",{staticClass:"preview-image",attrs:{src:e.previewImage}})]),a("q-card-actions",{staticClass:"q-pa-none",staticStyle:{position:"absolute",bottom:"0",right:"0"},attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",padding:"none",size:"20px",icon:"close",color:"grey"}})],1)],1)],1)],1)},Sn=[],Cn=a("2e22"),xn={name:"LibraryIndex",components:{PostCard:Ye,SearchChannel:bt,BackToTop:nt},mixins:[Cn["c"],Cn["a"],Cn["b"],vt,wt("index"),St],data(){return{isElectron:Object(X["isElectron"])(),active:!1,scrollIndex:0,lib:s["a"]}},computed:{followingChannels(){var e,t;const a=(null===(e=s["a"].userData)||void 0===e?void 0:e.blockChannels)||[],n=(null===(t=s["a"].userData)||void 0===t?void 0:t.blockUsers)||[];return s["a"].followingChannels.filter((e=>!s["a"].isBannedChannel(e)&&(!a.includes(e.id)&&!n.includes(e.creator))))},filteredPosts(){return Object.values(this.loadedPosts).filter((e=>e.title&&e.timestamp)).filter((e=>!s["a"].isBannedPost(e))).filter((e=>s["a"].isValidRate(e.rate||"G")))},searchFilteredPosts(){console.log("search index");const e=this.searchText.toLowerCase(),t=s["a"].search.option.value,a=e=>{var a;switch(t){case"channel":return null===(a=e.channel)||void 0===a?void 0:a.title;case"channelID":return e.channel.id;case"description":return e.description;default:return e.title}},n=t=>{var n;return Object(_["a"])(null===(n=a(t))||void 0===n?void 0:n.toLowerCase()).includes(Object(_["a"])(e))};return this.filteredPosts.filter(n)}},methods:{async fetchNext({isIntersecting:e},t=10){e&&await this.loader$loadPostsNext({count:t})},itemsFn(e=0,t=5){return this.searchFilteredPosts.slice(e,e+t)},async unfollow(e){const t=this.$alphabiz.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:this.$t("unfollow"),cancel:this.$t("cancel")}),a=await t.promise("ok");if(!a)return;const n=await s["a"].unfollowChannel(e);console.log("unfollowed",e,n)},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&"),a=`/library/channel?${t}`;this.$root.$emit("navigate-to",a),this.$router.push(a)}},async activated(){this.active=!0;const e=()=>{this.lib.setSearchOption([{label:this.$t("post_title"),value:"post"},{label:this.$t("description"),value:"description"},{label:this.$t("channel_title"),value:"channel"},{label:this.$t("channel_id"),value:"channelID"}])};this.$root.$emit("navigate-to"),e()},deactivated(){this.active=!1},watch:{"searchFilteredPosts.length"(e,t){t||!e||this.active||this.$router.push("/library")},searchText(e){e&&this.active&&this.handleBackToTop()}}},$n=xn,Tn=(a("1b99"),Object(v["a"])($n,kn,Sn,!1,null,null,null)),zn=Tn.exports;S()(Tn,"components",{QIcon:G["a"],QSpinner:w["a"],QSpinnerIos:$t["a"],QTable:Tt["a"],QLinearProgress:zt["a"],QSeparator:H["a"],QPagination:Pt["a"],QVirtualScroll:Qe["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Tn,"directives",{Intersection:Ge["a"],ClosePopup:K["a"]});var Pn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar"},[e._l([{tabName:"downloading",label:"start_all",color:"primary",disable:e.isAllStarted,handleClick:e.downloadAll},{tabName:"downloading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.requestPauseAllDownloading},{tabName:"downloading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllDownloading},{tabName:"uploading",label:"pause_all",color:"general",disable:e.isAllPaused,handleClick:e.pauseAllUploading},{tabName:"uploading",label:"remove_all",color:"negative",disable:0===e.currentList.length,handleClick:e.removeAllUploading},{tabName:"downloaded",label:"clear_history",color:"general",disable:0===e.currentList.length,handleClick:e.clearAll}],(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,style:"negative"===t.color?{marginLeft:"16px"}:{},attrs:{color:t.color,icon:t.icon,label:e.$t(t.label),value:t.disable,dense:e.screen$xs},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),a("q-space"),a("div",{staticClass:"right-buttons"},[a("q-space"),a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!(e.showSearchText||e.searchText.length),expression:"!(showSearchText || searchText.length)"}],attrs:{"button-type":"icon",icon:"search"},on:{click:function(t){return e.toggleSearchText(!0)}}}),a("q-input",{directives:[{name:"show",rawName:"v-show",value:e.showSearchText||e.searchText.length,expression:"showSearchText || searchText.length"}],ref:"searchInput",attrs:{outlined:"",dense:"",type:"text",debounce:"300"},on:{blur:function(t){return e.toggleSearchText(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer text-red",attrs:{name:"close"},on:{click:e.clearSearch}})]},proxy:!0}]),model:{value:e.searchText,callback:function(t){e.searchText=t},expression:"searchText"}}),a("alphabiz-button",{attrs:{"button-type":"icon",icon:"list"===e.listMode?"view_list":"view_agenda"},on:{click:e.changeListMode}},[a("q-tooltip",[e._v(e._s(e.$t("toggle_list_mode")))])],1),a("SortMenu",{on:{changeSortSequence:e.changeSortSequence,changeSortOption:e.changeSortOption}})],1)],2),"downloading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("q-linear-progress",{staticStyle:{"flex-shrink":"1","max-width":"calc(100% - 110px)"},attrs:{value:e.downloadingProgress.value,rounded:"",size:"20px"}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.downloadingProgress.label))])])]),a("div",{staticClass:"download-speed"},[e._v(e._s(e.totalDownloadSpeed))])],1):e._e(),"uploading"===e.currentTab?a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("div",[e._v(e._s(e.totalIncomeInfo))]),a("q-space"),a("div",[e._v(e._s(e.$t("total_upload_speed"))+": "+e._s(e.totalUploadSpeed))])],1):e._e()],1),a("q-tab-panels",{staticClass:"torrent-list bg-transparent",class:{"torrent-list-large":"downloaded"!==e.currentTab},model:{value:e.displayTab,callback:function(t){e.displayTab=t},expression:"displayTab"}},e._l(e.displayList,(function(t){return a("q-tab-panel",{key:"panel_"+t.label,staticClass:"q-pa-none",attrs:{name:t.key}},[a(e.listComponent,{key:"task-list-"+t.label,tag:"component",attrs:{list:t,tab:e.currentTab,incomes:e.incomes,noDataMessage:e.noDataMessage},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showOriginTorrent:e.showOriginTorrent,showDirectory:e.showDirectory,setThrottleGroup:e.setThrottleGroup,shareFile:e.shareFile,saveTorrentFile:e.saveTorrentFile,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart}})],1)})),1),a("q-page-sticky",{staticClass:"action-container",attrs:{position:"bottom-right",offset:[16,16]}},e._l({download:{tabName:"downloading",icon:"add",handleClick:function(){return e.showMagnetDialog("download")}},upload:{tabName:"uploading",icon:"cloud_upload",handleClick:function(){return e.showMagnetDialog("upload")}},upload_all:{tabName:"downloaded",icon:"cloud_upload",handleClick:e.uploadAll}},(function(t,n){return a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:e.currentTab===t.tabName,expression:"currentTab === buttonData.tabName"}],key:n,staticClass:"q-ma-xs action-button",attrs:{color:"primary",icon:t.icon,label:e.$t(n),"button-type":"fab"},on:{click:function(a){return e.ensureLogin(t.handleClick)}}})})),1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TorrentPayment",e._b({attrs:{show:e.showPayment,dp$source:e.dp$source,autoRenew:e.autoRenew},on:{change:function(t){return e.showPayment=t},createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}},"TorrentPayment",e.paymentData,!1)),a("TableListDetail",{attrs:{show:e.showTorrentDetail,torrent:e.torrentDetail},on:{close:e.hideDetail,showDirectory:e.showDirectory,showPaymentPannel:e.showPaymentPannel,play:e.play,shareFile:e.shareFile}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.alphabizTorrent,paymentSize:e.paymentSize},on:{close:e.hideAbPanel,createPayment:e.createPayment,setAutoRenew:e.setAutoRenew}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.quickStartTask},on:{input:e.hideQuickStartDialog}})],1)},An=[],In=a("61af"),qn=a.n(In),On=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-virtual-scroll",{key:"torrent-list-"+e.list.label,ref:"listIns",class:[e.screen$xs?"q-pt-sm":"q-pt-md",e.isPortrait?"portrait":"landscape"],style:"max-height:"+e.viewHeight,attrs:{items:e.list.list,"virtual-scroll-item-size":178},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.item;return[a("q-item",{key:e.list.label+"-"+n.infoHash,staticClass:"fit",class:[e.screen$xs?"q-px-sm":"q-px-md"],attrs:{dense:""}},[a("card-item",{attrs:{torrent:n,highlight:n.infoHash&&n.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"],saveFile:e.emitEvent["shareFile"]}})],1)]}},{key:"after",fn:function(){return[e.list.list.length?e._e():a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1),a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0}])})},En=[],Dn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticStyle:{width:"100%"}},[a("q-card",{staticClass:"torrent-item",class:[e.screen$xs?"q-mb-sm":"q-mb-md"],attrs:{flat:"",bordered:""}},[a("q-card-section",{class:{highlight:e.highlight}},[a("div",{staticClass:"row justify-between items-center"},[a("div",{staticClass:"torrent-info title q-mb-xs"},[a("p",{staticClass:"torrent-name"},[e.isReady?e._e():a("q-circular-progress",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.paused&&!e.torrent.pending,expression:"!torrent.paused && !torrent.pending"}],staticClass:"torrent-loading",attrs:{indeterminate:"",size:"24px",color:"primary"}}),a("span",[e._v(e._s(e.displayName))]),e.torrent.isAutoUpload?a("q-icon",{staticClass:"q-ml-md",attrs:{name:"drive_folder_upload"}},[a("q-tooltip",[e._v(e._s(e.$t("auto_uploading")))])],1):e._e()],1)]),a("alphabiz-button",{staticClass:"absolute-top-right q-mt-sm q-mr-md",attrs:{size:"md","button-type":"icon",icon:"more_horiz"},on:{click:e.showDetail}},[a("q-tooltip",[e._v(e._s(e.$t("more")))])],1)],1),a("div",{staticClass:"torrent-info"},[a("div",{staticClass:"operations"},[a("alphabiz-button",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!(e.torrent.paused&&e.torrent.missFile),expression:"!torrent.isAutoUpload && !(torrent.paused && torrent.missFile)"}],attrs:{color:"general",value:e.locked,icon:e.actionIcon,label:e.torrentAction,disabled:e.isProcessingUpload},on:{click:e.switchStateTorrent}}),e.isReady&&e.playable?a("alphabiz-button",{attrs:{color:"general",icon:"smart_display",label:e.torrent.done||e.torrent.isSeeding?e.$t("play"):e.$t("play_while_downloading")}},[a("q-menu",{attrs:{"max-height":"200px"}},[a("q-list",{staticStyle:{"min-width":"100px"}},e._l(e.playableFiles,(function(t,n){return a("q-item",{directives:[{name:"close-popup",rawName:"v-close-popup"}],key:n,staticClass:"playable-items",attrs:{clickable:!t.missing,disable:t.missing},on:{click:function(a){return e.play(t.path,e.torrent.infoHash)}}},[a("q-linear-progress",{directives:[{name:"show",rawName:"v-show",value:1!==t.progress||t.isSeeding,expression:"item.progress !== 1 || item.isSeeding"}],staticClass:"progress-background",attrs:{stripe:"",value:t.progress}}),a("q-item-section",[a("p",{staticClass:"q-ma-none"},[a("q-icon",{staticClass:"q-mr-xs",attrs:{name:"play_arrow"}}),e._v("\n "+e._s(t.name)+"\n "),t.missing?a("q-icon",{attrs:{name:"error",color:"primary"}}):1===t.progress?a("q-icon",{attrs:{name:"done",color:"primary"}}):e._e(),t.missing?a("q-tooltip",[e._v(e._s(e.$t("file_not_found")))]):e._e(),1!==t.progress||e.isElectron?e._e():a("q-btn",{staticClass:"save-to-local-btn",attrs:{flat:"",dense:"",color:"primary",size:"sm",icon:e.isCapacitor?"ios_share":"save"},on:{click:function(a){return a.stopPropagation(),a.preventDefault(),e.saveFile(t)}}},[a("q-tooltip",[e._v(e._s(e.$t("save_to_local")))])],1)],1)])],1)})),1)],1)],1):a("alphabiz-button",{attrs:{color:"general",icon:"file_open",label:e.$t("open_file")},on:{click:e.openFile}}),e.isElectron||e.isCapacitor?a("alphabiz-button",{attrs:{color:"general",icon:e.isElectron?"folder":"ios_share",label:e.isElectron?e.$t("open_directory"):e.$t("share")},on:{click:e.showDirectory}}):e._e(),e.torrent.fromPost?a("alphabiz-button",{attrs:{icon:"video_library",label:e.$t("library")},on:{click:e.showPostInfo}}):e._e(),1!==e.torrent.progress&&!e.torrent.upload||e.torrent.paused?e._e():a("alphabiz-button",{attrs:{icon:"present_to_all",label:e.$t("share_to_library"),disabled:e.isProcessingUpload},on:{click:e.showQuickStart}}),e.isElectron||e.isCapacitor||!e.torrent.done?e._e():a("alphabiz-button",{attrs:{label:e.$t("save_as_zip"),icon:"folder_zip"},on:{click:e.saveZip}}),a("alphabiz-button",{attrs:{color:"negative",icon:"close",label:e.$t("delete"),disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}}),a("q-space"),e.showAbButton?a("alphabiz-button",{attrs:{color:"accent",icon:e.isPayed?"flash_auto":"flash_on"},on:{click:e.openAbPanel}},[a("q-tooltip",[e._v(e._s(e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")))])],1):e._e()],1),e.torrent.upload||e.torrent.isSeeding?e._e():a("q-linear-progress",{staticClass:"q-mt-md",attrs:{value:e.torrent.done?1:e.torrent.progress,size:"18px",rounded:""}},[a("div",{staticClass:"progress-text flex flex-center absolute-full"},[e._v(e._s(e.progress||"0%"))])]),a("p",{staticClass:"text q-mb-xs bottom-status"},[e.statusText?a("span",{staticClass:"hint status-text"},[a("small",[e._v(e._s(e.statusText))]),a("br")]):e._e(),a("span",{staticStyle:{"margin-right":"10px"}},[e._v(e._s(this.$t("status"))+": "+e._s(e.torrentStatus))]),a("span",[e.torrent.paused||e.torrent.done||e.torrent.pending||e.torrent.isSeeding?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.downloadSpeed)+"\n ")]),e.torrent.upload?e._e():a("span",{staticStyle:{"margin-right":"10px"}},[e.torrent.done?e._e():a("span",[e._v("↓ "+e._s(e.downloaded)+" /")]),e._v("\n "+e._s(e.total))])]),a("span",[e.torrent.paused||e.torrent.pending?e._e():a("span",{staticClass:"q-mr-sm"},[e._v("\n "+e._s(e.uploadSpeed)+"\n ")]),a("span",{staticStyle:{"margin-right":"10px"}},[e._v("↑ "+e._s(e.uploaded))])])]),a("p",{staticClass:"text timers q-mt-xs bottom-status"},[e.torrent.timeRemaining&&e.torrent.download?a("span",{staticClass:"remaining q-mr-md"},[e._v(e._s(e.$t("remaining"))+": "+e._s(e.remaining))]):e._e(),e.createdTime?a("span",[e._v(e._s(e.$t("created_time")+": "+e.createdTime))]):e._e(),e.completedTime?a("span",[e._v(e._s(e.$t("completed_time")+": "+e.completedTime))]):e._e(),e.usedTime?a("span",[e._v(e._s(e.$t("used_time")+": "+e.usedTime))]):e._e()])],1)])],1)],1)},jn=[],Nn=a("4fd2"),Ln=a("908d"),Un={name:"CardItem",inject:["io"],props:{torrent:{type:Object,required:!0},statusText:String,highlight:Boolean},data(){return{levelOptions:[{label:" Low ",value:"low"},{label:" Middle ",value:"mid"},{label:" High ",value:"high"}],locked:!1,loading:!1,isElectron:Object(X["isElectron"])(),isCapacitor:Object(ge["a"])()}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},torrentAction(){return this.torrent.paused?this.torrent.done||1===this.torrent.progress||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},isReady(){return this.torrent&&this.torrent.name&&this.torrent.length},downloadSpeed(){return this.byteToLargerSize(this.torrent.downloadSpeed,{fix:1})+"/s"},downloaded(){return this.byteToLargerSize(this.torrent.downloaded)},uploadSpeed(){return this.byteToLargerSize(this.torrent.uploadSpeed,{fix:1})+"/s"},uploaded(){return this.byteToLargerSize(this.torrent.uploaded)},total(){return this.byteToLargerSize(this.torrent.length)},remaining(){return!this.torrent.timeRemaining||this.torrent.paused?"-":this.msToTime(this.torrent.timeRemaining)},createdTime(){return this.torrent.createdTime?new Date(this.torrent.createdTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},completedTime(){return this.torrent.completedTime&&this.torrent.done?new Date(this.torrent.completedTime).toLocaleString(this.$i18n.locale,{hour12:!1}):""},usedTime(){return this.torrent.usedTime?this.msToTime(this.torrent.usedTime):""},torrentStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.paused?this.$t("downloaded"):this.$t("uploading")}if(this.paused)return this.$t("paused");if(this.torrent.paused)return this.torrent.done||this.torrent.isSeeding?this.$t("completed"):this.$t("paused");if(this.torrent.isSeeding)return this.$t("seeding");if(this.torrent.upload)return this.$t("uploading");if(this.torrent.pending)return this.$t("pending");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(!this.torrent.ready){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return this.torrent.download?this.torrent.done?this.$t("downloaded"):this.$t("downloading"):this.$t("unknown_status")},displayName(){let e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e||"string"!==typeof e){if(!(e&&e instanceof File))return this.$t("loading");e=e.name}if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win?"\\":"/";if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},progress(){return Object(M["g"])(this.torrent.progress)},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return!this.torrent.done&&!this.torrent.isSeeding&&(this.isDevMode&&this.abPeers.length)},payedConnections(){return this.abPeers.filter((e=>"high"===e.remoteGroup))},isPayed(){return this.payedConnections.length},showAbPeerHint(){return this.abPeers.length},connectedPeers(){const e={};for(const t of this.abPeers){const a=t.subId||t.id;e[a]?e[a].isAbPeer|=t.isAbPeer:(e[a]=t,e[a].addresses=[]),e[a].addresses.includes(t.address)||e[a].addresses.push(t.address)}return Object.values(e).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0))},playableFiles(){return this.torrent.files.filter((e=>Object(Nn["a"])(e.name)))},playable(){return this.playableFiles.length}},methods:{byteToLargerSize(e,t={}){return Object(M["a"])(e,{byte:!1,gb:!0,...t})},msToTime(e){const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n>60){const e=n%60,t=(n-e)/60;return t>24?"> 24h":`${t}:${("0"+e).slice(-2)}:${("0"+a).slice(-2)}`}return`${("0"+n).slice(-2)}:${("0"+a).slice(-2)}`},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},switchStateTorrent(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash)}},openAbPanel(){console.log("open"),this.$emit("showAbPanel",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},setThrottleGroup(e,t,a){this.$emit("setThrottleGroup",{infoHash:this.torrent.infoHash,id:e,subId:t,level:a})},saveTorrentFile(){this.$emit("saveTorrentFile",this.torrent.infoHash)},play(e,t){this.$emit("play",e,t)},copyMagnetURI(){let e=this.torrent.alphabizURI||this.torrent.magnetURI;e||(e="magnet:?xt=urn:btih:"+this.torrent.infoHash,this.torrent.name&&(e+="&dn="+encodeURIComponent(this.torrent.name))),Object(lt["b"])(e),this.$q.notify(this.$t("text_copied"))},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},showOriginTorrent(){this.$emit("showOriginTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showPaymentPannel(e){this.$emit("showPaymentPannel",{infoHash:this.torrent.infoHash,torrentName:this.torrent.name,peerId:e.id,address:e.address,remoteUser:e.user,remoteSubId:e.subId})},showQuickStart(){this.$emit("showQuickStart",this.torrent)},saveFile(e){if(this.isCapacitor)return this.$emit("saveFile",e.path);this.$emit("saveFile",e)},saveZip(){this.$emit("saveZip")}},watch:{torrentStatus(e,t){t!==e&&this.$emit("sortByStatus")}},mounted(){this.loading=this.torrent.loading}},Rn=Un,Mn=(a("1357"),a("64e7")),Fn=a("834d"),Bn=Object(v["a"])(Rn,Dn,jn,!1,null,"3671d32d",null),Wn=Bn.exports;S()(Bn,"components",{QCard:q["a"],QCardSection:O["a"],QCircularProgress:Mn["a"],QIcon:G["a"],QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QLinearProgress:zt["a"],QItemSection:Ve["a"],QBtn:A["a"],QSpace:W["a"],QColor:la["a"],QBtnToggle:Fn["a"]}),S()(Bn,"directives",{ClosePopup:K["a"]});var Hn={name:"CardList",props:{list:Object,noDataMessage:String},data(){const e=this;return{isElectron:Object(X["isElectron"])(),safeArea:"env(safe-area-inset-bottom) - env(safe-area-inset-top)",emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),highlightItem:{}}},computed:{viewHeight(){const e=(this.list.key.startsWith("downloaded")?150:180)+(this.isPortrait||this.isElectron?0:-30);return`calc(100vh - ${this.safeArea} - ${e}px);`}},components:{CardItem:Wn},methods:{findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.listIns){var a;if(Date.now()-e<1e3)return;clearInterval(t);const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.listIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},Vn=Hn,Qn=(a("536e"),Object(v["a"])(Vn,On,En,!1,null,"0dd405a4",null)),Gn=Qn.exports;S()(Qn,"components",{QVirtualScroll:Qe["a"],QItem:He["a"],QIcon:G["a"]});var Kn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-table",{ref:"tableIns",staticClass:"list bg-page text-page",class:{xs:e.isPortrait,electron:e.isElectron},attrs:{data:e.list.list,columns:e.columns,"row-key":"name",dense:"",flat:"","virtual-scroll":"","hide-bottom":!!e.list.list.length,"rows-per-page-options":[0],"visible-columns":e.visibleColumns,"no-data-label":e.noDataMessage},nativeOn:{mousemove:function(t){return e.onDrag(t)},touchmove:function(t){return e.onDrag(t)},mouseleave:function(t){return e.onDragEnd.apply(null,arguments)},mouseup:function(t){return e.onDragEnd.apply(null,arguments)},touchend:function(t){return e.onDragEnd.apply(null,arguments)},touchcancel:function(t){return e.onDragEnd.apply(null,arguments)}},scopedSlots:e._u([{key:"header",fn:function(t){return[a("q-tr",{attrs:{props:t}},e._l(t.cols,(function(n){return a("q-th",{key:n.name,staticClass:"thead",attrs:{props:t}},[a("span",{staticClass:"text-ellipsis"},[e._v(e._s(n.label))]),"options"!==n.name?a("span",{staticClass:"thead-draggable",on:{mousedown:function(t){return e.onDragStart(n,t)},mouseup:e.onDragEnd,touchstart:function(t){return e.onDragStart(n,t)},touchmove:function(t){return e.onDrag(t)},touchend:e.onDragEnd,touchcancel:e.onDragEnd}}):e._e()])})),1)]}},{key:"body",fn:function(t){return[a("ListItem",{key:t.row.infoHash,attrs:{torrent:t.row,visibleColumns:e.visibleColumns,showCols:e.showCols,incomes:e.taskIncomes[t.row.infoHash],colWidth:e.colWidthText,highlight:t.row.infoHash&&t.row.infoHash===e.highlightItem.infoHash},on:{pauseTorrent:e.emitEvent["pauseTorrent"],resumeTorrent:e.emitEvent["resumeTorrent"],deleteTorrent:e.emitEvent["deleteTorrent"],play:e.emitEvent["play"],showOriginTorrent:e.emitEvent["showOriginTorrent"],showDirectory:e.emitEvent["showDirectory"],setThrottleGroup:e.emitEvent["setThrottleGroup"],saveTorrentFile:e.emitEvent["saveTorrentFile"],showPaymentPannel:e.emitEvent["showPaymentPannel"],showDetail:e.emitEvent["showDetail"],showAbPanel:e.emitEvent["showAbPanel"],showPostInfo:e.emitEvent["showPostInfo"],showQuickStart:e.emitEvent["showQuickStart"]}})]}},{key:"bottom-row",fn:function(){return[a("div",{directives:[{name:"show",rawName:"v-show",value:e.list.list.length,expression:"list.list.length"}],staticClass:"q-py-xl"})]},proxy:!0},{key:"no-data",fn:function(){return[a("div",{staticClass:"full-width text-center text-subtitle1"},[a("q-icon",{attrs:{name:"help_outline"}}),e._v("\n "+e._s(e.noDataMessage)+"\n ")],1)]},proxy:!0}])})},Yn=[],Jn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-tr",{key:e.torrent.infoHash||e.torrent.origin,staticClass:"list-item-tr",class:{highlight:e.highlight}},[a("q-td",{key:"name",staticClass:"no-select task-name",style:e.colWidth.name,on:{dblclick:e.onDoubleClick}},[a("IconWithTooltip",e._b({staticClass:"q-mr-xs name-icon"},"IconWithTooltip",e.taskIcon,!1)),a("div",{staticClass:"name-info"},[a("span",{staticClass:"torrent-name",attrs:{title:e.displayName}},[e._v(e._s(e.displayName))]),a("br"),e._m(0),a("span",{staticClass:"text-grey"},[e._v(e._s(e.downloadStatus))])],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["remaining"],expression:"showCols['remaining']"}],key:"remaining",style:e.colWidth.remaining},[e._v(e._s(e.remaining))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["completedTime"],expression:"showCols['completedTime']"}],key:"completedTime",style:e.colWidth.completedTime},[e._v(e._s(e.completedTime))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["progress"],expression:"showCols['progress']"}],key:"progress",style:e.colWidth.progress},[a("q-linear-progress",{attrs:{value:e.torrent.progress,size:"20px",rounded:""}},[a("div",{staticClass:"absolute-full flex flex-center text-general"},[a("span",{staticStyle:{"font-size":"0.9rem"}},[e._v(e._s(e.progress||"0%"))])])])],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["uploadSpeed"],expression:"showCols['uploadSpeed']"}],key:"uploadSpeed",style:e.colWidth.uploadSpeed},[e._v(e._s(e.uploadSpeed))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["downloadSpeed"],expression:"showCols['downloadSpeed']"}],key:"downloadSpeed",staticClass:"download-speed",style:e.colWidth.downloadSpeed},[a("span",{attrs:{title:e.downloadSpeed}},[e._v(e._s(e.downloadSpeed))]),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.showAbButton,expression:"showAbButton"}],staticClass:"text-primary float-right",attrs:{flat:"",dense:"",size:"sm"},on:{click:e.openAbPanel}},[a("IconWithTooltip",{attrs:{icon:e.isPayed?"flash_auto":"flash_on",tooltip:e.isPayed?e.$t("alphabiz_accelerating"):e.$t("ab_peer_available")}})],1)],1),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.showCols["incomeInfo"],expression:"showCols['incomeInfo']"}],key:"incomeInfo",staticClass:"text-right",style:e.colWidth.incomeInfo},[e._v(e._s(e.incomeInfo))]),a("q-td",{directives:[{name:"show",rawName:"v-show",value:e.visibleColumns.includes("options"),expression:"visibleColumns.includes('options')"}],key:"options",staticClass:"option-btns",style:e.colWidth.options,attrs:{"auto-width":""}},[a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.torrent.isAutoUpload&&!e.torrent.missFile,expression:"!torrent.isAutoUpload && !torrent.missFile"}],attrs:{flat:"",dense:"",size:"sm",disable:e.locked||e.isProcessingUpload},on:{click:e.toggleStatus}},[a("IconWithTooltip",{attrs:{icon:e.actionIcon,tooltip:e.taskAction,clickable:""}})],1),a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.onDoubleClick}},[a("IconWithTooltip",{attrs:{icon:e.playable?"smart_display":"file_open",tooltip:e.$t("open_file"),clickable:""}})],1),e._m(1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.torrent.fromPost,expression:"torrent.fromPost"}],attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showPostInfo}},[a("IconWithTooltip",{attrs:{icon:"video_library",tooltip:e.$t("library"),clickable:""}})],1),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:(1===e.torrent.progress||e.torrent.upload)&&!e.torrent.paused,expression:"(torrent.progress === 1 || torrent.upload) && !torrent.paused"}],attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.showQuickStart}},[a("IconWithTooltip",{attrs:{icon:"present_to_all",tooltip:e.$t("share_to_library"),clickable:""}})],1),e._m(2),a("q-btn",{staticClass:"text-red",attrs:{flat:"",dense:"",size:"sm",disabled:e.isProcessingUpload},on:{click:e.deleteTorrent}},[a("IconWithTooltip",{attrs:{icon:"close",tooltip:e.$t("delete"),clickable:""}})],1)],1)],1)},Zn=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("IconWithTooltip",{directives:[{name:"show",rawName:"v-show",value:e.torrent.isAutoUpload,expression:"torrent.isAutoUpload"}],staticClass:"q-mr-xs text-primary",attrs:{tooltip:e.$t("auto_uploading"),icon:"cloud_upload"}})},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder",tooltip:e.$t("open_directory"),clickable:""}})],1)},function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDetail}},[a("IconWithTooltip",{attrs:{icon:"more_horiz",tooltip:e.$t("more"),clickable:""}})],1)}],Xn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-icon",{class:{"cursor-pointer":e.clickable},attrs:{name:e.icon,size:e.size},on:{click:e.emitClick}},[e.tooltip?a("q-tooltip",[e._v("\n "+e._s(e.tooltip)+"\n ")]):e._e()],1)},eo=[],to={name:"IconWithTooltip",props:{icon:{type:String,require:!0},tooltip:{type:String,default:""},clickable:{type:Boolean,default:!1},size:{type:String,default:""}},methods:{emitClick(){this.$emit("click")}}},ao=to,no=Object(v["a"])(ao,Xn,eo,!1,null,null,null),oo=no.exports;S()(no,"components",{QIcon:G["a"],QTooltip:V["a"]});var io={name:"ListItem",props:{torrent:{type:Object,required:!0},visibleColumns:{type:Array,required:!0},showCols:{type:Object,required:!0},incomes:{type:Object,default:()=>({})},colWidth:{type:Object,default:()=>({})},highlight:Boolean},inject:["io"],components:{IconWithTooltip:oo},data(){return{locked:!1}},computed:{isDevMode(){return d["a"].getters.isDevMode},isProcessingUpload(){return!(!this.torrent.isSeeding&&!this.torrent.done||this.torrent.length)},displayName(){const e=this.torrent.postTitle||this.torrent.name||this.torrent.origin||this.torrent.token;if(!e)return"";if(e.includes("&dn")){const t=(e+"&").match(/&dn=(.*?)&/);if(t&&t[1])return t[1]}const t=e.match(/btih:([^&]*)/);if(t&&t[1])return t[1];const a=Ln["b"].is.win;if(e.includes(a)){const t=e.replace(new RegExp(a+"$"),"").match(new RegExp(`([^${a}]*$)`));if(t&&t[1])return t[1]}return e},isReady(){return this.torrent&&this.torrent.name&&this.torrent.ready},taskIcon(){const e=this.torrent,t=e.files?e.files:[],a=Object(M["c"])(t.map((e=>e.path||e)));return{icon:a.icon,tooltip:this.$t(a.tooltip)}},downloadStatus(){if(this.torrent.missFile)return this.$t("miss_file");if(this.torrent.isSeeding||this.torrent.done){if(!this.torrent.length){if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("loading")+` (${n})`}return this.$t("loading")}return Object(M["a"])(this.torrent.length)}return this.isReady||this.torrent.paused||this.torrent.length?this.torrent.done||this.torrent.downloaded===this.torrent.length?Object(M["a"])(this.torrent.length):`${Object(M["a"])(this.torrent.downloaded)}/${Object(M["a"])(this.torrent.length)}`:"-"},remaining(){return this.torrent.paused||this.torrent.pending?"-":Object(M["e"])(this.torrent.timeRemaining)},completedTime(){const e=(...e)=>this.$t(...e);return this.torrent.completedTime?Object(M["f"])(this.torrent.completedTime,e,null===this||void 0===this?void 0:this.$i18n.locale):Object(M["f"])(this.torrent.createdTime,e,null===this||void 0===this?void 0:this.$i18n.locale)},progress(){return Object(M["g"])(this.torrent.progress)},downloadSpeed(){if(this.torrent.paused)return this.$t("paused");if(this.torrent.pending)return this.$t("pending");if(!this.torrent.ready){if(!this.torrent.hasMetadata)return this.$t("loading");if(this.torrent.waiting)return this.$t("waiting_for_verify");if(this.torrent.verifyStatus){const{current:e,total:t}=this.torrent.verifyStatus,a=e/t,n=Object(M["g"])(a);if(!isNaN(a))return this.$t("verifying")+` (${n})`}return this.$t("verifying")}return Object(M["a"])(this.torrent.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s"},incomeInfo(){return[Number(((this.incomes.today||0)/1e3).toFixed(3)),Number(((this.incomes.total||0)/1e3).toFixed(3))].join(" / ")},uploadSpeed(){return this.torrent.ready?Object(M["a"])(this.torrent.uploadSpeed,{byte:!1,gb:!1,fix:1})+"/s":"-/s"},taskAction(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?this.$t("seed"):this.$t("resume"):this.torrent.isSeeding?this.$t("stop_torrent"):this.$t("pause")},actionIcon(){return this.torrent.paused?this.torrent.done||this.torrent.isSeeding?"cloud_upload":"play_arrow":this.torrent.isSeeding?"stop":"pause"},playableFiles(){var e;return(null===(e=this.torrent.files)||void 0===e?void 0:e.filter((e=>Object(Nn["a"])(e.name))))||[]},playable(){return this.playableFiles.length},abPeers(){return this.torrent.connections?this.torrent.connections.filter((e=>!(!this.torrent.hasMetadata&&!e.hasMeta)&&(!!e.hasResource&&(e.isAbPeer&&e.subId&&e.subId!==d["a"].getters.accountUserInfo.sub)))):[]},showAbButton(){return this.isDevMode&&this.abPeers.length},isPayed(){return this.abPeers.some((e=>"high"===e.remoteGroup))}},methods:{shouldShow(e){return this.visibleColumns.includes(e)},onDoubleClick(){this.playable?this.$emit("play",this.playableFiles[0].path,this.torrent.infoHash):this.torrent.files&&this.torrent.files.length?this.openFile():this.$q.notify(this.$t("no_available_file"))},toggleStatus(){if(!this.locked)if(this.locked=!0,this.torrent.isSeeding?setTimeout((()=>{this.locked=!1}),2e3):setTimeout((()=>{this.locked=!1}),1e3),this.torrent.paused)this.$emit("resumeTorrent",this.torrent);else{if(!this.torrent.infoHash)return this.$q.dialog({message:this.$t("this_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.io.emit("delete_torrent",this.torrent.token,!1)}));this.$emit("pauseTorrent",this.torrent.infoHash||this.torrent.token)}},deleteTorrent(){this.$emit("deleteTorrent",this.torrent)},openFile(){1===this.torrent.files.length?this.io.emit("open-external-file",this.torrent.files[0].path,this.torrent.infoHash):this.showDirectory()},showDirectory(){this.$emit("showDirectory",this.torrent)},showDetail(){this.$emit("showDetail",this.torrent)},showPostInfo(){this.$emit("showPostInfo",this.torrent.fromPost)},openAbPanel(){this.$emit("showAbPanel",this.torrent)},showQuickStart(){this.$emit("showQuickStart",this.torrent)}}},ro=io,so=(a("bd3b"),Object(v["a"])(ro,Jn,Zn,!1,null,null,null)),lo=so.exports;S()(so,"components",{QTr:bn["a"],QTd:yn["a"],QLinearProgress:zt["a"],QBtn:A["a"],QColor:la["a"]});var co=a("ed1a"),uo={name:"TableList",props:{list:{type:Object,required:!0},tab:{type:String,default:"downloading"},incomes:{type:Object,default:()=>({})},noDataMessage:{type:String,default:()=>""}},components:{ListItem:lo},data(){const e=this;let t={name:250,remaining:80,completedTime:80,progress:120,downloadSpeed:150,uploadSpeed:100,incomeInfo:120,options:165};return localStorage.getItem("table-col-width")||localStorage.setItem("table-col-width",JSON.stringify(t)),t=JSON.parse(localStorage.getItem("table-col-width")),{isElectron:Object(X["isElectron"])(),emitEvent:new Proxy({},{get(t,a){return(...t)=>{e.$emit(a,...t)}}}),defaultColumns:{downloading:["name","remaining","progress","downloadSpeed","options"],uploading:["name","completedTime","uploadSpeed","incomeInfo","options"],downloaded:["name","completedTime","options"]},dragData:{start:!1,col:"",pageX:0,pageY:0},highlightItem:{},colWidth:t}},computed:{columns(){return[{name:"name",required:!0,label:this.$t("task_name"),align:"left",headerStyle:this.colWidthText.name+";padding-left: 48px; max-width: calc(100% - 48px);"},{name:"remaining",label:this.$t("remaining"),align:"left",headerStyle:this.colWidthText.remaining+"; max-width: calc(100% - 8px)"},{name:"completedTime",label:this.$t("completed_time"),align:"left",headerStyle:this.colWidthText.completedTime+"; max-width: calc(100% - 8px)"},{name:"progress",label:this.$t("progress"),align:"left",headerStyle:this.colWidthText.progress+"; max-width: calc(100% - 8px)"},{name:"downloadSpeed",label:this.$t("total_download_speed"),align:"left",headerStyle:this.colWidthText.downloadSpeed+"; max-width: calc(100% - 8px)"},{name:"uploadSpeed",label:this.$t("total_upload_speed"),align:"left",headerStyle:this.colWidthText.uploadSpeed+"; max-width: calc(100% - 8px)"},{name:"incomeInfo",label:this.$t("income_info"),align:"right",headerStyle:this.colWidthText.incomeInfo+"; max-width: calc(100% - 8px)"},{name:"options",label:this.$t("operations"),align:"left"}]},visibleColumns(){switch(this.tab){case"downloading":return this.defaultColumns.downloading;case"uploading":return 2!==this.$store.state.credits.isModuleInit?this.defaultColumns.uploading.filter((e=>"incomeInfo"!==e)):this.defaultColumns.uploading;case"downloaded":return this.defaultColumns.downloaded}return this.defaultColumns.downloading},showCols(){const e={};for(const t of this.visibleColumns)e[t]=!0;return e},colWidthText(){const e={};for(const t in this.colWidth){const a=this.colWidth[t];e[t]=`width: ${a}px; min-width: ${a}px; max-width: ${a}px;`}return e},tableList(){var e,t;return(null===(e=this.list)||void 0===e||null===(t=e.list)||void 0===t?void 0:t.map((e=>({name:e.name}))))||[]},taskIncomes(){const{todayTaskIncome:e,allTaskIncome:t}=this.incomes,a={};for(const n in t)a[n]||(a[n]={today:0,total:0}),a[n].total+=t[n],e[n]&&(a[n].today+=e[n]);return a}},methods:{onDragStart(e,t){this.dragData.pageX=t.pageX,this.dragData.pageY=t.pageY,this.dragData.start=!0,this.dragData.col=e.name,document.body.style.cursor="col-resize"},onDragEnd(){this.dragData.start&&(this.dragData.start=!1,document.body.style.cursor="",localStorage.setItem("table-col-width",JSON.stringify(this.colWidth)))},onDrag(e){if(!this.dragData.start)return;const t=this.dragData.pageX-e.pageX;this.dragData.pageX=e.pageX,this.colWidth[this.dragData.col]&&(this.colWidth[this.dragData.col]-=t,this.colWidth[this.dragData.col]<80&&(this.colWidth[this.dragData.col]=80))},onResize(){console.log("table resize"),this.$refs.tableIns.resetVirtualScroll()},findTaskIndex(e,t){for(const a in this.list.list){const n=this.list.list[a];if(t&&n.fromPost===t)return console.log("found item by soul",t),parseInt(a);if(Object(we["a"])(n.alphabizURI)===e)return console.log("found",e,n.alphabizURI,a),parseInt(a)}return-1}},created(){this.onDrag=Object(co["a"])(this.onDrag,1e3/60),this.onResize=Object(co["a"])(this.onResize)},beforeDestroy(){window.removeEventListener("resize",this.onResize)},mounted(){window.addEventListener("resize",this.onResize),console.log("table created",this.$route.query)},activated(){if(this.highlightItem={infoHash:-1},this.$route.query&&this.$route.query.abKey){const e=Date.now(),t=setInterval((()=>{if(!this.$route.path.startsWith("/downloader"))return clearInterval(t),console.log("User exit before loaded");if(this.$refs.tableIns){var a;if(Date.now()-e<1e3)return;const n=null===(a=this.$route.query.abKey)||void 0===a?void 0:a.replace(/\s/g,"+"),o=this.findTaskIndex(n,this.$route.query.soul);if(-1===o)return console.log("Cannot find abKey",n);const i=this.list.list[o];console.log("scroll to",o,i),this.highlightItem=i,this.$refs.tableIns.scrollTo(o,"center"),clearInterval(t),setTimeout((()=>{this.highlightItem===i&&(this.highlightItem={infoHash:-1})}),2500)}}),200)}}},_o=uo,po=(a("cdb7"),a("c1f8")),mo=Object(v["a"])(_o,Kn,Yn,!1,null,null,null),ho=mo.exports;S()(mo,"components",{QTable:Tt["a"],QTr:bn["a"],QTh:po["a"],QIcon:G["a"],QColor:la["a"]});var go=function(){var e=this,t=this,a=t.$createElement,n=t._self._c||a;return n("q-dialog",{attrs:{value:t.show},on:{input:function(t){return e.$emit("change",t)},"before-hide":function(){return e.disable=!1}}},[n("q-card",{staticClass:"info"},[n("q-card-section",[n("div",{staticClass:"text-h6"},[t._v(t._s(t.$t("create_payment")))]),n("div",{staticClass:"infohash"},[t._v(t._s(t.$t("pay_for_torrent",[t.torrentName])))]),n("small",{staticClass:"infohash text-secondary"},[t._v("infoHash: "+t._s(t.infoHash))]),n("div",{staticClass:"peer-info"},[t._v(t._s(t.$t("pay_target"))+":\n "),n("div",{staticClass:"q-ml-sm remote"},[t._v("SubId: "+t._s(t.remoteSubId))]),n("div",{staticClass:"peer-address q-ml-md"},[t._v("Address: "+t._s(t.address))]),n("div",{staticClass:"peer-id q-ml-md"},[t._v("PeerId: "+t._s(t.peerId))])]),n("div",{staticClass:"space q-my-md"}),n("div",{staticClass:"user-info"},[n("div",{staticClass:"sub-id"},[t._v(t._s(t.$t("your_subid"))+": "+t._s(t.subId))]),n("div",{staticClass:"credit-count"},[t._v(t._s(t.$t("your_credits"))+": "+t._s(t.credit))])]),n("div",{staticClass:"actions"},[n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[2,"20MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(2)}}}),n("q-btn",{attrs:{"no-caps":"",label:t.$t("pay_point_for_data",[10,"100MB"]),disable:t.disable,loading:t.disable},on:{click:function(e){return t.pay(10)}}}),n("br"),n("q-toggle",{attrs:{value:t.enableAutoRenew,label:t.$t("auto_renew"),"left-label":""},on:{input:t.setAutoRenew}})],1)])],1)],1)},fo=[],bo={name:"TorrentPayment",props:{dp$source:Object,infoHash:{type:String,default:""},torrentName:{type:String,default:""},peerId:{type:String,default:""},address:{type:String,default:""},remoteUser:{type:String,default:""},remoteSubId:{type:String,default:""},show:{type:Boolean,default:!1},autoRenew:{type:Object,default:()=>({})}},data(){return{disable:!1,sentTransactions:new Set,pendingTransactions:new Map}},computed:{credit(){return this.dp$source.dp$credit},userId(){return this.$store.state.account.username},subId(){return this.dp$source.dp$address},enableAutoRenew(){return this.autoRenew&&this.autoRenew[this.infoHash]||!1},income(){return this.dp$source.dp$incomeTxnList},expenses(){return this.dp$source.dp$expenseTxnList}},methods:{setAutoRenew(e){this.$emit("setAutoRenew",this.infoHash,e)},pay(e=1){if(!this.infoHash.length||!this.peerId.length||!this.remoteSubId.length)return this.$q.notify("Info missing");this.disable=!0,console.log("dp$ create payment from","TorrentPayment::pay"),this.$emit("createPayment",{infoHash:this.infoHash,peerId:this.peerId,remoteSubId:this.remoteSubId,payed:e,autoRenew:this.enableAutoRenew})}}},yo=bo,vo=Object(v["a"])(yo,go,fo,!1,null,null,null),wo=vo.exports;S()(vo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QBtn:A["a"],QToggle:ta["a"]});var ko=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.torrent?a("q-dialog",{staticClass:"detail-dialog",attrs:{value:e.show,position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},on:{input:e.closeDialog}},[a("q-card",{staticClass:"detail-dialog",class:e.isCapacitor?"capacitor":""},[a("q-card-section",{staticClass:"flex items-center no-wrap",class:e.screen$xs?"q-py-sm":"q-py-md"},[e.torrent.fromPost?a("q-icon",{staticClass:"q-mr-xs text-primary",attrs:{name:"video_library"}},[a("q-tooltip",[e._v("\n "+e._s(e.$t("library"))+"\n ")])],1):e._e(),a("div",{staticClass:"text-h6 ellipsis",attrs:{title:e.torrent.postTitle||e.torrent.name}},[e._v("\n "+e._s(e.torrent.postTitle||e.torrent.name)+"\n ")]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"},{name:"close-popup",rawName:"v-close-popup"}],attrs:{icon:"close",flat:"",round:"","data-cy":"moreCard-closeBtn"}})],1),a("q-separator",{directives:[{name:"show",rawName:"v-show",value:e.screen$xs,expression:"screen$xs"}]}),a("q-card-section",{class:e.screen$xs?"q-pt-md":"q-pt-none"},[a("q-input",{attrs:{readonly:"",label:e.$t("download")+" URL",outlined:"",dense:""},scopedSlots:e._u([{key:"append",fn:function(){return[a("IconWithTooltip",{attrs:{icon:"content_copy",tooltip:e.$t("copy_download_uri"),clickable:!0},on:{click:e.copyMagnetURI}}),a("IconWithTooltip",{attrs:{icon:"share",tooltip:e.$t("copy_share_uri"),clickable:!0},on:{click:e.copyShortURI}})]},proxy:!0}],null,!1,2307292726),model:{value:e.downloadURI,callback:function(t){e.downloadURI=t},expression:"downloadURI"}})],1),e.fileTree.length?a("q-card-section",{staticClass:"q-pt-none"},[a("div",{staticClass:"title"},[e.isElectron||e.isCapacitor?a("q-btn",{attrs:{flat:"",dense:"",size:"sm"},on:{click:e.showDirectory}},[a("IconWithTooltip",{attrs:{icon:"folder_open",tooltip:e.$t("open_directory"),clickable:""}})],1):e._e(),e._v("\n "+e._s(e.$t("files"))+":\n ")],1),a("q-tree",{staticClass:"no-select file-tree",attrs:{nodes:e.fileTree,"node-key":"label",dense:"","no-connectors":""},scopedSlots:e._u([{key:"default-header",fn:function(t){return[a("q-item",{staticClass:"text full-width q-py-none q-px-xs no-margin vertical-middle",class:{"no-path":!t.node.path},attrs:{dense:"",clickable:!t.node.children},on:{dblclick:function(a){return e.onDblClick(t.node)}}},[!t.node.children&&t.node.path?a("IconWithTooltip",e._b({staticClass:"q-mt-xs q-mr-xs"},"IconWithTooltip",e.getFileIcon(t.node.path),!1)):t.node.path?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"folder"}}):e._e(),e.isCapacitor&&t.node.done&&t.node.fullPath?a("IconWithTooltip",{staticClass:"q-mt-xs q-mr-xs",attrs:{icon:"ios_share",label:e.$t("open_file")},on:{click:function(a){return e.shareFile(t.node)}}}):e._e(),t.node.progress?a("span",{staticClass:"file-progress"},[e._v(e._s(t.node.progress))]):e._e(),a("span",{staticClass:"file-name"},[e._v("‎"+e._s(t.node.label))])],1)]}}],null,!1,3668704012)})],1):e._e(),e.torrent.subtitleList&&e.torrent.subtitleList.length?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"subtitles",label:e.$t("subtitle")+" ("+e.torrent.subtitleList.length+")",value:!0}},[a("q-markup-table",{staticClass:"subtitleList-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center",staticStyle:{"padding-left":"20px"}},[e._v(e._s(e.$t("language")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("download_link")))]),a("th")])]),a("tbody",e._l(e.torrent.subtitleList,(function(t,n){return a("tr",{key:n},[a("td",{staticClass:"text-center",staticStyle:{"padding-left":"20px"},attrs:{title:t.lang}},[e._v(e._s(t.lang))]),a("td",{staticClass:"text-left url ellipsis",attrs:{title:e.getSubtitleUrl(t.url)}},[e._v(e._s(e.getSubtitleUrl(t.url)))]),a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{icon:"content_copy",size:"xs",dense:"",flat:""},on:{click:function(a){return e.copySubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("copy_download_uri")))])],1),e.isElectron?a("q-btn",{attrs:{icon:"file_download",size:"xs",dense:"",flat:""},on:{click:function(a){return e.downloadSubtitleURL(t.url)}}},[a("q-tooltip",[e._v(e._s(e.$t("download_link")))])],1):e._e()],1)])})),0)])],1)],1):e._e(),a("q-card-section",{staticClass:"q-pt-none peers"},[a("q-expansion-item",{attrs:{"expand-separator":"",icon:"people",label:"Peers ("+e.connectedPeers.length+")",value:!0}},[a("q-markup-table",{staticClass:"peer-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-center"}),a("th",{staticClass:"text-left ip",staticStyle:{"padding-left":"32px"}},[e._v("Peer")]),e.isDevMode?a("th",{staticClass:"text-left client"},[e._v(e._s(e.$t("client")))]):e._e(),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_download_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("total_upload_speed")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("progress")))])])]),a("tbody",e._l(e.connectedPeers,(function(t){return a("PeerInfo",{key:t.id,attrs:{peer:t},on:{showPaymentPannel:e.showPaymentPannel}})})),1)])],1)],1),e.isDevMode?a("q-card-section",{staticClass:"q-pt-none"},[a("q-expansion-item",{directives:[{name:"show",rawName:"v-show",value:e.trackerList.length,expression:"trackerList.length"}],attrs:{icon:"dns",label:"Trackers ("+e.trackerList.length+")"}},[e.isElectron?a("div",{staticClass:"row justify-end q-pa-sm"},[a("q-input",{staticClass:"col",attrs:{dense:"",type:"text",label:"Tracker URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.newTrackerUrl,callback:function(t){e.newTrackerUrl=t},expression:"newTrackerUrl"}}),a("q-btn",{attrs:{dense:"",color:"primary q-mx-sm q-px-sm",icon:"add",label:e.$t("add")},on:{click:e.addTracker}})],1):e._e(),a("q-markup-table",{staticClass:"tracker-table q-px-sm",attrs:{flat:"",dense:""}},[a("thead",[a("tr",[a("th",{staticClass:"text-left",staticStyle:{"padding-left":"40px"}},[e._v("URL")]),a("th",{staticClass:"text-left"},[e._v(e._s(e.$t("status")))]),a("th",{staticClass:"text-right"},[e._v(e._s(e.$t("last_update")))]),a("th",{staticClass:"text-center"},[e._v(e._s(e.$t("seeders")))]),a("th",{staticClass:"text-center"},[e._v("Peers")]),e.isElectron?a("th"):e._e()])]),a("tbody",e._l(e.trackerList,(function(t){return a("tr",{key:t.url},[a("td",{staticClass:"text-left url",attrs:{title:t.displayUrl+(t.isIpv6?" (IPv6)":"")}},[t.isIpv6?a("IconWithTooltip",{staticStyle:{color:"#4697ec"},attrs:{icon:"looks_6",tooltip:"IPv6",size:"xs"}}):a("q-icon",{attrs:{name:"looks_4",color:"grey",size:"xs"}}),e._v("\n "+e._s(t.displayUrl)+"\n ")],1),a("td",{staticClass:"text-left status",attrs:{title:t.status}},[e._v(e._s(t.status))]),a("td",{staticClass:"text-right"},[e._v(e._s(t.time))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.complete))]),a("td",{staticClass:"text-center"},[e._v(e._s(t.incomplete))]),e.isElectron?a("td",{staticClass:"text-center"},[a("q-btn",{attrs:{color:"red",icon:"close",size:"xs",dense:"",flat:""},on:{click:function(a){return e.removeTracker(t.url)}}})],1):e._e()])})),0)])],1)],1):e._e()],1)],1):e._e()},So=[],Co=(a("dc69"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("tr",[a("td",{staticClass:"status text-center"},[e.peer.isAbPeer?"high"===e.peer.level?a("q-icon",{attrs:{name:"done_all"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer_verified")))])],1):a("q-icon",{attrs:{name:"done"}},[a("q-tooltip",[e._v(e._s(e.$t("ab_peer")))])],1):a("q-icon",{attrs:{name:"remove"}},[a("q-tooltip",[e._v(e._s(e.$t("common_peer")))])],1)],1),a("td",{staticClass:"addresses"},e._l(e.peer.addresses,(function(t){return a("div",{key:e.peer.id+"_"+t,staticClass:"self-center not-outline address"},[a("q-icon",{attrs:{name:e.peer.secure?"lock":"lock_open",size:"xs",color:e.peer.secure?"green":"grey"}},[a("q-tooltip",[e._v(e._s(e.peer.secure?e.$t("encrypted_connection"):e.$t("non_encrypted_connection")))])],1),a("span",{staticClass:"country-flag q-ml-sm",attrs:{title:e.country}},[e._v(e._s(e.countryFlag))]),e.isDevMode?a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t))]):a("span",{staticClass:"q-ml-xs"},[e._v(e._s(t?t.substring(0,4)+"*":"-"))])],1)})),0),e.isDevMode?a("td",{staticClass:"client text-left",class:{"text-primary":"Alphabiz"===e.peerClient},attrs:{title:e.peerClient}},[e._v(e._s(e.peerClient))]):e._e(),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.downloadSpeed}},[e._v(e._s(e.downloadSpeed)+" / s")]),a("td",{staticClass:"text-right",class:{"text-primary":e.peer.uploadSpeed}},[e._v(e._s(e.uploadSpeed)+" / s")]),a("td",{staticClass:"progress text-right"},[e._v(e._s(e.peerProgress))])])}),xo=[],$o=a("c791"),To=$o["a"],zo=(a("2e69"),Object(v["a"])(To,Co,xo,!1,null,"4676c095",null)),Po=zo.exports;S()(zo,"components",{QIcon:G["a"],QTooltip:V["a"]});var Ao={props:{show:{type:Boolean,default:!1},torrent:{type:Object,required:!0}},data(){const e=Object(ae["default"])()?a("b052").ipcRenderer:{};return{newTrackerUrl:"",isCapacitor:Object(ge["a"])(),isElectron:Object(ae["default"])(),ipcRenderer:e}},components:{IconWithTooltip:oo,PeerInfo:Po},inject:["io"],computed:{isDevMode(){return d["a"].getters.isDevMode},fileCount(){if(!this.torrent)return 0;const e=this.torrent.files||this.torrent.file||[];return e&&e.length?e.length:0},fileTree(){if(!this.torrent)return[];const e=this.torrent.files&&this.torrent.files.map?this.torrent.files.map((e=>e.path)):this.torrent.file||[];if(!e||!e.length)return[];const t=this.fileCount>21?e.slice(e.length-20):e,a=Object(M["b"])(t,this.torrent.files);return a?(this.fileCount>21&&a.children&&a.children.push({label:this.$t("more_files_are_not_shown",[this.fileCount-20])}),[a]):[]},downloadURI(){return this.torrent.alphabizURI?this.torrent.alphabizURI:this.torrent.magnetURI},trackerList(){if(!this.torrent.trackerList)return[];const e=this.torrent.trackerList.map((e=>{const t=this.trackerStatus(e.message||e.status),a=e.info||{complete:"-",incomplete:"-"},n=new Date(e.timestamp),o=[n.getHours(),n.getMinutes(),n.getSeconds()].map((e=>("00"+e).slice(-2))).join(":");return{url:e.url,displayUrl:e.url.replace("@6",""),status:t,time:o,isIpv6:e.isIpv6,...a}})).reverse();return Object(ae["default"])()?e:e.filter((e=>{var t;return null===(t=e.url)||void 0===t?void 0:t.startsWith("ws")}))},connectedPeers(){if(!this.torrent||!this.torrent.connections)return[];const e={};for(const n of this.torrent.connections){const t=n.id;e[t]||(e[t]={...n},e[t].addresses=[],e[t].uploadSpeed=0,e[t].downloadSpeed=0,e[t].downloaded=0),e[t].addresses.includes(n.address)||e[t].addresses.push(n.address),e[t].uploadSpeed+=n.uploadSpeed,e[t].downloadSpeed+=n.downloadSpeed,e[t].downloaded+=n.downloaded,e[t].isAbPeer|=n.isAbPeer,e[t].isPayed|="high"===n.remoteGroup,e[t].secure|=n.secure}const t=[],a=Object.values(e).sort(((e,t)=>{var a;return null!==(a=e.id)&&void 0!==a&&a.localeCompare?e.id.localeCompare(t.id):0})).filter((e=>!!e.id&&(!t.includes(e.id)&&(t.push(e.id),!0))));return a}},methods:{getFileIcon(e){const t=Object(M["c"])([e]);return{icon:t.icon,tooltip:this.$t(t.tooltip)}},closeDialog(){this.$emit("close")},copyToClipboard(e){Object(lt["b"])(e).then((()=>{this.$q.notify(this.$t("uri_copied"))})).catch((()=>{this.$q.notify(this.$t("uri_copy_failed"))}))},copyMagnetURI(){this.copyToClipboard(this.downloadURI)},copyShortURI(){if(!this.torrent.alphabizURI)return;const e=this.torrent.alphabizURI.match(/[^:/]\/([^&/]+)&/);e&&e[1]&&this.copyToClipboard(De.a.shortProtocol+"://"+e[1])},copySubtitleURL(e){console.log("copySubtitleURL",this.torrent),this.copyToClipboard(qe(e))},downloadSubtitleURL(e){this.ipcRenderer.send("to_browserurl",qe(e))},getSubtitleUrl(e){return qe(e)},showPaymentPannel(e){this.$emit("showPaymentPannel",Object.assign({infoHash:this.torrent.infoHash,name:this.torrent.name},e))},showDirectory(){this.$emit("showDirectory",this.torrent)},onDblClick(e){console.log(e),e.children||(Object(Nn["a"])(e.label)?this.$emit("play",e.path,this.torrent.infoHash):e.path&&this.io.emit("open-external-file",e.path))},shareFile(e){this.$emit("shareFile",e.fullPath)},trackerStatus(e){const t=e.toLowerCase();return"connecting"===t?this.$t("connecting"):"updated"===t?this.$t("connected"):t.includes("timed out")?this.$t("request_timed_out"):t.includes("connection failed")?this.$t("connection_failed"):this.$t("unknown_error",[e])},addTracker(){console.log("add",this.newTrackerUrl,this.torrent.infoHash);const e=this.newTrackerUrl.trim();if(this.torrent.trackerList.find((t=>t.url===e)))return this.$q.notify(this.$t("duplicate_tracker"));this.isElectron&&this.ipcRenderer.send("add-tracker",{infoHash:this.torrent.infoHash,url:e}),this.newTrackerUrl=""},removeTracker(e){console.log("remove",e,this.torrent.infoHash),this.isElectron&&this.ipcRenderer.send("remove-tracker",{infoHash:this.torrent.infoHash,url:e})}}},Io=Ao,qo=(a("860f"),a("348e")),Oo=a("5bbd"),Eo=Object(v["a"])(Io,ko,So,!1,null,"560c4343",null),Do=Eo.exports;S()(Eo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QIcon:G["a"],QTooltip:V["a"],QSpace:W["a"],QBtn:A["a"],QSeparator:H["a"],QInput:E["a"],QTree:qo["a"],QItem:He["a"],QExpansionItem:Oo["a"],QMarkupTable:Q["a"]}),S()(Eo,"directives",{ClosePopup:K["a"]});var jo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{value:e.showPanel},on:{input:e.close}},[a("q-card",[a("q-card-section",{staticClass:"row items-center"},[a("q-expansion-item",{staticStyle:{width:"400px"},attrs:{"expand-separator":"","default-opened":"",icon:"people",label:"Peers ("+e.abPeers.length+")",caption:"Alphabiz peer"}},[a("div",{staticClass:"total col-12 q-px-md q-ml-sm"},[a("span",[e._v(e._s(e.$t("credit_cost"))+": "+e._s(e.torrentExpensesNum))])]),e._l(e.abPeers,(function(t){return a("q-field",{key:t.id,attrs:{label:t.subId||t.id,"stack-label":"",borderless:"",readonly:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("div",{staticClass:"q-px-sm"})]},proxy:!0},{key:"control",fn:function(){return[e._l(t.addresses,(function(t,n){return a("div",{key:n+"-"+t,staticClass:"self-center full-width not-outline"},[e._v(" - "+e._s(t)+"\n ")])})),a("div",{staticClass:"text full-width q-mt-xs"},[a("span",{staticClass:"peer-speed q-ml-xs q-mr-lg",class:{"text-primary":"0.00 KB"!==t.uploadSpeed}},[e._v("↑ "+e._s(t.uploadSpeed)+" / s")]),t.isPayed?a("q-icon",{staticClass:"text-primary q-mx-xs cursor-pointer",attrs:{name:"bolt"}},[a("q-tooltip",[e._v(" "+e._s(e.$t("accelerating")))])],1):e._e(),a("span",{staticClass:"peer-speed q-mr-md",class:{"text-primary":"0.00 KB"!==t.downloadSpeed}},[e._v("↓ "+e._s(t.downloadSpeed)+" / s")]),a("span",{directives:[{name:"show",rawName:"v-show",value:t.downloaded,expression:"peer.downloaded"}],staticClass:"peer-downloaded text-primary"},[e._v(e._s(t.downloadedData))])],1)]},proxy:!0}],null,!0)})}))],2)],1),a("q-card-section",{staticClass:"q-py-none"},[a("div",{staticClass:"total text-center"},[e._v("\n "+e._s(e.$t("pay_with_credit_payed",[e.totalCredits]))+"\n ")])]),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("cancel")}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:e.$t("ok")}})],1)],1)],1)},No=[],Lo={props:{dp$source:Object,show:{type:Boolean,required:!0},torrent:{type:Object,required:!0},paymentSize:{type:Number,default:1e7}},computed:{torrentExpensesNum(){let e=0;if(this.dp$source.dp$expenseTxnDict&&this.dp$source.dp$expenseHashMapper){const t=this.dp$source.dp$expenseHashMapper[this.torrent.infoHash];if(console.log("torrentExpensesNum:","infoHash",this.torrent.infoHash),t)for(const a of t)e+=this.dp$source.dp$expenseTxnDict[a].amount}return Number((e/1e3).toFixed(3))},showPanel(){return this.show},totalCredits(){const e=this.torrent.length,t=e-this.torrent.downloaded,a=Number((t/1e10).toFixed(3));return a},abPeers(){if(!this.torrent||!this.torrent.connections)return[];const e=this.torrent.connections.filter((e=>e.isAbPeer&&e.hasResource&&e.subId!==d["a"].getters.accountUserInfo.sub)),t={};for(const a of e){const e=a.subId;e&&(t[e]?(t[e].isAbPeer|=a.isAbPeer,t[e].addresses.push(a.address),t[e].uploadSpeed+=a.uploadSpeed,t[e].downloadSpeed+=a.downloadSpeed,t[e].downloaded+=a.downloaded):(t[e]={...a},t[e].addresses=[a.address]))}return Object.values(t).sort(((e,t)=>e.id.localeCompare?e.id.localeCompare(t.id):0)).map((e=>(e.uploadSpeed=Object(M["a"])(e.uploadSpeed,{byte:!1,gb:!1}),e.downloadSpeed=Object(M["a"])(e.downloadSpeed,{byte:!1,gb:!1}),e.downloadedData=Object(M["a"])(e.downloaded,{byte:!0,gb:!0}),e.isPayed="high"===e.remoteGroup,e)))},payedConnections(){return this.abPeers.filter((e=>e.isPayed))},downloadedFromPayed(){return Object(M["a"])(this.payedConnections.reduce(((e,t)=>e+t.downloaded||0),0),{byte:!0,gb:!0})},hasPayed(){return this.payedConnections.length}},methods:{confirmPayment(){if(!this.abPeers.length)return;let e=10;const t=Math.floor(10*this.torrent.downloadSpeed/this.paymentSize);t>e&&(e=t);const a=this.torrent.length-this.torrent.downloaded;a{console.log("pay for",t),t.isPayed?console.log("skip high level peer",t):(console.log("dp$ create payment from","AlphabizPanel::confirmPayment"),this.$emit("createPayment",{infoHash:this.torrent.infoHash,remoteSubId:t.subId,payed:e,autoRenew:!0},!0))})),this.close()},close(){this.$emit("close")}}},Uo=Lo,Ro=a("b121"),Mo=Object(v["a"])(Uo,jo,No,!1,null,null,null),Fo=Mo.exports;S()(Mo,"components",{QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QExpansionItem:Oo["a"],QField:Ro["a"],QIcon:G["a"],QTooltip:V["a"],QCardActions:D["a"],QBtn:A["a"]}),S()(Mo,"directives",{ClosePopup:K["a"]});var Bo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("alphabiz-button",{attrs:{"button-type":"icon",icon:"sort"}},[a("q-tooltip",[e._v(e._s(e.$t("sort")))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{attrs:{padding:""}},[a("q-item",{staticStyle:{"min-width":"240px"}},[a("q-item-section",[a("q-item-label",[e._v(e._s(e.$t("sort")))])],1),a("q-item-section",{attrs:{side:""}},[a("q-badge",{staticClass:"cursor-pointer non-selectable",attrs:{color:"general","text-color":"general"},on:{click:e.changeSortSequence}},[a("span",{staticClass:"q-ml-sm"},[e._v(e._s(1===e.sortSequence?e.$t("ascending"):e.$t("descending")))]),a("q-icon",{attrs:{size:"1.5rem",name:1===e.sortSequence?"arrow_drop_up":"arrow_drop_down"}})],1)],1)],1),a("q-separator"),e._l(e.options,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"}],key:t.value,attrs:{clickable:"",dense:"",tag:"label"}},[a("q-item-section",{attrs:{avatar:""}},[a("q-radio",{attrs:{val:t.value,color:"positive"},model:{value:e.sortOption,callback:function(t){e.sortOption=t},expression:"sortOption"}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)}))],2)],1)],1)},Wo=[],Ho={name:"DownloaderSortMenu",inject:["io"],data(){return{sortOption:"createdTime",sortSequence:1}},computed:{options(){switch(this.$route.query.currentTab){case"downloading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_download_speed"),value:"downloadSpeed"},{label:this.$t("progress"),value:"progress"},{label:this.$t("remaining"),value:"timeRemaining"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("used_time"),value:"usedTime"}];case"uploading":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("total_upload_speed"),value:"uploadSpeed"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("income"),value:"income"}];case"downloaded":return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"},{label:this.$t("size"),value:"length"},{label:this.$t("created_time"),value:"createdTime"},{label:this.$t("completed_time"),value:"completedTime"},{label:this.$t("used_time"),value:"usedTime"}]}return[{label:this.$t("status"),value:"status"},{label:this.$t("task_name"),value:"name"}]}},methods:{saveSortOptions(){localStorage.setItem("sortOptions_"+this.$route.query.currentTab,JSON.stringify({sortOption:this.sortOption,sortSequence:this.sortSequence}))},changeSortSequence(){this.sortSequence=-1*this.sortSequence,this.$emit("changeSortSequence",this.sortSequence),this.io.emit("set_sort_sequence",this.sortSequence),this.saveSortOptions()}},mounted(){const e=localStorage.getItem("sortOptions_"+this.$route.query.currentTab);if(e){const{sortOption:t,sortSequence:a}=JSON.parse(e);t&&(this.sortOption=t),a&&(this.sortSequence=a)}else this.sortOption="createdTime",this.sortSequence=1,this.saveSortOptions()},watch:{sortOption(e){this.$emit("changeSortOption",e),this.io.emit("set_sort_option",this.sortOption),this.saveSortOptions()},"$route.query.currentTab"(e,t){if(e===t||!e)return;const a=localStorage.getItem("sortOptions_"+e);if(a){const{sortOption:e,sortSequence:t}=JSON.parse(a);e&&(this.sortOption=e),t&&(this.sortSequence=t)}else this.sortOption="createdTime",this.sortSequence=1}}},Vo=Ho,Qo=a("719b"),Go=Object(v["a"])(Vo,Bo,Wo,!1,null,"b08e87f8",null),Ko=Go.exports;S()(Go,"components",{QTooltip:V["a"],QMenu:de["a"],QList:We["a"],QItem:He["a"],QItemSection:Ve["a"],QItemLabel:Ua["a"],QBadge:_e["a"],QIcon:G["a"],QSeparator:H["a"],QRadio:La["a"]}),S()(Go,"directives",{Ripple:Qo["a"]});var Yo=a("0885"),Jo=a("a368");const Zo=a("d310").isElectron();var Xo={name:"Downloader",inject:["rootApp","io","taskQueue","dp$source"],components:{CardList:Gn,TableList:ho,TableListDetail:Do,IconWithTooltip:oo,AlphabizPanel:Fo,TorrentPayment:wo,SortMenu:Ko,PostCard:Ye,QuickStart:Ma},data(){return{isMobile:Ln["b"].is.mobile||Object(ge["a"])(),currentTab:"downloading",loading:!1,listMode:localStorage.getItem("task-list-mode")||"list",searchText:"",showSearchText:!1,autoRenew:JSON.parse(localStorage.getItem("task-autorenew")||"{}"),sortOption:"createdTime",sortSequence:1,statusText:{},info:{downloadSpeed:0,uploadSpeed:0,progress:0,taskNum:0},showPayment:!1,showTorrentDetail:!1,torrentDetailInfoHash:"",paymentData:{infoHash:"",torrentName:"",peerId:"",address:"",remoteUser:"",remoteSubId:""},paymentSize:1e7,showAlphabizPanel:!1,abTorrentInfoHash:"",lib:s["a"],showChannelPost:!1,channelPost:null,showQuickStartDialog:!1,quickStartTask:null}},computed:{torrentList(){return za["a"].taskList},listComponent(){return"card"===this.listMode?"CardList":"TableList"},displayTab:{get(){return this.currentTab+"Torrents"},set(e){const t=e.replace(/Torrents$/,"");this.$router.push({path:this.$route.path,query:{...this.$route.query,currentTab:t}})}},displayList(){return[{key:"downloadingTorrents",label:this.$t("downloading"),open:!0,list:this.filterTorrent(this.downloadingTorrents||[])},{key:"uploadingTorrents",label:this.$t("uploading"),open:!1,list:this.filterTorrent(this.uploadingTorrents||[])},{key:"downloadedTorrents",label:this.$t("downloaded"),open:!1,list:this.filterTorrent(this.downloadedTorrents||[])}]},currentList(){switch(this.displayTab){case"downloadingTorrents":return this.displayList[0].list;case"uploadingTorrents":return this.displayList[1].list;default:return this.displayList[2].list}},isAllStarted(){return this.currentList.every((e=>!e.paused))},isAllPaused(){return this.currentList.every((e=>e.paused))},noDataMessage(){return this.searchText?this.$t("no_matched_task"):this.$t("no_task")},downloadingTorrents(){const e=this.sortTorrents(this.torrentList.downloading);return e},disableDownloadAll(){return this.loading||this.downloadingTorrents.every((e=>!e.paused))},disablePauseAllDownloading(){return this.loading||this.downloadingTorrents.every((e=>e.paused))},downloadingProgress(){const e=this.torrentList.totalDownloadProgress;return isNaN(e)||0===e&&0===this.downloadingNum?{value:0,label:this.$t("no_downloading_task")}:{value:e,label:Object(M["g"])(e)}},uploadingTorrents(){const e=this.sortTorrents(this.torrentList.uploading);return e},totalDownloadSpeed(){return this.torrentList.totalDownloadSpeed?Object(M["a"])(this.torrentList.totalDownloadSpeed,{byte:!1,gb:!1})+" / s":"0.00 KB / s"},totalUploadSpeed(){if(!this.uploadingTorrents)return"-";const e=this.torrentList.totalUploadSpeed;return Object(M["a"])(e,{byte:!1,gb:!1})+" / s"},downloadedTorrents(){return this.sortTorrents(this.torrentList.downloaded)},torrentItems(){return za["a"].allTasks},torrentDetail(){return this.torrentDetailInfoHash&&this.torrentItems.find((e=>e.infoHash===this.torrentDetailInfoHash))||{}},alphabizTorrent(){return this.abTorrentInfoHash&&this.torrentItems.find((e=>e.infoHash===this.abTorrentInfoHash))||{}},downloadingNum(){return this.downloadingTorrents.filter((e=>!e.paused&&!e.pending&&!(!e.download||1===e.progress))).length},incomes(){let e=0;const t={};for(const i of this.dp$source.dp$incomeTxnListToday){if(!i.meta||"FINISH"!==i.status)continue;e+=i.amount;const a=JSON.parse(i.meta);a.infoHash&&(t[a.infoHash]||(t[a.infoHash]=0),t[a.infoHash]+=i.amount)}let a=0;const n={},o=this.dp$source.dp$incomeStatusMapper.FINISH;if(o)for(const i of o){const e=this.dp$source.dp$incomeTxnDict[i];a+=e.amount;const t=JSON.parse(e.meta).infoHash;n[t]||(n[t]=0),n[t]+=e.amount}return{todayIncome:e,todayTaskIncome:t,allIncome:a,allTaskIncome:n}},totalIncomeInfo(){return 2!==d["a"].state.credits.isModuleInit?this.$t("login_to_see_income"):this.$t("total_income_info",[Number((this.incomes.todayIncome/1e3).toFixed(3)),Number((this.incomes.allIncome/1e3).toFixed(3))])},disableTasks(){return!!d["a"].getters.shouldDisableTasks||!!d["a"].getters.settings.forceLogin&&(!d["a"].getters.accountUserInfo||!d["a"].getters.accountUserInfo.sub)},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{ensureLogin(e){if(this.disableTasks){if(!d["a"].state.account.authState)return;this.$amplify.showSignedOutDialog()}else"function"===typeof e&&e()},async setLoading(){this.loading=!0,await new Promise((e=>setTimeout(e,1e3))),this.loading=!1},toggleSearchText(e){this.showSearchText=e,e&&this.$nextTick((()=>{this.$refs.searchInput.focus()}))},filterTorrent(e){const t=this.searchText.toLowerCase(),a=e.filter((e=>e.name||e.postTitle?e.postTitle?e.postTitle.toLowerCase().includes(t):e.name.toLowerCase().includes(t):""===t));return a},clearSearch(){this.searchText="",this.$refs.searchInput.blur()},changeListMode(){"list"===this.listMode?this.listMode="card":this.listMode="list",localStorage.setItem("task-list-mode",this.listMode)},byteToLargerSize(e){return Object(M["a"])(e,{byte:!0,gb:!0})},getTorrentListName(e){let t="downloading";return e.isSeeding||e.uploading?t="uploading":e.pending?t="pending":1===e.progress||e.done?t="downloaded":e.paused&&(t="paused"),t},showMagnetDialog(e){this.$root.$emit("openTaskDialog",e)},showDetail(e){this.torrentDetailInfoHash=e.infoHash,this.showTorrentDetail=!0},hideDetail(){this.showTorrentDetail=!1,this.torrentDetailInfoHash=""},showAbPanel({infoHash:e}){this.abTorrentInfoHash=e,this.showAlphabizPanel=!0},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},hideAbPanel(){this.showAlphabizPanel=!1,this.abTorrentInfoHash=""},async shareFile(e){const t=await Jo["Share"].canShare();if(!t.value)return;const a=await Jo["Share"].share({files:["file://"+encodeURI(e)]}).catch((e=>{console.log(e)}));this.$q.notify("Result: "+a.activityType)},showOriginTorrent(e){let t=e.token||e.origin;if(e.isSeeding||e.upload?t=e.magnetURI:e.magnetPath&&(t=e.magnetPath),!t)return this.$q.notify("origin_not_found");qn.a.existsSync(t)?this.io.emit("show_torrent_file",t):(t.startsWith("magnet")||(t="magnet:?xt=urn:btih:"+e.infoHash),e.name&&(t+="&dn="+encodeURIComponent(e.name)),Object(lt["b"])(t),this.$q.notify(this.$t("text_copied")))},async showDirectory(e){if(Object(ge["a"])()){if(1!==e.progress&&!e.done)return this.$q.notify(this.$t("wait_for_downloaded_to_share"));if((await Jo["Share"].canShare()).value){const t=e.files.map((e=>"file://"+e.path));console.log("Files",t,e.path);const a=Ia(t);console.log("pub",a),Jo["Share"].share({files:["file://"+encodeURI(a)],title:"Save"}).catch((e=>{console.log("Share error",e)}))}}if(!qn.a.existsSync(e.path))return this.$q.notify(this.$t("path_missing"));if(e.files&&1===e.files.length&&qn.a.existsSync(e.files[0].path))return this.io.emit("show_torrent_file",e.files[0].path);const t=Aa.a.resolve(e.path,e.postTitle||e.name||"");if(!qn.a.existsSync(t))return this.io.emit("show_torrent_file",e.path);this.io.emit("show_torrent_file",t)},setAutoRenew(e,t){return Object(Yo["c"])(e,t),this.$set(this.autoRenew,e,t)},showPaymentPannel(e){this.paymentData=e,this.showPayment=!0},changeSortOption(e){this.sortOption=e},changeSortSequence(e){this.sortSequence=e},sortTorrents(e){const t=this.sortOption,a=t;switch(a){case"income":{const t=this.incomes.allTaskIncome;return[...e].sort(((e,a)=>t[e.infoHash]?t[a.infoHash]?(t[e.infoHash]-t[a.infoHash])*this.sortSequence:-1:t[a.infoHash]?1:0))}default:return e}},async askForConfirm(e){return new Promise((t=>{this.$q.dialog({persistent:!0,message:e,ok:this.$t("confirm"),cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>t(!0))).onCancel((()=>t(!1)))}))},downloadAll(e=!1){if(console.log("download all!"),this.loading)return console.log("skip downloadAll since loading");this.setLoading(),Object(qa["c"])(e)},async pauseAllDownloading(e=!1){if(!this.torrentList.downloading.length)return console.log("skip pause all downloading");console.log("pauseall"),this.setLoading(),Object(qa["d"])(e)},requestPauseAllDownloading(){this.$q.dialog({title:this.$t("pause_all"),message:this.$t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("pause_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>{this.pauseAllDownloading()}))},removeAllDownloading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_downloading_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles");if(t&&d["a"].state.video.currentVideo.infoHash){const e=this.downloadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","download",t);for(const a of this.downloadingTorrents)this.io.emit("delete_torrent",a.infoHash,t);d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},pauseAllUploading(e=!1){this.torrentList.uploading.length&&(this.setLoading(),Object(qa["e"])(e))},removeAllUploading(){const e=[];d["a"].getters.settings.defaultDeleteFiles&&e.push("deleteFiles"),this.$q.dialog({title:this.$t("delete_task"),message:this.$t("remove_all_upload_tasks"),options:{type:"checkbox",model:e,items:[{label:this.$t("also_delete_files"),value:"deleteFiles"},{label:this.$t("remove_autoupload_files"),value:"deleteAutoUpload"}]},ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("remove_all")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("not_now")}}).onOk((async e=>{const t=e.includes("deleteFiles"),a=e.includes("deleteAutoUpload");if(t&&d["a"].state.video.currentVideo.remotePlay&&d["a"].state.video.currentVideo.infoHash){const e=this.uploadingTorrents.find((e=>e.infoHash===d["a"].state.video.currentVideo.infoHash));if(e){var n,o,i;const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(!a)return;console.log(null===(n=this.$refs.videoJsPlayer)||void 0===n?void 0:n.player),null===(o=this.$refs.videoJsPlayer)||void 0===o||null===(i=o.player)||void 0===i||i.stop(),this.io.emit("trigger_clear_player",e.infoHash)}}this.setLoading(),this.io.emit("delete_all","upload",t,a),d["a"].dispatch("updateSettings",{defaultDeleteFiles:t})}))},async uploadAll(e=!1){const t=Object(qa["h"])(e);if(console.log("rest",t),t<=this.downloadedTorrents.length)return void console.log("Skip watch: nothing to upload");this.loading=!0;let a=null;const n=new Promise((e=>a=e)),o=this.$watch("downloadedTorrents",(e=>{e.length<=t&&(o(),this.loading=!1,console.log("upload done"),a())}));return setTimeout((()=>{this.loading&&(this.loading=!1,o(),a())}),5e3),n},pauseTorrent(e){this.setLoading(),Object(qa["f"])(e,this)},resumeTorrent(e){e&&this.ensureLogin((()=>{this.setLoading(),console.log("resume",e),this.io.emit("resume_torrent",e)}))},deleteTorrent(e){this.ensureLogin((async()=>{if(e.infoHash&&d["a"].state.video.currentVideo.remotePlay&&e.infoHash===d["a"].state.video.currentVideo.infoHash){const t=this.$t("remove_playing_confirm",[e.name]),a=await this.askForConfirm(t);if(a){const t=await za["a"].deleteTask(e);if(!t)return;this.io.emit("trigger_clear_player",e.infoHash)}}else za["a"].deleteTask(e)}))},clearAll(){this.ensureLogin((()=>{this.$q.dialog({title:this.$t("clear_history"),message:this.$t("remove_all_history"),ok:this.$t("remove_all"),cancel:this.$t("not_now")}).onOk((()=>{this.setLoading();for(const e of this.downloadedTorrents)this.io.emit("delete_torrent",e.infoHash)}))}))},startPayment(e,t=!1){Object(Yo["d"])(e,t)},async createPayment(e,t=!1){await Object(Yo["a"])(e,t,this),t||(this.showPayment=!1)},setThrottleGroup(e){this.io.emit("set_throttle_group",e)},saveTorrentFile(e){this.io.emit("save_torrent_file",e)},play(e,t){(Zo||Object(ge["a"])())&&(console.log("run play():"+t+", "+e),d["a"].dispatch("remotePlay",t),this.io.emit("play-torrent",{infoHash:t,filepath:e}))},showQuickStart(e){this.quickStartTask=e,this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1,this.quickStartTask=null}},created(){this.io.on("client_info",(e=>{this.info=e}))},mounted(){if(Object.keys(this.autoRenew).length)for(const e in this.autoRenew)Object(Yo["c"])(e,this.autoRenew[e])},beforeRouteEnter(e,t,a){if(console.log("before enter",e,t),"/downloader"!==e.path)return a();console.log("is downloader"),e.query.currentTab?(console.log("current tab:",e.query.currentTab),a((t=>{t.currentTab=e.query.currentTab}))):(console.log("not current tab",e.query),a({path:e.path,query:{...e.query,currentTab:"downloading"}}))},beforeRouteUpdate(e,t,a){console.log("before update",e,t),this.currentTab=e.query.currentTab,a()},watch:{autoRenew(e){localStorage.setItem("task-autorenew",JSON.stringify(e))}}},ei=Xo,ti=(a("7297"),a("b2b4"),a("9b72")),ai=a("832a"),ni=a("917f"),oi=a("c72d"),ii=Object(v["a"])(ei,Pn,An,!1,null,"540e1290",null),ri=ii.exports;S()(ii,"components",{QPage:ti["a"],QHeader:ai["a"],QToolbar:ce["a"],QSpace:W["a"],QBtn:A["a"],QInput:E["a"],QIcon:G["a"],QTooltip:V["a"],QLinearProgress:zt["a"],QTabPanels:ni["a"],QTabPanel:oi["a"],QPageSticky:tt["a"],QDialog:I["a"]});var si=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",[a("input",{ref:"fileSelector",staticStyle:{display:"none"},attrs:{type:"file",name:"file"},on:{change:e.onFileChange}}),a("div",{staticClass:"container full-width"},[a("div",{staticClass:"sticky-bar q-py-sm bg-page text-page q-header--bordered"},[a("q-toolbar",{staticClass:"sticky-bar-toolbar",staticStyle:{"min-height":"unset"}},[a("span",[e._v("\n "+e._s(e.$t("web_mode_hint"))+"\n "),a("a",{staticClass:"doc-link",attrs:{href:"https://alpha.biz",target:"_blank"}},[e._v("\n "+e._s(e.$t("go_to"))+" alpha.biz\n "),a("q-icon",{attrs:{name:"open_in_new"}})],1)])])],1),a("div",{staticClass:"task-container"},[e.task.magnetURI||e.task.origin||e.task.isSeeding?a("CardItem",{attrs:{torrent:e.task},on:{pauseTorrent:e.pauseTorrent,resumeTorrent:e.resumeTorrent,deleteTorrent:e.deleteTorrent,play:e.play,showPaymentPannel:e.showPaymentPannel,showDetail:e.showDetail,showAbPanel:e.showAbPanel,showPostInfo:e.showPostInfo,showQuickStart:e.showQuickStart,saveFile:e.saveFile,saveZip:e.saveZip}}):a("div",{staticClass:"no-task"},[a("div",{staticClass:"add-hints"},[e._v("\n "+e._s(e.$t("web_mode_task_hint"))+"\n ")]),a("q-btn",{staticClass:"add-button",attrs:{color:"primary",icon:"add",size:"lg"},on:{click:e.showDownload}},[a("q-tooltip",[e._v(e._s(e.$t("download")))])],1),a("q-btn",{staticClass:"add-button q-ml-md",attrs:{color:"primary",icon:"cloud_upload",size:"lg"},on:{click:e.showUpload}},[a("q-tooltip",[e._v(e._s(e.$t("upload")))])],1)],1)],1)]),a("q-dialog",{model:{value:e.showInput,callback:function(t){e.showInput=t},expression:"showInput"}},[a("q-card",{staticClass:"url-input"},[a("q-card-section",[a("div",{staticClass:"text-h6"},[e._v(e._s(e.$t("download")))]),a("q-input",{attrs:{type:"text",label:"Task URL"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.taskUrl,callback:function(t){e.taskUrl=t},expression:"taskUrl"}})],1),a("q-card-actions",{attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:"Cancel",color:"primary"}}),a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{color:"primary",icon:"add",label:e.$t("add")},on:{click:e.addTask}})],1)],1)],1),a("q-dialog",{staticClass:"channel-post",attrs:{position:e.screen$xs?"bottom":"standard","content-class":"fullscreen-dialog"},model:{value:e.showChannelPost,callback:function(t){e.showChannelPost=t},expression:"showChannelPost"}},[e.channelPost?a("PostCard",{attrs:{post:e.channelPost,followable:e.channelFollowable,hideButtons:""},on:{"to-channel":e.toChannelPage}}):e._e()],1),a("TableListDetail",{attrs:{show:e.showTaskDetail,torrent:e.task,paymentSize:10},on:{close:e.hideDetail}}),a("AlphabizPanel",{attrs:{dp$source:e.dp$source,show:e.showAlphabizPanel,torrent:e.task,paymentSize:10},on:{close:e.hideAbPanel}}),a("QuickStart",{attrs:{show:e.showQuickStartDialog,preset:e.task},on:{input:e.hideQuickStartDialog}})],1)},li=[],ci=(a("f200"),a("09e8")),di=a("7d7c"),ui=(a("dc89"),a("2425"),a("3cc3")),_i=a.n(ui);const pi=(e,t)=>{const a=URL.createObjectURL(t),n=document.createElement("a");n.href=a,n.download=e,document.body.appendChild(n),n.click(),setTimeout((()=>{URL.revokeObjectURL(a),n.remove()}),3e4)};async function mi(e){return new Promise((t=>{e.getBlob(((a,n)=>{if(a)throw a;pi(e.name,n),t()}))}))}async function hi(e){if(!e.done)return;const t=Object(Pa["basename"])(e.name,Object(Pa["extname"])(e.name))+".zip",a=new _i.a,n=e.files;await Promise.all(n.map((e=>new Promise(((t,n)=>{e.getBlob(((o,i)=>{if(o)return n(o);a.file(e.path,i),t()}))}))))),n.length>1&&a.folder(e.postTitle||e.name);const o=await a.generateAsync({type:"blob"});return pi(t,o)}var gi=a("c620"),fi={components:{CardItem:Wn,TableListDetail:Do,AlphabizPanel:Fo,QuickStart:Ma,PostCard:Ye},mixins:[ci["a"]],name:"Downloader",data(){return{locked:!1,showInput:!1,showTaskDetail:!1,showAlphabizPanel:!1,showQuickStartDialog:!1,showChannelPost:!1,channelPost:null,taskUrl:"",task:{}}},computed:{isReady(){return this.task.name&&this.task.length},displayName(){return this.task.postTitle?this.task.postTitle:this.task.name?this.task.name:this.$t("loading")},taskAction(){return this.task.paused?this.task.done?this.$t("upload"):this.$t("resume"):this.task.isSeeding?this.$t("stop_torrent"):this.$t("pause")},channelFollowable(){return!!this.channelPost&&!s["a"].followingChannels.some((e=>{var t;return e&&e.id===(null===(t=this.channelPost.channel)||void 0===t?void 0:t.id)}))}},methods:{async showDownload(){this.taskUrl="",this.showInput=!0,await this.$nextTick();const e=await Object(lt["a"])();if(e&&"string"===typeof e){const t=e.trim();if([Ee["protocol"],Ee["shortProtocol"],"magnet"].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(Se["a"])(t);if(!e||!e.startsWith("magnet"))return;this.taskUrl=t}}},async showUpload(){this.$refs.fileSelector.click()},showDetail(){this.showTaskDetail=!0},hideDetail(){this.showTaskDetail=!1},switchState(){console.log("on switch state")},addTask(){Z["a"].emit("wt-add",this.taskUrl)},deleteTorrent(){this.$q.dialog({title:this.$t("delete_task"),message:this.$t("delete_confirm_message"),cancel:{color:"primary",flat:!0,label:this.$t("not_now")},ok:{color:"red",flat:!0,label:this.$t("delete")}}).onOk((()=>{Z["a"].emit("wt-delete",this.task.infoHash),this.task={}}))},pauseTorrent(){Z["a"].emit("wt-pause",this.task.infoHash),this.task.paused=!0},resumeTorrent(){this.task&&this.task.magnetURI&&(this.task.paused=!1,Z["a"].emit("wt-resume",this.task.infoHash))},play(e){console.log("onplay",e),Object(di["default"])(e)},showPaymentPannel(){},showAbPanel(){this.showAlphabizPanel=!0},hideAbPanel(){this.showAlphabizPanel=!1},async showPostInfo(e=""){if(console.log("show",e),!e||!e.includes("posts"))return this.$q.notify("Cannot find post");this.$q.loading.show();const t=e.replace(/\/posts\/([^/]+$)/,""),a=t.split("/").filter((e=>e)).pop(),n=e.split("/").filter((e=>e)).pop();let o=!1;setTimeout((()=>{o||(o=!0,this.$q.loading.hide(),this.$q.dialog({title:this.$t("error"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}))}),5e3);const i=await s["a"].getPostById(a,n,!0);if(console.log("show post",i),o)return;const r=await s["a"].getChannelById(a);if(console.log("show post channel",r),!o){if(o=!0,!i)return this.$q.loading.hide(),void this.$q.dialog({title:"Not Found",message:"Cannot found post info"});i.channel=r,this.channelPost=i,this.$q.loading.hide(),this.showChannelPost=!0}},toChannelPage(e){console.log("to",e);const t=["id","title"].map((t=>{const a=e[t];return encodeURIComponent(t)+"="+encodeURIComponent(a)})).join("&");this.$router.push(`/library/channel?${t}`),setTimeout((()=>{this.$root.$emit("navigate-to",`/library/channel?${t}`)}),200)},onFileChange(e){const t=e.target;t&&t.files&&t.files.length&&(console.log("To upload",t.files[0]),Z["a"].emit("wt-add",t.files[0])),t.value=null},showQuickStart(){this.showQuickStartDialog=!0},hideQuickStartDialog(){this.showQuickStartDialog=!1},saveFile(e){const t=gi["wtClient"].torrents[0];if(!t||!t.files)return;const a=t.files.find((t=>t.path===e.path))||t.files.find((t=>t.name===e.name));if(!a)return;const n=this.$q.dialog({title:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{mi(a).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>n.hide()))}))},saveZip(){const e=this.$q.dialog({message:this.$t("creating_save_file"),persistent:!0,ok:!1});setTimeout((()=>{hi(gi["wtClient"].torrents[0]).catch((e=>{console.error(e),e.message&&this.$q.notify(e.message)})).finally((()=>e.hide()))}))}},created(){console.log("[wt] created"),Z["a"].on("weberror",((...e)=>this.$q.notify(...e))),Z["a"].on("wt-task",(e=>{this.task=Array.isArray(e)?e[0]:e}))}},bi=fi,yi=(a("5ab7"),Object(v["a"])(bi,si,li,!1,null,"71beeddd",null)),vi=yi.exports;S()(yi,"components",{QPage:ti["a"],QHeader:ai["a"],QToolbar:ce["a"],QIcon:G["a"],QBtn:A["a"],QTooltip:V["a"],QDialog:I["a"],QCard:q["a"],QCardSection:O["a"],QInput:E["a"],QCardActions:D["a"]}),S()(yi,"directives",{ClosePopup:K["a"]});const wi=[{name:"MainLayout",path:"/",redirect:"/library",component:()=>Promise.all([a.e(0),a.e(3)]).then(a.bind(null,"2cae")),children:[{name:"Library",path:"/library",component:he,children:[{name:"LibraryExplore",path:"explore",component:Ot},{name:"LibraryFollowing",path:"following",component:Rt},{name:"LibraryFavorites",path:"favorite",component:Qt},{name:"LibraryEdit",path:"edit",component:Ha},{name:"LibraryChannel",path:"channel",component:nn},{name:"LibraryCreator",path:"creator",component:dn},{name:"LibraryTakeDown",path:"takedown",component:wn},{name:"LibraryIndex",path:"",component:zn}]},{name:"Downloader",path:"/downloader",component:Object(X["isElectron"])()||Object(ge["a"])()?ri:vi},{name:"Player",path:"/player",component:()=>a.e(8).then(a.bind(null,"d8f8"))},{name:"Credits",path:"/credits",component:()=>a.e(6).then(a.bind(null,"316f"))},{name:"Blockchain",path:"/blockchain",component:()=>a.e(9).then(a.bind(null,"4b4f"))},{name:"AccountSettings",path:"/account/settings",component:()=>Promise.all([a.e(0),a.e(2)]).then(a.bind(null,"6b91"))},{name:"BasicSetting",path:"/basicSetting",component:()=>Promise.all([a.e(0),a.e(5)]).then(a.bind(null,"9ff7"))},{name:"AdvanceSetting",path:"/advanceSetting",component:()=>Promise.all([a.e(0),a.e(4)]).then(a.bind(null,"154e"))},{name:"Development",path:"/development",component:()=>Promise.resolve().then(a.bind(null,"39df"))}]},{name:"Error",path:"*",component:()=>a.e(10).then(a.bind(null,"183d"))}];var ki=wi;n["a"].use(o["a"]);const Si=o["a"].prototype.push;o["a"].prototype.push=function(e){return Si.call(this,e).catch((e=>e))};let Ci=null;function xi(){return Ci}t["a"]=function(){const e=new o["a"]({scrollBehavior:()=>({x:0,y:0}),routes:ki,mode:"history",base:"/"});return Ci=e,e}},"61dc":function(e,t,a){"use strict";a("d34c")},6422:function(e,t,a){"use strict";a.d(t,"e",(function(){return i})),a.d(t,"a",(function(){return r})),a.d(t,"g",(function(){return s})),a.d(t,"c",(function(){return l})),a.d(t,"d",(function(){return c})),a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return h}));a("a1c1"),a("de6c");var n=a("4fd2");const o=(e,t="0",a=2)=>(t.repeat(a)+e).slice(-a),i=e=>{if("number"!==typeof e)return"-";const t=Math.floor(e/1e3),a=t%60,n=(t-a)/60;if(isNaN(a))return"-";if(n<60)return`00:${o(n)}:${o(a)}`;const i=n%60,r=(n-i)/60;return r>23?"> 24h":`${o(r)}:${o(i)}:${o(a)}`},r=(e,{byte:t=!0,gb:a=!0,fix:n=2}={})=>{if("number"!==typeof e)return"-";if(e<1e3&&t)return e.toFixed(2)+" Byte";const o=e/1e3;if(isNaN(o))return t?"0 Byte":"0 KB";if(o<1e3)return o.toFixed(n)+" KB";const i=o/1e3;if(i<1e3||!a)return i.toFixed(n)+" MB";const r=i/1e3;return r.toFixed(n)+" GB"},s=e=>"number"!==typeof e?"0%":1===e?"100.00%":e>.9999?"99.99%":(100*e).toFixed(2)+"%",l=e=>{const t={icon:"insert_drive_file",tooltip:"unknown"};if(0===e.length)return t;if(e.length>1)return{icon:"folder",tooltip:"folder"};const a=e[0].match(/\.[^.]+?$/);if(!a)return t;const o=a[0].substring(1);return Object(n["b"])(o)?{icon:"audio_file",tooltip:"audio"}:Object(n["c"])(o)?{icon:"video_file",tooltip:"video"}:["ass","vtt","srt"].includes(o)?{icon:"subtitles",tooltip:"subtitle"}:["jpg","jpeg","png","bmp","gif","webp"].includes(o)?{icon:"image",tooltip:"image"}:["zip","rar","gzip","gz","tar"].includes(o)?{icon:"folder_zip",tooltip:"zip"}:["txt","text"].includes(o)?{icon:"description",tooltip:"text"}:t},c=()=>navigator.userAgent.includes("Windows NT"),d=/(\/private)?\/var\/mobile\/Containers\/Data\/Application\/[a-zA-Z0-9-]+\/Documents\//,u=e=>e.match(d)?e.replace(d,""):e,_=(e,t=[],a=!1)=>{const n=c()||a?"\\":"/",o=e.map((e=>e.split(n))),i={};for(const s of o){let e=i;for(const t of s)e[t]||(e[t]={}),e=e[t]}let r=i,l=null,d="";try{do{const e=Object.keys(r)[0];d=d+e+n,l=r,r=r[e]}while(1===Object.keys(r).length)}catch(m){return null}d=d.split(n).slice(0,-1).join(n);const _={[d]:l[Object.keys(l)[0]]},p=(e,a="")=>{const o=Object.keys(e)[0],i=a?a+n+o:o,r=e[o];if(r&&Object.keys(r).length>0)return{label:u(o),path:u(i),fullPath:i,children:Object.keys(r).map((e=>p({[e]:r[e]},i)))};const l=t.find((e=>e.path===i)),c=u(o),d=c.length>52?c.slice(0,4)+"..."+c.slice(-40):c;return{progress:l?s(l.progress):"-",done:1===l.progress,label:d,fullPath:i,path:i}};return p(_)},p=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate(),m=e=>[e.getFullYear(),e.getMonth()+1,e.getDate()].map((e=>o(e))).join("-"),h=(e,t,a=navigator.language)=>{if(!e)return"-";const n=new Date(e),o=new Date;return p(n,o)?n.toLocaleTimeString(a):(o.setDate(o.getDate()-1),p(n,o)?t?t("yesterday"):"yesterday":(o.setDate(o.getDate()-1),p(n,o)?t?t("before_yesterday",{empty:m(n)}):"before yesterday":m(n)))}},6432:function(e){e.exports=JSON.parse('{"lib_index":"Rumah","lib_edit":"Menerbitkan","lib_publish":"Menerbitkan","lib_explore":"Mengeksplorasi","lib_following":"Mengikuti","lib_favorite":"Favorit Lokal","lib_local_favorites":"Favorit Lokal","lib_channel":"Saluran","lib_submit":"Kirim","lib_from_network":"Menggunakan database terdesentralisasi dari jaringan","welcome_to_lib":"Selamat datang di ${displayName} Perpustakaan Media","register_or_login":"Daftar/Masuk","lib_recommend":"Menyarankan","lib_recommend_desc":"Selamat datang di ${displayName} Perpustakaan! Perpustakaan ini menggunakan database terdesentralisasi dari jaringan. Untuk mulai menggunakannya, Anda perlu mengikuti beberapa saluran.","follow_any_channel_to_continue":"Ikuti saluran apa pun untuk melanjutkan","follow_channels_and_continue":"Ikuti saluran {0} dan lanjutkan","show_more_for_me":"Tampilkan lebih banyak untuk saya","no_more_recommend":"Tidak ada lagi rekomendasi","key":"Kunci","create_key":"Buat kunci","save_key":"Simpan kunci","save_key_file":"Apakah Anda ingin menyimpan kunci Anda sebagai file?","import_key":"Kunci impor","import":"Impor","invalid_key":"Kunci tidak sesuai","back_to_top":"Kembali ke atas","search_for_channel":"Telusuri ID saluran","search_channel_no_result":"Tidak dapat menemukan saluran dengan ID {0}","please_input_channel_id":"Masukkan ID saluran","welcome_help_text":"Ini adalah perpustakaan media terdesentralisasi. Anda membutuhkan\\n untuk membuat akun untuk database ini. Kami akan\\n menghasilkan kunci pribadi untuk Anda secara otomatis.\\n Jika Anda sudah memiliki kunci, Anda juga dapat mengimpor\\n itu disini.","welcome_key_text":"Setelah Anda masuk, silakan klik tombol [SAVE KEY].\\n di pojok kanan bawah untuk menyimpan kunci pribadi Anda.\\n Jika Anda kehilangan kunci, Anda mungkin tidak dapat masuk lagi.","redirect_to_recommend":"Sepertinya Anda belum mengikuti saluran mana pun. Mengalihkan ke halaman [Jelajahi].","channel":"Saluran","follow":"Mengikuti","unfollow":"Berhenti mengikuti","following":"Mengikuti","share":"Membagikan","unfollow_confirm":"Apakah Anda yakin untuk berhenti mengikuti saluran ini? Semua postingan saluran ini di linimasa Anda akan dihapus.","follow_failed_hint":"Operasi masih tertunda di latar belakang. Jika operasi tidak diterapkan untuk waktu yang lama, harap mulai ulang aplikasi dan coba lagi.","block":"Memblokir","unblock":"Buka blokir","blocked":"Diblokir","block_channel":"Blokir saluran ini","block_channel_confirm":"Blokir saluran akan menghapusnya dari garis waktu Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","block_creator":"Blokir pembuat saluran ini","unblock_creator":"Bebaskan pembuat saluran ini","block_creator_confirm":"Pembuat blok akan menghapus semua saluran yang dibuat oleh pembuat ini dari linimasa Anda. Anda dapat mengelola daftar blokir Anda di pengaturan akun.","share_url_copied":"Bagikan URL disalin ke clipboard Anda","follow_time":"Ikuti waktu","update_time":"Perbarui waktu","search":"Mencari","type":"Jenis","added":"Ditambahkan","click_to_task":"Klik untuk pergi ke tugas","lib_already_added":"Anda telah menambahkan video ini","description":"Keterangan","poster":"Poster","channel_poster":"Poster saluran","preview":"Pratinjau","creator":"Pencipta","creator_detail":"Detail pencipta","loading_creator":"Memuat info kreator","wait_for_creator_loaded":"Harap tunggu info kreator dimuat.","follower":"Pengikut","followers":"Pengikut","follower_list":"Daftar pengikut","user":"Pengguna","channel_title":"Judul saluran","channel_id":"ID saluran","post_title":"Judul postingan","post_id":"ID pos","import_data_from_excel":"Impor data dari excel","set_excel_keys":"Atur kunci excel","excel_import_succeded":"Impor Excel berhasil","excel_import_success_msg":"{0} baris siap untuk ditambahkan, {1} tidak valid dan {2} item duplikat diabaikan","cannot_find_channel":"Tidak dapat menemukan saluran","cannot_find_posts":"Tidak dapat menemukan postingan","add_channel":"Tambahkan saluran","add_post":"Tambahkan postingan","edit_channel":"Edit saluran","channel_setting":"Pengaturan saluran","edit_post":"Sunting pos","edit_posts":"Mengedit posting","channel_detail":"Detail saluran","remove":"Menghapus","remove_channel":"Hapus saluran","remove_channel_confirm":"Yakin ingin menghapus postingan ini? Ini tidak dapat dipulihkan.","remove_post":"Hapus postingan","remove_post_confirm":"Yakin ingin menghapus saluran ini? Ini tidak dapat dipulihkan.","preview_mode":"Mode Pratinjau","preview_mode_desc":"Ini adalah pratinjau saluran Anda. Semua tarif film ditampilkan di sini.","edit_user_profile":"Edit profil pengguna","name":"Nama panggilan","avatar":"Avatar","no_following":"Tidak ada saluran berikut. Klik untuk pergi","no_recommend":"Tidak ada saluran yang direkomendasikan. Klik untuk pergi","first_recomment_msg":"Mungkin perlu beberapa saat jika ini adalah pertama kalinya aplikasi diluncurkan.","invalid_image":"Gambar tidak valid","image_not_reachable":"Url gambar ini tidak dapat dijangkau.","channel_not_found":"Saluran tidak ditemukan","cannot_get_channel_info":"Tidak bisa mendapatkan info saluran. Saluran ini mungkin dihapus oleh pembuatnya dan tidak tersedia lagi.","validate_error":"Validasi kesalahan","validate_user_name_no_space":"Nama pengguna tidak boleh mengandung spasi","validate_url_no_space":"URL tidak boleh mengandung spasi","validate_user_name_length":"Nama pengguna harus memiliki panjang antara {0} dan {1}","validate_user_desc_length":"Deskripsi pengguna tidak boleh lebih dari {0} karakter","validate_user_avatar_url":"Avatar pengguna harus url dengan kurang dari 2048 karakter","validate_channel_title_length":"Judul saluran harus memiliki panjang antara 1 dan 100","validate_channel_desc_length":"Deskripsi saluran harus memiliki panjang antara 10 dan 300","validate_channel_image_url":"Pratinjau saluran harus berupa url dengan kurang dari 2048 karakter","validate_post_title_length":"Judul posting harus memiliki panjang antara 1 dan 100","validate_post_desc_length":"Deskripsi postingan harus memiliki panjang antara 10 dan 300","validate_post_image_url":"Poster harus url dengan kurang dari 2048 karakter","validate_post_url":"URL ${displayName} tidak valid","validate_post_url_length":"${displayName} URL tidak boleh lebih dari 2048 karakter","film_rate":"Tingkat film","set_film_rate":"Tetapkan kecepatan film","select_a_rate_before_enter":"Anda harus memilih kecepatan film sebelum masuk ke perpustakaan media.","library_available_rate":"Tingkat film yang tersedia di perpustakaan","rate_g":"G – Audiens Umum","rate_g_desc":"Semua umur diterima. Tidak ada yang menyinggung perasaan orang tua karena dilihat oleh anak-anak.","rate_pg":"PG – Disarankan Bimbingan Orang Tua","rate_pg_desc":"Beberapa bahan mungkin tidak cocok untuk anak-anak. Orang tua dihimbau untuk memberikan “bimbingan orang tua”. Mungkin berisi beberapa materi yang mungkin tidak disukai orang tua untuk anak kecil mereka.","rate_pg_13":"PG-13 – Orang Tua Sangat Diwaspadai","rate_pg_13_desc":"Beberapa materi mungkin tidak pantas untuk anak di bawah 13 tahun. Orang tua diimbau untuk berhati-hati. Beberapa materi mungkin tidak pantas untuk pra-remaja.","rate_r":"R – Dibatasi","rate_r_desc":"Di bawah 17 tahun membutuhkan pendamping orang tua atau wali dewasa. Berisi beberapa materi dewasa. Orang tua didesak untuk mempelajari lebih lanjut tentang film tersebut sebelum membawa serta anak-anak mereka yang masih kecil.","rate_nc_17":"NC-17 – Khusus Dewasa","rate_nc_17_desc":"Tidak Ada yang Berusia 17 Tahun ke Bawah yang Diakui. Jelas dewasa. Anak-anak tidak diterima.","set_as_private":"Tetapkan sebagai pribadi","hide_in_explore":"Sembunyikan saluran ini di halaman jelajahi","hidden":"Tersembunyi","select_a_rate":"Silakan pilih tarif film","select_from_tasks":"Pilih dari tugas","import_from_magnet":"Impor dari magnet:?...","input_magnet_url":"Masukan magnet:? url","task_title":"Judul tugas","set_title":"Tetapkan judul","add_to_local_favorites":"Tambahkan ke favorit lokal","remove_from_local_favorites":"Hapus dari favorit lokal","removed_favorite":"Favorit dihapus","import_or_export_favorites":"Impor/Ekspor Favorit","export_local_favorites":"Ekspor favorit lokal sebagai cadangan","import_favorites_file":"Impor file favorit","not_a_favorite_file":"File ini bukan file cadangan favorit","connection_status":"Status hubungan","gun_server_list":"Node Cache","custom_nodes":"Node cache khusus","custom_nodes_hint":"Node cache khusus akan diterapkan setelah aplikasi diluncurkan kembali","wait_for_reboot":"Menunggu reboot...({seconds}s)","reboot_now":"Nyalakan ulang","reboot_later":"Mulai ulang nanti","peer_list":"Node Langsung","server":"URL simpul","peer":"Rekan","peer_id":"ID simpul","connection":"Koneksi","data_source":"Sumber data","sync":"Sinkronkan","syncing":"Menyinkronkan","sync_completed":"Sinkronisasi selesai","got_all_post":"Anda sudah mendapatkan semua posting","placeholder_channel_title":"Nama Saluran Anda","placeholder_channel_desc":"Deskripsi tentang saluran ini","placeholder_post_title":"Nama Film (Tahun)","placeholder_post_desc":"Deskripsi tentang film ini","private_channel":"Saluran pribadi","creator_blocked":"Kreator diblokir","go_to_library":"Pergi ke perpustakaan?","go_to_library_channel_msg":"Apakah Anda ingin pergi ke saluran perpustakaan {0}?","magnet_does_not_have_name":"Magnet ini:? url tidak memiliki nama, Anda perlu menambahkan judul posting terlebih dahulu.","no_available_post":"Tidak ada pos yang tersedia","following_channel_no_post":"Semua saluran Anda berikut tidak memiliki pos yang tersedia. Ini mungkin disebabkan oleh kesalahan jaringan. Jika Anda telah mengikuti beberapa saluran, postingan dapat dimuat nanti.","share_to_library":"Bagikan ke perpustakaan","quick_start":"Mulai cepat","quick_start_desc":"Mulailah membuat postingan dengan tugas atau file","select_file":"Pilih file...","select_folder":"Pilih folder...","post_options":"Opsi pos","channel_options":"Opsi saluran","create_new_channel":"Buat saluran baru","use_existed_channel":"Gunakan saluran yang ada","select_existed_channel":"Pilih saluran yang ada","uploaded_by":"{title} diunggah oleh {name}","created_by":"{title} dibuat oleh {name}","creating_new_channel":"Membuat saluran baru...","created_new_channel":"Saluran baru dibuat","creating_new_post":"Membuat postingan baru...","created_new_post":"Posting baru dibuat","create_new_post":"Buat postingan baru","quick_start_timeout":"{0} batas waktu habis. Ini mungkin disebabkan oleh kesalahan jaringan. Coba lagi nanti.","file_too_large":"Berkas terlalu besar","file_too_large_msg":"File ini lebih besar dari 4GB ({size}) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk melanjutkan?","resolving_folder_files":"Menyelesaikan file folder...","folder_too_large":"Folder terlalu besar","folder_too_large_msg":"File dalam folder ini lebih besar dari 4GB ({size} total) dan mungkin membutuhkan waktu lama untuk menyiapkan tugas. Apakah Anda yakin untuk mengunggah?","creating_new_task":"Membuat tugas baru...","cannot_create_task":"Tidak dapat membuat tugas","cannot_create_task_msg":"Hal ini dapat disebabkan oleh beberapa kesalahan. Jika tugas dibuat dengan benar, Anda dapat memeriksa daftar tugas nanti.","cannot_get_task_name":"Tidak bisa mendapatkan nama tugas. Anda harus memasukkannya terlebih dahulu.","remove_old_task":"Hapus tugas lama","remove_old_task_desc":"Mode web hanya dapat membuat satu tugas sekaligus. Apakah Anda ingin menghapus tugas lama?","subtitle_list":"Daftar subtitle","optional":"opsional","with_subtitle":"Dengan subtitel {language}","maximumSubtitleNum_limit":"Jumlah subtitle telah mencapai maksimum","add_subtitle_url":"Tambahkan tautan unduhan subtitle","cannot_add_subtitle":"Gagal menambahkan subtitel","cannot_add_subtitle_msg":"Bahasa subtitle tidak dipilih atau tautan unduhan tidak valid.","support_subtitle_type":"Hanya subtitle dalam format srt dan vtt yang didukung.","recommend_opensubtitles":"Disarankan untuk menggunakan link atau id download subtitle di www.opensubtitles.org.","take_down":"Menurunkan","serious_violation":"Pelanggaran Berat","copyright_disputes":"Sengketa Hak Cipta","adults_only":"Hanya untuk orang dewasa","takedown_reason":"Alasan penghapusan","takedown_mode":"Modus penghapusan","admins":"Admin","takedown_user":"Hapus kreator ini","takedown_channel":"Hapus saluran ini","takedown_post":"Hapus postingan ini","select_takedown_reason":"Pilih alasan penghapusan","takedown_invalid_reason":"Alasan penghapusan tidak valid","takedown_invalid_user_id":"Id pengguna tidak valid. Id harus menyertakan 87 karakter","takedown_invalid_channel_id":"Id saluran tidak valid. ID harus menyertakan 20 karakter","takedown_invalid_post_id":"ID pos tidak valid. ID harus menyertakan 20 karakter","takedown_management":"Turunkan manajemen","users":"Pengguna","channels":"Saluran","posts":"Posting","you":"Anda","preset":"Prasetel","admin":"Admin","committee":"Komite","about_takedown_mode":"Tentang mode penghapusan:\\nPreset: Dikonfigurasi di repositori github. Semuanya akan dihapus dari perpustakaan.\\nAdmin: Siapa pun yang dipilih oleh admin akan dihapus.\\nKomite: Setidaknya setengah dari suara admin akan dihapus.","cannot_edit_preset":"Anda tidak dapat mengedit baris ini karena merupakan baris preset","cannot_edit_not_vote":"Anda tidak dapat mengedit baris ini karena Anda belum memilihnya","remove_vote":"Hapus suara Anda","post_preload_failed":"Gagal mempramuat pos ini. Tautan unduhan mungkin sudah kedaluwarsa, sehingga postingan ini tidak dapat langsung diputar.","about_cache_node":"Tentang simpul cache","edit_cache_node":"Edit simpul cache","create_cache_node":"Buat simpul cache","about_cache_node_desc":"${displayName} menggunakan server gun sebagai node cache. Anda dapat mengedit node khusus di pengaturan sebelumnya","learn_how_to_deploy_gun":"Pelajari cara menerapkan server senjata Anda sendiri","repeat_add":"Tugas telah ditambahkan, Tolong jangan tambahkan lagi","upload":"Mengunggah","download":"Unduh","delete":"Menghapus","delete_task":"Hapus tugas","delete_confirm_message":"Hapus tugas ini? Ini tidak dapat dibatalkan","also_delete_files":"Hapus juga file","default_delete_files":"Hapus default file yang diunduh setelah menghapus tugas","not_now":"Tidak sekarang","delete_autoupload_confirm":"Tugas ini berisi file yang Anda masukkan ke direktori unggah otomatis. Hapus tugas ini juga akan menghapus file.","delete_anyway":"Tetap hapus","upload_too_many_files":"Unggah terlalu banyak file","ask_if_unlimit_upload_amount":"Direktori upload otomatis berisi terlalu banyak file. Apakah Anda ingin menonaktifkan batasan jumlah unggahan? *Ini dapat menyebabkan masalah kinerja","disable_limitation":"Nonaktifkan batasan","not_length":"Operasi multi file tidak didukung saat ini, Mohon kerjasamanya","download_torrent":"Unduh berkas","upload_torrent":"Unggah data","files":"File","file":"Mengajukan","folder":"Map","start_all":"Mulai semua","pause_all":"Jeda semua","remove_all":"Hapus semua","upload_all":"Unggah semua","clear_history":"Hapus riwayat","pause_all_finish_payments":"Ini akan menyelesaikan semua pembayaran.","accelerating":"Mempercepat","link_task":"Tugas tautan","torrent_task":"Tugas berkas","ok":"OKE","cancel":"Membatalkan","download_directory_position":"Unduh posisi direktori","torrent_file":"berkas tugas","magnetic_link_incorrect":"Format tautan salah","delete_fail":"Hapus gagal","pause":"Berhenti sebentar","paused":"Dijeda","stop_torrent":"Berhenti","seed":"Benih","resume":"Melanjutkan","downloading":"Mengunduh","downloaded":"Diunduh","uploading":"Mengunggah","auto_uploading":"Mengunggah otomatis","uploaded":"Diunggah","pending":"Menunggu tugas lainnya","verifying":"Memverifikasi","waiting_for_verify":"Menunggu verifikasi","seeding":"Penyemaian","completed":"Lengkap","status":"Status","task_name":"Nama tugas","size":"Ukuran","progress":"Kemajuan","sort":"Menyortir","ascending":"Naik","descending":"Menurun","file_loading":"Memuat berkas...","loading":"Memuat","unknown_status":"Tidak dikenal","play_while_downloading":"Bermain...","upload_or_play":"Unggah / Putar","play":"Bermain","ask_if_upload_file":"Unggah data?","ask_if_upload_or_play":"Unggah atau putar file?","torrent_error":"Kesalahan saat menambahkan tugas:","no_peers":"Coba lagi lebih dari {0} kali dan tidak ada peer yang tersedia","torrent_exists":"Tugas sudah ada.","show_origin_torrent":"Dapatkan file atau url tugas asli","show_directory":"Buka direktori torrent ini","task_num":"Tugas","total_upload_speed":"Kecepatan mengunggah","total_download_speed":"Kecepatan unduh","path_missing":"Kesalahan: tidak dapat menemukan jalur torrent","origin_not_found":"Tidak dapat menemukan info tugas asal.","text_copied":"Url magnum disalin ke clipboard Anda","copy_magnet_uri":"Salin magnet:? URI","copy_download_uri":"Salin URI unduhan","copy_share_uri":"Salin bagikan URI","uri_copied":"URI berhasil disalin ke clipboard Anda","uri_copy_failed":"Gagal menyalin uri","more":"Lagi...","toggle_list_mode":"Beralih mode daftar","comment":"komentar","operations":"Operasi","open_directory":"Buka direktori","no_downloading_task":"Tidak ada tugas mengunduh","remove_all_downloading_tasks":"Hapus semua tugas pengunduhan?","remove_all_upload_tasks":"Hapus semua tugas upload?","remove_autoupload_files":"Hapus file unggahan otomatis","remove_all_history":"Hapus semua histori?","remaining":"Tersisa","created_time":"Waktu yang diciptakan","used_time":"Waktu yang digunakan","completed_time":"Selesai waktu","yesterday":"Kemarin","before_yesterday":"{empty}","earlier":"Lebih awal","miss_file":"Beberapa file hilang","delete_miss_file_task":"Ada file fome yang hilang di {0}.","common_peer":"Rekan biasa","ab_peer":"${displayName} sesama","ab_peer_verified":"Terverifikasi ${displayName} peer","ab_peer_available":"${displayName} peer tersedia","alphabiz_accelerating":"${displayName} percepatan","income":"Penghasilan","income_info":"Pendapatan(hari ini/total)","total_income_info":"Penghasilan: {0}(hari ini) / {1}(total)","login_to_see_income":"Login untuk melihat statistik pendapatan","credit_cost":"Biaya kredit","downloaded_by_payment":"Diunduh oleh Pembayaran","file_not_found":"Tidak dapat menemukan file ini di lokal","no_task":"Tidak bertanya","no_matched_task":"Tidak ada tugas yang cocok","space_not_enough":"Ruang disk tidak cukup","need_more_space":"Perlu {0} lebih banyak ruang tetapi disk saat ini memiliki {1} gratis ({2} dicadangkan). Tugas dijeda. Pramuat perpustakaan dinonaktifkan. Anda dapat mengaktifkannya kembali di [Pengaturan - Lanjutan].","seeders":"Seeder","last_update":"Pembaharuan Terakhir","connecting":"Menghubungkan","connected":"Terhubung","request_timed_out":"Waktu permintaan habis","connection_failed":"Koneksi gagal","invalid_download_url":"URL unduhan tidak valid","download_link":"tautan unduhan","empty_files":"Tidak ada file dalam direktori","duplicate_task":"Tugas duplikat","duplicate_tracker":"Pelacak duplikat","this_task_not_ready":"Tugas ini belum siap. Jeda tugas ini akan langsung menghapusnya.","some_task_not_ready":"Beberapa tugas belum siap. Jeda tugas ini akan langsung menghapusnya.","failed_to_delete_files":"Gagal menghapus file","failed_to_delete_files_desc":"Gagal menghapus beberapa file tugas. Anda mungkin perlu menghapusnya secara manual","unknown_error":"Kesalahan tidak diketahui: {0}","more_files_are_not_shown":"({0} lebih banyak file tidak ditampilkan karena alasan kinerja)","no_available_file":"Tidak ada berkas yang tersedia. Harap tunggu tugas siap.","service_worker_error":"Tidak dapat memuat ServiceWorker untuk diputar. Browser Anda mungkin tidak mendukung fitur ini, atau ServiceWorker tidak diaktifkan. Anda mungkin perlu memuat ulang halaman ini dan mencoba lagi.","add_task_first":"Anda perlu menambahkan tugas terlebih dahulu.","player_task_time":"Pemain membutuhkan waktu terlalu lama untuk bersiap bermain. Mungkin ada yang salah dengan tugas itu.","web_mode_hint":"Mode web ${displayName} hanya mendukung rekan WebRTC. Untuk pengalaman terbaik, silakan unduh ${displayName} Aplikasi Desktop.","web_mode_task_hint":"Klik tombol di bawah untuk menambahkan tugas. Anda hanya dapat menambahkan satu tugas pada satu waktu.","save_to_local":"Simpan ke lokal","save_as_zip":"Simpan sebagai ZIP","creating_save_file":"Membuat file penyimpanan...","upload_as_one_directory":"Unggah sebagai satu direktori","upload_as_single_files":"Unggah sebagai file tunggal","web_mode_upload_single":"Anda hanya dapat mengunggah satu file dalam mode web","download_success":"Unduh dengan sukses","download_fail":"Unduhan gagal","wait_for_downloaded_to_share":"Harap tunggu tugas diunduh sebelum berbagi.","download_with_cellular":"Unduh tugas menggunakan seluler","download_with_cellular_desc":"Anda menggunakan jaringan seluler. Mengunduh tugas dengan seluler mungkin memerlukan biaya tambahan dari operator Anda.","download_with_cellular_confirm":"Masih mengunduh dengan seluler","language":"Bahasa","appearance":"Penampilan","darkModeSystem":"Sistem","darkModeLight":"Lampu","darkModeDark":"Gelap","basic_setting":"Dasar","hideMenu":"Sembunyikan Menu Aplikasi (Hanya Windows & Linux)","autoHide":"Sembunyikan Jendela Otomatis","autoStart":"Buka saat masuk","restore":"Pertahankan ukuran dan posisi jendela saat keluar","autoStartUnfinished":"Secara otomatis melanjutkan semua tugas yang belum selesai","default_download_path":"Jalur Default","download_directory":"Unduh Direktori","upload_directory":"Unggah Direktori","enable_auto_upload":"Aktifkan unggahan otomatis","unlimit_upload_amount":"Batasi jumlah unggahan","unlimit_upload_warning":"Izinkan mengunggah file dalam jumlah besar. Hal ini dapat menyebabkan masalah kinerja","start":"Rintisan","transport_setting":"Penularan","upload_limit":"batas unggahan","download_limit":"batas unduhan","payed_user_share_rate":"Tingkat berbagi pengguna berbayar","unlimited":"Tak terbatas","limit_input_error":"Jumlah batas harus positif","BT_setting":"Pengaturan Tugas","saveLinkSeed":"Simpan tautan sebagai file tugas","autoDownload":"Unduh tautan dan konten secara otomatis","continuousSeeding":"Terus penyemaian sampai menghentikannya secara manual","seedSharingRate":"Rasio Benih","seedTime":"Waktu Benih (menit)","task_manage":"Manajemen tugas","maximumDownloadNum":"Tugas aktif maksimum","maximumConnectionsNum":"Koneksi maksimum per server","range_error":"Kisaran harus antara {0} dan {1}","random":"acak","breakpointContinuation":"Melanjutkan","automaticSkip":"Tampilkan pengunduhan secara otomatis setelah menambahkan tugas","afterNotification":"Pemberitahuan setelah pengunduhan selesai","deleteConfirm":"Tidak diperlukan konfirmasi sebelum menghapus tugas","submit":"Simpan & Terapkan","discard":"Membuang","reset":"Mengatur ulang","reset_all_settings":"Atur ulang semua pengaturan?","preferences_resetted":"Preferensi disetel ulang","traditional_chinese":"Cina tradisional","japanese":"Jepang","english":"Bahasa inggris","chinese":"Cina disederhanakan","advancedSettings":"Canggih","autoUpdate":"Pembaruan Otomatis","autoCheckUpdate":"Periksa pembaruan secara otomatis","proxy":"Proksi","useProxyService":"Aktifkan Proksi","trackerService":"Server Pelacak","recommendUse":"Direkomendasikan","autoUpdateTrackerServiceList":"Perbarui daftar pelacak setiap hari secara otomatis","manualUpdateTracker":"Pembaruan manual","manualUpdateSuccess":"Berhasil memperbarui server pelacak","manualUpdateFail":"Gagal memperbarui dari:","listenPort":"Mendengarkan Pelabuhan","BTlistenPort":"Pelabuhan Transmisi Data","DHTlistenPort":"Port Hash Terdistribusi","protocols":"Protokol yang Kompatibel","setDefaultClientForFollowingProtocols":"Tetapkan sebagai klien default untuk protokol berikut","magnetUrl":"Magnet","video_file":"Berkas video","audio_file":"berkas audio","security":"Keamanan","impersonateUserAgent":"Mock User-Agen","RPCauthorizationkey":"Rahasia RPC","viewDocument":"Lihat Manual Rahasia RPC","developer":"Pengembang","applicationLogPath":"Jalur log aplikasi","downloadSessionPath":"Unduh jalur sesi","resetDownloadSessionRecord":"Setel ulang sesi unduhan","restoreInitialSettings":"Atur Ulang Pabrik","preferences_set_successfully":"Simpan preferensi berhasil!","preferences_set_fail":"Simpan preferensi gagal!","change_not_save":"Perubahan tidak disimpan","discard_all_changes":"Buang semua perubahan dan tinggalkan?","stay_in_page":"Tetap di halaman","disk_usage":"Penggunaan disk","pause_if_less_space":"Jeda dan beri tahu jika ruang kurang dari (MB)","default_video_player":"Pemutar video bawaan","video_cache_time":"Streaming tembolok putar","minutes":"menit","system_default":"Default Sistem","media_player":"Pemutar Media","library_film_rate":"Tingkat film yang tersedia","library_show_explore":"Tampilkan halaman [Jelajahi].","library_setting":"Pengaturan perpustakaan","library_sync_setting":"Pengaturan sinkronisasi perpustakaan","keychain_sync_status":"Status sinkronisasi rantai kunci","sync_with_aws":"Sinkronkan Rantai Kunci dengan Layanan Web Amazon","backup_to_local":"Cadangkan ke file lokal","enable_sync_with_aws":"Aktifkan sinkronisasi dengan AWS","disable_sync_with_aws":"Nonaktifkan sinkronisasi dengan AWS","disable_sync_with_aws_desc":"Ini akan menghapus kunci yang disimpan di server. Harap pastikan Anda telah mengekspor kunci Anda.","input_independent_password":"Masukkan kata sandi independen","change_independent_password":"Ubah kata sandi independen","password_error":"Password error","password_invalid":"Kata sandi tidak valid","key_existed":"Kunci ada","key_not_found":"Kunci tidak ditemukan","library_recommend":"Perpustakaan merekomendasikan","show_all_channels":"Tampilkan semua saluran di halaman rekomendasi perpustakaan","not_logged_in":"Belum masuk","login_to_continue":"Masuk untuk melanjutkan","mnemonic_code":"Kode mnemonik","wordlist":"Daftar kata","restore_code":"Pulihkan dari kode","generate_code":"Hasilkan kode","export_mnemonic_code":"Ekspor kode mnemonik","import_mnemonic_code":"Impor kode mnemonik","print":"Mencetak","save_as_txt":"Simpan sebagai txt","save_as_pdf":"Simpan sebagai pdf","from_file":"Dari file","not_valid_mnemonic_code":"Ini bukan kode mnemonik yang valid","cannot_parse_code_as_key":"Tidak dapat mengurai kode mnemonik ini sebagai kunci perpustakaan","import_key_hint":"Apakah Anda yakin akan mengimpor kunci ini? Ini akan memulihkan kunci lama Anda di perpustakaan.","import_key_confirm":"Ya, impor itu.","library_preload":"Pramuat tugas dari perpustakaan","show_preload":"Tampilkan tugas pramuat","set_download":"Tetapkan direktori unduhan","set_download_desc":"Untuk versi macOS App Store, direktori unduhan default ada di kotak pasir Aplikasi, dan akan dihapus setelah aplikasi dihapus. Jika Anda ingin menyimpan file unduhan, Anda harus memilih direktori unduhan yang berbeda secara manual.","home":"Rumah","home_caption":"Unduh/Unggah dan File Media","library":"Perpustakaan","library_caption":"Jelajahi sumber daya media","player":"Pemain","player_caption":"Pemutar Media","credits":"Kredit","credits_caption":"Periksa Saldo Akun","account":"Akun","account_caption":"Masuk/Daftar/Manajemen","settings":"Pengaturan","settings_caption":"Pengaturan untuk Aplikasi, Pemain, Akun","development":"Perkembangan","development_caption":"Mode Pengembang untuk Penggunaan Internal","basic":"Dasar","basic_caption":"Pengaturan dasar","advanced":"Canggih","advanced_caption":"Pengaturan lanjutan","blockchain":"Dompet","blockchain_caption":"${displayName} Dompet Terdesentralisasi","internal_notice":"Pemberitahuan Rilis Internal","release_notes":"Catatan rilis","terms_and_conditions":"syarat dan Ketentuan","license_and_listen_notices":"Lisensi dan Mendengarkan Pemberitahuan Sumber Terbuka","close":"Menutup","success":"Kesuksesan","fail":"Gagal","account_email_invalid_address":"alamat email salah","account_email_invalid_domain":"Domain email tidak valid","account_email_unknown_status":"Status pengiriman email tidak diketahui","account_email_unavailable_address":"Alamat email tidak tersedia","account_email_suppressed_address":"Alamat email yang ditekan","account_loading":"Memuat...","account_is_required":"Dibutuhkan","account_sign_in_your_account":"Masuk","account_username":"Nama belakang","account_username_email_phone":"Nomor telepon atau email","account_password":"Kata sandi","account_new_password":"Kata sandi baru","account_re_enter_password":"Masukkan Kembali password","account_password_not_equal":"Dua kata sandi tidak sama","account_new_password_same":"Passwordnya sama dengan password aslinya","account_forgot_your_password":"lupa kata sandi Anda?","account_reset_password":"Atur ulang kata sandi","account_sign_in":"Masuk","account_signed_in":"Masuk","account_sign_up":"Mendaftar","account_find_your_account":"Temukan akun Anda","account_enter_your_username":"Masukkan nomor telepon atau email Anda","account_search":"Mencari","account_email_sent_tip":"Email dengan kode verifikasi telah dikirim ke email Anda:","account_phone_sent_tip":"SMS dengan kode verifikasi telah dikirim ke ponsel Anda:","account_email_phone_sent_tip":"Email dan SMS dengan kode verifikasi telah dikirimkan ke email dan ponsel Anda masing-masing:","account_software_token_tip":"MFA diaktifkan untuk akun Anda. Untuk menyelesaikan proses masuk, aktifkan atau lihat perangkat Anda dan ketik TOTP","account_reset_your_password":"Mereset password Anda","account_verification_code":"Kode verifikasi","account_resend_code":"Kirim ulang kode","account_code_has_been_resent":"Kode verifikasi telah dikirim ulang","account_password_has_been_reset":"Kata sandi telah diatur ulang","account_submit":"Kirim","account_sign_up_your_account":"Daftarkan akun Anda","account_fill_required_fields":"Isi bidang yang wajib diisi di bawah ini.","account_fill_optional_fields":"Isi bidang opsional di bawah ini.","account_email":"Surel","account_invitation":"Undangan","account_invitation_code":"Kode undangan","account_i_accept":"saya menerima","account_license_terms":"lisensi dan persyaratan","account_next":"Berikutnya","account_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu.","account_verify_fill_optional_fields":"Verifikasi dan isi kolom opsional.","account_nickname":"Nama panggilan","account_gender":"Jenis kelamin","account_male":"Pria","account_female":"Perempuan","account_not_say":"Tidak mengatakan","account_birthday":"Hari ulang tahun","account_phone_number":"Nomor telepon","account_locale":"Lokal","account_tip_verified":"Terverifikasi, Masuk...","account_verified":"diverifikasi","account_unverified":"tidak diverifikasi","account_signed_up":"Mendaftar","account_verify_your_identity":"Verifikasi identitas Anda","account_finish":"Menyelesaikan","account_signed_out":"Keluar","account_change_password":"Ganti kata sandi","account_change_email":"Ganti e-mail","account_change_phone_number":"Ganti nomor telepon","account_sign_out":"Keluar","account_current_password":"Kata sandi saat ini","account_re_enter_new_password":"Masukkan kembali kata sandi baru","account_personal_information":"Informasi","account_edit":"sunting","account_reset":"mengatur ulang","account_greeting":"Halo,","account_cancel":"Membatalkan","account_change":"mengubah","account_not_set":"tidak diatur","account_setting":"pengaturan","account_copy_code":"salin kodenya","account_account_setting":"Akun","account_task_page":"Tugas kredit","account_setting_caption":"Ubah Kata Sandi / Edit Informasi","account_security":"Keamanan","account_want_to_join":"Ingin bergabung?","account_sign_in_now":"Masuk","account_changed":"Berubah","account_clipboard_with_invitation_code":"Kode undangan disalin","account_clipboard_with_code":"Kode disalin","account_invitation_code_dialog_tip":"Anda akan mengirimi teman Anda email atau pesan teks dengan kode undangan:","account_available":"tersedia","account_invited":"diundang","account_used":"digunakan","account_invitation_code_sent":"Kode undangan telah dikirim","account_invitation_channel_required":"Isi minimal satu saluran undangan","account_no_verification_code":"Tidak dapat menerima kode verifikasi?","account_no_phone_number":"Tidak ada nomor telepon?","account_sign_up_by_email":"Daftar melalui email","account_no_email":"Tidak ada email?","account_sign_up_by_phone_number":"Daftar dengan nomor telepon","account_no_totp":"Tidak ada TOTP?","account_tip_no_totp":"Jika tidak ada TOTP, silahkan setup TOTP terlebih dahulu","account_setup_totp":"Siapkan TOTP","account_contact_information":"Kontak informasi","account_delete_account":"Hapus akun","account_deleted":"Dihapus","account_can_not_mfa":"MFA bermasalah?","account_set_mfa_type":"Konfigurasi MFA","account_disable_mfa":"Nonaktifkan MFA","account_disabled_mfa":"MFA yang dinonaktifkan","account_sms_mfa":"SMS MFA","account_totp_mfa":"MFA TOTP","account_totp":"TOTP","account_not_recommend":"Tidak merekomendasikan","account_oauth_sign_in_with":"Masuk dengan {provider}","account_sign_in_failed":"Gagal masuk","account_tip_oath_sign_up":"Email terkait dengan akun {provider} saat ini: {email} belum membuat akun","account_tip_confirm_delete_account":"Masukkan kata sandi akun saat ini untuk mengonfirmasi bahwa Anda ingin menghapus akun saat ini.(Akun yang dihapus tidak dapat dipulihkan)","account_tip_config_mfa":"Anda dapat memilih untuk menggunakan SMS atau sandi satu kali berbasis waktu (TOTP) sebagai autentikasi sekunder","account_error_can_not_enable_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan MFA","account_tip_can_not_enable_sms_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan SMS MFA","account_tip_can_not_enable_totp_mfa":"Anda harus mengikat alamat email dan nomor ponsel Anda untuk mengaktifkan TOTP MFA","account_tip_setup_totp":"Gunakan aplikasi seperti Authenticator untuk memindai kode QR di bawah atau menyalin kode secara manual untuk menambahkan token keamanan","account_tip_verify_totp":"Verifikasi TOTP Anda","account_link_your_social_account":"Ikat akun sosial Anda","account_unlink_your_social_account":"Lepaskan akun sosial","account_tip_confirm_link":"Yakin ingin menautkan akun saat ini ke akun {provider} Anda?","account_tip_confirm_unlink":"Apakah Anda yakin akan membatalkan akun terikat {provider} Anda?","account_tip_linking":"mengikat...","account_tip_unlinking":"Tidak mengikat...","account_linked":"Melompat","account_unlinked":"Tidak terikat","account_error_can_not_link_to_the_linked_account":"Akun sosial saat ini terikat ke akun lain","account_error_can_not_link_to_the_mismatched_email":"Akun saat ini dan alamat email akun sosial tidak konsisten","account_error_can_not_link_before_email_verified":"Akun sosial tidak dapat ditautkan karena akun saat ini tidak terikat ke email yang diverifikasi","account_tip_confirm_verify_email_phone":"Apakah akan mengirim kode verifikasi ke email dan nomor telepon akun saat ini untuk memverifikasi identitas Anda?","account_tip_confirm_verify_phone":"Apakah akan mengirim kode verifikasi ke nomor telepon saat ini untuk memverifikasi identitas Anda?","account_error_1_message_60_seconds":"Hanya satu SMS atau email yang dapat dikirim setiap 60 detik, tunggu lagi {delta} detik","account_error_10_messages_per_day":"Setiap ponsel atau email hanya dapat mengirim 10 pesan dalam waktu 24 jam","account_error_network":"Ada masalah dengan jaringan, coba lagi nanti","Network Error":"Ada masalah dengan jaringan, coba lagi nanti","account_error_user_not_exist":"pengguna tidak ada","account_error_incorrect_username_or_password":"Username atau kata sandi salah","account_error_incorrect_original_password":"Kata sandi asli salah","account_error_incorrect_password":"kata kunci Salah","account_error_username_not_found":"Nama pengguna tidak ditemukan","account_error_can_not_reset_for_no_verified":"Tidak dapat mengatur ulang kata sandi untuk akun yang belum diverifikasi","account_error_invalid_verification_code":"Kode verifikasi salah, harap coba lagi","account_error_expired_verification_code":"Kode verifikasi kedaluwarsa, harap coba lagi","account_error_password_not_long_enough":"Kata sandi tidak cukup panjang","account_error_attempt_limit_exceeded":"Batas percobaan terlampaui, silakan coba setelah beberapa saat.","account_error_password_attempts_exceeded":"Upaya sandi terlampaui.","account_error_invalid_phone_number_format":"Format nomor telepon tidak valid","account_error_no_cell_phone_prefix":"Silakan pilih awalan untuk nomor telepon","account_error_username_already_exists":"nama pengguna sudah ada","account_error_you_need_to_accept_license_terms":"Anda harus menerima lisensi dan persyaratan terlebih dahulu","account_error_inactive_code":"Kode undangan bukan kode yang diaktifkan","account_error_non_existent_code":"Kode undangan tidak ada","account_error_unexpected":"Kesalahan tak terduga","account_error_can_not_change_email_before_phone_bound":"Email tidak dapat diubah sebelum nomor telepon terikat","account_error_can_not_change_email_before_unbound_social_account":"Email tidak dapat diubah sebelum melepaskan ikatan akun sosial","account_error_can_not_change_phone_before_email_bound":"Nomor telepon tidak dapat diubah sebelum email diikat","account_error_can_not_change_email_phone_with_mfa_enabled":"Tidak dapat mengubah email atau nomor ponsel sebelum menonaktifkan MFA","account_error_not_supported_yet":"Tidak didukung saat ini","account_error_same_email":"Alamat email baru tidak boleh sama dengan alamat email asli","account_error_same_phone":"Nomor telepon baru tidak boleh sama dengan nomor telepon asli","account_error_email_not_exists":"Alamat email tidak ada","account_error_email_already_exists":"Akun dengan email yang diberikan sudah ada.","account_error_phone_already_exists":"Akun dengan nomor telepon yang diberikan sudah ada.","account_error_mfa_token_mismatch":"Ketidakcocokan Kode Token Perangkat Lunak","account_error_recaptcha_not_loaded":"Ada masalah dengan jaringan. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_recaptcha_validation_failed":"Validasi ReCAPTCHA gagal. Harap sambungkan kembali jaringan dan mulai ulang aplikasi untuk mencoba lagi.","account_error_sign_in_in_progress":"Upaya masuk tertunda sedang berlangsung","account_field_range":"Batasi input {0}-{1} karakter","account_field_only_alphanumeric":"Hanya mendukung alfanumerik","account_field_only_alphanumeric_and_symbol":"Hanya mendukung alfanumerik dan simbol","account_field_only_chinese_alphanumeric_space_underline":"Hanya mendukung alfanumerik, spasi, garis bawah","account_field_prefix_without_number_space":"Karakter pertama tidak boleh angka atau spasi","account_field_suffix_without_space":"Tidak boleh diakhiri dengan spasi","account_field_without_repeat_space":"Tidak dapat menggunakan beberapa spasi dalam satu baris","account_field_can_not_only_alphanumeric":"Anda tidak bisa hanya menggunakan huruf atau angka","account_field_must_have_number_characters":"Harus memiliki karakter angka","account_field_verification_code":"Kode verifikasi harus enam digit","account_field_invitation_code":"Kode undangan harus alfanumerik","account_field_phone_number":"Format nomor telepon tidak valid","account_invalid_email_format":"format email salah","account_sign_out_confirm":"Apakah Anda yakin untuk keluar? Ini akan menghentikan semua tugas.","account_sign_out_anyway":"Tetap keluar","account_signing_out":"Keluar...","account_request_save_settings":"Setelan tidak disimpan. Anda perlu menyimpan perubahan sebelum keluar.","pay":"Membayar","pay_with_credit":"Bayar untuk mempercepat unduhan. Membutuhkan sekitar {0} kredit","pay_with_credit_payed":"Mempercepat. Masih membutuhkan sekitar {0} kredit","create_payment":"Buat Pembayaran","pay_target":"Target","pay_for_torrent":"Bayar {0}","your_subid":"SubId Anda","your_credits":"kredit Anda","pay_point_for_data":"Bayar {0} poin untuk {1} data","auto_renew":"Aktifkan perpanjangan otomatis","transaction_details":"Detil transaksi","transaction_id":"Pengenal","transaction_payer":"Pembayar","transaction_payee":"Penerima pembayaran","transaction_category":"Kategori","transaction_changed_amount":"Jumlah yang Diubah","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Waktu penciptaan","receipt_code":"Kode Penerimaan","transfer_amount":"Jumlah transfer","code_the_receipt_code":"Salin kode tanda terima di bawah ini ke pembayar","fill_the_receipt_code":"Transfer dengan mengisi kode pembayaran yang diberikan oleh penerima pembayaran","expense":"Pengeluaran","copied":"Disalin","transfer":"Transfer","receive":"Menerima","copy":"Menyalin","withdraw_fund":"Tarik Dana","category_paydata_payer":"Biaya data","category_paydata_payee":"Pendapatan data","category_transfer":"Transfer","category_bonus":"Bonus","category_recharge":"Isi ulang","status_pending":"tertunda","status_completed":"lengkap","status_finish":"menyelesaikan","status_failed":"gagal","tip_invalid_receiver":"Kode penerima tidak valid","tip_invalid_amount":"Jumlah kredit harus mengambang dalam kisaran 0-1000 (Presisi minimum adalah 0,001)","credit_get_more":"Dapatkan lebih banyak kredit","credit_no_data":"Tidak ada data yang tersedia","credit_loading":"Memuat...","credit_not_enough_amount":"Kredit tidak cukup","credit_amount_not_enough":"Kredit tidak cukup","credit_payee_not_exist":"Penerima pembayaran tidak ada","credit_invalid_amount":"Jumlah kredit tidak valid","credit_can_not_transfer_to_yourself":"Tidak dapat mentransfer ke diri sendiri","credit_latest":"Terbaru","credit_error_network":"Ada masalah dengan jaringan, coba lagi nanti","add_subtitles":"Tambahkan Subtitle","open_file":"Membuka file...","advanced_options":"Opsi lanjutan","title":"Judul","location":"lokasi","subtitle_file":"file subtitle","unsupported_subtitle_type":"Jenis file {0} bukan jenis teks film yang didukung","not_default_player":"Pemutar video default tidak disetel","this_is_an_audio_file":"Ini adalah file audio","the_added_subtitle_already_exists":"Subtitel yang ditambahkan sudah ada","stop_stream_player":"Media streaming dihentikan karena tugas dijeda atau dihapus","stop_player":"Pemutar dihentikan karena file telah dihapus","playing_timeout_hint":"Waktu tunggu habis. Silakan periksa tugas","autoplay_hint":"Autoplay mungkin diblokir oleh browser Anda. Jika pemain tidak bermain, coba klik layar untuk melanjutkan","remove_playing_confirm":"{0} masih diputar, hapus akan menghentikan pemutar. Apakah Anda yakin untuk menghapusnya?","unsupported_in_browser":"Belum didukung dalam mode browser","client":"Klien","warning":"Peringatan","enable":"Memungkinkan","disable":"Cacat","auto":"Mobil","encrypt_connection":"Mengenkripsi koneksi","encrypted_connection":"Koneksi terenkripsi","non_encrypted_connection":"Koneksi tidak terenkripsi","connected_wires_not_disconnect":"Kabel yang terhubung tidak akan terputus","audio":"audio","video":"video","image":"gambar","subtitle":"subtitle","zip":"ritsleting","text":"teks","unknown":"tidak dikenal","add":"Menambahkan","undo":"Membuka","backup":"Cadangan","not_default_app":"${displayName} bukan aplikasi default Anda untuk torrent dan media, apakah Anda ingin menyetelnya sebagai default?","dont_show_again":"Jangan tampilkan lagi","go_to_settings":"Pergi ke pengaturan","about_alphabiz":"Tentang ${displayName}","last_check_at":"Cek terakhir di","update_channel":"Perbarui saluran","check_for_update":"Memeriksa pembaruan","checking_for_update":"Memeriksa pembaruan...","no_update_available":"Tidak ada pembaruan yang tersedia","update_available":"Pembaruan tersedia","update_now":"Memperbarui sekarang","update_later":"Perbarui nanti","click_to_update":"Klik tombol PERBARUI SEKARANG untuk mengunduh dan memperbarui","update_failed":"Pembaharuan gagal","update_failed_message":"Terjadi kesalahan saat memperbarui:","check_shasum_failed":"Gagal memeriksa integritas penginstal","downloading_update":"Mengunduh pembaruan...","ready_to_update":"Siap memperbarui","restart_to_update":"Pembaruan diunduh. ${displayName} akan keluar untuk memperbarui beberapa saat.","already_latest":"Versi saat ini({0}) sudah terbaru","update_timeout":"Perbarui batas waktu","no_available_release":"Tidak ada rilis yang tersedia","no_available_installer":"Tidak ada pemasang yang tersedia","feedback":"Masukan","select_a_type":"Pilih jenis","category":"Kategori","select_a_category":"Pilih Kategori","require_title":"Judul diperlukan","describe_your_problem":"Jelaskan masalah Anda","report_a_bug":"Laporkan bug","request_a_new_feature":"Minta fitur baru","download_or_upload":"Unduh/Unggah","others":"Yang lain","submit_with_system_info":"Kirim dengan info sistem","submit_feedback":"Berikan umpan balik","tweet_us":"Tweet kami","tweet_too_long":"Tweet terlalu panjang","delete_characters":"Hapus setidaknya {0} karakter","rest_characters":"Anda dapat memasukkan {0} lebih banyak karakter","update_alphabiz":"Perbarui ${displayName}","current_version":"Versi sekarang","cancel_update":"Batalkan pembaruan","slow_download_speed":"Unduh terlalu lambat","slow_download_speed_caption":"Pengunduhan penginstal terlalu lambat sekarang. Periksa status jaringan","update_canceled":"Pembaruan dibatalkan","current_version_release_time":"Waktu rilis versi saat ini","expired_app":"${displayName} Kedaluwarsa","version_out_of_date":"Versi kedaluwarsa","have_to_update":"Versi ${displayName} sudah usang. Beberapa protokol atau API tidak digunakan lagi. Anda harus memperbarui ${displayName} sebelum melanjutkan.","exit_alphabiz":"Keluar ${displayName}","exit_and_update":"Keluar dan terapkan pembaruan","new_version_hint":"Versi baru tersedia","no_new_version":"Tidak ada versi baru yang tersedia","current_is_latest":"Versi saat ini sudah terbaru","click_to_check_update":"Klik tombol [PERIKSA PEMBARUAN] untuk memeriksa pembaruan","download_latest_version_from_website":"Silakan kunjungi situs web resmi untuk mengunduh versi terbaru","to_the_website":"Ke situs web","network_diagnotic":"Diagnostik Jaringan","diagnotic":"Diagnostik","click_to_check":"Klik untuk memeriksa","click_to_check_again":"Klik untuk memeriksa lagi","checking":"Memeriksa","online":"On line","offline":"Luring","dns_look_up":"pencarian DNS","error":"Kesalahan","aws_service":"Layanan AWS","network_pings":"Jaringan Ping","not_found":"Tidak ditemukan","packet_loss":"Kehilangan paket","official_site":"Situs resmi","download_test":"Unduh Tes","test_task":"Uji Tugas {0}","download_failed":"Unduhan gagal","second_spend":"{0} pembelanjaan","open_default_player_failed":"Gagal membuka pemutar default","copied_to_clipboard":"Disalin ke papan klip","go_to":"Pergi ke","region_not_available":"Wilayah tidak tersedia","region_not_available_message":"Maaf! Wilayah Anda tidak tersedia untuk menggunakan aplikasi ini. Aplikasi ini akan berhenti setelah {0} detik","confirm":"Mengonfirmasi","no_available_result":"Tidak ada hasil yang tersedia","invalid_password_format":"Format kata sandi tidak valid","invalid_password_format_same":"Passwordnya sama dengan password aslinya","error_password":"Password error","keychain_setting":"Gantungan kunci","setting_description":"Penyimpanan cloud: Menyimpan data kunci ke cloud.\\nUbah kata sandi: Mengubah kata sandi untuk kunci perpustakaan media.\\nMnemonik: metode alternatif untuk membuat dan memulihkan kunci.\\nImpor Kunci Lokal: Impor kunci yang disimpan secara lokal ke perpustakaan media.\\nKunci Ekspor: Menyimpan data pustaka media saat ini ke lokal atau cloud.\\nKunci cadangan ke cloud: Perbarui data perpustakaan media saat ini ke cloud untuk cadangan.","refresh_status":"Memperbaharui status","confirm_import_key":"Konfirmasi kunci impor","confirm_update_cloud_key":"Anda sudah memiliki kunci di cloud. Memperbarui kunci akan menimpa kunci asli. Apakah Anda yakin ingin memperbarui kunci yang disimpan di awan","export_key_with_cloud":"Masukkan kata sandi independen yang Anda atur untuk mengekspor kunci perpustakaan yang disimpan di cloud, dan kunci file kunci dengan kata sandi buka kunci","store_cloud_key_prompt_password":"Masukkan kata sandi independen untuk menyimpan kunci perpustakaan di cloud","update_cloud_key_prompt_password":"Tetapkan kata sandi independen untuk mengenkripsi kunci perpustakaan, lalu perbarui ke cloud","enable_cloud_storage_prompt_password":"Tetapkan kata sandi untuk kunci yang disimpan di cloud, di mana Anda dapat mengambil kunci dari cloud","input_unlock_password":"Tetapkan kata sandi buka kunci","export_local_prompt_password":"Silakan atur kata sandi buka kunci untuk mengenkripsi file kunci Anda. Kami tidak akan menyimpan kata sandi ini untuk Anda, jadi jika Anda kehilangan kata sandi, Anda tidak akan dapat membuka kunci perpustakaan Anda","require_unlock_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","require_independent_password":"Masukkan kata sandi independen untuk menyimpan kunci di cloud","import_local_prompt_password":"File kunci terkunci, harap masukkan kata sandi buka kunci","select_encrypt_mode":"Pilih mode enkripsi","update_cloud_key":"Perbarui kunci yang disimpan di cloud","backup_to_cloud":"Cadangkan kunci perpustakaan ke cloud","save_local":"Simpan kunci perpustakaan sebagai file terenkripsi lokal","create_new_key":"Buat kunci pustaka baru","creating_lib_key":"Membuat kunci perpustakaan...","loading_lib_key":"Memuat kunci pustaka...","failed_to_create_lib_key":"Gagal membuat kunci perpustakaan","failed_to_load_lib_key":"Gagal memuat kunci perpustakaan","import_local_key":"Impor kunci secara lokal","import_lib_key_from_local":"Impor kunci perpustakaan secara lokal","import_from_cloud":"Impor kunci perpustakaan dari cloud","create_or_import_key":"Buat atau impor kunci perpustakaan","create_or_import_key_desc":"Kunci perpustakaan adalah kunci independen yang digunakan untuk mengambil dan menerbitkan konten dengan basis data terdesentralisasi.","store_your_lib_key":"Simpan kunci perpustakaan Anda","export_cloud_key":"Ekspor Kunci dari Cloud","export_current_key":"Ekspor Kunci Saat Ini","change_password":"Ganti kata sandi","enable_cloud_storage":"Aktifkan penyimpanan awan","disable_cloud_storage":"Nonaktifkan penyimpanan awan","disable_cloud_storage_desc":"Nonaktifkan penyimpanan cloud akan menghapus kunci yang disimpan di cloud, harap pastikan kunci disimpan secara lokal","sync_at":"Sinkronkan di: {time}","cloud_storage_enabled":"Sinkronkan Rantai Kunci dengan {storage}","cloud_storage_disabled":"Penyimpanan cloud dinonaktifkan","saved_locally":"Disimpan secara lokal","export_key":"Ekspor file kunci","cloud_independent_password":"Kata sandi independen cloud","key_file_unlock_password":"Kata sandi buka kunci file kunci","re_enter_unlock_password":"Masukkan kembali kata sandi buka kunci","independent_password_not_enabled":"Kata sandi saat ini adalah kata sandi akun Alphabiz (tidak ada kata sandi independen yang ditetapkan)","use_cognito_hash":"Gunakan kata sandi akun Alphabiz","use_independent_password":"Gunakan kata sandi independen","keychain_lib":"kunci pustaka","loading_keychain_state":"Memuat gantungan kunci...","backing_up":"Mencadangkan...","backup_current_key":"Cadangkan kunci saat ini ke Cloud","cloud_lib_key_not_existed":"kunci perpustakaan tidak ada di Cloud","open_keychain_file":"Buka File Rantai Kunci","confirm_open_abk":"Apakah Anda ingin membuka file ABK","use_the_key":"Gunakan kuncinya","backup_the_key":"Cadangkan kunci ke cloud","keychain_data_does_not_exist":"Data gantungan kunci tidak ada","timeout of 0ms exceeded":"Ada masalah dengan jaringan, coba lagi nanti","XhrError":"Ada masalah dengan jaringan, coba lagi nanti","payer credit amount is not enough":"Kredit tidak cukup","payee does not exist":"Penerima pembayaran tidak ada","block_list_manage":"Daftar blokir mengelola","blocked_users":"Pengguna diblokir","blocked_channels":"Saluran yang diblokir","unblock_user":"Buka blokir pengguna","unblock_channel":"Buka blokir saluran","no_blocked_user":"Tidak ada pengguna yang diblokir","no_blocked_channel":"Tidak ada saluran yang diblokir","field_required":"{0} diperlukan","setting":"Pengaturan","unknown_media":"Media Tidak Dikenal","settings_button_visible":"Tombol Terlihat","settings_setting":"Pengaturan","settings_playback_rate":"Tingkat Pemutaran","settings_subtitle":"Subtitle","settings_pip":"PiP","settings_fullscreen":"Layar penuh","settings_subtitle_options":"Opsi Subtitel","settings_normal":"Normal","settings_italic":"Miring","settings_lighter":"Lebih ringan","settings_bolder":"Lebih berani","settings_small":"Kecil","settings_large":"Besar","about":"Tentang","services":"Jasa","hide":"Bersembunyi","hide_others":"Sembunyikan Lainnya","show_all":"Tunjukkan semua","quit":"Berhenti","edit":"Sunting","redo":"Mengulangi","cut":"Memotong","paste":"Tempel","select_all":"Pilih Semua","view":"Melihat","reload":"Muat ulang","toggle_full_screen":"Alihkan Layar Penuh","toggle_developer_tools":"Alihkan Alat Pengembang","window":"Jendela","minimize":"Memperkecil","bring_all_to_front":"Bawa Semua ke Depan","help":"Membantu","github_repo":"Repo Github","issues":"Masalah","learn_more":"Belajarlah lagi","learn_spelling":"Pelajari Ejaan","lookup_selection":"Cari \\"{selection}\\"","search_with_google":"Telusuri dengan Google","save_as":"Simpan Sebagai","save_image":"Menyimpan gambar","save_image_as":"Menyimpan gambar sebagai ...","copy_link":"Salin tautan","save_link_as":"Simpan tautan sebagai ...","copy_image":"Salin Gambar","copy_image_as":"Salin Gambar Sebagai ...","copy_image_address":"Salin Alamat Gambar","download_complete":"Unduh selesai","download_complete_message":"{0} telah diunduh","is_running":"{0} sedang berjalan","open":"Buka {0}","launch_problem":"Luncurkan masalah","ask_clear_data":"Tampaknya Anda mencoba meluncurkan {0} tetapi gagal beberapa kali.\\nApakah Anda ingin menghapus semua data aplikasi dan mencoba meluncurkannya nanti?","launch_directly":"Luncurkan secara langsung","clear_all_data":"Hapus semua data","ask_clear_confirm":"Ini akan menghapus semua konfigurasi, log, dan data pengguna!\\nSetelah ini, Anda mungkin perlu meluncurkan {0} lagi.\\nApakah Anda yakin ingin menghapus data?","confirm_launch":"Tidak, luncurkan langsung","confirm_clear":"Ya, hapus semua data"}')},6545:function(e,t,a){},6580:function(e,t,a){"use strict";a("0c70")},6755:function(e,t,a){},6792:function(e,t,a){"use strict";a("b031")},"67b6":function(e,t,a){"use strict";a.d(t,"a",(function(){return $}));var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{persistent:!0,"content-class":{"markdown-dialog":!0,"fullscreen-dialog":e.fullscreen},position:e.fullscreen?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")}}},[a("q-card",{staticClass:"overflow-hidden column no-wrap",staticStyle:{"min-width":"320px","max-width":"720px","min-height":"calc(320px - 64px)","max-height":"calc(100vh - 64px)"},style:{paddingTop:(e.fullscreen&&e.$q.platform.is.electron?30:0)+"px"}},[a("q-card-section",{staticClass:"non-selectable flex justify-start items-center",class:{"q-py-sm":e.fullscreen}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.screen$xs,expression:"!screen$xs"}],attrs:{"fab-mini":"",icon:e.isFullscreen?"fullscreen_exit":"fullscreen",unelevated:""},on:{click:function(t){e.isFullscreen=!e.isFullscreen}}}),a("q-btn",{attrs:{"fab-mini":"",icon:"close",unelevated:""},on:{click:e.hide}})],1),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:Object.keys(e.contents).length>1,expression:"Object.keys(contents).length > 1"}],staticClass:"q-py-none",staticStyle:{"margin-top":"-8px"}},[a("q-tabs",{staticStyle:{margin:"0 -16px"},attrs:{dense:"",align:"left","no-caps":"","narrow-indicator":""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(e,t){return[a("q-tab",{key:t,attrs:{ripple:!1,name:t,label:e.label}})]}))],2)],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none scroll-y",staticStyle:{"max-height":"100%"}},[a("q-tab-panels",{attrs:{animated:""},model:{value:e.currentTab,callback:function(t){e.currentTab=t},expression:"currentTab"}},[e._l(e.contents,(function(t,n){return[a("q-tab-panel",{key:n,staticClass:"markdown-content",attrs:{name:n},domProps:{innerHTML:e._s(t.markdown)}})]}))],2)],1)],1)],1)},o=[],i=(a("de6c"),a("8e03")),r=a.n(i);const s={methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}},l={data(){return{isFullscreen:!1}},computed:{fullscreen(){return this.screen$xs||this.isFullscreen}}};var c={name:"MarkdownDialog",mixins:[s,l],props:{title:String,markdown:[Array,Object]},data(){return{currentTab:null}},computed:{contents(){const e=new r.a("commonmark");if(Array.isArray(this.markdown))return{content:{label:"content",markdown:e.render(this.markdown.join("\n"))}};const t={};return Object.entries(this.markdown).forEach((([a,n])=>{t[a]={label:n.label,markdown:e.render(n.markdown.join("\n"))}})),t}},created(){this.currentTab=Object.keys(this.contents)[0]}},d=c,u=(a("2cab"),a("2b5f")),_=a("b2aa"),p=a("e586"),m=a("d7c7"),h=a("990e"),g=a("1043"),f=a("74cb"),b=a("ec78"),y=a("fc38"),v=a("917f"),w=a("c72d"),k=a("09a4"),S=a.n(k),C=Object(u["a"])(d,n,o,!1,null,null,null),x=C.exports;S()(C,"components",{QDialog:_["a"],QCard:p["a"],QCardSection:m["a"],QSpace:h["a"],QBtn:g["a"],QTabs:f["a"],QTab:b["a"],QSeparator:y["a"],QTabPanels:v["a"],QTabPanel:w["a"]});t["b"]={methods:{createMarkdownDialog({title:e,markdown:t}){return this.$q.dialog({component:x,title:e,markdown:t})}}};function $({title:e,markdown:t}){return this.$q.dialog({component:x,title:e,markdown:t})}},"68e2":function(e){e.exports=JSON.parse('{"lib_index":"집","lib_edit":"게시","lib_publish":"게시","lib_explore":"탐구하다","lib_following":"수행원","lib_favorite":"로컬 즐겨찾기","lib_local_favorites":"로컬 즐겨찾기","lib_channel":"채널","lib_submit":"제출하다","lib_from_network":"네트워크에서 분산 데이터베이스 사용","welcome_to_lib":"${displayName} 미디어 라이브러리에 오신 것을 환영합니다.","register_or_login":"회원가입/로그인","lib_recommend":"추천하다","lib_recommend_desc":"${displayName} 도서관에 오신 것을 환영합니다! 이 라이브러리는 네트워크에서 분산된 데이터베이스를 사용합니다. 사용을 시작하려면 일부 채널을 팔로우해야 합니다.","follow_any_channel_to_continue":"계속하려면 아무 채널이나 팔로우하세요.","follow_channels_and_continue":"{0} 채널을 팔로우하고 계속하기","show_more_for_me":"더 보여줘","no_more_recommend":"더 이상 추천하지 않음","key":"열쇠","create_key":"키 만들기","save_key":"키 저장","save_key_file":"키를 파일로 저장하시겠습니까?","import_key":"키 가져오기","import":"수입","invalid_key":"유효하지 않은 키","back_to_top":"맨 위로","search_for_channel":"채널 ID 검색","search_channel_no_result":"ID가 {0}인 채널을 찾을 수 없습니다.","please_input_channel_id":"채널 ID를 입력하세요.","welcome_help_text":"이것은 분산형 미디어 라이브러리입니다. 당신은 필요\\n 이 데이터베이스에 대한 계정을 생성합니다. 우리는\\n 자동으로 개인 키를 생성합니다.\\n 이미 키가 있는 경우 가져올 수도 있습니다.\\n 여기.","welcome_key_text":"로그인 후 [SAVE KEY] 버튼을 클릭해주세요.\\n 개인 키를 저장하려면 오른쪽 하단 모서리에 있습니다.\\n 키를 분실하면 다시 로그인하지 못할 수 있습니다.","redirect_to_recommend":"팔로우한 채널이 없는 것 같습니다. [탐색] 페이지로 리디렉션 중입니다.","channel":"채널","follow":"따르다","unfollow":"언팔로우","following":"수행원","share":"공유하다","unfollow_confirm":"이 채널을 팔로우 해제하시겠습니까? 타임라인에 있는 이 채널의 모든 게시물이 삭제됩니다.","follow_failed_hint":"작업이 백그라운드에서 아직 보류 중입니다. 오랜 시간 동안 동작이 적용되지 않으면 앱을 다시 시작하고 다시 시도하십시오.","block":"차단하다","unblock":"차단 해제","blocked":"막힌","block_channel":"이 채널 차단","block_channel_confirm":"채널을 차단하면 타임라인에서 제거됩니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","block_creator":"이 채널의 작성자 차단","unblock_creator":"이 채널의 작성자 차단 해제","block_creator_confirm":"블록 작성자는 이 작성자가 생성한 모든 채널을 타임라인에서 제거합니다. 계정 설정에서 차단 목록을 관리할 수 있습니다.","share_url_copied":"공유 URL이 클립보드에 복사되었습니다.","follow_time":"팔로우 타임","update_time":"업데이트 시간","search":"찾다","type":"유형","added":"추가됨","click_to_task":"작업으로 이동하려면 클릭하세요.","lib_already_added":"이 동영상을 이미 추가했습니다.","description":"설명","poster":"포스터","channel_poster":"채널 포스터","preview":"시사","creator":"창조자","creator_detail":"크리에이터 세부정보","loading_creator":"크리에이터 정보 로드 중","wait_for_creator_loaded":"크리에이터 정보가 로드될 때까지 기다려 주십시오.","follower":"수행원","followers":"추종자","follower_list":"팔로어 목록","user":"사용자","channel_title":"채널 제목","channel_id":"채널 ID","post_title":"게시물 제목","post_id":"게시물 ID","import_data_from_excel":"엑셀에서 데이터 가져오기","set_excel_keys":"엑셀 키 설정","excel_import_succeded":"엑셀 가져오기 성공","excel_import_success_msg":"{0} 행을 추가할 준비가 되었습니다. {1} 유효하지 않으며 {2} 중복 항목은 무시됩니다.","cannot_find_channel":"채널을 찾을 수 없습니다","cannot_find_posts":"게시물을 찾을 수 없습니다","add_channel":"채널 추가","add_post":"게시물 추가","edit_channel":"채널 수정","channel_setting":"채널 설정","edit_post":"게시물 수정","edit_posts":"게시물 수정","channel_detail":"채널 세부정보","remove":"제거하다","remove_channel":"채널 삭제","remove_channel_confirm":"이 게시물을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","remove_post":"게시물 삭제","remove_post_confirm":"이 채널을 삭제하시겠습니까? 이것은 복구할 수 없습니다.","preview_mode":"미리보기 모드","preview_mode_desc":"채널의 미리보기입니다. 영화의 모든 요금이 여기에 표시됩니다.","edit_user_profile":"사용자 프로필 수정","name":"별명","avatar":"화신","no_following":"다음 채널이 없습니다. 클릭하여 이동","no_recommend":"추천 채널이 없습니다. 클릭하여 이동","first_recomment_msg":"앱을 처음 실행하는 경우 다소 시간이 걸릴 수 있습니다.","invalid_image":"잘못된 이미지","image_not_reachable":"이 이미지 URL에 연결할 수 없습니다.","channel_not_found":"채널을 찾을 수 없음","cannot_get_channel_info":"채널 정보를 가져올 수 없습니다. 이 채널은 제작자에 의해 삭제되어 더 이상 사용할 수 없습니다.","validate_error":"오류 확인","validate_user_name_no_space":"사용자 이름에는 공백이 없어야 합니다.","validate_url_no_space":"URL은 공백을 포함할 수 없습니다.","validate_user_name_length":"사용자 이름은 {0}에서 {1} 사이여야 합니다.","validate_user_desc_length":"사용자 설명은 {0}자를 초과할 수 없습니다.","validate_user_avatar_url":"사용자 아바타는 2048자 미만의 URL이어야 합니다.","validate_channel_title_length":"채널 제목의 길이는 1에서 100 사이여야 합니다.","validate_channel_desc_length":"채널 설명의 길이는 10에서 300 사이여야 합니다.","validate_channel_image_url":"채널 미리보기는 2048자 미만의 URL이어야 합니다.","validate_post_title_length":"게시물 제목의 길이는 1에서 100 사이여야 합니다.","validate_post_desc_length":"게시물 설명의 길이는 10에서 300 사이여야 합니다.","validate_post_image_url":"포스터는 2048자 미만의 URL이어야 합니다.","validate_post_url":"잘못된 ${displayName} URL","validate_post_url_length":"${displayName} URL은 2048자 이하여야 합니다.","film_rate":"영화 비율","set_film_rate":"촬영 속도 설정","select_a_rate_before_enter":"미디어 라이브러리에 들어가기 전에 필름 속도를 선택해야 합니다.","library_available_rate":"도서관 이용 가능 영화 요금","rate_g":"G – 일반 청중","rate_g_desc":"전연령 인정합니다. 아이들이 보는 것에 대해 부모를 화나게 하는 것은 없습니다.","rate_pg":"PG – 학부모 지도 권장","rate_pg_desc":"일부 자료는 어린이에게 적합하지 않을 수 있습니다. 학부모들은 \\"부모의 지도\\"를 해줄 것을 촉구했다. 부모가 어린 자녀에게 좋아하지 않을 수 있는 내용이 포함되어 있을 수 있습니다.","rate_pg_13":"PG-13 – 부모의 강력한 주의","rate_pg_13_desc":"일부 자료는 13세 미만의 어린이에게 부적절할 수 있습니다. 부모는 주의를 기울여야 합니다. 일부 자료는 미성년자에게 부적절할 수 있습니다.","rate_r":"R – 제한됨","rate_r_desc":"17세 미만은 부모 또는 성인 보호자를 동반해야 합니다. 약간의 성인물이 포함되어 있습니다. 부모는 어린 자녀를 데리고 가기 전에 영화에 대해 더 많이 알아야 합니다.","rate_nc_17":"NC-17 – 성인 전용","rate_nc_17_desc":"17세 미만은 허용되지 않습니다. 분명히 성인. 어린이는 입장할 수 없습니다.","set_as_private":"비공개로 설정","hide_in_explore":"탐색 페이지에서 이 채널 숨기기","hidden":"숨겨진","select_a_rate":"영화 요금을 선택하세요","select_from_tasks":"작업에서 선택","import_from_magnet":"자석에서 가져오기:?...","input_magnet_url":"입력 자석:? URL","task_title":"작업 제목","set_title":"제목 설정","add_to_local_favorites":"로컬 즐겨찾기에 추가","remove_from_local_favorites":"로컬 즐겨찾기에서 제거","removed_favorite":"삭제된 즐겨찾기","import_or_export_favorites":"즐겨찾기 가져오기/내보내기","export_local_favorites":"로컬 즐겨찾기를 백업으로 내보내기","import_favorites_file":"즐겨찾기 파일 가져오기","not_a_favorite_file":"이 파일은 즐겨찾는 백업 파일이 아닙니다.","connection_status":"연결 상태","gun_server_list":"캐시 노드","custom_nodes":"커스텀 캐시 노드","custom_nodes_hint":"앱을 다시 시작한 후 맞춤 캐시 노드가 적용됩니다.","wait_for_reboot":"재부팅 대기 중...({seconds}s)","reboot_now":"지금 재부팅하세요","reboot_later":"나중에 재부팅","peer_list":"직접 노드","server":"노드 URL","peer":"또래","peer_id":"노드 ID","connection":"연결","data_source":"데이터 소스","sync":"동조","syncing":"동기화 중","sync_completed":"동기화 완료","got_all_post":"이미 모든 게시물이 있습니다.","placeholder_channel_title":"채널 이름","placeholder_channel_desc":"이 채널에 대한 설명","placeholder_post_title":"영화명(연도)","placeholder_post_desc":"이 영화에 대한 설명","private_channel":"비공개 채널","creator_blocked":"크리에이터가 차단됨","go_to_library":"도서관에 가십니까?","go_to_library_channel_msg":"도서관 채널 {0}로 이동하시겠습니까?","magnet_does_not_have_name":"이 자석:? url에는 이름이 없으므로 먼저 게시물 제목을 추가해야 합니다.","no_available_post":"사용 가능한 게시물이 없습니다.","following_channel_no_post":"다음의 모든 채널에 사용 가능한 게시물이 없습니다. 네트워크 오류로 인해 발생할 수 있습니다. 일부 채널을 이미 팔로우한 경우 게시물이 나중에 로드될 수 있습니다.","share_to_library":"라이브러리에 공유","quick_start":"빠른 시작","quick_start_desc":"작업 또는 파일로 게시물 작성 시작","select_file":"파일 선택...","select_folder":"폴더 선택...","post_options":"게시물 옵션","channel_options":"채널 옵션","create_new_channel":"새 채널 만들기","use_existed_channel":"기존 채널 사용","select_existed_channel":"기존 채널 선택","uploaded_by":"{title} {name} 업로드","created_by":"{title} {name} 생성","creating_new_channel":"새 채널 생성 중...","created_new_channel":"새 채널이 생성되었습니다.","creating_new_post":"새 게시물 작성 중...","created_new_post":"새 게시물이 생성됨","create_new_post":"새 게시물 만들기","quick_start_timeout":"{0} 시간이 초과되었습니다. 네트워크 오류로 인해 발생할 수 있습니다. 나중에 다시 시도 해주십시오.","file_too_large":"파일이 너무 큽니다","file_too_large_msg":"이 파일은 4GB({size})보다 크며 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 계속하시겠습니까?","resolving_folder_files":"폴더 파일을 해결하는 중...","folder_too_large":"폴더가 너무 큼","folder_too_large_msg":"이 폴더의 파일은 4GB({size} 총)보다 크고 작업을 준비하는 데 시간이 오래 걸릴 수 있습니다. 업로드하시겠습니까?","creating_new_task":"새 작업 생성 중...","cannot_create_task":"작업을 생성할 수 없습니다.","cannot_create_task_msg":"일부 오류로 인해 발생할 수 있습니다. 작업이 올바르게 생성되면 나중에 작업 목록을 확인할 수 있습니다.","cannot_get_task_name":"작업 이름을 가져올 수 없습니다. 먼저 하나를 입력해야 합니다.","remove_old_task":"이전 작업 제거","remove_old_task_desc":"웹 모드는 한 번에 하나의 작업만 만들 수 있습니다. 이전 작업을 제거하시겠습니까?","subtitle_list":"자막 목록","optional":"선택 과목","with_subtitle":"{language} 자막 포함","maximumSubtitleNum_limit":"자막 수가 최대치에 도달했습니다.","add_subtitle_url":"자막 다운로드 링크 추가","cannot_add_subtitle":"자막을 추가하지 못했습니다.","cannot_add_subtitle_msg":"자막 언어가 선택되지 않았거나 다운로드 링크가 유효하지 않습니다.","support_subtitle_type":"srt 및 vtt 형식의 자막만 지원됩니다.","recommend_opensubtitles":"www.opensubtitles.org에서 자막 다운로드 링크 또는 아이디를 사용하는 것을 권장합니다.","take_down":"테이크다운","serious_violation":"심각한 위반","copyright_disputes":"저작권 분쟁","adults_only":"성인 만","takedown_reason":"게시 중단 이유","takedown_mode":"테이크다운 모드","admins":"관리자","takedown_user":"이 크리에이터 게시 중단","takedown_channel":"이 채널 게시 중단","takedown_post":"이 게시물 게시 중단","select_takedown_reason":"게시 중단 이유 선택","takedown_invalid_reason":"잘못된 게시 중단 이유","takedown_invalid_user_id":"잘못된 사용자 ID입니다. ID는 87자를 포함해야 합니다.","takedown_invalid_channel_id":"잘못된 채널 ID입니다. ID는 20자를 포함해야 합니다.","takedown_invalid_post_id":"잘못된 게시물 ID입니다. ID는 20자를 포함해야 합니다.","takedown_management":"테이크다운 관리","users":"사용자","channels":"채널","posts":"게시물","you":"너","preset":"프리셋","admin":"관리자","committee":"위원회","about_takedown_mode":"게시 중단 모드 정보:\\n사전 설정: github 저장소에서 구성됩니다. 모두 라이브러리에서 제거됩니다.\\n관리자: 관리자 투표 중 하나가 제거됩니다.\\n위원회: 투표한 관리자의 절반 이상이 제거됩니다.","cannot_edit_preset":"이 행은 미리 설정된 행이므로 편집할 수 없습니다.","cannot_edit_not_vote":"투표하지 않았으므로 이 행을 편집할 수 없습니다.","remove_vote":"투표 제거","post_preload_failed":"이 게시물을 미리 로드하지 못했습니다. 다운로드 링크가 오래되어 이 게시물을 바로 재생할 수 없습니다.","about_cache_node":"캐시 노드 정보","edit_cache_node":"캐시 노드 편집","create_cache_node":"캐시 노드 생성","about_cache_node_desc":"${displayName}는 건 서버를 캐시 노드로 사용합니다. 사전 설정에서 사용자 정의 노드를 편집할 수 있습니다.","learn_how_to_deploy_gun":"자체 건 서버를 배포하는 방법 알아보기","repeat_add":"작업이 추가되었습니다. 다시 추가하지 마세요.","upload":"업로드","download":"다운로드","delete":"삭제","delete_task":"작업 삭제","delete_confirm_message":"이 작업을 삭제하시겠습니까? 취소할 수 없습니다.","also_delete_files":"파일도 삭제","default_delete_files":"제거 작업 후 기본 삭제 다운로드 파일","not_now":"지금은 아니다","delete_autoupload_confirm":"이 작업에는 자동 업로드 디렉터리에 넣은 파일이 포함되어 있습니다. 이 작업을 삭제하면 파일도 삭제됩니다.","delete_anyway":"무시하고 삭제","upload_too_many_files":"너무 많은 파일 업로드","ask_if_unlimit_upload_amount":"자동 업로드 디렉터리에 너무 많은 파일이 포함되어 있습니다. 업로드 용량 제한을 비활성화하시겠습니까? *성능 문제가 발생할 수 있습니다.","disable_limitation":"제한 비활성화","not_length":"현재 다중 파일 작업이 지원되지 않습니다. 협조해 주시기 바랍니다.","download_torrent":"파일 다운로드","upload_torrent":"파일 업로드","files":"파일","file":"파일","folder":"폴더","start_all":"모두 시작","pause_all":"모두 일시중지","remove_all":"모두 제거","upload_all":"모두 업로드","clear_history":"기록 지우기","pause_all_finish_payments":"이로써 모든 결제가 완료됩니다.","accelerating":"가속","link_task":"작업 연결","torrent_task":"파일 작업","ok":"좋아요","cancel":"취소","download_directory_position":"다운로드 디렉토리 위치","torrent_file":"작업 파일","magnetic_link_incorrect":"링크 형식이 잘못되었습니다.","delete_fail":"삭제 실패","pause":"정지시키다","paused":"일시중지됨","stop_torrent":"멈추다","seed":"씨앗","resume":"재개하다","downloading":"다운로드 중","downloaded":"다운로드됨","uploading":"업로드 중","auto_uploading":"자동 업로드","uploaded":"업로드됨","pending":"다른 작업을 기다리는 중","verifying":"확인 중","waiting_for_verify":"확인 대기 중","seeding":"파종","completed":"완전한","status":"상태","task_name":"작업 이름","size":"크기","progress":"진전","sort":"종류","ascending":"오름차순","descending":"내림차순","file_loading":"파일 로드 중...","loading":"로드 중","unknown_status":"알려지지 않은","play_while_downloading":"놀다...","upload_or_play":"업로드/재생","play":"놀다","ask_if_upload_file":"파일을 업로드하시겠습니까?","ask_if_upload_or_play":"파일을 업로드하거나 재생하시겠습니까?","torrent_error":"작업 추가 시 오류:","no_peers":"{0} 회 이상 재시도하고 사용 가능한 피어가 없습니다.","torrent_exists":"작업이 이미 존재합니다.","show_origin_torrent":"원본 작업 파일 또는 URL 가져오기","show_directory":"이 토렌트의 디렉토리 열기","task_num":"작업","total_upload_speed":"업로드 속도","total_download_speed":"다운로드 속도","path_missing":"오류: 토렌트 경로를 찾을 수 없습니다.","origin_not_found":"원본 작업 정보를 찾을 수 없습니다.","text_copied":"매그넘 URL이 클립보드에 복사됩니다.","copy_magnet_uri":"복사 자석:? URI","copy_download_uri":"다운로드 URI 복사","copy_share_uri":"공유 URI 복사","uri_copied":"URI가 클립보드에 성공적으로 복사되었습니다.","uri_copy_failed":"URI를 복사하지 못했습니다.","more":"더...","toggle_list_mode":"목록 모드 전환","comment":"논평","operations":"운영","open_directory":"디렉토리 열기","no_downloading_task":"다운로드 작업 없음","remove_all_downloading_tasks":"모든 다운로드 작업을 제거하시겠습니까?","remove_all_upload_tasks":"모든 업로드 작업을 제거하시겠습니까?","remove_autoupload_files":"자동 업로드 파일 제거","remove_all_history":"모든 기록을 삭제하시겠습니까?","remaining":"남은","created_time":"만든 시간","used_time":"사용시간","completed_time":"완료된 시간","yesterday":"어제","before_yesterday":"{empty}","earlier":"더 일찍","miss_file":"일부 파일이 누락됨","delete_miss_file_task":"{0}에 누락된 파일이 있습니다.","common_peer":"공통 피어","ab_peer":"${displayName} 피어","ab_peer_verified":"확인된 ${displayName} 피어","ab_peer_available":"${displayName} 피어 사용 가능","alphabiz_accelerating":"${displayName} 가속","income":"소득","income_info":"수입(오늘/총)","total_income_info":"수입: {0}(오늘) / {1}(총)","login_to_see_income":"소득 통계를 보려면 로그인하십시오.","credit_cost":"신용 비용","downloaded_by_payment":"결제로 다운로드","file_not_found":"로컬에서 이 파일을 찾을 수 없습니다.","no_task":"묻지 않는다","no_matched_task":"일치하는 작업 없음","space_not_enough":"디스크 공간이 충분하지 않음","need_more_space":"{0} 더 많은 공간이 필요하지만 현재 디스크에 {1} 여유 공간이 있습니다({2} 예약됨). 작업이 일시 중지되었습니다. 라이브러리 사전 로드가 비활성화되었습니다. [설정 - 고급]에서 다시 활성화할 수 있습니다.","seeders":"파종기","last_update":"마지막 업데이트","connecting":"연결 중","connected":"연결됨","request_timed_out":"요청 시간이 초과되었습니다","connection_failed":"연결에 실패","invalid_download_url":"잘못된 다운로드 URL","download_link":"다운로드 링크","empty_files":"디렉토리에 파일이 없습니다","duplicate_task":"중복 작업","duplicate_tracker":"중복 추적기","this_task_not_ready":"이 작업은 준비되지 않았습니다. 이 작업을 일시 중지하면 바로 제거됩니다.","some_task_not_ready":"일부 작업이 준비되지 않았습니다. 이러한 작업을 일시 중지하면 바로 제거됩니다.","failed_to_delete_files":"파일을 삭제하지 못했습니다.","failed_to_delete_files_desc":"작업의 일부 파일을 삭제하지 못했습니다. 수동으로 삭제해야 할 수도 있습니다.","unknown_error":"알 수 없는 오류: {0}","more_files_are_not_shown":"({0} 더 많은 파일은 성능상의 이유로 표시되지 않음)","no_available_file":"사용 가능한 파일이 없습니다. 작업이 준비될 때까지 기다리십시오.","service_worker_error":"재생을 위해 ServiceWorker를 로드할 수 없습니다. 브라우저가 이 기능을 지원하지 않거나 ServiceWorker가 활성화되지 않았을 수 있습니다. 이 페이지를 새로고침하고 다시 시도해야 할 수도 있습니다.","add_task_first":"먼저 작업을 추가해야 합니다.","player_task_time":"플레이어가 플레이를 준비하는 데 너무 많은 시간이 걸립니다. 작업에 문제가 있을 수 있습니다.","web_mode_hint":"${displayName}의 웹 모드는 WebRTC 피어만 지원합니다. 최상의 경험을 위해 ${displayName} 데스크탑 앱을 다운로드하십시오.","web_mode_task_hint":"작업을 추가하려면 아래 버튼을 클릭하세요. 한 번에 하나의 작업만 추가할 수 있습니다.","save_to_local":"로컬에 저장","save_as_zip":"ZIP으로 저장","creating_save_file":"세이브 파일 생성중...","upload_as_one_directory":"하나의 디렉토리로 업로드","upload_as_single_files":"단일 파일로 업로드","web_mode_upload_single":"웹 모드에서는 단일 파일만 업로드할 수 있습니다.","download_success":"성공적으로 다운로드","download_fail":"다운로드 실패","wait_for_downloaded_to_share":"공유하기 전에 작업이 다운로드될 때까지 기다리십시오.","download_with_cellular":"셀룰러를 사용하여 작업 다운로드","download_with_cellular_desc":"셀룰러 네트워크를 사용하고 있습니다. 셀룰러로 작업을 다운로드하면 이동통신사에서 추가 요금을 부과할 수 있습니다.","download_with_cellular_confirm":"여전히 셀룰러로 다운로드","language":"언어","appearance":"모습","darkModeSystem":"체계","darkModeLight":"빛","darkModeDark":"어두운","basic_setting":"기초적인","hideMenu":"앱 메뉴 숨기기(Windows 및 Linux만 해당)","autoHide":"창 자동 숨기기","autoStart":"로그인 시 열기","restore":"종료 시 창의 크기와 위치 유지","autoStartUnfinished":"완료되지 않은 모든 작업을 자동으로 재개","default_download_path":"기본 경로","download_directory":"디렉토리 다운로드","upload_directory":"디렉토리 업로드","enable_auto_upload":"자동 업로드 사용","unlimit_upload_amount":"무제한 업로드 금액","unlimit_upload_warning":"많은 양의 파일을 업로드할 수 있습니다. 이로 인해 성능 문제가 발생할 수 있습니다.","start":"시작","transport_setting":"전염","upload_limit":"업로드 제한","download_limit":"다운로드 한도","payed_user_share_rate":"유료 사용자 점유율","unlimited":"제한 없는","limit_input_error":"제한 숫자는 양수여야 합니다.","BT_setting":"작업 설정","saveLinkSeed":"작업 파일로 링크 저장","autoDownload":"링크 및 콘텐츠 자동 다운로드","continuousSeeding":"수동으로 중지할 때까지 시드 유지","seedSharingRate":"종자 비율","seedTime":"시드 시간(분)","task_manage":"작업 관리","maximumDownloadNum":"최대 활성 작업","maximumConnectionsNum":"서버당 최대 연결","range_error":"범위는 {0}에서 {1} 사이여야 합니다.","random":"무작위의","breakpointContinuation":"계속하다","automaticSkip":"작업 추가 후 자동으로 다운로드 표시","afterNotification":"다운로드 완료 후 알림","deleteConfirm":"작업을 삭제하기 전에 확인이 필요하지 않습니다.","submit":"저장 및 적용","discard":"버리다","reset":"초기화","reset_all_settings":"모든 설정을 재설정하시겠습니까?","preferences_resetted":"환경설정이 재설정됨","traditional_chinese":"중국어 번체","japanese":"일본어","english":"영어","chinese":"중국어 간체","advancedSettings":"고급의","autoUpdate":"자동 업데이트","autoCheckUpdate":"업데이트 자동 확인","proxy":"대리","useProxyService":"프록시 활성화","trackerService":"트래커 서버","recommendUse":"추천","autoUpdateTrackerServiceList":"매일 자동으로 트래커 목록 업데이트","manualUpdateTracker":"수동 업데이트","manualUpdateSuccess":"트래커 서버를 성공적으로 업데이트했습니다.","manualUpdateFail":"업데이트 실패:","listenPort":"청취 포트","BTlistenPort":"데이터 전송 포트","DHTlistenPort":"분산 해시 포트","protocols":"호환 가능한 프로토콜","setDefaultClientForFollowingProtocols":"다음 프로토콜의 기본 클라이언트로 설정","magnetUrl":"자석","video_file":"비디오 파일","audio_file":"오디오 파일","security":"보안","impersonateUserAgent":"모의 사용자 에이전트","RPCauthorizationkey":"RPC 비밀","viewDocument":"RPC 시크릿 매뉴얼 보기","developer":"개발자","applicationLogPath":"앱 로그 경로","downloadSessionPath":"세션 경로 다운로드","resetDownloadSessionRecord":"다운로드 세션 재설정","restoreInitialSettings":"공장초기화","preferences_set_successfully":"기본 설정을 성공적으로 저장하십시오!","preferences_set_fail":"기본 설정 저장 실패!","change_not_save":"변경 사항이 저장되지 않음","discard_all_changes":"모든 변경사항을 취소하고 종료하시겠습니까?","stay_in_page":"페이지에 머물기","disk_usage":"디스크 사용량","pause_if_less_space":"공간이 (MB) 미만인 경우 일시 중지 및 알림","default_video_player":"기본 비디오 플레이어","video_cache_time":"스트림 재생 캐시","minutes":"분","system_default":"시스템 기본값","media_player":"미디어 플레이어","library_film_rate":"사용 가능한 영화 속도","library_show_explore":"[탐색] 페이지 표시","library_setting":"라이브러리 설정","library_sync_setting":"라이브러리 동기화 설정","keychain_sync_status":"키체인 동기화 상태","sync_with_aws":"Amazon Web Services와 키체인 동기화","backup_to_local":"로컬 파일에 백업","enable_sync_with_aws":"AWS와 동기화 활성화","disable_sync_with_aws":"AWS와의 동기화 비활성화","disable_sync_with_aws_desc":"이렇게 하면 서버에 저장된 키가 제거됩니다. 이미 키를 내보냈는지 확인하십시오.","input_independent_password":"독립적인 암호 입력","change_independent_password":"독립적인 비밀번호 변경","password_error":"비밀번호 오류","password_invalid":"잘못된 비밀번호","key_existed":"키 존재","key_not_found":"키를 찾을 수 없음","library_recommend":"도서관 추천","show_all_channels":"도서관 추천 페이지에 모든 채널 표시","not_logged_in":"로그인하지 않았습니다","login_to_continue":"계속하려면 로그인하세요.","mnemonic_code":"니모닉 코드","wordlist":"단어 목록","restore_code":"코드에서 복원","generate_code":"코드 생성","export_mnemonic_code":"니모닉 코드 내보내기","import_mnemonic_code":"니모닉 코드 가져오기","print":"인쇄","save_as_txt":"txt로 저장","save_as_pdf":"PDF로 저장","from_file":"파일에서","not_valid_mnemonic_code":"유효한 니모닉 코드가 아닙니다.","cannot_parse_code_as_key":"이 니모닉 코드를 라이브러리 키로 구문 분석할 수 없습니다.","import_key_hint":"이 키를 가져오시겠습니까? 이렇게 하면 라이브러리에서 이전 키가 복구됩니다.","import_key_confirm":"예, 가져옵니다.","library_preload":"라이브러리에서 작업 미리 로드","show_preload":"사전 로드 작업 표시","set_download":"다운로드 디렉토리 설정","set_download_desc":"macOS App Store 버전의 경우 기본 다운로드 디렉토리는 앱의 샌드박스에 있으며 앱 제거 후 삭제됩니다. 다운로드 파일을 보관하려면 다른 다운로드 디렉토리를 수동으로 선택해야 합니다.","home":"집","home_caption":"다운로드/업로드 및 미디어 파일","library":"도서관","library_caption":"미디어 리소스 살펴보기","player":"플레이어","player_caption":"미디어 플레이어","credits":"학점","credits_caption":"계정 잔액 확인","account":"계정","account_caption":"로그인/가입/관리","settings":"설정","settings_caption":"앱, 플레이어, 계정 설정","development":"개발","development_caption":"내부용 개발자 모드","basic":"기초적인","basic_caption":"기본 설정","advanced":"고급의","advanced_caption":"고급 설정","blockchain":"지갑","blockchain_caption":"${displayName} 탈중앙화 지갑","internal_notice":"내부 릴리스 공지","release_notes":"릴리즈 노트","terms_and_conditions":"이용약관","license_and_listen_notices":"라이선스 및 오픈 소스 듣기 고지 사항","close":"닫다","success":"성공","fail":"실패하다","account_email_invalid_address":"잘못된 이메일 주소","account_email_invalid_domain":"잘못된 이메일 도메인","account_email_unknown_status":"알 수 없는 이메일 전송 상태","account_email_unavailable_address":"사용할 수 없는 이메일 주소","account_email_suppressed_address":"억제된 이메일 주소","account_loading":"로드 중...","account_is_required":"필요하다","account_sign_in_your_account":"로그인","account_username":"사용자 이름","account_username_email_phone":"전화번호 또는 이메일","account_password":"비밀번호","account_new_password":"새 비밀번호","account_re_enter_password":"비밀번호를 다시 입력하세요","account_password_not_equal":"두 암호가 동일하지 않습니다","account_new_password_same":"비밀번호는 기존 비밀번호와 동일합니다.","account_forgot_your_password":"비밀번호를 잊어 버렸습니까?","account_reset_password":"암호를 재설정","account_sign_in":"로그인","account_signed_in":"로그인","account_sign_up":"가입하기","account_find_your_account":"계정 찾기","account_enter_your_username":"전화번호 또는 이메일을 입력하세요.","account_search":"찾다","account_email_sent_tip":"확인 코드가 포함된 이메일이 귀하의 이메일로 전송되었습니다:","account_phone_sent_tip":"인증 코드가 포함된 SMS가 휴대전화로 전송되었습니다.","account_email_phone_sent_tip":"확인 코드가 포함된 이메일과 SMS가 각각 귀하의 이메일과 전화로 전송되었습니다:","account_software_token_tip":"계정에 대해 MFA가 활성화되었습니다. 로그인을 완료하려면 장치를 켜거나 보고 TOTP를 입력하십시오.","account_reset_your_password":"비밀번호를 재설정","account_verification_code":"확인 코드","account_resend_code":"코드 재전송","account_code_has_been_resent":"인증 코드가 재전송되었습니다","account_password_has_been_reset":"비밀번호가 재설정되었습니다","account_submit":"제출하다","account_sign_up_your_account":"계정 가입","account_fill_required_fields":"아래의 필수 필드를 작성하십시오.","account_fill_optional_fields":"아래의 선택 필드를 채우십시오.","account_email":"이메일","account_invitation":"초대","account_invitation_code":"초대 코드","account_i_accept":"동의 함","account_license_terms":"라이센스 및 조건","account_next":"다음","account_you_need_to_accept_license_terms":"먼저 라이센스 및 약관에 동의해야 합니다.","account_verify_fill_optional_fields":"선택적 필드를 확인하고 채우십시오.","account_nickname":"별명","account_gender":"성별","account_male":"남성","account_female":"여성","account_not_say":"말하지마","account_birthday":"생일","account_phone_number":"전화 번호","account_locale":"현지의","account_tip_verified":"확인됨, 로그인 중...","account_verified":"확인","account_unverified":"확인되지 않은","account_signed_up":"가입","account_verify_your_identity":"신원 확인","account_finish":"마치다","account_signed_out":"로그 아웃","account_change_password":"비밀번호 변경","account_change_email":"이메일을 바꾸다","account_change_phone_number":"전화번호 변경","account_sign_out":"로그아웃","account_current_password":"현재 비밀번호","account_re_enter_new_password":"새 비밀번호를 다시 입력하십시오","account_personal_information":"정보","account_edit":"편집하다","account_reset":"초기화","account_greeting":"안녕하세요,","account_cancel":"취소","account_change":"변화","account_not_set":"설정되지 않음","account_setting":"환경","account_copy_code":"코드 복사","account_account_setting":"계정","account_task_page":"신용 작업","account_setting_caption":"비밀번호 변경 / 정보 수정","account_security":"보안","account_want_to_join":"들어 올래?","account_sign_in_now":"로그인","account_changed":"변경됨","account_clipboard_with_invitation_code":"초대 코드 복사됨","account_clipboard_with_code":"복사된 코드","account_invitation_code_dialog_tip":"초대 코드가 포함된 이메일 또는 문자 메시지를 친구에게 보냅니다.","account_available":"사용 가능","account_invited":"초대","account_used":"사용된","account_invitation_code_sent":"초대 코드가 전송되었습니다","account_invitation_channel_required":"하나 이상의 초대 채널을 작성하십시오.","account_no_verification_code":"인증번호를 받을 수 없나요?","account_no_phone_number":"전화번호가 없나요?","account_sign_up_by_email":"이메일로 가입","account_no_email":"이메일이 없나요?","account_sign_up_by_phone_number":"전화번호로 가입","account_no_totp":"TOTP가 없습니까?","account_tip_no_totp":"TOTP가 없는 경우 TOTP를 먼저 설정하십시오.","account_setup_totp":"TOTP 설정","account_contact_information":"연락처 정보","account_delete_account":"계정 삭제","account_deleted":"삭제됨","account_can_not_mfa":"문제가 있는 MFA?","account_set_mfa_type":"구성 MFA","account_disable_mfa":"MFA 비활성화","account_disabled_mfa":"장애인 MFA","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"추천하지 않음","account_oauth_sign_in_with":"{provider}로 로그인","account_sign_in_failed":"로그인 실패","account_tip_oath_sign_up":"현재 {provider} 계정에 해당하는 이메일: {email}은 아직 계정을 만들지 않았습니다.","account_tip_confirm_delete_account":"현재 계정의 비밀번호를 입력하여 현재 계정 삭제를 확인합니다.(삭제된 계정은 복구할 수 없습니다.)","account_tip_config_mfa":"2차 인증으로 SMS 또는 시간 기반 일회용 비밀번호(TOTP)를 사용하도록 선택할 수 있습니다.","account_error_can_not_enable_mfa":"MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_sms_mfa":"SMS MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_can_not_enable_totp_mfa":"TOTP MFA를 활성화하려면 이메일 주소와 휴대폰 번호를 바인딩해야 합니다.","account_tip_setup_totp":"Authenticator와 같은 앱을 사용하여 아래 QR 코드를 스캔하거나 코드를 수동으로 복사하여 보안 토큰을 추가하세요.","account_tip_verify_totp":"TOTP 확인","account_link_your_social_account":"소셜 계정 연결","account_unlink_your_social_account":"소셜 계정 바인딩 해제","account_tip_confirm_link":"현재 계정을 {provider} 계정에 연결하시겠습니까?","account_tip_confirm_unlink":"결합된 {provider} 계정을 취소하시겠습니까?","account_tip_linking":"제본...","account_tip_unlinking":"구속 해제...","account_linked":"경계","account_unlinked":"매여 있지 않은","account_error_can_not_link_to_the_linked_account":"현재 소셜 계정은 다른 계정에 연결되어 있습니다.","account_error_can_not_link_to_the_mismatched_email":"현재 계정과 소셜 계정 이메일 주소가 일치하지 않습니다.","account_error_can_not_link_before_email_verified":"현재 계정이 인증된 이메일에 연결되어 있지 않기 때문에 소셜 계정을 연결할 수 없습니다.","account_tip_confirm_verify_email_phone":"신원 확인을 위해 현재 계정의 이메일과 전화번호로 인증 코드를 보낼지 여부","account_tip_confirm_verify_phone":"신원 확인을 위해 현재 전화번호로 인증 코드를 보낼지 여부","account_error_1_message_60_seconds":"60초마다 하나의 SMS 또는 이메일만 보낼 수 있습니다. {delta}초를 더 기다리세요.","account_error_10_messages_per_day":"각 휴대폰 또는 이메일은 24시간 이내에 10개의 메시지만 보낼 수 있습니다.","account_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","Network Error":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","account_error_user_not_exist":"사용자가 존재하지 않습니다","account_error_incorrect_username_or_password":"잘못된 사용자 이름 또는 비밀번호","account_error_incorrect_original_password":"잘못된 원래 암호","account_error_incorrect_password":"잘못된 비밀번호","account_error_username_not_found":"사용자 이름을 찾을 수 없습니다","account_error_can_not_reset_for_no_verified":"확인되지 않은 계정의 비밀번호는 재설정할 수 없습니다.","account_error_invalid_verification_code":"인증 코드가 잘못되었습니다. 다시 시도해 주세요.","account_error_expired_verification_code":"인증 코드가 만료되었습니다. 다시 시도해 주세요.","account_error_password_not_long_enough":"비밀번호가 충분히 길지 않습니다","account_error_attempt_limit_exceeded":"시도 제한을 초과했습니다. 잠시 후에 시도하십시오.","account_error_password_attempts_exceeded":"암호 시도 횟수를 초과했습니다.","account_error_invalid_phone_number_format":"잘못된 전화번호 형식","account_error_no_cell_phone_prefix":"전화번호의 접두사를 선택하세요.","account_error_username_already_exists":"사용자 이름이 이미 존재합니다","account_error_you_need_to_accept_license_terms":"먼저 라이선스 및 약관에 동의해야 합니다.","account_error_inactive_code":"초대 코드는 활성화된 코드가 아닙니다.","account_error_non_existent_code":"초대 코드가 존재하지 않습니다","account_error_unexpected":"예기치 않은 오류","account_error_can_not_change_email_before_phone_bound":"전화번호가 바인딩되기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_email_before_unbound_social_account":"소셜 계정 바인딩을 해제하기 전에는 이메일을 변경할 수 없습니다.","account_error_can_not_change_phone_before_email_bound":"이메일이 바인딩되기 전에는 전화번호를 변경할 수 없습니다.","account_error_can_not_change_email_phone_with_mfa_enabled":"MFA를 비활성화하기 전에는 이메일 또는 휴대폰 번호를 변경할 수 없습니다.","account_error_not_supported_yet":"지원되지 않음","account_error_same_email":"새 이메일 주소는 원래 이메일 주소와 같을 수 없습니다.","account_error_same_phone":"새 전화번호는 원래 전화번호와 같을 수 없습니다.","account_error_email_not_exists":"이메일 주소가 존재하지 않습니다","account_error_email_already_exists":"주어진 이메일을 사용하는 계정이 이미 존재합니다.","account_error_phone_already_exists":"주어진 전화번호를 사용하는 계정이 이미 존재합니다.","account_error_mfa_token_mismatch":"소프트웨어 토큰 코드 불일치","account_error_recaptcha_not_loaded":"네트워크에 문제가 있습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_recaptcha_validation_failed":"ReCAPTCHA 유효성 검사에 실패했습니다. 다시 시도하려면 네트워크를 다시 연결하고 응용 프로그램을 다시 시작하십시오.","account_error_sign_in_in_progress":"보류 중인 로그인 시도가 이미 진행 중입니다.","account_field_range":"{0}-{1} 문자 입력 제한","account_field_only_alphanumeric":"영숫자만 지원","account_field_only_alphanumeric_and_symbol":"영숫자 및 기호만 지원","account_field_only_chinese_alphanumeric_space_underline":"영숫자, 공백, 밑줄만 지원합니다.","account_field_prefix_without_number_space":"첫 번째 문자는 숫자나 공백일 수 없습니다.","account_field_suffix_without_space":"공백으로 끝날 수 없습니다.","account_field_without_repeat_space":"연속으로 여러 공백을 사용할 수 없습니다.","account_field_can_not_only_alphanumeric":"문자나 숫자만 사용할 수 없습니다.","account_field_must_have_number_characters":"숫자 문자가 있어야 합니다.","account_field_verification_code":"인증 코드는 6자리여야 합니다.","account_field_invitation_code":"초대 코드는 영숫자여야 합니다.","account_field_phone_number":"잘못된 전화번호 형식","account_invalid_email_format":"잘못된 이메일 형식","account_sign_out_confirm":"로그아웃하시겠습니까? 이렇게 하면 모든 작업이 중지됩니다.","account_sign_out_anyway":"무시하고 로그아웃","account_signing_out":"로그아웃 중...","account_request_save_settings":"설정이 저장되지 않습니다. 로그아웃하기 전에 변경 사항을 저장해야 합니다.","pay":"지불하다","pay_with_credit":"다운로드 가속화 비용을 지불합니다. {0} 크레딧이 필요합니다.","pay_with_credit_payed":"가속. 여전히 약 {0} 크레딧이 필요합니다.","create_payment":"결제 생성","pay_target":"표적","pay_for_torrent":"{0} 지불","your_subid":"당신의 subId","your_credits":"당신의 크레딧","pay_point_for_data":"{1} 데이터에 대해 {0} 포인트 지불","auto_renew":"자동 갱신 활성화","transaction_details":"상세 거래 내역","transaction_id":"ID","transaction_payer":"지불인","transaction_payee":"수취인","transaction_category":"범주","transaction_changed_amount":"변경 금액","transaction_meta":"메타","transaction_status":"상태","transaction_creation_time":"생성 시간","receipt_code":"영수증 코드","transfer_amount":"이체 금액","code_the_receipt_code":"아래의 영수증 코드를 지불인에게 복사하십시오.","fill_the_receipt_code":"수취인이 제공한 결제 코드를 입력하여 송금","expense":"비용","copied":"복사됨","transfer":"옮기다","receive":"받다","copy":"복사","withdraw_fund":"자금 인출","category_paydata_payer":"데이터 비용","category_paydata_payee":"데이터 수입","category_transfer":"옮기다","category_bonus":"보너스","category_recharge":"재충전","status_pending":"보류 중","status_completed":"완전한","status_finish":"마치다","status_failed":"실패한","tip_invalid_receiver":"잘못된 수신자 코드","tip_invalid_amount":"신용 금액은 0-1000 범위의 부동 소수점이어야 합니다(최소 정밀도는 0.001임).","credit_get_more":"더 많은 크레딧 받기","credit_no_data":"자료 없음","credit_loading":"로드 중...","credit_not_enough_amount":"크레딧이 부족합니다","credit_amount_not_enough":"크레딧이 부족합니다","credit_payee_not_exist":"수취인이 존재하지 않습니다.","credit_invalid_amount":"유효하지 않은 크레딧 금액","credit_can_not_transfer_to_yourself":"자신에게 양도할 수 없습니다.","credit_latest":"최신","credit_error_network":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","add_subtitles":"자막 추가","open_file":"파일 열기...","advanced_options":"고급 옵션","title":"제목","location":"위치","subtitle_file":"자막 파일","unsupported_subtitle_type":"{0} 파일 형식은 지원되는 자막 형식이 아닙니다.","not_default_player":"기본 비디오 플레이어가 설정되지 않았습니다.","this_is_an_audio_file":"이것은 오디오 파일입니다","the_added_subtitle_already_exists":"추가된 자막이 이미 존재합니다.","stop_stream_player":"작업이 일시 중지 또는 삭제되어 스트리밍 미디어가 종료되었습니다.","stop_player":"파일이 삭제되어 플레이어가 종료되었습니다.","playing_timeout_hint":"대기 시간이 초과되었습니다. 과제를 확인해주세요","autoplay_hint":"브라우저에서 자동 재생을 차단할 수 있습니다. 플레이어가 재생되지 않으면 화면을 클릭하여 계속하십시오.","remove_playing_confirm":"{0}는 아직 재생 중입니다. 제거하면 플레이어가 중지됩니다. 제거하시겠습니까?","unsupported_in_browser":"브라우저 모드에서는 아직 지원되지 않음","client":"고객","warning":"경고","enable":"할 수 있게 하다","disable":"장애를 입히다","auto":"자동","encrypt_connection":"연결 암호화","encrypted_connection":"암호화된 연결","non_encrypted_connection":"암호화되지 않은 연결","connected_wires_not_disconnect":"연결된 전선이 끊어지지 않습니다","audio":"오디오","video":"동영상","image":"영상","subtitle":"부제","zip":"지퍼","text":"텍스트","unknown":"알려지지 않은","add":"추가하다","undo":"실행 취소","backup":"지원","not_default_app":"${displayName}은(는) 토렌트 및 미디어용 기본 앱이 아닙니다. 기본값으로 설정하시겠습니까?","dont_show_again":"다시 표시하지 않음","go_to_settings":"설정으로 바로 가기","about_alphabiz":"약 ${displayName}","last_check_at":"마지막 확인 시간","update_channel":"채널 업데이트","check_for_update":"업데이트를 확인","checking_for_update":"업데이트 확인 중...","no_update_available":"사용 가능한 업데이트 없음","update_available":"업데이트 가능","update_now":"지금 업데이트","update_later":"나중에 업데이트","click_to_update":"지금 업데이트 버튼을 클릭하여 다운로드 및 업데이트","update_failed":"업데이트가 실패","update_failed_message":"업데이트하는 동안 오류가 발생했습니다:","check_shasum_failed":"설치 프로그램의 무결성을 확인하지 못했습니다.","downloading_update":"업데이트 다운로드 중...","ready_to_update":"업데이트 준비 완료","restart_to_update":"업데이트가 다운로드됩니다. ${displayName}는 잠시 동안 업데이트를 위해 종료됩니다.","already_latest":"현재 버전({0})은 이미 최신 버전입니다.","update_timeout":"업데이트 시간 초과","no_available_release":"사용 가능한 릴리스 없음","no_available_installer":"사용 가능한 설치 프로그램 없음","feedback":"피드백","select_a_type":"유형 선택","category":"범주","select_a_category":"카테고리 선택","require_title":"제목은 필수 항목입니다.","describe_your_problem":"문제를 설명하십시오","report_a_bug":"버그 신고","request_a_new_feature":"새 기능 요청","download_or_upload":"다운로드 업로드","others":"기타","submit_with_system_info":"시스템 정보와 함께 제출","submit_feedback":"피드백 제출","tweet_us":"트윗하기","tweet_too_long":"트윗이 너무 깁니다","delete_characters":"최소 {0} 문자를 삭제하십시오.","rest_characters":"{0} 더 많은 문자를 입력할 수 있습니다.","update_alphabiz":"업데이트 ${displayName}","current_version":"현재 버전","cancel_update":"업데이트 취소","slow_download_speed":"너무 느린 다운로드","slow_download_speed_caption":"현재 설치 프로그램 다운로드가 너무 느립니다. 네트워크 상태를 확인하십시오","update_canceled":"업데이트 취소됨","current_version_release_time":"현재 버전의 출시 시간","expired_app":"${displayName} 만료됨","version_out_of_date":"오래된 버전","have_to_update":"${displayName} 버전이 오래되었습니다. 일부 프로토콜 또는 API는 더 이상 사용되지 않습니다. 계속하기 전에 ${displayName}를 업데이트해야 합니다.","exit_alphabiz":"${displayName} 종료","exit_and_update":"종료 및 업데이트 적용","new_version_hint":"새 버전을 사용할 수 있습니다","no_new_version":"사용 가능한 새 버전이 없습니다.","current_is_latest":"현재 버전이 이미 최신 버전입니다.","click_to_check_update":"[업데이트 확인] 버튼을 클릭하여 업데이트 확인","download_latest_version_from_website":"최신 버전을 다운로드하려면 공식 웹 사이트를 방문하십시오.","to_the_website":"웹사이트로","network_diagnotic":"네트워크 진단","diagnotic":"특수 증상","click_to_check":"클릭하여 확인","click_to_check_again":"다시 확인하려면 클릭","checking":"확인 중","online":"온라인","offline":"오프라인","dns_look_up":"DNS 조회","error":"오류","aws_service":"AWS 서비스","network_pings":"네트워크 핑","not_found":"찾을 수 없음","packet_loss":"패킷 손실","official_site":"공식 사이트","download_test":"테스트 다운로드","test_task":"테스트 작업 {0}","download_failed":"다운로드 실패","second_spend":"{0} 지출","open_default_player_failed":"기본 플레이어를 열지 못했습니다.","copied_to_clipboard":"클립보드에 복사됨","go_to":"이동","region_not_available":"사용할 수 없는 지역","region_not_available_message":"죄송합니다! 귀하의 지역은 이 앱을 사용할 수 없습니다. 이 앱은 {0}초 후에 종료됩니다.","confirm":"확인하다","no_available_result":"사용 가능한 결과 없음","invalid_password_format":"비밀번호 포맷이 맞지 않습니다","invalid_password_format_same":"비밀번호는 기존 비밀번호와 동일합니다.","error_password":"비밀번호 오류","keychain_setting":"키체인","setting_description":"클라우드 스토리지: 주요 데이터를 클라우드에 저장합니다.\\n암호 변경: 미디어 라이브러리 키의 암호를 변경합니다.\\nMnemonic: 키 생성 및 복원을 위한 대체 방법입니다.\\n로컬 키 가져오기: 로컬에 저장된 키를 미디어 라이브러리로 가져옵니다.\\n내보내기 키: 현재 미디어 라이브러리 데이터를 로컬 또는 클라우드에 저장합니다.\\n클라우드에 키 백업: 백업을 위해 현재 미디어 라이브러리 데이터를 클라우드로 업데이트합니다.","refresh_status":"업데이트 상태","confirm_import_key":"가져오기 키 확인","confirm_update_cloud_key":"이미 클라우드에 키가 있습니다. 키를 업데이트하면 원래 키를 덮어씁니다. 클라우드에 저장된 키를 업데이트하시겠습니까?","export_key_with_cloud":"클라우드에 저장된 라이브러리 키를 내보내기 위해 설정한 독립 암호를 입력하고 잠금 해제 암호로 키 파일을 잠급니다.","store_cloud_key_prompt_password":"클라우드에 라이브러리 키를 저장하기 위해 독립적인 암호를 입력하십시오.","update_cloud_key_prompt_password":"독립적인 암호를 설정하여 라이브러리 키를 암호화한 다음 클라우드로 업데이트","enable_cloud_storage_prompt_password":"클라우드에 저장된 키의 암호를 설정하여 클라우드에서 키를 검색할 수 있습니다.","input_unlock_password":"잠금해제 비밀번호 설정","export_local_prompt_password":"키 파일을 암호화하려면 잠금 해제 암호를 설정하십시오. 이 비밀번호는 저장되지 않으므로 비밀번호를 분실하면 라이브러리 키를 잠금 해제할 수 없습니다.","require_unlock_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","require_independent_password":"클라우드에 저장된 키를 가져오려면 독립적인 비밀번호를 입력하세요.","import_local_prompt_password":"키 파일이 잠겨 있습니다. 잠금 해제 암호를 입력하십시오","select_encrypt_mode":"암호화 모드 선택","update_cloud_key":"클라우드에 저장된 키 업데이트","backup_to_cloud":"라이브러리 키를 클라우드에 백업","save_local":"라이브러리 키를 로컬 암호화 파일로 저장","create_new_key":"새 라이브러리 키 만들기","creating_lib_key":"라이브러리 키 생성 중...","loading_lib_key":"라이브러리 키 로드 중...","failed_to_create_lib_key":"라이브러리 키를 만들지 못했습니다.","failed_to_load_lib_key":"라이브러리 키를 로드하지 못했습니다.","import_local_key":"로컬로 키 가져오기","import_lib_key_from_local":"라이브러리 키를 로컬로 가져오기","import_from_cloud":"클라우드에서 라이브러리 키 가져오기","create_or_import_key":"라이브러리 키 만들기 또는 가져오기","create_or_import_key_desc":"라이브러리 키는 분산형 데이터베이스로 콘텐츠를 가져오고 게시하는 데 사용되는 독립적인 키입니다.","store_your_lib_key":"라이브러리 키 저장","export_cloud_key":"클라우드에서 키 내보내기","export_current_key":"현재 키 내보내기","change_password":"비밀번호 변경","enable_cloud_storage":"클라우드 스토리지 활성화","disable_cloud_storage":"클라우드 스토리지 비활성화","disable_cloud_storage_desc":"클라우드 저장소를 비활성화하면 클라우드에 저장된 키가 제거됩니다. 키가 로컬에 저장되었는지 확인하십시오.","sync_at":"동기화 위치: {time}","cloud_storage_enabled":"{storage}와 키체인 동기화","cloud_storage_disabled":"클라우드 스토리지 비활성화됨","saved_locally":"로컬에 저장됨","export_key":"키 파일 내보내기","cloud_independent_password":"클라우드 독립 암호","key_file_unlock_password":"키 파일 잠금 해제 암호","re_enter_unlock_password":"잠금해제 비밀번호 재입력","independent_password_not_enabled":"현재 비밀번호는 알파비즈 계정 비밀번호입니다(독립적인 비밀번호는 설정되어 있지 않습니다)","use_cognito_hash":"Alphabiz 계정 비밀번호 사용","use_independent_password":"독립적인 비밀번호 사용","keychain_lib":"도서관 열쇠","loading_keychain_state":"키체인 로드 중...","backing_up":"백업...","backup_current_key":"현재 키를 클라우드에 백업","cloud_lib_key_not_existed":"클라우드에 라이브러리 키가 없습니다.","open_keychain_file":"키체인 파일 열기","confirm_open_abk":"ABK 파일을 여시겠습니까","use_the_key":"열쇠를 사용","backup_the_key":"키를 클라우드에 백업","keychain_data_does_not_exist":"키체인 데이터가 존재하지 않습니다","timeout of 0ms exceeded":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","XhrError":"네트워크에 문제가 있습니다. 나중에 다시 시도하십시오.","payer credit amount is not enough":"크레딧이 부족합니다","payee does not exist":"수취인이 존재하지 않습니다.","block_list_manage":"차단 목록 관리","blocked_users":"차단된 사용자","blocked_channels":"차단된 채널","unblock_user":"사용자 차단 해제","unblock_channel":"채널 차단 해제","no_blocked_user":"차단된 사용자 없음","no_blocked_channel":"차단된 채널 없음","field_required":"{0}이(가) 필요합니다.","setting":"환경","unknown_media":"알 수 없는 미디어","settings_button_visible":"버튼 표시","settings_setting":"환경","settings_playback_rate":"재생 속도","settings_subtitle":"부제","settings_pip":"씨","settings_fullscreen":"전체 화면","settings_subtitle_options":"자막 옵션","settings_normal":"정상","settings_italic":"이탤릭체","settings_lighter":"거룻배","settings_bolder":"대담한","settings_small":"작은","settings_large":"크기가 큰","about":"에 대한","services":"서비스","hide":"숨다","hide_others":"다른 사람 숨기기","show_all":"모두 보이기","quit":"그만두다","edit":"편집하다","redo":"다시 하다","cut":"자르다","paste":"반죽","select_all":"모두 선택","view":"보다","reload":"새로고침","toggle_full_screen":"전체 화면 전환","toggle_developer_tools":"개발자 도구 전환","window":"창문","minimize":"최소화","bring_all_to_front":"모두 앞으로 가져오기","help":"돕다","github_repo":"Github 레포","issues":"문제","learn_more":"더 알아보기","learn_spelling":"맞춤법 배우기","lookup_selection":"\\"{selection}\\" 검색","search_with_google":"Google로 검색","save_as":"다른 이름으로 저장","save_image":"이미지를 저장","save_image_as":"이미지를 다른 이름으로 저장...","copy_link":"링크 복사","save_link_as":"다른 이름으로 링크 저장...","copy_image":"복사 이미지","copy_image_as":"다음으로 이미지 복사...","copy_image_address":"이미지 주소 복사","download_complete":"다운로드를 완료하였습니다","download_complete_message":"{0} 다운로드됨","is_running":"{0} 실행 중","open":"{0} 열기","launch_problem":"시작 문제","ask_clear_data":"{0}를 실행하려고 시도했지만 여러 번 실패한 것 같습니다.\\n모든 앱 데이터를 지우고 나중에 실행하시겠습니까?","launch_directly":"직접 실행","clear_all_data":"모든 데이터 지우기","ask_clear_confirm":"이렇게 하면 모든 구성, 로그 및 사용자 데이터가 제거됩니다!\\n그런 다음 {0}를 다시 시작해야 할 수도 있습니다.\\n데이터를 지우시겠습니까?","confirm_launch":"아니요, 직접 시작합니다.","confirm_clear":"예, 모든 데이터를 삭제합니다."}')},"6ce4":function(e,t,a){},7:function(e,t){},7285:function(e,t,a){"use strict";a("c066")},7297:function(e,t,a){"use strict";a("a5fe")},7405:function(e,t,a){},7447:function(e,t,a){},7471:function(e,t,a){"use strict";(function(e){var n=a("3fd2"),o=a.n(n);let i;if(o.a.main())i=a("9e8c"),Object.defineProperty(e,"lzma",{get(){return i}});else if(o.a.renderer())i=require("lzma-native"),Object.defineProperty(e,"lzma",{get(){return i}});else{const t=a("6ca2").LZMA;i=new t,Object.defineProperty("undefined"===typeof window?e:window,"lzma",{get(){return i}})}t["a"]=i}).call(this,a("0ee4"))},7686:function(e,t,a){},"76b4":function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},"76ec":function(e,t,a){"use strict";t["a"]=[" GNU GENERAL PUBLIC LICENSE"," Version 2, June 1991",""," Copyright (C) 1989, 1991 Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA"," Everyone is permitted to copy and distribute verbatim copies"," of this license document, but changing it is not allowed.",""," Preamble",""," The licenses for most software are designed to take away your","freedom to share and change it. By contrast, the GNU General Public","License is intended to guarantee your freedom to share and change free","software--to make sure the software is free for all its users. This","General Public License applies to most of the Free Software","Foundation's software and to any other program whose authors commit to","using it. (Some other Free Software Foundation software is covered by","the GNU Lesser General Public License instead.) You can apply it to","your programs, too.",""," When we speak of free software, we are referring to freedom, not","price. Our General Public Licenses are designed to make sure that you","have the freedom to distribute copies of free software (and charge for","this service if you wish), that you receive source code or can get it","if you want it, that you can change the software or use pieces of it","in new free programs; and that you know you can do these things.",""," To protect your rights, we need to make restrictions that forbid","anyone to deny you these rights or to ask you to surrender the rights.","These restrictions translate to certain responsibilities for you if you","distribute copies of the software, or if you modify it.",""," For example, if you distribute copies of such a program, whether","gratis or for a fee, you must give the recipients all the rights that","you have. You must make sure that they, too, receive or can get the","source code. And you must show them these terms so they know their","rights.",""," We protect your rights with two steps: (1) copyright the software, and","(2) offer you this license which gives you legal permission to copy,","distribute and/or modify the software.",""," Also, for each author's protection and ours, we want to make certain","that everyone understands that there is no warranty for this free","software. If the software is modified by someone else and passed on, we","want its recipients to know that what they have is not the original, so","that any problems introduced by others will not reflect on the original","authors' reputations.",""," Finally, any free program is threatened constantly by software","patents. We wish to avoid the danger that redistributors of a free","program will individually obtain patent licenses, in effect making the","program proprietary. To prevent this, we have made it clear that any","patent must be licensed for everyone's free use or not licensed at all.",""," The precise terms and conditions for copying, distribution and","modification follow.",""," GNU GENERAL PUBLIC LICENSE"," TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION",""," 0. This License applies to any program or other work which contains","a notice placed by the copyright holder saying it may be distributed",'under the terms of this General Public License. The "Program", below,','refers to any such program or work, and a "work based on the Program"',"means either the Program or any derivative work under copyright law:","that is to say, a work containing the Program or a portion of it,","either verbatim or with modifications and/or translated into another","language. (Hereinafter, translation is included without limitation in",'the term "modification".) Each licensee is addressed as "you".',"","Activities other than copying, distribution and modification are not","covered by this License; they are outside its scope. The act of","running the Program is not restricted, and the output from the Program","is covered only if its contents constitute a work based on the","Program (independent of having been made by running the Program).","Whether that is true depends on what the Program does.",""," 1. You may copy and distribute verbatim copies of the Program's","source code as you receive it, in any medium, provided that you","conspicuously and appropriately publish on each copy an appropriate","copyright notice and disclaimer of warranty; keep intact all the","notices that refer to this License and to the absence of any warranty;","and give any other recipients of the Program a copy of this License","along with the Program.","","You may charge a fee for the physical act of transferring a copy, and","you may at your option offer warranty protection in exchange for a fee.",""," 2. You may modify your copy or copies of the Program or any portion","of it, thus forming a work based on the Program, and copy and","distribute such modifications or work under the terms of Section 1","above, provided that you also meet all of these conditions:",""," a) You must cause the modified files to carry prominent notices"," stating that you changed the files and the date of any change.",""," b) You must cause any work that you distribute or publish, that in"," whole or in part contains or is derived from the Program or any"," part thereof, to be licensed as a whole at no charge to all third"," parties under the terms of this License.",""," c) If the modified program normally reads commands interactively"," when run, you must cause it, when started running for such"," interactive use in the most ordinary way, to print or display an"," announcement including an appropriate copyright notice and a"," notice that there is no warranty (or else, saying that you provide"," a warranty) and that users may redistribute the program under"," these conditions, and telling the user how to view a copy of this"," License. (Exception: if the Program itself is interactive but"," does not normally print such an announcement, your work based on"," the Program is not required to print an announcement.)","","These requirements apply to the modified work as a whole. If","identifiable sections of that work are not derived from the Program,","and can be reasonably considered independent and separate works in","themselves, then this License, and its terms, do not apply to those","sections when you distribute them as separate works. But when you","distribute the same sections as part of a whole which is a work based","on the Program, the distribution of the whole must be on the terms of","this License, whose permissions for other licensees extend to the","entire whole, and thus to each and every part regardless of who wrote it.","","Thus, it is not the intent of this section to claim rights or contest","your rights to work written entirely by you; rather, the intent is to","exercise the right to control the distribution of derivative or","collective works based on the Program.","","In addition, mere aggregation of another work not based on the Program","with the Program (or with a work based on the Program) on a volume of","a storage or distribution medium does not bring the other work under","the scope of this License.",""," 3. You may copy and distribute the Program (or a work based on it,","under Section 2) in object code or executable form under the terms of","Sections 1 and 2 above provided that you also do one of the following:",""," a) Accompany it with the complete corresponding machine-readable"," source code, which must be distributed under the terms of Sections"," 1 and 2 above on a medium customarily used for software interchange; or,",""," b) Accompany it with a written offer, valid for at least three"," years, to give any third party, for a charge no more than your"," cost of physically performing source distribution, a complete"," machine-readable copy of the corresponding source code, to be"," distributed under the terms of Sections 1 and 2 above on a medium"," customarily used for software interchange; or,",""," c) Accompany it with the information you received as to the offer"," to distribute corresponding source code. (This alternative is"," allowed only for noncommercial distribution and only if you"," received the program in object code or executable form with such"," an offer, in accord with Subsection b above.)","","The source code for a work means the preferred form of the work for","making modifications to it. For an executable work, complete source","code means all the source code for all modules it contains, plus any","associated interface definition files, plus the scripts used to","control compilation and installation of the executable. However, as a","special exception, the source code distributed need not include","anything that is normally distributed (in either source or binary","form) with the major components (compiler, kernel, and so on) of the","operating system on which the executable runs, unless that component","itself accompanies the executable.","","If distribution of executable or object code is made by offering","access to copy from a designated place, then offering equivalent","access to copy the source code from the same place counts as","distribution of the source code, even though third parties are not","compelled to copy the source along with the object code.",""," 4. You may not copy, modify, sublicense, or distribute the Program","except as expressly provided under this License. Any attempt","otherwise to copy, modify, sublicense or distribute the Program is","void, and will automatically terminate your rights under this License.","However, parties who have received copies, or rights, from you under","this License will not have their licenses terminated so long as such","parties remain in full compliance.",""," 5. You are not required to accept this License, since you have not","signed it. However, nothing else grants you permission to modify or","distribute the Program or its derivative works. These actions are","prohibited by law if you do not accept this License. Therefore, by","modifying or distributing the Program (or any work based on the","Program), you indicate your acceptance of this License to do so, and","all its terms and conditions for copying, distributing or modifying","the Program or works based on it.",""," 6. Each time you redistribute the Program (or any work based on the","Program), the recipient automatically receives a license from the","original licensor to copy, distribute or modify the Program subject to","these terms and conditions. You may not impose any further","restrictions on the recipients' exercise of the rights granted herein.","You are not responsible for enforcing compliance by third parties to","this License.",""," 7. If, as a consequence of a court judgment or allegation of patent","infringement or for any other reason (not limited to patent issues),","conditions are imposed on you (whether by court order, agreement or","otherwise) that contradict the conditions of this License, they do not","excuse you from the conditions of this License. If you cannot","distribute so as to satisfy simultaneously your obligations under this","License and any other pertinent obligations, then as a consequence you","may not distribute the Program at all. For example, if a patent","license would not permit royalty-free redistribution of the Program by","all those who receive copies directly or indirectly through you, then","the only way you could satisfy both it and this License would be to","refrain entirely from distribution of the Program.","","If any portion of this section is held invalid or unenforceable under","any particular circumstance, the balance of the section is intended to","apply and the section as a whole is intended to apply in other","circumstances.","","It is not the purpose of this section to induce you to infringe any","patents or other property right claims or to contest validity of any","such claims; this section has the sole purpose of protecting the","integrity of the free software distribution system, which is","implemented by public license practices. Many people have made","generous contributions to the wide range of software distributed","through that system in reliance on consistent application of that","system; it is up to the author/donor to decide if he or she is willing","to distribute software through any other system and a licensee cannot","impose that choice.","","This section is intended to make thoroughly clear what is believed to","be a consequence of the rest of this License.",""," 8. If the distribution and/or use of the Program is restricted in","certain countries either by patents or by copyrighted interfaces, the","original copyright holder who places the Program under this License","may add an explicit geographical distribution limitation excluding","those countries, so that distribution is permitted only in or among","countries not thus excluded. In such case, this License incorporates","the limitation as if written in the body of this License.",""," 9. The Free Software Foundation may publish revised and/or new versions","of the General Public License from time to time. Such new versions will","be similar in spirit to the present version, but may differ in detail to","address new problems or concerns.","","Each version is given a distinguishing version number. If the Program",'specifies a version number of this License which applies to it and "any','later version", you have the option of following the terms and conditions',"either of that version or of any later version published by the Free","Software Foundation. If the Program does not specify a version number of","this License, you may choose any version ever published by the Free Software","Foundation.",""," 10. If you wish to incorporate parts of the Program into other free","programs whose distribution conditions are different, write to the author","to ask for permission. For software which is copyrighted by the Free","Software Foundation, write to the Free Software Foundation; we sometimes","make exceptions for this. Our decision will be guided by the two goals","of preserving the free status of all derivatives of our free software and","of promoting the sharing and reuse of software generally.",""," NO WARRANTY",""," 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY","FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN","OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES",'PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED',"OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF","MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS","TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE","PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,","REPAIR OR CORRECTION.",""," 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING","WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR","REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,","INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING","OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED","TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY","YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER","PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE","POSSIBILITY OF SUCH DAMAGES.",""," END OF TERMS AND CONDITIONS",""," How to Apply These Terms to Your New Programs",""," If you develop a new program, and you want it to be of the greatest","possible use to the public, the best way to achieve this is to make it","free software which everyone can redistribute and change under these terms.",""," To do so, attach the following notices to the program. It is safest","to attach them to the start of each source file to most effectively","convey the exclusion of warranty; and each file should have at least",'the "copyright" line and a pointer to where the full notice is found.',""," "," Copyright (C) ",""," This program is free software; you can redistribute it and/or modify"," it under the terms of the GNU General Public License as published by"," the Free Software Foundation; either version 2 of the License, or"," (at your option) any later version.",""," This program is distributed in the hope that it will be useful,"," but WITHOUT ANY WARRANTY; without even the implied warranty of"," MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"," GNU General Public License for more details.",""," You should have received a copy of the GNU General Public License along"," with this program; if not, write to the Free Software Foundation, Inc.,"," 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.","","Also add information on how to contact you by electronic and paper mail.","","If the program is interactive, make it output a short notice like this","when it starts in an interactive mode:",""," Gnomovision version 69, Copyright (C) year name of author"," Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'."," This is free software, and you are welcome to redistribute it"," under certain conditions; type `show c' for details.","","The hypothetical commands `show w' and `show c' should show the appropriate","parts of the General Public License. Of course, the commands you use may","be called something other than `show w' and `show c'; they could even be","mouse-clicks or menu items--whatever suits your program.","","You should also get your employer (if you work as a programmer) or your",'school, if any, to sign a "copyright disclaimer" for the program, if',"necessary. Here is a sample; alter the names:",""," Yoyodyne, Inc., hereby disclaims all copyright interest in the program"," `Gnomovision' (which makes passes at compilers) written by James Hacker.",""," , 1 April 1989"," Ty Coon, President of Vice","","This General Public License does not permit incorporating your program into","proprietary programs. If your program is a subroutine library, you may","consider it more useful to permit linking proprietary applications with the","library. If this is what you want to do, use the GNU Lesser General","Public License instead of this License.",""]},7895:function(e,t,a){"use strict";a("ae24")},"79e7":function(e,t,a){"use strict";var n=a("ff9b"),o=(a("de6c"),a("3387")),i=a.n(o);function r(e,t,a){const i=a?e=>e[a]:e=>e;for(const s of t){const t=e.findIndex((e=>i(e)===i(s)));-1===t?e.push(s):"object"===typeof s?Array.isArray(s)?r(e[t],s):Object(o["isEqual"])(e[t],s)||n["a"].set(e,t,s):n["a"].set(e,t,s)}for(let n=0;ni(t)===i(e[n])))||e.splice(n--,1);return e}const s={tasksCount:{downloading:0,uploading:0,downloaded:0},abKeys:{},uploadingTasks:[],shouldDisableTasks:!1,uploadingLoading:!1,updatingTaskList:!1},l=new n["a"]({data(){return{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0}}}),c={DOWNLOADER_UPDATE_DOWNLOADING_TASK_COUNT(e,t){e.tasksCount.downloading=t},DOWNLOADER_UPDATE_UPLOADING_TASK_COUNT(e,t){e.tasksCount.uploading=t},DOWNLOADER_UPDATE_DOWNLOADED_TASK_COUNT(e,t){e.tasksCount.downloaded=t},DOWNLOADER_SET_UPLOADING_LOADING(e,t){e.uploadingLoading=t},updateTaskCount(e,t){Object.assign(e.tasksCount,t)},changeDisableTasks(e,t){e.shouldDisableTasks=t},updateABKeys(e,t){for(const a in t){const n=t[a],o=e.abKeys[a];o?e.abKeys[a]=[...r(o,n,"key")]:e.abKeys=t}},updateUploading(e,t){console.log("updateUploading",t),r(e.uploadingTasks,t,"abUrl")},setUpdatingTasks(e,t){e.updatingTaskList=t},updateTaskInfo(e,t){n["a"].set(l,t.type,t.info)},updateTasks(e,t){const{uploadingTasks:a,tasksCount:n,abKeyObj:o}=t;r(e.uploadingTasks,a,"abUrl");for(const i in n)e.tasksCount[i]=n[i];for(const i in o){const t=o[i],a=e.abKeys[i];a?r(a,t,"key"):e.abKeys=o}}},d={},u={taskCount(e){return e.tasksCount},getDownloadingTaskCount(e){return e.tasksCount.downloading},getUploadingTaskCount(e){return e.tasksCount.uploading},getDownloadedTaskCount(e){return e.tasksCount.downloaded},shouldDisableTasks(e){return e.shouldDisableTasks},isUploadingLoading(e){return e.uploadingLoading},abKeys(e){return e.abKeys},uploading(e){return e.uploadingTasks},tasks(){return l.$data},allTasks(){return[...l.downloading,...l.uploading,...l.downloaded]}},_={namespaced:!1,state:s,mutations:c,actions:d,getters:u};var p=_,m=a("d310"),h=a("8a63"),g=a("9efe"),f=a("e74d"),b=a("e75b"),y=a("d7df"),v=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const w=new b["a"].Rest("ABDevRest"),k=()=>v(void 0,void 0,void 0,(function*(){const e=window.$blockchain.$store.account;if(yield e.initCurrentAccount(),e.account)return;const t=yield e.createNewAccount();yield t.confirm(),yield e.recoveryAccount({key:t.toPrivateKeyObject().privateKeyHex}),console.log("The blockchain account has been created automatically: ",t)})),S=()=>v(void 0,void 0,void 0,(function*(){"blockchain"===localStorage.getItem("dataPaymentMixin.mode")&&(yield k())})),C=e=>{var t,a;return{sub:e.attributes.sub,username:e.username,signingTime:e.attributes["custom:signing_time"],signingIpAddress:e.attributes["custom:signing_ip_address"],lastLoginTime:e.attributes["custom:last_login_time"],lastIpAddress:e.attributes["custom:last_ip_address"],accountLevel:e.attributes["custom:account_level"],msgLocale:e.attributes["custom:msg_locale"],nickname:e.attributes.nickname,gender:e.attributes.gender,birthday:e.attributes.birthdate,locale:e.attributes.locale,email:e.attributes.email,phoneNumber:e.attributes.phone_number,phoneNumberCountryCode:e.attributes["custom:phone_number_code"],emailVerified:e.attributes.email_verified,phoneNumberVerified:e.attributes.phone_number_verified,invitationCode:null===(t=e.dynamo_attrs)||void 0===t?void 0:t.invitation_code,identities:JSON.parse(null!==(a=e.attributes.identities)&&void 0!==a?a:"[]")}},x=["sub","username","email","emailVerified","phoneNumber","phoneNumberCountryCode","phoneNumberVerified","signingTime","signingIpAddress","lastLoginTime","lastIpAddress","accountLevel","msgLocale","invitationCode","identities"],$=["nickname","gender","birthday","locale"],T=Object.assign(Object.assign({authState:null},[...x,...$].reduce(((e,t)=>(e[t]=void 0,e)),{})),{verification:null,preferredMFA:null}),z={ACCOUNT_UPDATE_INFO(e,t){Object.keys(t).forEach((a=>{const n=a;if(void 0!==t[n])e[n]=t[n];else{const t={gender:"notSay",locale:"notSay"};e[n]=t[n]||""}}))},ACCOUNT_CLEAR_INFO(e){[...x,...$].forEach((t=>{e[t]=void 0}))},ACCOUNT_UPDATE_STATE(e,t){if(e.verification&&["forgotPassword","signUpConfirm","signInConfirm","signUp"].includes(e.authState)&&(e.verification=null),e.authState=t,m["Bus"].$emit("update-authstate",t),"signedIn"!==e.authState)return console.log("Skip not sign in",t);console.log("authState:",e.authState),y["a"].emit("user_login","store - account_update_state"),Object(h["a"])()},ACCOUNT_UPDATE_VERIFICATION(e,t){t?(e.verification||(e.verification={}),Object.assign(e.verification,t)):e.verification=null},ACCOUNT_SET_MFA_TYPE(e,t){e.preferredMFA=t}},P={ACCOUNT_UPDATE_INFO({commit:e}){return v(this,void 0,void 0,(function*(){const t=yield Object(g["f"])();return e("ACCOUNT_UPDATE_INFO",C(t)),f["a"].currentAuthenticatedUser().then((e=>f["a"].getPreferredMFA(e))).then((t=>e("ACCOUNT_SET_MFA_TYPE",t))),{message:"success"}}))},ACCOUNT_REDIRECT_TO_INDEX({dispatch:e,commit:t,state:a}){return v(this,void 0,void 0,(function*(){const n=()=>v(this,void 0,void 0,(function*(){yield Promise.all([S(),e("CREDIT_INIT_DATA")]),t("ACCOUNT_UPDATE_STATE","signedIn")})),o=()=>v(this,void 0,void 0,(function*(){yield Promise.all([e("CREDIT_CLEAR_DATA")]),t("ACCOUNT_UPDATE_STATE","signedOut")}));try{const t=yield Object(g["e"])(!1).catch((e=>(console.warn("debug#859: fetchAuthUser"),console.log(e),null)));if(!t)return yield o();yield e("ACCOUNT_UPDATE_INFO"),"signedIn"!==a.authState?yield n():(console.warn("debug#859: state.authState"),console.log(a.authState))}catch(i){console.error('failed to "ACCOUNT_REDIRECT_TO_INDEX"'),console.warn("debug#859: state.authState"),console.log(i),yield o()}}))},ACCOUNT_SIGN_IN({commit:e,dispatch:t},{username:a,password:n}){return v(this,void 0,void 0,(function*(){const o=yield Object(g["l"])(a,n).catch((e=>e));if(o){if("SMS_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"phone_number",mfaType:o.message,destination:o.destination,user:o.user}),o;if("SOFTWARE_TOKEN_MFA"===o.message)throw e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n,type:"software_token",mfaType:o.message,user:o.user}),o;if("UserNotConfirmedException"===o.code){e("ACCOUNT_UPDATE_VERIFICATION",{username:a,password:n});const i=yield t("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND");throw"success"===i.message?new Error(o.code):i}throw o}return e("ACCOUNT_CLEAR_INFO"),yield t("ACCOUNT_UPDATE_INFO"),yield Promise.all([S(),t("CREDIT_INIT_DATA")]),{message:"success"}}))},ACCOUNT_SIGN_OUT({commit:e,dispatch:t}){return v(this,void 0,void 0,(function*(){yield Object(g["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_DELETE_USER({commit:e,dispatch:t},{password:a}){return v(this,void 0,void 0,(function*(){yield Object(g["x"])(a),yield Object(g["d"])(),yield Object(g["n"])(),e("ACCOUNT_UPDATE_STATE","signedOut"),e("ACCOUNT_CLEAR_INFO"),yield t("CREDIT_CLEAR_DATA")}))},ACCOUNT_SET_MFA_TYPE({dispatch:e,commit:t,state:a},n){return v(this,void 0,void 0,(function*(){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(n))throw new Error("Illegal mfa type");const e=yield f["a"].currentAuthenticatedUser();yield f["a"].setPreferredMFA(e,n);const a=yield f["a"].getPreferredMFA(e);t("ACCOUNT_SET_MFA_TYPE",a)}))},ACCOUNT_MFA_RESEND({dispatch:e,commit:t,state:a}){return v(this,void 0,void 0,(function*(){const n=a.verification.username,o=a.verification.password,i=yield e("ACCOUNT_SIGN_IN",{username:n,password:o}).catch((e=>e));if(!i)throw new Error("Unexpected Error");"SMS_MFA"===i.message?t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"phone_number",mfaType:i.message,destination:i.destination,user:i.user}):"SOFTWARE_TOKEN_MFA"===i.message&&t("ACCOUNT_UPDATE_VERIFICATION",{username:n,password:o,type:"software_token",mfaType:i.message,user:i.user})}))},ACCOUNT_MFA_SUBMIT({state:e,commit:t,dispatch:a},n){return v(this,void 0,void 0,(function*(){const o=e.verification.user,i=e.verification.mfaType;yield Object(g["m"])(o,i,n),t("ACCOUNT_CLEAR_INFO"),yield a("ACCOUNT_UPDATE_INFO"),yield a("CREDIT_INIT_DATA")}))},ACCOUNT_CHANGE_ATTRIBUTES({dispatch:e},t){return v(this,void 0,void 0,(function*(){yield Object(g["b"])(t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_UNLINK_OAUTH({dispatch:e,state:t},a){return v(this,void 0,void 0,(function*(){if(t.identities.length<=0)throw new Error("Not oauth provider existed");const n=t.identities.find((e=>e.providerName===a));if(!n)throw new Error("Can not found oauth provider: "+a);yield Object(g["r"])(a,n.userId),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PASSWORD({commit:e},{oldPassword:t,newPassword:a}){return v(this,void 0,void 0,(function*(){const e=yield f["a"].currentAuthenticatedUser();yield w.post("/account/changePassword",{username:e.getUsername(),AccessToken:e.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:t,ProposedPassword:a})}))},ACCOUNT_FORGOT_PASSWORD_SEND({state:e,commit:t,rootGetters:a},n){return v(this,void 0,void 0,(function*(){const e=a.settings.language,o=yield Object(g["g"])(n,{msgLocale:`${e}:F`});return t("ACCOUNT_UPDATE_VERIFICATION",{username:n,type:o.CodeDeliveryDetails.AttributeName,destination:o.CodeDeliveryDetails.Destination}),{message:"success"}}))},ACCOUNT_FORGOT_PASSWORD_SUBMIT({commit:e,state:t},{code:a,password:n}){return v(this,void 0,void 0,(function*(){yield w.postGuest("/account/forgotPasswordSubmit",{ClientId:f["a"].userPool.getClientId(),ConfirmationCode:a,Password:n,Username:t.verification.username})}))},ACCOUNT_SIGN_UP_NECESSARY({rootGetters:e,commit:t},a){return v(this,void 0,void 0,(function*(){if(!a.email&&!a.phoneNumber)throw new Error("Email or Phone Number must be fill when signing up.");const n=e.settings.language;a.msgLocale=`${n}:${a.email?"E":"P"}`;const o=yield Object(g["o"])(a);return t("ACCOUNT_UPDATE_VERIFICATION",{username:o.user.username,password:a.password,type:o.codeDeliveryDetails.AttributeName,destination:{email:a.email,phone_number:a.phoneNumber}[o.codeDeliveryDetails.AttributeName]}),{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND({state:e,commit:t}){return v(this,void 0,void 0,(function*(){const t=e.verification.username;yield Object(g["i"])(t);return{message:"success"}}))},ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT({commit:e,state:t},{code:a,optAttrs:n}){return v(this,void 0,void 0,(function*(){try{yield Object(g["c"])(t.verification.username,a,n)}catch(e){if(console.warn("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",e),e instanceof Error&&!["User cannot be confirmed. Current status is CONFIRMED","User is already confirmed"].includes(e.message))throw e}return{message:"success"}}))},ACCOUNT_INVITE_CODE({commit:e,dispatch:t},{code:a,contactEmail:n,contactPhone:o}){return v(this,void 0,void 0,(function*(){return yield Object(g["h"])(a,n,o),yield t("ACCOUNT_UPDATE_INFO"),{message:"success"}}))},ACCOUNT_CHANGE_EMAIL_SEND({rootGetters:e,dispatch:t},a){return v(this,void 0,void 0,(function*(){const n=e.settings.language;return T.msgLocale===`${n}:E`||(yield Object(g["k"])(n,"E")),a&&a===T.email?yield Object(g["t"])("email"):yield Object(g["u"])("email",a),yield t("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_EMAIL_SUBMIT({dispatch:e},t){return v(this,void 0,void 0,(function*(){return yield Object(g["v"])("email",t),yield e("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SEND({rootGetters:e,state:t,dispatch:a},{phoneNumber:n,phoneNumberCountryCode:o}){return v(this,void 0,void 0,(function*(){const i=e.settings.language;return t.msgLocale===`${i}:P`||(yield Object(g["k"])(i,"P")),n&&o&&n===t.phoneNumber&&o===t.phoneNumberCountryCode?yield Object(g["t"])("phone_number"):yield Object(g["u"])("phone_number",n,o),yield a("ACCOUNT_UPDATE_INFO")}))},ACCOUNT_CHANGE_PHONE_NUMBER_SUBMIT({dispatch:e},t){return v(this,void 0,void 0,(function*(){return yield Object(g["v"])("phone_number",t),yield e("ACCOUNT_UPDATE_INFO")}))}},A={accountUserInfo(e,t){const a={};return Object.assign(a,t.accountUserOptionalInfo),a.preferredMFA=e.preferredMFA,Object.assign(a,t.accountUserReadonlyInfo),a},accountUserReadonlyInfo(){return x.reduce(((e,t)=>(e[t]=T[t],e)),{})},accountUserOptionalInfo(e){return $.reduce(((t,a)=>(t[a]=e[a],t)),{})}},I={namespaced:!1,state:T,mutations:z,actions:P,getters:A};var q=I,O=a("06e8"),E=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const D=new b["a"].Rest("ABDevRest"),j={Mutations:{CREDIT_SET_INIT_STATE:"CREDIT_SET_INIT_STATE",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_UPDATE:"CREDIT_UPDATE",CREDIT_UPDATE_TXN:"CREDIT_UPDATE_TXN",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION",CREDIT_UPDATE_USER:"CREDIT_UPDATE_USER",CREDIT_UPDATE_EXPENSES:"CREDIT_UPDATE_EXPENSES",CREDIT_UPDATE_INCOME_TODAY:"CREDIT_UPDATE_INCOME_TODAY",CREDIT_UPDATE_TOKEN:"CREDIT_UPDATE_TOKEN",CREDIT_UPDATE_INCOME:"CREDIT_UPDATE_INCOME"},Actions:{CREDIT_INIT_DATA:"CREDIT_INIT_DATA",CREDIT_CLEAR_DATA:"CREDIT_CLEAR_DATA",CREDIT_TRANSFER:"CREDIT_TRANSFER",CREDIT_FETCH_TRANSACTION:"CREDIT_FETCH_TRANSACTION",CREDIT_CLEAR_TRANSACTION:"CREDIT_CLEAR_TRANSACTION"}},N=["credit"];var L,U;(function(e){e["TRANSFER"]="TRANSFER",e["PAYDATA"]="PAYDATA",e["RECHARGE"]="RECHARGE",e["BONUS"]="BONUS"})(L||(L={})),function(e){e["PENDING"]="PENDING",e["FAILED"]="FAILED",e["FINISH"]="FINISH",e["COMPLETED"]="COMPLETED"}(U||(U={}));const R=Object.assign({isModuleInit:0,incomeTransactions:[],expensesTransactions:[],incomeTodayTransactions:[],providentFund:null},N.reduce(((e,t)=>(e[t]=void 0,e)),{})),M={CREDIT_SET_INIT_STATE(e,t){e.isModuleInit=t},CREDIT_CLEAR_DATA(e){e.providentFund=null,N.forEach((t=>e[t]=void 0)),e.expensesTransactions=[],e.incomeTransactions=[],e.incomeTodayTransactions=[]},CREDIT_UPDATE(e,t){const a=e=>{const t={};for(const[a,n]of Object.entries(e)){let e=t;if(-1===a.indexOf("."))e[a]=n;else{const t=a.split(".");for(let a=0;aObject.keys(e).forEach((a=>{void 0!==t[a]&&(e[a]=t[a])}));let n=e.incomeTransactions.find((e=>e.id===t.id));if(n){if(a(n,t),n=e.incomeTodayTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}else{if(n=e.expensesTransactions.find((e=>e.id===t.id)),!n)return;a(n,t)}},CREDIT_UPDATE_USER(e,t){for(const[a,n]of Object.entries(t))N.includes(a)&&(e[a]=n)},CREDIT_UPDATE_INCOME(e,t){e.incomeTransactions=t},CREDIT_UPDATE_EXPENSES(e,t){e.expensesTransactions=t},CREDIT_UPDATE_INCOME_TODAY(e,t){e.incomeTodayTransactions=t}},F={CREDIT_TRANSFER({dispatch:e},{receiverSub:t,amount:a,meta:n}){return E(this,void 0,void 0,(function*(){const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>R.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield D.post("/credit/transfer",{receiverSub:t,amount:a,meta:n})}))},CREDIT_PAY_DATA_REQUEST({dispatch:e,state:t},{receiverSub:a,amount:n,meta:o}){return E(this,void 0,void 0,(function*(){if(n=Math.min(Number.parseInt(n),1e6),n>=t.credit)throw new Error("credit_not_enough_amount");return yield D.post("/dataProviding/request",{receiverSub:a,amount:n,meta:JSON.stringify(o)})}))},CREDIT_PAY_DATA_COMPLETED({dispatch:e},{transactionId:t}){return E(this,void 0,void 0,(function*(){return yield D.post("/dataProviding/complete",{transactionId:t})}))},CREDIT_PAY_DATA_FINISH({dispatch:e,rootState:t},{transactionId:a}){return E(this,void 0,void 0,(function*(){const e=window.localStorage.getItem("transaction_to_finish"),n=e?JSON.parse(e):{},o=n[t.account.sub]||[],i=o.map(((e,t)=>()=>E(this,void 0,void 0,(function*(){try{yield D.post("/dataProviding/finish",{transactionId:e}),delete o[t]}catch(a){a instanceof Error&&"Network Error"!==a.message&&delete o[t]}}))));i.push((()=>E(this,void 0,void 0,(function*(){try{yield D.post("/dataProviding/finish",{transactionId:a})}catch(e){if(!(e instanceof Error&&"Network Error"===e.message))throw e;o.push(a)}}))));try{yield Promise.all(i.map((e=>e())))}finally{n[t.account.sub]=o.filter((e=>null!==e)),window.localStorage.setItem("transaction_to_finish",JSON.stringify(n))}}))},CREDIT_PAY_DATA_CANCEL({dispatch:e},{transactionId:t}){return E(this,void 0,void 0,(function*(){return yield D.post("/dataProviding/cancel",{transactionId:t})}))},CREDIT_PF_DEPOSIT({commit:e,state:t},{amount:a,meta:n}){return E(this,void 0,void 0,(function*(){if(!t.providentFund||!1===t.providentFund.enable)return;const e=()=>{if(a=Number.parseInt(a),a>1e6)throw new Error("amount_too_large");if(a>=t.credit)throw new Error("credit_not_enough_amount");if(n&&"object"!==typeof n)throw new Error("invalid_meta");n=JSON.stringify(n||{})};return e(),yield D.post("/providentFund/deposit",{amount:a,meta:n})}))},CREDIT_PF_WITHDRAW(){return E(this,void 0,void 0,(function*(){return yield D.post("/providentFund/withdraw")}))},CREDIT_INIT_DATA({state:e,commit:t,dispatch:a,rootState:n,rootGetters:o}){return E(this,void 0,void 0,(function*(){if(e.isModuleInit)return;t(j.Mutations.CREDIT_SET_INIT_STATE,1),yield O["b"].enable(n.account.sub);const i=()=>E(this,void 0,void 0,(function*(){const e=b["a"].GQL.AwsApiGraphQL.injectAllOperations({}),a=()=>E(this,void 0,void 0,(function*(){const a=yield e.getUser(n.account.sub);t(j.Mutations.CREDIT_UPDATE,{credit:a.credit})})),o=()=>E(this,void 0,void 0,(function*(){const a=(()=>{let e=localStorage.getItem("credit.providentFund");return e?JSON.parse(e):(e={enable:!0,poolId:"12345678-1234-1234-1234-123456790ab"},localStorage.setItem("credit.providentFund",JSON.stringify(e)),e)})(),o=yield e.getProvidentFund(n.account.sub);a.value=(null===o||void 0===o?void 0:o.amount)||0,t(j.Mutations.CREDIT_UPDATE,{providentFund:a})}));yield Promise.all([a(),o()]);const i=e=>new Promise((t=>{const a=Object(O["c"])({query_type:"income"});(()=>{E(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),r=e=>new Promise((t=>{const a=Object(O["c"])({query_type:"expense"});(()=>{E(this,void 0,void 0,(function*(){while(a.hasNext())yield a.fetch(),e(a.getData());t()}))})()})),s=e=>new Promise((t=>{const a=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[n,o]=a(),i=Object(O["c"])({query_type:"income",query_params:{createdAt:{oldest:n.toISOString(),latest:o.toISOString()}}});(()=>{E(this,void 0,void 0,(function*(){while(i.hasNext())yield i.fetch(),e(i.getData());t()}))})()}));Promise.all([i((e=>t(j.Mutations.CREDIT_UPDATE,{incomeTransactions:Object.values(e)}))),r((e=>t(j.Mutations.CREDIT_UPDATE,{expensesTransactions:Object.values(e)}))),s((e=>t(j.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:Object.values(e)})))])}));yield i(),O["b"].addHandlers({credit_changed:a=>{var n;return t(j.Mutations.CREDIT_UPDATE,{credit:(null!==(n=e.credit)&&void 0!==n?n:0)+a})},dp_expense_txn:a=>{const n=e.expensesTransactions.find((e=>e.id===a.id));n?t(j.Mutations.CREDIT_UPDATE_TXN,a):t(j.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]})},dp_income_txn:a=>{const n=e.incomeTransactions.find((e=>e.id===a.id));n?t(j.Mutations.CREDIT_UPDATE_TXN,a):t(j.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]});const o=()=>{const e=864e5,t=new Date,a=new Date(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()),n=new Date(a.getTime()+e);return[a,n]},[i,r]=o();if(i.getTime()new Date(a.createdAt).getTime()){const n=e.incomeTodayTransactions.find((e=>e.id===a.id));n?t(j.Mutations.CREDIT_UPDATE_TXN,a):t(j.Mutations.CREDIT_UPDATE,{incomeTodayTransactions:[...e.incomeTodayTransactions,a]})}},pf_value_changed:a=>{var n,o;return t(j.Mutations.CREDIT_UPDATE,{"providentFund.value":(null!==(o=null===(n=e.providentFund)||void 0===n?void 0:n.value)&&void 0!==o?o:0)+a})},pf_deposit_txn:a=>t(j.Mutations.CREDIT_UPDATE,{expensesTransactions:[...e.expensesTransactions,a]}),pf_withdraw_txn:a=>t(j.Mutations.CREDIT_UPDATE,{incomeTransactions:[...e.incomeTransactions,a]})},i),O["a"].enable({rootState:n,rootGetters:o,dispatch:a}),t(j.Mutations.CREDIT_SET_INIT_STATE,2)}))},CREDIT_CLEAR_DATA({commit:e,state:t}){return E(this,void 0,void 0,(function*(){2===t.isModuleInit&&(e(j.Mutations.CREDIT_SET_INIT_STATE,1),yield O["b"].disable(),yield O["a"].disable(),e(j.Mutations.CREDIT_CLEAR_DATA),e(j.Mutations.CREDIT_SET_INIT_STATE,0),console.log("credit data cleared"))}))}},B={transactions(e){const{incomeTransactions:t,expensesTransactions:a}=e;return{income:t,expenses:a}},incomeTodayTransactions(e){return e.incomeTodayTransactions}},W={namespaced:!1,state:R,mutations:M,actions:F,getters:B};var H=W,V=a("508e"),Q=a.n(V),G=a("fb31"),K=a.n(G),Y={hideMenu:!0,autoHide:!1,language:"en-US",darkMode:"system",defaultVideoPlayer:K.a.fileName,videoCacheTime:1,autoLaunch:!1,restore:!0,autoStartUnfinished:!0,seedSharingRate:!0,seedTime:!1,maximumDownloadNum:5,maximumConnectionsNum:20,saveLinkSeed:!1,unlimited:!0,continuousSeeding:!0,breakpointContinuation:!1,autoJumpToDownload:!0,notifyAfterDownloaded:!1,deleteConfirm:!1,defaultDeleteFiles:!1,uploadSpeed:-1,downloadSpeed:-1,payedUserShareRate:.7,downloadDirectory:"",autoUpload:!1,uploadDirectory:"",unlimitUploadAmount:!1,autoCheckUpdate:!0,useProxyService:!0,trackerSource:[{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best.txt",label:"ngosang_best",cdn:!1},{value:"https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt",label:"ngosang_best_ip",cdn:!1}],trackerList:Q.a.trackerList,autoUpdateTrackerServiceList:!0,trackerLastUpdateTime:"",listenPort:!1,BTlistenPort:21303,DHTlistenPort:26701,secureOption:"auto",bindMagnetUrl:!1,bindTorrentFile:!1,bindVideoFile:!1,bindVideoExts:{mp4:!1,mkv:!1,avi:!1,mov:!1,wmv:!1,rmvb:!1,flv:!1,webm:!1},bindAudioExts:{mp3:!1,wav:!1,aac:!1,flac:!1,m4a:!1,wma:!1},bindAudioFile:!1,dontAskForAssociate:!1,dontAskForPlayer:!1,userAgent:"",RPCauthorizationkey:"",versionChannel:"stable",githubPAT:"",lastUpdateCheckTime:Date.now(),disableDevTools:!0,minDiskSpace:512e6,autoDownload:!0,forceLogin:!0,libraryShowExplore:"remote",libraryRate:"G",libraryShowAllChannels:!1,libraryPreload:!0,showPreload:!1,downloadWithCellular:!1},J=a("3fd2"),Z=a.n(J),X=a("0f0c"),ee=a("908d"),te=a("d558"),ae=a("d710"),ne=a.n(ae),oe=function(e,t,a,n){function o(e){return e instanceof a?e:new a((function(t){t(e)}))}return new(a||(a=Promise))((function(a,i){function r(e){try{l(n.next(e))}catch(t){i(t)}}function s(e){try{l(n["throw"](e))}catch(t){i(t)}}function l(e){e.done?a(e.value):o(e.value).then(r,s)}l((n=n.apply(e,t||[])).next())}))};const ie=Object(X["a"])("version"),re=!ie.match(/(internal|web)-dev$/),se=Z.a.renderer(),le=`${ne.a.name}_settings`,ce=he(),de={UPDATE_SETTINGS(e,t){Object.assign(e,t),localStorage.setItem(le,JSON.stringify(e))}},ue={updateSettings({commit:e},t){e("UPDATE_SETTINGS",t)},fetchSettings({dispatch:e}){return oe(this,void 0,void 0,(function*(){if(Object(te["a"])())return new Promise((t=>{const a=localStorage.getItem(le),o={};o&&(Object.assign(o,JSON.parse(a)),t(JSON.parse(a))),y["a"].once("fetch-settings",(a=>oe(this,void 0,void 0,(function*(){yield e("updateSettings",a),console.log("Fetch from server");for(const e in a)n["a"].set(o,e,a[e]);t(o)})))),y["a"].emit("fetch-settings")}));if(!se){const t=localStorage.getItem(le),a=he();return t||(ee["b"].is.capacitor&&(a.forceLogin=!1),console.log("\n\n\n\n\n\n\n\n\n\n\n\nset web settings:",a)),yield e("updateSettings",a),a}const t=yield Promise.resolve().then(a.t.bind(null,"b052",7)).then((e=>e.ipcRenderer.invoke("get-app-settings")));return yield e("updateSettings",t),t}))},set({dispatch:e,state:t},n){return oe(this,void 0,void 0,(function*(){if(Object(o["isEmpty"])(n))return;if(yield e("updateSettings",n),!se)return y["a"].emit("updateSettings",n);const{ipcRenderer:t}=yield Promise.resolve().then(a.t.bind(null,"b052",7));console.log("set settings");const i=new Promise((e=>{t.once("set_settings_success",((t,a)=>{e(a)}))}));return t.send("set_settings",n),i}))},resetSettings({commit:e,dispatch:t}){if(se)return new Promise((t=>oe(this,void 0,void 0,(function*(){const{ipcRenderer:n}=yield Promise.resolve().then(a.t.bind(null,"b052",7));n.once("reset_settings",((a,n)=>{console.log(n),e("UPDATE_SETTINGS",n),t(n)})),n.send("reset_settings")}))));{const t=Object(o["cloneDeep"])(Y);return e("UPDATE_SETTINGGS",t),t}}},_e={settings(e){return e},isDevMode(e){return!e.disableDevTools||!re}},pe={namespaced:!1,state:ce,mutations:de,actions:ue,getters:_e};var me=pe;function he(){const e=Object(o["cloneDeep"])(Y),t=`${ne.a.name}_settings`,a="undefined"===typeof localStorage?null:localStorage.getItem(t);if(a){const t=JSON.parse(a);Object.assign(e,t)}return e}const ge={currentVideo:{pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0}},fe={CURRENT_VIDEO_URL_MUTATION(e,t){e.currentVideo.url=t},CURRENT_VIDEO_PATH_MUTATION(e,t){e.currentVideo.path=t},CURRENT_VIDEO_SUBTITLE_LIST_MUTATION(e,t){e.currentVideo.subtitleList=t},CURRENT_VIDEO_CURRENT_TIME_MUTATION(e,t){e.currentVideo.currentTime=t},UPDATE_VIDEO_STATUS_MUTATION(e,t){e.currentVideo.status=t},UPDATE_VIDEO_PIP_STATUS_MUTATION(e,t){e.currentVideo.pipStatus=t},UPDATE_VIDEO_UPDATE_PLAYER_MUTATION(e,t){e.currentVideo.updatePlayer=t},SET_REMOTE_PLAY(e,t){e.currentVideo.infoHash=t,e.currentVideo.remotePlay=!0},RESET_INFOHASH(e){e.currentVideo.infoHash=""},RESET_REMOTE_PLAY(e){e.currentVideo.remotePlay=!1},RESET_PLAYER(){ge.currentVideo={pipStatus:!1,updatePlayer:!1,url:"",path:"",currentTime:0,subtitleList:[]}}},be={currentVideoUrl({commit:e},t){e("CURRENT_VIDEO_URL_MUTATION",t)},currentVideoPath({commit:e},t){e("CURRENT_VIDEO_PATH_MUTATION",t)},currentVideoSubtitleList({commit:e},t){e("CURRENT_VIDEO_SUBTITLE_LIST_MUTATION",t)},currentVideoCurrentTime({commit:e},t){e("CURRENT_VIDEO_CURRENT_TIME_MUTATION",t)},updateVideoStatus({commit:e},t){e("UPDATE_VIDEO_STATUS_MUTATION",t)},updateVideoPIPStatus({commit:e},t){e("UPDATE_VIDEO_PIP_STATUS_MUTATION",t)},updatePlayer({commit:e},t){e("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",t)},remotePlay({commit:e},t){e("SET_REMOTE_PLAY",t)},resetInfoHash({commit:e}){e("RESET_INFOHASH")},resetRemotePlay({commit:e}){e("RESET_REMOTE_PLAY")},resetPlayer({commit:e}){e("RESET_PLAYER")}},ye={video(){return ge.currentVideo.url}},ve={namespaced:!1,state:ge,mutations:fe,actions:be,getters:ye};var we=ve,ke=a("5fa3");t["a"]={downloader:p,account:q,credits:H,setting:me,video:we,library:ke["a"]}},"7ad0":function(e,t,a){},"7d7c":function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return S}));a("a1c1"),a("7a76");var n=a("c620"),o=a("f680"),i=a("61a1"),r=a("1926"),s=a("5584"),l=a("eb7a"),c=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-page",{staticStyle:{position:"relative"}},[a("input",{ref:"file",staticStyle:{display:"none"},attrs:{id:"media-file-upload",type:"file","data-cy":"file-input"},on:{input:e.manualAddFile}}),a("input",{ref:"subtitle",staticStyle:{display:"none"},attrs:{type:"file",accept:".srt,.vtt"},on:{input:e.manualAddSubtitle}}),a("div",{attrs:{id:"video-container",lang:e.lang}},[a("video",{ref:"video",staticClass:"video-js vjs-default-skin vjs-16-9 vjs-big-play-centered vjs-fluid",staticStyle:{height:"100%"},attrs:{crossorigin:"anonymous",id:"my-video"}})]),a("audio-info",{attrs:{show:e.isAudio}}),a("video-splash",{attrs:{show:e.showSplash,videoLoadingHint:e.videoLoadingHint}}),a("advanced-options",{attrs:{show:e.showAdvancedOptions,advancedOptions:e.advancedOpt},on:{close:function(){return e.toggleAdvancedOptions(!1)}}})],1)},d=[],u=a("5653"),_=u["a"],p=(a("803a"),a("2b5f")),m=a("9b72"),h=a("f106"),g=a("09a4"),f=a.n(g),b=Object(p["a"])(_,c,d,!1,null,null,null);b.exports;f()(b,"components",{QPage:m["a"],QIcon:h["a"]});var y=a("6422");const v=()=>{const e=l["default"].getAllPlayers();return Array.isArray(e)?e[0]:null},w=()=>{const e=()=>(n["wtClient"].torrents[0]&&n["wtClient"].torrents[0].files&&n["wtClient"].torrents[0].files.forEach((e=>{e._serviceWorker&&"activated"===e._serviceWorker.state||(e._serviceWorker=n["wtClient"].serviceWorker)})),!0);if(n["wtClient"].serviceWorker&&"activated"===n["wtClient"].serviceWorker.state){if("activated"===n["wtClient"].serviceWorker.state)return e();n["wtClient"].serviceWorker=null}if(!navigator.serviceWorker||!navigator.serviceWorker.controller)return!1;const t=navigator.serviceWorker.controller;return"activated"===t.state&&(n["wtClient"].loadWorker(t),e())};let k=null;function S(e){if("string"===typeof e&&e.startsWith("/webtorrent/")&&(e=e.replace("/webtorrent/","")),u["b"].toggleSplash(!1),!w())return void o["a"].create(r["b"].t("service_worker_error"));if(!n["wtClient"].torrents[0])return void o["a"].create(r["b"].t("add_task_first"));let t=!1;const a=Date.now();Object(i["b"])().push({name:"Player",params:{action:{type:"play_remote"}}}),k&&clearInterval(k),u["b"].toggleSplash(!0,r["b"].t("loading")),k=setInterval((async()=>{if(t)return;if(Date.now()-a>3e4&&!n["wtClient"].torrents[0].ready)return u["b"].toggleSplash(!1),o["a"].create(r["b"].t("player_task_time")),void clearInterval(k);if(n["wtClient"].torrents[0]&&!n["wtClient"].torrents[0].files[0])return void u["b"].toggleSplash(!0,r["b"].t("loading"));{const e=n["wtClient"].torrents[0].files[0],t=Object(y["a"])(e.downloaded||0),a=Object(y["a"])(e.length||0),o=`(${t}/${a})`;if(u["b"].toggleSplash(!0,r["b"].t("downloading")+"... "+o),n["wtClient"].torrents[0].pieces[e._startPiece]||n["wtClient"].torrents[0].pieces[e._startPiece+1])return void console.log("Wait for first two pieces downloaded")}const i=document.querySelector("#my-video video");if(!i)return;try{const a=v();if(e||(e=n["wtClient"].torrents[0].files[0].path),4===a.readyState()){const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e)}`;if(console.log(t,a.src(),t===a.src()),a.src()!==t)throw a.hasStarted(!1),new Error("Reset since src changed");return console.log(a.readyState(),"ready"),a.setAttribute("muted",!0),a.setAttribute("playsInline",!0),a.setAttribute("autoplay",!1),u["b"].toggleSplash(!1),void clearInterval(k)}if(t)return}catch(c){console.log("cannot get vjs",c)}if(t)return;const l=n["wtClient"].torrents[0].files.find((t=>e===t.path));if(i.setAttribute("playsInline",!0),i.setAttribute("muted",!0),i.setAttribute("autoplay",!1),l){console.log("Play file",e,l);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(l.path||l.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=v();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}else{const e=n["wtClient"].torrents[0].files[0];console.log("Cannot find same file. Use files[0]",e.path);const t=`${location.origin}/webtorrent/${n["wtClient"].torrents[0].infoHash}/${encodeURI(e.path||e.name)}`;s["a"].commit("CURRENT_VIDEO_URL_MUTATION",t),s["a"].commit("UPDATE_VIDEO_UPDATE_PLAYER_MUTATION",!0),setTimeout((()=>{const e=v();e&&4===e.readyState()&&e.paused()&&o["a"].create(r["b"].t("autoplay_hint"))}),3e3)}u["b"].toggleSplash(!1),t=!0}),1e3)}},"7fb7":function(e,t,a){"use strict";a("dcb3")},8:function(e,t){},"803a":function(e,t,a){"use strict";a("525c")},8097:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a("3fd2"),o=a.n(n),i=a("0f0c"),r=a("d558");function s(){if(Object(r["a"])())return!0;const e=Object(i["a"])("packageFormat");return o.a.mas()||o.a.windowsStore()||e&&"snap"===e}},"80cf":function(e,t,a){"use strict";var n=a("eb7a"),o=a("d7df"),i=a("5584"),r=a("1926"),s=a("61a1"),l=a("8750"),c=a("f680"),d=a("3d18");console.log("utils io CLIENT"),console.log("-utils io CLIENT"),o["a"].on("warning",(e=>{c["a"].create({message:e})})),o["a"].on("client_error",(e=>{c["a"].create({message:e})})),o["a"].on("request_unlimit_upload",(()=>{const e=Object(s["b"])();e&&"/settings"!==e.currentRoute.path&&"/advancedSettings"!==e.currentRoute.path&&l["a"].create({title:r["b"].t("upload_too_many_files"),message:r["b"].t("ask_if_unlimit_upload_amount"),ok:r["b"].t("disable_limitation"),cancel:r["b"].t("not_now")}).onOk((()=>{o["a"].emit("unlimit_upload_amount")}))})),o["a"].on("torrent_error",(({token:e,message:t})=>{const a=Object(s["b"])();a&&"/"===a.currentRoute.path&&c["a"].create({message:r["b"].t("torrent_error"),caption:[r["b"].t(t),e].join("\n"),multiLine:!0,timeout:0,closeBtn:r["b"].t("close")})})),o["a"].on("torrent_seed_error",((e,t)=>{e.missFile&&(console.log(e,t),l["a"].create({title:r["b"].t("miss_file"),message:r["b"].t("delete_miss_file_task",[e.name]),ok:r["b"].t("delete_task"),cancel:r["b"].t("cancel")}).onOk((()=>{o["a"].emit("delete_torrent",e.infoHash)})))})),o["a"].on("delete-files-failed",((e,t)=>{console.log("delete failed",e,t),l["a"].create({title:r["b"].t("failed_to_delete_files"),message:r["b"].t("failed_to_delete_files")})})),o["a"].on("autoupload-start",(()=>{i["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!0)})),o["a"].on("autoupload-complete",(()=>{i["a"].commit("DOWNLOADER_SET_UPLOADING_LOADING",!1)})),o["a"].on("torrent_exists",(e=>(console.log("exist",e),c["a"].create(r["b"].t("torrent_exists")+e)))),o["a"].on("stop-server",(()=>{i["a"].dispatch("resetRemotePlay"),i["a"].state.video.currentVideo.shouldReset=!0})),o["a"].on("open-default-player",(async e=>{i["a"].dispatch("resetRemotePlay"),i["a"].dispatch("resetInfoHash"),i["a"].dispatch("currentVideoUrl",""),i["a"].dispatch("currentVideoPath",""),console.log("open-default-player:"+e);const t=n["default"].getPlayer("my-video"),a=i["a"].state.video.currentVideo.pipStatus;if(t&&a)try{console.log("跳转默认播放器,关闭画中画"),t.exitPictureInPicture()}catch(s){}const o=await Object(d["b"])(i["a"].getters.settings.defaultVideoPlayer,e);!0!==o&&""!==o&&c["a"].create(r["b"].t("open_default_player_failed"))})),o["a"].on("jump-to-player",(()=>{const e=Object(s["b"])();e&&e.push({name:"Player",params:{action:{type:"play_remote"}}})})),o["a"].on("finish_all_payments_by_infohash",(e=>{if("string"!==typeof e)return console.log(`No info hash to finish ${e}`);const t=i["a"].getters.accountUserInfo.sub;if(!t)return console.log(`Cannot find sub id from ${i["a"].getters.accountUserInfo}`);const a=i["a"].state.credits.expensesTransactions.filter((a=>a.payerId===t&&"FINISH"!==a.status&&a.meta.includes(e)));console.log("Will finish",a),o["a"].emit("finish_all_payments",a)}))},"80f4":function(e,t,a){},8162:function(e,t,a){},"81a4":function(e,t,a){},"81e0":function(e,t,a){a("7a76"),a("0c26"),a("de6c");const n=e=>{const t=`Failed to validate app config: ${e}`,a=new Error(t);throw a.stack=a.stack.trim().split("\n")[0],a},o=["application.manifest","application.reference","batfile","blob","cerfile","chm.file","cmdfile","comfile","cplfile","dllfile","drvfile","exefile","explorer.assocactionid.burnselection","explorer.assocactionid.closesession","explorer.assocactionid.erasedisc","explorer.assocactionid.zipselection","explorer.assocprotocol.search-ms","explorer.burnselection","explorer.closesession","explorer.erasedisc","explorer.zipselection","file","fonfile","hlpfile","htafile","inffile","insfile","internetshortcut","jsefile","lnkfile","microsoft.powershellscript .1","ms-accountpictureprovider","ms-appdata","ms-appx","ms-autoplay","msi.package","msi.patch","ms-windows-store","ocxfile","piffile","regfile","scrfile","scriptletfile","shbfile","shcmdfile","shsfile","smb","sysfile","ttffile","unknown","usertileprovider","vbefile","vbsfile","windows.gadget","wsffile","wsfile","wshfile"];e.exports=function(e){e&&"object"===typeof e||n("config is not an object");for(const t of["name","displayName","author","developer","description","publisher","homepage","upgradeCode","protocol","shortProtocol"])t in e&&"string"===typeof e[t]||n(`config.${t} must be string`);e.name.match(/^[a-zA-Z0-9.\-+]{3,}/)||n("config.name should contain at least 3 characters"),e.protocol.match(/^[a-z][a-z0-9.\-+]{2,}/)||n("config.protocol should contain at least 3 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.protocol)&&n(`The protocol "${e.protocol}" is not available since it is reserved by Windows Store`),e.shortProtocol.match(/^[a-z][a-z0-9.\-+]{1,}/)||n("config.shortProtocol should contain at least 2 characters, start with lower-case letter(a-z) and not include upper-case letters"),o.includes(e.shortProtocol)&&n(`The protocol "${e.shortProtocol}" is not available since it is reserved by Windows Store`),e.name.toLowerCase()===e.shortProtocol&&n("config.shortProtocol should not be same as config.name"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as config.protocol"),e.protocol===e.shortProtocol&&n("config.shortProtocol should not be same as app name"),e.register&&"object"===typeof e.register||n("config.register should be object"),"whitelist"===e.register.mode&&(Array.isArray(e.register.list)&&0!==e.register.list.length||n('config.register.list should be array with at least one country code since register mode is "whitelist"'))}},8306:function(e,t,a){},8460:function(e,t,a){"use strict";a("91fe")},"848e":function(e,t,a){},"84cb":function(e,t,a){"use strict";a("afe1")},"84f6":function(e,t,a){"use strict";a("de6c"),a("a1c1");var n=a("ff9b"),o=a("d7df"),i=a("5584"),r=a("8750"),s=a("1926"),l=a("0885"),c=a("a11f"),d=a("4fd2");const u=e=>new Promise((t=>{const a=window.requestIdleCallback?window.requestIdleCallback:e=>setTimeout(e,100);a((()=>{t(e())}))})),_=new n["a"]({data(){return{taskList:{downloading:[],uploading:[],downloaded:[],totalDownloadSpeed:0,totalUploadSpeed:0,totalDownloadProgress:0},updatingTaskList:!1,lastUpdateTime:Date.now()}},computed:{allTasks(){return[...this.taskList.downloading,...this.taskList.uploading,...this.taskList.downloaded]}},methods:{async updateTaskList(e){if(this.updatingTaskList)console.log("Skip updating task list since busy");else{this.updatingTaskList=!0,await this.$nextTick();const t={},a=[],n={};for(const o in e){const i=e[o];if(!Array.isArray(i)){this.taskList[o]=i;continue}await u((()=>{i.forEach((e=>{Array.isArray(e.files)&&e.files.forEach((e=>{e.path.endsWith(".downloading")&&(e.path=e.path.replace(/\.downloading$/,"")),e.name.endsWith(".downloading")&&(e.name=e.name.replace(/\.downloading$/,""))}))})),this.taskList[o]=i})),t[o]=i.length;const r=[];i.forEach((e=>{"uploading"===o&&a.push({title:e.postTitle||e.name,abUrl:e.alphabizURI});const t={};if(e.infoHash){var n;t.start=(new Date).getTime(),t.getABKey=(new Date).getTime();const a=Object(c["a"])(e.alphabizURI||e.magnetURI||e.infoHash);t.playFile=(new Date).getTime();const o=null===(n=e.files)||void 0===n?void 0:n.find((e=>1===e.progress&&Object(d["a"])(e.path)));r.push({key:a,infoHash:e.infoHash,...o?{playFile:o}:{}}),t.end=(new Date).getTime()}})),n[o]=r}Object.freeze(e),i["a"].commit("updateTasks",{tasksCount:t,uploadingTasks:a,abKeyObj:n}),await this.$nextTick(),this.updatingTaskList=!1}},deleteTask(e){const t=[];return i["a"].getters.settings.defaultDeleteFiles&&t.push("deleteFiles"),console.log("to del",e),new Promise((a=>{if(e.isAutoUpload)return r["a"].create({title:s["b"].t("delete")+" "+(e.postTitle||e.name),message:s["b"].t("delete_autoupload_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete_anyway")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((()=>{console.log("Delete autoupload file",e),o["a"].emit("delete_torrent",e.infoHash,!0),a(!0)})).onCancel((()=>{a(!1)}));if(e.missAllFile)return o["a"].emit("delete_torrent",e.infoHash,!0),a(!0);const n=e.postTitle||e.name||e.origin||e.infoHash||"",c=n.length>20?n.substring(0,18)+"...":n;r["a"].create({title:s["b"].t("delete")+" "+c,style:"white-space:pre-wrap;word-break:break-all",message:s["b"].t("delete_confirm_message"),options:{type:"checkbox",model:t,items:[{label:s["b"].t("also_delete_files"),value:"deleteFiles"}]},ok:{textColor:"red",color:"unset",flat:!0,label:s["b"].t("delete")},cancel:{textColor:"grey",color:"unset",flat:!0,label:s["b"].t("not_now")}}).onOk((t=>{o["a"].emit("delete_torrent",e.infoHash||e.token,t.includes("deleteFiles")),i["a"].dispatch("set",{defaultDeleteFiles:t.includes("deleteFiles")}),Object(l["c"])(e.infoHash,!1),a(!0)})).onCancel((()=>{a(!1)}))}))},onDeleteTask(e){for(const t in this.taskList){const a=_[t];if(!Array.isArray(a))continue;const n=a.findIndex((t=>t.infoHash===e));-1!==n&&a.splice(n,1)}}}});t["a"]=_},"860f":function(e,t,a){"use strict";a("4544")},"86d7":function(e,t,a){"use strict";a("6545")},"878c":function(e,t,a){"use strict";a("9e9b")},"88ba":function(e){e.exports=JSON.parse('{"lib_index":"घर","lib_edit":"प्रकाशित करना","lib_publish":"प्रकाशित करना","lib_explore":"अन्वेषण करना","lib_following":"अगले","lib_favorite":"स्थानीय पसंदीदा","lib_local_favorites":"स्थानीय पसंदीदा","lib_channel":"चैनल","lib_submit":"जमा करना","lib_from_network":"नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करना","welcome_to_lib":"${displayName} मीडिया लाइब्रेरी में आपका स्वागत है","register_or_login":"लॉग इन रजिस्टर करें","lib_recommend":"अनुशंसा करना","lib_recommend_desc":"${displayName} लाइब्रेरी में आपका स्वागत है! यह लाइब्रेरी नेटवर्क से विकेंद्रीकृत डेटाबेस का उपयोग करती है। इसका उपयोग शुरू करने के लिए, आपको कुछ चैनलों का अनुसरण करना होगा।","follow_any_channel_to_continue":"जारी रखने के लिए किसी भी चैनल का अनुसरण करें","follow_channels_and_continue":"{0} चैनलों का अनुसरण करें और जारी रखें","show_more_for_me":"मेरे लिए और अधिक दिखाएँ","no_more_recommend":"अब और कोई अनुशंसा नहीं","key":"चाबी","create_key":"कुंजी बनाएं","save_key":"कुंजी सहेजें","save_key_file":"क्या आप अपनी कुंजी को फ़ाइल के रूप में सहेजना चाहते हैं?","import_key":"कुंजी आयात करें","import":"आयात","invalid_key":"अमान्य कुंजी","back_to_top":"वापस शीर्ष पर","search_for_channel":"चैनल आईडी खोजें","search_channel_no_result":"{0} आईडी वाला चैनल नहीं मिल सका","please_input_channel_id":"कृपया चैनल आईडी इनपुट करें","welcome_help_text":"यह एक विकेन्द्रीकृत मीडिया लाइब्रेरी है। आप की जरूरत है\\n इस डेटाबेस के लिए एक खाता बनाने के लिए। हम ऐसा करेंगे\\n स्वचालित रूप से आपके लिए एक व्यक्तिगत कुंजी उत्पन्न करें।\\n यदि आपके पास पहले से ही कोई चाबी है, तो आप आयात भी कर सकते हैं\\n यहाँ यह।","welcome_key_text":"एक बार लॉग इन करने के बाद, कृपया [कुंजी सहेजें] बटन पर क्लिक करें\\n अपनी निजी कुंजी को सहेजने के लिए दाएं-नीचे कोने में।\\n यदि आपकी कुंजी खो जाती है, तो आप दोबारा लॉगिन नहीं कर पाएंगे।","redirect_to_recommend":"ऐसा लगता है कि आपने किसी चैनल को फ़ॉलो नहीं किया था. [एक्सप्लोर] पेज पर रीडायरेक्ट किया जा रहा है।","channel":"चैनल","follow":"अनुसरण करना","unfollow":"करें","following":"अगले","share":"शेयर करना","unfollow_confirm":"क्या आप वाकई इस चैनल को अनफ़ॉलो करना चाहते हैं? आपकी टाइमलाइन से इस चैनल की सभी पोस्ट हटा दी जाएंगी.","follow_failed_hint":"कार्रवाई अभी भी पृष्ठभूमि में लंबित है. यदि ऑपरेशन लंबे समय तक लागू नहीं होता है, तो कृपया ऐप को पुनरारंभ करें और पुनः प्रयास करें।","block":"अवरोध पैदा करना","unblock":"अनब्लॉक","blocked":"अवरोधित","block_channel":"इस चैनल को ब्लॉक करें","block_channel_confirm":"ब्लॉक चैनल इसे आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","block_creator":"इस चैनल के निर्माता को ब्लॉक करें","unblock_creator":"इस चैनल के निर्माता को अनब्लॉक करें","block_creator_confirm":"ब्लॉक क्रिएटर इस क्रिएटर द्वारा बनाए गए सभी चैनलों को आपकी टाइमलाइन से हटा देगा। आप खाता सेटिंग में अपनी ब्लॉक सूची प्रबंधित कर सकते हैं।","share_url_copied":"शेयर यूआरएल आपके क्लिपबोर्ड पर कॉपी हो गया है","follow_time":"समय का पालन करें","update_time":"समय सुधारें","search":"खोज","type":"प्रकार","added":"जोड़ा","click_to_task":"कार्य पर जाने के लिए क्लिक करें","lib_already_added":"आप यह वीडियो पहले ही जोड़ चुके हैं","description":"विवरण","poster":"पोस्टर","channel_poster":"चैनल का पोस्टर","preview":"पूर्व दर्शन","creator":"निर्माता","creator_detail":"निर्माता विवरण","loading_creator":"निर्माता की जानकारी लोड हो रही है","wait_for_creator_loaded":"कृपया निर्माता की जानकारी लोड होने तक प्रतीक्षा करें।","follower":"पालन ​​करने वाला","followers":"समर्थक","follower_list":"अनुयायी सूची","user":"उपयोगकर्ता","channel_title":"चैनल का शीर्षक","channel_id":"चैनल आईडी","post_title":"शीर्षक पोस्ट करें","post_id":"पोस्ट आईडी","import_data_from_excel":"एक्सेल से डेटा आयात करें","set_excel_keys":"एक्सेल कुंजियाँ सेट करें","excel_import_succeded":"एक्सेल आयात सफल हुआ","excel_import_success_msg":"{0} पंक्तियाँ जोड़ने के लिए तैयार हैं, {1} अमान्य और {2} डुप्लिकेट आइटमों को नजरअंदाज कर दिया गया है","cannot_find_channel":"चैनल नहीं मिल सका","cannot_find_posts":"पोस्ट नहीं मिल सकीं","add_channel":"चैनल जोड़ें","add_post":"पोस्ट जोड़ें","edit_channel":"चैनल संपादित करें","channel_setting":"चैनल सेटिंग","edit_post":"संपादित पोस्ट","edit_posts":"पोस्ट संपादित करें","channel_detail":"चैनल विवरण","remove":"निकालना","remove_channel":"चैनल हटाएँ","remove_channel_confirm":"क्या आप निश्चित रूप से इस पोस्ट को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","remove_post":"पोस्ट हटाएँ","remove_post_confirm":"क्या आप निश्चित रूप से इस चैनल को हटा देंगे? इसे पुनर्प्राप्त नहीं किया जा सकता.","preview_mode":"पूर्वावलोकन मोड","preview_mode_desc":"यह आपके चैनल का पूर्वावलोकन है. यहां फिल्मों के सभी रेट दिखाए गए हैं।","edit_user_profile":"उपयोगकर्ता प्रोफ़ाइल संपादित करें","name":"उपनाम","avatar":"अवतार","no_following":"कोई निम्नलिखित चैनल नहीं. जाने के लिए क्लिक करें","no_recommend":"कोई अनुशंसित चैनल नहीं. जाने के लिए क्लिक करें","first_recomment_msg":"यदि यह पहली बार ऐप लॉन्च हुआ है तो इसमें कुछ समय लग सकता है।","invalid_image":"अमान्य छवि","image_not_reachable":"यह छवि यूआरएल पहुंच योग्य नहीं है.","channel_not_found":"चैनल नहीं मिला","cannot_get_channel_info":"चैनल की जानकारी नहीं मिल सकी. इस चैनल को इसके निर्माता द्वारा हटाया जा सकता है और यह अब उपलब्ध नहीं रहेगा।","validate_error":"त्रुटि सत्यापित करें","validate_user_name_no_space":"उपयोगकर्ता नाम में रिक्त स्थान नहीं होना चाहिए","validate_url_no_space":"यूआरएल में रिक्त स्थान नहीं होना चाहिए","validate_user_name_length":"उपयोगकर्ता नाम की लंबाई {0} और {1} के बीच होनी चाहिए","validate_user_desc_length":"उपयोगकर्ता विवरण {0} अक्षरों से अधिक नहीं होना चाहिए","validate_user_avatar_url":"उपयोगकर्ता अवतार का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_channel_title_length":"चैनल शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_channel_desc_length":"चैनल विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_channel_image_url":"चैनल पूर्वावलोकन 2048 अक्षरों से कम वाला यूआरएल होना चाहिए","validate_post_title_length":"पोस्ट शीर्षक की लंबाई 1 से 100 के बीच होनी चाहिए","validate_post_desc_length":"पोस्ट विवरण की लंबाई 10 से 300 के बीच होनी चाहिए","validate_post_image_url":"पोस्टर का यूआरएल 2048 अक्षरों से कम होना चाहिए","validate_post_url":"अमान्य ${displayName} यूआरएल","validate_post_url_length":"${displayName} यूआरएल 2048 अक्षरों से अधिक नहीं होना चाहिए","film_rate":"फ़िल्म दर","set_film_rate":"फिल्म दर निर्धारित करें","select_a_rate_before_enter":"मीडिया लाइब्रेरी में प्रवेश करने से पहले आपको एक फिल्म दर का चयन करना होगा।","library_available_rate":"लाइब्रेरी में उपलब्ध फ़िल्म दर","rate_g":"जी - सामान्य दर्शक","rate_g_desc":"सभी उम्र के लोगों को प्रवेश दिया गया। ऐसा कुछ भी नहीं जिसे बच्चों द्वारा देखने पर माता-पिता को ठेस पहुंचे।","rate_pg":"पीजी - माता-पिता के मार्गदर्शन का सुझाव दिया गया","rate_pg_desc":"कुछ मटीरियल बच्चों के लिए उपयुक्त नहीं हो सकते। माता-पिता से \\"माता-पिता का मार्गदर्शन\\" देने का आग्रह किया गया। इसमें कुछ ऐसी सामग्री हो सकती है जो माता-पिता अपने छोटे बच्चों के लिए पसंद नहीं करेंगे।","rate_pg_13":"पीजी-13 - अभिभावकों को कड़ी चेतावनी दी गई","rate_pg_13_desc":"कुछ सामग्री 13 वर्ष से कम उम्र के बच्चों के लिए अनुपयुक्त हो सकती है। माता-पिता से सतर्क रहने का आग्रह किया जाता है। कुछ सामग्री पूर्व-किशोरों के लिए अनुपयुक्त हो सकती है।","rate_r":"आर - प्रतिबंधित","rate_r_desc":"17 वर्ष से कम आयु के लिए माता-पिता या वयस्क अभिभावक का साथ आवश्यक है। इसमें कुछ वयस्क सामग्री शामिल है. माता-पिता से आग्रह किया जाता है कि वे अपने छोटे बच्चों को अपने साथ ले जाने से पहले फिल्म के बारे में अधिक जानें।","rate_nc_17":"एनसी-17 - केवल वयस्क","rate_nc_17_desc":"17 वर्ष से कम उम्र के किसी भी व्यक्ति को प्रवेश नहीं दिया गया। स्पष्ट रूप से वयस्क. बच्चों को प्रवेश नहीं दिया जाता.","set_as_private":"निजी के रूप में सेट करें","hide_in_explore":"इस चैनल को एक्सप्लोर पेज में छुपाएं","hidden":"छिपा हुआ","select_a_rate":"कृपया एक फ़िल्म दर चुनें","select_from_tasks":"कार्यों में से चयन करें","import_from_magnet":"चुंबक से आयात:?...","input_magnet_url":"इनपुट चुंबक:? यूआरएल","task_title":"कार्य का शीर्षक","set_title":"शीर्षक सेट करें","add_to_local_favorites":"स्थानीय पसंदीदा में जोड़ें","remove_from_local_favorites":"स्थानीय पसंदीदा से हटाएँ","removed_favorite":"पसंदीदा हटा दिया गया","import_or_export_favorites":"आयात/निर्यात पसंदीदा","export_local_favorites":"बैकअप के रूप में स्थानीय पसंदीदा निर्यात करें","import_favorites_file":"पसंदीदा फ़ाइल आयात करें","not_a_favorite_file":"यह फ़ाइल पसंदीदा बैकअप फ़ाइल नहीं है","connection_status":"संपर्क स्थिति","gun_server_list":"कैश नोड्स","custom_nodes":"कस्टम कैश नोड्स","custom_nodes_hint":"ऐप पुनः लॉन्च के बाद कस्टम कैश नोड्स लागू किए जाएंगे","wait_for_reboot":"रीबूट की प्रतीक्षा में...({seconds}s)","reboot_now":"अब रिबूट करें","reboot_later":"बाद में रिबूट करें","peer_list":"प्रत्यक्ष नोड्स","server":"नोड यूआरएल","peer":"समकक्ष","peer_id":"नोड आईडी","connection":"संबंध","data_source":"डेटा स्रोत","sync":"साथ-साथ करना","syncing":"सिंक्रनाइज़ किए जा रहे","sync_completed":"सिंक पूरा हुआ","got_all_post":"आपको सभी पोस्ट पहले ही मिल चुकी हैं","placeholder_channel_title":"आपके चैनल का नाम","placeholder_channel_desc":"इस चैनल के बारे में विवरण","placeholder_post_title":"मूवी का नाम (वर्ष)","placeholder_post_desc":"इस फिल्म के बारे में विवरण","private_channel":"निजी चैनल","creator_blocked":"निर्माता को अवरोधित किया गया","go_to_library":"पुस्तकालय जाएं?","go_to_library_channel_msg":"क्या आप लाइब्रेरी चैनल {0} पर जाना चाहते हैं?","magnet_does_not_have_name":"यह चुम्बक:? यूआरएल में कोई नाम नहीं है, आपको पहले एक पोस्ट शीर्षक जोड़ना होगा।","no_available_post":"कोई पोस्ट उपलब्ध नहीं","following_channel_no_post":"आपके निम्नलिखित सभी चैनलों पर पोस्ट उपलब्ध नहीं है। यह नेटवर्क त्रुटि के कारण हो सकता है. यदि आपने पहले से ही कुछ चैनलों का अनुसरण किया है, तो पोस्ट बाद में लोड की जा सकती हैं।","share_to_library":"लाइब्रेरी में साझा करें","quick_start":"जल्दी शुरू","quick_start_desc":"किसी कार्य या फ़ाइल के साथ एक पोस्ट बनाना प्रारंभ करें","select_file":"फ़ाइल का चयन करें...","select_folder":"फोल्डर का चयन करें...","post_options":"पोस्ट विकल्प","channel_options":"चैनल विकल्प","create_new_channel":"नया चैनल बनाएं","use_existed_channel":"मौजूदा चैनल का उपयोग करें","select_existed_channel":"मौजूदा चैनल का चयन करें","uploaded_by":"{title} {name} द्वारा अपलोड किया गया","created_by":"{title} {name} द्वारा निर्मित","creating_new_channel":"नया चैनल बनाया जा रहा है...","created_new_channel":"नया चैनल बनाया गया","creating_new_post":"नई पोस्ट बनाई जा रही है...","created_new_post":"नई पोस्ट बनाई गई","create_new_post":"नई पोस्ट बनाएं","quick_start_timeout":"{0} समयबाह्य। यह नेटवर्क त्रुटि के कारण हो सकता है. कृपया बाद में पुन: प्रयास करें।","file_too_large":"बहुत बड़ी फाइल","file_too_large_msg":"यह फ़ाइल 4GB ({size}) से बड़ी है और इसे तैयार करने में काफी समय लग सकता है। क्या आप निश्चित रूप से जारी रखेंगे?","resolving_folder_files":"फ़ोल्डर फ़ाइलों का समाधान किया जा रहा है...","folder_too_large":"फ़ोल्डर बहुत बड़ा है","folder_too_large_msg":"इस फ़ोल्डर में फ़ाइलें 4GB ({size} कुल) से बड़ी हैं और कार्य तैयार करने में लंबा समय लग सकता है। क्या आप निश्चित रूप से अपलोड करना चाहते हैं?","creating_new_task":"नया कार्य बनाया जा रहा है...","cannot_create_task":"कार्य नहीं बनाया जा सकता","cannot_create_task_msg":"यह किसी त्रुटि के कारण हो सकता है. यदि कार्य सही ढंग से बनाया गया है, तो आप बाद में कार्य सूची की जांच कर सकते हैं।","cannot_get_task_name":"कार्य का नाम नहीं मिल सका. आपको पहले एक इनपुट करना होगा.","remove_old_task":"पुराना कार्य हटाएँ","remove_old_task_desc":"वेब मोड एक बार में केवल एक ही कार्य बना सकता है। क्या आप पुराना कार्य हटाना चाहते हैं?","subtitle_list":"उपशीर्षक सूची","optional":"वैकल्पिक","with_subtitle":"{language} उपशीर्षक के साथ","maximumSubtitleNum_limit":"उपशीर्षकों की संख्या अधिकतम तक पहुंच गई है","add_subtitle_url":"उपशीर्षक डाउनलोड लिंक जोड़ें","cannot_add_subtitle":"उपशीर्षक जोड़ने में विफल","cannot_add_subtitle_msg":"उपशीर्षक भाषा चयनित नहीं है या डाउनलोड लिंक अमान्य है।","support_subtitle_type":"केवल एसआरटी और वीटीटी प्रारूप में उपशीर्षक समर्थित हैं।","recommend_opensubtitles":"www.opensubtitles.org पर उपशीर्षक डाउनलोड लिंक या आईडी का उपयोग करने की अनुशंसा की जाती है।","take_down":"नीचे करें","serious_violation":"गंभीर उल्लंघन","copyright_disputes":"कॉपीराइट विवाद","adults_only":"केवल वयस्क","takedown_reason":"हटाने का कारण","takedown_mode":"टेकडाउन मोड","admins":"व्यवस्थापक","takedown_user":"इस निर्माता को हटाओ","takedown_channel":"इस चैनल को हटाओ","takedown_post":"इस पोस्ट को हटाएं","select_takedown_reason":"निष्कासन का कारण चुनें","takedown_invalid_reason":"अमान्य निष्कासन कारण","takedown_invalid_user_id":"अमान्य उपयोगकर्ता आइ डी। आईडी में 87 अक्षर शामिल होने चाहिए","takedown_invalid_channel_id":"अमान्य चैनल आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_invalid_post_id":"अमान्य पोस्ट आईडी. आईडी में 20 अक्षर शामिल होने चाहिए","takedown_management":"प्रबंधन हटाओ","users":"उपयोगकर्ताओं","channels":"चैनल","posts":"पदों","you":"आप","preset":"प्रीसेट","admin":"व्यवस्थापक","committee":"समिति","about_takedown_mode":"टेकडाउन मोड के बारे में:\\nप्रीसेट: जीथब रिपॉजिटरी में कॉन्फ़िगर किया गया। उन सभी को लाइब्रेरी से हटा दिया जाएगा.\\nव्यवस्थापक: व्यवस्थापकों में से जिस किसी को भी वोट दिया जाएगा उसे हटा दिया जाएगा।\\nसमिति: वोट करने वाले कम से कम आधे व्यवस्थापकों को हटा दिया जाएगा।","cannot_edit_preset":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि यह एक पूर्व निर्धारित पंक्ति है","cannot_edit_not_vote":"आप इस पंक्ति को संपादित नहीं कर सकते क्योंकि आपने इसके लिए मतदान नहीं किया है","remove_vote":"अपना वोट हटाओ","post_preload_failed":"इस पोस्ट को प्रीलोड करने में विफल. डाउनलोड लिंक पुराना हो सकता है, इसलिए इस पोस्ट को तुरंत नहीं चलाया जा सकता।","about_cache_node":"कैश नोड के बारे में","edit_cache_node":"कैश नोड संपादित करें","create_cache_node":"कैश नोड बनाएं","about_cache_node_desc":"${displayName} कैश नोड के रूप में गन सर्वर का उपयोग करता है। आप अग्रिम सेटिंग में कस्टम नोड्स संपादित कर सकते हैं","learn_how_to_deploy_gun":"जानें कि अपना खुद का गन सर्वर कैसे तैनात करें","repeat_add":"कार्य जोड़ दिया गया है, कृपया इसे दोबारा न जोड़ें","upload":"डालना","download":"डाउनलोड","delete":"मिटाना","delete_task":"कार्य हटाएँ","delete_confirm_message":"यह कार्य हटाएं? यह अपरिवर्तनीय है","also_delete_files":"फ़ाइलें भी हटाएँ","default_delete_files":"हटाने के कार्य के बाद डाउनलोड की गई फ़ाइलों को डिफ़ॉल्ट रूप से हटा दें","not_now":"अभी नहीं","delete_autoupload_confirm":"इस कार्य में वह फ़ाइल शामिल है जिसे आपने ऑटो-अपलोड निर्देशिका में रखा है। इस कार्य को हटाने से फ़ाइल भी हट जाएगी।","delete_anyway":"फिर भी हटाएँ","upload_too_many_files":"बहुत सारी फ़ाइलें अपलोड करें","ask_if_unlimit_upload_amount":"स्वतः-अपलोड निर्देशिका में बहुत अधिक फ़ाइलें हैं। क्या आप अपलोड राशि सीमा को अक्षम करना चाहते हैं? *इससे प्रदर्शन संबंधी समस्या हो सकती है","disable_limitation":"सीमा अक्षम करें","not_length":"मल्टी फ़ाइल ऑपरेशन वर्तमान में समर्थित नहीं है, कृपया सहयोग करें","download_torrent":"डाउनलोड फ़ाइल","upload_torrent":"फ़ाइल अपलोड करें","files":"फ़ाइलें","file":"फ़ाइल","folder":"फ़ोल्डर","start_all":"सभी प्रारंभ करें","pause_all":"सभी को रोकें","remove_all":"सभी हटाएं","upload_all":"सभी अपलोड करें","clear_history":"इतिहास मिटा दें","pause_all_finish_payments":"इससे सभी भुगतान समाप्त हो जायेंगे.","accelerating":"तेज","link_task":"लिंक कार्य","torrent_task":"फ़ाइल कार्य","ok":"ठीक","cancel":"रद्द करना","download_directory_position":"निर्देशिका स्थिति डाउनलोड करें","torrent_file":"कार्य फ़ाइल","magnetic_link_incorrect":"लिंक प्रारूप ग़लत है","delete_fail":"हटाएँ विफल","pause":"विराम","paused":"रोके गए","stop_torrent":"रुकना","seed":"बीज","resume":"फिर शुरू करना","downloading":"डाउनलोड","downloaded":"डाउनलोड","uploading":"अपलोड हो रहा है","auto_uploading":"स्वतः अपलोडिंग","uploaded":"अपलोड किए गए","pending":"अन्य कार्यों के लिए प्रतीक्षा की जा रही है","verifying":"सत्यापन","waiting_for_verify":"सत्यापन की प्रतीक्षा की जा रही है","seeding":"बोने","completed":"पुरा होना।","status":"दर्जा","task_name":"कार्य का नाम","size":"आकार","progress":"प्रगति","sort":"क्रम से लगाना","ascending":"आरोही","descending":"अवरोही","file_loading":"फ़ाइल लोड हो रही है...","loading":"लोड हो रहा है","unknown_status":"अज्ञात","play_while_downloading":"खेल...","upload_or_play":"अपलोड/चलाएँ","play":"खेल","ask_if_upload_file":"फ़ाइल अपलोड करें?","ask_if_upload_or_play":"फ़ाइल अपलोड करें या चलाएं?","torrent_error":"कार्य जोड़ते समय त्रुटि:","no_peers":"{0} से अधिक बार पुनः प्रयास करें और कोई सहकर्मी उपलब्ध नहीं है","torrent_exists":"काम पहले से मौज़ूद।","show_origin_torrent":"मूल कार्य फ़ाइल या यूआरएल प्राप्त करें","show_directory":"इस टोरेंट की निर्देशिका खोलें","task_num":"कार्य","total_upload_speed":"भार डालना के गति","total_download_speed":"डाउनलोड की गति","path_missing":"त्रुटि: टोरेंट पथ नहीं मिल सका","origin_not_found":"मूल कार्य की जानकारी नहीं मिल सकी.","text_copied":"मैग्नम यूआरएल आपके क्लिपबोर्ड पर कॉपी किया गया है","copy_magnet_uri":"प्रतिलिपि चुंबक:? यूआरआई","copy_download_uri":"डाउनलोड यूआरआई कॉपी करें","copy_share_uri":"कॉपी शेयर यूआरआई","uri_copied":"यूआरआई सफलतापूर्वक आपके क्लिपबोर्ड पर कॉपी हो गया है","uri_copy_failed":"यूरी की प्रतिलिपि बनाने में विफल","more":"अधिक...","toggle_list_mode":"सूची मोड टॉगल करें","comment":"टिप्पणी","operations":"संचालन","open_directory":"निर्देशिका खोलें","no_downloading_task":"कोई डाउनलोडिंग कार्य नहीं","remove_all_downloading_tasks":"सभी डाउनलोडिंग कार्य हटाएँ?","remove_all_upload_tasks":"सभी अपलोड कार्य हटाएं?","remove_autoupload_files":"स्वतः-अपलोड फ़ाइलें हटाएँ","remove_all_history":"सारा इतिहास हटा दें?","remaining":"बचा हुआ","created_time":"समय बनाया","used_time":"बिताया समय","completed_time":"पूरा समय","yesterday":"कल","before_yesterday":"{empty}","earlier":"पहले","miss_file":"कुछ फ़ाइलें गुम हैं","delete_miss_file_task":"{0} में फोम फ़ाइलें गायब हैं।","common_peer":"आम सहकर्मी","ab_peer":"${displayName} सहकर्मी","ab_peer_verified":"सत्यापित ${displayName} सहकर्मी","ab_peer_available":"${displayName} सहकर्मी उपलब्ध हैं","alphabiz_accelerating":"${displayName} तेज हो रहा है","income":"आय","income_info":"आय(आज/कुल)","total_income_info":"आय: {0}(आज) / {1}(कुल)","login_to_see_income":"आय के आँकड़े देखने के लिए लॉगिन करें","credit_cost":"ऋण लागत","downloaded_by_payment":"पेमेंट्स द्वारा डाउनलोड किया गया","file_not_found":"यह फ़ाइल स्थानीय में नहीं मिल सकी","no_task":"न पूछें","no_matched_task":"कोई मिलान कार्य नहीं","space_not_enough":"डिस्क स्थान पर्याप्त नहीं है","need_more_space":"{0} अधिक स्थान की आवश्यकता है लेकिन वर्तमान डिस्क में {1} निःशुल्क ({2} आरक्षित) है। कार्य रुके हुए हैं. लाइब्रेरी प्रीलोड अक्षम है. आप इसे [सेटिंग्स - उन्नत] में पुनः सक्षम कर सकते हैं।","seeders":"बीज","last_update":"आखिरी अपडेट","connecting":"कनेक्ट","connected":"जुड़े हुए","request_timed_out":"अनुरोध का समय समाप्त","connection_failed":"कनेक्शन विफल","invalid_download_url":"अमान्य डाउनलोड यूआरएल","download_link":"लिंक को डाउनलोड करें","empty_files":"निर्देशिका में कोई फ़ाइल नहीं","duplicate_task":"डुप्लिकेट कार्य","duplicate_tracker":"डुप्लिकेट ट्रैकर","this_task_not_ready":"यह कार्य तैयार नहीं है. इस कार्य को रोकें इसे सीधे हटा दिया जाएगा.","some_task_not_ready":"कुछ कार्य तैयार नहीं हैं. इन कार्यों को रोकें उन्हें सीधे हटा दिया जाएगा।","failed_to_delete_files":"फ़ाइलें हटाने में विफल","failed_to_delete_files_desc":"कार्य की कुछ फ़ाइलें हटाने में विफल. आपको उन्हें मैन्युअल रूप से हटाने की आवश्यकता हो सकती है","unknown_error":"अज्ञात त्रुटि: {0}","more_files_are_not_shown":"({0} प्रदर्शन कारणों से अधिक फ़ाइलें नहीं दिखाई गई हैं)","no_available_file":"कोई फ़ाइल उपलब्ध नहीं. कृपया कार्य तैयार होने तक प्रतीक्षा करें.","service_worker_error":"खेलने के लिए ServiceWorker को लोड नहीं किया जा सकता. हो सकता है कि आपका ब्राउज़र इस सुविधा का समर्थन न करे, या सर्विसवर्कर सक्रिय नहीं है। आपको इस पृष्ठ को पुनः लोड करने और पुनः प्रयास करने की आवश्यकता हो सकती है।","add_task_first":"आपको पहले कार्य जोड़ना होगा.","player_task_time":"खिलाड़ी को खेल की तैयारी में बहुत अधिक सेकंड लगते हैं। कार्य में कुछ गड़बड़ी हो सकती है।","web_mode_hint":"${displayName} का वेब मोड केवल WebRTC साथियों का समर्थन करता है। सर्वोत्तम अनुभव के लिए, कृपया ${displayName} डेस्कटॉप ऐप डाउनलोड करें।","web_mode_task_hint":"कार्य जोड़ने के लिए नीचे दिए गए बटन पर क्लिक करें। आप एक समय में केवल एक ही कार्य जोड़ सकते हैं.","save_to_local":"स्थानीय में सहेजें","save_as_zip":"ज़िप के रूप में सहेजें","creating_save_file":"सेव फ़ाइल बनाई जा रही है...","upload_as_one_directory":"एक निर्देशिका के रूप में अपलोड करें","upload_as_single_files":"एकल फ़ाइलों के रूप में अपलोड करें","web_mode_upload_single":"आप वेब मोड में केवल एक फ़ाइल अपलोड कर सकते हैं","download_success":"सफलतापूर्वक डाउनलोड करें","download_fail":"डाउनलोड विफल","wait_for_downloaded_to_share":"कृपया साझा करने से पहले कार्य डाउनलोड होने की प्रतीक्षा करें।","download_with_cellular":"सेल्युलर का उपयोग करके कार्य डाउनलोड करें","download_with_cellular_desc":"आप सेल्युलर नेटवर्क का उपयोग कर रहे हैं. सेल्युलर से डाउनलोड कार्यों के लिए आपके वाहक द्वारा अतिरिक्त शुल्क लिया जा सकता है।","download_with_cellular_confirm":"अभी भी सेल्युलर से डाउनलोड करें","language":"भाषा","appearance":"उपस्थिति","darkModeSystem":"प्रणाली","darkModeLight":"रोशनी","darkModeDark":"अँधेरा","basic_setting":"बुनियादी","hideMenu":"ऐप मेनू छुपाएं (केवल विंडोज़ और लिनक्स)","autoHide":"ऑटो छिपाएँ विंडो","autoStart":"लॉगिन पर खोलें","restore":"बाहर निकलते समय खिड़की का आकार और स्थिति रखें","autoStartUnfinished":"सभी अधूरे कार्य स्वचालित रूप से फिर से शुरू करें","default_download_path":"डिफ़ॉल्ट पथ","download_directory":"निर्देशिका डाउनलोड करें","upload_directory":"निर्देशिका अपलोड करें","enable_auto_upload":"ऑटो अपलोड सक्षम करें","unlimit_upload_amount":"अपलोड राशि असीमित","unlimit_upload_warning":"बड़ी मात्रा में फ़ाइलें अपलोड करने की अनुमति दें. इससे प्रदर्शन संबंधी समस्या हो सकती है","start":"चालू होना","transport_setting":"हस्तांतरण","upload_limit":"अपलोड सीमा","download_limit":"डाउनलोड सीमा","payed_user_share_rate":"भुगतान किया गया उपयोगकर्ता शेयर दर","unlimited":"असीमित","limit_input_error":"सीमा संख्या धनात्मक होनी चाहिए","BT_setting":"कार्य सेटिंग्स","saveLinkSeed":"लिंक को कार्य फ़ाइल के रूप में सहेजें","autoDownload":"स्वचालित रूप से लिंक और सामग्री डाउनलोड करें","continuousSeeding":"बीज बोना तब तक जारी रखें जब तक कि इसे मैन्युअल रूप से बंद न कर दें","seedSharingRate":"बीज अनुपात","seedTime":"बीज समय (मिनट)","task_manage":"कार्य प्रबंधन","maximumDownloadNum":"अधिकतम सक्रिय कार्य","maximumConnectionsNum":"प्रति सर्वर अधिकतम कनेक्शन","range_error":"रेंज {0} और {1} के बीच होनी चाहिए","random":"रैंडम","breakpointContinuation":"जारी रखना","automaticSkip":"कार्य जोड़ने के बाद स्वचालित रूप से डाउनलोडिंग दिखाएं","afterNotification":"डाउनलोड पूरा होने के बाद अधिसूचना","deleteConfirm":"कार्य हटाने से पहले किसी पुष्टि की आवश्यकता नहीं है","submit":"सहेजें और लागू करें","discard":"खारिज करना","reset":"रीसेट","reset_all_settings":"सभी सेटिंग्स को रीसेट?","preferences_resetted":"प्राथमिकताएँ रीसेट की गईं","traditional_chinese":"परंपरागत चीनी","japanese":"जापानी","english":"अंग्रेज़ी","chinese":"सरलीकृत चीनी","advancedSettings":"विकसित","autoUpdate":"ऑटो अपडेट","autoCheckUpdate":"अद्यतन के लिए स्वचालित रूप से जाँच करें","proxy":"प्रतिनिधि","useProxyService":"प्रॉक्सी सक्षम करें","trackerService":"ट्रैकर सर्वर","recommendUse":"अनुशंसित","autoUpdateTrackerServiceList":"ट्रैकर सूची को हर दिन स्वचालित रूप से अपडेट करें","manualUpdateTracker":"मैन्युअल अद्यतन","manualUpdateSuccess":"ट्रैकर सर्वर को सफलतापूर्वक अपडेट करें","manualUpdateFail":"यहां से अपडेट करने में विफल:","listenPort":"बंदरगाहों सुनो","BTlistenPort":"डेटा ट्रांसमिशन पोर्ट","DHTlistenPort":"वितरित हैश पोर्ट","protocols":"संगत प्रोटोकॉल","setDefaultClientForFollowingProtocols":"निम्नलिखित प्रोटोकॉल के लिए डिफ़ॉल्ट क्लाइंट के रूप में सेट करें","magnetUrl":"चुंबक","video_file":"वीडियो फाइल","audio_file":"ऑडियो फाइल","security":"सुरक्षा","impersonateUserAgent":"नकली उपयोगकर्ता-एजेंट","RPCauthorizationkey":"आरपीसी रहस्य","viewDocument":"आरपीसी सीक्रेट मैनुअल देखें","developer":"डेवलपर","applicationLogPath":"ऐप लॉग पथ","downloadSessionPath":"सत्र पथ डाउनलोड करें","resetDownloadSessionRecord":"डाउनलोड सत्र रीसेट करें","restoreInitialSettings":"नए यंत्र जैसी सेटिंग","preferences_set_successfully":"प्राथमिकताएँ सफलतापूर्वक सहेजें!","preferences_set_fail":"प्राथमिकताएँ सहेजना विफल!","change_not_save":"परिवर्तन सहेजे नहीं जाते","discard_all_changes":"सभी परिवर्तन त्यागें और छोड़ें?","stay_in_page":"पेज में रहें","disk_usage":"डिस्क उपयोग","pause_if_less_space":"यदि स्थान (एमबी) से कम है तो रोकें और सूचित करें","default_video_player":"डिफ़ॉल्ट वीडियो प्लेयर","video_cache_time":"स्ट्रीम प्ले कैश","minutes":"मिनट","system_default":"प्रणालीगत चूक","media_player":"मीडिया प्लेयर","library_film_rate":"उपलब्ध फिल्म दर","library_show_explore":"[अन्वेषण] पृष्ठ दिखाएँ","library_setting":"पुस्तकालय सेटिंग","library_sync_setting":"लाइब्रेरी सिंक सेटिंग","keychain_sync_status":"किचेन सिंक स्थिति","sync_with_aws":"अमेज़ॅन वेब सेवाओं के साथ किचेन को सिंक करें","backup_to_local":"स्थानीय फ़ाइल में बैकअप","enable_sync_with_aws":"AWS के साथ समन्वयन सक्षम करें","disable_sync_with_aws":"AWS के साथ समन्वयन अक्षम करें","disable_sync_with_aws_desc":"यह सर्वर में सेव की को हटा देगा। कृपया सुनिश्चित करें कि आपने अपनी कुंजी पहले ही निर्यात कर ली है।","input_independent_password":"स्वतंत्र पासवर्ड इनपुट करें","change_independent_password":"स्वतंत्र पासवर्ड बदलें","password_error":"पासवर्ड त्रुटि","password_invalid":"पासवर्ड अमान्य","key_existed":"कुंजी मौजूद थी","key_not_found":"कुंजी प्राप्त नहीं हुई","library_recommend":"पुस्तकालय की अनुशंसा","show_all_channels":"लाइब्रेरी अनुशंसा पृष्ठ में सभी चैनल दिखाएं","not_logged_in":"अंदर प्रवेश की अनुमति नहीं है","login_to_continue":"जारी रखने के लिए लॉगिन करें","mnemonic_code":"स्मरणीय कोड","wordlist":"शब्द सूची","restore_code":"कोड से पुनर्स्थापित करें","generate_code":"कोड जनरेट करें","export_mnemonic_code":"स्मरणीय कोड निर्यात करें","import_mnemonic_code":"स्मरणीय कोड आयात करें","print":"छाप","save_as_txt":"txt के रूप में सहेजें","save_as_pdf":"पीडीएफ के रूप में सहेजें","from_file":"लेख्यपत्र से","not_valid_mnemonic_code":"यह एक वैध स्मरणीय कोड नहीं है","cannot_parse_code_as_key":"इस स्मरणीय कोड को लाइब्रेरी कुंजी के रूप में पार्स नहीं किया जा सकता","import_key_hint":"क्या आप निश्चित रूप से इस कुंजी को आयात करना चाहते हैं? इससे लाइब्रेरी में आपकी पुरानी कुंजी वापस आ जाएगी।","import_key_confirm":"हाँ, इसे आयात करें.","library_preload":"लाइब्रेरी से कार्य प्रीलोड करें","show_preload":"प्रीलोड कार्य दिखाएँ","set_download":"डाउनलोड निर्देशिका सेट करें","set_download_desc":"MacOS ऐप स्टोर संस्करण के लिए, डिफ़ॉल्ट डाउनलोड निर्देशिका ऐप के सैंडबॉक्स में है, और ऐप अनइंस्टॉल होने के बाद हटा दी जाएगी। यदि आप अपनी डाउनलोड फ़ाइलें रखना चाहते हैं, तो आपको मैन्युअल रूप से एक अलग डाउनलोड निर्देशिका का चयन करना होगा।","home":"घर","home_caption":"डाउनलोड/अपलोड और मीडिया फ़ाइलें","library":"पुस्तकालय","library_caption":"मीडिया संसाधनों का अन्वेषण करें","player":"खिलाड़ी","player_caption":"मीडिया प्लेयर","credits":"क्रेडिट","credits_caption":"अकाउंट बैलेंस जांचें","account":"खाता","account_caption":"साइन इन/साइन अप/प्रबंधन","settings":"समायोजन","settings_caption":"ऐप, प्लेयर, अकाउंट के लिए सेटिंग्स","development":"विकास","development_caption":"आंतरिक उपयोग के लिए डेवलपर मोड","basic":"बुनियादी","basic_caption":"मूल सेटिंग्स","advanced":"विकसित","advanced_caption":"एडवांस सेटिंग","blockchain":"बटुआ","blockchain_caption":"${displayName} विकेंद्रीकृत वॉलेट","internal_notice":"आंतरिक रिलीज़ सूचना","release_notes":"रिलीज नोट्स","terms_and_conditions":"नियम और शर्तें","license_and_listen_notices":"लाइसेंस और ओपन सोर्स नोटिस सुनें","close":"बंद करना","success":"सफलता","fail":"असफल","account_email_invalid_address":"अमान्य ईमेल पता","account_email_invalid_domain":"अमान्य ईमेल डोमेन","account_email_unknown_status":"अज्ञात ईमेल वितरण स्थिति","account_email_unavailable_address":"अनुपलब्ध ईमेल पता","account_email_suppressed_address":"दबा हुआ ईमेल पता","account_loading":"लोड हो रहा है...","account_is_required":"आवश्यक है","account_sign_in_your_account":"दाखिल करना","account_username":"उपयोगकर्ता नाम","account_username_email_phone":"फ़ोन नंबर या ईमेल","account_password":"पासवर्ड","account_new_password":"नया पासवर्ड","account_re_enter_password":"पासवर्ड फिर से दर्ज करें","account_password_not_equal":"दो पासवर्ड बराबर नहीं हैं","account_new_password_same":"पासवर्ड मूल पासवर्ड जैसा ही है","account_forgot_your_password":"अपना कूट शब्द भूल गए?","account_reset_password":"पासवर्ड रीसेट","account_sign_in":"दाखिल करना","account_signed_in":"साइन इन किया","account_sign_up":"साइन अप करें","account_find_your_account":"अपना खाता प्राप्त करें","account_enter_your_username":"अपना फ़ोन नंबर या ईमेल दर्ज करें","account_search":"खोज","account_email_sent_tip":"आपके ईमेल पर सत्यापन कोड वाला एक ईमेल भेजा गया है:","account_phone_sent_tip":"आपके फ़ोन पर सत्यापन कोड वाला एक एसएमएस भेजा गया है:","account_email_phone_sent_tip":"सत्यापन कोड के साथ ईमेल और एसएमएस क्रमशः आपके ईमेल और फ़ोन पर भेज दिए गए हैं:","account_software_token_tip":"आपके खाते के लिए एमएफए सक्षम है। साइन इन पूरा करने के लिए, कृपया अपना डिवाइस चालू करें या देखें और TOTP टाइप करें","account_reset_your_password":"अपना पासवर्ड रीसेट करें","account_verification_code":"सत्यापन कोड","account_resend_code":"पुन: कोड भेजे","account_code_has_been_resent":"सत्यापन कोड पुनः भेजा गया है","account_password_has_been_reset":"पासवर्ड रीसेट कर दिया गया है","account_submit":"जमा करना","account_sign_up_your_account":"अपना खाता साइन अप करें","account_fill_required_fields":"नीचे आवश्यक फ़ील्ड भरें.","account_fill_optional_fields":"नीचे वैकल्पिक फ़ील्ड भरें.","account_email":"ईमेल","account_invitation":"आमंत्रण","account_invitation_code":"आमंत्रण संकेत","account_i_accept":"मुझे स्वीकार है","account_license_terms":"लाइसेंस और शर्तें","account_next":"अगला","account_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा।","account_verify_fill_optional_fields":"सत्यापित करें और वैकल्पिक फ़ील्ड भरें।","account_nickname":"उपनाम","account_gender":"लिंग","account_male":"नर","account_female":"महिला","account_not_say":"कहना नहीं","account_birthday":"जन्मदिन","account_phone_number":"फ़ोन नंबर","account_locale":"स्थानीय","account_tip_verified":"सत्यापित, साइन इन हो रहा है...","account_verified":"सत्यापित","account_unverified":"असत्यापित","account_signed_up":"साइनअप किया","account_verify_your_identity":"अपनी पहचान सत्यापित करो","account_finish":"खत्म करना","account_signed_out":"साइन आउट","account_change_password":"पासवर्ड बदलें","account_change_email":"बदले ई - मेल","account_change_phone_number":"फ़ोन नंबर बदलें","account_sign_out":"साइन आउट","account_current_password":"वर्तमान पासवर्ड","account_re_enter_new_password":"नया पासवर्ड पुनः दर्ज करें","account_personal_information":"जानकारी","account_edit":"संपादन करना","account_reset":"रीसेट","account_greeting":"नमस्ते,","account_cancel":"रद्द करना","account_change":"परिवर्तन","account_not_set":"सेट नहीं","account_setting":"सेटिंग","account_copy_code":"कोड कॉपी करें","account_account_setting":"खाता","account_task_page":"श्रेय कार्य","account_setting_caption":"पासवर्ड बदलें/जानकारी संपादित करें","account_security":"सुरक्षा","account_want_to_join":"सम्मिलित होना चाहते हो?","account_sign_in_now":"दाखिल करना","account_changed":"बदला हुआ","account_clipboard_with_invitation_code":"आमंत्रण कोड कॉपी किया गया","account_clipboard_with_code":"कोड कॉपी किया गया","account_invitation_code_dialog_tip":"आप अपने मित्र को आमंत्रण कोड के साथ एक ईमेल या टेक्स्ट संदेश भेजेंगे:","account_available":"उपलब्ध","account_invited":"आमंत्रित","account_used":"इस्तेमाल किया गया","account_invitation_code_sent":"आमंत्रण कोड भेज दिया गया है","account_invitation_channel_required":"कम से कम एक आमंत्रण चैनल भरें","account_no_verification_code":"सत्यापन कोड प्राप्त नहीं हो सकता?","account_no_phone_number":"कोई फ़ोन नंबर नहीं?","account_sign_up_by_email":"ईमेल द्वारा साइन अप करें","account_no_email":"कोई ईमेल नहीं?","account_sign_up_by_phone_number":"फ़ोन नंबर द्वारा साइन अप करें","account_no_totp":"कोई टीओटीपी नहीं?","account_tip_no_totp":"यदि कोई टीओटीपी नहीं है, तो कृपया पहले टीओटीपी सेटअप करें","account_setup_totp":"सेटअप टीओटीपी","account_contact_information":"संपर्क जानकारी","account_delete_account":"खाता हटा दो","account_deleted":"हटाए गए","account_can_not_mfa":"मुसीबत में एमएफए?","account_set_mfa_type":"कॉन्फ़िग एमएफए","account_disable_mfa":"एमएफए अक्षम करें","account_disabled_mfa":"विकलांग एमएफए","account_sms_mfa":"एसएमएस एमएफए","account_totp_mfa":"टीओटीपी एमएफए","account_totp":"टीओटीपी","account_not_recommend":"अनुसंशित नहीं","account_oauth_sign_in_with":"{provider} के साथ साइन इन करें","account_sign_in_failed":"साइन इन करने में विफल","account_tip_oath_sign_up":"वर्तमान {provider} खाते से संबंधित ईमेल: {email} ने अभी तक कोई खाता नहीं बनाया है","account_tip_confirm_delete_account":"यह पुष्टि करने के लिए कि आप चालू खाता हटाना चाहते हैं, चालू खाता पासवर्ड दर्ज करें। (हटाए गए खाते पुनर्स्थापित नहीं किए जा सकते)","account_tip_config_mfa":"आप द्वितीयक प्रमाणीकरण के रूप में एसएमएस या समय-आधारित वन-टाइम पासवर्ड (टीओटीपी) का उपयोग करना चुन सकते हैं","account_error_can_not_enable_mfa":"एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_sms_mfa":"एसएमएस एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर लिंक करना होगा","account_tip_can_not_enable_totp_mfa":"टीओटीपी एमएफए को सक्षम करने के लिए आपको अपना ईमेल पता और मोबाइल फोन नंबर जोड़ना होगा","account_tip_setup_totp":"नीचे दिए गए क्यूआर कोड को स्कैन करने के लिए ऑथेंटिकेटर जैसे ऐप्स का उपयोग करें या सुरक्षा टोकन जोड़ने के लिए कोड को मैन्युअल रूप से कॉपी करें","account_tip_verify_totp":"अपना TOTP सत्यापित करें","account_link_your_social_account":"अपना सोशल अकाउंट बाइंड करें","account_unlink_your_social_account":"सोशल अकाउंट अनबाइंड करें","account_tip_confirm_link":"क्या आप वाकई चालू खाते को अपने {provider} खाते से जोड़ना चाहते हैं?","account_tip_confirm_unlink":"क्या आप निश्चित रूप से अपना बाउंड {provider} खाता रद्द करना चाहते हैं?","account_tip_linking":"बंधन...","account_tip_unlinking":"खोलना...","account_linked":"अवश्यंभावी","account_unlinked":"अबाध","account_error_can_not_link_to_the_linked_account":"वर्तमान सामाजिक खाता किसी अन्य खाते से जुड़ा हुआ है","account_error_can_not_link_to_the_mismatched_email":"चालू खाता और सामाजिक खाता ईमेल पता असंगत हैं","account_error_can_not_link_before_email_verified":"सामाजिक खाते को लिंक नहीं किया जा सकता क्योंकि चालू खाता सत्यापित ईमेल से बंधा नहीं है","account_tip_confirm_verify_email_phone":"क्या अपनी पहचान सत्यापित करने के लिए चालू खाते के ईमेल और फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_tip_confirm_verify_phone":"क्या अपनी पहचान सत्यापित करने के लिए वर्तमान फ़ोन नंबर पर सत्यापन कोड भेजना चाहिए?","account_error_1_message_60_seconds":"प्रत्येक 60 सेकंड में केवल एक एसएमएस या ईमेल भेजा जा सकता है, अन्य {delta} सेकंड प्रतीक्षा करें","account_error_10_messages_per_day":"प्रत्येक मोबाइल फोन या ईमेल 24 घंटे के भीतर केवल 10 संदेश भेज सकता है","account_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","Network Error":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","account_error_user_not_exist":"उपभोगकर्ता मौजूद नहीं","account_error_incorrect_username_or_password":"गलत उपयोगकर्ता नाम या पासवर्ड","account_error_incorrect_original_password":"ग़लत मूल पासवर्ड","account_error_incorrect_password":"गलत पासवर्ड","account_error_username_not_found":"उपयोगकर्ता नाम नहीं मिला","account_error_can_not_reset_for_no_verified":"असत्यापित खाते के लिए पासवर्ड रीसेट नहीं किया जा सकता","account_error_invalid_verification_code":"गलत सत्यापन कोड, कृपया पुनः प्रयास करें","account_error_expired_verification_code":"सत्यापन कोड समाप्त हो गया, कृपया पुनः प्रयास करें","account_error_password_not_long_enough":"पासवर्ड पर्याप्त लंबा नहीं है","account_error_attempt_limit_exceeded":"प्रयास की सीमा पार हो गई, कृपया कुछ समय बाद प्रयास करें।","account_error_password_attempts_exceeded":"पासवर्ड प्रयास पार हो गए.","account_error_invalid_phone_number_format":"अमान्य फ़ोन नंबर प्रारूप","account_error_no_cell_phone_prefix":"कृपया फ़ोन नंबर के लिए उपसर्ग चुनें","account_error_username_already_exists":"उपयोगकर्ता नाम पहले से ही मौजूद है","account_error_you_need_to_accept_license_terms":"आपको पहले लाइसेंस और शर्तों को स्वीकार करना होगा","account_error_inactive_code":"आमंत्रण कोड कोई सक्रिय कोड नहीं है","account_error_non_existent_code":"आमंत्रण कोड अस्तित्वहीन है","account_error_unexpected":"अप्रत्याशित त्रुटि","account_error_can_not_change_email_before_phone_bound":"फ़ोन नंबर बाध्य होने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_email_before_unbound_social_account":"सोशल अकाउंट को अनबाइंड करने से पहले ईमेल को बदला नहीं जा सकता","account_error_can_not_change_phone_before_email_bound":"ईमेल बाइंड होने से पहले फ़ोन नंबर नहीं बदला जा सकता","account_error_can_not_change_email_phone_with_mfa_enabled":"एमएफए को अक्षम करने से पहले ईमेल या मोबाइल फोन नंबर नहीं बदला जा सकता","account_error_not_supported_yet":"मौजूदा समर्थित नहीं है","account_error_same_email":"नया ईमेल पता मूल ईमेल पते के समान नहीं हो सकता","account_error_same_phone":"नया फ़ोन नंबर मूल फ़ोन नंबर के समान नहीं हो सकता","account_error_email_not_exists":"ईमेल पता मौजूद नहीं है","account_error_email_already_exists":"दिए गए ईमेल वाला एक खाता पहले से मौजूद है।","account_error_phone_already_exists":"दिए गए फ़ोन नंबर वाला एक खाता पहले से मौजूद है।","account_error_mfa_token_mismatch":"सॉफ़्टवेयर टोकन कोड बेमेल","account_error_recaptcha_not_loaded":"नेटवर्क की दिक्कत है. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_recaptcha_validation_failed":"ReCAPTCHA सत्यापन विफल रहा. कृपया नेटवर्क को पुनः कनेक्ट करें और पुनः प्रयास करने के लिए एप्लिकेशन को पुनरारंभ करें।","account_error_sign_in_in_progress":"लंबित साइन-इन प्रयास पहले से ही प्रगति पर है","account_field_range":"{0}-{1} वर्णों का इनपुट सीमित करें","account_field_only_alphanumeric":"केवल अक्षरांकीय का समर्थन करता है","account_field_only_alphanumeric_and_symbol":"केवल अक्षरांकीय और प्रतीकों का समर्थन करता है","account_field_only_chinese_alphanumeric_space_underline":"केवल अल्फ़ान्यूमेरिक, स्पेस, अंडरस्कोर का समर्थन करता है","account_field_prefix_without_number_space":"पहला अक्षर कोई संख्या या स्थान नहीं हो सकता","account_field_suffix_without_space":"रिक्त स्थान के साथ समाप्त नहीं हो सकता","account_field_without_repeat_space":"एक पंक्ति में एकाधिक रिक्त स्थान का उपयोग नहीं किया जा सकता","account_field_can_not_only_alphanumeric":"आप केवल अक्षरों या संख्याओं का उपयोग नहीं कर सकते","account_field_must_have_number_characters":"संख्या अक्षर होने चाहिए","account_field_verification_code":"सत्यापन कोड छह अंकों का होना चाहिए","account_field_invitation_code":"आमंत्रण कोड अक्षरांकीय होना चाहिए","account_field_phone_number":"अमान्य फ़ोन नंबर प्रारूप","account_invalid_email_format":"अमान्य ईमेल प्रारूप","account_sign_out_confirm":"क्या आप निश्चित रूप से साइन आउट करना चाहते हैं? इससे सभी कार्य रुक जायेंगे.","account_sign_out_anyway":"फिर भी साइन आउट करें","account_signing_out":"भाग रद्द करना...","account_request_save_settings":"सेटिंग्स सहेजी नहीं गई हैं. साइन आउट करने से पहले आपको परिवर्तन सहेजने होंगे.","pay":"वेतन","pay_with_credit":"डाउनलोड में तेजी लाने के लिए भुगतान करें. लगभग {0} क्रेडिट की आवश्यकता है","pay_with_credit_payed":"तेज़ हो रहा है. अभी भी लगभग {0} क्रेडिट की आवश्यकता है","create_payment":"भुगतान बनाएँ","pay_target":"लक्ष्य","pay_for_torrent":"{0} के लिए भुगतान करें","your_subid":"आपकी उपआईडी","your_credits":"आपका श्रेय","pay_point_for_data":"{1} डेटा के लिए {0} प्वाइंट का भुगतान करें","auto_renew":"स्वतः नवीनीकरण सक्षम करें","transaction_details":"लेनदेन का विवरण","transaction_id":"पहचान","transaction_payer":"भुगतानकर्ता","transaction_payee":"आदाता","transaction_category":"वर्ग","transaction_changed_amount":"परिवर्तित राशि","transaction_meta":"मेटा","transaction_status":"दर्जा","transaction_creation_time":"रचना समय","receipt_code":"रसीद कोड","transfer_amount":"स्थानांतरण राशि","code_the_receipt_code":"नीचे दिए गए रसीद कोड को भुगतानकर्ता के पास कॉपी करें","fill_the_receipt_code":"प्राप्तकर्ता द्वारा प्रदान किया गया भुगतान कोड भरकर स्थानांतरण करें","expense":"व्यय","copied":"कॉपी किया गया","transfer":"स्थानांतरण","receive":"पाना","copy":"प्रतिलिपि","withdraw_fund":"फंड निकालना","category_paydata_payer":"डेटा की लागत","category_paydata_payee":"डेटा की आय","category_transfer":"स्थानांतरण","category_bonus":"बक्शीश","category_recharge":"फिर से दाम लगाना","status_pending":"लंबित","status_completed":"पुरा होना","status_finish":"खत्म करना","status_failed":"असफल","tip_invalid_receiver":"अमान्य रिसीवर कोड","tip_invalid_amount":"क्रेडिट राशि 0-1000 की सीमा में फ़्लोट होनी चाहिए (न्यूनतम सटीकता 0.001 है)","credit_get_more":"अधिक क्रेडिट प्राप्त करें","credit_no_data":"कोई डेटा मौजूद नहीं","credit_loading":"लोड हो रहा है...","credit_not_enough_amount":"पर्याप्त क्रेडिट नहीं","credit_amount_not_enough":"पर्याप्त क्रेडिट नहीं","credit_payee_not_exist":"आदाता मौजूद नहीं है","credit_invalid_amount":"अमान्य क्रेडिट राशि","credit_can_not_transfer_to_yourself":"अपने आप को स्थानांतरित नहीं किया जा सकता","credit_latest":"नवीनतम","credit_error_network":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","add_subtitles":"उपशीर्षक जोड़ें","open_file":"खुली फाइल...","advanced_options":"उन्नत विकल्प","title":"शीर्षक","location":"जगह","subtitle_file":"उपशीर्षक फ़ाइल","unsupported_subtitle_type":"{0} का फ़ाइल प्रकार समर्थित उपशीर्षक प्रकार नहीं है","not_default_player":"डिफ़ॉल्ट वीडियो प्लेयर सेट नहीं है","this_is_an_audio_file":"यह एक ऑडियो फ़ाइल है","the_added_subtitle_already_exists":"जोड़ा गया उपशीर्षक पहले से मौजूद है","stop_stream_player":"स्ट्रीमिंग मीडिया समाप्त कर दिया गया क्योंकि कार्य रोक दिया गया था या हटा दिया गया था","stop_player":"फ़ाइल हटा दिए जाने के कारण प्लेयर समाप्त कर दिया गया था","playing_timeout_hint":"प्रतीक्षा का समय समाप्त हो गया। कृपया कार्य की जाँच करें","autoplay_hint":"ऑटोप्ले आपके ब्राउज़र द्वारा अवरुद्ध किया जा सकता है. यदि प्लेयर नहीं चल रहा है, तो जारी रखने के लिए स्क्रीन पर क्लिक करने का प्रयास करें","remove_playing_confirm":"{0} अभी भी चल रहा है, इसे हटा दें तो प्लेयर बंद हो जाएगा। क्या आप निश्चित रूप से इसे हटा देंगे?","unsupported_in_browser":"ब्राउज़र मोड में अभी तक समर्थित नहीं है","client":"ग्राहक","warning":"चेतावनी","enable":"सक्षम","disable":"अक्षम करना","auto":"ऑटो","encrypt_connection":"कनेक्शन एन्क्रिप्ट करें","encrypted_connection":"एन्क्रिप्टेड कनेक्शन","non_encrypted_connection":"गैर-एन्क्रिप्टेड कनेक्शन","connected_wires_not_disconnect":"जुड़े हुए तारों को नहीं काटा जाएगा","audio":"ऑडियो","video":"वीडियो","image":"छवि","subtitle":"उपशीर्षक","zip":"ज़िप","text":"मूलपाठ","unknown":"अज्ञात","add":"जोड़ना","undo":"पूर्ववत","backup":"बैकअप","not_default_app":"${displayName} टोरेंट और मीडिया के लिए आपका डिफ़ॉल्ट ऐप नहीं है, क्या आप इसे डिफ़ॉल्ट के रूप में सेट करना चाहते हैं?","dont_show_again":"दोबारा मत दिखाना","go_to_settings":"सेटिंग्स में जाओ","about_alphabiz":"लगभग ${displayName}","last_check_at":"आखिरी बार जांचें","update_channel":"चैनल अपडेट करें","check_for_update":"अपडेट के लिये जांचें","checking_for_update":"अद्यतन के लिए जाँच की जा रही है...","no_update_available":"कोई अद्यतन उपलब्ध नहीं है","update_available":"उपलब्ध अद्यतन","update_now":"अभी अद्यतन करें","update_later":"बाद में अपडेट करें","click_to_update":"डाउनलोड और अपडेट करने के लिए अभी अपडेट करें बटन पर क्लिक करें","update_failed":"भार बढ़ाना विफल हुवा","update_failed_message":"अद्यतन करते समय एक त्रुटि उत्पन्न हुई:","check_shasum_failed":"इंस्टॉलर के लिए सत्यनिष्ठा की जाँच करने में विफल","downloading_update":"अद्यतन स्थिति डाउनलोड हो रही है...","ready_to_update":"अद्यतन करने के लिए तैयार","restart_to_update":"अपडेट डाउनलोड हो गया है. ${displayName} कुछ क्षण के लिए अपडेट करने के लिए बाहर निकल जाएगा।","already_latest":"वर्तमान संस्करण({0}) पहले से ही नवीनतम है","update_timeout":"अपडेट टाइमआउट","no_available_release":"कोई उपलब्ध रिलीज़ नहीं","no_available_installer":"कोई उपलब्ध इंस्टॉलर नहीं","feedback":"प्रतिक्रिया","select_a_type":"एक प्रकार चुनें","category":"वर्ग","select_a_category":"एक श्रेणी चुनें","require_title":"शीर्षक आवश्यक है","describe_your_problem":"अपनी समस्या का वर्णन करें","report_a_bug":"एक बग रिपोर्ट करो","request_a_new_feature":"एक नई सुविधा का अनुरोध करें","download_or_upload":"डाउनलोड अपलोड","others":"अन्य","submit_with_system_info":"सिस्टम जानकारी के साथ सबमिट करें","submit_feedback":"प्रतिपुष्टि दें","tweet_us":"हमें ट्वीट करें","tweet_too_long":"ट्वीट बहुत लंबा है","delete_characters":"कृपया कम से कम {0} अक्षर हटाएं","rest_characters":"आप {0} अधिक वर्ण इनपुट कर सकते हैं","update_alphabiz":"अद्यतन ${displayName}","current_version":"वर्तमान संस्करण","cancel_update":"अद्यतन रद्द करें","slow_download_speed":"डाउनलोड बहुत धीमा है","slow_download_speed_caption":"इंस्टॉलर डाउनलोड अब बहुत धीमा है. कृपया नेटवर्क स्थिति जांचें","update_canceled":"अद्यतन रद्द किया गया","current_version_release_time":"वर्तमान संस्करण का रिलीज़ समय","expired_app":"${displayName} समाप्त हो गया","version_out_of_date":"संस्करण पुराना है","have_to_update":"${displayName} का संस्करण पुराना हो चुका है। कुछ प्रोटोकॉल या एपीआई अप्रचलित हैं। जारी रखने से पहले आपको ${displayName} अपडेट करना होगा।","exit_alphabiz":"${displayName} से बाहर निकलें","exit_and_update":"बाहर निकलें और अपडेट लागू करें","new_version_hint":"नया संस्करण उपलब्ध है","no_new_version":"कोई नया संस्करण उपलब्ध नहीं है","current_is_latest":"वर्तमान संस्करण पहले से ही नवीनतम है","click_to_check_update":"अपडेट की जांच के लिए [अद्यतन की जांच करें] बटन पर क्लिक करें","download_latest_version_from_website":"कृपया नवीनतम संस्करण डाउनलोड करने के लिए आधिकारिक वेबसाइट पर जाएँ","to_the_website":"वेबसाइट के लिए","network_diagnotic":"नेटवर्क डायग्नोस्टिक","diagnotic":"डायग्नोस्टिक","click_to_check":"जांचने के लिए क्लिक करें","click_to_check_again":"दोबारा जांचने के लिए क्लिक करें","checking":"चेकिंग","online":"ऑनलाइन","offline":"ऑफलाइन","dns_look_up":"डीएनएस लुकअप","error":"गलती","aws_service":"एडब्ल्यूएस सेवा","network_pings":"नेटवर्क पिंग","not_found":"नहीं मिला","packet_loss":"पैकेट का नुकसान","official_site":"आधिकारिक साइट","download_test":"परीक्षण डाउनलोड करें","test_task":"परीक्षण कार्य {0}","download_failed":"डाउनलोड विफल","second_spend":"{0} का खर्च","open_default_player_failed":"डिफ़ॉल्ट प्लेयर खोलने में विफल","copied_to_clipboard":"क्लिपबोर्ड पर नकल","go_to":"के लिए जाओ","region_not_available":"क्षेत्र उपलब्ध नहीं है","region_not_available_message":"क्षमा मांगना! आपका क्षेत्र इस ऐप का उपयोग करने के लिए उपलब्ध नहीं है। यह ऐप {0} सेकंड के बाद बंद हो जाएगा","confirm":"पुष्टि करना","no_available_result":"कोई परिणाम उपलब्ध नहीं","invalid_password_format":"अवैध पासवर्ड प्रारूप","invalid_password_format_same":"पासवर्ड मूल पासवर्ड जैसा ही है","error_password":"पासवर्ड त्रुटि","keychain_setting":"कीचेन","setting_description":"क्लाउड स्टोरेज: मुख्य डेटा को क्लाउड में सेव करें।\\nपासवर्ड बदलें: मीडिया लाइब्रेरी कुंजी के लिए पासवर्ड बदलें।\\nनिमोनिक: कुंजियाँ उत्पन्न करने और पुनर्स्थापित करने की एक वैकल्पिक विधि।\\nस्थानीय कुंजी आयात करें: स्थानीय रूप से सहेजी गई कुंजी को मीडिया लाइब्रेरी में आयात करें।\\nनिर्यात कुंजी: वर्तमान मीडिया लाइब्रेरी डेटा को स्थानीय या क्लाउड पर सहेजता है।\\nक्लाउड के लिए बैकअप कुंजी: बैकअप के लिए वर्तमान मीडिया लाइब्रेरी डेटा को क्लाउड पर अपडेट करें।","refresh_status":"अद्यतन स्थिति","confirm_import_key":"आयात कुंजी की पुष्टि करें","confirm_update_cloud_key":"आपके पास पहले से ही क्लाउड में एक कुंजी है। कुंजी को अद्यतन करने से मूल कुंजी अधिलेखित हो जाएगी. क्या आप वाकई क्लाउड में संग्रहीत कुंजी को अपडेट करना चाहते हैं?","export_key_with_cloud":"क्लाउड में संग्रहीत लाइब्रेरी कुंजी को निर्यात करने के लिए आपके द्वारा सेट किया गया स्वतंत्र पासवर्ड दर्ज करें, और अनलॉक पासवर्ड द्वारा कुंजी फ़ाइल को लॉक करें","store_cloud_key_prompt_password":"लाइब्रेरी कुंजी को क्लाउड में संग्रहीत करने के लिए एक स्वतंत्र पासवर्ड दर्ज करें","update_cloud_key_prompt_password":"लाइब्रेरी कुंजी को एन्क्रिप्ट करने के लिए एक स्वतंत्र पासवर्ड सेट करें और फिर इसे क्लाउड पर अपडेट करें","enable_cloud_storage_prompt_password":"क्लाउड में संग्रहीत कुंजी के लिए एक पासवर्ड सेट करें, जिसके माध्यम से आप क्लाउड से कुंजी पुनः प्राप्त कर सकते हैं","input_unlock_password":"अनलॉक पासवर्ड सेट करें","export_local_prompt_password":"कृपया अपनी कुंजी फ़ाइल को एन्क्रिप्ट करने के लिए एक अनलॉक पासवर्ड सेट करें। हम आपके लिए यह पासवर्ड सेव नहीं करेंगे, इसलिए यदि आप अपना पासवर्ड खो देते हैं, तो आप अपनी लाइब्रेरी कुंजी को अनलॉक नहीं कर पाएंगे","require_unlock_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","require_independent_password":"कुंजी को क्लाउड में संग्रहीत करने के लिए स्वतंत्र पासवर्ड दर्ज करें","import_local_prompt_password":"कुंजी फ़ाइल लॉक है, कृपया अनलॉक पासवर्ड दर्ज करें","select_encrypt_mode":"एन्क्रिप्शन मोड का चयन करें","update_cloud_key":"क्लाउड में संग्रहीत कुंजी को अद्यतन करें","backup_to_cloud":"लाइब्रेरी कुंजी को क्लाउड पर बैकअप करें","save_local":"लाइब्रेरी कुंजी को स्थानीय एन्क्रिप्टेड फ़ाइल के रूप में सहेजें","create_new_key":"एक नई लाइब्रेरी कुंजी बनाएं","creating_lib_key":"लाइब्रेरी कुंजी बनाई जा रही है...","loading_lib_key":"लाइब्रेरी कुंजी लोड हो रही है...","failed_to_create_lib_key":"लाइब्रेरी कुंजी बनाने में विफल","failed_to_load_lib_key":"लाइब्रेरी कुंजी लोड करने में विफल","import_local_key":"कुंजी को स्थानीय रूप से आयात करें","import_lib_key_from_local":"लाइब्रेरी कुंजी को स्थानीय रूप से आयात करें","import_from_cloud":"क्लाउड से लाइब्रेरी कुंजी आयात करें","create_or_import_key":"लाइब्रेरी कुंजी बनाएं या आयात करें","create_or_import_key_desc":"लाइब्रेरी कुंजी एक स्वतंत्र कुंजी है जिसका उपयोग विकेंद्रीकृत डेटाबेस के साथ सामग्री लाने और प्रकाशित करने के लिए किया जाता है।","store_your_lib_key":"अपनी लाइब्रेरी कुंजी संग्रहीत करें","export_cloud_key":"क्लाउड से कुंजी निर्यात करें","export_current_key":"वर्तमान कुंजी निर्यात करें","change_password":"पासवर्ड बदलें","enable_cloud_storage":"क्लाउड स्टोरेज सक्षम करें","disable_cloud_storage":"क्लाउड स्टोरेज अक्षम करें","disable_cloud_storage_desc":"क्लाउड स्टोरेज को अक्षम करने से क्लाउड में सहेजी गई कुंजी हट जाएगी, कृपया सुनिश्चित करें कि कुंजी स्थानीय रूप से सहेजी गई है","sync_at":"यहां सिंक करें: {time}","cloud_storage_enabled":"{storage} के साथ किचेन को सिंक करें","cloud_storage_disabled":"क्लाउड स्टोरेज अक्षम किया गया","saved_locally":"स्थानीय स्तर पर सहेजा गया","export_key":"कुंजी फ़ाइल निर्यात करें","cloud_independent_password":"क्लाउड स्वतंत्र पासवर्ड","key_file_unlock_password":"कुंजी फ़ाइल अनलॉक पासवर्ड","re_enter_unlock_password":"अनलॉक पासवर्ड पुनः दर्ज करें","independent_password_not_enabled":"वर्तमान पासवर्ड अल्फ़ाबिज़ खाता पासवर्ड है (कोई स्वतंत्र पासवर्ड सेट नहीं है)","use_cognito_hash":"अल्फ़ाबिज़ खाता पासवर्ड का उपयोग करें","use_independent_password":"स्वतंत्र पासवर्ड का प्रयोग करें","keychain_lib":"पुस्तकालय कुंजी","loading_keychain_state":"चाबी का गुच्छा लोड हो रहा है...","backing_up":"समर्थन करना...","backup_current_key":"क्लाउड पर वर्तमान कुंजी का बैकअप लें","cloud_lib_key_not_existed":"लाइब्रेरी कुंजी क्लाउड में मौजूद नहीं है","open_keychain_file":"किचेन फ़ाइल खोलें","confirm_open_abk":"क्या आप एबीके फ़ाइल खोलना चाहते हैं?","use_the_key":"कुंजी का प्रयोग करें","backup_the_key":"क्लाउड पर कुंजी का बैकअप लें","keychain_data_does_not_exist":"किचेन डेटा मौजूद नहीं है","timeout of 0ms exceeded":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","XhrError":"नेटवर्क में कोई समस्या है, कृपया बाद में पुनः प्रयास करें","payer credit amount is not enough":"पर्याप्त क्रेडिट नहीं","payee does not exist":"आदाता मौजूद नहीं है","block_list_manage":"ब्लॉक सूची प्रबंधन","blocked_users":"रोके गए उपयोगकर्ता","blocked_channels":"अवरुद्ध चैनल","unblock_user":"उपयोगकर्ता को अनब्लॉक करें","unblock_channel":"चैनल अनब्लॉक करें","no_blocked_user":"कोई अवरुद्ध उपयोगकर्ता नहीं","no_blocked_channel":"कोई अवरुद्ध चैनल नहीं","field_required":"{0} आवश्यक है","setting":"सेटिंग","unknown_media":"अज्ञात मीडिया","settings_button_visible":"बटन दृश्यमान","settings_setting":"सेटिंग","settings_playback_rate":"प्लेबैक दर","settings_subtitle":"उपशीर्षक","settings_pip":"रंज","settings_fullscreen":"पूर्ण स्क्रीन","settings_subtitle_options":"उपशीर्षक विकल्प","settings_normal":"सामान्य","settings_italic":"तिरछा","settings_lighter":"लाइटर","settings_bolder":"बोल्डर","settings_small":"छोटा","settings_large":"बड़ा","about":"के बारे में","services":"सेवाएं","hide":"छिपाना","hide_others":"दूसरों को छुपाएं","show_all":"सब दिखाएं","quit":"छोड़ना","edit":"संपादन करना","redo":"फिर से करना","cut":"काटना","paste":"पेस्ट करें","select_all":"सबका चयन करें","view":"देखना","reload":"पुनः लोड करें","toggle_full_screen":"संपूर्ण स्क्रीन टॉगल करें","toggle_developer_tools":"डेवलपर टूल टॉगल करें","window":"खिड़की","minimize":"छोटा करना","bring_all_to_front":"सभी को सामने लाओ","help":"मदद","github_repo":"जीथब रेपो","issues":"समस्याएँ","learn_more":"और अधिक जानें","learn_spelling":"वर्तनी सीखें","lookup_selection":"ऊपर देखो \\"{selection}\\"","search_with_google":"गूगल से खोजें","save_as":"के रूप रक्षित करें","save_image":"चित्र को सेव करें","save_image_as":"इमेज को इस तरह सेव कीजिए ...","copy_link":"लिंक की प्रतिलिपि करें","save_link_as":"लिंक इस रूप में सेव करें ...","copy_image":"नकल छवि","copy_image_as":"छवि को इस रूप में कॉपी करें...","copy_image_address":"छवि पता कॉपी करें","download_complete":"डाउनलोड पूर्ण","download_complete_message":"{0} डाउनलोड हो गया है","is_running":"{0} चल रहा है","open":"{0} खोलें","launch_problem":"लॉन्च समस्या","ask_clear_data":"ऐसा लगता है कि आप {0} लॉन्च करने का प्रयास कर रहे हैं लेकिन कई बार विफल रहे।\\nक्या आप सभी ऐप डेटा साफ़ करना चाहते हैं और बाद में लॉन्च करने का प्रयास करना चाहते हैं?","launch_directly":"सीधे लॉन्च करें","clear_all_data":"सभी डेटा साफ़ करें","ask_clear_confirm":"यह सभी कॉन्फ़िगरेशन, लॉग और उपयोगकर्ता डेटा हटा देगा!\\nइसके बाद आपको {0} को फिर से लॉन्च करने की आवश्यकता हो सकती है।\\nक्या आप निश्चित रूप से डेटा साफ़ करना चाहते हैं?","confirm_launch":"नहीं, सीधे लॉन्च करें","confirm_clear":"हां, सारा डेटा साफ़ करें"}')},"88f5":function(e,t,a){"use strict";a("0f74")},"899b5":function(e,t,a){"use strict";a("81a4")},"8a63":function(e,t,a){"use strict";a.d(t,"b",(function(){return _})),a.d(t,"f",(function(){return p})),a.d(t,"c",(function(){return m})),a.d(t,"d",(function(){return h})),a.d(t,"e",(function(){return g})),a.d(t,"g",(function(){return f})),a.d(t,"h",(function(){return b})),a.d(t,"a",(function(){return y}));a("a1c1"),a("7a76");var n=a("d7df"),o=a("5584"),i=a("1926"),r=a("8750"),s=a("f680"),l=a("84f6"),c=a("d310"),d=a("d558");setTimeout((()=>{n["a"].on("torrent_list",(e=>{l["a"].updateTaskList(e)})),n["a"].on("torrent_delete",(e=>{console.log("deleted",e),l["a"].onDeleteTask(e)})),n["a"].on("torrent_error",(e=>{console.log("torrent error",e);const t=e.torrent||{},a=t.postTitle||t.name||t.infoHash||e.token;s["a"].create({message:i["b"].t("torrent_error")+" "+a,caption:i["b"].t(e.message),group:e.message})}))}),1e3);const u=()=>{const e=o["a"].getters.settings;return{downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}};function _(e,t){const a="string"===typeof t?t:(null===t||void 0===t?void 0:t.path)||(null===t||void 0===t?void 0:t[0].path);if(!a)return;let o=0;const i=a.startsWith("ab://")?a.replace(/^ab:\/\//,(()=>"alphabiz://alphabiz-task-"+o++)):a;n["a"].emit("download_torrent",{type:e,url:i,file:i,token:crypto.randomUUID(),...u()})}function p(e,t){console.log("pause torrent",e);const a=l["a"].taskList.downloaded.find((t=>t.infoHash===e));if(!a)return n["a"].emit("pause_torrent",e);const o=e=>{var a,n;const o=t.dp$expenseHashMapper[e];if(!o)return;const i=null===(a=t.dp$expenseStatusMapper.PENDING)||void 0===a?void 0:a.filter((e=>o.includes(e))),r=null===(n=t.dp$expenseStatusMapper.COMPLETED)||void 0===n?void 0:n.filter((e=>o.includes(e)));i&&i.forEach((e=>{console.log("dp$cancel from pauseTorrent",e),t.dp$cancel(e).catch((t=>{console.log("dp$cancel failed:",e,t.code,t.message)}))})),r&&r.forEach((e=>{console.log("dp$confirm from pauseTorrent",e),t.dp$confirm(e)}))};return r["a"].create({title:i["b"].t("pause"),message:i["b"].t("pause_all_finish_payments"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("pause")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{try{o(e)}catch(t){console.log("dp$pause failed:",t.message)}n["a"].emit("pause_torrent",e)}))}function m(e=!1){if(e&&!o["a"].getters.settings.autoStartUnfinished&&!Object(d["a"])())return console.log("Skip auto download all");const t=l["a"].taskList.downloading.filter((t=>(!e||!t.pausedByUser)&&t.paused)).sort(((e,t)=>{const a=e.createdTime-t.createdTime;return isNaN(a)?0:a}));return console.log("[DownloadAll] resume",t),n["a"].emit("resume-all",t),new Promise((e=>{n["a"].once("resume-all",e)}))}function h(e=!1){n["a"].emit("pause_all",e),setTimeout((()=>{n["a"].emit("pause_all",e)}))}function g(e=!1){const t=l["a"].taskList.uploading;if(!t.length)return;const a=t.filter((e=>!e.infoHash&&!e.isPreload&&!e.files));if(a.length)return e&&(a.forEach((e=>{n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)),r["a"].create({message:i["b"].t("some_task_not_ready"),ok:{textColor:"red",color:"unset",flat:!0,label:i["b"].t("remove")},cancel:{textColor:"grey",color:"unset",flat:!0,label:i["b"].t("cancel")}}).onOk((()=>{a.forEach((e=>{e.infoHash||n["a"].emit("delete_torrent",e.token,!1)})),setTimeout((()=>n["a"].emit("pause_all_uploading",e)),1e3)}));n["a"].emit("pause_all_uploading",e)}function f(e,t){const a=Array.isArray(e)?e:[e],o=a.map((e=>e?"string"===typeof e?e:"string"===typeof e.path?e.path:null:null)).filter((e=>e));if(!o.length&&Object(c["isElectron"])())throw new Error(`Cannot upload file ${e}: cannot get file path`);n["a"].emit("seed_torrent",{file:o,token:t||crypto.randomUUID(),...u()})}function b(e=!1){if(!l["a"].taskList.downloaded)return 0;const t=l["a"].taskList.downloaded.filter((t=>(!e||!t.pausedByUser)&&(!t.missAllFile&&!t.missFile)));if(!t.length)return console.log("skip upload all since nothing to upload"),l["a"].taskList.downloaded.length;const a=l["a"].taskList.downloaded.length-t.length;return n["a"].emit("seed_torrents",t),a}async function y(){o["a"].getters.settings.autoStartUnfinished?"signedIn"===o["a"].state.account.authState?(console.log("prepare download all"),await m(!0),b(!0)):console.log("User is not logged in",o["a"].getters.accountUserInfo.authState):console.log("User disabled auto restart")}},"8dc9":function(e,t,a){},"8f79":function(e,t,a){},"8fd4":function(e,t,a){},9:function(e,t){},"91fe":function(e,t,a){},9256:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},9344:function(e,t,a){"use strict";a("1278")},9369:function(e,t,a){"use strict";a.d(t,"c",(function(){return r})),a.d(t,"d",(function(){return s})),a.d(t,"a",(function(){return c}));a("7a76"),a("de6c"),a("f200");var n=a("5584"),o=a("36a1"),i=a("072b");function r(e){return!!e||this.$t("account_is_required")}function s(e){return i["d"].call(this,e)}function l(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function c(e,t={}){const{mode:a,password:o,keyName:i}=t,r=await n["a"].dispatch("syncKeychainState");r[i]?await n["a"].dispatch("updateKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}):await n["a"].dispatch("createKeychainCloud",{keyName:i,mode:a,password:o,keyObj:e}),await n["a"].dispatch("syncKeychainState")}async function d(e,t){const a=async()=>{var e;if(!o["a"].user||null===(e=o["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=o["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t},i={lib:await a()},r=Object.keys(i).map((a=>c.call(this,i[a],{mode:e,password:t,keyName:a})));await Promise.all(r),await n["a"].dispatch("syncKeychainState")}t["b"]={beforeCreate(){if(!["StatusBanner","ChangePassword"].includes(this.$options.name))throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async keychain$changePassword(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{const t={oldPassword:{type:"password",model:"",label:this.$t("account_current_password"),rules:[r.bind(this),s.bind(this)]},password:{type:"password",model:"",label:this.$t("account_new_password"),rules:[r.bind(this),s.bind(this),e=>t.oldPassword.model!==e||this.$t("invalid_password_format_same")]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("change_password"),message:n["a"].getters.keychainState.unset?this.$t("independent_password_not_enabled"):void 0,cancel:!0,prompts:t,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.oldPassword,a.password)}))});await a.promise()};await a((async(a,o,i)=>{try{await n["a"].dispatch("changeKeychainPassword",{oldPassword:o,password:i}),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(r){e(r.message)}}))},async keychain$enableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=()=>{try{var t;if(!o["a"].user||null===(t=o["a"].user._)||void 0===t||!t.sea)throw new Error("Please login first")}catch(a){e(a.message)}};a();const i=l.call(this,this.$t("loading_keychain_state")),c=await n["a"].dispatch("syncKeychainState").finally(i.hide),u=async e=>{const t={password:{type:"password",label:this.$t("account_password"),model:"",rules:[r.bind(this),s.bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>t.password.model===e||this.$t("account_password_not_equal")]}},a=this.$alphabiz.dialog({title:this.$t("input_independent_password"),prompts:t,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password)))});await a.promise()};if(c.hash&&c.unset){const a=async e=>{const t={};t.use_cognito_hash={color:"primary",textColor:"primary",label:this.$t("use_cognito_hash"),handler:t=>t.dialog$useLoadingState("use_cognito_hash",(()=>e(t,"cognito_hash")))},t.use_independent_password={label:this.$t("use_independent_password"),handler:t=>t.dialog$useLoadingState("use_independent_password",(()=>e(t,"independent_password")))};const a=this.$alphabiz.dialog({title:this.$t("enable_cloud_storage"),message:this.$t("enable_cloud_storage_prompt_password"),cancel:!0,ok:!1,actions:t});await a.promise()};await a((async(a,n)=>{if("independent_password"===n)await u((async(o,i)=>{try{await d.call(this,n,i),t(),o.hide(),a.hide()}catch(r){e(r.message)}}));else if("cognito_hash"===n)try{await d.call(this,n,void 0),t(),a.hide()}catch(o){e(o.message)}}))}else await u((async(a,n)=>{try{await d.call(this,"independent_password",n),t(),a.hide()}catch(o){e(o.message)}}))},async keychain$disableCloudStorage(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async e=>{let t=5;const a=()=>({label:t?`${this.$t("disable_cloud_storage")} (${t})`:this.$t("disable_cloud_storage"),disable:!!t,color:"negative",textColor:"negative",handler:t=>t.dialog$useLoadingState("ok",e)}),n=this.$alphabiz.dialog({title:this.$t("disable_cloud_storage"),message:this.$t("disable_cloud_storage_desc"),cancel:!0,ok:a()}),o=setInterval((()=>{t>0?t-=1:clearInterval(o),n.update({ok:a()})}),1e3);await n.promise()};await a((async a=>{try{await new Promise((e=>setTimeout(e,1e3))),await n["a"].dispatch("disableKeychainCloud"),await n["a"].dispatch("syncKeychainState"),t(),a.hide()}catch(o){e(o.message)}}))}}}},"937c":function(e,t){e.exports={remote:{url:"https://alpha.biz/app/remote_config"},local:{type:"local",version:"default:v1",oauth:{enable:!1,providers:["Github","Twitter"]},account:{phone_number:!1},library:{show_explore:!1},update:{enable:!1}}}},"93e8":function(e,t,a){"use strict";a("981d")},9445:function(e){e.exports=JSON.parse('{"users":[{"_comment":"You should use pubkey as id here. See take-down.js for more info.","id":"a_pubkey_of_user","reason":"Serious Violation"}],"channels":[{"id":"an_id_of_channel","reason":"Copyright Disputes"}],"posts":[{"id":"an_id_of_post","reason":"Adults Only"}]}')},9572:function(e,t,a){"use strict";(function(e){a("7a76"),a("d4b5"),a("de6c");var n=a("02fe"),o=a.n(n);const i=({encryptor:t,decryptor:a,randomHex:n,pbkdf2:o})=>{const i=e=>{if(64!==e.length)throw new Error("Invalid password length")},r=(a,n)=>{const i=o(n.password,n.salt,1e3,32);return t(a,i,e.from(n.iv,"hex"))},s=(t,n)=>{const i=o(n.password,n.salt,1e3,32);return a(t,i,e.from(n.iv,"hex"))},l=(e,t)=>{i(t);const a=n(),o=n(),s=r(e,{password:t,iv:a,salt:o});return JSON.stringify({encrypted:s,salt:o,iv:a})},c=(e,t)=>{i(t);const a=JSON.parse(e),n=s(a.encrypted,{password:t,salt:a.salt,iv:a.iv});if(!n)throw new Error("password_error");return n},d=(e,t,a)=>{i(t),i(a);const n=c(e,t);return l(n,a)};return{encryptKey:l,decryptKey:c,changePassword:d}},r=i({encryptor:(e,t,a)=>{const n=o.a.AES.encrypt(e,o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return n.ciphertext.toString()},decryptor:(e,t,a)=>{try{const n=o.a.AES.decrypt(o.a.enc.Base64.stringify(o.a.enc.Hex.parse(e)),o.a.enc.Hex.parse(t.toString("hex")),{iv:o.a.enc.Hex.parse(a.toString("hex")),mode:o.a.mode.CBC,padding:o.a.pad.Pkcs7});return o.a.enc.Utf8.stringify(n)}catch(n){return console.error(n.message),null}},pbkdf2:(e,t,a,n)=>o.a.enc.Hex.stringify(o.a.PBKDF2(e,t,{hasher:o.a.algo.SHA512,keySize:2*n/8,iterations:a})),randomHex:()=>o.a.enc.Hex.stringify(o.a.lib.WordArray.random(16))}),s=e=>o.a.SHA256(e).toString();t["a"]={encryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{epub:a,pub:n,epriv:o,priv:i}=e,l=[a,n,o,i].join(":");return r.encryptKey(l,s(t))},decryptLibKeyObj:async(e,t)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");const a=r.decryptKey(e,s(t)),[n,o,i,l]=a.split(":"),c={epub:n,pub:o,epriv:i,priv:l};if(["epriv","epub","priv","pub"].some((e=>!c[e])))throw new Error("invalid_key");return c},changePassword:async(e,t,a)=>{if(!t||"string"!==typeof t)throw new Error("invalid_password");if(!a||"string"!==typeof a)throw new Error("invalid_password");return r.changePassword(e,s(t),s(a))},digestPassword:e=>{if(!e||"string"!==typeof e)throw new Error("invalid_password");return s(e)}}}).call(this,a("eb72").Buffer)},"981d":function(e,t,a){},9856:function(e,t,a){"use strict";(function(e,n){a("de6c"),a("dc89"),a("2425"),a("a1c1"),a("1af1");var o=a("025c"),i=a("4fd2"),r=a("d7df"),s=a("6422"),l=a("0f0c"),c=a("07e8"),d=a("ce6c"),u=a("5584"),_=a("c62a6"),p=a("36a1"),m=(a("80cf"),a("f039")),h=a("8a63"),g=a("0885"),f=a("09e8"),b=a("84f6"),y=a("feef"),v=a("61af"),w=a.n(v),k=a("9efe"),S=a("a449"),C=a("c5a5"),x=a("d710"),$=a.n(x),T=(a("a749"),a("b71d")),z=a("9f21"),P=a("2e22"),A=a("d884");console.log("import io CLIENT"),console.log("-import io CLIENT");const{displayName:I,protocol:q,shortProtocol:O}=$.a,E=a("d310").isElectron();E||console.warn("Warning: Torrent downloader is not impl in browser mode now");const D=()=>{const t=async function(t){console.log("[mixinBlockchainUrl] on paste",t,t.clipboardData.getData("text"));const a=t.clipboardData.getData("text");if(![q,O].some((e=>a.startsWith(e))))return;t.preventDefault();const n=await Object(C["a"])(a);n.startsWith("ab-blockchain:")&&e.handleAbBlockchain({url:n})};let a;return{mounted(){a=t.bind(this),document.body.addEventListener("paste",a)},beforeDestroy(){document.body.removeEventListener("paste",a)}}},j={mixins:[z["a"]],created(){this.$amplify.addOnAuthStateChangedListener((()=>{const e=Object(l["a"])("version");n.env.JEST_TEST||-1===e.indexOf("dev")&&"Alphabiz"===I&&(e.includes("internal")||e.includes("nightly"))&&setTimeout(this.showInternalNotice.bind(this),100)}),{once:!0})}};let N=null;t["a"]={name:"App",provide(){return{rootApp:this,io:r["a"],lib:p["a"],autoRenew:this.autoRenew,path:this.path,taskQueue:this.taskQueue,dp$source:this.dp$source}},components:{GlobalRecommend:T["a"],AboutDialog:o["a"],TaskDialog:y["a"],ApplicationBar:d["a"]},mixins:[f["a"],S["b"],D(),j],data(){return{isElectron:E,isTestEnv:!1,path:"/library",settings:null,taskQueue:[]}},computed:{shouldQueueTask(){return!!u["a"].getters.settings.forceLogin&&(!u["a"].getters.accountUserInfo||!u["a"].getters.accountUserInfo.sub)},downloadingTorrents(){return b["a"].taskList.downloading}},methods:{async resolveQueue(){if(0===this.taskQueue.length)return;const e=[],t=[],a=[];let n=null;while(this.taskQueue.length){const o=this.taskQueue.shift();switch(o.type){case"download":o.file.startsWith("file://")?a.push(o.file):t.push(o.file);break;case"upload":e.push(o.files);break;case"uploadOrPlay":n=o.file;break}}console.log(e,t,a,n);for(const o of[...new Set(e)])await this.promptUpload(o);t.length&&await this.promptDownload([...new Set(t)].join("\n")),a.length&&await this.promptDownload([...new Set(a)].join("\n")),n&&this.promptUploadOrPlay(n)},promptDownload(e,t=!1){if(console.log(e,t),!E)return;const a=e.startsWith("magnet")||e.startsWith(q)||e.startsWith(O)||e.startsWith("file://")?e:"file://"+e;if(e.startsWith("file://")&&!w.a.existsSync(e))return;if(this.shouldQueueTask)return console.log("queue download",e,t),void this.taskQueue.push({type:"download",file:a,isMagnet:t});let n=null;const o=new Promise((e=>{n=e})),i=new DataTransfer;i.setData("text/plain",a);const r=new ClipboardEvent("paste",{clipboardData:i});return console.log("dispatch paste event"),r._ab_payload_=a,r._is_magnet_=t,r._onClose=n,console.log("dispatch event"),document.body.dispatchEvent(r),o},promptUpload(e){if(this.shouldQueueTask)return console.log("queue upload",e),void this.taskQueue.push({type:"upload",files:e});let t=null;const n=new Promise((e=>{t=e}));if(console.log("upload",e),!E){const o=()=>{r["a"].emit("wt-add",e[0]),t&&t()},i=a("c620").wtClient;return i.torrents.length?this.$q.dialog({message:this.$t("remove_old_task_desc"),ok:this.$t("remove_old_task"),cancel:this.$t("cancel")}).onOk((()=>{i.torrents[0]?(i.torrents[0].destroy(),i.torrents.splice(0),o()):o()})).onCancel(t):this.$q.dialog({message:this.$t("upload_torrent"),ok:this.$t("upload")}).onOk(o).onCancel(t),n}const o=e.map((e=>e.path||e)),i=o.map((e=>`
${e}
`)).join(""),s={html:!0,style:"white-space:pre-wrap;word-break:break-all",title:this.$t("upload"),message:this.$t("ask_if_upload_file")+"
"+i,ok:this.$t("upload"),cancel:this.$t("cancel")};return o.length>1&&(s.options={type:"radio",model:"single",items:[{label:this.$t("upload_as_single_files"),value:"single"},{label:this.$t("upload_as_one_directory"),value:"directory"}]}),this.$q.dialog(s).onOk((e=>{if(console.log("upload files",e,o),"single"===e)return o.forEach((e=>{r["a"].emit("seed_torrent",{file:[e],token:e,settings:{...this.settings},trackers:u["a"].getters.settings.trackerList||[]})})),void(t&&t());const a=1===o.length?o[0]:"";r["a"].emit("seed_torrent",{file:o,token:a,settings:{...this.settings},trackers:u["a"].getters.settings.trackerList||[]}),t&&t()})).onCancel((()=>{t&&t()})),n},promptUploadOrPlay(e){if(this.shouldQueueTask)return console.log("queue uploadOrPlay",e),void this.taskQueue.push({type:"uploadOrPlay",file:e});console.log(e),this.$q.dialog({title:this.$t("upload_or_play"),message:this.$t("ask_if_upload_or_play"),options:{type:"checkbox",model:[],items:[{label:this.$t("play"),value:"play"},{label:this.$t("upload"),value:"upload"}]},ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((t=>{if(t&&(t.includes("upload")&&r["a"].emit("seed_torrent",{file:[e.path||e],token:Math.random().toString().substring(2),settings:{...this.settings},trackers:u["a"].getters.settings.trackerList||[]}),t.includes("play"))){const t={};if("string"===typeof e){const a={src:"play:///"+encodeURI(e)};console.log("play source"),t.action={type:"play_source",source:a}}else console.log("play file"),t.action={type:"play_file",file:e};this.$router.push({name:"Player",query:{rand:Math.random()},params:t})}}))},getPublicVersion(e){return Object(l["a"])(e)},async onDrop(e){const t=e.dataTransfer.getData("text");if(console.log("drop",e,t),!t&&(!e.dataTransfer.files||!e.dataTransfer.files[0]))return;e.preventDefault();const a=[...e.dataTransfer.files];console.log(a);const n=t&&!a.length;if(await Object(m["a"])(e,a,t),E&&a.length){const e=a.some((e=>!w.a.existsSync(null===e||void 0===e?void 0:e.path)));if(e)return this.$q.notify(this.$t("file_not_found"))}if(n)return this.promptDownload(t,!0);if(1===a.length){var o,r,s,l;if(Object(i["a"])((null===(o=a[0])||void 0===o?void 0:o.path)||""))return this.promptUploadOrPlay(a[0]);if(null!==(r=a[0])&&void 0!==r&&null!==(s=r.path)&&void 0!==s&&s.endsWith(".torrent"))return this.promptDownload(null===(l=a[0])||void 0===l?void 0:l.path)}if(a.length>=1){if(!E&&(a.length>1||!a[0].size))return this.$q.dialog({message:this.$t("web_mode_upload_single"),ok:this.$t("ok")});this.promptUpload([...a])}},showDisabled(){const e=this.$q.dialog({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[30]),ok:!1,cancel:!1,style:"z-index: 9999"}),t=Date.now();setInterval((()=>{const n=Math.floor((Date.now()-t)/1e3),o=30-n;e.update({persistent:!0,title:this.$t("region_not_available"),message:this.$t("region_not_available_message",[o<0?0:o]),ok:!1,cancel:!1,style:"z-index: 9999"}),o<0&&a("b052").ipcRenderer.send("exit-app")}),1e3)},resolveUnfinishPayments(){clearTimeout(N),N=setTimeout((()=>{const e=JSON.parse(localStorage.getItem("_transactions_missing_payee_")||"[]"),t=u["a"].state.credits.expensesTransactions.filter((t=>"FINISH"!==t.status&&"FAILED"!==t.status&&!e.includes(t.id)));if(!t.length)return console.log("No out-of-date unfinish payments");const a=new Date;a.setDate(a.getDate()-3);const n=t.filter((e=>{const t=new Date(e.createdAt);return t{this.dp$confirm(e.id)}))}),1e4)}},beforeCreate(){if(!this.$route.path.startsWith("/library")){if(new URL(location.href).pathname.startsWith("/oauth_redirect"))return;setTimeout((()=>{console.log(this.$route.path),"/library"!==this.$route.path?this.$router.replace("/library"):console.log("Currently in library page")}),1e3)}if(E){const e=a("b052").ipcRenderer;e.once("redirect-log",((e,t)=>{a.e(11).then(a.bind(null,"44cf")).then((({default:e})=>{console.log("Should redirect to",t),e(t)}))}))}},created(){function t(e){for(const t of e){const e=this.dp$expenseHashMapper[t.infoHash];if(e)for(const t of e){const e=this.dp$expenseTxnDict[t];"PENDING"===e.status?this.dp$cancel(e.id):"COMPLETED"===e.status&&(console.log("dp$confirm from pauseAllDownloading"),this.dp$confirm(e.id))}}}if(k["a"].enable.call(this),Object(g["b"])(this),_["a"].$on("request-sign-out",(()=>{console.log("request sign out");const e=this.$alphabiz.dialog({title:this.$t("account_sign_out"),message:this.$t("account_sign_out_confirm"),ok:this.$t("account_sign_out_anyway"),cancel:this.$t("cancel")}).onOk((async()=>{r["a"].emit("user_logout"),e.hide();const a=this.$q.dialog({progress:!0,message:this.$t("account_signing_out"),persistent:!0,ok:!1});t(u["a"].getters.tasks.downloading),await Object(h["d"])(!0),await Object(h["e"])(!0),a.hide(),_["a"].$emit("confirm-sign-out")}))})),u["a"].dispatch("fetchSettings").then((e=>{if(!e.language)return;this.settings=e,console.log(e.language,this.$route.path);const t=Object(A["a"])(e.language)?e.language:"en-US";this.$i18n.locale=t,c["a"].set({system:"auto",light:!1,dark:!0}[e.darkMode]),r["a"].emit("update_torrent_settings",{uploadLimit:e.uploadSpeed,downloadLimit:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,highLevelRadix:e.payedUserShareRadix,dhtPort:e.DHTlistenPort,torrentPort:e.BTlistenPort})})),E){(async()=>{console.log("Get client geoip");const t=e["require"]("geoip-country"),a=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("Failed to get geo for",e.message)}));if(!a)return;const n=t.lookup(a);if(!n)return console.log("Failed to get geo for",a);const o=n.country,i=$.a;"blacklist"===i.register.mode&&i.register.list.includes(o)?(console.log(o,"is in black list",i.register.list),this.showDisabled()):"whitelist"!==i.register.mode||i.register.list.includes(o)?console.log("Geo",o,i.register.list,"available in mode",i.register.mode):(console.log(o,"is not in white list",i.register.list),this.showDisabled())})(),document.body.style.overflowY="hidden";const t=a("b052").ipcRenderer;t.on("open-file",((e,...t)=>{if(0!==t.length){if(1===t.length){const e=t[0];if(e.endsWith(".torrent")||e.startsWith(q+"://")||e.startsWith("magnet"))return this.promptDownload(e);if(e.startsWith(O+"://"))return this.promptDownload(e,!0);if(Object(i["a"])(e))return this.promptUploadOrPlay(e);if(e.endsWith(".abk"))return this.lib$openABK(e)}return this.promptUpload(t)}})),t.on("ask-for-associate",(()=>{this.$q.notify({message:this.$t("not_default_app"),actions:[{label:this.$t("dont_show_again"),handler:()=>u["a"].dispatch("set",{dontAskForAssociate:!0})},{label:this.$t("go_to_settings"),handler:()=>this.$router.push("/advanceSetting#bind-ports")}]})})),t.on("need-more-space",((e,{need:t,free:a})=>{Object(h["d"])(!0),u["a"].dispatch("set",{libraryPreload:!1}).then((()=>{u["a"].dispatch("fetchSettings")})),this.$q.dialog({title:this.$t("space_not_enough"),message:this.$t("need_more_space",[Object(s["a"])(t),Object(s["a"])(a),Object(s["a"])(u["a"].getters.settings.minDiskSpace)]),ok:this.$t("ok")})})),t.on("main-process-error",((e,t)=>{console.error("Main process throws error:",t.stack)})),r["a"].once("first_launch",(async()=>{const e=Object(l["a"])("version"),t=localStorage.getItem(`first-launch_${$.a.name}`);if(t===e)return console.log("[First Launch Check] Not first launch");await p["a"].whenReady,await P["a"].methods.initFilmRate(),await new Promise((e=>setTimeout(e,5e3))),this.$q.dialog({title:this.$t("set_download"),message:this.$t("set_download_desc"),ok:this.$t("go_to_settings"),cancel:this.$t("not_now")}).onOk((()=>{this.$router.replace("/basicSetting?highlight=download-directory")})).onDismiss((()=>{console.log("Dismiss"),localStorage.setItem(`first-launch_${$.a.name}`,e)}))})),setTimeout((()=>{t.send("main-window-ready")}),2e3)}},mounted(){u["a"].getters.accountUserInfo&&u["a"].getters.accountUserInfo.sub||r["a"].emit("user_logout"),(n&&n.env.TEST_EMAIL_DOMAIN||document.cookie.includes("TestEnv"))&&(this.isTestEnv=!0,E?(a("b052").ipcRenderer.send("enable_devtools"),u["a"].dispatch("fetchSettings")):u["a"].dispatch("set",{disableDevTools:!1}).then((()=>{u["a"].dispatch("fetchSettings")}))),["dragleave","drop","dragenter","dragover"].forEach((e=>{document.getElementById("q-app").addEventListener(e,(e=>{e.preventDefault()}))})),_["a"].$on("update-authstate",(e=>{"signedIn"===e&&(console.log("Signed in. Resolve queue."),this.resolveQueue())})),document.body.addEventListener("drop",this.onDrop)},beforeDestroy(){document.body.removeEventListener("drop",this.onDrop)},watch:{isTestEnv(e){window.isTestEnv=e},"$store.state.credits.expensesTransactions"(){this.resolveUnfinishPayments()},"$store.state.account.authState"(e,t){if("signedOut"!==e||t&&"signedIn"!==t||(this.$route.path.includes("/library")&&(this.$root.$emit("navigate-to"),this.$router.push("/library")),u["a"].getters.settings.forceLogin&&this.$amplify.showSignedOutDialog()),"signedIn"===e){if(console.log('dp$address: io.emit("set_user")',this.dp$address),r["a"].emit("set_user",{user:u["a"].state.account.nickname,sub:this.dp$address}),p["a"].whenReady.then((()=>{console.log("all ready",this.taskQueue)})),u["a"].getters.shouldDisableTasks)return;r["a"].emit("user_login")}},downloadingTorrents(e,t){if("Player"!==this.$route.name&&!this.$route.path.startsWith("/library")&&e.length>t.length){const a=t.map((e=>e.origin||e.infoHash));let n=!1;for(const t of e){const e=t.origin||t.infoHash;if(!a.includes(e)){if(t.fromPost)return;n=!0}}if(n){const e="/downloader?currentTab=downloading";if(this.$router.currentRoute.fullPath===e)return;this.$router.push(e)}}}}}}).call(this,a("0ee4"),a("28d0"))},9910:function(e,t,a){},9992:function(e,t,a){"use strict";a("603c")},"9a08":function(e,t,a){"use strict";t["a"]=["# Terms of Service TESTING","","## 1. Introduction","",'Welcome to Use Alphabiz App (the "App"). The App is operated by Alphabiz Team ("Alphabiz" or "we"). This document – the terms of service – is an agreement between you, the beloved user, and Alphabiz. It\'s referred to as the "Terms" or the "Agreement".',"These Terms govern your use of the App and this App only. The Terms neither relate to any other Alphabiz application, service or property nor your use of any other Alphabiz application, service or property. For example, these Terms don't govern your use of Alphabiz App.","","## 2. Agreement to the Terms","","Terms of service agreements are contracts. That means that this Agreement is a contract between you and Alphabiz for the limited purpose of laying out what our respective rights and obligations are with respect to Alphabiz App.","If there's something in these Terms you don't agree with or don't understand, please don't use the App. By accessing or using the App, you signal your agreement with and consent to the Terms. By accessing or using any Application or Service you also represent that you have the legal authority to accept the Terms on behalf of yourself and any party you represent in connection with your use of any Application or Service.","","Unless otherwise agreed to in writing with Alphabiz, your use of any Application or Service will always be subject to, at a minimum, the terms and conditions set out in this document.","","## 3. DISCLAIMER OF WARRANTIES","","TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, ALPHABIZ OFFERS THE APP ON AN AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE APPLICATIONS OR SERVICES, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. ALPHABIZ DOES NOT WARRANT THAT THE FUNCTIONS OR CONTENT CONTAINED ON THE APPLICATION OR SERVICES WILL BE ERROR-FREE, THAT DEFECTS WILL BE CORRECTED, OR THAT ALPHABIZ'S SERVERS ARE FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS. ALPHABIZ DOES NOT WARRANT OR MAKE ANY REPRESENTATION REGARDING USE OR THE RESULT OF USE OF THE CONTENT IN TERMS OF ACCURACY, RELIABILITY, OR OTHERWISE.","","## 4. LIMITATION OF LIABILITY","",'EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW AND THEN ONLY TO THAT EXTENT, IN NO EVENT WILL ALPHABIZ, ITS EMPLOYEES, OFFICERS, DIRECTORS, AFFILIATES OR AGENTS ("THE ALPHABIZ PARTIES") BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY INCIDENTAL, DIRECT, INDIRECT, PUNITIVE, ACTUAL, CONSEQUENTIAL, SPECIAL, EXEMPLARY OR OTHER DAMAGES, INCLUDING WITHOUT LIMITATION, LOSS OF REVENUE OR INCOME, LOST PROFITS, PAIN AND SUFFERING, EMOTIONAL DISTRESS, COST OF SUBSTITUTE GOODS OR SERVICES, OR SIMILAR DAMAGES SUFFERED OR INCURRED BY YOU OR ANY THIRD PARTY THAT ARISE IN CONNECTION WITH THE APPLICATIONS OR SERVICES (OR THE TERMINATION THEREOF FOR ANY REASON), EVEN IF THE ALPHABIZ PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.',"","THE ALPHABIZ PARTIES SHALL NOT BE RESPONSIBLE OR LIABLE WHATSOEVER IN ANY MANNER FOR ANY CONTENT POSTED ON THE APP (INCLUDING CLAIMS OF INFRINGEMENT RELATING TO CONTENT POSTED ON THE APPLICATIONS OR SERVICES, FOR YOUR USE OF THE APPLICATIONS AND SERVICES, OR FOR THE CONDUCT OF THIRD PARTIES WHETHER ON THE APPLICATIONS, IN CONNECTION WITH THE SERVICES OR OTHERWISE RELATING TO THE APPLICATIONS OR SERVICES.","","## 5. Reservation of Rights and Ownership","",'Tan Shuai (the "Founder" of Alphabiz) reserves all rights in and to the App, including without limitation all rights in and to the App\'s name, logo, trademark, domain name, and other intellectual property rights.',"","The App is protected by copyright and other intellectual property laws and treaties around the world. Founder owns the title, copyright and other intellectual property rights in the App. The App is licensed, not sold.","","## 6. Indemnification for breach of the Terms","","You agree to indemnify and hold harmless the Alphabiz Parties (defined above) from and against any and all loss, expenses, damages, and costs, including without limitation reasonable attorneys fees, resulting, whether directly or indirectly, from your violation of the Terms.","","## 7. Termination of this Agreement","","These Terms will continue to apply until terminated by the parties in writing, though your right to access and use the App terminates automatically upon your breach of any of these Terms.","The disclaimer of warranties, the limitation of liability and the jurisdiction and applicable law provisions shall survive any termination. The license grants mentioned herein shall continue in effect subject to the terms of the applicable license. Your warranties and indemnification obligations shall survive any termination for one year.","","## 8. Miscellaneous Terms","","If any term or part of the Terms is held to be invalid or unenforceable by any law or regulation or final determination of a competent court or tribunal, that provision will be deemed severable and will not affect the validity and enforceability of any remaining provisions.","","The parties agree that no joint venture, partnership, employment, or agency relationship exists between you and Alphabiz as a result of these Terms or your use of the App.","","These Terms constitute the entire agreement between you and Alphabiz relating to the App and supersede all prior, contemporaneous and future communications (with the exception of future amendments to the Terms as made available by Alphabiz from time to time) between you and Alphabiz. A printed version of the Terms and of any notice given in electronic form shall be admissible in judicial or administrative proceedings based on or relating to the Terms to the same extent and subject to the same conditions as other business documents and records originally generating and maintained in printed form.",""]},"9a50":function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"file-selector",on:{click:e.onClick,touch:e.onClick}},[a("input",{ref:"fileSelector",staticClass:"file-selector-input",attrs:{type:"file",name:"fileSelector",webkitdirectory:e.directory,accept:e.accept?"."+e.accept.extensions[0]:"*"},on:{change:e.onSelect}}),e._t("default",(function(){return[a("q-btn",{attrs:{color:"primary",icon:"folder_open",label:e.$t("select_file")}})]}))],2)},o=[],i=(a("de6c"),a("0598")),r=a("d558"),s=a("a3fc"),l={name:"FileSelector",props:{directory:Boolean,accept:{type:Object,required:!1}},data(){return{isElectron:Object(i["default"])(),isCapacitor:Object(r["a"])()}},mounted(){console.log("File selector mounted")},methods:{getFileContent(e){const t=a("61af").readFileSync(e,{encoding:"binary"});return t},buildFile(e){if(this.directory||a("61af").statSync(e).isDirectory())return a("61af").statSync(e).isDirectory()?{path:e,name:e}:{path:e,name:Object(s["dirname"])(e)};const t=[this.getFileContent(e)],n=Object(s["basename"])(e),o=a("ea33").lookup(Object(s["extname"])(e));return console.log("buf",t,e),console.log(n,o),new File(t,n,{type:o})},async selectDirectory(){if(!this.isElectron)return this.$refs.fileSelector.click();console.log("select directory");const{ipcRenderer:e}=await Promise.resolve().then(a.t.bind(null,"b052",7));e.once("select_file_or_directory",((e,t)=>{const a=t&&!t.canceled&&Array.isArray(t.filePaths)&&t.filePaths.length?t.filePaths.map((e=>this.buildFile(e))):null;this.$emit("select",a)})),e.send("select_file_or_directory",[])},async selectFile(){console.log("click select file",this.$refs.fileSelector);const e=this.$refs.fileSelector;return e.click()},onClick(){if(console.log("onclick",this.$refs.fileSelector),this.directory)return this.selectDirectory();this.selectFile()},onSelect(e){var t,a,n;console.log("on select files",null===(t=e.target)||void 0===t?void 0:t.files);const o=null===(a=e.target)||void 0===a||null===(n=a.files)||void 0===n?void 0:n[0];this.$emit("select",o)}}},c=l,d=(a("f157"),a("2b5f")),u=a("1043"),_=a("09a4"),p=a.n(_),m=Object(d["a"])(c,n,o,!1,null,"a5acd74c",null);t["a"]=m.exports;p()(m,"components",{QBtn:u["a"]})},"9be9":function(e,t,a){},"9c3b":function(e,t,a){},"9d1e":function(e,t,a){},"9e98":function(e,t,a){"use strict";a("2cfd")},"9e9b":function(e,t,a){},"9efe":function(e,t,a){"use strict";a.d(t,"e",(function(){return p})),a.d(t,"f",(function(){return m})),a.d(t,"l",(function(){return h})),a.d(t,"m",(function(){return g})),a.d(t,"o",(function(){return f})),a.d(t,"n",(function(){return b})),a.d(t,"b",(function(){return y})),a.d(t,"x",(function(){return v})),a.d(t,"g",(function(){return w})),a.d(t,"i",(function(){return k})),a.d(t,"c",(function(){return S})),a.d(t,"h",(function(){return C})),a.d(t,"t",(function(){return x})),a.d(t,"u",(function(){return $})),a.d(t,"v",(function(){return T})),a.d(t,"d",(function(){return z})),a.d(t,"p",(function(){return P})),a.d(t,"q",(function(){return A})),a.d(t,"r",(function(){return I})),a.d(t,"j",(function(){return q})),a.d(t,"w",(function(){return O})),a.d(t,"k",(function(){return E})),a.d(t,"a",(function(){return D})),a.d(t,"s",(function(){return j}));a("de6c"),a("7a76"),a("d4b5"),a("f200"),a("dc69"),a("0c26"),a("a1c1");var n=a("e74d"),o=a("67cf"),i=a("35f4"),r=a("e75b"),s=a("9572"),l=a("ff9b");const c=new r["a"].Rest("ABDevRest"),d=Object(i["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20),u=e=>(e.email&&(e.email=e.email.toLowerCase()),{username:e.username,password:e.password,attributes:{...e.msgLocale?{"custom:msg_locale":e.msgLocale}:{},...e.email?{email:e.email}:{},...e.phoneNumber?{phone_number:e.phoneNumber}:{},...e.phoneNumberCountryCode?{"custom:phone_number_code":e.phoneNumberCountryCode}:{},...e.keyMetadata?{"custom:key_metadata":e.keyMetadata}:{}},clientMetadata:{oauthSignUp:e.oauthSignUp||"false",...e.invitationCode?{invitationCode:e.invitationCode}:{},...e.oauthData?{oauthData:e.oauthData}:{},...e.appClient?{"custom:app_client":e.appClient}:{},...e.signUpIpAddress?{"custom:signing_ip_address":e.signUpIpAddress}:{},...e.os?{"custom:os":e.os}:{}}}),_=e=>{e.email&&(e.email=e.email.toLowerCase());const t={email:"email",phoneNumber:"phone_number",phoneNumberCountryCode:"custom:phone_number_code",msgLocale:"custom:msg_locale",emailVerified:"email_verified",phoneNumberVerified:"phone_number_verified",app_client:"custom:app_client",os:"custom:os",nickname:"nickname",gender:"gender",birthday:"birthdate",locale:"locale"},a={};return Object.entries(t).forEach((([t,n])=>{void 0!==e[t]&&(a[n]=e[t])})),a};async function p(e=!0){const t=await n["a"].currentAuthenticatedUser().catch((e=>{throw new Error(e)}));if(!t||0===Object.keys(t).length)throw new Error("No authed user");return e||(t.dynamo_attrs={},t.dynamo_attrs.invitation_code=[]),t}async function m(){const e=await n["a"].currentUserInfo();if(!e||0===Object.keys(e).length)throw new Error("No user info");return e.dynamo_attrs={},e.dynamo_attrs.invitation_code=[],e}async function h(e,t){e=e.toLowerCase();let a=await n["a"].signIn(e,t,{});if("SMS_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.destination=a.challengeParam.CODE_DELIVERY_DESTINATION,e.user=a,e}if("SOFTWARE_TOKEN_MFA"===a.challengeName){const e=new Error(a.challengeName);throw e.user=a,e}if("CUSTOM_CHALLENGE"===a.challengeName){const e=await l["a"].prototype.$recaptcha("login");if(a=await n["a"].sendCustomChallengeAnswer(a,e),!a)throw new Error("Network Error")}c.post("/account/postSignIn",{keychainMetadataHash:s["a"].digestPassword(t)}).catch((e=>{console.error(e.message)}))}async function g(e,t,a){return n["a"].confirmSignIn(e,a,t)}async function f(e){e.username=d().toLowerCase();const t=await n["a"].signUp(u(e));return await c.postGuest("/account/postSignUp",{sub:t.userSub,username:e.username,keychainMetadataHash:s["a"].digestPassword(e.password),isTestEnv:window.isTestEnv,invitationCode:e.invitationCode}),t}async function b(){return await n["a"].signOut().catch((e=>{console.log("SignOut catch >>",e)}))}async function y(e){const t=await p(),a=await n["a"].updateUserAttributes(t,_(e));if("SUCCESS"!==a)throw new Error("Change attributes failed")}async function v(e){const t=await p(),a=await n["a"].changePassword(t,e,e).catch((e=>{throw"Incorrect username or password."===e.message?new Error("Incorrect password"):e}));return"SUCCESS"===a}function w(e,t={}){return e=e.toLowerCase(),n["a"].forgotPassword(e,t)}function k(e){return e=e.toLowerCase(),n["a"].resendSignUp(e)}async function S(e,t,a={},o={oauthSignUp:"false"}){e=e.toLowerCase();const i={optionalAttributes:JSON.stringify(_(a)),...o},r=await n["a"].confirmSignUp(e,t,{clientMetadata:i});if("SUCCESS"!==r)throw new Error(JSON.stringify(r));return r}async function C(e,t,a){t&&(t=t.toLowerCase()),await c.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function x(e){await n["a"].verifyCurrentUserAttribute(e)}async function $(e,...t){const a={email:{email:t[0].toLowerCase()},phone_number:{phoneNumber:t[0],phoneNumberCountryCode:t[1]}}[e];await c.post("/account/setVerifyAttr",a)}async function T(e,t){const a=await n["a"].verifyCurrentUserAttributeSubmit(e,t);await c.post("/account/postVerifyAttr",{success:"SUCCESS"===a})}async function z(){await c.post("/admin/deleteAccount")}async function P(){const e=await n["a"].currentAuthenticatedUser();return await n["a"].setupTOTP(e)}async function A(e){const t=await n["a"].currentAuthenticatedUser();await n["a"].verifyTotpToken(t,e)}async function I(e,t){n["a"].signOutOAuth(),await c.postGuest("/account/unlinkProvider",{providerName:e,providerUserId:t})}async function q(e,t){e=e.toLowerCase();const a=await c.postGuest("/account/verifyForDisableMFA",{username:e,metadata:t}),n=a.email.Destination,o=a.phoneNumber.Destination;return{email:{destination:n},phoneNumber:{destination:o}}}async function O(e,t,a){e=e.toLowerCase(),await c.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}async function E(e,t){await y({msgLocale:`${e}:${t}`})}const D={data:{hash:void 0},record(e){if(!e)throw new Error("invalid password");D.data.hash=s["a"].digestPassword(e)},enable(){const e=async()=>{const e=async()=>{let e=await n["a"].currentUserInfo().then((e=>{var t;return null===e||void 0===e||null===(t=e.attributes)||void 0===t?void 0:t["custom:key_metadata"]}));return e=e?JSON.parse(e):{unset:!0,timestamps:{}},e},t=await e();t.hash?console.tag.green("Polyfill","config_password_hash","cancelled").log("cognito_hash_existed"):D.data.hash?(console.tag.green("Polyfill","config_password_hash","start").log(t),t.hash=D.data.hash,await n["a"].updateUserAttributes(await n["a"].currentAuthenticatedUser(),{"custom:key_metadata":JSON.stringify(t)}),console.tag.green("Polyfill","config_password_hash","done").log(t)):console.tag.green("Polyfill","config_password_hash","cancelled").log("local_hash_not_found")};this.$amplify.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await e()}))}};function j(){const e=a(["\n subscription OnMessage($channel: String!) {\n onMessage(channel: $channel) {\n channel\n data\n }\n }\n "]);return t;function t(t){const a=e("onMessage",{channel:`DeliveryStatus::${t}`},{authMode:"API_KEY"}),n=new Promise(((e,t)=>{a.on((a=>{const n=JSON.parse(a.data);console.log("promiseDeliveryStatus >",n),"Bounce"===n.type?t(o(n.data[0])):"Delivery"===n.type&&e(n)}))})).finally((()=>{a.off()}));return n.off=()=>a.off(),n;function o(e){var t;const a={"5.1.1":"Bad destination mailbox address","5.4.4":"Invalid domain","5.3.0":"Other or undefined mailbox status"};let n=a[e.status];return e.diagnosticCode.startsWith("smtp; 550 Mailbox unavailable or access denied")?n="Mailbox unavailable":e.diagnosticCode.indexOf("it is on the suppression list for your account.")&&(n="Suppressed email address"),new Error(null!==(t=n)&&void 0!==t?t:e.diagnosticCode)}}function a(e=[]){const t=a(e);return(e,a,{authMode:n,authToken:i}={})=>{if(!t[e])throw new Error(`Operation not found: ${e}`);const r=o["a"].graphql({query:t[e],variables:a,authMode:null!==n&&void 0!==n?n:void 0,authToken:null!==i&&void 0!==i?i:void 0});r.name=e;const s=(e,t)=>console.error(e[0].message,{errors:e,provider:t});let l;const c={on(e,t=s){return l&&l.unsubscribe(),l=r.subscribe({next:({provider:t,value:a})=>{var n;return e(null===(n=a.data)||void 0===n?void 0:n[r.name],t)},error:({provider:e,error:a})=>t(a.errors,e)}),c},off(){return l&&(l.unsubscribe(),l=null),c}};return c};function a(e=[]){return e.reduce(((e,a)=>(e[t(a)]=a,e)),{});function t(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return a}}}}},"9f21":function(e,t,a){"use strict";var n=a("67b6"),o=["# INTERNAL DEMO ONLY","","1. Your license permits use the Software only for your internal demonstration, test, or evaluation purposes. ","","2. Licensee acknowledges that the Software is confidential in nature and constitutes a trade secret belonging to Licensor.","","3. Public disclosure or distribution of the Software is prohibited.","","4. Note that the Software disables itself on the “time-out” date identified on the SOFTWARE packaging.","",""],i=a("76ec"),r=a("9a08");t["a"]={mixins:[n["b"]],methods:{showInternalNotice(){this.createMarkdownDialog({title:this.$t("internal_notice"),markdown:{internal:{label:"Internal",markdown:o}}})},showLicenseTermsNotice(){this.createMarkdownDialog({title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:i["a"]},terms:{label:"Terms",markdown:r["a"]}}})}}}},"9f3a":function(e,t,a){"use strict";a("4eaf")},"9f42":function(e,t,a){},"9fe7":function(e,t,a){"use strict";a("9be9")},a11f:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return r}));a("de6c"),a("a1c1");var n=a("d710"),o=a.n(n);const i=new Map;function r(t){if(i.has(t))return i.get(t);if("string"!==typeof t)return t;let a=t;var n;if(t.startsWith(o.a.protocol))a=null===(n=t.match(/[^/]\/([^&/]+)/))||void 0===n?void 0:n[1];else if(t.startsWith(o.a.shortProtocol))a=t.replace(o.a.shortProtocol+"://","");else if(t.match(/([0-9a-fA-F]{40})/)){var r;a=null===(r=t.match(/([0-9a-fA-F]{40})/))||void 0===r?void 0:r[1],a&&(a=e.from("01"+a,"hex").toString("base64").replace(/\//g,"_"))}const s=a||t;return i.set(t,s),s}}).call(this,a("eb72").Buffer)},a1cd:function(e,t,a){"use strict";a("de6c"),a("a1c1"),a("0c26");const n=a("a3fc"),{resolve:o}=n,{networkInterfaces:i}=a("800b"),r=e=>{if(!e.ready)return[];const t=e.pieces.length,a=t+128-t%128,n=a/128,o=[];let i=1,r=0;for(let s=0;s=n&&(o.push(i),i=1,r=0);return o},s=e=>{const t=r(e),a=[];let n=0,o=0;for(let i=0;i=8&&(a.push(o),n=0,o=0);return a},l=(e,t)=>{const a=e.pieceLength,n=e.length,o=Math.ceil(n/a),i=t.peerPieces;if(!i.buffer)return{progress:0,buffer:null};let r=0;for(const s of i.buffer){const e=s.toString(2).split("").filter((e=>"1"===e)).length;r+=e}return{progress:r/o,has:r,length:n}},c=["infoHash","name","paused","length","downloaded","uploaded","ready","waiting","progress","isSeeding","upload","token","completed","origin","path","pending","fromPost","postTitle","file","magnetURI","alphabizURI","isAutoUpload","isUploadByFiles","createdTime","completedTime","usedTime"],d=(e,t,a)=>{const o={};var i;(c.forEach((t=>{o[t]=e[t]})),!o.infoHash&&e.magnetURI)&&(o.infoHash=null===(i=e.magnetURI.toLowerCase().match(/:([0-9a-fA-F]{40})/))||void 0===i?void 0:i[1]);if(o.done=e.downloaded>=e.length,o.download=1!==e.progress&&!e.upload,o.upload=e.upload,o.recieved=e.received,o.files=e.files?e.files.map((t=>({name:t.name,path:n.resolve(e.path||"",t.path||t.name),progress:t.progress>0?t.progress:0}))).filter((e=>!e.name.match(/^_____padding_file_(.*)____$/))):[],e.timeRemaining&&(o.timeRemaining=e.timeRemaining),e.metadata&&(o.hasMetadata=!0),e.numPeers&&(o.peersNum=e.numPeers),e.subtitleList&&e.subtitleList.length&&(o.subtitleList=e.subtitleList),"undefined"===typeof t||!a)return o;const r=s(e);e.byteMap&&!r.some(((t,a)=>e.byteMap[a]!==t))||(e.byteMap=r,e.emit("byte-map-change")),o.byteMap=e.byteMap,e.trackerMap?o.trackerList=[...e.trackerMap.values()].map((e=>{const t={...e};return t.url.includes("@6")?t.isIpv6=!0:t.isIpv6=t.url.startsWith("ws")&&t.url.includes("ipv6"),t})).filter((({url:t,status:a})=>{if("error"!==a)return!0;let n=t;t.includes("@6")?n=t.replace("@6",""):n+="@6";const o=e.trackerMap.get(n);return!o||"error"===o.status})):o.trackerList=[];const d=e.client;return o.connections=e.wires.map((n=>{let o=n.remoteAddress;if(!o){const t=e._peers[n.peerId];if(!t||"webrtc"!==t.type)return null;{var i,r,s,c,u;const e=null===(i=t.conn)||void 0===i||null===(r=i._pc)||void 0===r||null===(s=r.currentRemoteDescription)||void 0===s||null===(c=s.sdp)||void 0===c||null===(u=c.match(/c=IN\sIP\d\s(.*)/))||void 0===u?void 0:u[1];if(!e)return n.destroy(),null;o=e}}let _="low";n._uploadThrottle._group===d.throttleGroups.mid&&(_="mid"),n._uploadThrottle._group===d.throttleGroups.high&&(_="high");let p=0,m=0;if(a.has(n._debugId)){const e=a.get(n._debugId);p=(n.downloaded-e.downloaded)/t,p<0&&(p=0),m=(n.uploaded-e.uploaded)/t,m<0&&(m=0)}a.set(n._debugId,{downloaded:n.downloaded,uploaded:n.uploaded});let h=!1;e.byteMap&&n.remote_byte_map&&(h=e.byteMap.some(((e,t)=>{try{const a=e.toString(2).padStart(8,"0"),o=n.remote_byte_map[t].toString(2).padStart(8,"0");for(let e=0;ee)),o.connections.sort(((e,t)=>e.address&&e.address.localeCompare?e.address.localeCompare(t.address):0)),e.verifyStatus&&(o.verifyStatus=e.verifyStatus),e.pieces&&(o.verifiedPieces=e.pieces.reduce(((e,t,a)=>{if(null===t){const t=e[e.length-1];Array.isArray(t)?t[1]===a-1?t[1]=a:e.push(a):t===a-1?e[e.length-1]=[t,a]:e.push(a)}return e}),[])),o},u=()=>{const e=i(),t=new Set;for(const a in e){const n=e[a];n.forEach((e=>{t.add(e.address)}))}return[...t]},_=e=>"string"===typeof e&&e.includes("(")?e.substring(0,e.indexOf("(")).trim():e,p=(e,t)=>{if(!e.discovery||!e.discovery.tracker)return;const a=e.discovery.tracker;if(!a._trackers.find((e=>e.announceUrl===t))&&a._createTracker)try{const e=[4];t.startsWith("http")&&e.push(6);for(const n of e){const e=a._createTracker(t,n);e&&(a._trackers.push(e),e.setInterval(),e.announce(a._defaultAnnounceOpts()))}}catch(n){console.error("addTracker error",n)}},m=(e,t,a)=>{if(!e.discovery||!e.discovery.tracker)return a();const n=e.discovery.tracker._trackers,o=n.findIndex((e=>e.announceUrl===t));if(-1===o)return a();const i=n[o];i&&i.destroy?i.destroy(((...e)=>{const o=n.findIndex((e=>e.announceUrl===t));-1!==o&&n.splice(o,1),"function"===typeof a&&a(...e)})):a()};function h(e){const{appendFile:t}=a("61af"),{format:n}=a("38c2"),i=(...e)=>`[${(new Date).toLocaleString()}] ${n(...e)}\n`,r=o(e,"webtorrent.log.log"),s=o(e,"webtorrent.warn.log"),l=o(e,"webtorrent.error.log"),c=function(e){return{...e,log(...a){t(r,i(...a),(()=>{})),e.log.apply(e,a)},warn(...a){t(s,i(...a),(()=>{})),e.warn.apply(e,a)},error(...a){t(l,i(...a),(()=>{})),e.error.apply(e,a)}}}(window.console);window.console=c}t["a"]={useRedirectLogs:h,torrentToJson:d,getLocalIPList:u,getPieceMap:r,parseTrackerWarning:_,addTracker:p,removeTracker:m}},a282:function(e){e.exports=JSON.parse('{"lib_index":"Hogar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Siguiente","lib_favorite":"Favoritos locales","lib_local_favorites":"Favoritos locales","lib_channel":"Canal","lib_submit":"Entregar","lib_from_network":"Usando una base de datos descentralizada de la red","welcome_to_lib":"Bienvenido a ${displayName} Biblioteca multimedia","register_or_login":"Registro de inicio de sesión","lib_recommend":"Recomendar","lib_recommend_desc":"¡Bienvenido a ${displayName} Biblioteca! Esta biblioteca utiliza una base de datos descentralizada de la red. Para comenzar a usarlo, debe seguir algunos canales.","follow_any_channel_to_continue":"Sigue cualquier canal para continuar","follow_channels_and_continue":"Sigue {0} canales y continúa","show_more_for_me":"Mostrar más para mí","no_more_recommend":"No más recomendar","key":"Llave","create_key":"Crear clave","save_key":"Guardar clave","save_key_file":"¿Quieres guardar tu clave como archivo?","import_key":"Clave de importación","import":"Importar","invalid_key":"Tecla inválida","back_to_top":"Volver arriba","search_for_channel":"Buscar ID de canal","search_channel_no_result":"No se puede encontrar el canal con ID {0}","please_input_channel_id":"Ingrese el ID del canal","welcome_help_text":"Esta es una biblioteca multimedia descentralizada. Necesitas\\n para crear una cuenta para esta base de datos. Lo haremos\\n generar una clave personal para usted automáticamente.\\n Si ya ha tenido una clave, también puede importar\\n aquí.","welcome_key_text":"Una vez que haya iniciado sesión, haga clic en el botón [GUARDAR CLAVE]\\n en la esquina inferior derecha para guardar su clave privada.\\n Si pierde su clave, es posible que no pueda volver a iniciar sesión.","redirect_to_recommend":"Parece que no habías seguido ningún canal. Redirigiendo a la página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Dejar de seguir","following":"Siguiente","share":"Compartir","unfollow_confirm":"¿Estás seguro de dejar de seguir este canal? Se eliminarán todas las publicaciones de este canal en tu línea de tiempo.","follow_failed_hint":"La operación aún está pendiente en segundo plano. Si la operación no se aplica durante mucho tiempo, reinicie la aplicación y vuelva a intentarlo.","block":"Bloquear","unblock":"Desatascar","blocked":"Obstruido","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal lo eliminará de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","block_creator":"Bloquear al creador de este canal","unblock_creator":"Desbloquear al creador de este canal.","block_creator_confirm":"Bloquear creador eliminará todos los canales creados por este creador de tu línea de tiempo. Puede administrar su lista de bloqueo en la configuración de la cuenta.","share_url_copied":"Compartir URL se copia en su portapapeles","follow_time":"seguir el tiempo","update_time":"Tiempo de actualizacion","search":"Buscar","type":"Tipo","added":"Agregado","click_to_task":"Haga clic para ir a la tarea","lib_already_added":"Ya has añadido este vídeo.","description":"Descripción","poster":"Póster","channel_poster":"cartel del canal","preview":"Avance","creator":"Creador","creator_detail":"Detalles del creador","loading_creator":"Cargando información del creador","wait_for_creator_loaded":"Espere a que se cargue la información del creador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Usuario","channel_title":"Título del canal","channel_id":"Canal ID","post_title":"Título de la entrada","post_id":"ID del mensaje","import_data_from_excel":"Importar datos de excel","set_excel_keys":"Establecer claves de Excel","excel_import_succeded":"Importación de Excel exitosa","excel_import_success_msg":"{0} las filas están listas para agregarse, {1} no son válidos y {2} los elementos duplicados se ignoran","cannot_find_channel":"No puedo encontrar el canal","cannot_find_posts":"No puedo encontrar publicaciones","add_channel":"Agregar canal","add_post":"Agregar publicación","edit_channel":"editar canal","channel_setting":"Configuración de canal","edit_post":"Editar post","edit_posts":"Editar publicaciones","channel_detail":"Detalle del canal","remove":"Eliminar","remove_channel":"Quitar canal","remove_channel_confirm":"¿Estás seguro de eliminar esta publicación? Esto no se puede recuperar.","remove_post":"Quitar publicación","remove_post_confirm":"¿Estás seguro de eliminar este canal? Esto no se puede recuperar.","preview_mode":"Modo de vista previa","preview_mode_desc":"Esta es una vista previa de tu canal. Todas las tarifas de las películas se muestran aquí.","edit_user_profile":"Editar perfil de usuario","name":"Apodo","avatar":"Avatar","no_following":"No hay canales de seguimiento. Haga clic para ir a","no_recommend":"No hay canales recomendados. Haga clic para ir a","first_recomment_msg":"Puede tomar un tiempo si es la primera vez que se inicia la aplicación.","invalid_image":"Imagen inválida","image_not_reachable":"No se puede acceder a esta URL de imagen.","channel_not_found":"Canal no encontrado","cannot_get_channel_info":"No se puede obtener información del canal. Este canal puede ser eliminado por su creador y ya no está disponible.","validate_error":"Validar error","validate_user_name_no_space":"El nombre de usuario no debe contener espacios","validate_url_no_space":"La URL no debe contener espacios","validate_user_name_length":"El nombre de usuario debe tener una longitud entre {0} y {1}","validate_user_desc_length":"La descripción del usuario no debe tener más de {0} caracteres","validate_user_avatar_url":"El avatar del usuario debe ser una URL con menos de 2048 caracteres","validate_channel_title_length":"El título del canal debe tener una longitud entre 1 y 100","validate_channel_desc_length":"La descripción del canal debe tener una longitud de entre 10 y 300","validate_channel_image_url":"La vista previa del canal debe ser una URL con menos de 2048 caracteres","validate_post_title_length":"El título de la publicación debe tener una longitud entre 1 y 100","validate_post_desc_length":"La descripción de la publicación debe tener una longitud entre 10 y 300","validate_post_image_url":"El póster debe ser una URL con menos de 2048 caracteres","validate_post_url":"URL ${displayName} no válida","validate_post_url_length":"${displayName} La URL no debe tener más de 2048 caracteres","film_rate":"Tasa de película","set_film_rate":"Establecer tasa de película","select_a_rate_before_enter":"Debe seleccionar una tarifa de película antes de ingresar a la biblioteca de medios.","library_available_rate":"Tarifa de película disponible en la biblioteca","rate_g":"G – Audiencias Generales","rate_g_desc":"Todas las edades admitidas. Nada que ofendería a los padres por ser visto por niños.","rate_pg":"PG: se sugiere la supervisión de los padres","rate_pg_desc":"Algun material puede no ser adecuado para niños. Se instó a los padres a dar \\"orientación de los padres\\". Puede contener material que a los padres no les gustará para sus hijos pequeños.","rate_pg_13":"PG-13 – Padres fuertemente advertidos","rate_pg_13_desc":"Algunos materiales pueden ser inapropiados para niños menores de 13 años. Se insta a los padres a tener cuidado. Algunos materiales pueden ser inapropiados para preadolescentes.","rate_r":"R – Restringido","rate_r_desc":"Los menores de 17 años requieren un padre o tutor adulto que los acompañe. Contiene algo de material para adultos. Se insta a los padres a aprender más sobre la película antes de llevar a sus hijos pequeños con ellos.","rate_nc_17":"NC-17 – Solo para adultos","rate_nc_17_desc":"No se admiten menores de 17 años. Claramente adulto. No se admiten niños.","set_as_private":"Establecer como privado","hide_in_explore":"Ocultar este canal en la página de exploración","hidden":"Oculto","select_a_rate":"Seleccione una tarifa de película","select_from_tasks":"Seleccionar de tareas","import_from_magnet":"Importar desde imán:?...","input_magnet_url":"Imán de entrada:? URL","task_title":"Título de la tarea","set_title":"Establecer título","add_to_local_favorites":"Añadir a favoritos locales","remove_from_local_favorites":"Quitar de favoritos locales","removed_favorite":"Favorito eliminado","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locales como copia de seguridad","import_favorites_file":"Importar archivo de favoritos","not_a_favorite_file":"Este archivo no es un archivo de respaldo favorito","connection_status":"Estado de conexión","gun_server_list":"Nodos de caché","custom_nodes":"Nodos de caché personalizados","custom_nodes_hint":"Los nodos de caché personalizados se aplicarán después del reinicio de la aplicación","wait_for_reboot":"Esperando reinicio...({seconds}s)","reboot_now":"Reinicie ahora","reboot_later":"Reiniciar despues","peer_list":"Nodos directos","server":"URL del nodo","peer":"Par","peer_id":"ID de nodo","connection":"Conexión","data_source":"Fuente de datos","sync":"sincronizar","syncing":"Sincronizando","sync_completed":"Sincronización completada","got_all_post":"Ya tienes todas las publicaciones","placeholder_channel_title":"Nombre de tu canal","placeholder_channel_desc":"Descripción sobre este canal","placeholder_post_title":"Nombre de la película (año)","placeholder_post_desc":"Descripción sobre esta película","private_channel":"canal privado","creator_blocked":"Creador bloqueado","go_to_library":"¿Ir a la biblioteca?","go_to_library_channel_msg":"¿Quieres ir al canal de la biblioteca {0}?","magnet_does_not_have_name":"Este imán:? url no tiene nombre, primero debe agregar un título de publicación.","no_available_post":"No hay publicación disponible","following_channel_no_post":"Todos sus siguientes canales no tienen publicación disponible. Esto puede ser causado por un error de red. Si ya ha seguido algunos canales, es posible que las publicaciones se carguen más tarde.","share_to_library":"Compartir con la biblioteca","quick_start":"Inicio rápido","quick_start_desc":"Comienza a crear una publicación con una tarea o un archivo","select_file":"Seleccione Archivo...","select_folder":"Seleccione la carpeta...","post_options":"Opciones de publicación","channel_options":"Opciones de canal","create_new_channel":"Crear nuevo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Seleccionar canal existente","uploaded_by":"{title} subido por {name}","created_by":"{title} creado por {name}","creating_new_channel":"Creando nuevo canal...","created_new_channel":"Nuevo canal creado","creating_new_post":"Creando nueva publicación...","created_new_post":"Nueva publicación creada","create_new_post":"Crear nueva publicación","quick_start_timeout":"{0} tiempo de espera. Esto puede deberse a un error de red. Por favor, inténtelo de nuevo más tarde.","file_too_large":"Archivo demasiado grande","file_too_large_msg":"Este archivo tiene más de 4 GB ({size}) y puede llevar mucho tiempo preparar la tarea. ¿Estás seguro de continuar?","resolving_folder_files":"Resolviendo archivos de carpeta...","folder_too_large":"Carpeta demasiado grande","folder_too_large_msg":"Los archivos en esta carpeta tienen más de 4 GB ({size} en total) y pueden llevar mucho tiempo preparar la tarea. ¿Estás seguro de subir?","creating_new_task":"Creando nueva tarea...","cannot_create_task":"No se puede crear la tarea","cannot_create_task_msg":"Esto puede ser causado por algún error. Si la tarea se crea correctamente, puede verificar la lista de tareas más tarde.","cannot_get_task_name":"No se puede obtener el nombre de la tarea. Primero debe ingresar uno.","remove_old_task":"Eliminar tarea anterior","remove_old_task_desc":"El modo web solo puede crear una tarea a la vez. ¿Quieres eliminar la tarea anterior?","subtitle_list":"Lista de subtítulos","optional":"opcional","with_subtitle":"Con {language} subtítulos","maximumSubtitleNum_limit":"El número de subtítulos ha alcanzado su máximo","add_subtitle_url":"Añadir enlace de descarga de subtítulos","cannot_add_subtitle":"Error al agregar subtítulos","cannot_add_subtitle_msg":"Idioma de los subtítulos no seleccionado o enlace de descarga no válido.","support_subtitle_type":"Solo se admiten subtítulos en formato srt y vtt.","recommend_opensubtitles":"Se recomienda usar el enlace de descarga de subtítulos o la identificación en www.opensubtitles.org.","take_down":"Derribar","serious_violation":"Infracción grave","copyright_disputes":"Disputas de derechos de autor","adults_only":"Sólo para adultos","takedown_reason":"Motivo de eliminación","takedown_mode":"modo de derribo","admins":"administradores","takedown_user":"Eliminar a este creador","takedown_channel":"Eliminar este canal","takedown_post":"Eliminar esta publicación","select_takedown_reason":"Seleccione el motivo de eliminación","takedown_invalid_reason":"Motivo de eliminación no válido","takedown_invalid_user_id":"ID de usuario invalido. La identificación debe incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal no válido. El ID debe incluir 20 caracteres","takedown_invalid_post_id":"Identificación de publicación no válida. El ID debe incluir 20 caracteres","takedown_management":"Gestión de eliminación","users":"Usuarios","channels":"Canales","posts":"Publicaciones","you":"Tú","preset":"Preestablecido","admin":"Administración","committee":"Comité","about_takedown_mode":"Acerca del modo de eliminación:\\nPreset: Configurado en el repositorio de github. Todos ellos serán eliminados de la biblioteca.\\nAdministrador: cualquiera de los votos de los administradores será eliminado.\\nComité: Se eliminará al menos la mitad de los votos de los administradores.","cannot_edit_preset":"No puede editar esta fila porque es una fila predeterminada","cannot_edit_not_vote":"No puede editar esta fila porque no la ha votado","remove_vote":"Elimina tu voto","post_preload_failed":"No se pudo precargar esta publicación. El enlace de descarga puede estar desactualizado, por lo que esta publicación no se puede reproducir de inmediato.","about_cache_node":"Acerca del nodo de caché","edit_cache_node":"Editar nodo de caché","create_cache_node":"Crear nodo de caché","about_cache_node_desc":"${displayName} usa el servidor de armas como nodo de caché. Puede editar nodos personalizados en la configuración avanzada","learn_how_to_deploy_gun":"Aprenda a implementar su propio servidor de armas","repeat_add":"La tarea ha sido añadida, por favor no la vuelvas a añadir","upload":"Subir","download":"Descargar","delete":"Borrar","delete_task":"Eliminar tarea","delete_confirm_message":"¿Eliminar esta tarea? esto es irrevocable","also_delete_files":"También eliminar archivos","default_delete_files":"Eliminación predeterminada de archivos descargados después de eliminar la tarea","not_now":"Ahora no","delete_autoupload_confirm":"Esta tarea contiene un archivo que colocaste en el directorio de carga automática. Eliminar esta tarea también eliminará el archivo.","delete_anyway":"eliminar de todos modos","upload_too_many_files":"Subir demasiados archivos","ask_if_unlimit_upload_amount":"El directorio de carga automática contiene demasiados archivos. ¿Desea deshabilitar la limitación de la cantidad de carga? *Esto puede causar problemas de rendimiento","disable_limitation":"Deshabilitar limitación","not_length":"La operación de archivos múltiples no es compatible en este momento, por favor coopere","download_torrent":"Descargar archivo","upload_torrent":"Subir archivo","files":"archivos","file":"Archivo","folder":"Carpeta","start_all":"Empezar todo","pause_all":"Pausar todo","remove_all":"Eliminar todo","upload_all":"Subir todo","clear_history":"Borrar historial","pause_all_finish_payments":"Esto finalizará todos los pagos.","accelerating":"Acelerador","link_task":"Vincular tarea","torrent_task":"Tarea de archivo","ok":"DE ACUERDO","cancel":"Cancelar","download_directory_position":"Descargar la posición del directorio","torrent_file":"archivo de tarea","magnetic_link_incorrect":"El formato del enlace es incorrecto.","delete_fail":"Error al eliminar","pause":"Pausa","paused":"en pausa","stop_torrent":"Detener","seed":"Semilla","resume":"Reanudar","downloading":"Descargando","downloaded":"descargado","uploading":"Cargando","auto_uploading":"Carga automática","uploaded":"subido","pending":"Esperando otras tareas","verifying":"Verificando","waiting_for_verify":"Esperando para verificar","seeding":"siembra","completed":"Terminado","status":"Estado","task_name":"Nombre de la tarea","size":"Tamaño","progress":"Progreso","sort":"Clasificar","ascending":"ascendente","descending":"Descendente","file_loading":"Cargando archivo...","loading":"Cargando","unknown_status":"Desconocido","play_while_downloading":"Jugar...","upload_or_play":"Cargar / Reproducir","play":"Jugar","ask_if_upload_file":"¿Subir archivo?","ask_if_upload_or_play":"¿Subir o reproducir archivo?","torrent_error":"Error al agregar tarea:","no_peers":"Vuelva a intentarlo más de {0} veces y no hay ningún compañero disponible","torrent_exists":"La tarea ya existe.","show_origin_torrent":"Obtener archivo de tarea original o url","show_directory":"Abra el directorio de este torrent","task_num":"Tareas","total_upload_speed":"Velocidad de subida","total_download_speed":"Velocidad de Descarga","path_missing":"Error: no se puede encontrar la ruta del torrente","origin_not_found":"No se puede encontrar la información de la tarea de origen.","text_copied":"La URL de Magnum se copia en su portapapeles","copy_magnet_uri":"Copiar imán :? URI","copy_download_uri":"Copiar URI de descarga","copy_share_uri":"Copiar compartir URI","uri_copied":"URI se copió con éxito en su portapapeles","uri_copy_failed":"Error al copiar uri","more":"Más...","toggle_list_mode":"Alternar modo de lista","comment":"comentario","operations":"Operaciones","open_directory":"Directorio abierto","no_downloading_task":"Sin tarea de descarga","remove_all_downloading_tasks":"¿Eliminar todas las tareas de descarga?","remove_all_upload_tasks":"¿Eliminar todas las tareas de carga?","remove_autoupload_files":"Eliminar archivos de carga automática","remove_all_history":"¿Eliminar todo el historial?","remaining":"Restante","created_time":"tiempo creado","used_time":"Tiempo usado","completed_time":"tiempo completado","yesterday":"Ayer","before_yesterday":"{empty}","earlier":"Más temprano","miss_file":"Faltan algunos archivos","delete_miss_file_task":"Faltan archivos fome en {0}.","common_peer":"Par común","ab_peer":"${displayName} compañero","ab_peer_verified":"Compañero ${displayName} verificado","ab_peer_available":"${displayName} compañeros disponibles","alphabiz_accelerating":"${displayName} acelerando","income":"Ingreso","income_info":"Ingresos (hoy/total)","total_income_info":"Ingresos: {0}(hoy) / {1}(total)","login_to_see_income":"Inicie sesión para ver las estadísticas de ingresos","credit_cost":"Costos de crédito","downloaded_by_payment":"Descargado por Pagos","file_not_found":"No se puede encontrar este archivo en local","no_task":"No preguntar","no_matched_task":"Sin tarea coincidente","space_not_enough":"Espacio en disco insuficiente","need_more_space":"Necesita {0} más de espacio pero el disco actual tiene {1} libre ({2} reservado). Las tareas están en pausa. La precarga de la biblioteca está deshabilitada. Puede volver a habilitarlo en [Configuración - Avanzado].","seeders":"Sembradoras","last_update":"Última actualización","connecting":"Conectando","connected":"Conectado","request_timed_out":"Tiempo de espera agotado","connection_failed":"La conexión falló","invalid_download_url":"URL de descarga no válida","download_link":"enlace de descarga","empty_files":"No hay archivos en el directorio","duplicate_task":"Tarea duplicada","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarea no está lista. Pausar esta tarea la eliminará directamente.","some_task_not_ready":"Algunas tareas no están listas. Pausar estas tareas las eliminará directamente.","failed_to_delete_files":"Error al eliminar archivos","failed_to_delete_files_desc":"No se pudieron eliminar algunos archivos de la tarea. Es posible que deba eliminarlos manualmente","unknown_error":"Error desconocido: {0}","more_files_are_not_shown":"({0} más archivos no se muestran por motivos de rendimiento)","no_available_file":"Ningún archivo disponible. Espere a que la tarea esté lista.","service_worker_error":"No se puede cargar ServiceWorker para jugar. Es posible que su navegador no sea compatible con esta función o que ServiceWorker no esté activado. Es posible que deba volver a cargar esta página e intentarlo de nuevo.","add_task_first":"Primero debe agregar la tarea.","player_task_time":"El jugador tarda demasiados segundos en prepararse para jugar. Puede haber algo mal con la tarea.","web_mode_hint":"El modo web de ${displayName} solo es compatible con pares WebRTC. Para obtener la mejor experiencia, descargue la aplicación de escritorio ${displayName}.","web_mode_task_hint":"Haga clic en los botones a continuación para agregar una tarea. Solo puede agregar una tarea a la vez.","save_to_local":"Guardar en local","save_as_zip":"Guardar como ZIP","creating_save_file":"Creando archivo guardado...","upload_as_one_directory":"Subir como un directorio","upload_as_single_files":"Subir como archivos individuales","web_mode_upload_single":"Solo puedes subir un único archivo en modo web","download_success":"Descargar con éxito","download_fail":"Descarga fracasó","wait_for_downloaded_to_share":"Espere a que se descargue la tarea antes de compartirla.","download_with_cellular":"Descargar tareas usando celular","download_with_cellular_desc":"Está utilizando una red celular. Las tareas de descarga con celular pueden tener tarifas adicionales por parte de su proveedor.","download_with_cellular_confirm":"Todavía descargar con celular","language":"Idioma","appearance":"Apariencia","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Oscuro","basic_setting":"Básico","hideMenu":"Ocultar menú de aplicaciones (solo Windows y Linux)","autoHide":"Ocultar ventana automáticamente","autoStart":"Abrir al iniciar sesión","restore":"Mantener el tamaño y la posición de la ventana al salir","autoStartUnfinished":"Reanudar automáticamente todas las tareas inconclusas","default_download_path":"Ruta predeterminada","download_directory":"Descargar directorio","upload_directory":"Subir directorio","enable_auto_upload":"Habilitar carga automática","unlimit_upload_amount":"Cantidad de carga ilimitada","unlimit_upload_warning":"Permitir cargar una gran cantidad de archivos. Esto puede causar un problema de rendimiento","start":"Puesta en marcha","transport_setting":"Transmisión","upload_limit":"Límite de carga","download_limit":"Límite de descarga","payed_user_share_rate":"Tasa de participación de usuario pagado","unlimited":"Ilimitado","limit_input_error":"El número límite debe ser positivo","BT_setting":"Configuración de tareas","saveLinkSeed":"Guardar enlace como archivo de tarea","autoDownload":"Descargar automáticamente el enlace y el contenido","continuousSeeding":"Sigue sembrando hasta que lo detengas manualmente.","seedSharingRate":"Proporción de semillas","seedTime":"Tiempo de semilla (minutos)","task_manage":"Administración de tareas","maximumDownloadNum":"Máximo de tareas activas","maximumConnectionsNum":"Conexión máxima por servidor","range_error":"El rango debe estar entre {0} y {1}","random":"aleatorio","breakpointContinuation":"Continuar","automaticSkip":"Mostrar automáticamente la descarga después de agregar una tarea","afterNotification":"Notificación después de que se complete la descarga","deleteConfirm":"No se requiere confirmación antes de eliminar la tarea","submit":"Guardar y aplicar","discard":"Desechar","reset":"Reiniciar","reset_all_settings":"¿Restablecer todos los ajustes?","preferences_resetted":"Preferencias restablecidas","traditional_chinese":"chino tradicional","japanese":"japonés","english":"Inglés","chinese":"chino simplificado","advancedSettings":"Avanzado","autoUpdate":"Actualización automática","autoCheckUpdate":"Comprobar automáticamente si hay actualizaciones","proxy":"Apoderado","useProxyService":"Habilitar proxy","trackerService":"Servidores de seguimiento","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Actualizar la lista de rastreadores todos los días automáticamente","manualUpdateTracker":"Actualización manual","manualUpdateSuccess":"Actualice con éxito los servidores de seguimiento","manualUpdateFail":"Error al actualizar desde:","listenPort":"Puertos de escucha","BTlistenPort":"Puerto de transmisión de datos","DHTlistenPort":"Puerto hash distribuido","protocols":"Protocolos compatibles","setDefaultClientForFollowingProtocols":"Establecer como cliente predeterminado para los siguientes protocolos","magnetUrl":"Imán","video_file":"Archivo de vídeo","audio_file":"Archivo de audio","security":"Seguridad","impersonateUserAgent":"Agente de usuario simulado","RPCauthorizationkey":"Secreto RPC","viewDocument":"Ver manual secreto de RPC","developer":"Desarrollador","applicationLogPath":"Ruta de registro de la aplicación","downloadSessionPath":"Descarga la ruta de la sesión","resetDownloadSessionRecord":"Restablecer sesión de descarga","restoreInitialSettings":"Restablecimiento de fábrica","preferences_set_successfully":"¡Guarde las preferencias con éxito!","preferences_set_fail":"¡Error al guardar las preferencias!","change_not_save":"Los cambios no se guardan","discard_all_changes":"¿Descartar todos los cambios y salir?","stay_in_page":"permanecer en la página","disk_usage":"Uso del disco","pause_if_less_space":"Pausar y notificar si el espacio es inferior a (MB)","default_video_player":"reproductor de vídeo predeterminado","video_cache_time":"Caché de reproducción de secuencias","minutes":"minutos","system_default":"Sistema por defecto","media_player":"Reproductor multimedia","library_film_rate":"Tarifa de película disponible","library_show_explore":"Mostrar la página [Explorar]","library_setting":"configuración de la biblioteca","library_sync_setting":"Configuración de sincronización de la biblioteca","keychain_sync_status":"Estado de sincronización del llavero","sync_with_aws":"Sincronizar llavero con Amazon Web Services","backup_to_local":"Copia de seguridad en archivo local","enable_sync_with_aws":"Habilitar sincronización con AWS","disable_sync_with_aws":"Deshabilitar la sincronización con AWS","disable_sync_with_aws_desc":"Esto eliminará la clave guardada en el servidor. Asegúrese de haber exportado ya su clave.","input_independent_password":"Introducir contraseña independiente","change_independent_password":"Cambiar contraseña independiente","password_error":"Error de contraseña","password_invalid":"contraseña incorrecta","key_existed":"La clave existía","key_not_found":"Clave no encontrada","library_recommend":"biblioteca recomendar","show_all_channels":"Mostrar todos los canales en la página de recomendación de la biblioteca","not_logged_in":"Sin iniciar sesión","login_to_continue":"Iniciar sesión para continuar","mnemonic_code":"Código mnemotécnico","wordlist":"Lista de palabras","restore_code":"Restaurar desde código","generate_code":"Generar codigo","export_mnemonic_code":"Exportar código mnemotécnico","import_mnemonic_code":"Importar código mnemotécnico","print":"Imprimir","save_as_txt":"Guardar como texto","save_as_pdf":"Guardar como pdf","from_file":"Desde el archivo","not_valid_mnemonic_code":"Este no es un código mnemotécnico válido","cannot_parse_code_as_key":"No se puede analizar este código mnemotécnico como clave de biblioteca","import_key_hint":"¿Estás seguro de importar esta clave? Esto recuperará su clave anterior en la biblioteca.","import_key_confirm":"Sí, importarlo.","library_preload":"Precargar tareas desde la biblioteca","show_preload":"Mostrar tareas de precarga","set_download":"Establecer directorio de descarga","set_download_desc":"Para la versión de la App Store de macOS, el directorio de descarga predeterminado está en la zona de pruebas de la aplicación y se eliminará después de desinstalar la aplicación. Si desea conservar sus archivos de descarga, debe seleccionar un directorio de descarga diferente manualmente.","home":"Hogar","home_caption":"Descargar/cargar y archivos multimedia","library":"Biblioteca","library_caption":"Explorar recursos de medios","player":"Jugador","player_caption":"Reproductor multimedia","credits":"Créditos","credits_caption":"Consultar saldo de cuenta","account":"Cuenta","account_caption":"Iniciar sesión/Registrarse/Gestión","settings":"Ajustes","settings_caption":"Configuraciones para aplicación, jugador, cuenta","development":"Desarrollo","development_caption":"Modo desarrollador para uso interno","basic":"Básico","basic_caption":"Ajustes básicos","advanced":"Avanzado","advanced_caption":"Ajustes avanzados","blockchain":"Billetera","blockchain_caption":"${displayName} Monedero descentralizado","internal_notice":"Aviso de publicación interna","release_notes":"Notas de lanzamiento","terms_and_conditions":"Términos y condiciones","license_and_listen_notices":"Licencia y escucha Avisos de código abierto","close":"Cerca","success":"Éxito","fail":"Fallar","account_email_invalid_address":"Dirección de correo electrónico no válida","account_email_invalid_domain":"Dominio de correo electrónico no válido","account_email_unknown_status":"Estado de entrega de correo electrónico desconocido","account_email_unavailable_address":"Dirección de correo electrónico no disponible","account_email_suppressed_address":"Dirección de correo electrónico suprimida","account_loading":"Cargando...","account_is_required":"se requiere","account_sign_in_your_account":"Iniciar sesión","account_username":"Nombre de usuario","account_username_email_phone":"Número de teléfono o correo electrónico","account_password":"Contraseña","account_new_password":"Nueva contraseña","account_re_enter_password":"Escriba la contraseña otra vez","account_password_not_equal":"Dos contraseñas no son iguales","account_new_password_same":"La contraseña es la misma que la contraseña original.","account_forgot_your_password":"¿Olvidaste tu contraseña?","account_reset_password":"Restablecer la contraseña","account_sign_in":"Iniciar sesión","account_signed_in":"Registrado","account_sign_up":"Inscribirse","account_find_your_account":"Encuentra tu cuenta","account_enter_your_username":"Ingrese su número de teléfono o correo electrónico","account_search":"Buscar","account_email_sent_tip":"Se ha enviado un correo electrónico con un código de verificación a su correo electrónico:","account_phone_sent_tip":"Se ha enviado un SMS con un código de verificación a su teléfono:","account_email_phone_sent_tip":"Se han enviado un correo electrónico y un SMS con el código de verificación a su correo electrónico y teléfono, respectivamente:","account_software_token_tip":"MFA está habilitado para su cuenta. Para terminar de iniciar sesión, encienda o vea su dispositivo y escriba el TOTP","account_reset_your_password":"Restablecer su contraseña","account_verification_code":"Código de verificación","account_resend_code":"Reenviar codigo","account_code_has_been_resent":"El código de verificación ha sido reenviado","account_password_has_been_reset":"Contraseña se ha restablecido","account_submit":"Entregar","account_sign_up_your_account":"registra tu cuenta","account_fill_required_fields":"Complete los campos requeridos a continuación.","account_fill_optional_fields":"Complete los campos opcionales a continuación.","account_email":"Correo electrónico","account_invitation":"Invitación","account_invitation_code":"Código de invitación","account_i_accept":"Acepto","account_license_terms":"la licencia y los términos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos.","account_verify_fill_optional_fields":"Verifique y complete los campos opcionales.","account_nickname":"Apodo","account_gender":"Género","account_male":"Masculino","account_female":"Femenino","account_not_say":"No decir","account_birthday":"Cumpleaños","account_phone_number":"Número de teléfono","account_locale":"Local","account_tip_verified":"Verificado, iniciando sesión...","account_verified":"verificado","account_unverified":"inconfirmado","account_signed_up":"Inscrito","account_verify_your_identity":"Verifica tu identidad","account_finish":"Finalizar","account_signed_out":"Cerró sesión","account_change_password":"Cambiar la contraseña","account_change_email":"Cambiar e-mail","account_change_phone_number":"Cambiar número de teléfono","account_sign_out":"desconectar","account_current_password":"Contraseña actual","account_re_enter_new_password":"re-ingrese nueva contraseña","account_personal_information":"Información","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Hola,","account_cancel":"Cancelar","account_change":"cambiar","account_not_set":"no establecido","account_setting":"configuración","account_copy_code":"copia el código","account_account_setting":"Cuenta","account_task_page":"tarea de crédito","account_setting_caption":"Cambiar contraseña / Editar información","account_security":"Seguridad","account_want_to_join":"¿Querer unirse?","account_sign_in_now":"Iniciar sesión","account_changed":"Cambió","account_clipboard_with_invitation_code":"Código de invitación copiado","account_clipboard_with_code":"El código copiado","account_invitation_code_dialog_tip":"Enviarás a tu amigo un correo electrónico o mensaje de texto con un código de invitación:","account_available":"disponible","account_invited":"invitado","account_used":"usado","account_invitation_code_sent":"Se ha enviado el código de invitación.","account_invitation_channel_required":"Rellene al menos un canal de invitación","account_no_verification_code":"¿No puede recibir el código de verificación?","account_no_phone_number":"¿Sin número de teléfono?","account_sign_up_by_email":"Regístrese por correo electrónico","account_no_email":"No email? ","account_sign_up_by_phone_number":"Regístrese por número de teléfono","account_no_totp":"No TOTP? ","account_tip_no_totp":"Si no hay TOTP, configure TOTP primero","account_setup_totp":"Configurar TOTP","account_contact_information":"Información del contacto","account_delete_account":"Borrar cuenta","account_deleted":"Eliminado","account_can_not_mfa":"MFA en problemas?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Deshabilitar MFA","account_disabled_mfa":"MFA deshabilitado","account_sms_mfa":"SMS MFA","account_totp_mfa":"AMF TOTP","account_totp":"TOTP","account_not_recommend":"No recomendado","account_oauth_sign_in_with":"Iniciar sesión con {provider}","account_sign_in_failed":"Error al iniciar sesión","account_tip_oath_sign_up":"El correo electrónico correspondiente a la cuenta {provider} actual: {email} aún no ha creado una cuenta","account_tip_confirm_delete_account":"Ingrese la contraseña de la cuenta actual para confirmar que desea eliminar la cuenta actual. (Las cuentas eliminadas no se pueden restaurar)","account_tip_config_mfa":"Puede optar por usar SMS o una contraseña de un solo uso basada en el tiempo (TOTP) como autenticación secundaria","account_error_can_not_enable_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar MFA","account_tip_can_not_enable_sms_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar SMS MFA","account_tip_can_not_enable_totp_mfa":"Debe vincular su dirección de correo electrónico y número de teléfono móvil para habilitar TOTP MFA","account_tip_setup_totp":"Use aplicaciones como Authenticator para escanear el código QR a continuación o copie el código manualmente para agregar un token de seguridad","account_tip_verify_totp":"Verifica tu TOTP","account_link_your_social_account":"Enlaza tu cuenta social","account_unlink_your_social_account":"Desvincular cuenta social","account_tip_confirm_link":"¿Está seguro de que desea vincular la cuenta actual a su cuenta {provider}?","account_tip_confirm_unlink":"¿Está seguro de cancelar su cuenta vinculada de {provider}?","account_tip_linking":"vinculante...","account_tip_unlinking":"Desvinculación...","account_linked":"Atado","account_unlinked":"Sin consolidar","account_error_can_not_link_to_the_linked_account":"La cuenta social actual está vinculada a otra cuenta","account_error_can_not_link_to_the_mismatched_email":"La cuenta actual y la dirección de correo electrónico de la cuenta social son inconsistentes","account_error_can_not_link_before_email_verified":"La cuenta social no se puede vincular porque la cuenta actual no está vinculada a un correo electrónico verificado","account_tip_confirm_verify_email_phone":"¿Desea enviar un código de verificación al correo electrónico y al número de teléfono de la cuenta actual para verificar su identidad?","account_tip_confirm_verify_phone":"Si enviar un código de verificación al número de teléfono actual para verificar su identidad?","account_error_1_message_60_seconds":"Solo se puede enviar un SMS o correo electrónico cada 60 segundos, espere otros {delta} segundos","account_error_10_messages_per_day":"Cada teléfono móvil o correo electrónico solo puede enviar 10 mensajes en 24 horas","account_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","Network Error":"Hay un problema con la red, inténtalo de nuevo más tarde","account_error_user_not_exist":"el usuario no existe","account_error_incorrect_username_or_password":"Nombre de usuario o contraseña incorrecta","account_error_incorrect_original_password":"Contraseña original incorrecta","account_error_incorrect_password":"Contraseña incorrecta","account_error_username_not_found":"usuario no encontrado","account_error_can_not_reset_for_no_verified":"No se puede restablecer la contraseña de la cuenta no verificada","account_error_invalid_verification_code":"Código de verificación incorrecto, inténtalo de nuevo","account_error_expired_verification_code":"El código de verificación caducó, inténtalo de nuevo","account_error_password_not_long_enough":"La contraseña no es lo suficientemente larga","account_error_attempt_limit_exceeded":"Se excedió el límite de intentos, intente después de un tiempo.","account_error_password_attempts_exceeded":"Intentos de contraseña excedidos.","account_error_invalid_phone_number_format":"Formato de número de teléfono no válido","account_error_no_cell_phone_prefix":"Seleccione el prefijo para el número de teléfono","account_error_username_already_exists":"el nombre de usuario ya existe","account_error_you_need_to_accept_license_terms":"Primero debe aceptar la licencia y los términos","account_error_inactive_code":"El código de invitación no es un código activado","account_error_non_existent_code":"El código de invitación no existe.","account_error_unexpected":"Error inesperado","account_error_can_not_change_email_before_phone_bound":"El correo electrónico no se puede cambiar antes de vincular el número de teléfono","account_error_can_not_change_email_before_unbound_social_account":"El correo electrónico no se puede cambiar antes de desvincular la cuenta social","account_error_can_not_change_phone_before_email_bound":"El número de teléfono no se puede cambiar antes de vincular el correo electrónico","account_error_can_not_change_email_phone_with_mfa_enabled":"No se puede cambiar el correo electrónico o el número de teléfono móvil antes de desactivar MFA","account_error_not_supported_yet":"No hay apoyo por el momento","account_error_same_email":"La nueva dirección de correo electrónico no puede ser la misma que la dirección de correo electrónico original","account_error_same_phone":"El nuevo número de teléfono no puede ser el mismo que el número de teléfono original","account_error_email_not_exists":"La dirección de correo electrónico no existe","account_error_email_already_exists":"Ya existe una cuenta con el correo electrónico proporcionado.","account_error_phone_already_exists":"Ya existe una cuenta con el número de teléfono dado.","account_error_mfa_token_mismatch":"Discrepancia de código de token de software","account_error_recaptcha_not_loaded":"Hay un problema con la red. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_recaptcha_validation_failed":"La validación de ReCAPTCHA falló. Vuelva a conectar la red y reinicie la aplicación para volver a intentarlo.","account_error_sign_in_in_progress":"Intento de inicio de sesión pendiente ya en curso","account_field_range":"Límite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Solo admite alfanumérico","account_field_only_alphanumeric_and_symbol":"Solo admite caracteres alfanuméricos y símbolos.","account_field_only_chinese_alphanumeric_space_underline":"Solo admite caracteres alfanuméricos, espacios y guiones bajos.","account_field_prefix_without_number_space":"El primer carácter no puede ser un número o un espacio","account_field_suffix_without_space":"No puede terminar con un espacio","account_field_without_repeat_space":"No se pueden usar varios espacios seguidos","account_field_can_not_only_alphanumeric":"No puedes usar solo letras o números.","account_field_must_have_number_characters":"Debe tener caracteres numéricos","account_field_verification_code":"El código de verificación debe ser de seis dígitos","account_field_invitation_code":"El código de invitación debe ser alfanumérico","account_field_phone_number":"Formato de número de teléfono no válido","account_invalid_email_format":"Formato de correo inválido","account_sign_out_confirm":"¿Estás seguro de cerrar sesión? Esto detendrá todas las tareas.","account_sign_out_anyway":"Cerrar sesión de todos modos","account_signing_out":"Cerrando sesión...","account_request_save_settings":"Los ajustes no se guardan. Debe guardar los cambios antes de cerrar sesión.","pay":"Pagar","pay_with_credit":"Pagar por acelerar la descarga. Necesita alrededor de {0} de crédito","pay_with_credit_payed":"Acelerador. Todavía necesita alrededor de {0} de crédito","create_payment":"Crear pago","pay_target":"Objetivo","pay_for_torrent":"Pagar por {0}","your_subid":"su subID","your_credits":"tus creditos","pay_point_for_data":"Paga {0} puntos por {1} datos","auto_renew":"Habilitar renovación automática","transaction_details":"Detalles de la transacción","transaction_id":"Identificación","transaction_payer":"Pagador","transaction_payee":"Tenedor","transaction_category":"Categoría","transaction_changed_amount":"Importe modificado","transaction_meta":"Meta","transaction_status":"Estado","transaction_creation_time":"Tiempo de creación","receipt_code":"Código de recibo","transfer_amount":"Monto de la transferencia","code_the_receipt_code":"Copie el código de recibo a continuación para el pagador","fill_the_receipt_code":"Transferencia rellenando el código de pago facilitado por el beneficiario","expense":"Gastos","copied":"copiado","transfer":"Transferir","receive":"Recibir","copy":"Copiar","withdraw_fund":"Retirar fondos","category_paydata_payer":"costo de los datos","category_paydata_payee":"Ingreso de datos","category_transfer":"Transferir","category_bonus":"Prima","category_recharge":"Recargar","status_pending":"pendiente","status_completed":"terminado","status_finish":"finalizar","status_failed":"fallido","tip_invalid_receiver":"Código de receptor no válido","tip_invalid_amount":"El monto del crédito debe ser un valor flotante en el rango de 0 a 1000 (la precisión mínima es 0,001)","credit_get_more":"Obtenga más créditos","credit_no_data":"Datos no disponibles","credit_loading":"Cargando...","credit_not_enough_amount":"Crédito insuficiente","credit_amount_not_enough":"Crédito insuficiente","credit_payee_not_exist":"El beneficiario no existe","credit_invalid_amount":"Importe de crédito no válido","credit_can_not_transfer_to_yourself":"No se puede transferir a usted mismo","credit_latest":"El último","credit_error_network":"Hay un problema con la red, inténtalo de nuevo más tarde","add_subtitles":"Agregar subtítulos","open_file":"Abrir documento...","advanced_options":"Opciones avanzadas","title":"Título","location":"ubicación","subtitle_file":"archivo de subtítulos","unsupported_subtitle_type":"El tipo de archivo de {0} no es un tipo de subtítulo admitido","not_default_player":"El reproductor de video predeterminado no está configurado","this_is_an_audio_file":"Este es un archivo de audio.","the_added_subtitle_already_exists":"El subtítulo agregado ya existe","stop_stream_player":"La transmisión de medios se terminó porque la tarea se detuvo o se eliminó","stop_player":"El reproductor se canceló porque se eliminó el archivo.","playing_timeout_hint":"Tiempos de espera agotados. Por favor revisa la tarea","autoplay_hint":"La reproducción automática puede estar bloqueada por su navegador. Si el jugador no está jugando, intente hacer clic en la pantalla para continuar","remove_playing_confirm":"{0} todavía se está reproduciendo, eliminarlo detendrá el reproductor. ¿Estás seguro de eliminarlo?","unsupported_in_browser":"Todavía no es compatible con el modo navegador","client":"Cliente","warning":"Advertencia","enable":"Permitir","disable":"Desactivar","auto":"Auto","encrypt_connection":"Cifrar conexión","encrypted_connection":"Conexión encriptada","non_encrypted_connection":"Conexión no encriptada","connected_wires_not_disconnect":"Los cables conectados no se desconectarán","audio":"audio","video":"video","image":"imagen","subtitle":"subtitular","zip":"cremallera","text":"texto","unknown":"desconocido","add":"Agregar","undo":"Deshacer","backup":"Respaldo","not_default_app":"${displayName} no es su aplicación predeterminada para torrent y medios, ¿desea establecerla como predeterminada?","dont_show_again":"no volver a mostrar","go_to_settings":"Ir a la configuración","about_alphabiz":"Sobre ${displayName}","last_check_at":"último cheque en","update_channel":"Actualizar canal","check_for_update":"Buscar actualizaciones","checking_for_update":"Comprobación de actualización...","no_update_available":"Actualización no disponible","update_available":"Actualización disponible","update_now":"Actualizar ahora","update_later":"Actualizar más tarde","click_to_update":"Haga clic en el botón ACTUALIZAR AHORA para descargar y actualizar","update_failed":"Actualización fallida","update_failed_message":"Ocurrió un error durante la actualización:","check_shasum_failed":"No se pudo verificar la integridad del instalador","downloading_update":"Descargando actualización...","ready_to_update":"Listo para actualizar","restart_to_update":"Se descarga la actualización. ${displayName} saldrá para actualizarse por unos momentos.","already_latest":"La versión actual ({0}) ya es la última","update_timeout":"Tiempo de espera de actualización","no_available_release":"Sin lanzamiento disponible","no_available_installer":"No hay instalador disponible","feedback":"Comentario","select_a_type":"Seleccione un tipo","category":"Categoría","select_a_category":"Seleccione una categoría","require_title":"Se requiere título","describe_your_problem":"Describe tu problema","report_a_bug":"Reportar un error","request_a_new_feature":"Solicitar una nueva característica","download_or_upload":"Descargar cargar","others":"Otros","submit_with_system_info":"Enviar con información del sistema","submit_feedback":"Enviar comentarios","tweet_us":"twitteanos","tweet_too_long":"El tuit es demasiado largo","delete_characters":"Elimine al menos {0} carácter(es)","rest_characters":"Puede ingresar {0} carácter(es) más","update_alphabiz":"Actualizar ${displayName}","current_version":"Versión actual","cancel_update":"Cancelar actualización","slow_download_speed":"Descarga demasiado lenta","slow_download_speed_caption":"La descarga del instalador es demasiado lenta ahora. Por favor, compruebe el estado de la red.","update_canceled":"Actualización cancelada","current_version_release_time":"Tiempo de lanzamiento de la versión actual","expired_app":"${displayName} Caducado","version_out_of_date":"Versión desactualizada","have_to_update":"La versión de ${displayName} está desactualizada. Algunos protocolos o API están en desuso. Tienes que actualizar ${displayName} antes de continuar.","exit_alphabiz":"Salir ${displayName}","exit_and_update":"Salir y aplicar actualización","new_version_hint":"La nueva versión está disponible","no_new_version":"No hay nueva versión disponible","current_is_latest":"La versión actual ya es la última","click_to_check_update":"Haga clic en el botón [COMPROBAR ACTUALIZACIÓN] para buscar actualizaciones","download_latest_version_from_website":"Visite el sitio web oficial para descargar la última versión.","to_the_website":"Ir al sitio web","network_diagnotic":"Diagnóstico de red","diagnotic":"Diagnóstico","click_to_check":"Haga clic para verificar","click_to_check_again":"Haga clic para comprobar de nuevo","checking":"Comprobación","online":"En línea","offline":"Desconectado","dns_look_up":"búsqueda de DNS","error":"Error","aws_service":"Servicio AWS","network_pings":"Ping de red","not_found":"Extraviado","packet_loss":"Pérdida de paquetes","official_site":"Sitio oficial","download_test":"Descargar prueba","test_task":"Tarea de prueba {0}","download_failed":"Descarga fracasó","second_spend":"{0} gasto","open_default_player_failed":"Error al abrir el reproductor predeterminado","copied_to_clipboard":"Copiado al portapapeles","go_to":"Ir a","region_not_available":"Región no disponible","region_not_available_message":"¡Lo siento! Su región no está disponible para usar esta aplicación. Esta aplicación se cerrará después de {0} segundos","confirm":"Confirmar","no_available_result":"Ningún resultado disponible","invalid_password_format":"Formato de contraseña no válido","invalid_password_format_same":"La contraseña es la misma que la contraseña original.","error_password":"Error de contraseña","keychain_setting":"Llavero","setting_description":"Almacenamiento en la nube: guarde datos clave en la nube.\\nCambiar contraseña: cambie la contraseña de la clave de la biblioteca de medios.\\nMnemónico: un método alternativo para generar y restaurar claves.\\nImportar clave local: importe la clave guardada localmente en la biblioteca de medios.\\nExportar clave: guarda los datos de la biblioteca de medios actual en el local o en la nube.\\nCopia de seguridad de la clave en la nube: actualice los datos de la biblioteca de medios actual en la nube para hacer una copia de seguridad.","refresh_status":"Estado de actualización","confirm_import_key":"Confirmar clave de importación","confirm_update_cloud_key":"Ya tienes una clave en la nube. Actualizar la clave sobrescribirá la clave original. ¿Está seguro de que desea actualizar la clave almacenada en la nube?","export_key_with_cloud":"Ingrese la contraseña independiente que configuró para exportar la clave de la biblioteca almacenada en la nube y bloquee el archivo clave con la contraseña de desbloqueo","store_cloud_key_prompt_password":"Ingrese una contraseña independiente para almacenar la clave de la biblioteca en la nube","update_cloud_key_prompt_password":"Establezca una contraseña independiente para cifrar la clave de la biblioteca y luego actualícela en la nube","enable_cloud_storage_prompt_password":"Establezca una contraseña para la clave almacenada en la nube, a través de la cual puede recuperar la clave de la nube","input_unlock_password":"Establecer contraseña de desbloqueo","export_local_prompt_password":"Establezca una contraseña de desbloqueo para cifrar su archivo de clave. No guardaremos esta contraseña para usted, por lo que si pierde su contraseña, no podrá desbloquear su clave de biblioteca","require_unlock_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","require_independent_password":"Ingrese la contraseña independiente para obtener la clave almacenada en la nube","import_local_prompt_password":"El archivo clave está bloqueado, ingrese la contraseña de desbloqueo","select_encrypt_mode":"Seleccione el modo de encriptación","update_cloud_key":"Actualizar la clave almacenada en la nube","backup_to_cloud":"Copia de seguridad de la clave de la biblioteca en la nube","save_local":"Guarde la clave de la biblioteca como archivo cifrado local","create_new_key":"Crear una nueva clave de biblioteca","creating_lib_key":"Creando clave de biblioteca...","loading_lib_key":"Cargando clave de biblioteca...","failed_to_create_lib_key":"No se pudo crear la clave de la biblioteca","failed_to_load_lib_key":"Error al cargar la clave de la biblioteca","import_local_key":"Importar clave localmente","import_lib_key_from_local":"Importar una clave de biblioteca localmente","import_from_cloud":"Importar la clave de la biblioteca desde la nube","create_or_import_key":"Crear o importar clave de biblioteca","create_or_import_key_desc":"La clave de la biblioteca es una clave independiente que se utiliza para obtener y publicar contenidos con una base de datos descentralizada.","store_your_lib_key":"Guarde su clave de biblioteca","export_cloud_key":"Exportar clave desde la nube","export_current_key":"Exportar clave actual","change_password":"Cambiar la contraseña","enable_cloud_storage":"Habilitar el almacenamiento en la nube","disable_cloud_storage":"Deshabilitar el almacenamiento en la nube","disable_cloud_storage_desc":"Deshabilitar el almacenamiento en la nube eliminará la clave guardada en la nube, asegúrese de que la clave esté guardada localmente","sync_at":"Sincronizar en: {time}","cloud_storage_enabled":"Sincronizar llavero con {storage}","cloud_storage_disabled":"Almacenamiento en la nube deshabilitado","saved_locally":"Guardado localmente","export_key":"Exportar archivo clave","cloud_independent_password":"Contraseña independiente de la nube","key_file_unlock_password":"Contraseña de desbloqueo de archivo clave","re_enter_unlock_password":"Vuelva a ingresar la contraseña de desbloqueo","independent_password_not_enabled":"La contraseña actual es la contraseña de la cuenta de Alphabiz (no se establece una contraseña independiente)","use_cognito_hash":"Usar la contraseña de la cuenta de Alphabiz","use_independent_password":"Usar contraseña independiente","keychain_lib":"clave de biblioteca","loading_keychain_state":"Cargando llavero...","backing_up":"Haciendo copia de seguridad...","backup_current_key":"Copia de seguridad de la clave actual en la nube","cloud_lib_key_not_existed":"la clave de la biblioteca no existe en la nube","open_keychain_file":"Abrir archivo de llavero","confirm_open_abk":"¿Quieres abrir el archivo ABK?","use_the_key":"usa la llave","backup_the_key":"Copia de seguridad de la clave en la nube","keychain_data_does_not_exist":"Los datos del llavero no existen","timeout of 0ms exceeded":"Hay un problema con la red, inténtalo de nuevo más tarde","XhrError":"Hay un problema con la red, inténtalo de nuevo más tarde","payer credit amount is not enough":"Crédito insuficiente","payee does not exist":"El beneficiario no existe","block_list_manage":"Administrar lista de bloqueo","blocked_users":"Usuarios bloqueados","blocked_channels":"Canales bloqueados","unblock_user":"Desbloquear usuario","unblock_channel":"Desbloquear canal","no_blocked_user":"Ningún usuario bloqueado","no_blocked_channel":"Ningún canal bloqueado","field_required":"{0} es requerido","setting":"Configuración","unknown_media":"Medios desconocidos","settings_button_visible":"Botón visible","settings_setting":"Configuración","settings_playback_rate":"Tasa de reproducción","settings_subtitle":"Subtitular","settings_pip":"Pepita","settings_fullscreen":"Pantalla completa","settings_subtitle_options":"Opciones de subtítulos","settings_normal":"Normal","settings_italic":"Itálico","settings_lighter":"Encendedor","settings_bolder":"más audaz","settings_small":"Pequeño","settings_large":"Grande","about":"Acerca de","services":"Servicios","hide":"Esconder","hide_others":"Esconder otros","show_all":"Mostrar todo","quit":"Abandonar","edit":"Editar","redo":"Rehacer","cut":"Cortar","paste":"Pegar","select_all":"Seleccionar todo","view":"Vista","reload":"Recargar","toggle_full_screen":"Alternar pantalla completa","toggle_developer_tools":"Alternar herramientas para desarrolladores","window":"Ventana","minimize":"Minimizar","bring_all_to_front":"Traer todo al frente","help":"Ayuda","github_repo":"Repositorio de Github","issues":"Asuntos","learn_more":"Aprende más","learn_spelling":"aprender ortografía","lookup_selection":"Buscar \\"{selection}\\"","search_with_google":"Buscar con Google","save_as":"Guardar como","save_image":"Guardar imagen","save_image_as":"Guardar imagen como ...","copy_link":"Copiar link","save_link_as":"Guardar enlace como ...","copy_image":"Copiar imagen","copy_image_as":"Copiar imagen como...","copy_image_address":"Copiar dirección de imagen","download_complete":"Descarga completa","download_complete_message":"{0} está descargado","is_running":"{0} se está ejecutando","open":"Abierto {0}","launch_problem":"Problema de lanzamiento","ask_clear_data":"Parece que está intentando iniciar {0} pero falló varias veces.\\n¿Desea borrar todos los datos de la aplicación e intentar iniciarla más tarde?","launch_directly":"Lanzar directamente","clear_all_data":"Borrar todos los datos","ask_clear_confirm":"¡Esto eliminará todas las configuraciones, registros y datos de usuario!\\nDespués de esto, es posible que deba iniciar {0} nuevamente.\\n¿Estás seguro de borrar los datos?","confirm_launch":"No, lanzar directamente","confirm_clear":"Sí, borrar todos los datos"}')},a368:function(e,t,a){"use strict";a.r(t);var n=a("00e9");a.d(t,"Clipboard",(function(){return n["a"]}));var o=a("b46e");a.d(t,"Share",(function(){return o["a"]}));var i=a("b009");a.d(t,"Filesystem",(function(){return i["c"]})),a.d(t,"Directory",(function(){return i["a"]})),a.d(t,"Encoding",(function(){return i["b"]}));var r=a("5c0a");a.d(t,"Device",(function(){return r["a"]}));var s=a("79b7");a.d(t,"App",(function(){return s["a"]}));var l=a("c03e");a.d(t,"Network",(function(){return l["a"]}));var c=a("67d7");a.d(t,"Capacitor",(function(){return c["a"]}))},a449:function(e,t,a){"use strict";a.d(t,"a",(function(){return x})),a.d(t,"d",(function(){return F})),a.d(t,"c",(function(){return B})),a.d(t,"b",(function(){return W}));a("de6c"),a("f200"),a("7a76"),a("a1c1");var n=a("36a1"),o=a("5584"),i=a("35f4"),r=a("2d62"),s=(a("dc89"),a("2425"),a("d558"));const l=e=>e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a;t(null===(a=e.target)||void 0===a?void 0:a.result)},a.readAsText(e)})):Promise.resolve(""),c=async e=>{e.click();const t=new Promise((t=>{let a=!1;setTimeout((()=>{const e=document.activeElement;e.addEventListener("focus",(()=>{console.log("file$onFocus: Start",e),setTimeout((()=>{console.log("file$onFocus: End",a),!1===a&&t(null)}),400)}),{once:!0})}),200),e.addEventListener("change",(async n=>{var o,i;console.log("file$onChange");const r=null===n||void 0===n||null===(o=n.target)||void 0===o||null===(i=o.files)||void 0===i?void 0:i[0];r&&(a=!0,t(r)),e.value=null}),{once:!0})}));return await t},d=()=>{const e=document.createElement("input");return e.style.display="none",e.type="file",e.accept=".abk",e};var u={methods:{async $readFile(){const e=d(),t=await c(e);console.log("file$selected",t);const a=await l(t);return a},async $writeFile(e,t){if(Object(s["a"])()){const{Share:n,Filesystem:o,Directory:i}=await Promise.resolve().then(a.bind(null,"a368")),{value:r}=await n.canShare();if(!r)return;const{uri:s}=await o.writeFile({data:t,path:e,directory:i.Documents}).catch((()=>({})));return n.share({title:e,files:[s.startsWith("file://")?s:"file://"+s]}).catch((e=>{console.log(e)}))}const n=URL.createObjectURL(new Blob([t])),o=document.createElement("a");o.href=n,o.download=e,o.click(),setTimeout((()=>window.URL.revokeObjectURL(n)),0)}}},_=a("9572"),p=a("02fe"),m=a.n(p),h=a("9369"),g=a("d710"),f=a.n(g),b=a("ff9b");const y=a("d310").isElectron();y||console.warn("Warning: Torrent downloader is not impl in browser mode now");const v=Object(i["a"])("abcdefg",5),w=Object(i["a"])("0123456789abcdef",40),k=async(e,t=5)=>{let a=0;while(a=t)throw console.log("Failed at running",e),n;console.log("Retry #"+a++,e)}},S=!0,C=(...e)=>{if(!S)return;const[t,...a]=e;console.tag.green(...t).log(...a)},x=new b["a"]({data(){return{loading:!1}},methods:{setLoading(e){this.loading=e}}});function $(e){return this.$alphabiz.dialog({progress:null===e||void 0===e||e,ok:!1})}async function T(){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));return t}async function z(e,t={}){const a={password:{type:"password",model:"",rules:[h["c"].bind(this),h["d"].bind(this)]}},n=this.$alphabiz.dialog({title:this.$t("input_independent_password"),cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(async()=>{await e(t,t.dialog$arguments().prompts.password)})),...t});await n.promise()}async function P(e,t={}){const a={password:{type:"password",label:this.$t("account_password"),model:"",rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("account_re_enter_password"),rules:[e=>a.password.model===e||this.$t("account_password_not_equal")]}},n=this.$alphabiz.dialog({cancel:!0,prompts:a,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().prompts.password))),...t});await n.promise()}async function A(e,{delay:t,timeout:a,messages:{processing:n,failed:o}}){const i=$.call(this,n),r=e=>new Promise((t=>setTimeout(t,e))),s=e=>new Promise((t=>{let a=e;const r=Date.now(),s=setInterval((()=>{const l=Math.floor((Date.now()-r)/1e3);a=e-l,a>0?i.update({progress:`${n} ${a}s`}):(clearInterval(s),i.update({progress:o}),t())}),1e3)}));let l,c=!1;return await Promise.race([r(t).then((()=>s(Math.round(a/1e3)))),e().then((e=>{c=!0,l=e}))]).finally((()=>{r(c?0:1e3).then((()=>i.hide()))})),l}async function I(e={}){const t="lib",{mode:a,password:n}=e,i=await o["a"].dispatch("getKeychainCloud",{keyName:t,mode:a,password:n});if(["epriv","epub","priv","pub"].some((e=>!i[e])))throw new Error("invalid_key");return i}async function q(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const a="lib",{mode:n,password:o}=t;await Object(h["a"])(e,{mode:n,password:o,keyName:a})}async function O(e,t={}){var a;let n;if(t.dataStr?n=t.dataStr:(C(["requireKeyObjLocal","$readFile","start"]),n=await this.$readFile(),C(["requireKeyObjLocal","$readFile","done"],n)),!n)return;if(!n.startsWith("eyJ"))throw console.warn("legacy version or invalid key file"),new Error("invalid_key");const o=async e=>{const t={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},a=await _["a"].decryptLibKeyObj(t.decode(n),e).catch((()=>{}));if(!a||"object"!==typeof a)throw new Error("error_password");if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a};await z.call(this,(async(t,a)=>{const n=await o(a).catch((e=>(this.$q.notify({message:this.$t(e.message),type:"negative",position:"bottom-right"}),null)));C(["requireKeyObjLocal","decrypted"],n),n&&await e(n).finally((()=>t.hide()))}),{title:null!==(a=t.title)&&void 0!==a?a:this.$t("input_unlock_password"),message:this.$t("require_unlock_password")})}async function E(e,t={}){if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");const{password:a}=t,n={encode:e=>m.a.enc.Base64.stringify(m.a.enc.Utf8.parse(e)),decode:e=>m.a.enc.Utf8.stringify(m.a.enc.Base64.parse(e))},o=await _["a"].encryptLibKeyObj(e,a).catch((()=>null));if(!o)throw new Error("error_password");const i=Math.floor(Date.now()/1e3);await this.$writeFile(`${f.a.displayName.replace(/\s/g,"_")}-libkey-${i}.abk`,n.encode(o))}async function D(){const e=async()=>{try{C(["createKeyObj","1"],"ensure logout"),await n["a"].logout();const e=v()+w(35),t=w(),a=e.substring(0,12);C(["createKeyObj","2"],"register"),await k((async()=>{await n["a"].register(e,t,{name:a,description:"",avatar:""})}));const o=e=>{var t;if(null===e||void 0===e||null===(t=e._)||void 0===t||!t.sea)throw new Error("current_lib_key_does_not_exist");const a=e._.sea;if(["epriv","epub","priv","pub"].some((e=>!a[e])))throw new Error("invalid_key");return a},i=o(Object(r["t"])());return C(["createKeyObj","3","created"],i),i}catch(e){throw console.error(e),new Error("failed to create lib key obj")}finally{C(["createKeyObj","4"],"logout"),await n["a"].logout()}};return await A.call(this,e,{delay:1e4,timeout:15e3,messages:{processing:this.$t("creating_lib_key"),failed:this.$t("failed_to_create_lib_key")}})}async function j(){var e;if(!n["a"].user||null===(e=n["a"].user._)||void 0===e||!e.sea)throw new Error("current_lib_key_does_not_exist");const t=n["a"].user._.sea;if(["epriv","epub","priv","pub"].some((e=>!t[e])))throw new Error("invalid_key");return t}async function N(e,t=!0){const a=async()=>{if(["epriv","epub","priv","pub"].some((t=>!e[t])))throw new Error("invalid_key");return C(["loadKeyObj"],"lib.login"),await k((async()=>{await n["a"].logout(),await n["a"].login(e)})),C(["loadKeyObj"],"lib.prepareData"),await n["a"].prepareData(),!0};return t?await A.call(this,a,{delay:1e4,timeout:6e4,messages:{processing:this.$t("loading_lib_key"),failed:this.$t("failed_to_load_lib_key")}}):await a()}async function L(){localStorage.removeItem(`library-pair@${r["e"]}`),await n["a"].logout()}async function U(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"});let a=!1;const n=$.call(this,this.$t("loading_keychain_state"));await new Promise((e=>setTimeout(e,1e3)));const o=await this.$store.dispatch("syncKeychainState").catch((e=>(t(e.message),null)));if(!o)return n.hide(),a;const i=!(null===o||void 0===o||!o.lib),r=!!o.hash;o.unset&&o.hash;if(i){let e=5;const t=await new Promise((async t=>{const a=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),message:this.$t("confirm_update_cloud_key"),ok:{color:"negative",textColor:"negative",disable:!!e,label:`${this.$t("ok")} (${e})`},cancel:!0}),n=Date.now(),o=setInterval((()=>{const t=Math.floor((Date.now()-n)/1e3);e=5-t,0===e&&clearInterval(o),a.update({ok:{color:"negative",textColor:"negative",disable:!!e,label:e?`${this.$t("ok")} (${e})`:this.$t("ok")}})}),1e3);t(!!await a.promise())}));if(!t)return n.hide(),a}if(r)try{n.update({progress:this.$t("backing_up")}),await q.call(this,e,{mode:"cognito_hash",password:void 0}),a=!0}catch(s){t(s.message)}finally{n.hide()}else{n.hide();const o=async(n,o)=>{try{await q.call(this,e,{mode:"independent_password",password:o}),a=!0,n.hide()}catch(s){t(s.message)}},r=i?z:P,l=i?{message:this.$t("update_cloud_key_prompt_password")}:{message:this.$t("store_cloud_key_prompt_password")};await r.call(this,o,l)}return a}async function R(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=async t=>{let a=null;const n={label:this.$t("import_from_cloud"),value:"import_from_cloud",disable:!0,desc:this.$t("loading_keychain_state")},o=e=>e.dialog$useLoadingState("ok",(()=>(a&&a(),t(e,e.dialog$arguments().option)))),i={type:"radio",model:"import_from_cloud",items:[n,{label:this.$t("import_lib_key_from_local"),value:"import_from_local"},{label:this.$t("create_new_key"),value:"create_new_key"}]},r=this.$alphabiz.dialog({title:this.$t("create_or_import_key"),message:this.$t("create_or_import_key_desc"),options:i,ok:o});function s(e){const t=e=>{n.label=e?`${this.$t("import_from_cloud")} (${e}s)`:this.$t("import_from_cloud"),r.update({options:Object.assign({},i)})};let a=null;const o=new Promise((n=>{let o=e,i=setInterval((()=>{if(o<=0)return a(!0);t(o),o-=1}),1e3);a=e=>{i&&clearInterval(i),i=null,n(e)}}));return o.then((e=>{if(t(),e)return r.vm.handleOk()})),()=>a(!1)}await this.$store.dispatch("syncKeychainState").then((e=>{e.lib?(n.disable=!1,n.desc=this.$t("sync_at",{time:this.$d(e.timestamps.lib,"YMDHms")}),i.model="import_from_cloud"):(n.disable=!0,n.desc=this.$t("cloud_storage_disabled"),i.model="import_from_local"),r.update({options:Object.assign({},i)})})).catch((t=>e(t.message))),n.disable||(a=s.call(this,6),this.$watch((()=>r.vm.dialog$arguments().option),(()=>a()))),await r.promise()};await a((async(a,n)=>{C(["select",n]);const o=async e=>{const n=await N.call(this,e);n&&(t(),a.hide())};if("create_new_key"===n){const t=await D.call(this);if(!t)return;let a=!1;const r=async t=>{const o=async t=>{const a={type:"radio",model:"backup_to_cloud",items:[{label:this.$t("save_local"),value:"save_local"},{label:this.$t("backup_to_cloud"),value:"backup_to_cloud",desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("store_your_lib_key"),cancel:!0,options:a,ok:e=>e.dialog$useLoadingState("ok",(()=>t(e,e.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((t=>e(t.message))),await n.promise()};await o((async(o,i)=>{if(C([n,i]),"save_local"===i)await P.call(this,(async(n,i)=>{try{await E.call(this,t,{password:i}),a=!0,n.hide(),o.hide()}catch(r){e(r.message)}}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")});else if("backup_to_cloud"===i){if(a=await U.call(this,t),!a)return;o.hide()}}))};if(await r(t),!a)return;try{C([n,"stored"]),await o(t)}catch(i){e(i.message)}}else if("import_from_local"===n)await O.call(this,o);else if("import_from_cloud"===n){C([n,"syncKeychainState"]);const t=await this.$store.dispatch("syncKeychainState").catch((t=>(e(t.message),null)));if(null===t||void 0===t||!t.lib)return C([n,"cloud_lib_key_not_existed"]),void e("cloud_lib_key_not_existed");if(t.unset&&t.hash){C([n,"use_cognito_hash"]);try{const e=await I.call(this,{mode:"cognito_hash",password:void 0});await o(e)}catch(i){e(i.message)}return}C([n,"use_independent_password"]),await z.call(this,(async(t,a)=>{try{const e=await I.call(this,{mode:"independent_password",password:a});await o(e),t.hide()}catch(i){e(i.message)}}),{message:this.$t("require_independent_password")})}}))}async function M(){try{const e=await this.$store.dispatch("syncKeychainState");if(null!==e&&void 0!==e&&e.lib)return!1;const t=await D.call(this);if(!t)throw new Error("failed_to_create_keyObj");const a=await U.call(this,t);if(!a)throw new Error("failed_to_store_keyObj");const n=await N.call(this,t);if(!n)throw new Error("failed_to_load_keyObj");return!0}catch(e){return C(["lib$auto_create","cancel"],e.message),!1}}const F={mixins:[u],created(){this.$amplify.addOnAuthStateChangedListener((async e=>{if("signedIn"!==e)return;x.setLoading(!0);const t=()=>{const e=localStorage.getItem(`library-pair@${r["e"]}`);if(!e)return;const t=JSON.parse(e);return["epriv","epub","priv","pub"].some((e=>!t[e]))?void 0:t},a=t();if(a)await N.call(this,a,!1);else{const e=await M.call(this);e||await R.call(this)}x.setLoading(!1)})),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedOut"===e&&await L.call(this)}))}},B={mixins:[u],beforeCreate(){if("KeychainItem"!==this.$options.name&&"MnemonicCode"!==this.$options.name)throw new Error(`Unsupported Component: ${this.$options.name}`)},methods:{async lib$exportCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=await j.call(this).catch((t=>(e(t.message),null)));if(!t)return;await P.call(this,(async(a,n)=>{await E.call(this,t,{password:n}).then((()=>a.hide()),(t=>e(t.message)))}),{title:this.$t("input_unlock_password"),message:this.$t("export_local_prompt_password")})},async importKeyObject(e){const t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});return N.call(this,e).then(t)},async lib$importLocalKey(){const e=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});await O.call(this,(async t=>{await N.call(this,t),e()}))},async lib$backupCurrentKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"}),a=await j.call(this).catch((t=>(e(t.message),null)));if(!a)return;const n=$.call(this,this.$t("loading_keychain_state"));await o["a"].dispatch("syncKeychainState").then((async o=>{const i=await T.call(this);if(i)if(o.hash&&o.unset){n.update({progress:this.$t("backing_up")});try{await q.call(this,a,{mode:"cognito_hash",password:void 0}),t()}catch(r){e(r.message)}finally{n.hide()}}else{n.hide();const o=e=>P.call(this,e,{title:this.$t("input_independent_password"),message:this.$t("update_cloud_key_prompt_password")});await o((async(n,o)=>{try{await q.call(this,a,{mode:"independent_password",password:o}),t(),n.hide()}catch(r){e(r.message)}}))}else n.hide()}),(t=>{e(t.message),n.hide()}))},async lib$exportCloudKey(){const e=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),t=$.call(this,this.$t("loading_keychain_state")),a=await o["a"].dispatch("syncKeychainState").catch((t=>(e(t.message),null))).finally(t.hide);if(!a)return;const n=async e=>{let t=this.$t("export_key_with_cloud"),n={unlockPassword:{type:"password",model:"",label:this.$t("key_file_unlock_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},reEnterPassword:{type:"password",model:"",label:this.$t("re_enter_unlock_password"),rules:[e=>n.unlockPassword.model===e||this.$t("account_password_not_equal")]}};const o=a.unset&&a.hash;o?t+=`; ${this.$t("independent_password_not_enabled")}`:n={password:{type:"password",model:"",label:this.$t("cloud_independent_password"),rules:[h["c"].bind(this),h["d"].bind(this)]},...n};const i=this.$alphabiz.dialog({title:this.$t("export_key"),message:t,prompts:n,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(async()=>{const{prompts:a}=t.dialog$arguments();await e(t,a.password||"",a.unlockPassword,o?"cognito_hash":"independent_password")}))});await i.promise()};await n((async(t,a,n,o)=>{try{const e=await I.call(this,{mode:o,password:a});await E.call(this,e,{password:n}),t.hide()}catch(i){e(i.message)}}))}}},W={methods:{async lib$openABK(e){const t=e=>this.$q.notify({message:this.$t(e),type:"negative",position:"bottom-right"}),n=()=>this.$q.notify({message:this.$t("success"),type:"positive",position:"bottom-right"});if(!y)return;const o=a("b052").ipcRenderer;[".abk"].some((t=>e.endsWith(t)))&&(e=await o.invoke("read-abk",e));const i=async()=>{const a=async()=>{const t=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),message:this.$t("confirm_open_abk",{filename:e}),cancel:!0});return!!await t.promise()};await a()&&await O.call(this,(async e=>{C(["lib$openABK","keyObj"],e);const a=async e=>{const a={type:"radio",model:"use_the_key",items:[{value:"use_the_key",label:this.$t("use_the_key")},{value:"backup_the_key",label:this.$t("backup_the_key"),desc:this.$t("loading_keychain_state")}]},n=this.$alphabiz.dialog({title:this.$t("open_keychain_file"),options:a,cancel:!0,ok:t=>t.dialog$useLoadingState("ok",(()=>e(t,t.dialog$arguments().option)))});await this.$store.dispatch("syncKeychainState").then((e=>{const t=!(null===e||void 0===e||!e.lib);e.unset&&e.hash;a.items[1].desc=t?this.$t("update_cloud_key"):this.$t("enable_cloud_storage"),n.update({options:Object.assign({},a)})})).catch((e=>t(e.message))),await n.promise()};await a((async(a,o)=>{C(["lib$openABK","selectAction"],o);try{if("use_the_key"===o)await N.call(this,e);else if("backup_the_key"===o){const t=await U.call(this,e);if(!t)return}n(),a.hide()}catch(i){t(i.message)}}))}),{title:this.$t("open_keychain_file"),dataStr:e})};"signedIn"===this.$store.state.account.authState?(C(["lib$openABK","hot boot"]),await i()):(C(["lib$openABK","cold boot"]),this.$amplify.addOnAuthStateChangedListener((async e=>{"signedIn"===e&&await i()}),{once:!0}))}}}},a44b:function(e,t,a){"use strict";a("c5fa")},a51a:function(e,t){e.exports={github:{username:"tanshuai",repo:"alphabiz",branch:"main",internalRepo:"alphabiz-app"},bucketUrl:"https://s3.amazonaws.com/internal.alpha.biz",s3DownloadUrl:"https://d2v5t3td4po4es.cloudfront.net/releases/"}},a5d3:function(e,t,a){},a5fe:function(e,t,a){},a749:function(e,t,a){"use strict";var n=a("8750"),o=a("a368"),i=a("8a63"),r=a("5584"),s=a("1926"),l=a("d558");const c=e=>{if(Object(l["a"])()){if(!e.connected)return console.log("Network offline");if("cellular"===e.connectionType){if(r["a"].getters.settings.downloadWithCellular)return console.log("User allowed download with cellular");Object(i["d"])(!0),Object(i["e"])(!0),n["a"].create({title:s["b"].t("download_with_cellular"),message:s["b"].t("download_with_cellular_desc"),ok:s["b"].t("download_with_cellular_confirm"),cancel:s["b"].t("pause_all")}).onOk((()=>{r["a"].dispatch("set",{downloadWithCellular:!0}).then((()=>{r["a"].dispatch("fetchSettings"),Object(i["c"])(!0),Object(i["h"])(!0)}))}))}else e.connectionType}},d=async()=>{o["Network"].addListener("networkStatusChange",(e=>{c(e)}));const e=await o["Network"].getStatus();c(e)};d(),t["a"]=c},a75f:function(e,t,a){},aa59:function(e,t,a){},aa8a:function(e,t,a){"use strict";a.d(t,"a",(function(){return r})),a.d(t,"b",(function(){return s}));var n=a("fc3a"),o=a("a368"),i=a("d558");async function r(){if(Object(i["a"])()){const{value:e,type:t}=await o["Clipboard"].read();return t.startsWith("text")||"url"===t?e:""}return navigator.clipboard.readText()}async function s(e){return Object(i["a"])()?o["Clipboard"].write({string:e}):Object(n["a"])(e)}},abc6:function(e,t,a){"use strict";(function(e){a("a1c1"),a("0c26"),a("de6c"),a("f200"),a("7a76");var n=a("7471"),o=a("ec793"),i=a("1ef4"),r=a("4d52"),s=a("508e"),l=a.n(s),c=a("fb31"),d=a.n(c);const u=d.a.protocol,_=d.a.shortProtocol,p=e=>encodeURIComponent(e.trim().replace(/\s+/g," ")),m=async(t,a)=>{const o=p(a||t.name||`${u}_task`),i=e.from(t.protocolType+t.hash,"hex").toString("base64").replace(/\//g,"_"),r=o.replace(/\s/g,"+").replace(/_/g,"+d;").replace(/\//g,"_").replace(/&/g,"+amp;")+"/"+i,s=[],l=[];for(const e of t.trackers||[])"number"===typeof e?s.push(e.toString(16)):l.push(e);let c=s.map((e=>("0000"+e).slice(-4))).join("");l.length&&(c=c+"&tr="+l.join("&"));for(const e in t.data)Array.isArray(t.data[e])?c=c+"&"+e+"="+t.data[e].join(""):"string"===typeof t.data[e]&&(c=c+"&"+e+"="+t.data[e]);const d=(await n["a"].compress(c,9)).toString("base64");return c=e.from(c).toString("base64"),c.length>1.1*d.length&&(c=d),c.length?u+"://"+r+"&"+c.replace(/\//g,"_"):u+"://"+r},h=async t=>{if(console.log("toObject",t),!t.startsWith(`${u}://`))return null;const a=t.replace(`${u}://`,"").replace(/\/+$/,"").split("&");a.length>2&&console.error("str is invalid alphabiz uri");const[o,i]=a,r=o.lastIndexOf("/");if(-1===r)return null;const s=o.substring(0,r).replace(/\+amp;/g,"&").replace(/_/g,"/").replace(/\+d;/g,"_").replace(/\+/g," ")||"",c=o.substring(r+1),d=e.from(c.replace(/_/g,"/"),"base64").toString("hex");console.log(d,c,i);const _=d.substring(0,2),p=d.substring(2);let m="";try{const t=e.from(i.replace(/_/g,"/"),"base64");console.log("buffer",t);const a=await n["a"].decompress(t);a&&(m=a.toString("base64"))}catch(v){console.log("LZMA decompress failed.",v.message),m=i||""}const h=e.from(m,"base64").toString().split("&"),[g,...f]=h,b=[];if(g.includes("="))f.unshift(g);else for(let e=0;e{if(!g.length)return f.clear(),void(b=!1);const e=g.shift();if(!e||!f.has(e))return y();b=!0;const t=f.get(e);f.delete(e),m(o["a"].toObject(t.url),t.name).then((e=>{"function"===typeof t.cb&&t.cb(null,e),Array.isArray(t.cb)&&t.cb.forEach((t=>{"function"===typeof t&&t(null,e)}))})).catch((e=>{console.error(e),t.cb(e)})).finally((()=>{b=!1,y()}))},v=async(e,t)=>{const{hash:a,url:n,name:o}=e;if(!n)return console.log("error encoding",e),t(new Error(a),n);if(n.startsWith("magnet")){const e=Date.now();if(g.includes(a)){const n=f.get(a);if(n){if(e-n.timestamp<5)return void(Array.isArray(n.cb)?n.cb.push(t):n.cb=[n.cb,t]);"function"===typeof n.cb?n.cb(new Error(`Cannot encode ${n.url}`)):Array.isArray(n.cb)&&n.cb.forEach((e=>{"function"===typeof e&&e(new Error(`Cannot encode ${n.url}`))})),f.delete(a)}else g.splice(g.indexOf(a),1)}return f.set(a,{url:n,timestamp:e,name:o,cb:t}),g.push(a),void(b||y())}if(n.startsWith(_+"-library")){const e=await m(i["a"].toObject(n));return t(null,e)}if(n.startsWith(r["a"].config.prefix)){const e=await m(r["a"].toObject(n));return t(null,e)}return console.log("error encoding",e),t(new Error(a),n)},w=async e=>{const t=await h(e.startsWith(_+":")?e.replace(`${_}://`,`${u}://-/`):e);switch(t.protocolType){case"01":return o["a"].fromObject(t);case"02":return i["a"].fromObject(t);case r["a"].config.type:return r["a"].fromObject(t)}throw console.log(t),new Error(`Unsupported protocol type ${t.protocolType}`)};t["a"]={encode:v,decode:w}}).call(this,a("eb72").Buffer)},ac09:function(e,t,a){"use strict";a("8dc9")},ac84:function(e,t,a){},ae24:function(e,t,a){},ae46:function(e){e.exports=JSON.parse('{"packageVer":"0.2.4","channel":"web","buildTime":"202409121721","buildCommit":"0aa57d8a","sourceCommit":"0aa57d8a","version":"0.2.5-web"}')},aecb:function(e,t,a){"use strict";(function(e){a("a1c1"),a("de6c"),a("0c26");var n=a("61af"),o=a.n(n),i=a("a3fc"),r=a.n(i),s=a("9a50"),l=a("5584"),c=a("d310"),d=a("d7df"),u=a("c5a5"),_=a("3aea"),p=a("d710"),m=a("d558"),h=a("aa8a"),g=a("36a1"),f=a("a368"),b=a("908d");const y=Object(c["isElectron"])()?a("b052").ipcRenderer:{};t["a"]={name:"TaskDialog",inject:["taskQueue"],components:{FileSelector:s["a"]},data(){const e=l["a"].getters.settings,t={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer};return{isElectron:Object(c["isElectron"])(),isCapacitor:Object(m["a"])(),value:!1,tab:"url",mode:"download",currentTab:"url",setAsDefault:!1,input:"",inputFile:null,onMagnetCloseCallbacks:[],settings:t,libraryDialog:null}},computed:{disableTasks(){return!!l["a"].getters.shouldDisableTasks||!!l["a"].getters.settings.forceLogin&&(!l["a"].getters.accountUserInfo||!l["a"].getters.accountUserInfo.sub)}},methods:{updateSettings(){const e=l["a"].getters.settings;this.settings={downloadDirectory:e.downloadDirectory,uploadSpeed:e.uploadSpeed,downloadSpeed:e.downloadSpeed,maximumDownloadNum:e.maximumDownloadNum,maximumConnectionsNum:e.maximumConnectionsNum,payedUserShareRadix:e.payedUserShareRadix,trackers:e.trackerList||[],saveLinkSeed:e.saveLinkSeed,defaultVideoPlayer:e.defaultVideoPlayer}},show(e,t){"string"===typeof e&&["download","upload"].includes(e)&&(this.mode=e),"string"===typeof t?(this.input=t,this.inputFile=null,this.tab="url"):"object"===typeof t&&null!==t?(this.input="",this.inputFile=t,this.tab="file",console.log("File",t)):(this.input="",this.inputFile=null),this.value=!0,this.$nextTick((()=>{this.updateSettings()}))},hide(){this.value=!1},toggle(){this.value=!this.value},selectFolder(){var e;if(!Object(c["isElectron"])())return null===(e=this.$refs.folderSelector)||void 0===e?void 0:e.click();const t="download"===this.mode?[{name:"Torrent",extensions:["torrent"]}]:[];y.once("select_file_or_directory",((e,t)=>{if(t&&!t.canceled&&t.filePaths&&t.filePaths.length){const e=o.a.statSync(t.filePaths[0])?t.filePaths[0]:r.a.basename(t.filePaths[0]);this.inputFile=[{path:e,name:e}],console.log("select folder",this.inputFile)}else console.log("skip select folder",t)})).send("select_file_or_directory",t)},onFileSelected(e){console.log("Select",e),Array.isArray(e)?this.inputFile=e:e instanceof File?this.inputFile=[e]:console.log("Invalid file",e)},onFolderSelected(e){if(!Array.isArray(e)||!e.length)return console.log("not files");console.log("Select",e),this.inputFile=e},selectSavePath(){Object(c["isElectron"])()&&y.once("select_directory",((e,t)=>{if(!t||t.canceled||!t.filePaths)return;const a=t.filePaths[0];a&&(this.settings.downloadDirectory=a,this.setAsDefault&&l["a"].dispatch("set",{downloadDirectory:a}))})).send("select_directory")},downloadTorrent(){const e=this.inputFile&&(this.inputFile.path||this.inputFile[0].path);let t=this.input;if(t.includes(p["shortProtocol"]+"://")){let e=0;t=t.replace(new RegExp(`${p["shortProtocol"]}://`,"g"),(()=>e++?`${p["protocol"]}://${p["protocol"]}task-${e}/`:`${p["protocol"]}://${p["protocol"]}task/`))}if("url"===this.tab&&!["magnet",p["protocol"],p["shortProtocol"]].some((e=>t.startsWith(e+":"))))return this.$q.notify(this.$t("invalid_download_url"));d["a"].emit("download_torrent",{type:this.tab,url:t,file:e,token:"url"===this.tab?t:e||t,...this.settings}),this.value=!1,this.input=""},async uploadTorrent(){console.log("Upload torrent",this.inputFile);const t=this.inputFile;if(console.log("n",t.name),Object(m["a"])()&&b["b"].is.ios){const a=Date.now(),n=this.$q.dialog({message:this.$t("open_file")+"...",persistent:!0,ok:!1,cancel:!1}),o=r.a.join("Uploads",t.name);console.log("Delete"),await f["Filesystem"].mkdir({directory:f["Directory"].Documents,path:r.a.dirname(o),recursive:!0}),await f["Filesystem"].deleteFile({path:o,directory:f["Directory"].Documents});let i=0;console.log("Start writing",o);const s=new FileReader,l=1e7;let c=0,u=c+l;const _=async a=>{const r=a;i+=r.byteLength,await f["Filesystem"].appendFile({path:o,directory:f["Directory"].Documents,data:e.from(a).toString("base64")}),n.update({message:this.$t("open_file")+`... (${(i/t.size*100).toFixed(2)}%)`}),c+=l,u+=l,c{if(c>=t.size)return console.log("done");const e=t.slice(c,u);s.readAsArrayBuffer(e)};s.onload=()=>{const e=s.result;_(e)},s.onerror=()=>{console.log("error",s.error.code,s.error.toString(),s.readyState,s.DONE),console.log("codes",s.error.NOT_FOUND_ERR,s.error.SECURITY_ERR,s.error.ABORT_ERR),console.log("file",t.name,t.size),console.log("Cost",Date.now()-a),m()};const m=()=>{n.hide(),this.value=!1,setTimeout((()=>{this.$q.dialog({message:this.$t("file_too_large"),ok:this.$t("ok")})}),500)},h=async()=>{console.log("Cost",Date.now()-a),console.log("Finish writing file",t.name);const{uri:e}=await f["Filesystem"].getUri({path:o,directory:f["Directory"].Documents});console.log("saved",decodeURI(e.replace("file://",""))),d["a"].emit("seed_torrent",{file:[decodeURI(e.replace("file://",""))],token:t.name,...this.settings}),this.value=!1,setTimeout((()=>{n.hide()}),1e3)};return p()}const a=this.inputFile.path?[this.inputFile.path]:this.inputFile.map((e=>e.path));d["a"].emit("seed_torrent",{file:a,token:a[0],...this.settings}),this.value=!1},submit(){(""!==this.input||this.inputFile)&&("download"===this.mode?this.downloadTorrent():this.uploadTorrent())},onPasteFile(e,t){console.log("on paste file",e);const a=decodeURI(e.replace(/^file:\/\//,""));if(!o.a.existsSync(a))return console.log("Not exists");const n=a.includes("/")?a.split("/").filter((e=>e)).pop():a;e.endsWith(".torrent")?this.show("download",[t||{path:a,name:n}]):this.$q.dialog({html:!0,title:this.$t("upload"),message:this.$t(`ask_if_upload_file
${a}
`),ok:this.$t("upload"),cancel:this.$t("cancel")}).onOk((()=>{d["a"].emit("seed_torrent",{file:[a],token:a,settings:this.settings})}))},onPasteUrl(e){if(!e.startsWith(p["protocol"]+"://$"))return e.startsWith("magnet:")||e.startsWith(p["protocol"]+":")||e.startsWith(p["shortProtocol"]+":")?void this.show("download",e):console.log("error not magnet",e)},onPasteLibraryUrl(e){if(this.libraryDialog)return;if(!e.startsWith(p["shortProtocol"]+"-library"))return;const[t,a,n]=e.replace(new RegExp(`^${p["shortProtocol"]}-library://`),"").split("/");let o=0;const i=()=>{const r=Object(_["c"])(n);if(!r)return o||this.$q.notify(this.$t("loading")),o++<5?setTimeout(i,2e3):(console.log("cannot parse",e),void this.$q.dialog({title:this.$t("channel_not_found"),message:this.$t("cannot_get_channel_info"),ok:this.$t("ok")}));"channel"===t&&(this.libraryDialog=this.$q.dialog({title:this.$t("go_to_library"),message:this.$t("go_to_library_channel_msg",[decodeURIComponent(a||n)]),ok:this.$t("ok"),cancel:this.$t("cancel")}).onOk((()=>{this.$root.$emit("navigate-to"),this.$router.push(r+"&fromLink=1"),setTimeout((()=>this.$root.$emit("navigate-to",r))),this.libraryDialog=null})).onDismiss((()=>{this.libraryDialog=null})))};g["a"].whenReady.then(i)},async onPaste(e){if(!Object(c["isElectron"])()&&!Object(m["a"])())return;if(this.value)return;const t=e._ab_payload_;console.log(t);const a=t||e.clipboardData.getData("text")||e.clipboardData.files;if(console.log("onPaste",a),"object"===typeof a&&a.path&&this.onPasteFile(a.path,a),this.disableTasks)return console.log("wait for login to continue",a),this.taskQueue.push({type:"download",file:a});if("function"===typeof e._onClose&&this.onMagnetCloseCallbacks.push(e._onClose),a.startsWith("file://"))return this.onPasteFile(a),e.preventDefault();if(a.startsWith("magnet:"))return this.onPasteUrl(a),e.preventDefault();if([p["protocol"],p["shortProtocol"]].some((e=>a.startsWith(e+":")))){const t=await Object(u["a"])(a);return t.startsWith("magnet:")?this.onPasteUrl(a):t.startsWith(p["shortProtocol"]+"-library")?this.onPasteLibraryUrl(t):console.warn("unknown url:",t),e.preventDefault()}}},mounted(){this.$root.$off("openTaskDialog"),this.$root.$off("closeTaskDialog"),this.$root.$on("openTaskDialog",((...e)=>{console.log("open task",...e),this.show(...e)})),this.$root.$on("closeTaskDialog",(()=>this.hide())),document.body.addEventListener("paste",this.onPaste)},watch:{value(e){if(e&&"download"===this.mode){if(this.input||this.inputFile&&"file"===this.tab)return;const e=async e=>{if(!e)return;const t=e.trim();if(["magnet",p["protocol"],p["shortProtocol"]].some((e=>t.startsWith(e+":")))){const e=t.startsWith("magnet")?t:await Object(u["a"])(t);if(!e||!e.startsWith("magnet"))return;this.tab="url",this.input=t}};Object(h["a"])().then(e).catch((()=>{console.log("cannot read clipboard")}))}const t=this.onMagnetCloseCallbacks.splice(0);t.forEach((e=>{"function"===typeof e&&e()})),this.input="",this.inputFile=null}}}}).call(this,a("eb72").Buffer)},af04:function(e,t,a){"use strict";a.d(t,"a",(function(){return l}));var n=a("7ca3"),o=a.n(n),i=(a("a1c1"),a("0c26"),a("f680")),r=a("1926"),s=a("d310");class l{static showRaw(e,t){i["a"].create({message:e,type:t,position:"bottom-right",timeout:5e3})}static show(e,t,a){const n="account_",o=n+e.replace(/ /g,"_"),s=r["b"].t(o,a);i["a"].create({message:s,type:t,position:"bottom-right",timeout:5e3})}static showPositive(e){this.show(e,"positive")}static showNegative(e){let t;e=e.replace("PreSignUp failed with error ",""),e=e.replace("CustomMessage failed with error ",""),e=e.replace("VerifyAuthChallengeResponse failed with error ",""),"."===e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),0===e.indexOf("Cognito received the following error from Amazon SES when attempting to send email:")?e="error_email_not_exists":["Member must satisfy regular expression pattern: [0-9]+","Member must have length greater than or equal to 6","Member must have length less than or equal to 6"].findIndex((t=>e.indexOf(t)>=0))>=0&&(e="error_mfa_token_mismatch"),e.indexOf("$recaptcha")>=0&&(e="Recaptcha Validation Failed"),"No user info"===e&&(e="Network Error"),"XhrError"===e&&(e="Network Error");const a="data::",n=e.lastIndexOf(a);if(n>=0){t=e.substring(n+a.length),e=e.substring(0,n).trim();try{t=JSON.parse(t)}catch{}}if("error_1_message_60_seconds"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+6e4-(new Date).getTime();t={delta:Math.min(Math.max(Math.ceil(e/1e3),1),60)}}else if("error_10_messages_per_day"===this.ERROR_EVENTS[e]){const e=new Date(t.time).getTime()+864e5;t={date:e}}const o=!Object.keys(this.ERROR_EVENTS).includes(e);if(o)this.showRaw(e,"negative",t);else{const a=this.ERROR_EVENTS[e];if("error_network"===a)return void c();this.show(a,"negative",t)}}}function c(){i["a"].create({icon:"wifi_tethering_error",multiLine:!0,message:r["b"].t("account_error_network"),type:"negative",position:"bottom-right",timeout:5e3,actions:[{noCaps:!0,label:r["b"].t("network_diagnotic"),color:"white",handler:()=>{s["Bus"].$emit("CALL_NETWORK_DIAGNOSTIC")}}]})}o()(l,"ERROR_EVENTS",{"Bad destination mailbox address":"email_invalid_address","Invalid domain":"email_invalid_domain","Other or undefined mailbox status":"email_unknown_status","Mailbox unavailable":"email_unavailable_address","Suppressed email address":"email_suppressed_address","Invalid code provided, please request a code again":"account_error_invalid_verification_code","Network error":"error_network","Network Error":"error_network","timeout of 0ms exceeded":"error_network","User does not exist":"error_user_not_exist","Incorrect username or password":"error_incorrect_username_or_password","Username/client id combination not found":"error_username_not_found","Cannot reset password for the user as there is no registered/verified email or phone_number":"error_can_not_reset_for_no_verified","Invalid verification code provided, please try again":"error_invalid_verification_code","Password did not conform with policy: Password not long enough":"error_password_not_long_enough","Attempt limit exceeded, please try after some time":"error_attempt_limit_exceeded","Invalid phone number format":"error_invalid_phone_number_format","User already exists":"error_username_already_exists","Incorrect password":"error_incorrect_password",you_need_to_accept_license_terms:"error_you_need_to_accept_license_terms",incorrect_original_password:"error_incorrect_original_password",unexpected_error:"error_unexpected",invitation_channel_required:"invitation_channel_required",invitation_no_code:"invitation_no_code",can_not_change_email:"error_can_not_change_email_before_phone_bound",can_not_change_phone:"error_can_not_change_phone_before_email_bound",not_supported_yet:"error_not_supported_yet",can_not_change_email_phone_with_mfa_enabled:"error_can_not_change_email_phone_with_mfa_enabled",error_same_email:"error_same_email",error_same_phone:"error_same_phone","the code is not an activated code":"error_inactive_code","the code has been used":"error_inactive_code","the code is non-existent":"error_non_existent_code","An account with the given email already exists":"error_email_already_exists","An account with the given phone number already exists":"error_phone_already_exists","Email or phone number is required":"error_email_or_phone_required",error_email_not_exists:"error_email_not_exists",LINKED_ACCOUNT:"error_can_not_link_to_the_linked_account",MISMATCHED_EMAIL:"error_can_not_link_to_the_mismatched_email",error_can_not_link_before_email_verified:"error_can_not_link_before_email_verified",error_can_not_change_email_before_unbound_social_account:"error_can_not_change_email_before_unbound_social_account","Invalid code or auth state for the user":"error_invalid_verification_code","Invalid session for the user, session is expired":"error_expired_verification_code","Invalid session for the user, session can only be used once":"error_expired_verification_code",error_recaptcha_not_loaded:"error_recaptcha_not_loaded","Only 1 message can be sent every 60 seconds":"error_1_message_60_seconds","Only 10 messages can be sent per day":"error_10_messages_per_day",sign_in_failed:"sign_in_failed","Recaptcha Validation Failed":"error_recaptcha_validation_failed","reCAPTCHA verification error":"error_recaptcha_validation_failed","Pending sign-in attempt already in progress":"error_sign_in_in_progress","Invalid code received for user":"error_mfa_token_mismatch","Code mismatch and fail enable Software Token MFA":"error_mfa_token_mismatch","Your software token has already been used once":"error_mfa_token_mismatch","Code mismatch":"error_mfa_token_mismatch",error_mfa_token_mismatch:"error_mfa_token_mismatch",error_can_not_enable_mfa:"error_can_not_enable_mfa","Password attempts exceeded":"error_password_attempts_exceeded"})},afe1:function(e,t,a){},b031:function(e,t,a){},b16a:function(e,t,a){"use strict";a("6ce4")},b1d8:function(e,t,a){"use strict";a("5984")},b2b4:function(e,t,a){"use strict";a("0742")},b34a:function(e,t,a){"use strict";(function(e){a("0c26"),a("de6c"),a("e39c");var n=a("212e"),o=a("229c"),i=a("d710"),r=a.n(i);a("36f2");function s(){var e;const{packageFormat:t,version:n}=i(),o=n.split("-").reduce(((e,t,a)=>({...e,[["version","channel"][a]]:t})),{});return{app_name:r.a.name,app_type:"website",app_env:"production",app_format:null!==t&&void 0!==t?t:"unknown",app_version:o.version,app_channel:null!==(e=o.channel)&&void 0!==e?e:"stable"};function i(){return a("ae46")}}async function l(){const e=await fetch("https://ipinfo.io/json?token=69cbd72732f325").then((e=>e.json())).catch((()=>null));if(!e)return!1;console.log("Analytics.location:",e);const t={country:e.country};await o["a"].updateEndpoint({location:t})}async function c(e){e.router.app.addOnAuthStateChangedListener((async t=>{"signedIn"===t&&await o["a"].updateEndpoint({userId:e.store.state.account.sub})}))}t["a"]=async(t,{app:a})=>{if(Object(n["a"])({eventHandlers:{"_userauth.sign_up":(e,t)=>{},"_userauth.sign_in":(e,t)=>{},"_userauth.sign_out":(e,t)=>{}}}),e&&e.env.TEST_EMAIL_DOMAIN||(document.cookie||"").split(";").map((e=>e.trim())).includes("TestEnv=true"))return void o["a"].configure({disabled:!0});const i=s();console.log("Analytics.app_data:",i),o["a"].configure({AWSPinpoint:{endpoint:{attributes:{...Object.entries(i).reduce(((e,[t,a])=>({...e,[t]:[a]})),{})},metrics:void 0}}}),await Promise.all([l(),c(a)])}}).call(this,a("28d0"))},b36a:function(e,t,a){},b36c:function(e){e.exports=JSON.parse('{"lib_index":"Lar","lib_edit":"Publicar","lib_publish":"Publicar","lib_explore":"Explorar","lib_following":"Seguindo","lib_favorite":"Favoritos locais","lib_local_favorites":"Favoritos locais","lib_channel":"Canal","lib_submit":"Enviar","lib_from_network":"Usando banco de dados descentralizado da rede","welcome_to_lib":"Bem-vindo à biblioteca de mídia ${displayName}","register_or_login":"Registrar/Entrar","lib_recommend":"recomendar","lib_recommend_desc":"Bem-vindo à Biblioteca ${displayName}! Esta biblioteca usa banco de dados descentralizado da rede. Para começar a usar, você precisa seguir alguns canais.","follow_any_channel_to_continue":"Siga qualquer canal para continuar","follow_channels_and_continue":"Siga os canais {0} e continue","show_more_for_me":"Mostrar mais para mim","no_more_recommend":"Não recomendo mais","key":"Chave","create_key":"Criar chave","save_key":"Salvar chave","save_key_file":"Deseja salvar sua chave como arquivo?","import_key":"Importar chave","import":"Importar","invalid_key":"Chave inválida","back_to_top":"De volta ao topo","search_for_channel":"Pesquisar ID do canal","search_channel_no_result":"Não foi possível encontrar o canal com ID {0}","please_input_channel_id":"Insira o ID do canal","welcome_help_text":"Esta é uma biblioteca de mídia descentralizada. Você precisa\\n para criar uma conta para este banco de dados. Vamos\\n gerar uma chave pessoal para você automaticamente.\\n Se você já possui uma chave, também pode importar\\n isso aqui.","welcome_key_text":"Depois de fazer login, clique no botão [SAVE KEY]\\n no canto inferior direito para salvar sua chave privada.\\n Se você perder sua chave, talvez não consiga fazer login novamente.","redirect_to_recommend":"Parece que você não seguiu nenhum canal. Redirecionando para a página [Explorar].","channel":"Canal","follow":"Seguir","unfollow":"Deixar de seguir","following":"Seguindo","share":"Compartilhar","unfollow_confirm":"Tem certeza que deseja deixar de seguir este canal? Todas as postagens deste canal em sua linha do tempo serão removidas.","follow_failed_hint":"A operação ainda está pendente em segundo plano. Se a operação não for aplicada por muito tempo, reinicie o aplicativo e tente novamente.","block":"Bloquear","unblock":"Desbloquear","blocked":"Bloqueado","block_channel":"Bloquear este canal","block_channel_confirm":"Bloquear canal irá removê-lo de sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","block_creator":"Bloquear o criador deste canal","unblock_creator":"Desbloquear o criador deste canal","block_creator_confirm":"O criador do bloco removerá todos os canais criados por este criador da sua linha do tempo. Você pode gerenciar sua lista de bloqueio na configuração da conta.","share_url_copied":"URL de compartilhamento é copiado para sua área de transferência","follow_time":"Siga o tempo","update_time":"Tempo de atualização","search":"Procurar","type":"Tipo","added":"Adicionado","click_to_task":"Clique para ir para a tarefa","lib_already_added":"Você já adicionou este vídeo","description":"Descrição","poster":"Poster","channel_poster":"Cartaz do canal","preview":"Visualização","creator":"O Criador","creator_detail":"Detalhes do criador","loading_creator":"Carregando informações do criador","wait_for_creator_loaded":"Aguarde o carregamento das informações do criador.","follower":"Seguidor","followers":"Seguidores","follower_list":"lista de seguidores","user":"Do utilizador","channel_title":"Título do canal","channel_id":"ID do canal","post_title":"Título da postagem","post_id":"ID da postagem","import_data_from_excel":"Importar dados do excel","set_excel_keys":"Definir chaves do Excel","excel_import_succeded":"A importação do Excel foi bem-sucedida","excel_import_success_msg":"Linhas {0} estão prontas para serem adicionadas, itens {1} inválidos e {2} duplicados são ignorados","cannot_find_channel":"Não foi possível encontrar o canal","cannot_find_posts":"Não é possível encontrar postagens","add_channel":"Adicionar canal","add_post":"Adicionar postagem","edit_channel":"Editar canal","channel_setting":"Configuração do canal","edit_post":"Editar post","edit_posts":"Editar postagens","channel_detail":"Detalhes do canal","remove":"Remover","remove_channel":"Remover canal","remove_channel_confirm":"Tem certeza que deseja remover esta postagem? Isso não pode ser recuperado.","remove_post":"Remover postagem","remove_post_confirm":"Tem certeza que deseja remover este canal? Isso não pode ser recuperado.","preview_mode":"Modo de pré-visualização","preview_mode_desc":"Esta é uma prévia do seu canal. Todas as taxas de filmes são mostradas aqui.","edit_user_profile":"Editar perfil de usuário","name":"Apelido","avatar":"avatar","no_following":"Nenhum canal a seguir. Clique para ir para","no_recommend":"Nenhum canal recomendado. Clique para ir para","first_recomment_msg":"Pode demorar um pouco se esta for a primeira vez que o aplicativo é iniciado.","invalid_image":"imagem inválida","image_not_reachable":"Este URL de imagem não está acessível.","channel_not_found":"Canal não encontrado","cannot_get_channel_info":"Não é possível obter informações do canal. Este canal pode ser removido por seu criador e não estar mais disponível.","validate_error":"Validar erro","validate_user_name_no_space":"O nome de usuário não deve conter espaços","validate_url_no_space":"URL não deve conter espaços","validate_user_name_length":"O nome de usuário deve ter comprimento entre {0} e {1}","validate_user_desc_length":"A descrição do usuário não deve ter mais de {0} caracteres","validate_user_avatar_url":"O avatar do usuário deve ser url com menos de 2048 caracteres","validate_channel_title_length":"O título do canal deve ter comprimento entre 1 e 100","validate_channel_desc_length":"A descrição do canal deve ter comprimento entre 10 e 300","validate_channel_image_url":"A visualização do canal deve ser um URL com menos de 2.048 caracteres","validate_post_title_length":"O título da postagem deve ter comprimento entre 1 e 100","validate_post_desc_length":"A descrição do post deve ter entre 10 e 300","validate_post_image_url":"O pôster deve ser url com menos de 2048 caracteres","validate_post_url":"URL ${displayName} inválido","validate_post_url_length":"${displayName} URL não deve ter mais de 2048 caracteres","film_rate":"taxa de filme","set_film_rate":"Definir taxa de filme","select_a_rate_before_enter":"Você precisa selecionar uma taxa de filme antes de entrar na biblioteca de mídia.","library_available_rate":"Taxa de filme disponível na biblioteca","rate_g":"G – Audiências Gerais","rate_g_desc":"Todas as idades admitidas. Nada que ofendesse os pais pela visualização pelos filhos.","rate_pg":"PG – Orientação Parental Sugerida","rate_pg_desc":"Parte do material pode não ser adequado para crianças. Os pais são instados a dar \\"orientação parental\\". Pode conter alguns materiais que os pais podem não gostar para seus filhos pequenos.","rate_pg_13":"PG-13 – Pais fortemente advertidos","rate_pg_13_desc":"Alguns materiais podem ser impróprios para crianças menores de 13 anos. Os pais devem ser cautelosos. Alguns materiais podem ser impróprios para pré-adolescentes.","rate_r":"R – Restrito","rate_r_desc":"Menores de 17 anos requerem acompanhamento dos pais ou responsável adulto. Contém algum material adulto. Os pais são convidados a aprender mais sobre o filme antes de levar seus filhos pequenos com eles.","rate_nc_17":"NC-17 – Apenas para adultos","rate_nc_17_desc":"Ninguém com 17 anos ou menos é admitido. Claramente adulto. Crianças não são admitidas.","set_as_private":"Definir como privado","hide_in_explore":"Ocultar este canal na página de exploração","hidden":"Escondido","select_a_rate":"Selecione uma taxa de filme","select_from_tasks":"Selecione entre as tarefas","import_from_magnet":"Importar do imã:?...","input_magnet_url":"Ímã de entrada:? url","task_title":"Título da tarefa","set_title":"Definir título","add_to_local_favorites":"Adicionar aos favoritos locais","remove_from_local_favorites":"Remover dos favoritos locais","removed_favorite":"Favorito removido","import_or_export_favorites":"Importar/Exportar Favoritos","export_local_favorites":"Exportar favoritos locais como backup","import_favorites_file":"Importar arquivo de favoritos","not_a_favorite_file":"Este arquivo não é um arquivo de backup favorito","connection_status":"Status da conexão","gun_server_list":"nós de cache","custom_nodes":"Nós de cache personalizados","custom_nodes_hint":"Os nós de cache personalizados serão aplicados após o reinício do aplicativo","wait_for_reboot":"Aguardando reinicialização...({seconds}s)","reboot_now":"Reinicie agora","reboot_later":"Reiniciar mais tarde","peer_list":"Nós Diretos","server":"URL do nó","peer":"Par","peer_id":"ID do nó","connection":"Conexão","data_source":"Fonte de dados","sync":"Sincronizar","syncing":"Sincronizando","sync_completed":"Sincronização concluída","got_all_post":"Você já tem todos os posts","placeholder_channel_title":"Nome do seu canal","placeholder_channel_desc":"Descrição sobre este canal","placeholder_post_title":"Nome do filme (ano)","placeholder_post_desc":"Descrição sobre este filme","private_channel":"canal privado","creator_blocked":"Criador bloqueado","go_to_library":"Ir para a biblioteca?","go_to_library_channel_msg":"Você quer ir para o canal da biblioteca {0}?","magnet_does_not_have_name":"Este ímã:? url não tem um nome, você precisa adicionar um título de postagem primeiro.","no_available_post":"Nenhuma postagem disponível","following_channel_no_post":"Todos os seus canais a seguir não têm postagem disponível. Isso pode ser causado por erro de rede. Se você já segue alguns canais, os posts podem ser carregados posteriormente.","share_to_library":"Compartilhar na biblioteca","quick_start":"Começo rápido","quick_start_desc":"Comece a criar uma postagem com uma tarefa ou arquivo","select_file":"Selecione o arquivo...","select_folder":"Selecione a pasta...","post_options":"opções de postagem","channel_options":"Opções de canal","create_new_channel":"Criar novo canal","use_existed_channel":"Usar canal existente","select_existed_channel":"Selecione o canal existente","uploaded_by":"{title} enviado por {name}","created_by":"{title} criado por {name}","creating_new_channel":"Criando novo canal...","created_new_channel":"Novo canal criado","creating_new_post":"Criando nova postagem...","created_new_post":"Nova postagem criada","create_new_post":"Criar nova postagem","quick_start_timeout":"{0} tempo limite. Isso pode ser causado por erro de rede. Por favor, tente novamente mais tarde.","file_too_large":"Arquivo muito grande","file_too_large_msg":"Este arquivo tem mais de 4 GB ({size}) e pode levar muito tempo para ser preparado. Tem certeza de que deseja continuar?","resolving_folder_files":"Resolvendo arquivos de pasta...","folder_too_large":"Pasta muito grande","folder_too_large_msg":"Os arquivos nesta pasta são maiores que 4 GB ({size} no total) e podem levar muito tempo para serem preparados. Tem certeza de que deseja fazer o upload?","creating_new_task":"Criando nova tarefa...","cannot_create_task":"Não é possível criar tarefa","cannot_create_task_msg":"Isso pode causar algum erro. Se a tarefa for criada corretamente, você poderá verificar a lista de tarefas posteriormente.","cannot_get_task_name":"Não é possível obter o nome da tarefa. Você precisa inserir um primeiro.","remove_old_task":"Remover tarefa antiga","remove_old_task_desc":"O modo Web só pode criar uma tarefa de cada vez. Deseja remover a tarefa antiga?","subtitle_list":"lista de legendas","optional":"opcional","with_subtitle":"Com {language} legendas","maximumSubtitleNum_limit":"O número de legendas atingiu o máximo","add_subtitle_url":"Adicionar link de download de legenda","cannot_add_subtitle":"Falha ao adicionar legendas","cannot_add_subtitle_msg":"Idioma da legenda não selecionado ou link de download inválido.","support_subtitle_type":"Apenas legendas nos formatos srt e vtt são suportadas.","recommend_opensubtitles":"Recomenda-se usar o link de download de legenda ou id em www.opensubtitles.org.","take_down":"Derrubar","serious_violation":"Violação Grave","copyright_disputes":"Disputas de direitos autorais","adults_only":"Somente Adultos","takedown_reason":"Motivo da remoção","takedown_mode":"Modo de remoção","admins":"Administradores","takedown_user":"Remover este criador","takedown_channel":"Remover este canal","takedown_post":"Remover esta postagem","select_takedown_reason":"Selecione o motivo da remoção","takedown_invalid_reason":"Motivo de remoção inválido","takedown_invalid_user_id":"ID de usuário inválido. O ID deve incluir 87 caracteres","takedown_invalid_channel_id":"ID de canal inválido. O ID deve incluir 20 caracteres","takedown_invalid_post_id":"ID de postagem inválido. O ID deve incluir 20 caracteres","takedown_management":"Gerenciamento de remoção","users":"Usuários","channels":"Canais","posts":"Postagens","you":"Você","preset":"predefinido","admin":"Administrador","committee":"Comitê","about_takedown_mode":"Sobre o modo de remoção:\\nPreset: Configurado no repositório github. Todos eles serão removidos da biblioteca.\\nAdmin: Qualquer um dos votos dos administradores será removido.\\nComitê: Pelo menos metade dos votos dos administradores serão removidos.","cannot_edit_preset":"Você não pode editar esta linha, pois é uma linha predefinida","cannot_edit_not_vote":"Você não pode editar esta linha porque não votou nela","remove_vote":"Remova seu voto","post_preload_failed":"Falha ao pré-carregar esta postagem. O link de download pode estar desatualizado, então esta postagem não pode ser reproduzida imediatamente.","about_cache_node":"Sobre o nó de cache","edit_cache_node":"Editar nó de cache","create_cache_node":"Criar nó de cache","about_cache_node_desc":"${displayName} usa o servidor de armas como nó de cache. Você pode editar nós personalizados na configuração avançada","learn_how_to_deploy_gun":"Aprenda como implantar seu próprio servidor de armas","repeat_add":"A tarefa foi adicionada, não a adicione novamente","upload":"Carregar","download":"Download","delete":"Excluir","delete_task":"Excluir tarefa","delete_confirm_message":"Excluir esta tarefa? Isso é irrevogável","also_delete_files":"Excluir também arquivos","default_delete_files":"Padrão excluir arquivos baixados após remover tarefa","not_now":"Agora não","delete_autoupload_confirm":"Esta tarefa contém o arquivo que você colocou no diretório de upload automático. Excluir esta tarefa também excluirá o arquivo.","delete_anyway":"Excluir mesmo assim","upload_too_many_files":"Carregar muitos arquivos","ask_if_unlimit_upload_amount":"O diretório de upload automático contém muitos arquivos. Deseja desativar a limitação da quantidade de upload? *Isso pode causar problemas de desempenho","disable_limitation":"Desativar limitação","not_length":"A operação de vários arquivos não é suportada no momento, por favor, coopere","download_torrent":"⇬ Fazer download do arquivo","upload_torrent":"Subir arquivo","files":"arquivos","file":"Arquivo","folder":"Pasta","start_all":"Iniciar tudo","pause_all":"Pausar tudo","remove_all":"Deletar tudo","upload_all":"Carregar tudo","clear_history":"Apagar o histórico","pause_all_finish_payments":"Isso finalizará todos os pagamentos.","accelerating":"acelerando","link_task":"Tarefa de link","torrent_task":"Tarefa de arquivo","ok":"OK","cancel":"Cancelar","download_directory_position":"Baixar posição do diretório","torrent_file":"arquivo de tarefa","magnetic_link_incorrect":"O formato do link está incorreto","delete_fail":"Excluir falha","pause":"Pausa","paused":"Pausado","stop_torrent":"Parar","seed":"Semente","resume":"Retomar","downloading":"Baixando","downloaded":"baixado","uploading":"Enviando","auto_uploading":"Carregamento automático","uploaded":"Carregado","pending":"Aguardando outras tarefas","verifying":"verificando","waiting_for_verify":"Esperando para verificar","seeding":"Semeando","completed":"Concluído","status":"Status","task_name":"Nome da tarefa","size":"Tamanho","progress":"Progresso","sort":"Organizar","ascending":"Ascendente","descending":"descendente","file_loading":"Carregando arquivo...","loading":"Carregando","unknown_status":"Desconhecido","play_while_downloading":"Jogar...","upload_or_play":"Carregar / Reproduzir","play":"Jogar","ask_if_upload_file":"Subir arquivo?","ask_if_upload_or_play":"Carregar ou reproduzir arquivo?","torrent_error":"Erro ao adicionar tarefa:","no_peers":"Tente novamente mais de {0} vezes e nenhum par está disponível","torrent_exists":"Tarefa já existe.","show_origin_torrent":"Obter arquivo de tarefa original ou url","show_directory":"Abra o diretório deste torrent","task_num":"Tarefas","total_upload_speed":"Velocidade de upload","total_download_speed":"Velocidade de download","path_missing":"Erro: não é possível encontrar o caminho do torrent","origin_not_found":"Não é possível encontrar as informações da tarefa de origem.","text_copied":"Magnum url é copiado para a área de transferência","copy_magnet_uri":"Copiar ímã:? URI","copy_download_uri":"Copiar URI de download","copy_share_uri":"Copiar URI de compartilhamento","uri_copied":"O URI foi copiado com sucesso para a área de transferência","uri_copy_failed":"Falha ao copiar uri","more":"Mais...","toggle_list_mode":"Alternar modo de lista","comment":"Comente","operations":"Operações","open_directory":"Diretório aberto","no_downloading_task":"Nenhuma tarefa de download","remove_all_downloading_tasks":"Remover todas as tarefas de download?","remove_all_upload_tasks":"Remover todas as tarefas de upload?","remove_autoupload_files":"Remover arquivos de upload automático","remove_all_history":"Remover todo o histórico?","remaining":"Restante","created_time":"hora criada","used_time":"Tempo usado","completed_time":"Tempo concluído","yesterday":"Ontem","before_yesterday":"{empty}","earlier":"Mais cedo","miss_file":"Alguns arquivos estão faltando","delete_miss_file_task":"Faltam arquivos fome em {0}.","common_peer":"Par comum","ab_peer":"${displayName} colega","ab_peer_verified":"Par verificado ${displayName}","ab_peer_available":"${displayName} pares disponíveis","alphabiz_accelerating":"${displayName} acelerando","income":"Renda","income_info":"Renda (hoje/total)","total_income_info":"Renda: {0}(hoje) / {1}(total)","login_to_see_income":"Faça login para ver as estatísticas de receita","credit_cost":"Custos de crédito","downloaded_by_payment":"Baixado por Pagamentos","file_not_found":"Não é possível encontrar este arquivo no local","no_task":"Não pergunte","no_matched_task":"Nenhuma tarefa correspondente","space_not_enough":"Espaço em disco insuficiente","need_more_space":"Precisa de {0} mais espaço, mas o disco atual tem {1} livre ({2} reservado). As tarefas são pausadas. O pré-carregamento da biblioteca está desativado. Você pode reativá-lo em [Configurações - Avançado].","seeders":"Semeadores","last_update":"Última atualização","connecting":"Conectando","connected":"Conectado","request_timed_out":"Solicitação expirou","connection_failed":"Falha na conexão","invalid_download_url":"URL de download inválido","download_link":"Link para Download","empty_files":"Nenhum arquivo no diretório","duplicate_task":"Duplicar tarefa","duplicate_tracker":"Rastreador duplicado","this_task_not_ready":"Esta tarefa não está pronta. Pausar esta tarefa irá removê-la diretamente.","some_task_not_ready":"Algumas tarefas não estão prontas. Pausar essas tarefas irá removê-las diretamente.","failed_to_delete_files":"Falha ao excluir arquivos","failed_to_delete_files_desc":"Falha ao excluir alguns arquivos da tarefa. Pode ser necessário excluí-los manualmente","unknown_error":"Erro desconhecido: {0}","more_files_are_not_shown":"({0} mais arquivos não são mostrados por motivos de desempenho)","no_available_file":"Nenhum arquivo disponível. Aguarde a tarefa pronta.","service_worker_error":"Não é possível carregar o ServiceWorker para reprodução. Seu navegador pode não oferecer suporte a esse recurso ou o ServiceWorker não está ativado. Pode ser necessário recarregar esta página e tentar novamente.","add_task_first":"Você precisa adicionar a tarefa primeiro.","player_task_time":"O jogador leva muitos segundos se preparando para o jogo. Pode haver algo errado com a tarefa.","web_mode_hint":"O modo web de ${displayName} suporta apenas pares WebRTC. Para uma melhor experiência, faça o download do aplicativo de desktop ${displayName}.","web_mode_task_hint":"Clique nos botões abaixo para adicionar uma tarefa. Você só pode adicionar uma tarefa por vez.","save_to_local":"Salvar no local","save_as_zip":"Salvar como ZIP","creating_save_file":"Criando arquivo de salvamento...","upload_as_one_directory":"Carregar como um diretório","upload_as_single_files":"Carregar como arquivos únicos","web_mode_upload_single":"Você só pode carregar um único arquivo no modo web","download_success":"Baixe com sucesso","download_fail":"Download falhou","wait_for_downloaded_to_share":"Aguarde a tarefa baixada antes de compartilhar.","download_with_cellular":"Baixar tarefas usando celular","download_with_cellular_desc":"Você está usando a rede celular. Tarefas de download com celular podem exigir taxas adicionais de sua operadora.","download_with_cellular_confirm":"Ainda baixa com celular","language":"Linguagem","appearance":"Aparência","darkModeSystem":"Sistema","darkModeLight":"Luz","darkModeDark":"Escuro","basic_setting":"básico","hideMenu":"Ocultar menu de aplicativos (somente Windows e Linux)","autoHide":"Ocultar Janela Automática","autoStart":"Abrir no login","restore":"Mantenha o tamanho e a posição da janela ao sair","autoStartUnfinished":"Retome automaticamente todas as tarefas inacabadas","default_download_path":"Caminho Padrão","download_directory":"Baixe o diretório","upload_directory":"Carregar Diretório","enable_auto_upload":"Ativar upload automático","unlimit_upload_amount":"Quantidade ilimitada de upload","unlimit_upload_warning":"Permitir upload de grande quantidade de arquivos. Isso pode causar problemas de desempenho","start":"Comece","transport_setting":"Transmissão","upload_limit":"Limite de upload","download_limit":"limite de download","payed_user_share_rate":"Taxa de compartilhamento de usuário pago","unlimited":"Ilimitado","limit_input_error":"O número limite deve ser positivo","BT_setting":"Configurações de tarefas","saveLinkSeed":"Salvar link como arquivo de tarefa","autoDownload":"Baixar link e conteúdo automaticamente","continuousSeeding":"Continue a semear até parar manualmente","seedSharingRate":"Proporção de sementes","seedTime":"Tempo de Semeadura (minutos)","task_manage":"Gerenciamento de Tarefas","maximumDownloadNum":"Máximo de tarefas ativas","maximumConnectionsNum":"Conexão máxima por servidor","range_error":"O intervalo deve estar entre {0} e {1}","random":"aleatório","breakpointContinuation":"Continuar","automaticSkip":"Mostrar download automaticamente após adicionar tarefa","afterNotification":"Notificação após a conclusão do download","deleteConfirm":"Nenhuma confirmação é necessária antes de excluir a tarefa","submit":"Salvar & Aplicar","discard":"Descartar","reset":"Reiniciar","reset_all_settings":"Redefinir todas as configurações?","preferences_resetted":"Preferências redefinidas","traditional_chinese":"chinês tradicional","japanese":"japonês","english":"Inglês","chinese":"Chinês simplificado","advancedSettings":"Avançado","autoUpdate":"Atualização automática","autoCheckUpdate":"Verifique automaticamente se há atualização","proxy":"Proxy","useProxyService":"Ativar proxy","trackerService":"Servidores Rastreadores","recommendUse":"Recomendado","autoUpdateTrackerServiceList":"Atualize a lista de rastreadores todos os dias automaticamente","manualUpdateTracker":"atualização manual","manualUpdateSuccess":"Atualizar servidores rastreadores com sucesso","manualUpdateFail":"Falha ao atualizar de:","listenPort":"Ouvir portas","BTlistenPort":"Porta de transmissão de dados","DHTlistenPort":"Porta Hash Distribuída","protocols":"Protocolos Compatíveis","setDefaultClientForFollowingProtocols":"Definir como o cliente padrão para os seguintes protocolos","magnetUrl":"Magnético","video_file":"Arquivo de vídeo","audio_file":"Arquivo de áudio","security":"Segurança","impersonateUserAgent":"Agente de usuário simulado","RPCauthorizationkey":"Segredo RPC","viewDocument":"Veja o Manual do Segredo RPC","developer":"Desenvolvedor","applicationLogPath":"caminho de registro do aplicativo","downloadSessionPath":"Baixar caminho da sessão","resetDownloadSessionRecord":"Redefinir sessão de download","restoreInitialSettings":"Restauração de fábrica","preferences_set_successfully":"Salve as preferências com sucesso!","preferences_set_fail":"Falha ao salvar preferências!","change_not_save":"Alterações não salvas","discard_all_changes":"Descartar todas as alterações e sair?","stay_in_page":"Fique na página","disk_usage":"Uso de disco","pause_if_less_space":"Pause e notifique se o espaço for menor que (MB)","default_video_player":"Player de vídeo padrão","video_cache_time":"Cache de reprodução de fluxo","minutes":"minutos","system_default":"Sistema padrão","media_player":"Reprodutor de mídia","library_film_rate":"Taxa de filme disponível","library_show_explore":"Mostrar página [Explorar]","library_setting":"Configuração da biblioteca","library_sync_setting":"Configuração de sincronização da biblioteca","keychain_sync_status":"Status de sincronização das chaves","sync_with_aws":"Sincronize as Chaves com o Amazon Web Services","backup_to_local":"Backup para arquivo local","enable_sync_with_aws":"Habilitar sincronização com AWS","disable_sync_with_aws":"Desabilitar sincronização com AWS","disable_sync_with_aws_desc":"Isso removerá a chave salva no servidor. Verifique se você já exportou sua chave.","input_independent_password":"Inserir senha independente","change_independent_password":"Alterar senha independente","password_error":"Erro de senha","password_invalid":"Senha inválida","key_existed":"A chave existia","key_not_found":"Chave não encontrada","library_recommend":"Biblioteca recomendada","show_all_channels":"Mostrar todos os canais na página de recomendação da biblioteca","not_logged_in":"Não logado","login_to_continue":"Entre para continuar","mnemonic_code":"código mnemônico","wordlist":"Lista de palavras","restore_code":"Restaurar do código","generate_code":"Gerar código","export_mnemonic_code":"Exportar código mnemônico","import_mnemonic_code":"Importar código mnemônico","print":"Imprimir","save_as_txt":"Salvar como txt","save_as_pdf":"Salvar como pdf","from_file":"De arquivo","not_valid_mnemonic_code":"Este não é um código mnemônico válido","cannot_parse_code_as_key":"Não é possível analisar este código mnemônico como chave de biblioteca","import_key_hint":"Tem certeza de importar esta chave? Isso recuperará sua chave antiga na biblioteca.","import_key_confirm":"Sim, importe.","library_preload":"Pré-carregar tarefas da biblioteca","show_preload":"Mostrar tarefas de pré-carregamento","set_download":"Definir diretório de download","set_download_desc":"Para a versão macOS App Store, o diretório de download padrão está na caixa de proteção do aplicativo e será excluído após a desinstalação do aplicativo. Se você deseja manter seus arquivos de download, precisa selecionar um diretório de download diferente manualmente.","home":"Lar","home_caption":"Download/Upload e Arquivos de Mídia","library":"Biblioteca","library_caption":"Explorar recursos de mídia","player":"Jogador","player_caption":"Reprodutor de mídia","credits":"Créditos","credits_caption":"Verificar saldo da conta","account":"Conta","account_caption":"Entrar/Inscrever-se/Gerenciamento","settings":"Configurações","settings_caption":"Configurações para App, Player, Conta","development":"Desenvolvimento","development_caption":"Modo de desenvolvedor para uso interno","basic":"básico","basic_caption":"Configurações básicas","advanced":"Avançado","advanced_caption":"Configurações avançadas","blockchain":"Carteira","blockchain_caption":"${displayName} Carteira Descentralizada","internal_notice":"Aviso de lançamento interno","release_notes":"Notas de lançamento","terms_and_conditions":"Termos e Condições","license_and_listen_notices":"Avisos de licença e escuta de código aberto","close":"Fechar","success":"Sucesso","fail":"Falhar","account_email_invalid_address":"Endereço de email invalido","account_email_invalid_domain":"Domínio de e-mail inválido","account_email_unknown_status":"Status de entrega de e-mail desconhecido","account_email_unavailable_address":"Endereço de e-mail indisponível","account_email_suppressed_address":"Endereço de e-mail suprimido","account_loading":"Carregando...","account_is_required":"é necessário","account_sign_in_your_account":"Entrar","account_username":"Nome de usuário","account_username_email_phone":"Número de telefone ou e-mail","account_password":"Senha","account_new_password":"Nova Senha","account_re_enter_password":"Digite novamente a senha","account_password_not_equal":"Duas senhas não são iguais","account_new_password_same":"A senha é a mesma que a senha original","account_forgot_your_password":"Esqueceu sua senha?","account_reset_password":"Redefinir senha","account_sign_in":"Entrar","account_signed_in":"Assinado","account_sign_up":"Inscrever-se","account_find_your_account":"Encontre Sua Conta","account_enter_your_username":"Digite seu número de telefone ou e-mail","account_search":"Procurar","account_email_sent_tip":"Um e-mail com um código de verificação foi enviado para o seu e-mail:","account_phone_sent_tip":"Um SMS com um código de verificação foi enviado para o seu telefone:","account_email_phone_sent_tip":"E-mail e SMS com código de verificação foram enviados para seu e-mail e telefone, respectivamente:","account_software_token_tip":"A MFA está habilitada para sua conta. Para concluir o login, ligue ou visualize seu dispositivo e digite o TOTP","account_reset_your_password":"Redefina sua senha","account_verification_code":"Código de verificação","account_resend_code":"Reenviar código","account_code_has_been_resent":"O código de verificação foi reenviado","account_password_has_been_reset":"A senha foi redefinida","account_submit":"Enviar","account_sign_up_your_account":"Inscreva sua conta","account_fill_required_fields":"Preencha os campos obrigatórios abaixo.","account_fill_optional_fields":"Preencha os campos opcionais abaixo.","account_email":"E-mail","account_invitation":"Convite","account_invitation_code":"Código de Convite","account_i_accept":"aceito","account_license_terms":"a licença e os termos","account_next":"Próximo","account_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro.","account_verify_fill_optional_fields":"Verifique e preencha os campos opcionais.","account_nickname":"Apelido","account_gender":"Gênero","account_male":"Macho","account_female":"Fêmea","account_not_say":"Não diga","account_birthday":"Aniversário","account_phone_number":"Número de telefone","account_locale":"Local","account_tip_verified":"Verificado, fazendo login...","account_verified":"verificado","account_unverified":"não verificado","account_signed_up":"inscreveu-se","account_verify_your_identity":"Verifique sua identidade","account_finish":"Terminar","account_signed_out":"Assinado","account_change_password":"Alterar a senha","account_change_email":"Mude o e-mail","account_change_phone_number":"Alterar número de telefone","account_sign_out":"sair","account_current_password":"Senha atual","account_re_enter_new_password":"Re-introduza a nova palavra-passe","account_personal_information":"Informação","account_edit":"editar","account_reset":"reiniciar","account_greeting":"Olá,","account_cancel":"Cancelar","account_change":"mudar","account_not_set":"não configurado","account_setting":"contexto","account_copy_code":"copie o código","account_account_setting":"Conta","account_task_page":"tarefa de crédito","account_setting_caption":"Alterar senha / Editar informações","account_security":"Segurança","account_want_to_join":"Quer se juntar?","account_sign_in_now":"Entrar","account_changed":"Mudado","account_clipboard_with_invitation_code":"Código de convite copiado","account_clipboard_with_code":"O código copiado","account_invitation_code_dialog_tip":"Você enviará ao seu amigo um e-mail ou mensagem de texto com um código de convite:","account_available":"disponível","account_invited":"convidamos","account_used":"usado","account_invitation_code_sent":"O código de convite foi enviado","account_invitation_channel_required":"Preencha pelo menos um canal de convite","account_no_verification_code":"Não pode receber o código de verificação?","account_no_phone_number":"Sem número de telefone?","account_sign_up_by_email":"Inscreva-se por e-mail","account_no_email":"No email? ","account_sign_up_by_phone_number":"Inscreva-se pelo número de telefone","account_no_totp":"No TOTP? ","account_tip_no_totp":"Se não houver TOTP, configure o TOTP primeiro","account_setup_totp":"Configurar TOTP","account_contact_information":"Informações de contato","account_delete_account":"Deletar conta","account_deleted":"Excluído","account_can_not_mfa":"MFA em apuros?","account_set_mfa_type":"Configurar MFA","account_disable_mfa":"Desativar MFA","account_disabled_mfa":"MFA desativado","account_sms_mfa":"SMS MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Não recomendado","account_oauth_sign_in_with":"Entrar com {provider}","account_sign_in_failed":"Falha ao fazer login","account_tip_oath_sign_up":"O e-mail correspondente à conta {provider} atual: {email} ainda não criou uma conta","account_tip_confirm_delete_account":"Digite a senha da conta atual para confirmar que deseja excluir a conta atual. (As contas excluídas não podem ser restauradas)","account_tip_config_mfa":"Você pode optar por usar SMS ou senha única baseada em tempo (TOTP) como autenticação secundária","account_error_can_not_enable_mfa":"Você deve vincular seu endereço de e-mail e número de celular para habilitar o MFA","account_tip_can_not_enable_sms_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o SMS MFA","account_tip_can_not_enable_totp_mfa":"Você deve vincular seu endereço de e-mail e número de celular para ativar o TOTP MFA","account_tip_setup_totp":"Use aplicativos como o Authenticator para digitalizar o código QR abaixo ou copie o código manualmente para adicionar um token de segurança","account_tip_verify_totp":"Verifique seu TOTP","account_link_your_social_account":"Vincule sua conta social","account_unlink_your_social_account":"Desvincular conta social","account_tip_confirm_link":"Tem certeza de que deseja vincular a conta atual à sua conta {provider}?","account_tip_confirm_unlink":"Tem certeza de que deseja cancelar sua conta vinculada {provider}?","account_tip_linking":"vinculativo...","account_tip_unlinking":"Desvinculando...","account_linked":"Vinculado","account_unlinked":"Não consolidado","account_error_can_not_link_to_the_linked_account":"A conta social atual está vinculada a outra conta","account_error_can_not_link_to_the_mismatched_email":"A conta atual e o endereço de e-mail da conta social são inconsistentes","account_error_can_not_link_before_email_verified":"A conta social não pode ser vinculada porque a conta atual não está vinculada a um e-mail verificado","account_tip_confirm_verify_email_phone":"Deseja enviar um código de verificação para o e-mail e número de telefone da conta atual para verificar sua identidade?","account_tip_confirm_verify_phone":"Quer enviar um código de verificação para o número de telefone atual para verificar sua identidade?","account_error_1_message_60_seconds":"Apenas um SMS ou e-mail pode ser enviado a cada 60 segundos, aguarde mais {delta} segundos","account_error_10_messages_per_day":"Cada celular ou e-mail só pode enviar 10 mensagens em 24 horas","account_error_network":"Há um problema com a rede, tente novamente mais tarde","Network Error":"Há um problema com a rede, tente novamente mais tarde","account_error_user_not_exist":"Usuário não existe","account_error_incorrect_username_or_password":"Usuário ou senha incorretos","account_error_incorrect_original_password":"Senha original incorreta","account_error_incorrect_password":"Senha incorreta","account_error_username_not_found":"Nome de usuário não encontrado","account_error_can_not_reset_for_no_verified":"Não é possível redefinir a senha da conta não verificada","account_error_invalid_verification_code":"Código de verificação incorreto, tente novamente","account_error_expired_verification_code":"O código de verificação expirou, tente novamente","account_error_password_not_long_enough":"A senha não é longa o suficiente","account_error_attempt_limit_exceeded":"Limite de tentativas excedido, tente após algum tempo.","account_error_password_attempts_exceeded":"Tentativas de senha excedidas.","account_error_invalid_phone_number_format":"Formato de número de telefone inválido","account_error_no_cell_phone_prefix":"Por favor, selecione o prefixo para o número de telefone","account_error_username_already_exists":"O nome de usuário já existe","account_error_you_need_to_accept_license_terms":"Você precisa aceitar a licença e os termos primeiro","account_error_inactive_code":"O código de convite não é um código ativado","account_error_non_existent_code":"O código de convite é inexistente","account_error_unexpected":"Erro inesperado","account_error_can_not_change_email_before_phone_bound":"O e-mail não pode ser alterado antes que o número de telefone seja vinculado","account_error_can_not_change_email_before_unbound_social_account":"O e-mail não pode ser alterado antes de desvincular a conta social","account_error_can_not_change_phone_before_email_bound":"O número de telefone não pode ser alterado antes que o e-mail seja vinculado","account_error_can_not_change_email_phone_with_mfa_enabled":"Não é possível alterar o e-mail ou o número do celular antes de desativar o MFA","account_error_not_supported_yet":"Não é suportado de momento","account_error_same_email":"O novo endereço de e-mail não pode ser igual ao endereço de e-mail original","account_error_same_phone":"O novo número de telefone não pode ser igual ao número de telefone original","account_error_email_not_exists":"O endereço de e-mail não existe","account_error_email_already_exists":"Já existe uma conta com o e-mail fornecido.","account_error_phone_already_exists":"Já existe uma conta com o número de telefone fornecido.","account_error_mfa_token_mismatch":"Incompatibilidade de código de token de software","account_error_recaptcha_not_loaded":"Há um problema com a rede. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_recaptcha_validation_failed":"Falha na validação do ReCAPTCHA. Reconecte a rede e reinicie o aplicativo para tentar novamente.","account_error_sign_in_in_progress":"Tentativa de login pendente já em andamento","account_field_range":"Limite de entrada de {0}-{1} caracteres","account_field_only_alphanumeric":"Suporta apenas alfanumérico","account_field_only_alphanumeric_and_symbol":"Suporta apenas alfanuméricos e símbolos","account_field_only_chinese_alphanumeric_space_underline":"Suporta apenas alfanumérico, espaço, sublinhado","account_field_prefix_without_number_space":"O primeiro caractere não pode ser um número ou um espaço","account_field_suffix_without_space":"Não pode terminar com um espaço","account_field_without_repeat_space":"Não é possível usar vários espaços seguidos","account_field_can_not_only_alphanumeric":"Você não pode usar apenas letras ou números","account_field_must_have_number_characters":"Deve ter caracteres numéricos","account_field_verification_code":"O código de verificação deve ter seis dígitos","account_field_invitation_code":"O código do convite deve ser alfanumérico","account_field_phone_number":"Formato de número de telefone inválido","account_invalid_email_format":"Formato de email inválido","account_sign_out_confirm":"Tem certeza que deseja sair? Isso interromperá todas as tarefas.","account_sign_out_anyway":"Sair mesmo assim","account_signing_out":"Saindo...","account_request_save_settings":"As configurações não são salvas. Você precisa salvar as alterações antes de sair.","pay":"Pagar","pay_with_credit":"Pague pela aceleração de download. Precisa de cerca de {0} de crédito","pay_with_credit_payed":"Acelerando. Ainda precisa de cerca de {0} de crédito","create_payment":"Criar Pagamento","pay_target":"Alvo","pay_for_torrent":"Pague por {0}","your_subid":"Seu subID","your_credits":"seus créditos","pay_point_for_data":"Pague {0} pontos por {1} dados","auto_renew":"Ativar renovação automática","transaction_details":"Detalhes da transação","transaction_id":"Eu ia","transaction_payer":"Pagador","transaction_payee":"Beneficiário","transaction_category":"Categoria","transaction_changed_amount":"Valor alterado","transaction_meta":"meta","transaction_status":"Status","transaction_creation_time":"Tempo de criação","receipt_code":"Código de Recibo","transfer_amount":"Valor da transferência","code_the_receipt_code":"Copie o código do recibo abaixo para o pagador","fill_the_receipt_code":"Transferência preenchendo o código de pagamento fornecido pelo beneficiário","expense":"Despesa","copied":"copiado","transfer":"Transferir","receive":"Receber","copy":"cópia de","withdraw_fund":"Retirar fundos","category_paydata_payer":"Custo dos dados","category_paydata_payee":"Renda de dados","category_transfer":"Transferir","category_bonus":"Bônus","category_recharge":"Recarrega","status_pending":"pendente","status_completed":"concluído","status_finish":"terminar","status_failed":"fracassado","tip_invalid_receiver":"Código de receptor inválido","tip_invalid_amount":"O valor do crédito deve ser flutuante no intervalo de 0 a 1.000 (a precisão mínima é de 0,001)","credit_get_more":"Obtenha mais créditos","credit_no_data":"Nenhum dado disponível","credit_loading":"Carregando...","credit_not_enough_amount":"Não há créditos suficientes","credit_amount_not_enough":"Não há créditos suficientes","credit_payee_not_exist":"Beneficiário não existe","credit_invalid_amount":"Valor de crédito inválido","credit_can_not_transfer_to_yourself":"Não pode transferir para si mesmo","credit_latest":"Mais recente","credit_error_network":"Há um problema com a rede, tente novamente mais tarde","add_subtitles":"Adicionar legendas","open_file":"Abrir arquivo...","advanced_options":"Opções avançadas","title":"Título","location":"localização","subtitle_file":"arquivo de legenda","unsupported_subtitle_type":"O tipo de arquivo {0} não é um tipo de legenda compatível","not_default_player":"O reprodutor de vídeo padrão não está definido","this_is_an_audio_file":"Este é um arquivo de áudio","the_added_subtitle_already_exists":"A legenda adicionada já existe","stop_stream_player":"A mídia de streaming foi encerrada porque a tarefa foi pausada ou excluída","stop_player":"O player foi encerrado porque o arquivo foi excluído","playing_timeout_hint":"Tempos de espera esgotados. Por favor, verifique a tarefa","autoplay_hint":"A reprodução automática pode ser bloqueada pelo seu navegador. Se o player não estiver jogando, tente clicar na tela para continuar","remove_playing_confirm":"{0} ainda está jogando, removê-lo irá parar o jogador. Tem certeza de removê-lo?","unsupported_in_browser":"Ainda não suportado no modo de navegador","client":"Cliente","warning":"Aviso","enable":"Habilitar","disable":"Desativar","auto":"Auto","encrypt_connection":"Criptografar conexão","encrypted_connection":"Conexão criptografada","non_encrypted_connection":"Conexão não criptografada","connected_wires_not_disconnect":"Os fios conectados não serão desconectados","audio":"áudio","video":"vídeo","image":"imagem","subtitle":"legenda","zip":"fecho eclair","text":"texto","unknown":"desconhecido","add":"Adicionar","undo":"Desfazer","backup":"Cópia de segurança","not_default_app":"${displayName} não é seu aplicativo padrão para torrent e mídia, deseja definir como padrão?","dont_show_again":"Não mostrar novamente","go_to_settings":"Vá para as configurações","about_alphabiz":"Cerca de ${displayName}","last_check_at":"última verificação em","update_channel":"Atualizar canal","check_for_update":"Verifique atualizações","checking_for_update":"Verificando atualização...","no_update_available":"Nenhuma atualização disponível","update_available":"Atualização disponível","update_now":"Atualizar agora","update_later":"Atualizar mais tarde","click_to_update":"Clique no botão ATUALIZAR AGORA para baixar e atualizar","update_failed":"Atualização falhou","update_failed_message":"Ocorreu um erro durante a atualização:","check_shasum_failed":"Falha ao verificar a integridade do instalador","downloading_update":"Download da atualização...","ready_to_update":"Pronto para atualizar","restart_to_update":"A atualização foi baixada. ${displayName} sairá para atualizar por alguns instantes.","already_latest":"A versão atual ({0}) já é a mais recente","update_timeout":"Atualizar tempo limite","no_available_release":"Nenhuma versão disponível","no_available_installer":"Nenhum instalador disponível","feedback":"Opinião","select_a_type":"Selecione um tipo","category":"Categoria","select_a_category":"Selecione uma categoria","require_title":"O título é obrigatório","describe_your_problem":"Descreva seu problema","report_a_bug":"Reportar um erro","request_a_new_feature":"Solicitar um novo recurso","download_or_upload":"Baixar/Carregar","others":"Outros","submit_with_system_info":"Enviar com informações do sistema","submit_feedback":"Enviar feedback","tweet_us":"Tweet nós","tweet_too_long":"O tweet é muito longo","delete_characters":"Exclua pelo menos {0} caractere(s)","rest_characters":"Você pode inserir {0} mais personagem(s)","update_alphabiz":"Atualização ${displayName}","current_version":"Versão Atual","cancel_update":"Cancelar atualização","slow_download_speed":"Download muito lento","slow_download_speed_caption":"O download do instalador está muito lento agora. Verifique o status da rede","update_canceled":"Atualização cancelada","current_version_release_time":"Hora de lançamento da versão atual","expired_app":"${displayName} Expirado","version_out_of_date":"Versão desatualizada","have_to_update":"A versão de ${displayName} está desatualizada. Alguns protocolos ou APIs são obsoletos. Você tem que atualizar ${displayName} antes de continuar.","exit_alphabiz":"Sair ${displayName}","exit_and_update":"Sair e aplicar atualização","new_version_hint":"Nova versão está disponível","no_new_version":"Nenhuma nova versão disponível","current_is_latest":"A versão atual já é a mais recente","click_to_check_update":"Clique no botão [CHECK FOR UPDATE] para verificar a atualização","download_latest_version_from_website":"Por favor, visite o site oficial para baixar a versão mais recente","to_the_website":"para o site","network_diagnotic":"Diagnóstico de rede","diagnotic":"Diagnóstico","click_to_check":"Clique para conferir","click_to_check_again":"Clique para verificar novamente","checking":"verificando","online":"On-line","offline":"desligada","dns_look_up":"Pesquisa de DNS","error":"Erro","aws_service":"Serviço AWS","network_pings":"Ping de rede","not_found":"Não encontrado","packet_loss":"Perda de pacote(s)","official_site":"Site oficial","download_test":"teste de download","test_task":"Tarefa de teste {0}","download_failed":"Download falhou","second_spend":"{0} gastos","open_default_player_failed":"Falha ao abrir o player padrão","copied_to_clipboard":"Copiado para a área de transferência","go_to":"Vá para","region_not_available":"Região não disponível","region_not_available_message":"Desculpe! Sua região não está disponível para usar este aplicativo. Este aplicativo será encerrado após {0} segundos","confirm":"confirme","no_available_result":"Nenhum resultado disponível","invalid_password_format":"formato de senha inválido","invalid_password_format_same":"A senha é a mesma que a senha original","error_password":"Erro de senha","keychain_setting":"Chaveiro","setting_description":"Armazenamento em nuvem: salve dados importantes na nuvem.\\nAlterar senha: Altere a senha da chave da biblioteca de mídia.\\nMnemônico: um método alternativo para gerar e restaurar chaves.\\nImportar chave local: importe a chave salva localmente para a biblioteca de mídia.\\nChave de exportação: salva os dados da biblioteca de mídia atual no local ou na nuvem.\\nChave de backup para nuvem: atualize os dados da biblioteca de mídia atual para a nuvem para backup.","refresh_status":"Atualizar o status","confirm_import_key":"Confirmar chave de importação","confirm_update_cloud_key":"Você já tem uma chave na nuvem. A atualização da chave substituirá a chave original. Tem certeza de que deseja atualizar a chave armazenada na nuvem","export_key_with_cloud":"Digite a senha independente que você definiu para exportar a chave da biblioteca armazenada na nuvem e bloqueie o arquivo de chave pela senha de desbloqueio","store_cloud_key_prompt_password":"Digite uma senha independente para armazenar a chave da biblioteca na nuvem","update_cloud_key_prompt_password":"Defina uma senha independente para criptografar a chave da biblioteca e atualize-a na nuvem","enable_cloud_storage_prompt_password":"Defina uma senha para a chave armazenada na nuvem, por meio da qual você pode recuperar a chave da nuvem","input_unlock_password":"Definir senha de desbloqueio","export_local_prompt_password":"Defina uma senha de desbloqueio para criptografar seu arquivo de chave. Não salvaremos essa senha para você, portanto, se você perder sua senha, não poderá desbloquear a chave da biblioteca","require_unlock_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","require_independent_password":"Digite a senha independente para obter a chave armazenada na nuvem","import_local_prompt_password":"O arquivo de chave está bloqueado, digite a senha de desbloqueio","select_encrypt_mode":"Selecione o modo de criptografia","update_cloud_key":"Atualize a chave armazenada na nuvem","backup_to_cloud":"Faça backup da chave da biblioteca na nuvem","save_local":"Salve a chave da biblioteca como arquivo criptografado local","create_new_key":"Criar uma nova chave de biblioteca","creating_lib_key":"Criando chave de biblioteca...","loading_lib_key":"Carregando chave da biblioteca...","failed_to_create_lib_key":"Falha ao criar a chave da biblioteca","failed_to_load_lib_key":"Falha ao carregar a chave da biblioteca","import_local_key":"Importar chave localmente","import_lib_key_from_local":"Importar uma chave de biblioteca localmente","import_from_cloud":"Importe a chave da biblioteca da nuvem","create_or_import_key":"Criar ou importar chave de biblioteca","create_or_import_key_desc":"A chave da biblioteca é uma chave independente usada para buscar e publicar conteúdo com banco de dados descentralizado.","store_your_lib_key":"Armazene sua chave de biblioteca","export_cloud_key":"Exportar chave da nuvem","export_current_key":"Exportar Chave Atual","change_password":"Alterar a senha","enable_cloud_storage":"Ativar armazenamento em nuvem","disable_cloud_storage":"Desative o armazenamento em nuvem","disable_cloud_storage_desc":"Desativar o armazenamento em nuvem removerá a chave salva na nuvem, certifique-se de que a chave seja salva localmente","sync_at":"Sincronizar em: {time}","cloud_storage_enabled":"Sincronize as Chaves com {storage}","cloud_storage_disabled":"Armazenamento em nuvem desativado","saved_locally":"Salvo localmente","export_key":"Exportar arquivo de chave","cloud_independent_password":"Senha independente da nuvem","key_file_unlock_password":"Senha de desbloqueio do arquivo de chave","re_enter_unlock_password":"Digite novamente a senha de desbloqueio","independent_password_not_enabled":"A senha atual é a senha da conta Alphabiz (nenhuma senha independente é definida)","use_cognito_hash":"Use a senha da conta Alphabiz","use_independent_password":"Usar senha independente","keychain_lib":"chave da biblioteca","loading_keychain_state":"Carregando chaveiro...","backing_up":"Fazendo backup...","backup_current_key":"Faça backup da chave atual na nuvem","cloud_lib_key_not_existed":"a chave da biblioteca não existe na nuvem","open_keychain_file":"Abrir arquivo de chaveiro","confirm_open_abk":"Deseja abrir o arquivo ABK","use_the_key":"Use a chave","backup_the_key":"Faça backup da chave na nuvem","keychain_data_does_not_exist":"Os dados das chaves não existem","timeout of 0ms exceeded":"Há um problema com a rede, tente novamente mais tarde","XhrError":"Há um problema com a rede, tente novamente mais tarde","payer credit amount is not enough":"Não há créditos suficientes","payee does not exist":"Beneficiário não existe","block_list_manage":"lista de bloqueio gerenciar","blocked_users":"Usuários bloqueados","blocked_channels":"canais bloqueados","unblock_user":"Desbloquear usuário","unblock_channel":"Desbloquear canal","no_blocked_user":"Nenhum usuário bloqueado","no_blocked_channel":"Nenhum canal bloqueado","field_required":"{0} é obrigatório","setting":"Contexto","unknown_media":"Mídia Desconhecida","settings_button_visible":"Botão Visível","settings_setting":"Contexto","settings_playback_rate":"Taxa de reprodução","settings_subtitle":"Legenda","settings_pip":"PiP","settings_fullscreen":"Tela cheia","settings_subtitle_options":"Opções de legenda","settings_normal":"Normal","settings_italic":"itálico","settings_lighter":"Isqueiro","settings_bolder":"mais ousado","settings_small":"Pequeno","settings_large":"Grande","about":"Sobre","services":"Serviços","hide":"Esconder","hide_others":"Ocultar outros","show_all":"Mostre tudo","quit":"Desistir","edit":"Editar","redo":"refazer","cut":"Corte","paste":"Colar","select_all":"Selecionar tudo","view":"Visualizar","reload":"recarregar","toggle_full_screen":"Alternar para o modo tela cheia","toggle_developer_tools":"Alternar ferramentas do desenvolvedor","window":"Janela","minimize":"Minimizar","bring_all_to_front":"Traga tudo para a frente","help":"Ajuda","github_repo":"Repositório do Github","issues":"Problemas","learn_more":"Saber mais","learn_spelling":"Aprenda ortografia","lookup_selection":"Procure \\"{selection}\\"","search_with_google":"Pesquise com o Google","save_as":"Salvar como","save_image":"Salvar imagem","save_image_as":"Salvar imagem como ...","copy_link":"Link de cópia","save_link_as":"Salvar link como ...","copy_image":"Copiar imagem","copy_image_as":"Copiar imagem como...","copy_image_address":"Copiar endereço da imagem","download_complete":"Download completo","download_complete_message":"{0} foi baixado","is_running":"{0} está em execução","open":"Aberto {0}","launch_problem":"problema de inicialização","ask_clear_data":"Parece que você está tentando iniciar {0}, mas falhou várias vezes.\\nDeseja limpar todos os dados do aplicativo e tentar iniciar mais tarde?","launch_directly":"Iniciar diretamente","clear_all_data":"Limpar todos os dados","ask_clear_confirm":"Isso removerá todas as configurações, logs e dados do usuário!\\nDepois disso, talvez seja necessário iniciar {0} novamente.\\nTem certeza que deseja limpar os dados?","confirm_launch":"Não, lance diretamente","confirm_clear":"Sim, limpe todos os dados"}')},b37d:function(e,t,a){var n,o;a("de6c"),a("7996");class i{constructor(e,t,{first:a,last:n,odd:o,even:i}={}){this.name=e,this.style=t,this.first=null!==a&&void 0!==a?a:{},this.last=null!==n&&void 0!==n?n:{},this.odd=null!==o&&void 0!==o?o:{},this.even=null!==i&&void 0!==i?i:{}}withTagStyle(e){const t=e.map(((t,a)=>{const n={};return Object.assign(n,this.style,(a+1)%2===0?this.even:this.odd,0===a?this.first:{},a===e.length-1?this.last:{}),Object.entries(n).map((e=>e.join(": "))).join("; ")}));return[e.map((e=>`%c${e}`)).join(""),t]}}const r=Object.entries({neutral:[["rgb(146,146,146)","white"],["rgb(207,207,207)","black"]],red:[["rgb(232,126,126)","black"],["rgb(255,194,194)","black"]],orange:[["rgb(255,175,118)","black"],["rgb(255,215,196)","black"]],green:[["rgb(87,168,102)","white"],["rgb(200,246,213)","black"]],purple:[["rgb(125,114,253)","white"],["rgb(200,184,255)","black"]],blue:[["rgb(57,145,208)","white"],["rgb(184,215,255)","black"]],yellow:[["rgb(238,194,62)","black"],["rgb(255,238,158)","black"]],black:[["rgb(60,60,60)","white"],["rgb(90,90,90)","white"]]}).reduce(((e,[t,a])=>({...e,[t]:new i(t,{padding:"2px 6px","font-size":"0.7rem"},{odd:{background:a[0][0],color:a[0][1]},even:{background:a[1][0],color:a[1][1]},first:{"padding-left":"10px","border-top-left-radius":"8px","border-bottom-left-radius":"8px"},last:{"padding-right":"10px","border-top-right-radius":"8px","border-bottom-right-radius":"8px","margin-right":"4px"}})})),{});function s(e,t){const a=["log","warn","error","debug","group"],n=new Proxy(e,{get(e,o,i){if("context"===o)return t;if("tag"===o)return l(n,r.neutral);if(a.includes(o)){let e="";const a=[];t.tag_params.forEach((({name:t,tags:n})=>{const o=r[t].withTagStyle(n);e+=o[0],a.push(...o[1])}));const n=Reflect.get(console,o,i);return(...t)=>n(e,...a,...t)}return Reflect.get(e,o,i)}});return n}function l(e,t){const a=function(...a){const n=e!==console?e.context:{message:"",styles:[],tag_params:[]};return n.tag_params.push({name:t.name,tags:a}),s(e,n)};return Object.defineProperties(a,Object.keys(r).reduce(((t,a)=>({...t,[a]:{get(){return l(e,r[a])}}})),{})),a}null!==(o=(n=console).tag)&&void 0!==o||(n.tag=l(console,r.neutral))},b389:function(e,t,a){"use strict";a("a75f")},b3f7:function(e,t,a){(function(t){const n="Alphabiz",o={name:n,displayName:n,fileName:n,appId:"com.zeeis.alphabiz",snapName:n.toLowerCase(),author:`${n} Team `,developer:`${n} Team`,appIdentifier:"org.zeeis.alphabiz",description:`${n} Blockchain Cryptocurrency Application`,appxPackageIdentityName:n,publisher:"CN=zeeis",publisherDisplayName:`${n} Team`,homepage:"https://alpha.biz",webEditionUrl:"https://web.alpha.biz",upgradeCode:"4d8a65aa-fc5b-421c-94ab-cb722ef737e2",protocol:n.toLowerCase(),shortProtocol:"ab",versionsUrl:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/versions.json",twitterAccount:"@alphabiz_app",register:{mode:"none",list:[]},library:{recommends:{default:["fxpebrsi9ij5pzinwdky","cut44dbbfxjpqka39qix"],"zh-CN":["vs52l0yqtqqpqtw33ycx","cut44dbbfxjpqka39qix"]}},update:a("a51a"),takedown:a("41c7"),theme:{color:{primary:"#d1994b",secondary:"#f3ce90",accent:"#fbbb4a"},cornerLogoStyle:{left:"-72px",top:"-92px",height:"245px"}},dynamicConfig:a("937c"),microsoftStoreProductId:"9PBCCV3MHK04",communities:[{enable:!0,url:"https://github.com/tanshuai/alphabiz",icon:"https://github.githubassets.com/favicons/favicon.svg"}],externalI18n:"https://raw.githubusercontent.com/tanshuai/alphabiz/main/i18n"};console.log("INIT APP CONFIG"),t._app_config_=o,t.LIBDB_NAME=o.name,e.exports=o,a("81e0")(o)}).call(this,a("0ee4"))},b4bc:function(e,t,a){},b65b:function(e,t,a){"use strict";(function(e){var n=a("076e"),o=a("bdb1");t["a"]={name:"ABOAuthEntry",i18n:n["a"],data(){let e={Github:{name:"Github",icon:"fab fa-github"},Twitter:{name:"Twitter",icon:"fab fa-twitter"}};return{hide:!1,loadingState:null,providers:e}},computed:{providersEnabled(){return Object.keys(this.providers).filter((e=>this.d$cfg.oauth.providers.includes(e))).reduce(((e,t)=>({...e,[t]:this.providers[t]})),{})}},methods:{async handleClick(e){try{this.loadingState=e.name,await o["a"].login.call(this,e.name)}finally{this.loadingState=null}}}}}).call(this,a("28d0"))},b71d:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"show",rawName:"v-show",value:e.show,expression:"show"}],staticClass:"global-recommend-page"},[a("LibraryRecommend",{attrs:{fullscreen:""}})],1)},o=[],i=a("5584"),r=a("36a1"),s=a("36a5"),l={name:"GlobalRecommend",components:{LibraryRecommend:s["a"]},data(){return{selected:[]}},computed:{show(){const e="signedIn"===i["a"].state.account.authState;return!!e&&(!!r["a"].isLoggedIn&&r["a"].isFirstRegister)}},methods:{},mounted(){}},c=l,d=(a("3669"),a("2b5f")),u=Object(d["a"])(c,n,o,!1,null,"67462de2",null);t["a"]=u.exports},bba7:function(e,t,a){},bbb8:function(e,t,a){"use strict";a("8162")},bc42:function(e,t,a){"use strict";a("2d55")},bd3b:function(e,t,a){"use strict";a("5ccc")},bdb1:function(e,t,a){"use strict";a("f200");var n=a("0925");async function o(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:o,hide:i}=n["a"].useOAuthFlowDialog.call(this,{title:"oauth_login.sign_in_with",providerName:e}),r=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["logging_in"],logging_in:[]},handlers:{authorize:()=>{o("authorize",r),this.$account.core.requestOAuthAction({provider:e,action:"login"})},logging_in:()=>(o("logging_in",r),!0),succeed:async()=>{await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.$q.notify({message:this.$t("oauth_login.notify.signed_in"),type:"positive",position:"bottom-right",timeout:5e3})}}});await r.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(i)}var i=o;async function r(e,{initial_stage:t="authorize",initial_params:a}={}){const{updateStage:o,hide:i}=n["a"].useOAuthFlowDialog.call(this,{title:"oauth_connect.connect_to",providerName:e}),r=this.$account.core.createOAuthFlow({initial_stage:t,initial_params:a,stage_restrict:{authorize:["connecting"],connecting:[]},handlers:{authorize:()=>{o("authorize",r),this.$account.core.requestOAuthAction({provider:e,action:"connect"})},connecting:()=>(o("connecting",r),!0),succeed:async()=>{this.$q.notify({message:this.$t("oauth_connect.notify.connected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}}});await r.promise().catch((t=>{const a=t.message.startsWith("oauth_error")?this.$t(t.message,{provider:e}):t.message;this.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})})).finally(i)}var s=r;t["a"]={login:i,connect:s}},be00:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},be0d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c033:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{directives:[{name:"ripple",rawName:"v-ripple"}],staticClass:"relative-position follow-btn btn",class:{hovered:e.hovered,followable:e.followable,pending:e.pending,disableFollow:e.disableFollow},on:{mouseover:function(t){e.hovered=!0},mouseleave:function(t){e.hovered=!1},click:e.onClick}},[e.pending?a("q-spinner-dots",{attrs:{size:"18px",thickness:5}}):a("span",{staticClass:"follow-btn-label"},[e._v(e._s(e.followBtnLabel))])],1)},o=[],i=a("5584"),r=a("36a1"),s={name:"LibraryFollowButton",props:{id:String,disableFollow:Boolean},data(){return{hovered:!1}},computed:{pending(){return i["a"].getters.followQueue.includes(this.id)},followable(){return!r["a"].followingChannels.find((e=>e.id===this.id))},followBtnLabel(){return this.followable?this.$t("follow"):this.hovered?this.$t("unfollow"):this.$t("following")}},methods:{async onClick(){if(this.pending)return;if(this.disableFollow)return this.$q.notify("Please wait for loaded");const e=this.id;if(!e)return;if(!r["a"].channelList.some((t=>t.id===e)))return this.$q.dialog({title:this.$t("cannot_find_channel"),message:this.$t("cannot_get_channel_info"),ok:{textColor:"primary",color:"unset",flat:!0,label:this.$t("ok")}});const t=!!this.followable;if(!t){const e=await new Promise((e=>{this.$q.dialog({title:this.$t("unfollow"),message:this.$t("unfollow_confirm"),ok:{textColor:"red",color:"unset",flat:!0,label:this.$t("unfollow")},cancel:{textColor:"grey",color:"unset",flat:!0,label:this.$t("cancel")}}).onOk((()=>e(!1))).onCancel((()=>e(!0)))}));if(e)return}i["a"].commit("addFollowQueue",e),(t=>{let a=0,n=0,o=0;const s=()=>{clearInterval(n),clearTimeout(a),o&&o(),i["a"].commit("removeFollowQueue",e)};n=setInterval((()=>{this.followable===t?(console.log("Failed to toggle follow",e,t,this.followable),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)):s()}),2e3),o=this.$watch("followable",(e=>{e!==t&&s()})),a=setTimeout((()=>{this.followable===t&&this.$q.notify(this.$t("follow_failed_hint"))}),1e4)})(t),t?r["a"].followChannel(e):r["a"].unfollowChannel(e)}}},l=s,c=(a("93e8"),a("2b5f")),d=a("2a5f"),u=a("4101"),_=a("719b"),p=a("09a4"),m=a.n(p),h=Object(c["a"])(l,n,o,!1,null,"711b4078",null);t["a"]=h.exports;m()(h,"components",{QSpinnerDots:d["a"],QColor:u["a"]}),m()(h,"directives",{Ripple:_["a"]})},c036:function(e,t,a){"use strict";a("b4bc")},c066:function(e,t,a){},c228:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return i}));a("a1c1");var n=a("1c53");(()=>{const e=e=>/^(?!(_|[0-9])+$)(([A-Z0-9]|_)+$)/.test(e),t=e=>/^(?!(_|[0-9])+$)(([a-z0-9]|_)+$)/.test(e),a=e=>/^([A-Z])([A-Za-z0-9]+$)$/.test(e),n=e=>/^([a-z])([A-Za-z0-9]+$)$/.test(e),o=t=>e(t)?t.toLowerCase():n(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase():a(t)?t.replace(/([A-Z])/g,"_$1").toLowerCase().substr(1):t.toLowerCase(),i=e=>t(e)?e.toUpperCase():n(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase():a(e)?e.replace(/([A-Z])/g,"_$1").toUpperCase().substr(1):e.toUpperCase(),r=n=>a(n)?n[0].toLowerCase()+n.substr(1):t(n)?n.replace(/_(\w)/g,((e,t)=>t.toUpperCase())):e(n)?n.toLowerCase().replace(/_(\w)/g,((e,t)=>t.toUpperCase())):n,s=e=>n(e)?e[0].toUpperCase()+e.substr(1):(()=>(e=r(e),e=e[0].toUpperCase()+e.substr(1),e))()})();const o=Object.keys(n["countries"]).reduce(((e,t)=>{const a=n["countries"][t];return e[t]={code:t,name:a.native,normalizedName:a.name,emoji:"TW"===t?"🇼🇫":a.emoji,phones:a.phone.split(",").map((e=>e+"-"+t)),languages:a.languages.map((e=>(e+"-"+t).toLowerCase()))},e}),{}),i=Object.keys(o).reduce(((e,t)=>{const{languages:a,name:n,emoji:i,phones:r}=o[t];return a.forEach((a=>{e[a]={code:t,name:n,emoji:i,phones:r,language:a}})),e}),{})}).call(this,a("28d0"))},c294:function(e,t,a){},c49d:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return u})),a.d(t,"b",(function(){return p})),a.d(t,"d",(function(){return f})),a.d(t,"c",(function(){return b}));a("de6c"),a("a1c1"),a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1");var n=a("5584"),o=a("c248"),i=a.n(o),r=a("5515"),s=a("3aea");const l="59243e4a83edb6386ebb99d6d395df1ca5750162",c=[...new Set(n["a"].getters.settings.trackerList.filter((e=>e.startsWith("ws"))).concat("wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"))];for(const t of["wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce"])c.includes(t)||c.push(t);const d="\n background-color: rgb(137,241,163);\n color: black;\n padding: 1px 5px;\n border-radius: 8px;\n border: 2px solid rgb(87,168,102);\n";let u=function(e,...t){if(n["a"].getters.isDevMode)return console.log("%c%s",d,e,...t)};n["a"].watch(((e,t)=>t.isDevMode),(e=>{u=e?console.log.bind(console,"%c%s",d):function(){}}),{immediate:!0});const _=[];function p(e){_.push(e)}u("Init","tracker-peer with trackers",c);const m=()=>"function"===typeof crypto.randomUUID?crypto.randomUUID().replace("-","").substring(0,12):"function"===typeof crypto.getRandomValues?[...crypto.getRandomValues(new Uint8Array(6))].map((e=>e.toString(16).padStart(2,"0"))).join(""):new Array(12).fill().map((()=>Math.floor(16*Math.random()).toString(16))).join(""),h=e.from("-AB0000-"+m());u("peerId",h.toString("hex"));const g=new i.a({infoHash:l,peerId:h,port:8765,intervalMs:3e4,announce:[...c],dht:!0,dhtPort:2e4,tracker:{announce:[...c],getAnnounceOpts:()=>{const e={uploaded:1024,downloaded:1024,left:1024};return e}}}),f=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.stop()},b=()=>{if(!g.tracker)return u("No tracker",g);g.tracker.start()},y=e=>{const t=Object.values(r["d"]).map((e=>{var t;return Object(s["e"])((null===(t=e.remoteDescription)||void 0===t?void 0:t.sdp)||"")}));try{const a=e.remoteAddress;a&&t.includes(a)&&u("Duplicate peer",a)}catch(a){return u("Duplicate peer",a,e),e.destroy()}_.forEach((t=>t(e)))};g.on("peer",(e=>{"object"===typeof e&&(e._pc&&e._channel?y(e):setTimeout((()=>{e._pc&&e._channel?y(e):e.destroy()}),2e3))})),g.on("dhtAnnounce",((...e)=>{u("dhtAnnounce",...e)}))}).call(this,a("eb72").Buffer)},c581:function(e,t,a){"use strict";a.d(t,"b",(function(){return c})),a.d(t,"c",(function(){return d})),a.d(t,"a",(function(){return u}));var n=a("7ca3"),o=a.n(n),i=(a("de6c"),a("c228"));class r{static without(...e){const t=`^(${e.map((e=>`(?!${e})`)).join("")}.)*$`;return new RegExp(t,"g")}static withoutOnly(...e){const t="^"+e.map((e=>`(?!${e}+$)`)).join("");return new RegExp(t,"g")}static prefixWithout(...e){const t="^"+e.map((e=>`(?!${e})`)).join("");return new RegExp(t,"g")}static suffixWithout(...e){const t=`(??");class s{static _test(e,t){const a=e.test(t);return e.lastIndex=0,a}static _testAll(e,t){const a=e.map((e=>this._test(e,t)));return!a.includes(!1)}}o()(s,"Username",[e=>s._test(r.content("0-9","A-Z","a-z"),e)||"account_field_only_alphanumeric",e=>s._test(r.range(4,16),e)||["account_field_range",[4,16]],e=>s._test(r.prefixWithout("[0-9]"),e)||"account_field_prefix_without_number_space"]),o()(s,"Password",[e=>s._test(r.content("0-9","A-Z","a-z",r.CHARACTERS),e)||"account_field_only_alphanumeric_and_symbol",e=>s._test(r.range(8,20),e)||["account_field_range",[8,20]],e=>s._test(/[0-9]/g,e)||"account_field_must_have_number_characters"]),o()(s,"PhoneNumber",[e=>s._test(r.content("0-9"),e)||"account_field_phone_number",e=>s._test(r.range(3,11),e)||["account_field_range",[3,11]]]),o()(s,"Nickname",[e=>s._test(r.content("0-9","A-Z","a-z","一-龥","\\s","_"),e)||"account_field_only_chinese_alphanumeric_space_underline",e=>s._test(r.range(2,15),e)||["account_field_range",[2,15]],e=>s._test(r.prefixWithout("[0-9]","[\\s]"),e)||"account_field_prefix_without_number_space",e=>s._test(r.suffixWithout("\\s"),e)||"account_field_suffix_without_space",e=>s._test(r.WITHOUT_REPEAT_SPACE,e)||"account_field_without_repeat_space"]),o()(s,"VerificationCode",[e=>s._testAll([r.content("0-9"),r.range(6)],e)||"account_field_verification_code"]),o()(s,"InvitationCode",[e=>s._test(r.content("0-9","A-Z","a-z"),e)||"account_field_invitation_code"]),o()(s,"TransferReceiver",[e=>{const t="tip_invalid_receiver",a=s._test(r.content("0-9","a-f","-"),e);if(!a)return t;const n=e.split("-");return 5!==n.length?t:"8-4-4-4-12"===n.map((e=>e.length)).join("-")||t}]),o()(s,"TransferAmount",[e=>s._test(r.content("0-9","."),e)||"tip_invalid_amount",e=>""+parseFloat(e)===e||"tip_invalid_amount",e=>parseFloat(e)<=1e3||"tip_invalid_amount",e=>parseFloat(e)>=.001||"tip_invalid_amount",e=>parseInt(1e3*parseFloat(e))===1e3*parseFloat(e)||"tip_invalid_amount"]);class l{constructor(e,t,a){this._model=t,this.defValue=this._model2value((()=>t?"object"!==typeof t?t:Array.isArray(t)?[...t]:{...t}:t)()),this.type=e,this.attrs=a||{}}get model(){return this._model}set model(e){this._model=e}get bound(){return this.attrs}_model2value(e){return e}_value2model(e){return e}updateModel(e){this.model=this._value2model(e)}get value(){return this._model2value(this.model)}clear(){this.updateModel(this.defValue)}}class c extends l{constructor(e,t){super("input",e,t)}}class d extends l{static get LOCALE_OPTIONS(){const e=Object.keys(i["a"]).sort(((e,t)=>(e=i["a"][e].normalizedName[0],t=i["a"][t].normalizedName[0],et?1:0))).map((e=>({value:e,emoji:i["a"][e].emoji,label:i["a"][e].name,normalizedName:i["a"][e].normalizedName})));return e}constructor(e,t,a){super("select",e,{...a||{},options:t})}}class u{constructor(e){this.items=e}updateModel(e){return Object.keys(this.items).forEach((t=>{void 0!==e[t]&&this.items[t].updateModel(e[t])})),this}get formData(){const e={};for(const[t,a]of Object.entries(this.items))e[t]=a.value;return e}setDefault(){return this}clearData(){return Object.values(this.items).forEach((e=>e.clear())),this}get length(){return Object.keys(this.items).length}}},c5a5:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));a("a1c1");var n=a("abc6"),o=a("d710");async function i(e){if(e.startsWith(o["protocol"]+"://")||e.startsWith(o["shortProtocol"]+"://")){const t=e.startsWith(o["protocol"]+"://")?e:e.replace(o["shortProtocol"]+"://",o["protocol"]+":///"),a=await n["a"].decode(t);return a}return new Promise(((t,a)=>{n["a"].encode({hash:e,url:e},((e,n)=>{e?a(e):t(n)}))}))}},c5fa:function(e,t,a){},c620:function(e,t,a){"use strict";a.r(t),function(e,n){a.d(t,"wtClient",(function(){return $})),a.d(t,"getTaskInstance",(function(){return z}));a("4db2"),a("c976"),a("4d8f"),a("f991"),a("63b1"),a("de6c"),a("a1c1");var o=a("4649"),i=a.n(o),r=a("0559"),s=a("0f0c"),l=a("c5a5"),c=a("a1cd"),d=a("edfe"),u=a("e3c7"),_=a("5584"),p=a("e38b"),m=a.n(p),h=a("84f6"),g=a("8750"),f=a("1926"),b=a("d558"),y=a("0598");const v=t=>"undefined"!==typeof crypto?e.from(crypto.getRandomValues(new Uint8Array(t))):a("548f").randomBytes(t);class w extends Map{set(e,t){if("object"!==typeof t)return console.error("Not an object",t);super.set(e,Object.assign({url:e},t,{timestamp:Date.now()}))}}const{torrentToJson:k}=c["a"],S=a("08ee").announceList.map((e=>e[0])).filter((e=>e.startsWith("wss"))).concat("wss://tracker.btorrent.xyz/announce","wss://tracker.openwebtorrent.com/announce","wss://tracker.files.fm:7073/announce","wss://spacetradersapi-chatbox.herokuapp.com:443/announce","ws://tracker.files.fm:7072/announce","wss://tracker.magnetoo.io/announce","wss://qot.abiir.top:443/announce","wss://tracker.dnlab.net:443/announce"),C=Object(s["a"])("version").replace(/\d*./g,(e=>("0"+e%100).slice(-2))).slice(0,4),x=e.from(`-WW${C}-${v(9).toString("base64")}`),$=new i.a({peerId:x,maxConns:20,store:m.a});let T=null;const z=()=>T;if(!Object(b["a"])()&&!Object(y["default"])()){setInterval((()=>{var e;if(!$.torrents[0])return;const t=$.torrents[0];t.paused||t.done||1===t.progress||null!==(e=t.discovery)&&void 0!==e&&e.tracker&&t.discovery.tracker.update()}),15e3),u["ioServer"].on("updateSettings",(e=>{if(console.log("updateSettings",e),"downloadSpeed"in e){const t=e.downloadSpeed;t>0?$.throttleDownload(t):$.throttleDownload(0)}if("uploadSpeed"in e){const t=e.uploadSpeed;t>0?$.throttleUpload(t):$.throttleUpload(0)}"secureOption"in e&&(console.log("set secure",r["setSecure"]),Object(r["setSecure"])(e.secureOption))})),Object.defineProperty("undefined"===typeof window?n:window,"client",{get(){return $}});const e=()=>"undefined"!==typeof navigator&&!!navigator.serviceWorker;e()?(console.log("registering sw"),navigator.serviceWorker.register("webtorrent.worker.js").then((()=>{const e=()=>{const e=navigator.serviceWorker.controller;e&&"activated"===e.state&&(console.log("[ ServiceWorker ] Change controller",e),$.loadWorker(e))};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.addEventListener("statechange",e),navigator.serviceWorker.addEventListener("controllerchange",(()=>{e(),navigator.serviceWorker.controller.addEventListener("statechange",e)})),console.log("register",navigator.serviceWorker.controller),e()})).catch((e=>{console.error("Error registering sw",e)}))):"undefined"!==typeof navigator&&navigator.serviceWorker&&navigator.serviceWorker.controller&&"activated"===navigator.serviceWorker.controller.state&&$.loadWorker(navigator.serviceWorker.controller);const t=new Map;let a=Date.now(),o=1e3;const i=()=>({downloading:[],uploading:[],downloaded:[]}),s=()=>{const e=Date.now();if(o=(e-a)/1e3,a=e,$.torrents[0]){const e=$.torrents[0];e.done||"number"!==typeof e.usedTime||(e.usedTime+=1e3);const a=k(e,o,t);if(t.has(a.infoHash)&&e.ready){const n=t.get(a.infoHash);0===n.downloaded?a.downloadSpeed=0:a.downloadSpeed=Math.floor((e.downloaded-n.downloaded)/o),0===n.uploaded?a.uploadSpeed=0:a.uploadSpeed=Math.floor((e.uploaded-n.uploaded)/o),a.downloadSpeed<0&&(a.downloadSpeed=0),a.uploadSpeed<0&&(a.uploadSpeed=0),t.set(a.infoHash,{downloaded:e.downloaded,uploaded:e.uploaded})}else a.downloadSpeed=0,a.uploadSpeed=0,t.set(a.infoHash,{downloaded:0,uploaded:0});u["ioServer"].emit("wt-task",a),T=a;const n=i();a.done&&!a.isSeeding&&a.paused?n.downloaded=[a]:a.done||a.isSeeding?n.uploading=[a]:n.downloading=[a],h["a"].updateTaskList(n)}else T=null,_["a"].commit("updateABKeys",i())};setInterval(s,1e3),$.on("error",(e=>{console.warn("webtorrent error",e)})),$.on("ready",(()=>{console.log("[webtorrent]","ready"),Object(d["b"])($)}));const p=(e,t)=>{if(console.log("onWire",e),e.use(Object(d["a"])($,t)),"webrtc"===e.type){console.log("onwire",e.remoteAddress,e.peerId);const a=()=>{var n,o,i,r,s;if(e.remoteAddress)return;const l=t._peers[e.peerId];if(!l)return setTimeout(a,1e3);const c=null===(n=l.conn)||void 0===n||null===(o=n._pc)||void 0===o||null===(i=o.currentRemoteDescription)||void 0===i||null===(r=i.sdp)||void 0===r||null===(s=r.match(/c=IN\sIP\d\s(.*)/))||void 0===s?void 0:s[1];if(!c)return setTimeout(a,1e3);e.remoteAddress=c};a()}},m=(e,t)=>{const a="string"===typeof e?$.get(e):e;a&&a.trackerMap&&(a.trackerMap.set(t,{status:"connecting"}),c["a"].addTracker(a,t))},b=(e,t={})=>{e.pending=!1,e.removeAllListeners(),e.setMaxListeners(0),console.log("Add listeners to",e.infoHash||e.token||t.magnetURI),e.on("error",(e=>{console.warn("[wt] error",e)})),e.on("infoHash",(e=>{console.log("got infoHash",e),u["ioServer"].emit("wt-infoHash",e)})),e.on("wire",(t=>p(t,e))),e.on("metadata",(()=>{console.log("Got metadata",e),Object(l["a"])(e.magnetURI).then((t=>{console.log(t),e.alphabizURI=t}))})),e.on("discovery",(()=>{if(console.log("start discovery"),e.trackerMap=new w,e.discovery._announce.forEach((t=>{if(console.log("Discovered",t),e.trackerMap.set(t,{status:"connecting"}),!t.startsWith("ws")){if(t.match(/(\d{1,3}\.){3}\d{1,3}/))return;e.trackerMap.set(t+"@6",{status:"connecting"})}})),e.discovery.tracker.on("warning",((t,a,n)=>{a&&(6===n&&(a+="@6"),e.trackerMap.set(a,{status:"error",message:c["a"].parseTrackerWarning(t.message)}))})),e.discovery.tracker.on("update",((t,a,n)=>{if(console.log("tracker update",a,t),!a)return console.warn("No emitted url",t);6===n&&(a+="@6"),e.trackerMap.set(a,{status:"updated",info:t})})),t.customTrackers)for(const a of t.customTrackers)m(e,a)}))},y=(e,t)=>{_["a"].getters.settings.downloadSpeed>0&&$.throttleDownload(_["a"].getters.settings.downloadSpeed),_["a"].getters.settings.uploadSpeed>0&&$.throttleUpload(_["a"].getters.settings.uploadSpeed);const a=t||{};if(a.announce=a.announce||S,$.torrents&&$.torrents.length)return u["ioServer"].emit("weberror","already_downloading");(e instanceof File||e instanceof FileList)&&console.log("should seed");const n=e instanceof File||e instanceof FileList?$.seed(e,a):$.add(e,a);return n.token=a.token||e,n.origin=a.token||e,n.createdTime=a.createdTime||Date.now(),n.usedTime=a.usedTime||0,a.fromPost&&(n.fromPost=a.fromPost),a.postTitle&&(n.postTitle=a.postTitle),a.name&&(n.name=a.name),b(n,a),s(),n};u["ioServer"].on("wt-add",(async(e,t)=>{if("string"===typeof e&&(e.startsWith("alphabiz:")||e.startsWith("ab:")))return y(await Object(l["a"])(e),t);y(e,t)})),u["ioServer"].on("download_torrent",(async e=>{if(console.log("web download",e),!e.url)return u["ioServer"].emit("weberror","not_supported_in_web_mode");try{const t=await Object(l["a"])(e.url);console.log("converted",t),y(t,{...e,url:t})}catch(t){u["ioServer"].emit("weberror",t.message||t)}})),u["ioServer"].on("wt-pause",(e=>{const t=$.get(e);if(console.log("pause",e,t),!t)return u["ioServer"].emit("weberror","torrent_not_exist");t.paused=!0,t.pause(),t.discovery.tracker.stop();while(t.wires.length){const e=[...t.wires];e.forEach((e=>e.destroy()))}})),u["ioServer"].on("wt-resume",(e=>{const t=$.get(e);if(!t)return u["ioServer"].emit("weberror","torrent_not_exist");t.paused=!1,t.resume(),t.discovery.tracker.start()})),u["ioServer"].on("pause_all",(()=>{$.torrents.forEach((e=>e.destroy((()=>{u["ioServer"].emit("wt-pause",e)}))))})),u["ioServer"].on("wt-delete",(e=>{const t=$.get(e);if(!t)return u["ioServer"].emit("weberror","torrent_not_exist");t.destroy((()=>{u["ioServer"].emit("torrent_deleted",t)}))}));let v=null;const C=({infoHash:e,filepath:t})=>{console.log("[web] Play",e,t);const a=$.get(e);return a?a.ready?(v=a.createServer(),void v.listen(0,(()=>{const t=v.address().port,n={token:a.token,port:t};u["ioServer"].emit("play-server-ready",n);const o=()=>{var t;const n=(null===(t=a.files)||void 0===t?void 0:t.map((e=>{const t=[];for(let n=e._startPiece;nclearInterval(i)))}))):setTimeout((()=>{C({infoHash:e,filepath:t})}),2e3):u["ioServer"].emit("weberror","torrent_not_exist")};u["ioServer"].on("wt-play",C);const x=()=>{v&&(v.destroy&&v.destroy(),v=null,console.log("Destroyed server"))};u["ioServer"].on("wt-stop-server",x),u["ioServer"].on("set_user",(e=>{u["ioServer"].emit("set-user",null,e)})),"undefined"!==typeof document&&document.body.addEventListener("paste",(async e=>{const t=e.clipboardData.files.length?e.clipboardData.files:e.clipboardData.getData("text");let a=t;if(t instanceof FileList){if(t.length>1)return g["a"].create({message:f["b"].t("web_mode_upload_single"),ok:f["b"].t("ok")});if(!t[0].size)return g["a"].create({message:f["b"].t("web_mode_upload_single"),ok:f["b"].t("ok")});a=t[0]}if("string"===typeof a){if((a.startsWith("ab://")||a.startsWith("alphabiz://"))&&(a=await Object(l["a"])(a).catch((()=>"")),!a.startsWith("magnet")))return g["a"].create({message:f["b"].t("invalid_download_url"),ok:f["b"].t("ok")});if(!a.startsWith("magnet"))return}const n=()=>{y(a)};$.torrents[0]?g["a"].create({message:f["b"].t("remove_old_task_desc"),ok:f["b"].t("remove_old_task"),cancel:f["b"].t("cancel")}).onOk((()=>{$.torrents[0].destroy(),$.torrents.splice(0),n()})):g["a"].create({message:f["b"].t("add")+" "+(a.name||t),ok:f["b"].t("add"),cancel:f["b"].t("cancel")}).onOk(n)})),console.log("Init webtorrent events")}}.call(this,a("eb72").Buffer,a("0ee4"))},c62a6:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a("ff9b");const o=new n["a"]({data(){return{taskQueue:[]}}})},c65d:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},c791:function(e,t,a){"use strict";(function(e,n){a("a1c1");var o=a("1c53"),i=a.n(o),r=a("ff11"),s=a.n(r),l=a("6422"),c=a("d310"),d=a("5584");let u=null;Object(c["isElectron"])()&&(u=e["require"]("geoip-country")),t["a"]={props:{peer:{type:Object,required:!0}},computed:{isDevMode(){return d["a"].getters.isDevMode},country(){const e=this.peer.addresses[0];if(!e)return"";try{const t=u.lookup(e);return t&&t.country?t.country:""}catch(t){return""}},countryFlag(){return this.country?i.a.getEmojiFlag(this.country):""},uploadSpeed(){return Object(l["a"])(this.peer.uploadSpeed,{byte:!1,gb:!1,fix:1})},downloadSpeed(){return Object(l["a"])(this.peer.downloadSpeed,{byte:!1,gb:!1,fix:1})},peerClient(){if(!this.peer.id)return"-";const e=n.from(this.peer.id,"hex").toString("ascii");try{const t=s()(e.replace("-AB","-WD")),a=this.peer.isAbPeer?"(Alphabiz)WebTorrent":t.client;return"unknown"===a?this.$t("unknown"):t.version?a+" "+t.version:a}catch(t){return this.$t("unknown")}},peerProgress(){if("number"!==typeof this.peer.progress)return"-";const e=Number((100*this.peer.progress).toFixed(1));return e+"%"}},methods:{showPaymentPannel(){this.$emit("showPaymentPannel",{peerId:this.peer.id,address:this.peer.address,remoteUser:this.peer.user,remoteSubId:this.peer.subId})}}}}).call(this,a("0ee4"),a("eb72").Buffer)},c7ce:function(e,t,a){},c905:function(e,t,a){"use strict";a("9d1e")},c9b4:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},ca31:function(e,t,a){},cb96:function(e,t,a){},cbf3:function(e,t,a){"use strict";a("49d6")},cc0c:function(e,t,a){"use strict";a("1da1")},cdb7:function(e,t,a){"use strict";a("7ad0")},ce6c:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.showAppBar?a("q-bar",{staticClass:"application-bar app-draggable"},["mac"===e.env?[a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("div",{staticClass:"absolute-left full-width full-height row flex-center"},[a("div",{staticClass:"text-weight-bold non-selectable"},[e._v(e._s(e.appName))])])]:e._e(),["win","linux"].includes(e.env)?[a("q-img",{staticClass:"application-bar-icon",attrs:{src:e.abIcon,width:"18px",height:"18px"}}),a("div",{staticClass:"application-bar-title q-ml-md q-pr-md non-selectable",staticStyle:{"font-size":"0.8rem"}},[e._v("\n "+e._s(e.appName)+"\n ")]),a("div",{staticClass:"full-height q-pt-xs col-grow",staticStyle:{"margin-left":"0","margin-right":"-8px"}},[a("div",{staticClass:"full-height"})]),a("q-space"),a("div",{staticClass:"full-height flex-center row app-no-draggable",staticStyle:{"pointer-events":"visible","margin-right":"-12px"}},[a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.minimize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1",y1:"6",x2:"11",y2:"6",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button",attrs:{unelevated:""},on:{click:e.maximize}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("polyline",{attrs:{points:"5.5 1.5 10.5 1.5 10.5 6.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("polyline",{attrs:{points:"1.5 5.5 1.5 10.5 6.5 10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])]),a("q-btn",{staticClass:"window-control-button window-close-button",attrs:{unelevated:""},on:{click:e.close}},[a("svg",{attrs:{version:"1.1",role:"presentation",width:"12",height:"12",viewBox:"0 0 12 12"}},[a("g",{attrs:{stroke:"currentColor","stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1"}},[a("line",{attrs:{x1:"1.5",y1:"1.5",x2:"10.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}}),a("line",{attrs:{x1:"10.5",y1:"1.5",x2:"1.5",y2:"10.5",fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}})])])])],1)]:e._e()],2):e._e()},o=[],i=(a("de6c"),a("d710"));const r=a("d310").isElectron();var s={name:"ApplicationBar",data(){return{appName:i["appName"],showAppBar:r,showMenu:!1,abIcon:"developer/assets/icon-256.png",env:null,windowControl:null}},created(){if(!r)return;Promise.resolve().then(a.t.bind(null,"b052",7)).then((({ipcRenderer:e})=>{this.windowControl=t=>e.sendSync("app_window_control",t)}));const e=navigator.userAgent.toLowerCase(),t=/macintosh|mac os x/i.test(e);this.env=t?"mac":"win"},methods:{minimize(){this.windowControl("minimize")},maximize(){this.windowControl(this.windowControl("isMaximized")?"unmaximize":"maximize")},close(){this.windowControl("close")}}},l=s,c=(a("ac09"),a("2b5f")),d=a("85af"),u=a("1043"),_=a("9767"),p=a("990e"),m=a("8a98"),h=a("09a4"),g=a.n(h),f=Object(c["a"])(l,n,o,!1,null,null,null);t["a"]=f.exports;g()(f,"components",{QBar:d["a"],QBtn:u["a"],QImg:_["a"],QSpace:p["a"],QTable:m["a"]})},cf6e:function(e,t,a){},d176:function(e,t,a){},d1a4:function(e,t,a){"use strict";(function(e){a("de6c"),a("dc89"),a("2425"),a("a1c1");var n=a("e74d"),o=a("2b49");t["a"]=(e,{app:t,app_config:a},o)=>{i(n["a"],o,a),r(e,o,a.protocol,t)};const i=(e,t,{protocol:a,web_url:n})=>{t.$logger.tags("AuthWrapper");e._oAuthHandler._urlOpener=(e,t)=>o["a"].urlOpener(e),e.__proto__._handleAuthResponse=()=>{},e.__proto__.oAuthSignOutRedirect=function(t,a){const n=async()=>{const t=e._oAuthHandler._config.domain,a=e._oAuthHandler._cognitoClientId,n=e._oAuthHandler._config.redirectSignIn,o=`https://${t}/logout?${Object.entries({client_id:a,logout_uri:encodeURIComponent(n)}).map((e=>e.join("="))).join("&")}`;await e._oAuthHandler._urlOpener(o,n)};n(),t()};const i=(()=>({isLocalhost:Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),isElectron:s()}))(),r=i.isElectron?2:i.isLocalhost?0:1,l=["http://localhost:8080/oauth/",`https://web.alpha.biz/oauth_redirect/${a}/${encodeURIComponent(n)}/`,`https://web.alpha.biz/oauth_redirect/${a}/app/`][r],c=l;Object.assign(e._config.oauth,{app_env:i.isElectron?"electron":"web",redirectSignIn:l,redirectSignOut:c}),Object.assign(e._oAuthHandler._config,{app_env:i.isElectron?"electron":"web",redirectSignIn:l,redirectSignOut:c})},r=(e,t,n,o)=>{if(s()){const{ipcRenderer:e}=a("b052");e.on("oauth_event",((e,t)=>{t.startsWith(`${n}://$oauth/v2/`)&&i(t,"electron")}))}else if("/oauth/v2/"===new URL(location.href).pathname){const t=t=>{e.prototype.$amplify.addOnAuthStateChangedListener((()=>{setTimeout((()=>{i(t,"web")}),2e3)}),{once:!0})};t(location.href),o.router.replace("/")}function i(e,a){t.core.handleOAuthActionResponse(e,a)}};function s(){return"undefined"!==typeof window&&"object"===typeof window.process&&"renderer"===window.process.type||"undefined"!==typeof e&&"object"===typeof e.version&&e.version.electron||"object"===typeof navigator&&"string"===typeof navigator.userAgent&&navigator.userAgent.includes("Electron")}}).call(this,a("28d0"))},d1e4:function(e,t,a){"use strict";a("eaf6")},d2e8:function(e,t,a){"use strict";a("053d")},d310:function(e,t,a){"use strict";a.r(t),a.d(t,"localConfigs",(function(){return s})),a.d(t,"deepClone",(function(){return c})),a.d(t,"Bus",(function(){return d["a"]})),a.d(t,"isElectron",(function(){return u["default"]})),a.d(t,"torrentToJson",(function(){return h}));a("de6c");var n=a("3fd2"),o=a.n(n);const i=o.a.renderer(),r=e=>new Promise(((t,n)=>{if(!i)return n(!1),!1;i&&Promise.resolve().then(a.t.bind(null,"b052",7)).then((a=>a.ipcRenderer.invoke("get-app-settings").then((a=>{a[e]?t(a[e]):n(!1)})).catch(n)))}));var s={getSettingsItem:r};function l(e){if(!e||"object"!==typeof e)return e;const t=arguments[1]||new WeakMap;if(t.has(e))return t.get(e);const a=Array.isArray(e)?[]:{};t.set(e,a);for(const n in e)Object.hasOwnProperty.call(e,n)&&(a[n]=l(e[n],t));return a}var c=l,d=a("c62a6"),u=a("0598");const _=a("a3fc"),p=["infoHash","name","paused","progress","length","downloaded","downloadSpeed","uploaded","uploadSpeed","recieved","ready","token","origin","path","pending"],m=(e,t)=>{const a={};return p.forEach((t=>{a[t]=e[t]})),a.done=e.downloaded>=e.length,a.download=!t,a.upload=e.upload,a.files=e.files?e.files.map((t=>({name:t.name,path:_.resolve(e.path,t.path),progress:t.progress||0}))):[],a};var h=m},d34c:function(e,t,a){},d534:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"image-with-preview full-width"},[a("q-input",{staticClass:"full-width",attrs:{outlined:"","stack-label":"",value:e.value,label:e.label,rules:e.rules,placeholder:"https://example.org/path/to/image.jpg",debounce:500},on:{input:e.emitSrc},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"after",fn:function(){return[a("div",{staticClass:"image-container"},[a("img",{staticClass:"preview-image",class:e.state,attrs:{src:e.realSrc},on:{error:e.emitError,load:e.emitSuccess}}),"error"===e.state?a("q-icon",{attrs:{name:"close",size:"56px",color:"red"}},[a("q-tooltip",[e._v(e._s(e.$t("invalid_image")))])],1):e._e(),"loading"===e.state?a("q-icon",{attrs:{name:"image",size:"56px",color:"green"}},[a("q-tooltip",[e._v(e._s(e.$t("poster")))])],1):e._e()],1)]},proxy:!0}])})],1)},o=[],i={props:{value:String,label:String,rules:{type:Array,default:()=>[]}},data(){return{state:"loading"}},computed:{realSrc(){let e=this.value||"";if(!e.startsWith("http"))return"";while(e.startsWith("http%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);while(e.startsWith("https%3A%2F%2F"))e=decodeURIComponent(e),console.log("decode",this.value,e);return e}},methods:{emitSrc(e){this.$emit("input",e)},emitError(){""!==this.value&&(this.$emit("state",2),this.state="error")},emitSuccess(){this.$emit("state",1),this.state="loaded"}},watch:{value(){console.log("src change"),this.$emit("state",0),this.state="loading"}}},r=i,s=(a("c905"),a("2b5f")),l=a("0e45"),c=a("f106"),d=a("cf25"),u=a("09a4"),_=a.n(u),p=Object(s["a"])(r,n,o,!1,null,"70ea5328",null);t["a"]=p.exports;_()(p,"components",{QInput:l["a"],QIcon:c["a"],QTooltip:d["a"]})},d558:function(e,t,a){"use strict";(function(e){a.d(t,"a",(function(){return i}));var n=a("800b");const o=Boolean((()=>{var t;if("undefined"===typeof window)return"mobile"in e.versions||"android"===Object(n["platform"])()||"ios"===Object(n["platform"])()||e.argv.includes("--dev")||e.argv.includes("--capacitor")||void 0;const{Platform:o}=a("d247");return(null===(t=o.is)||void 0===t?void 0:t.capacitor)||void 0})());function i(){return o}}).call(this,a("28d0"))},d6ab:function(e,t,a){"use strict";a.d(t,"a",(function(){return s})),a.d(t,"b",(function(){return _}));a("de6c"),a("dc89"),a("2425"),a("a1c1");const n=a("61af"),o=a("a3fc"),i=a("17de"),r=a("5c0c");function s(e){const t=e.path||e;if(console.log(t),!n.existsSync(t)&&!n.existsSync(t+".downloading"))return[];const a=o.dirname(e.path),i=o.extname(e.path),r=e.name.substring(0,e.name.lastIndexOf("."));console.log(a,r,i);const s=d(a,r),_=c(a,s),p=u(a,r),m=l(a,p);return[..._,...m]}function l(e,t){const a=[];try{t.forEach(((t,s,l)=>{l[s]=e+"/"+t;const c=n.readFileSync(l[s]),d=r.decode(c,i.detect(c)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),u=1===(t.match(/\./g)||[]).length?t:o.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".srt";a.push({src:URL.createObjectURL(new Blob([_(d)])),label:u,path:e+"\\"+t})}))}catch(s){console.log(s)}return console.log(a),a}function c(e,t){const a=[];try{t.forEach(((t,s,l)=>{l[s]=e+"/"+t;const c=n.readFileSync(l[s]),d=i.analyse(c);console.log("encoding",d);const u=r.decode(c,i.detect(c)).replace(/^{[\\0-9A-Za-z&]*}/gm,""),_=1===(t.match(/\./g)||[]).length?t:o.extname(t.substring(0,t.lastIndexOf("."))).substring(1)+".vtt";a.push({src:URL.createObjectURL(new Blob([u])),label:_,path:e+"\\"+t})}))}catch(s){console.log(s)}return console.log(a),a}function d(e,t){let a;try{a=n.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".vtt")))}catch(o){console.log(o)}return a}function u(e,t){let a;try{a=n.readdirSync(e),a=a.filter((e=>e.startsWith(t)&&e.endsWith(".srt")))}catch(o){console.log(o)}return a}function _(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}},d710:function(e,t,a){(function(t){const n=a("b3f7"),{default:o}=a("0598");if(o())if(this.require)try{const a=this["require"]("developer/app");console.log("Init from node_modules",t),a.appName=a.name,e.exports={default:a,appName:a.name,...a}}catch(i){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=o()?require("developer/app"):n;t.appName=t.displayName,console.log("APP name:",t.appName),e.exports={default:t,appName:t.displayName,...t}}else e.exports={appName:n.name,...n}}).call(this,a("28d0"))},d7df:function(e,t,a){"use strict";a("de6c"),a("d4b5");var n=a("d310"),o=a("e3c7"),i=a("d558"),r=a("9ad5"),s=a.n(r),l=a("a368"),c=a("8a63"),d=a("f680"),u=a("1926");const _=Object(i["a"])(),p=e=>"requestAnimationFrame"in window?requestAnimationFrame(e):setTimeout(e,20),m=[],h=new Map,g=new Map,f={on(e,t){Object(n["isElectron"])()||_?(h.has(e)||h.set(e,[]),h.get(e).push(t),g.has(e)&&(g.get(e).forEach((e=>{t(...e)})),g.delete(e)),_&&"check-network-result"===e&&console.log("Listen on",e,t)):o["ipcRenderer"].on(e,t)},once(e,t){const a=(...n)=>{t(...n),this.off(e,a)};return this.on(e,a)},emit(e,...t){_?m.push({name:e,data:t}):Object(n["isElectron"])()?o["ipcRenderer"].send("_io_send",{name:e,data:t}):o["ipcRenderer"].send(e,...t)},off(e,t){console.log("Off",e);const a=h.get(e);if(!a)return;if(!t)return a.splice(0);const n=a.indexOf(t);-1!==n&&a.splice(t,1)},clear(){console.log("io client clear");for(const e of h.values())e.splice(0)}};if(Object(n["isElectron"])()){const e={resolve:null,async execute(){if(e.resolve)return;const t=new Promise((t=>e.resolve=t));o["ipcRenderer"].send("_io_fetch"),await t,e.resolve=null}},t=async()=>{await e.execute(),setTimeout((()=>p(t)),500)};p(t),o["ipcRenderer"].on("_io_response",(async(t,a)=>{var n;if(!a||!a.length)return null===(n=e.resolve)||void 0===n?void 0:n.call(e);await a.reduce((async(e,{name:t,data:a})=>{await e;const n=JSON.parse(a),o=h.get(t);if(o)o.map((e=>{try{e(...n)}catch(a){console.error(`Error when emitting io event [${t}] ${a}`)}}));else{g.has(t)||g.set(t,[]);const e=g.get(t);e.push(n),e.length>10&&e.splice(0,e.length-10)}}),Promise.resolve()),"function"===typeof e.resolve&&e.resolve()}))}if(_&&"object"===typeof window){const e=(e,t)=>{e.startsWith("ipc")&&(console.log("Got ipc event",e,t),t.unshift(null));const a=e.startsWith("ipc:")?e.substring(4):e,n=h.get(a);if("check-network-result"===a&&console.log("pre",a,n,h.size),h.has(a))n&&n.forEach((e=>e(...t)));else if(g.has(a)){const e=g.get(a);e.push(t),e.length>10&&(e.splice(0,e.length-10),"check-network-result"===a&&console.log("Remove",a,h.size))}else g.set(a,[t])};let t=0;const a=()=>{l["Filesystem"].readFile({path:"service_port",directory:l["Directory"].Documents,encoding:l["Encoding"].UTF8}).then((({data:e})=>{if(!isNaN(parseInt(e))){if(t===parseInt(e))return;t=parseInt(e),console.log("Set port to",t)}}))};a(),setInterval(a,1e4);const n=new Set,o=async()=>{if(!t)return setTimeout(o,500);try{let o=!0,i=()=>{};setTimeout((()=>{o&&(i=d["a"].create({message:u["b"].t("connecting")+"...",position:"bottom-right"}))}),1200);const r=t=>{t&&Array.isArray(t.events)&&t.events.forEach((({name:t,data:a})=>e(t,a)))},l=m.splice(0).map((e=>{const t=JSON.stringify(e).length;if(t>3e6){const t="partials:"+e.name;if(n.has(t))return;n.add(t);let a=0;const o=async e=>{const{data:t}=await s.a.post("http://localhost:3000",{events:[e]},{withCredentials:!1,timeout:5e3}).catch((()=>({})));return r(t),a++,await new Promise((e=>setTimeout(e,100)))};return e.data.reduce((async(e,a,n)=>{if(await e,"object"!==typeof a||JSON.stringify(a).length<3e6)await o({name:t,index:n,data:a}),await new Promise(p);else{let e=Array.isArray(a)?[]:{},i=0;for(const r in a)e[r]=a[r],i+=JSON.stringify(a[r]).length,i>3e6&&(await o({name:t,index:n,data:e}),e=Array.isArray(a)?[]:{},i=0,await new Promise(p));(Array.isArray(a)?e.length:Object.keys(e).length)&&await o({name:t,index:n,data:e})}await new Promise(p)}),Promise.resolve()).then((async()=>{await o({name:t,index:-1}),console.log(`Finished splicing ${t} with ${a} pieces`),n.delete(t)})),null}return e})).filter((e=>e));l.length||l.push("__empty__"),await l.reduce((async(e,n)=>{if(await e,!n)return;const{data:o}=await s.a.post(`http://localhost:${t}`,{events:"__empty__"===n?[]:[n]},{withCredentials:!1,timeout:2e3}).catch((e=>(console.log(`Failed to fetch events. Error: ${e.message||e}`),console.log(m),a(),{})));r(o)}),Promise.resolve()).catch(a),o=!1,i()}catch(i){console.log("Poll error",i)}setTimeout(o,500)};o(),l["App"].addListener("resume",(()=>{console.log("App resume"),setTimeout((()=>{Object(c["c"])(!0)}),500)})),l["App"].addListener("pause",(()=>{console.log("App pause"),Object(c["d"])(!0)})),l["Network"].addListener("networkStatusChange",(e=>{console.log("Network connection type changed to",e.connectionType)}))}t["a"]=f},d7f6:function(e,t,a){},d884:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return o}));a("5584");const n=[{value:"en-US",label:"English"},{value:"zh-CN",label:"简体中文"},{value:"zh-TW",label:"繁體中文"},{value:"de-DE",label:"Hochdeutsch"},{value:"es-ES",label:"español castellano"},{value:"fr-FR",label:"Français standard"},{value:"hi-IN",label:"हिंदी भारत)"},{value:"id-ID",label:"Indonesian (Indonesia)"},{value:"it-IT",label:"Italiano standard"},{value:"ja-JP",label:"日本語 (日本)"},{value:"ko-KR",label:"한국어(대한민국)"},{value:"nl-NL",label:"Standaard Nederlands"},{value:"pl-PL",label:"polski (Polska)"},{value:"pt-PT",label:"português europeu"},{value:"ru-RU",label:"Русский"},{value:"th-TH",label:"ไทย (ประเทศไทย)"},{value:"tr-TR",label:"Türkçe (Türkiye)"}];function o(e){return n.some((t=>t.value===e))}},dcb3:function(e,t,a){},ddf9:function(e,t,a){"use strict";function n(){const e=navigator.userAgent.toLowerCase();return e.includes("android")||e.includes("ios")||e.includes("iphone")}a.d(t,"a",(function(){return n}))},df2b:function(e,t,a){},e0e1:function(e,t,a){"use strict";a("571b")},e24e:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},e3c7:function(e,t,a){"use strict";a.r(t),a.d(t,"ipcEvent",(function(){return l})),a.d(t,"ioEvent",(function(){return c})),a.d(t,"ioServer",(function(){return _})),a.d(t,"ipcRenderer",(function(){return p}));a("de6c");var n=a("bd50"),o=a.n(n),i=a("d310"),r=a("d558"),s=a("d7df");const l=new o.a,c=new o.a,d=Object(i["isElectron"])()?a("b052").ipcRenderer:Object(r["a"])()?{on(e,t){s["a"].on("ipc:"+e,t)},once(e,t){s["a"].once(e,t)},off(e,t){s["a"].off("ipc:"+e,t)},send(e,...t){console.log("ipcSend",e),s["a"].emit("ipc:"+e,...t)}}:{on(e,t){l.on(e,((...e)=>{t(...e)}))},send(e,...t){c.emit(e,...t)}},u=new Map,_={on(e,t){const a=u.has(t)?u.get(t):(...e)=>{t(...e)};u.has(t)||u.set(t,a),c.on(e,a)},emit(e,...t){l.emit(e,...t)},off(e,t){if(!t)return c.off(e);const a=u.get(t)||t;return a?c.off(e,a):void 0}},p=d;console.log("Init api server"),Object(i["isElectron"])()||Object(r["a"])()||(console.log("isElectron",Object(i["isElectron"])()),console.log("isCapacitor",Object(r["a"])()),a("c620"),a("ecef"))},e4a9:function(e){e.exports=JSON.parse('{"lib_index":"Heim","lib_edit":"Veröffentlichen","lib_publish":"Veröffentlichen","lib_explore":"Erkunden","lib_following":"Nachfolgend","lib_favorite":"Lokale Favoriten","lib_local_favorites":"Lokale Favoriten","lib_channel":"Kanal","lib_submit":"Einreichen","lib_from_network":"Verwendung einer dezentralen Datenbank aus dem Netzwerk","welcome_to_lib":"Willkommen in der Medienbibliothek von ${displayName}","register_or_login":"Registrieren/Anmelden","lib_recommend":"Empfehlen","lib_recommend_desc":"Willkommen in der ${displayName}-Bibliothek! Diese Bibliothek nutzt eine dezentrale Datenbank aus dem Netzwerk. Um es nutzen zu können, müssen Sie einigen Kanälen folgen.","follow_any_channel_to_continue":"Folgen Sie einem beliebigen Kanal, um fortzufahren","follow_channels_and_continue":"Folgen Sie den Kanälen {0} und fahren Sie fort","show_more_for_me":"Mehr für mich anzeigen","no_more_recommend":"Nicht mehr zu empfehlen","key":"Schlüssel","create_key":"Schlüssel erstellen","save_key":"Schlüssel speichern","save_key_file":"Möchten Sie Ihren Schlüssel als Datei speichern?","import_key":"Schlüssel importieren","import":"Importieren","invalid_key":"Ungültiger Schlüssel","back_to_top":"Zurück nach oben","search_for_channel":"Suchen Sie nach der Kanal-ID","search_channel_no_result":"Kanal mit der ID {0} kann nicht gefunden werden","please_input_channel_id":"Bitte geben Sie die Kanal-ID ein","welcome_help_text":"Dabei handelt es sich um eine dezentrale Medienbibliothek. Du brauchst\\n um ein Konto für diese Datenbank zu erstellen. Wir werden\\n generiert automatisch einen persönlichen Schlüssel für Sie.\\n Wenn Sie bereits einen Schlüssel besitzen, können Sie ihn auch importieren\\n hier.","welcome_key_text":"Sobald Sie sich angemeldet haben, klicken Sie bitte auf die Schaltfläche [SCHLÜSSEL SPEICHERN].\\n in der rechten unteren Ecke, um Ihren privaten Schlüssel zu speichern.\\n Wenn Sie Ihren Schlüssel verlieren, können Sie sich möglicherweise nicht erneut anmelden.","redirect_to_recommend":"Es scheint, dass Sie keinem Kanal gefolgt sind. Weiterleitung zur Seite [Erkunden].","channel":"Kanal","follow":"Folgen","unfollow":"Nicht mehr folgen","following":"Nachfolgend","share":"Aktie","unfollow_confirm":"Sind Sie sicher, dass Sie diesem Kanal nicht mehr folgen? Alle Beiträge dieses Kanals in Ihrer Chronik werden entfernt.","follow_failed_hint":"Der Vorgang steht im Hintergrund noch aus. Wenn der Vorgang längere Zeit nicht ausgeführt wird, starten Sie die App bitte neu und versuchen Sie es erneut.","block":"Block","unblock":"Entsperren","blocked":"verstopft","block_channel":"Blockieren Sie diesen Kanal","block_channel_confirm":"Wenn Sie den Kanal blockieren, wird er aus Ihrer Timeline entfernt. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","block_creator":"Blockieren Sie den Ersteller dieses Kanals","unblock_creator":"Entsperren Sie den Ersteller dieses Kanals","block_creator_confirm":"Block-Ersteller entfernt alle von diesem Ersteller erstellten Kanäle aus Ihrer Timeline. Sie können Ihre Sperrliste in den Kontoeinstellungen verwalten.","share_url_copied":"Die Freigabe-URL wird in Ihre Zwischenablage kopiert","follow_time":"Folgen Sie der Zeit","update_time":"Updatezeit","search":"Suchen","type":"Typ","added":"Hinzugefügt","click_to_task":"Klicken Sie hier, um zur Aufgabe zu gelangen","lib_already_added":"Sie haben dieses Video bereits hinzugefügt","description":"Beschreibung","poster":"Poster","channel_poster":"Kanalplakat","preview":"Vorschau","creator":"Schöpfer","creator_detail":"Details zum Ersteller","loading_creator":"Erstellerinformationen werden geladen","wait_for_creator_loaded":"Bitte warten Sie, bis die Erstellerinformationen geladen sind.","follower":"Anhänger","followers":"Anhänger","follower_list":"Follower-Liste","user":"Benutzer","channel_title":"Kanaltitel","channel_id":"Kanal ID","post_title":"Titel des Beitrags","post_id":"Beitrags-ID","import_data_from_excel":"Importieren Sie Daten aus Excel","set_excel_keys":"Excel-Tasten festlegen","excel_import_succeded":"Der Excel-Import war erfolgreich","excel_import_success_msg":"{0} Zeilen können hinzugefügt werden, {1} ungültige und {2} doppelte Elemente werden ignoriert","cannot_find_channel":"Kanal kann nicht gefunden werden","cannot_find_posts":"Beiträge können nicht gefunden werden","add_channel":"Kanal hinzufügen","add_post":"Beitrag hinzufügen","edit_channel":"Kanal bearbeiten","channel_setting":"Kanaleinstellung","edit_post":"Beitrag bearbeiten","edit_posts":"Beiträge bearbeiten","channel_detail":"Kanaldetails","remove":"Entfernen","remove_channel":"Kanal entfernen","remove_channel_confirm":"Möchten Sie diesen Beitrag wirklich entfernen? Dies kann nicht wiederhergestellt werden.","remove_post":"Beitrag entfernen","remove_post_confirm":"Möchten Sie diesen Kanal wirklich entfernen? Dies kann nicht wiederhergestellt werden.","preview_mode":"Vorschau Modus","preview_mode_desc":"Dies ist eine Vorschau Ihres Kanals. Alle Filmpreise finden Sie hier.","edit_user_profile":"Benutzerprofil bearbeiten","name":"Spitzname","avatar":"Benutzerbild","no_following":"Keine folgenden Kanäle. Klicken Sie hier, um dorthin zu gelangen","no_recommend":"Keine empfohlenen Kanäle. Klicken Sie hier, um dorthin zu gelangen","first_recomment_msg":"Es kann eine Weile dauern, wenn die App zum ersten Mal gestartet wird.","invalid_image":"Ungültiges Bild","image_not_reachable":"Diese Bild-URL ist nicht erreichbar.","channel_not_found":"Kanal nicht gefunden","cannot_get_channel_info":"Kanalinformationen können nicht abgerufen werden. Dieser Kanal wurde möglicherweise von seinem Ersteller entfernt und ist nicht mehr verfügbar.","validate_error":"Validierungsfehler","validate_user_name_no_space":"Der Benutzername sollte keine Leerzeichen enthalten","validate_url_no_space":"Die URL sollte keine Leerzeichen enthalten","validate_user_name_length":"Der Benutzername sollte eine Länge zwischen {0} und {1} haben","validate_user_desc_length":"Die Benutzerbeschreibung sollte nicht mehr als {0} Zeichen umfassen","validate_user_avatar_url":"Der Benutzer-Avatar sollte eine URL mit weniger als 2048 Zeichen sein","validate_channel_title_length":"Der Kanaltitel sollte eine Länge zwischen 1 und 100 haben","validate_channel_desc_length":"Die Kanalbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_channel_image_url":"Die Kanalvorschau sollte eine URL mit weniger als 2048 Zeichen sein","validate_post_title_length":"Der Beitragstitel sollte eine Länge zwischen 1 und 100 haben","validate_post_desc_length":"Die Beitragsbeschreibung sollte eine Länge zwischen 10 und 300 haben","validate_post_image_url":"Das Poster sollte eine URL mit weniger als 2048 Zeichen haben","validate_post_url":"Ungültige ${displayName}-URL","validate_post_url_length":"Die ${displayName}-URL sollte nicht mehr als 2048 Zeichen umfassen","film_rate":"Filmpreis","set_film_rate":"Filmrate einstellen","select_a_rate_before_enter":"Sie müssen einen Filmpreis auswählen, bevor Sie die Medienbibliothek aufrufen.","library_available_rate":"In der Bibliothek verfügbarer Filmpreis","rate_g":"G – Allgemeines Publikum","rate_g_desc":"Alle Altersgruppen zugelassen. Nichts, was Eltern beleidigen würde, wenn Kinder es ansehen.","rate_pg":"PG – Elternberatung empfohlen","rate_pg_desc":"Einige Materialien sind möglicherweise nicht für Kinder geeignet. Eltern werden aufgefordert, „elterliche Anleitung“ zu geben. Kann Material enthalten, das Eltern für ihre kleinen Kinder möglicherweise nicht mögen.","rate_pg_13":"PG-13 – Eltern dringend gewarnt","rate_pg_13_desc":"Einige Inhalte könnten für Kinder unter 13 Jahren ungeeignet sein. Eltern werden dringend gebeten, vorsichtig zu sein. Einige Materialien sind möglicherweise für Jugendliche im Vorschulalter ungeeignet.","rate_r":"R – Eingeschränkt","rate_r_desc":"Personen unter 17 Jahren benötigen die Begleitung eines Elternteils oder eines erwachsenen Erziehungsberechtigten. Enthält etwas Material für Erwachsene. Eltern werden dringend gebeten, mehr über den Film zu erfahren, bevor sie ihre kleinen Kinder mitnehmen.","rate_nc_17":"NC-17 – Nur für Erwachsene","rate_nc_17_desc":"Niemand unter 17 Jahren wird zugelassen. Eindeutig erwachsen. Kinder haben keinen Zutritt.","set_as_private":"Als privat festlegen","hide_in_explore":"Diesen Kanal auf der Erkundungsseite ausblenden","hidden":"Versteckt","select_a_rate":"Bitte wählen Sie einen Filmpreis aus","select_from_tasks":"Wählen Sie aus Aufgaben aus","import_from_magnet":"Import aus Magnet:?...","input_magnet_url":"Eingangsmagnet:? URL","task_title":"Aufgabentitel","set_title":"Titel festlegen","add_to_local_favorites":"Zu lokalen Favoriten hinzufügen","remove_from_local_favorites":"Aus lokalen Favoriten entfernen","removed_favorite":"Favorit entfernt","import_or_export_favorites":"Favoriten importieren/exportieren","export_local_favorites":"Lokale Favoriten als Backup exportieren","import_favorites_file":"Favoritendatei importieren","not_a_favorite_file":"Diese Datei ist keine bevorzugte Sicherungsdatei","connection_status":"Verbindungsstatus","gun_server_list":"Cache-Knoten","custom_nodes":"Benutzerdefinierte Cache-Knoten","custom_nodes_hint":"Benutzerdefinierte Cache-Knoten werden nach dem Neustart der App angewendet","wait_for_reboot":"Warten auf Neustart...({seconds}s)","reboot_now":"Jetzt neustarten","reboot_later":"Später neustarten","peer_list":"Direkte Knoten","server":"Knoten-URL","peer":"Peer","peer_id":"Knoten-ID","connection":"Verbindung","data_source":"Datenquelle","sync":"Synchronisieren","syncing":"Synchronisierung","sync_completed":"Synchronisierung abgeschlossen","got_all_post":"Du hast bereits alle Beiträge erhalten","placeholder_channel_title":"Ihr Kanalname","placeholder_channel_desc":"Beschreibung zu diesem Kanal","placeholder_post_title":"Filmname (Jahr)","placeholder_post_desc":"Beschreibung zu diesem Film","private_channel":"Privater Kanal","creator_blocked":"Ersteller blockiert","go_to_library":"Geh zur Bibliothek?","go_to_library_channel_msg":"Möchten Sie zum Bibliothekskanal {0} gehen?","magnet_does_not_have_name":"Dieser Magnet:? Wenn die URL keinen Namen hat, müssen Sie zuerst einen Beitragstitel hinzufügen.","no_available_post":"Kein Beitrag verfügbar","following_channel_no_post":"Auf allen Ihren folgenden Kanälen sind keine Beiträge verfügbar. Dies kann durch einen Netzwerkfehler verursacht werden. Wenn Sie einigen Kanälen bereits gefolgt sind, werden die Beiträge möglicherweise später geladen.","share_to_library":"In der Bibliothek teilen","quick_start":"Schnellstart","quick_start_desc":"Beginnen Sie mit der Erstellung eines Beitrags mit einer Aufgabe oder Datei","select_file":"Datei aussuchen...","select_folder":"Ordner auswählen...","post_options":"Post-Optionen","channel_options":"Kanaloptionen","create_new_channel":"Neuen Kanal erstellen","use_existed_channel":"Vorhandenen Kanal nutzen","select_existed_channel":"Vorhandenen Kanal auswählen","uploaded_by":"{title} hochgeladen von {name}","created_by":"{title} erstellt von {name}","creating_new_channel":"Neuen Kanal erstellen...","created_new_channel":"Neuer Kanal erstellt","creating_new_post":"Neuer Beitrag wird erstellt...","created_new_post":"Neuer Beitrag erstellt","create_new_post":"Neuen Beitrag erstellen","quick_start_timeout":"{0} Zeitüberschreitung. Dies kann durch einen Netzwerkfehler verursacht werden. Bitte versuchen Sie es später noch einmal.","file_too_large":"Datei zu groß","file_too_large_msg":"Diese Datei ist größer als 4 GB ({size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie fortfahren?","resolving_folder_files":"Ordnerdateien werden aufgelöst...","folder_too_large":"Ordner zu groß","folder_too_large_msg":"Die Dateien in diesem Ordner sind größer als 4 GB (insgesamt {size}) und die Vorbereitung kann lange dauern. Sind Sie sicher, dass Sie hochladen möchten?","creating_new_task":"Neue Aufgabe erstellen...","cannot_create_task":"Aufgabe kann nicht erstellt werden","cannot_create_task_msg":"Dies kann durch einen Fehler verursacht werden. Wenn die Aufgabe korrekt erstellt wurde, können Sie die Aufgabenliste später überprüfen.","cannot_get_task_name":"Der Aufgabenname kann nicht abgerufen werden. Sie müssen zuerst eines eingeben.","remove_old_task":"Alte Aufgabe entfernen","remove_old_task_desc":"Im Webmodus kann jeweils nur eine Aufgabe erstellt werden. Möchten Sie die alte Aufgabe entfernen?","subtitle_list":"Untertitelliste","optional":"Optional","with_subtitle":"Mit {language} Untertiteln","maximumSubtitleNum_limit":"Die Anzahl der Untertitel hat ihr Maximum erreicht","add_subtitle_url":"Untertitel-Download-Link hinzufügen","cannot_add_subtitle":"Untertitel konnten nicht hinzugefügt werden","cannot_add_subtitle_msg":"Untertitelsprache nicht ausgewählt oder ungültiger Download-Link.","support_subtitle_type":"Es werden nur Untertitel im SRT- und VTT-Format unterstützt.","recommend_opensubtitles":"Es wird empfohlen, den Untertitel-Download-Link oder die Untertitel-ID unter www.opensubtitles.org zu verwenden.","take_down":"Notieren","serious_violation":"Schwerer Verstoß","copyright_disputes":"Urheberrechtsstreitigkeiten","adults_only":"Nur für Erwachsene","takedown_reason":"Grund für die Deaktivierung","takedown_mode":"Takedown-Modus","admins":"Admins","takedown_user":"Deaktiviere diesen Ersteller","takedown_channel":"Deaktiviere diesen Kanal","takedown_post":"Lösche diesen Beitrag","select_takedown_reason":"Wählen Sie den Deaktivierungsgrund aus","takedown_invalid_reason":"Ungültiger Deaktivierungsgrund","takedown_invalid_user_id":"Ungültige Benutzer-Id. Die ID sollte 87 Zeichen umfassen","takedown_invalid_channel_id":"Ungültige Kanal-ID. Die ID sollte 20 Zeichen umfassen","takedown_invalid_post_id":"Ungültige Beitrags-ID. Die ID sollte 20 Zeichen umfassen","takedown_management":"Nehmen Sie das Management ab","users":"Benutzer","channels":"Kanäle","posts":"Beiträge","you":"Du","preset":"Voreingestellt","admin":"Administrator","committee":"Ausschuss","about_takedown_mode":"Über den Takedown-Modus:\\nVoreinstellung: Im Github-Repository konfiguriert. Alle werden aus der Bibliothek entfernt.\\nAdmin: Jeder Admin, für den er stimmt, wird entfernt.\\nAusschuss: Mindestens die Hälfte der Admins, die dafür stimmen, werden abgesetzt.","cannot_edit_preset":"Sie können diese Zeile nicht bearbeiten, da es sich um eine voreingestellte Zeile handelt","cannot_edit_not_vote":"Sie können diese Zeile nicht bearbeiten, da Sie nicht dafür gestimmt haben","remove_vote":"Entferne deine Stimme","post_preload_failed":"Dieser Beitrag konnte nicht vorab geladen werden. Der Download-Link ist möglicherweise veraltet, sodass dieser Beitrag nicht sofort abgespielt werden kann.","about_cache_node":"Über den Cache-Knoten","edit_cache_node":"Cache-Knoten bearbeiten","create_cache_node":"Cache-Knoten erstellen","about_cache_node_desc":"${displayName} verwendet den Gun-Server als Cache-Knoten. Sie können benutzerdefinierte Knoten vorab bearbeiten","learn_how_to_deploy_gun":"Erfahren Sie, wie Sie Ihren eigenen Waffenserver bereitstellen","repeat_add":"Die Aufgabe wurde hinzugefügt. Bitte fügen Sie sie nicht erneut hinzu","upload":"Hochladen","download":"Herunterladen","delete":"Löschen","delete_task":"Aufgabe löschen","delete_confirm_message":"Diese Aufgabe löschen? Dies ist unwiderruflich","also_delete_files":"Löschen Sie auch Dateien","default_delete_files":"Standardmäßig werden heruntergeladene Dateien nach der Entfernungsaufgabe gelöscht","not_now":"Nicht jetzt","delete_autoupload_confirm":"Diese Aufgabe enthält eine Datei, die Sie im Verzeichnis für den automatischen Upload abgelegt haben. Wenn Sie diese Aufgabe löschen, wird auch die Datei gelöscht.","delete_anyway":"Trotzdem löschen","upload_too_many_files":"Laden Sie zu viele Dateien hoch","ask_if_unlimit_upload_amount":"Das Auto-Upload-Verzeichnis enthält zu viele Dateien. Möchten Sie die Begrenzung der Upload-Menge deaktivieren? *Dies kann zu Leistungsproblemen führen","disable_limitation":"Begrenzung deaktivieren","not_length":"Der Betrieb mehrerer Dateien wird derzeit nicht unterstützt. Bitte kooperieren Sie","download_torrent":"Download-Datei","upload_torrent":"Datei hochladen","files":"Dateien","file":"Datei","folder":"Ordner","start_all":"Beginnen Sie alles","pause_all":"Pause all","remove_all":"Alles entfernen","upload_all":"Alles hochladen","clear_history":"Klare Geschichte","pause_all_finish_payments":"Damit sind alle Zahlungen abgeschlossen.","accelerating":"Beschleunigen","link_task":"Link-Aufgabe","torrent_task":"Dateiaufgabe","ok":"OK","cancel":"Stornieren","download_directory_position":"Verzeichnisposition herunterladen","torrent_file":"Aufgabendatei","magnetic_link_incorrect":"Das Linkformat ist falsch","delete_fail":"Fehler beim Löschen","pause":"Pause","paused":"Angehalten","stop_torrent":"Stoppen","seed":"Samen","resume":"Wieder aufnehmen","downloading":"wird heruntergeladen","downloaded":"Heruntergeladen","uploading":"Hochladen","auto_uploading":"Automatisches Hochladen","uploaded":"Hochgeladen","pending":"Warten auf andere Aufgaben","verifying":"Verifizieren","waiting_for_verify":"Warten auf Bestätigung","seeding":"Aussaat","completed":"Vollendet","status":"Status","task_name":"Aufgabennname","size":"Größe","progress":"Fortschritt","sort":"Sortieren","ascending":"Aufsteigend","descending":"Absteigend","file_loading":"Datei wird geladen...","loading":"Wird geladen","unknown_status":"Unbekannt","play_while_downloading":"Spielen...","upload_or_play":"Hochladen / Abspielen","play":"Spielen","ask_if_upload_file":"Datei hochladen?","ask_if_upload_or_play":"Datei hochladen oder abspielen?","torrent_error":"Fehler beim Hinzufügen einer Aufgabe:","no_peers":"Versuchen Sie es mehr als {0} Mal erneut und es ist kein Peer verfügbar","torrent_exists":"Aufgabe ist bereits vorhanden.","show_origin_torrent":"Holen Sie sich die ursprüngliche Aufgabendatei oder URL","show_directory":"Öffnen Sie das Verzeichnis dieses Torrents","task_num":"Aufgaben","total_upload_speed":"Upload-Geschwindigkeit","total_download_speed":"Download-Geschwindigkeit","path_missing":"Fehler: Torrent-Pfad konnte nicht gefunden werden","origin_not_found":"Informationen zur Ursprungsaufgabe können nicht gefunden werden.","text_copied":"Die Magnum-URL wird in Ihre Zwischenablage kopiert","copy_magnet_uri":"Magnet kopieren:? URI","copy_download_uri":"Download-URI kopieren","copy_share_uri":"Freigabe-URI kopieren","uri_copied":"URI wurde erfolgreich in Ihre Zwischenablage kopiert","uri_copy_failed":"URI konnte nicht kopiert werden","more":"Mehr...","toggle_list_mode":"Listenmodus umschalten","comment":"Kommentar","operations":"Operationen","open_directory":"Verzeichnis öffnen","no_downloading_task":"Keine Download-Aufgabe","remove_all_downloading_tasks":"Alle Download-Aufgaben entfernen?","remove_all_upload_tasks":"Alle Upload-Aufgaben entfernen?","remove_autoupload_files":"Entfernen Sie automatisch hochgeladene Dateien","remove_all_history":"Gesamten Verlauf entfernen?","remaining":"Übrig","created_time":"Zeit geschaffen","used_time":"Benötigte Zeit","completed_time":"Abgeschlossene Zeit","yesterday":"Gestern","before_yesterday":"{empty}","earlier":"Früher","miss_file":"Einige Dateien fehlen","delete_miss_file_task":"In {0} fehlen Fome-Dateien.","common_peer":"Gemeinsamer Peer","ab_peer":"${displayName} Peer","ab_peer_verified":"Verifizierter ${displayName}-Peer","ab_peer_available":"${displayName} Peer(s) verfügbar","alphabiz_accelerating":"${displayName} beschleunigt","income":"Einkommen","income_info":"Einkommen (heute/gesamt)","total_income_info":"Einkommen: {0}(heute) / {1}(gesamt)","login_to_see_income":"Melden Sie sich an, um die Einkommensstatistik anzuzeigen","credit_cost":"Kreditkosten","downloaded_by_payment":"Von Payments heruntergeladen","file_not_found":"Diese Datei kann nicht lokal gefunden werden","no_task":"Nicht fragen","no_matched_task":"Keine passende Aufgabe","space_not_enough":"Speicherplatz reicht nicht aus","need_more_space":"Benötigt {0} mehr Speicherplatz, aber auf der aktuellen Festplatte sind {1} frei ({2} reserviert). Aufgaben werden angehalten. Das Vorladen der Bibliothek ist deaktiviert. Sie können es unter [Einstellungen – Erweitert] wieder aktivieren.","seeders":"Sämaschinen","last_update":"Letztes Update","connecting":"Verbinden","connected":"In Verbindung gebracht","request_timed_out":"Zeitüberschreitung der Anforderung","connection_failed":"Verbindung fehlgeschlagen","invalid_download_url":"Ungültige Download-URL","download_link":"Download-Link","empty_files":"Keine Dateien im Verzeichnis","duplicate_task":"Doppelte Aufgabe","duplicate_tracker":"Doppelter Tracker","this_task_not_ready":"Diese Aufgabe ist noch nicht fertig. Wenn Sie diese Aufgabe anhalten, wird sie direkt entfernt.","some_task_not_ready":"Einige Aufgaben sind noch nicht fertig. Wenn Sie diese Aufgaben pausieren, werden sie direkt entfernt.","failed_to_delete_files":"Dateien konnten nicht gelöscht werden","failed_to_delete_files_desc":"Einige Dateien der Aufgabe konnten nicht gelöscht werden. Möglicherweise müssen Sie sie manuell löschen","unknown_error":"Unbekannter Fehler: {0}","more_files_are_not_shown":"({0} weitere Dateien werden aus Leistungsgründen nicht angezeigt)","no_available_file":"Keine verfügbare Datei. Bitte warten Sie, bis die Aufgabe fertig ist.","service_worker_error":"ServiceWorker kann nicht zum Spielen geladen werden. Möglicherweise unterstützt Ihr Browser diese Funktion nicht oder der ServiceWorker ist nicht aktiviert. Möglicherweise müssen Sie diese Seite neu laden und es erneut versuchen.","add_task_first":"Sie müssen zuerst eine Aufgabe hinzufügen.","player_task_time":"Der Spieler braucht zu viele Sekunden, um sich auf das Spiel vorzubereiten. Möglicherweise stimmt etwas mit der Aufgabe nicht.","web_mode_hint":"Der Webmodus von ${displayName} unterstützt nur WebRTC-Peers. Für ein optimales Erlebnis laden Sie bitte die Desktop-App ${displayName} herunter.","web_mode_task_hint":"Klicken Sie auf die Schaltflächen unten, um eine Aufgabe hinzuzufügen. Sie können jeweils nur eine Aufgabe hinzufügen.","save_to_local":"Lokal speichern","save_as_zip":"Als ZIP speichern","creating_save_file":"Speicherdatei wird erstellt...","upload_as_one_directory":"Als ein Verzeichnis hochladen","upload_as_single_files":"Als einzelne Dateien hochladen","web_mode_upload_single":"Sie können im Webmodus nur eine einzelne Datei hochladen","download_success":"Erfolgreich herunterladen","download_fail":"Herunterladen fehlgeschlagen","wait_for_downloaded_to_share":"Bitte warten Sie, bis die Aufgabe heruntergeladen wurde, bevor Sie sie freigeben.","download_with_cellular":"Laden Sie Aufgaben per Mobilfunk herunter","download_with_cellular_desc":"Sie verwenden ein Mobilfunknetz. Für Download-Aufgaben über das Mobilfunknetz können bei Ihrem Mobilfunkanbieter zusätzliche Gebühren anfallen.","download_with_cellular_confirm":"Immer noch mit dem Mobilfunk herunterladen","language":"Sprache","appearance":"Aussehen","darkModeSystem":"System","darkModeLight":"Licht","darkModeDark":"Dunkel","basic_setting":"Basic","hideMenu":"App-Menü ausblenden (nur Windows und Linux)","autoHide":"Fenster automatisch ausblenden","autoStart":"Beim Login öffnen","restore":"Behalten Sie Größe und Position des Fensters beim Verlassen bei","autoStartUnfinished":"Alle nicht erledigten Aufgaben automatisch fortsetzen","default_download_path":"Standardpfad","download_directory":"Verzeichnis herunterladen","upload_directory":"Verzeichnis hochladen","enable_auto_upload":"Aktivieren Sie den automatischen Upload","unlimit_upload_amount":"Unbegrenzte Upload-Menge","unlimit_upload_warning":"Erlauben Sie das Hochladen einer großen Anzahl von Dateien. Dies kann zu Leistungsproblemen führen","start":"Start-up","transport_setting":"Übertragung","upload_limit":"Upload-Limit","download_limit":"Download-Limit","payed_user_share_rate":"Bezahlter Benutzeranteilspreis","unlimited":"Unbegrenzt","limit_input_error":"Die Grenzwertzahl sollte positiv sein","BT_setting":"Aufgabeneinstellungen","saveLinkSeed":"Link als Aufgabendatei speichern","autoDownload":"Link und Inhalt automatisch herunterladen","continuousSeeding":"Setzen Sie die Aussaat fort, bis Sie sie manuell stoppen","seedSharingRate":"Saatverhältnis","seedTime":"Saatzeit (Minuten)","task_manage":"Aufgabenmanagement","maximumDownloadNum":"Maximal aktive Aufgaben","maximumConnectionsNum":"Maximale Verbindung pro Server","range_error":"Der Bereich sollte zwischen {0} und {1} liegen","random":"zufällig","breakpointContinuation":"Weitermachen","automaticSkip":"Download nach dem Hinzufügen der Aufgabe automatisch anzeigen","afterNotification":"Benachrichtigung nach Abschluss des Downloads","deleteConfirm":"Vor dem Löschen der Aufgabe ist keine Bestätigung erforderlich","submit":"Speichern und anwenden","discard":"Verwerfen","reset":"Zurücksetzen","reset_all_settings":"Alle Einstellungen zurücksetzen?","preferences_resetted":"Einstellungen zurückgesetzt","traditional_chinese":"traditionelles Chinesisch","japanese":"japanisch","english":"Englisch","chinese":"Vereinfachtes Chinesisch","advancedSettings":"Fortschrittlich","autoUpdate":"Auto-Update","autoCheckUpdate":"Automatisch nach Updates suchen","proxy":"Stellvertreter","useProxyService":"Proxy aktivieren","trackerService":"Tracker-Server","recommendUse":"Empfohlen","autoUpdateTrackerServiceList":"Aktualisieren Sie die Tracker-Liste jeden Tag automatisch","manualUpdateTracker":"Manuelles Update","manualUpdateSuccess":"Tracker-Server erfolgreich aktualisieren","manualUpdateFail":"Aktualisierung fehlgeschlagen von:","listenPort":"Hören Sie die Häfen","BTlistenPort":"Datenübertragungsport","DHTlistenPort":"Verteilter Hash-Port","protocols":"Kompatible Protokolle","setDefaultClientForFollowingProtocols":"Als Standard-Client für die folgenden Protokolle festlegen","magnetUrl":"Magnet","video_file":"Videodatei","audio_file":"Audiodatei","security":"Sicherheit","impersonateUserAgent":"Schein-Benutzeragent","RPCauthorizationkey":"RPC-Geheimnis","viewDocument":"Sehen Sie sich das RPC Secret-Handbuch an","developer":"Entwickler","applicationLogPath":"App-Protokollpfad","downloadSessionPath":"Sitzungspfad herunterladen","resetDownloadSessionRecord":"Download-Sitzung zurücksetzen","restoreInitialSettings":"Werkseinstellungen zurückgesetzt","preferences_set_successfully":"Einstellungen erfolgreich gespeichert!","preferences_set_fail":"Einstellungen speichern schlägt fehl!","change_not_save":"Änderungen werden nicht gespeichert","discard_all_changes":"Alle Änderungen verwerfen und gehen?","stay_in_page":"Bleiben Sie auf der Seite","disk_usage":"Festplattennutzung","pause_if_less_space":"Pausieren und benachrichtigen, wenn der Speicherplatz weniger als (MB) beträgt","default_video_player":"Standard-Videoplayer","video_cache_time":"Stream-Play-Cache","minutes":"Protokoll","system_default":"Systemfehler","media_player":"Media Player","library_film_rate":"Verfügbarer Filmpreis","library_show_explore":"Seite [Erkunden] anzeigen","library_setting":"Bibliothekseinstellung","library_sync_setting":"Einstellung für die Synchronisierung der Bibliothek","keychain_sync_status":"Synchronisierungsstatus des Schlüsselbunds","sync_with_aws":"Schlüsselbund mit Amazon Web Services synchronisieren","backup_to_local":"Backup in lokaler Datei","enable_sync_with_aws":"Aktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws":"Deaktivieren Sie die Synchronisierung mit AWS","disable_sync_with_aws_desc":"Dadurch wird der gespeicherte Schlüssel auf dem Server entfernt. Bitte stellen Sie sicher, dass Sie Ihren Schlüssel bereits exportiert haben.","input_independent_password":"Geben Sie ein unabhängiges Passwort ein","change_independent_password":"Unabhängiges Passwort ändern","password_error":"Passwort-Fehler","password_invalid":"Passwort ungültig","key_existed":"Schlüssel vorhanden","key_not_found":"Schlüssel nicht gefunden","library_recommend":"Bibliothek empfehlen","show_all_channels":"Alle Kanäle auf der Empfehlungsseite der Bibliothek anzeigen","not_logged_in":"Nicht eingeloggt","login_to_continue":"Melden Sie sich an, um fortzufahren","mnemonic_code":"Mnemonischer Code","wordlist":"Wortliste","restore_code":"Aus Code wiederherstellen","generate_code":"Code generieren","export_mnemonic_code":"Mnemonischen Code exportieren","import_mnemonic_code":"Mnemonischen Code importieren","print":"Drucken","save_as_txt":"Als TXT speichern","save_as_pdf":"Als PDF speichern","from_file":"Aus Datei","not_valid_mnemonic_code":"Dies ist kein gültiger mnemonischer Code","cannot_parse_code_as_key":"Dieser mnemonische Code kann nicht als Bibliotheksschlüssel analysiert werden","import_key_hint":"Möchten Sie diesen Schlüssel wirklich importieren? Dadurch wird Ihr alter Schlüssel in der Bibliothek wiederhergestellt.","import_key_confirm":"Ja, importieren Sie es.","library_preload":"Laden Sie Aufgaben aus der Bibliothek vorab","show_preload":"Vorladeaufgaben anzeigen","set_download":"Download-Verzeichnis festlegen","set_download_desc":"Für die macOS App Store-Version befindet sich das Standard-Download-Verzeichnis in der Sandbox der App und wird nach der Deinstallation der App gelöscht. Wenn Sie Ihre Downloaddateien behalten möchten, müssen Sie manuell ein anderes Downloadverzeichnis auswählen.","home":"Heim","home_caption":"Download/Upload und Mediendateien","library":"Bibliothek","library_caption":"Entdecken Sie Medienressourcen","player":"Spieler","player_caption":"Media Player","credits":"Credits","credits_caption":"Überprüfen Sie den Kontostand","account":"Konto","account_caption":"Anmelden/Registrieren/Verwaltung","settings":"Einstellungen","settings_caption":"Einstellungen für App, Player, Konto","development":"Entwicklung","development_caption":"Entwicklermodus für den internen Gebrauch","basic":"Basic","basic_caption":"Grundeinstellungen","advanced":"Fortschrittlich","advanced_caption":"Erweiterte Einstellungen","blockchain":"Geldbörse","blockchain_caption":"${displayName} Dezentrale Geldbörse","internal_notice":"Interne Freigabemitteilung","release_notes":"Versionshinweise","terms_and_conditions":"Geschäftsbedingungen","license_and_listen_notices":"Lizenz- und Listen-Open-Source-Hinweise","close":"Schließen","success":"Erfolg","fail":"Scheitern","account_email_invalid_address":"Ungültige E-Mail-Adresse","account_email_invalid_domain":"Ungültige E-Mail-Domäne","account_email_unknown_status":"Unbekannter E-Mail-Zustellungsstatus","account_email_unavailable_address":"Nicht verfügbare E-Mail-Adresse","account_email_suppressed_address":"Unterdrückte E-Mail-Adresse","account_loading":"Wird geladen...","account_is_required":"ist erforderlich","account_sign_in_your_account":"anmelden","account_username":"Nutzername","account_username_email_phone":"Telefonnummer oder E-Mail","account_password":"Passwort","account_new_password":"Neues Kennwort","account_re_enter_password":"Kennwort erneut eingeben","account_password_not_equal":"Zwei Passwörter sind nicht gleich","account_new_password_same":"Das Passwort ist dasselbe wie das Originalpasswort","account_forgot_your_password":"Haben Sie Ihr Passwort vergessen?","account_reset_password":"Passwort zurücksetzen","account_sign_in":"anmelden","account_signed_in":"Angemeldet","account_sign_up":"Melden Sie sich an","account_find_your_account":"Finde deinen Account","account_enter_your_username":"Geben Sie Ihre Telefonnummer oder E-Mail ein","account_search":"Suchen","account_email_sent_tip":"Eine E-Mail mit einem Bestätigungscode wurde an Ihre E-Mail-Adresse gesendet:","account_phone_sent_tip":"Eine SMS mit einem Bestätigungscode wurde an Ihr Telefon gesendet:","account_email_phone_sent_tip":"E-Mail und SMS mit Bestätigungscode wurden an Ihre E-Mail-Adresse bzw. Ihr Telefon gesendet:","account_software_token_tip":"MFA ist für Ihr Konto aktiviert. Um die Anmeldung abzuschließen, schalten Sie bitte Ihr Gerät ein oder zeigen Sie es an und geben Sie den TOTP ein","account_reset_your_password":"Setze dein Passwort zurück","account_verification_code":"Bestätigungscode","account_resend_code":"Code erneut senden","account_code_has_been_resent":"Der Bestätigungscode wurde erneut gesendet","account_password_has_been_reset":"Das Passwort wurde zurückgesetzt","account_submit":"Einreichen","account_sign_up_your_account":"Registrieren Sie Ihr Konto","account_fill_required_fields":"Füllen Sie unten die erforderlichen Felder aus.","account_fill_optional_fields":"Füllen Sie die optionalen Felder unten aus.","account_email":"Email","account_invitation":"Einladung","account_invitation_code":"Einladungscode","account_i_accept":"Ich akzeptiere","account_license_terms":"die Lizenz und die Bedingungen","account_next":"Nächste","account_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren.","account_verify_fill_optional_fields":"Überprüfen Sie die optionalen Felder und füllen Sie sie aus.","account_nickname":"Spitzname","account_gender":"Geschlecht","account_male":"Männlich","account_female":"Weiblich","account_not_say":"Nicht sagen","account_birthday":"Geburtstag","account_phone_number":"Telefonnummer","account_locale":"Lokal","account_tip_verified":"Verifiziert, Anmelden...","account_verified":"verifiziert","account_unverified":"unbestätigt","account_signed_up":"Angemeldet","account_verify_your_identity":"Bestätigen Sie Ihre Identität","account_finish":"Beenden","account_signed_out":"Abgemeldet","account_change_password":"Kennwort ändern","account_change_email":"Ändern Sie die E-Mail","account_change_phone_number":"Telefonnummer ändern","account_sign_out":"Abmelden","account_current_password":"Aktuelles Passwort","account_re_enter_new_password":"neues Passwort erneut eingeben","account_personal_information":"Information","account_edit":"bearbeiten","account_reset":"zurücksetzen","account_greeting":"Hallo,","account_cancel":"Stornieren","account_change":"ändern","account_not_set":"nicht eingestellt","account_setting":"Einstellung","account_copy_code":"Kopieren Sie den Code","account_account_setting":"Konto","account_task_page":"Kreditaufgabe","account_setting_caption":"Passwort ändern / Informationen bearbeiten","account_security":"Sicherheit","account_want_to_join":"Möchtest du mitmachen?","account_sign_in_now":"anmelden","account_changed":"Geändert","account_clipboard_with_invitation_code":"Einladungscode kopiert","account_clipboard_with_code":"Der Code kopiert","account_invitation_code_dialog_tip":"Sie senden Ihrem Freund eine E-Mail oder SMS mit einem Einladungscode:","account_available":"verfügbar","account_invited":"eingeladen","account_used":"gebraucht","account_invitation_code_sent":"Der Einladungscode wurde gesendet","account_invitation_channel_required":"Füllen Sie mindestens einen Einladungskanal aus","account_no_verification_code":"Sie können den Bestätigungscode nicht erhalten?","account_no_phone_number":"Keine Telefonnummer?","account_sign_up_by_email":"Melden Sie sich per E-Mail an","account_no_email":"Keine Email?","account_sign_up_by_phone_number":"Melden Sie sich per Telefonnummer an","account_no_totp":"Nicht TOTP?","account_tip_no_totp":"Wenn kein TOTP vorhanden ist, richten Sie bitte zuerst TOTP ein","account_setup_totp":"TOTP einrichten","account_contact_information":"Kontaktinformationen","account_delete_account":"Konto löschen","account_deleted":"Gelöscht","account_can_not_mfa":"MFA in Schwierigkeiten?","account_set_mfa_type":"MFA konfigurieren","account_disable_mfa":"Deaktivieren Sie MFA","account_disabled_mfa":"Deaktivierte MFA","account_sms_mfa":"SMS-MFA","account_totp_mfa":"TOTP MFA","account_totp":"TOTP","account_not_recommend":"Nicht empfohlen","account_oauth_sign_in_with":"Melden Sie sich mit {provider} an","account_sign_in_failed":"Anmeldung fehlgeschlagen","account_tip_oath_sign_up":"Die E-Mail-Adresse, die dem aktuellen {provider}-Konto entspricht: {email} hat noch kein Konto erstellt","account_tip_confirm_delete_account":"Geben Sie das Passwort des aktuellen Kontos ein, um zu bestätigen, dass Sie das aktuelle Konto löschen möchten. (Gelöschte Konten können nicht wiederhergestellt werden.)","account_tip_config_mfa":"Als sekundäre Authentifizierung können Sie SMS oder ein zeitbasiertes Einmalpasswort (TOTP) verwenden","account_error_can_not_enable_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um MFA zu aktivieren","account_tip_can_not_enable_sms_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um SMS MFA zu aktivieren","account_tip_can_not_enable_totp_mfa":"Sie müssen Ihre E-Mail-Adresse und Mobiltelefonnummer verknüpfen, um TOTP MFA zu aktivieren","account_tip_setup_totp":"Verwenden Sie Apps wie Authenticator, um den untenstehenden QR-Code zu scannen, oder kopieren Sie den Code manuell, um ein Sicherheitstoken hinzuzufügen","account_tip_verify_totp":"Überprüfen Sie Ihr TOTP","account_link_your_social_account":"Verknüpfen Sie Ihr soziales Konto","account_unlink_your_social_account":"Soziales Konto entbinden","account_tip_confirm_link":"Sind Sie sicher, dass Sie das Girokonto mit Ihrem {provider}-Konto verknüpfen möchten?","account_tip_confirm_unlink":"Sind Sie sicher, Ihr gebundenes {provider}-Konto zu kündigen?","account_tip_linking":"Bindung...","account_tip_unlinking":"Entbindung...","account_linked":"Gebunden","account_unlinked":"Ungebunden","account_error_can_not_link_to_the_linked_account":"Das aktuelle soziale Konto ist an ein anderes Konto gebunden","account_error_can_not_link_to_the_mismatched_email":"Das aktuelle Konto und die E-Mail-Adresse des sozialen Kontos stimmen nicht überein","account_error_can_not_link_before_email_verified":"Das soziale Konto kann nicht verknüpft werden, da das aktuelle Konto nicht an eine verifizierte E-Mail-Adresse gebunden ist","account_tip_confirm_verify_email_phone":"Soll ein Bestätigungscode an die E-Mail-Adresse und Telefonnummer des aktuellen Kontos gesendet werden, um Ihre Identität zu überprüfen?","account_tip_confirm_verify_phone":"Soll ein Bestätigungscode an die aktuelle Telefonnummer gesendet werden, um Ihre Identität zu überprüfen?","account_error_1_message_60_seconds":"Es kann nur alle 60 Sekunden eine SMS oder E-Mail gesendet werden. Warten Sie weitere {delta} Sekunden","account_error_10_messages_per_day":"Jedes Mobiltelefon oder jede E-Mail kann innerhalb von 24 Stunden nur 10 Nachrichten senden","account_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","Network Error":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","account_error_user_not_exist":"Benutzer existiert nicht","account_error_incorrect_username_or_password":"Falscher Benutzername oder Passwort","account_error_incorrect_original_password":"Falsches Originalpasswort","account_error_incorrect_password":"Falsches Passwort","account_error_username_not_found":"Benutzername nicht gefunden","account_error_can_not_reset_for_no_verified":"Das Passwort für das nicht bestätigte Konto kann nicht zurückgesetzt werden","account_error_invalid_verification_code":"Falscher Bestätigungscode, bitte versuchen Sie es erneut","account_error_expired_verification_code":"Der Bestätigungscode ist abgelaufen. Bitte versuchen Sie es erneut","account_error_password_not_long_enough":"Das Passwort ist nicht lang genug","account_error_attempt_limit_exceeded":"Versuchslimit überschritten. Bitte versuchen Sie es später noch einmal.","account_error_password_attempts_exceeded":"Anzahl der Passwortversuche überschritten.","account_error_invalid_phone_number_format":"Ungültiges Telefonnummernformat","account_error_no_cell_phone_prefix":"Bitte wählen Sie die Vorwahl für die Telefonnummer aus","account_error_username_already_exists":"Der Benutzername existiert bereits","account_error_you_need_to_accept_license_terms":"Sie müssen zunächst die Lizenz und die Bedingungen akzeptieren","account_error_inactive_code":"Der Einladungscode ist kein aktivierter Code","account_error_non_existent_code":"Der Einladungscode ist nicht vorhanden","account_error_unexpected":"Unerwarteter Fehler","account_error_can_not_change_email_before_phone_bound":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Telefonnummer gebunden ist","account_error_can_not_change_email_before_unbound_social_account":"Die E-Mail-Adresse kann nicht geändert werden, bevor die Bindung des sozialen Kontos aufgehoben wurde","account_error_can_not_change_phone_before_email_bound":"Die Telefonnummer kann nicht geändert werden, bevor die E-Mail gebunden ist","account_error_can_not_change_email_phone_with_mfa_enabled":"E-Mail-Adresse oder Mobiltelefonnummer können vor der Deaktivierung von MFA nicht geändert werden","account_error_not_supported_yet":"Derzeit nicht unterstützt","account_error_same_email":"Die neue E-Mail-Adresse darf nicht mit der ursprünglichen E-Mail-Adresse identisch sein","account_error_same_phone":"Die neue Telefonnummer darf nicht mit der ursprünglichen Telefonnummer identisch sein","account_error_email_not_exists":"Diese E-Mail Adresse existiert nicht","account_error_email_already_exists":"Ein Konto mit der angegebenen E-Mail-Adresse ist bereits vorhanden.","account_error_phone_already_exists":"Es existiert bereits ein Konto mit der angegebenen Telefonnummer.","account_error_mfa_token_mismatch":"Nichtübereinstimmung des Software-Token-Codes","account_error_recaptcha_not_loaded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_recaptcha_validation_failed":"Die ReCAPTCHA-Validierung ist fehlgeschlagen. Bitte verbinden Sie das Netzwerk erneut und starten Sie die Anwendung neu, um es erneut zu versuchen.","account_error_sign_in_in_progress":"Ausstehender Anmeldeversuch, bereits im Gange","account_field_range":"Beschränken Sie die Eingabe auf {0}-{1} Zeichen","account_field_only_alphanumeric":"Unterstützt nur alphanumerische Zeichen","account_field_only_alphanumeric_and_symbol":"Unterstützt nur alphanumerische Zeichen und Symbole","account_field_only_chinese_alphanumeric_space_underline":"Unterstützt nur alphanumerische Zeichen, Leerzeichen und Unterstriche","account_field_prefix_without_number_space":"Das erste Zeichen darf weder eine Zahl noch ein Leerzeichen sein","account_field_suffix_without_space":"Darf nicht mit einem Leerzeichen enden","account_field_without_repeat_space":"Es können nicht mehrere Leerzeichen hintereinander verwendet werden","account_field_can_not_only_alphanumeric":"Sie können nicht nur Buchstaben oder Zahlen verwenden","account_field_must_have_number_characters":"Muss aus Zahlenzeichen bestehen","account_field_verification_code":"Der Bestätigungscode muss sechsstellig sein","account_field_invitation_code":"Der Einladungscode muss alphanumerisch sein","account_field_phone_number":"Ungültiges Telefonnummernformat","account_invalid_email_format":"ungültiges Email-Format","account_sign_out_confirm":"Möchten Sie sich wirklich abmelden? Dadurch werden alle Aufgaben gestoppt.","account_sign_out_anyway":"Melde dich trotzdem ab","account_signing_out":"Abmelden...","account_request_save_settings":"Einstellungen werden nicht gespeichert. Sie müssen die Änderungen speichern, bevor Sie sich abmelden.","pay":"Zahlen","pay_with_credit":"Bezahlen Sie für die Download-Beschleunigung. Benötigt etwa 0$$$ Guthaben","pay_with_credit_payed":"Beschleunigen. Benötigt noch ca. {0} Guthaben","create_payment":"Zahlung erstellen","pay_target":"Ziel","pay_for_torrent":"Zahlen Sie für {0}","your_subid":"Ihre Sub-ID","your_credits":"Ihre Credits","pay_point_for_data":"Zahlen Sie {0} Punkte für {1} Daten","auto_renew":"Aktivieren Sie die automatische Verlängerung","transaction_details":"Transaktionsdetails","transaction_id":"Ausweis","transaction_payer":"Zahler","transaction_payee":"Zahlungsempfänger","transaction_category":"Kategorie","transaction_changed_amount":"Geänderter Betrag","transaction_meta":"Meta","transaction_status":"Status","transaction_creation_time":"Erstellungszeitpunkt","receipt_code":"Empfangscode","transfer_amount":"Überweisungsbetrag","code_the_receipt_code":"Kopieren Sie den untenstehenden Belegcode an den Zahler","fill_the_receipt_code":"Überweisung durch Eingabe des vom Zahlungsempfänger bereitgestellten Zahlungscodes","expense":"Kosten","copied":"Kopiert","transfer":"Überweisen","receive":"Erhalten","copy":"Kopieren","withdraw_fund":"Geld abheben","category_paydata_payer":"Datenkosten","category_paydata_payee":"Dateneinkommen","category_transfer":"Überweisen","category_bonus":"Bonus","category_recharge":"Aufladen","status_pending":"ausstehend","status_completed":"vollendet","status_finish":"beenden","status_failed":"fehlgeschlagen","tip_invalid_receiver":"Ungültiger Empfängercode","tip_invalid_amount":"Der Kreditbetrag sollte eine Gleitkommazahl im Bereich von 0 bis 1.000 sein (die Mindestgenauigkeit beträgt 0,001).","credit_get_more":"Holen Sie sich mehr Credits","credit_no_data":"Keine Daten verfügbar","credit_loading":"Wird geladen...","credit_not_enough_amount":"Nicht genügend Guthaben","credit_amount_not_enough":"Nicht genügend Guthaben","credit_payee_not_exist":"Zahlungsempfänger existiert nicht","credit_invalid_amount":"Ungültiger Kreditbetrag","credit_can_not_transfer_to_yourself":"Kann nicht auf sich selbst übertragen werden","credit_latest":"Neueste","credit_error_network":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","add_subtitles":"Untertitel hinzufügen","open_file":"Datei öffnen...","advanced_options":"Erweiterte Optionen","title":"Titel","location":"Standort","subtitle_file":"Untertiteldatei","unsupported_subtitle_type":"Der Dateityp {0} ist kein unterstützter Untertiteltyp","not_default_player":"Der Standard-Videoplayer ist nicht eingestellt","this_is_an_audio_file":"Dies ist eine Audiodatei","the_added_subtitle_already_exists":"Der hinzugefügte Untertitel existiert bereits","stop_stream_player":"Das Streaming-Medium wurde beendet, weil die Aufgabe angehalten oder gelöscht wurde","stop_player":"Der Player wurde beendet, da die Datei gelöscht wurde","playing_timeout_hint":"Wartezeiten sind vorbei. Bitte überprüfen Sie die Aufgabe","autoplay_hint":"Autoplay wird möglicherweise von Ihrem Browser blockiert. Wenn der Player nicht spielt, klicken Sie auf den Bildschirm, um fortzufahren","remove_playing_confirm":"{0} wird noch abgespielt. Wenn Sie es entfernen, wird der Player gestoppt. Möchten Sie es wirklich entfernen?","unsupported_in_browser":"Wird im Browsermodus noch nicht unterstützt","client":"Klient","warning":"Warnung","enable":"Aktivieren","disable":"Deaktivieren","auto":"Auto","encrypt_connection":"Verbindung verschlüsseln","encrypted_connection":"Verschlüsselte Verbindung","non_encrypted_connection":"Unverschlüsselte Verbindung","connected_wires_not_disconnect":"Angeschlossene Leitungen werden nicht getrennt","audio":"Audio-","video":"Video","image":"Bild","subtitle":"Untertitel","zip":"Reißverschluss","text":"Text","unknown":"Unbekannt","add":"Hinzufügen","undo":"Rückgängig machen","backup":"Sicherung","not_default_app":"${displayName} ist nicht Ihre Standard-App für Torrent und Medien. Möchten Sie sie als Standard festlegen?","dont_show_again":"Nicht mehr anzeigen","go_to_settings":"Gehe zu den Einstellungen","about_alphabiz":"Ungefähr ${displayName}","last_check_at":"Letzter Check um","update_channel":"Kanal aktualisieren","check_for_update":"Auf Update überprüfen","checking_for_update":"Suche nach Updates...","no_update_available":"Kein Update verfügbar","update_available":"Update verfügbar","update_now":"Jetzt aktualisieren","update_later":"Später aktualisieren","click_to_update":"Klicken Sie zum Herunterladen und Aktualisieren auf die Schaltfläche JETZT AKTUALISIEREN","update_failed":"Update fehlgeschlagen","update_failed_message":"Beim Aktualisieren ist ein Fehler aufgetreten:","check_shasum_failed":"Die Integrität des Installationsprogramms konnte nicht überprüft werden","downloading_update":"Update wird heruntergeladen...","ready_to_update":"Bereit zum Aktualisieren","restart_to_update":"Update wird heruntergeladen. ${displayName} wird für einen Moment zum Aktualisieren beendet.","already_latest":"Die aktuelle Version ({0}) ist bereits die neueste","update_timeout":"Aktualisierungszeitüberschreitung","no_available_release":"Keine verfügbare Version","no_available_installer":"Kein Installationsprogramm verfügbar","feedback":"Rückmeldung","select_a_type":"Wählen Sie einen Typ aus","category":"Kategorie","select_a_category":"Wählen Sie eine Kategorie","require_title":"Titel ist erforderlich","describe_your_problem":"Beschreiben Sie Ihr Problem","report_a_bug":"Melde einen technischen Fehler","request_a_new_feature":"Fordern Sie eine neue Funktion an","download_or_upload":"Herunterladen Hochladen","others":"Andere","submit_with_system_info":"Mit Systeminformationen einreichen","submit_feedback":"Geben Sie Feedback ab","tweet_us":"Twittern Sie uns","tweet_too_long":"Der Tweet ist zu lang","delete_characters":"Bitte löschen Sie mindestens {0} Zeichen.","rest_characters":"Sie können {0} weitere Zeichen eingeben.","update_alphabiz":"Aktualisieren Sie ${displayName}","current_version":"Aktuelle Version","cancel_update":"Aktualisierung abbrechen","slow_download_speed":"Download zu langsam","slow_download_speed_caption":"Der Download des Installationsprogramms ist jetzt zu langsam. Bitte überprüfen Sie den Netzwerkstatus","update_canceled":"Update abgebrochen","current_version_release_time":"Veröffentlichungszeitpunkt der aktuellen Version","expired_app":"${displayName} Abgelaufen","version_out_of_date":"Version veraltet","have_to_update":"Die Version von ${displayName} ist veraltet. Einige Protokolle oder APIs sind veraltet. Sie müssen ${displayName} aktualisieren, bevor Sie fortfahren können.","exit_alphabiz":"Beenden Sie ${displayName}","exit_and_update":"Beenden und Update anwenden","new_version_hint":"Neue Version ist verfügbar","no_new_version":"Keine neue Version verfügbar","current_is_latest":"Die aktuelle Version ist bereits die neueste","click_to_check_update":"Klicken Sie auf die Schaltfläche [NACH UPDATE PRÜFEN], um nach Updates zu suchen","download_latest_version_from_website":"Bitte besuchen Sie die offizielle Website, um die neueste Version herunterzuladen","to_the_website":"Zur Website","network_diagnotic":"Netzwerkdiagnose","diagnotic":"Diagnose","click_to_check":"Klicken Sie zum Überprüfen","click_to_check_again":"Klicken Sie, um es noch einmal zu überprüfen","checking":"Überprüfung","online":"Online","offline":"Offline","dns_look_up":"DNS-Suche","error":"Fehler","aws_service":"AWS-Service","network_pings":"Netzwerk-Ping","not_found":"Nicht gefunden","packet_loss":"Paketverlust","official_site":"Offizielle Seite","download_test":"Test herunterladen","test_task":"Testaufgabe {0}","download_failed":"Herunterladen fehlgeschlagen","second_spend":"{0} s ausgeben","open_default_player_failed":"Der Standardplayer konnte nicht geöffnet werden","copied_to_clipboard":"In die Zwischenablage kopiert","go_to":"Gehe zu","region_not_available":"Region nicht verfügbar","region_not_available_message":"Entschuldigung! Ihre Region ist für die Nutzung dieser App nicht verfügbar. Diese App wird nach {0} Sekunden beendet","confirm":"Bestätigen","no_available_result":"Kein verfügbares Ergebnis","invalid_password_format":"ungültiges Kennwort Format","invalid_password_format_same":"Das Passwort ist dasselbe wie das Originalpasswort","error_password":"Passwort-Fehler","keychain_setting":"Schlüsselanhänger","setting_description":"Cloud-Speicher: Speichern Sie wichtige Daten in der Cloud.\\nPasswort ändern: Ändern Sie das Passwort für den Medienbibliotheksschlüssel.\\nMnemonik: eine alternative Methode zum Generieren und Wiederherstellen von Schlüsseln.\\nLokalen Schlüssel importieren: Importieren Sie den lokal gespeicherten Schlüssel in die Medienbibliothek.\\nExportschlüssel: Speichert die aktuellen Medienbibliotheksdaten lokal oder in der Cloud.\\nSicherungsschlüssel zur Cloud: Aktualisieren Sie die aktuellen Medienbibliotheksdaten zur Sicherung in die Cloud.","refresh_status":"Update Status","confirm_import_key":"Importschlüssel bestätigen","confirm_update_cloud_key":"Sie haben bereits einen Schlüssel in der Cloud. Durch die Aktualisierung des Schlüssels wird der ursprüngliche Schlüssel überschrieben. Sind Sie sicher, dass Sie den in der Cloud gespeicherten Schlüssel aktualisieren möchten?","export_key_with_cloud":"Geben Sie das unabhängige Passwort ein, das Sie zum Exportieren des in der Cloud gespeicherten Bibliotheksschlüssels festgelegt haben, und sperren Sie die Schlüsseldatei mit dem Entsperrpasswort","store_cloud_key_prompt_password":"Geben Sie ein unabhängiges Passwort ein, um den Bibliotheksschlüssel in der Cloud zu speichern","update_cloud_key_prompt_password":"Legen Sie ein unabhängiges Passwort fest, um den Bibliotheksschlüssel zu verschlüsseln, und aktualisieren Sie ihn dann in der Cloud","enable_cloud_storage_prompt_password":"Legen Sie ein Passwort für den in der Cloud gespeicherten Schlüssel fest, mit dem Sie den Schlüssel aus der Cloud abrufen können","input_unlock_password":"Entsperrkennwort festlegen","export_local_prompt_password":"Bitte legen Sie ein Entsperrkennwort fest, um Ihre Schlüsseldatei zu verschlüsseln. Wir speichern dieses Passwort nicht für Sie. Wenn Sie also Ihr Passwort verlieren, können Sie Ihren Bibliotheksschlüssel nicht entsperren","require_unlock_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","require_independent_password":"Geben Sie das unabhängige Passwort ein, um den Schlüssel in der Cloud zu speichern","import_local_prompt_password":"Die Schlüsseldatei ist gesperrt. Bitte geben Sie das Entsperrkennwort ein","select_encrypt_mode":"Wählen Sie den Verschlüsselungsmodus","update_cloud_key":"Aktualisieren Sie den in der Cloud gespeicherten Schlüssel","backup_to_cloud":"Sichern Sie den Bibliotheksschlüssel in der Cloud","save_local":"Speichern Sie den Bibliotheksschlüssel als lokal verschlüsselte Datei","create_new_key":"Erstellen Sie einen neuen Bibliotheksschlüssel","creating_lib_key":"Bibliotheksschlüssel wird erstellt...","loading_lib_key":"Bibliotheksschlüssel wird geladen...","failed_to_create_lib_key":"Bibliotheksschlüssel konnte nicht erstellt werden","failed_to_load_lib_key":"Bibliotheksschlüssel konnte nicht geladen werden","import_local_key":"Schlüssel lokal importieren","import_lib_key_from_local":"Importieren Sie einen Bibliotheksschlüssel lokal","import_from_cloud":"Importieren Sie den Bibliotheksschlüssel aus der Cloud","create_or_import_key":"Bibliotheksschlüssel erstellen oder importieren","create_or_import_key_desc":"Der Bibliotheksschlüssel ist ein unabhängiger Schlüssel, der zum Abrufen und Veröffentlichen von Inhalten mit einer dezentralen Datenbank verwendet wird.","store_your_lib_key":"Bewahren Sie Ihren Bibliotheksschlüssel auf","export_cloud_key":"Schlüssel aus der Cloud exportieren","export_current_key":"Aktuellen Schlüssel exportieren","change_password":"Kennwort ändern","enable_cloud_storage":"Cloud-Speicher aktivieren","disable_cloud_storage":"Cloud-Speicher deaktivieren","disable_cloud_storage_desc":"Wenn Sie den Cloud-Speicher deaktivieren, wird der in der Cloud gespeicherte Schlüssel entfernt. Bitte stellen Sie sicher, dass der Schlüssel lokal gespeichert ist","sync_at":"Synchronisieren bei: {time}","cloud_storage_enabled":"Schlüsselbund mit {storage} synchronisieren","cloud_storage_disabled":"Cloud-Speicher deaktiviert","saved_locally":"Lokal gespeichert","export_key":"Schlüsseldatei exportieren","cloud_independent_password":"Cloudunabhängiges Passwort","key_file_unlock_password":"Passwort zum Entsperren der Schlüsseldatei","re_enter_unlock_password":"Geben Sie das Entsperrkennwort erneut ein","independent_password_not_enabled":"Das aktuelle Passwort ist das Passwort des Alphabiz-Kontos (es ist kein unabhängiges Passwort festgelegt)","use_cognito_hash":"Verwenden Sie das Passwort für das Alphabiz-Konto","use_independent_password":"Verwenden Sie ein unabhängiges Passwort","keychain_lib":"Bibliotheksschlüssel","loading_keychain_state":"Schlüsselbund wird geladen...","backing_up":"Sichern...","backup_current_key":"Aktuellen Schlüssel in der Cloud sichern","cloud_lib_key_not_existed":"Der Bibliotheksschlüssel ist in der Cloud nicht vorhanden","open_keychain_file":"Öffnen Sie die Schlüsselbunddatei","confirm_open_abk":"Möchten Sie die ABK-Datei öffnen?","use_the_key":"Benutze den Schlüssel","backup_the_key":"Sichern Sie den Schlüssel zur Cloud","keychain_data_does_not_exist":"Schlüsselbunddaten sind nicht vorhanden","timeout of 0ms exceeded":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","XhrError":"Es liegt ein Problem mit dem Netzwerk vor. Bitte versuchen Sie es später erneut","payer credit amount is not enough":"Nicht genügend Guthaben","payee does not exist":"Zahlungsempfänger existiert nicht","block_list_manage":"Sperrliste verwalten","blocked_users":"Blockierte Benutzer","blocked_channels":"Blockierte Kanäle","unblock_user":"Nutzer entblockieren","unblock_channel":"Kanal entsperren","no_blocked_user":"Kein blockierter Benutzer","no_blocked_channel":"Kein blockierter Kanal","field_required":"{0} ist erforderlich","setting":"Einstellung","unknown_media":"Unbekannte Medien","settings_button_visible":"Schaltfläche sichtbar","settings_setting":"Einstellung","settings_playback_rate":"Wiedergabegeschwindigkeit","settings_subtitle":"Untertitel","settings_pip":"Pip","settings_fullscreen":"Ganzer Bildschirm","settings_subtitle_options":"Untertiteloptionen","settings_normal":"Normal","settings_italic":"Kursiv","settings_lighter":"Feuerzeug","settings_bolder":"Mutiger","settings_small":"Klein","settings_large":"Groß","about":"Um","services":"Dienstleistungen","hide":"Verstecken","hide_others":"Andere verstecken","show_all":"Zeige alles","quit":"Aufhören","edit":"Bearbeiten","redo":"Wiederholen","cut":"Schneiden","paste":"Paste","select_all":"Wählen Sie Alle","view":"Sicht","reload":"Neu laden","toggle_full_screen":"Vollbild umschalten","toggle_developer_tools":"Entwicklertools umschalten","window":"Fenster","minimize":"Minimieren","bring_all_to_front":"Alles nach vorne bringen","help":"Helfen","github_repo":"Github Repo","issues":"Probleme","learn_more":"Erfahren Sie mehr","learn_spelling":"Lernen Sie Rechtschreibung","lookup_selection":"Suchen Sie nach „{selection}“","search_with_google":"Suchen Sie mit Google","save_as":"Speichern als","save_image":"Bild speichern","save_image_as":"Bild speichern als ...","copy_link":"Link kopieren","save_link_as":"Verknüpfung speichern unter ...","copy_image":"Kopiere das Bild","copy_image_as":"Bild kopieren als ...","copy_image_address":"Bildadresse kopieren","download_complete":"Download abgeschlossen","download_complete_message":"{0} wird heruntergeladen","is_running":"{0} läuft","open":"Öffnen Sie {0}","launch_problem":"Startproblem","ask_clear_data":"Anscheinend haben Sie versucht, {0} zu starten, sind aber mehrmals fehlgeschlagen.\\nMöchten Sie alle App-Daten löschen und später versuchen, sie zu starten?","launch_directly":"Direkt starten","clear_all_data":"Alle Daten löschen","ask_clear_confirm":"Dadurch werden alle Konfigurationen, Protokolle und Benutzerdaten entfernt!\\nDanach müssen Sie {0} möglicherweise erneut starten.\\nMöchten Sie die Daten wirklich löschen?","confirm_launch":"Nein, direkt starten","confirm_clear":"Ja, alle Daten löschen"}')},e757:function(e,t,a){"use strict";a("a1c1"),a("f200");var n=a("35f4"),o=a("d710"),i=a.n(o),r=a("0f0c"),s=(a("d4b5"),a("5584"));const l=({measurementId:e,apiSecret:t,clientId:a,name:n,params:o})=>{var i;const r=null===(i=s["a"].state.account)||void 0===i?void 0:i.sub;console.log("Measure",a,r,n,o);const l={client_id:a,events:[{name:n,params:o}]};return r&&(l.user_id=r),fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${e}&api_secret=${t}`,{method:"POST",body:JSON.stringify(l)})};var c=l;const d=Object(n["a"])("0123456789abcdef"),u=d(20),_={session_token:u,appName:i.a.displayName,version:Object(r["a"])("version"),channel:Object(r["a"])("channel"),packageFormat:Object(r["a"])("packageFormat")||"unknown"};class p{constructor(e,t){this.customParams={},this.trackingID=e,this.apiSecret=t,this.uaId=e.replace("G-","UA-").replace(/.$/,(e=>"-"+e)),console.log("Set UniversalAnalytics ID to",this.uaId),this.disabled=!1}config(){this.disabled||(gtag("js",new Date),gtag("config",this.trackingID))}set(e,t){this.disabled||(null!==t?this.customParams[e]=t:delete this.customParams[e])}async get(e){}async getClientId(){return new Promise((e=>gtag("get",this.uaId,"client_id",(t=>{console.log("CLIENT_ID",t),e(t)}))))}async send(e,t={}){if(this.disabled)return;const a=Object.assign({},t,_);return new Promise((async t=>{if(console.log("[GA] send",e,a),location.protocol.startsWith("https"))gtag("event",e,Object.assign(a,{event_callback:()=>{t()}}));else{console.log("Use measurement protocol");const n=await this.getClientId();console.log("Start measure with",n),c({measurementId:this.trackingID,apiSecret:this.apiSecret,clientId:n,name:e,params:a}).then((t=>{console.log("Finish measure",e),204!==t.status&&console.warn(`Warning: expect response code 204 but got ${t.status}: ${t.statusText||"(empty)"}`)})).catch((e=>{console.log("Error sending measure",e)})).finally(t)}}))}disable(){this.disabled=!0}enable(){this.disabled=!1}}t["a"]=p},e75b:function(e,t,a){"use strict";a("7a76"),a("de6c");var n=a("67cf"),o=a("e74d");class i{constructor(e){this.apiName=e}async __call__(e,t,a){const o=await n["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(o.stack){const e=new Error(o.message);throw e.name=o.name,e.stack=o.stack,e}return o}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await o["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}}a("dc69"),a("0c26"),a("a1c1"),a("f18a");var r=a("3334"),s=a("0cdb"),l=a("586d");const c={};class d{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return c[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{c[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),o=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let i;o(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(i||(i={}),i[e]=n)}));const r=n["a"].graphql({query:a,variables:i});return r.name=e,r}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!c[e])throw new Error("operation not found");return c[e]}static async execute(e,t){const a=this.__getOperation(e),o=await n["a"].graphql({query:a,variables:t});if(o.errors)throw new Error(o.errors[0].message);return o.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(c).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class u extends d{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>console.tag.purple("GQL","websocket",...e),{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const _=new Error("The number of retries exceeds the maximum"),p=e=>new Promise((t=>setTimeout(t,e))),m=async e=>{if(c=!0,i>0&&d>i)return console.warn(_),void o().log("failed to reconnect",_);const t=Math.min(r,1e3*Math.pow(2,d));o().log("connect close: ",`waiting for reconnect (${t}ms)`),await p(t),c?(d+=1,o().log(`Attempt to reconnect (${d})`),await e(),d=0,o().log("reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},h=async()=>{const a=e=>{e.some((e=>["Connection closed","Timeout disconnect"].includes(e.message)))?o(["GQL","Websocket"],"Connect Error :171"):o(["GQL","Websocket"],"Connect Error :168",e),m(h)};try{d>=0&&s&&await s();const n=u.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await m(h)}};await h()}}class _{static createSyncDataSubscriber(e,t,a,n=console.error){return new _(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await u.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class p{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=u.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=_.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}u.appendOperations(r),u.appendOperations(s),u.appendOperations(l);const m=new p,h=new p;var g={AwsApiGraphQL:u,createSyncDataSubscriber:_.createSyncDataSubscriber.bind(_),enableUserListener:async e=>await m.enable(e),disableUserListener:()=>m.disable(),addUserListener:(e,t,a)=>m.addListener(e,t,a),removeUserListener:(e,t)=>m.removeListener(e,t),enablePublicListener:async()=>await h.enable("*"),disablePublicListener:()=>h.disable(),addPublicListener:(e,t,a)=>h.addListener(e,t,a),removePublicListener:(e,t)=>h.removeListener(e,t)};t["a"]={Rest:i,GQL:g}},e7ec:function(e,t,a){"use strict";a.r(t);var n={};a.r(n),a.d(n,"createParams",(function(){return Y_})),a.d(n,"eventHandler",(function(){return J_}));var o={};a.r(o),a.d(o,"createParams",(function(){return X_})),a.d(o,"eventHandler",(function(){return ep}));var i={};a.r(i),a.d(i,"SubscribeGithubRepo",(function(){return dm}));a("a1c1"),a("04a1"),a("b576"),a("6b06"),a("0ecc"),a("9910"),a("19f3");var r=a("ff9b"),s=a("2c24"),l=a("b14a"),c=a("1dbb"),d=a("f680"),u=a("8750"),_=a("20c1");r["a"].use(c["a"],{config:{screen:{bodyClasses:!0},notify:{},dark:"auto"},lang:s["a"],iconSet:l["a"],plugins:{Notify:d["a"],Dialog:u["a"],Loading:_["a"]}});var p=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"relative-position",attrs:{id:"q-app"}},[a("GlobalRecommend"),a("application-bar"),a("q-scroll-area",{staticClass:"main-area"},[a("router-view"),a("AboutDialog"),a("TaskDialog")],1)],1)},m=[],h=a("9856"),g=h["a"],f=(a("0928"),a("2b5f")),b=a("c782"),y=a("b2aa"),v=a("e586"),w=a("09a4"),k=a.n(w),S=Object(f["a"])(g,p,m,!1,null,null,null),C=S.exports;k()(S,"components",{QScrollArea:b["a"],QDialog:y["a"],QCard:v["a"]});var x=a("5584"),$=a("61a1"),T=async function(){const e="function"===typeof x["a"]?await Object(x["a"])({Vue:r["a"]}):x["a"],t="function"===typeof $["a"]?await Object($["a"])({Vue:r["a"],store:e}):$["a"];e.$router=t;const a={router:t,store:e,render:e=>e(C),el:"#q-app"};return{app:a,store:e,router:t}},z=(a("de6c"),a("91ab")),P=a("f4eb"),A=a.n(P);function I(e){return A()(e).luminosity()<.4?A()("white").fade(.1).string():A()("black").fade(.3).string()}function q(e){return A()(e).luminosity()<.4?A()(e).saturate(.3).darken(.5).string():A()(e).desaturate(.3).darken(.5).string()}function O(e,t){const a=e=>{const a=A()(t).isDark()?4:3;return A()(e).contrast(A()(t))>=a};if(a(e))return e;const n=A()(e).isDark();let o=A()(e);return o=n?o.mix(A()("white"),.3):o.mix(A()("black"),.3),a(o.string())||(o=o.saturate(.6)),o.string()}function E(e,t=!1){const a={color_page:"#fcfcfc",color_page_darken:"#1f1f1f"};return O(e,t?a.color_page_darken:a.color_page)}var D={invokeTextColor:I,invokeDarkenColor:q,invokeOnPageColor:E};let j;const N={mixins:[],render(e){const t=[];return this._injectVars(t),this._injectRules(t),e("style",{attrs:{type:"text/css","data-ab-theme":""}},t.join("\n"))},methods:{_injectVars(e){Object.keys(this.vars$root).length&&e.push(`:root {\n ${Object.entries(this.vars$root).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`),Object.keys(this.vars$light).length&&e.push(`.body--light {\n ${Object.entries(this.vars$light).map((e=>" "+e.join(": ")+";")).join("\n")}\n}`),Object.keys(this.vars$dark).length&&e.push(`.body--dark {\n ${Object.entries(this.vars$dark).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)},_injectRules(e){Object.entries(this.rules$root).forEach((([t,a])=>{e.push(`${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$light).forEach((([t,a])=>{e.push(`.body--light ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)})),Object.entries(this.rules$dark).forEach((([t,a])=>{e.push(`.body--dark ${t} {\n ${Object.entries(a).map((e=>" "+e.join(": ")+";")).join("\n")}\n }`)}))},setVars(e,t=null){const a=null===t?"vars$root":t?"vars$dark":"vars$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[`--${Object(z["a"])(t)}`]:a})),{}))},setRules(e,t=null){const a=null===t?"rules$root":t?"rules$dark":"rules$light";this[a]=Object.assign({},this[a],Object.entries(e).reduce(((e,[t,a])=>({...e,[t]:Object.entries(a).reduce(((e,[t,a])=>({...e,[Object(z["a"])(t)]:a})),{})})),{}))}},data(){return{vars$root:{},vars$light:{},vars$dark:{},rules$root:{},rules$light:{},rules$dark:{}}}};function L(){return j||(j=document.createElement("style"),document.head.appendChild(j)),j}let U;var R=e=>U||(N.mixins.push({created(){this.setupTheme(e)},methods:{setupTheme(e){Object.entries(e).forEach((([e,t])=>{this.setVars({[`q_color_${e}`]:t,[`q_color_on_${e}`]:D.invokeTextColor(t),[`q_color_txt_${e}`]:D.invokeOnPageColor(t,!1)},!1),this.setVars({[`q_color_${e}`]:D.invokeDarkenColor(t),[`q_color_on_${e}`]:D.invokeTextColor(D.invokeDarkenColor(t)),[`q_color_txt_${e}`]:D.invokeOnPageColor(D.invokeDarkenColor(t),!0)},!0)}));const t=e=>this.setRules({[`.bg-${e}`]:{backgroundColor:`var(--q-color-${e}) !important`,color:`var(--q-color-on-${e})`},[`.text-${e}`]:{color:`var(--q-color-txt-${e}) !important`},[`.bg-${e} .text-${e}`]:{color:`var(--q-color-on-${e}) !important`},[`.bg-${e}.text-${e}`]:{color:`var(--q-color-on-${e}) !important`}});Object.keys(e).forEach(t)}}}),U=new r["a"](N),U.$mount(L()),{updateTheme(e){var t;null===(t=U)||void 0===t||t.setupTheme(e)}}),M=a("d710"),F=a.n(M),B=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handlePan,expression:"handlePan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"overflow-hidden",staticStyle:{"max-width":"360px"},style:e.floatingStyle,attrs:{flat:e.inner,bordered:e.inner}},[a("q-card-section",{staticClass:"q-py-xs flex relative-position bg-primary text-primary"},[a("div",[e._v("Theme Editor")]),a("q-space"),e.inner?a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"open_in_new",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("show")}}}):e._e(),e.inner?e._e():a("q-btn",{staticClass:"absolute-right",staticStyle:{width:"32px!important","border-radius":"0!important"},attrs:{size:"xs",icon:"close",flat:""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-py-xs"},e._l(e.currentColors,(function(t,n){return a("InputColor",{key:n,attrs:{label:n,value:t},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},input:function(t){return e.updateColor(n,t)}}})})),1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-sm flex"},[a("q-space"),a("q-btn",{staticClass:"q-mx-xs",attrs:{label:"Reset",unelevated:"",color:"general","text-color":"general","no-caps":""},on:{touchstart:function(e){e.stopPropagation()},mousedown:function(e){e.stopPropagation()},click:e.reset}})],1)],1)},W=[],H=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"q-my-sm",attrs:{label:e.label,value:e.value,outlined:"",dense:"",readonly:""},on:{input:function(t){return e.$emit("input",t)}},scopedSlots:e._u([{key:"prepend",fn:function(){return[a("q-icon",{staticClass:"rounded-borders cursor-pointer",style:{backgroundColor:e.value,color:e.textColor,width:"32px",height:"32px",marginLeft:"-8px"},attrs:{name:"colorize"}},[a("q-popup-proxy",{attrs:{cover:"","transition-show":"scale","transition-hide":"scale"}},[a("q-color",{attrs:{value:e.value},on:{input:function(t){return e.$emit("input",t)}}})],1)],1)]},proxy:!0},{key:"after",fn:function(){return[a("div",{staticClass:"flex items-center full-height",staticStyle:{margin:"-4px -8px -4px -2px"}},[a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.value,color:e.ColorUtils.invokeTextColor(e.value),width:"40px",height:"40px"}}),a("div",{staticClass:"rounded-borders q-mx-xs",style:{backgroundColor:e.ColorUtils.invokeDarkenColor(e.value),color:e.ColorUtils.invokeTextColor(e.ColorUtils.invokeDarkenColor(e.value)),width:"40px",height:"40px"}})])]},proxy:!0}])})},V=[],Q={name:"InputColor",props:{label:String,value:String},data(){return{ColorUtils:D}},computed:{textColor(){return D.invokeTextColor(this.value)}}},G=Q,K=a("0e45"),Y=a("f106"),J=a("ff50"),Z=a("4101"),X=Object(f["a"])(G,H,V,!1,null,"30ed6541",null),ee=X.exports;k()(X,"components",{QInput:K["a"],QIcon:Y["a"],QPopupProxy:J["a"],QColor:Z["a"]});let te=null;const ae={data(){return{floating$info:null,floating$size:null}},computed:{floatingStyle(){var e,t,a,n;if(this.inner)return{};const o={};this.floating$info?Object.assign(o,{x:this.floating$info.position.left,y:this.floating$info.position.top}):this.floating$size?Object.assign(o,{x:document.body.clientWidth/2-this.floating$size.width/2,y:document.body.clientHeight/2-this.floating$size.height/2}):Object.assign(o,{x:0,y:0});const i=8;return o.y=Math.max(i,Math.min(o.y,document.body.clientHeight-i-(null!==(e=null===(t=this.floating$size)||void 0===t?void 0:t.height)&&void 0!==e?e:0))),o.x=Math.max(i,Math.min(o.x,document.body.clientWidth-i-(null!==(a=null===(n=this.floating$size)||void 0===n?void 0:n.width)&&void 0!==a?a:0))),{position:"fixed",top:o.y+"px",left:o.x+"px"}}},mounted(){const{width:e,height:t}=getComputedStyle(this.$refs.card.$el),a=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e);this.floating$size={width:a(e),height:a(t)}},methods:{handlePan(e){if(!this.inner){if(this.floating$info=this.floating$info||{},e.isFirst){const e=e=>parseInt(e.endsWith("px")?e.slice(0,e.length-2):e),{top:t,left:a}=getComputedStyle(this.$refs.card.$el);Object.assign(this.floating$info,{from:{x:e(a),y:e(t)}})}else e.isFinal;Object.assign(this.floating$info,{position:{top:this.floating$info.from.y+e.offset.y,left:this.floating$info.from.x+e.offset.x}}),this.floating$info=Object.assign({},this.floating$info)}}}},ne={data(){return te=te||Object.assign({},this.$theme.getCurrentTheme()),{currentColors:te}},methods:{updateColor(e,t){this.currentColors[e]=t,this.$theme.updateTheme({[e]:t})},reset(){Object.assign(this.currentColors,this.$theme.getCurrentTheme()),this.$theme.updateTheme(this.currentColors)}}};var oe={name:"ThemeEditor",mixins:[ae,ne],components:{InputColor:ee},props:{inner:Boolean}},ie=oe,re=a("d7c7"),se=a("990e"),le=a("1043"),ce=a("fc38"),de=a("3a21"),ue=Object(f["a"])(ie,B,W,!1,null,null,null),_e=ue.exports;let pe;k()(ue,"components",{QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QBtn:le["a"],QSeparator:ce["a"]}),k()(ue,"directives",{TouchPan:de["a"]});var me=({Vue:e})=>{e.component("ThemeEditor",_e);let t=F.a.theme.color;const a=R(t);e.prototype.$theme={showFloatingEditor:he,hideFloatingEditor:ge,hasFloatingEditor:()=>!!pe,updateTheme:e=>a.updateTheme(e),getCurrentTheme:()=>t}};function he({onClose:e}={}){if(pe)return;const t=document.createElement("div");document.body.appendChild(t),pe=new r["a"]({render(t){return t("ThemeEditor",{ref:"editor",on:{close:()=>{ge(),null===e||void 0===e||e()}}})}}).$mount(t)}function ge(){pe&&(pe.$destroy(),pe.$el.remove(),pe=null)}a("f200"),a("d4b5"),a("7a76"),a("dc69"),a("0c26"),a("b37d");var fe=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g({class:["icon","text"].includes(e.buttonType)?"bg-transparent":void 0,attrs:{"no-wrap":"","no-caps":e.noCaps,size:e.size,loading:e.loading,disable:e.value||e.loading,percentage:e.percentage,type:e.type,icon:e.icon,fab:["fab"].includes(e.buttonType),unelevated:!["fab","elevated"].includes(e.buttonType),dense:e.dense,round:["icon"].includes(e.buttonType),label:["icon"].includes(e.buttonType)?void 0:e.label,color:["icon","text"].includes(e.buttonType)?void 0:e.color,textColor:["general","primary","secondary","accent","positive","negative"].includes(e.color)?e.color:""},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner")]},proxy:!0}])},Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},be=[],ye={name:"AlphabizButton",props:{buttonType:{type:String,default:"filled"},color:{type:String,default:"general"},size:{type:String,default:"md"},noCaps:{type:Boolean,default:!1},icon:{type:String,default:void 0},dense:Boolean,label:{type:String,default:void 0},value:{type:Boolean,default:!1},immediate:{type:Boolean,default(){return!!this.onClick}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},timeout:{type:Object,default:void 0},onAnimationEnd:{type:Function,default:void 0}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}else this.$emit("click",e)},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t&&t()}return o}}},beforeDestroy(){this.shutdownTimer()}},ve=ye,we=(a("c036"),a("53ef")),ke=Object(f["a"])(ve,fe,be,!1,null,null,null),Se=ke.exports;k()(ke,"components",{QBtn:le["a"],QSpinner:we["a"]});var Ce=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"alphabiz-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,label:e.label,"use-input":Boolean(e.filter),"input-debounce":"0","input-style":e.enableFilter?"":"display:none"},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}}],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},xe=[],$e={name:"AlphabizSelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String,Boolean],label:String,itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0}},data(){return{enableFilter:!1,filterValue:""}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid alphabiz-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0,this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.enableFilter=!1,this.filterValue=""},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))}}},Te=$e,ze=(a("9344"),a("a4ac")),Pe=a("b329"),Ae=a("25fb"),Ie=a("79e0"),qe=a("b121"),Oe=Object(f["a"])(Te,Ce,xe,!1,null,null,null),Ee=Oe.exports;k()(Oe,"components",{QSelect:ze["a"],QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QItemLabel:Ie["a"],QField:qe["a"]});var De=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"wrapper",staticClass:"virtual-scroll-grid-wrapper",on:{scroll:e.handleScroll}},[e._e(),a("div",{ref:"before",staticClass:"virtual-scroll-grid__before"},[e._t("before",null,null,e.getSlotContext())],2),a("div",{ref:"grid",staticClass:"virtual-scroll-grid"},[e._l(e.items,(function(t,a){return e._t("default",null,null,Object.assign(e.getSlotContext(),{item:t,index:e.virtual.from+a}))}))],2),a("div",{ref:"after",staticClass:"virtual-scroll-grid__after"},[e._t("after",null,null,e.getSlotContext())],2)])},je=[],Ne=a("3387");const Le={data(){return{grid:{container_width:void 0,column:void 0,scroll_top:void 0},virtual:{enable:!0,from:0,to:0},go$observer:null,update_enable:!0}},methods:{vs$calc(){const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter,c=Math.max(1,Math.floor((r-this.gutter)/s)),d=Math.floor((r-c*s)/2);let u=0;u+=this.gutter/2,u+=i;const _=Math.max(0,Math.floor((o-u)/l)),p=_*c,m=o-u-_*l,h=Math.ceil((n+m)/l),g=p+h*c,f=Math.min(g,this.itemsSize),b=h+(g>this.itemsSize?-1:0),y=f-p,v=this.itemsSize%c,w=Math.ceil((this.itemsSize-f)/c);let k,S,C,x;if(this.virtual.enable){const e=Math.max(0,_-this.virtualScrollSliceRow),t=Math.max(0,w-this.virtualScrollSliceRow);k=e*l,S=t*l;let a=t*c;a&&v&&(a-=c-v),C=0+e*c,x=this.itemsSize-a}else k=0,S=0,C=0,x=this.itemsSize;return{wrapper:e,grid:a,scroll_top:o,column:c,padding:d,scroll_row_top:_,scope_from:p,scope_to:f,scope_row:b,scope_count:y,scope_mod:v,scroll_row_bottom:w,virtual_padding_top:k,virtual_padding_bottom:S,virtual_from:C,virtual_to:x}},vs$update2(){const{wrapper:e,grid:t,scroll_top:a,column:n,padding:o,scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u,virtual_padding_top:_,virtual_padding_bottom:p,virtual_from:m,virtual_to:h}=this.vs$calc(),g=([e,t])=>this.grid[e]===t||(this.grid[e]=t),f=([e,t])=>this.grid[e]===t||(this.grid[e]=t);Object.entries({scroll_top:a,column:n}).map(g),this.grid._padding!==o&&(this.grid._padding=o,e.style.setProperty("--virtual-scroll-grid-padding",`${o}px`)),Object.entries({scroll_row_top:i,scope_from:r,scope_to:s,scope_row:l,scope_count:c,scope_mod:d,scroll_row_bottom:u}).map(f);const b=0;(this.virtual.to-s<=b||r-this.virtual.from<=b)&&(this.virtual._virtual_padding_top!==_&&(this.virtual._virtual_padding_top=_,t.style.setProperty("--virtual-scroll-offset-top",`${_}px`)),this.virtual._virtual_padding_bottom!==p&&(this.virtual._virtual_padding_bottom=p,t.style.setProperty("--virtual-scroll-offset-bottom",`${p}px`)),this.virtual.from!==m&&(this.virtual.from=m),this.virtual.to!==h&&(this.virtual.to=h))},vs$update(e){const t=()=>{const e=this.$refs.wrapper,t=this.$refs.before,a=this.$refs.grid,n=e.clientHeight,o=e.scrollTop,i=t.offsetHeight,r=a.clientWidth,s=this.itemWidth+this.gutter,l=this.itemHeight+this.gutter;return{wrapper:e,before:t,grid:a,wrapper_height:n,scroll_top:o,before_height:i,grid_width:r,width_per_item:s,height_per_item:l}},a={on_measure:({grid_width:e,width_per_item:t})=>{const a=Math.max(1,Math.floor((e-this.gutter)/t)),n=Math.floor((e-a*t)/2);return{column:a,padding:n}},on_update:({wrapper:e,column:t,padding:a,scroll_top:n})=>{this.grid.scroll_top=n,this.grid.column=t,e.style.setProperty("--virtual-scroll-grid-padding",`${a}px`)}},n={on_measure:({scroll_top:e,height_per_item:t,wrapper_height:a,before_height:n,column:o})=>{let i=0;i+=this.gutter/2,i+=n;const r=Math.max(0,Math.floor((e-i)/t)),s=r*o,l=e-i-r*t,c=Math.ceil((a+l)/t),d=s+c*o,u=Math.min(d,this.itemsSize),_=c+(d>this.itemsSize?-1:0),p=u-s,m=this.itemsSize%o,h=Math.ceil((this.itemsSize-u)/o);return{scroll_row_top:r,scope_from:s,scope_to:u,scope_row:_,scope_count:p,scope_mod:m,scroll_row_bottom:h}},on_update:e=>{this.grid.scroll_row_top=e.scroll_row_top,this.grid.scope_from=e.scope_from,this.grid.scope_to=e.scope_to,this.grid.scope_row=e.scope_row,this.grid.scope_count=e.scope_count,this.grid.scope_mod=e.scope_mod,this.grid.scroll_row_bottom=e.scroll_row_bottom}},o={on_measure:({scroll_row_top:e,scroll_row_bottom:t,height_per_item:a,column:n,scope_mod:o})=>{if(!this.virtual.enable)return{virtual_padding_top:0,virtual_padding_bottom:0,virtual_from:0,virtual_to:this.itemsSize};e=Math.max(0,e-this.virtualScrollSliceRow),t=Math.max(0,t-this.virtualScrollSliceRow);const i=e*a,r=t*a;let s=t*n;s&&o&&(s-=n-o);const l=0+e*n,c=this.itemsSize-s;return{virtual_padding_top:i,virtual_padding_bottom:r,virtual_from:l,virtual_to:c}},on_update:({grid:e,virtual_padding_top:t,virtual_padding_bottom:a,virtual_from:n,virtual_to:o})=>{e.style.setProperty("--virtual-scroll-offset-top",`${t}px`),e.style.setProperty("--virtual-scroll-offset-bottom",`${a}px`),this.virtual.padding_top=t,this.virtual.padding_bottom=a,this.virtual.from=n,this.virtual.to=o}},i={update_rect:a,update_grid:n,update_virtual:o};e||(e=Object.keys(i));const r=t();r&&(e.forEach((e=>{i[e]&&Object.assign(r,i[e].on_measure(r))})),e.forEach((e=>{i[e]&&i[e].on_update(r)})))},scrollTo(e){this.$refs.wrapper.scrollTop=e}},activated(){this.grid.scroll_top&&this.scrollTo(this.grid.scroll_top),this.update_enable=!0},deactivated(){this.update_enable=!1},mounted(){const e=this.vs$update2,t=Object(Ne["debounce"])((()=>e.call(this)),!0===this.$q.platform.is.ios?120:35,{trailing:!0});this.vs$update=(a,n)=>{this.update_enable&&(n?t.call(this):e.call(this))};const a=this.$refs.wrapper;this.$watch("gutter",(()=>{a.style.setProperty("--virtual-scroll-grid-gutter",`${this.gutter}px`)}),{immediate:!0}),this.$watch("itemWidth",(()=>{a.style.setProperty("--virtual-scroll-grid-item-width",`${this.itemWidth}px`)}),{immediate:!0}),this.$watch("itemHeight",(()=>{a.style.setProperty("--virtual-scroll-grid-item-height",`${this.itemHeight}px`)}),{immediate:!0}),this.go$observer=new ResizeObserver((()=>this.vs$update("go$observer"))),this.go$observer.observe(this.$refs.grid);const n=["gutter","itemsSize","virtualScrollSliceRow","itemWidth","itemHeight"];this.$watch((()=>n.reduce(((e,t)=>({...e,[t]:this[t]})),{})),(()=>this.vs$update("watcher")))},beforeUnmount(){this.go$observer.disconnect()}};var Ue={name:"VirtualScrollGrid",mixins:[Le],props:{virtualScrollSliceRow:{type:Number,default:30},itemWidth:Number,itemHeight:Number,gutter:{type:Number,default:16},itemsSize:Number,itemsFn:Function},data(){return{items:[]}},methods:{getSlotContext(){return{column:this.grid.column,mod:this.grid.scope_mod,virtual:this.virtual,grid:this.grid}},handleScroll(...e){this.vs$update("scroll",!0),this.$emit("scroll",...e),this.$emit("virtual-scroll",{from:this.virtual.from,to:this.virtual.to})}},mounted(){let e=!0;this.$watch((()=>(e&&(e=!1,this.vs$update("item_init")),this.itemsFn(this.virtual.from,this.virtual.to))),(e=>{this.items=e}),{immediate:!0})}},Re=Ue,Me=(a("06cd"),Object(f["a"])(Re,De,je,!1,null,null,null)),Fe=Me.exports,Be=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{ref:"dialog",attrs:{"no-shake":"","content-class":{"fullscreen-dialog":!e.progress},persistent:!0,position:e.screen$xs&&!e.progress?"bottom":"standard"},on:{hide:function(t){return e.$emit("hide")},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.handleEsc.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.handleEnter.apply(null,arguments)}]}},[a("q-card",{staticClass:"column",style:{position:"relative",minWidth:e.title||e.showActions?"320px":void 0,maxWidth:"400px",maxHeight:"calc(100vh - 64px)"}},[e.title?a("q-card-section",{staticClass:"q-px-md q-pb-none",style:{paddingTop:"20px"}},[e.title?a("div",{staticClass:"text-h6 text-weight-bold non-selectable"},[e._v("\n "+e._s(e.title)+"\n ")]):e._e()]):e._e(),e.message?[a("q-card-section",{staticClass:"q-pb-none"},[a("div",{staticStyle:{"white-space":"pre-line"}},[e._v(e._s(e.message))])])]:e._e(),a("DialogBanner",{attrs:{banner:e.banner}}),a("DialogProgress",{attrs:{progress:e.progress}}),a("DialogList",{attrs:{list:e.list}}),a("DialogOption",{attrs:{options:e.options},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),a("DialogPrompts",{attrs:{prompts:e.prompts},on:{registerArgument:e.dialog$registerArgument,setValid:e.dialog$setValid}}),e.showActions?a("q-card-actions",{staticClass:"q-px-md q-py-md",attrs:{vertical:""}},e._l(e.buttonAttrs,(function(t,n){return a("q-btn",e._g(e._b({directives:[{name:"show",rawName:"v-show",value:t.show,expression:"attrs.show"}],key:n,on:{keydown:function(t){if(!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter"))return null;t.stopPropagation()}}},"q-btn",t.props,!1),t.event))})),1):e._e()],2)],1)},We=[],He={data(){return{dialog$validResults:{}}},computed:{dialog$validResult(){const e=Object.values(this.dialog$validResults).find((e=>!0!==e));return e||!0}},methods:{dialog$setValid(e,t){this.dialog$validResults={...this.dialog$validResults,[e]:t}}}},Ve={data(){return{dialog$argumentGetters:{}}},methods:{dialog$arguments(){const e=Object.keys(this.dialog$argumentGetters).reduce(((e,t)=>(e[t]=this.dialog$argumentGetters[t](this),e)),{});return e},dialog$registerArgument(e,t){this.dialog$argumentGetters[e]=t}}},Qe={data(){return{loadingState:null}},methods:{async dialog$useLoadingState(e,t){let a;try{this.loadingState=e;const n=t(this);a=n.then?await n:n}finally{this.loadingState=null}return a}}},Ge={methods:{dialog$buttonObject(e,t){if(!1===t)return null;const a={color:"general",textColor:"general",label:this.$t(e)},n={};return Object.assign(n,a),"object"===typeof t&&(Object.assign(n,t),"function"===typeof t.label&&(n.label=t.label()),"function"===typeof t.disable&&(n.disable=t.disable())),"function"===typeof t&&(n.handler=t.bind(this)),"string"===typeof t&&(n.label=t),n},async dialog$buttonHandler(e,t){if(!e)return;const a=e.handler;try{if(a){const e=a(this);e&&e.then&&await e}else t&&t()}catch(n){this.$emit("error",n)}},dialog$buttonAttrs(e,t,a){if(!t)return{show:!1};const n={noCaps:!0,noWrap:!0,unelevated:!0};return Object.assign(n,t),n.loading=this.loadingState===e||t.loading,n.disable=!!this.loadingState||t.disable,{show:!!t,props:n,event:{click:a}}}}},Ke={props:{actions:Object},computed:{dialog$actionButtons(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=this.dialog$buttonObject(t,this.actions[t]),e)),{}):null},dialog$actionHandlers(){return this.actions?Object.keys(this.actions).reduce(((e,t)=>(e[t]=()=>this.dialog$buttonHandler(this.dialog$actionButtons[t]),e)),{}):null}}},Ye={props:{ok:{type:[Boolean,String,Function,Object],default:!0},cancel:{type:[Boolean,String,Function,Object],default:!1}},computed:{buttonOk(){const e=this.dialog$buttonObject("ok",this.ok);return e?(e.disable||(e.disable=!0!==this.dialog$validResult),e):e},buttonCancel(){return this.dialog$buttonObject("cancel",this.cancel)}},methods:{async handleOk(){await this.dialog$buttonHandler(this.buttonOk,(()=>{this.emitOk(this.dialog$arguments()),this.hide()}))},async handleCancel(){await this.dialog$buttonHandler(this.buttonCancel,(()=>{this.hide()}))}}},Je=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.banner?a("q-card-section",{staticClass:"q-pb-none overflow-hidden"},[a("q-banner",{staticClass:"bg-general text-general rounded-borders",scopedSlots:e._u([e.objectBanner.avatar?{key:"avatar",fn:function(){return[a("div",{staticClass:"flex items-center",staticStyle:{height:"40px"}},["loading"===e.objectBanner.avatar?a("q-spinner-ios",{staticStyle:{margin:"0.275rem"},attrs:{size:"1.2rem",color:"general"}}):a("q-icon",{attrs:{size:"1.75rem",name:e.objectBanner.avatar}})],1)]},proxy:!0}:null,{key:"default",fn:function(){return[e.objectBanner.title?a("div",{staticClass:"text-bold"},[e._v("\n "+e._s(e.objectBanner.title)+"\n ")]):e._e(),a("div",{staticClass:"ellipsis-3-lines"},[e._v(e._s(e.objectBanner.message))])]},proxy:!0}],null,!0)})],1):e._e()},Ze=[],Xe={name:"DialogBanner",props:{banner:[String,Object]},computed:{objectBanner(){return this.banner?"string"===typeof this.banner?{message:this.banner}:this.banner:null}}},et=Xe,tt=a("0051"),at=a("7027"),nt=Object(f["a"])(et,Je,Ze,!1,null,null,null),ot=nt.exports;k()(nt,"components",{QCardSection:re["a"],QBanner:tt["a"],QSpinnerIos:at["a"],QIcon:Y["a"]});var it=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.progress?a("q-card-section",{staticClass:"q-pb-md flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),"boolean"!==typeof e.progress?a("div",{staticClass:"q-ml-sm"},["string"===typeof e.progress?[e._v("\n "+e._s(e.progress)+"\n ")]:[a("div",[e._v(e._s(e.progress.title))]),e.progress.caption?a("div",[e._v(e._s(e.progress.caption))]):e._e()]],2):e._e()],1):e._e()},rt=[],st={name:"DialogProgress",props:{progress:[Boolean,String,Object]}},lt=st,ct=Object(f["a"])(lt,it,rt,!1,null,"c513ce1e",null),dt=ct.exports;k()(ct,"components",{QCardSection:re["a"],QSpinnerIos:at["a"]});var ut=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.list?a("q-card-section",{staticClass:"q-pb-none"},[a("q-list",{staticClass:"rounded-borders full-width column items-stretch",attrs:{bordered:"",separator:""}},e._l(e.list.items,(function(t,n){return a("q-item",{key:t.key||n,staticClass:"overflow-hidden"},[a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))]),t.caption?a("q-item-label",{staticClass:"ellipsis-3-lines",attrs:{caption:""}},[e._v(e._s(t.caption))]):e._e()],1)],1)})),1)],1):e._e()},_t=[],pt={name:"DialogList",props:{list:Object}},mt=pt,ht=a("e7c2"),gt=Object(f["a"])(mt,ut,_t,!1,null,"18c77b6c",null),ft=gt.exports;k()(gt,"components",{QCardSection:re["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"]});var bt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelOptions?a("q-card-section",{staticClass:"q-pb-none"},[a("q-option-group",{staticClass:"dialog-option-group",attrs:{options:e.modelOptions.items,type:e.modelOptions.type||"radio"},scopedSlots:e._u([{key:"label",fn:function(t){var n=t.label,o=t.desc,i=t.tooltip;return[a("q-item",{staticClass:"q-pl-xs q-pr-none non-selectable"},[a("q-item-section",[a("q-item-label",[e._v(e._s(n))]),o?a("q-item-label",{staticClass:"ellipsis",attrs:{caption:""}},[e._v(e._s(o))]):e._e()],1),i?a("q-tooltip",{attrs:{"max-width":"320px",anchor:"bottom middle",self:"top middle","transition-show":"jump-down","transition-hide":"jump-up","transition-duration":0,delay:600}},[a("span",{staticStyle:{"font-size":"0.8rem"}},[e._v(e._s(i))])]):e._e()],1)]}}],null,!1,3266841923),model:{value:e.modelOptions.model,callback:function(t){e.$set(e.modelOptions,"model",t)},expression:"modelOptions.model"}})],1):e._e()},yt=[],vt={name:"DialogOption",props:{options:Object},data(){return{modelOptions:this.options}},computed:{validatedResult(){const e=this.modelOptions.items.find((e=>e.value===this.modelOptions.model));return e?!e.disable||"disabled_option_item":"option_item_not_found"}},beforeMount(){this.modelOptions&&(this.$emit("registerArgument","option",(()=>this.modelOptions.model)),this.$watch("validatedResult",(e=>{this.$emit("setValid","option",e)}),{immediate:!0}))}},wt=vt,kt=(a("030c"),a("8128")),St=a("cf25"),Ct=a("2b77"),xt=Object(f["a"])(wt,bt,yt,!1,null,null,null),$t=xt.exports;k()(xt,"components",{QCardSection:re["a"],QOptionGroup:kt["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"],QTooltip:St["a"],QRadio:Ct["a"]});var Tt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.modelPrompts?a("q-card-section",{staticClass:"q-pb-none"},[e._l(e.modelPrompts,(function(t){return["tel"===t.type?a("DialogPromptTel",{key:t.key,staticClass:"q-my-sm",attrs:{rules:t.rules||void 0},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}}):a("q-input",{key:t.key,staticClass:"q-my-sm",attrs:{type:"password"!==t.type?t.type:t.hidden?"password":"text",label:t.label,rules:t.rules||void 0,outlined:"",dense:"",autofocus:""},scopedSlots:e._u([{key:"prepend",fn:function(){return[t.icon&&"tel"!==t.type?a("q-icon",{attrs:{name:t.icon}}):e._e()]},proxy:!0},void 0!==t.hidden?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:t.hidden?"visibility_off":"visibility"},on:{click:function(e){t.hidden=!t.hidden}}})]},proxy:!0}:null],null,!0),model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"prompt.model"}})]}))],2):e._e()},zt=[],Pt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("TelInput",{attrs:{"error-message":e.errorMessage},on:{setNotSay:e.setNotSay},scopedSlots:e._u([{key:"selector",fn:function(){return[a("TelSelector",{model:{value:e.selectedOption,callback:function(t){e.selectedOption=t},expression:"selectedOption"}})]},proxy:!0},e.selectedOption.prefixCode?{key:"prefix-code",fn:function(){return[e._v("\n +"+e._s(e.selectedOption.prefixCode)+"\n ")]},proxy:!0}:null],null,!0),model:{value:e.inputValue,callback:function(t){e.inputValue=t},expression:"inputValue"}})},At=[],It=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-input",{staticClass:"dialog-prompt-tel",attrs:{outlined:"",dense:"",autofocus:"",type:"tel",value:e.value,error:!!e.errorMessage,"error-message":e.errorMessage},on:{input:function(t){return e.$emit("input",t)},keydown:function(t){if(!t.type.indexOf("key")&&8!==t.keyCode)return null;0===e.value.length&&e.$emit("setNotSay")}},scopedSlots:e._u([{key:"before",fn:function(){return[e._t("selector")]},proxy:!0},{key:"prepend",fn:function(){return[e.$slots["prefix-code"]?a("div",{staticClass:"non-selectable",style:e.prefixCodeStyle},[e._t("prefix-code")],2):e._e()]},proxy:!0}],null,!0)})},qt=[];const Ot={data(){return{prefixCodeStyle:{padding:"6px 0",fontSize:"14px",fontWeight:"400",letterSpacing:"0.00937em",lineHeight:"28px"}}}};var Et={name:"TelInput",mixins:[Ot],props:{value:String,errorMessage:String}},Dt=Et,jt=(a("0102"),Object(f["a"])(Dt,It,qt,!1,null,null,null)),Nt=jt.exports;k()(jt,"components",{QInput:K["a"],QField:qe["a"]});var Lt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g(e._b({attrs:{dense:"",outlined:"",behavior:"menu",options:e.prefixOptions,"option-label":function(){return""},"menu-offset":[0,4],"menu-self":"bottom start","menu-anchor":"top left","transition-show":"jump-down","transition-hide":"jump-up"},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",{staticClass:"non-selectable",style:e.noOptionStyle},[a("q-item-section",{staticClass:"text-grey"},[e._v("\n No results\n ")])],1)]},proxy:!0},{key:"prepend",fn:function(){return[a("div",{staticClass:"non-selectable",style:e.emojiStyle},[e._v(e._s(e.emoji))])]},proxy:!0},{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x non-selectable",style:e.optionStyle},"q-item",n,!1),o),[i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[a("div",{style:e.emojiStyle},[e._v(e._s(i.emoji))])]):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s("not_say"===i.label?e.$t("account_not_say"):i.label)}})],1)],1)]}}]),model:{value:e.prefixModel,callback:function(t){e.prefixModel=t},expression:"prefixModel"}},"q-select",e.filterProps,!1),e.filterEvents))},Ut=[],Rt=a("1c53");const Mt=(()=>{const e={TW:e=>{"TW"===e.country_code&&(e.emoji="🇼🇫")}},t=[];return Object.entries(Rt["countries"]).forEach((([a,n])=>{const o={country_code:a,name:n.name,name_native:n.native,emoji:n.emoji,phone_list:n.phone.split(","),language_list:n.languages};e.TW(o),t.push(o)})),t})(),Ft=(()=>{const e=[];return Mt.forEach((t=>{t.phone_list.forEach((a=>{const n={id:`${t.country_code}-${a}`,country_emoji:t.emoji,country_name:t.name,country_name_native:t.name_native,country_code:t.country_code,phone_number_code:a};e.push(n)}))})),e})(),Bt=(()=>{const e={US:(e,t)=>{if("1"===e.phone_number_code)return"US"===e.country_code?-1:"US"===t.country_code?1:0}},t=(t,a)=>{const n=parseInt(t.phone_number_code),o=parseInt(a.phone_number_code);if(n!==o)return n>o?1:-1;let i;return Object.values(e).some((e=>(i=e(t,a),void 0!==i))),void 0===i?0:i},a=Ft.sort(t);return a})(),Wt=Bt.reduce(((e,t)=>(e[t.id]=t,e)),{}),Ht={value:"not_say",label:"not_say",emoji:"🇼🇫"},Vt=(()=>{const e=Object.values(Wt).map((e=>({value:e.id,label:`${e.country_name_native} (+${e.phone_number_code})`,emoji:e.country_emoji})));return e.unshift(Ht),e})(),Qt=e=>e===Ht.value?Ht:Wt[e],Gt=e=>{const t=e.startsWith("+"),a=/^00/.test(e);let n=null,o=null,i=e;return t?Object.values(Wt).find((t=>{const a=`+${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})):a&&Object.values(Wt).find((t=>{const a=`00${t.phone_number_code}`;return!!e.startsWith(a)&&(i=e.substr(a.length),n=t.country_code,o=t.phone_number_code,!0)})),{countryCode:n,prefixCode:o,phoneNumber:i}},Kt={data(){return{emojiStyle:{fontFamily:"Noto Color Emoji",fontSize:"1.22rem",color:"#000"}}}},Yt={data(){const e={getInputEl:()=>this.$parent.$parent.$el,observer:new ResizeObserver((()=>{const e=this.mixin$OptionsStyle.getInputEl(),{width:t}=getComputedStyle(e);this.optionStyle={width:`calc(${t} - 8px)`},this.noOptionStyle={width:t}}))};return{mixin$OptionsStyle:e,optionStyle:{},noOptionStyle:{}}},mounted(){this.mixin$OptionsStyle.observer.observe(this.mixin$OptionsStyle.getInputEl())},beforeDestroy(){this.mixin$OptionsStyle.observer.unobserve(this.mixin$OptionsStyle.getInputEl())}},Jt={data(){return{isPopupShow:!1,filter:null}},computed:{filterProps(){return{useInput:!0,inputDebounce:"0",inputStyle:this.isPopupShow?void 0:"display:none"}},filterEvents(){return{"popup-show":this.onPopupShow.bind(this),filter:this.onFilter.bind(this),"popup-hide":this.onPopupHide.bind(this)}}},methods:{onFilter(e,t){t((()=>{this.filter=t=>{if(!e)return!0;if("not_say"===t)return!1;const a=Qt(t),n=[a.country_code,a.country_name,a.country_name_native,a.phone_number_code];return n.some((t=>t.toLowerCase().includes(e.toLowerCase())))}}))},onPopupShow(){this.isPopupShow=!0,this.$nextTick((()=>{const e=this.$el.getElementsByTagName("input")[0];e.focus()}))},onPopupHide(){this.isPopupShow=!1,this.filter=null,this.mixin$OptionsStyle.getInputEl().focus()}}};var Zt={name:"TelSelector",mixins:[Kt,Yt,Jt],props:{value:Object},data(){return{countryCode:null,prefixCode:null}},computed:{prefixOptions(){let e=Object.assign([],Vt);return this.filter&&(e=e.filter((e=>this.filter(e.value)))),e},prefixModel:{get(){const{countryCode:e,prefixCode:t}=this.value;return e&&t?`${e}-${t}`:"not_say"},set(e){var t,a;const n=null!==e&&void 0!==e&&e.value?Qt(e.value):{};this.$emit("input",{countryCode:null!==(t=n.country_code)&&void 0!==t?t:null,prefixCode:null!==(a=n.phone_number_code)&&void 0!==a?a:null})}},emoji(){const e=Qt(this.prefixModel);return e.emoji||e.country_emoji}}},Xt=Zt,ea=(a("3a211"),Object(f["a"])(Xt,Lt,Ut,!1,null,null,null)),ta=ea.exports;k()(ea,"components",{QSelect:ze["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"]});const aa={watch:{selectedOption(e,t){const a=e=>!(e.countryCode&&e.prefixCode);a(e)&&!a(t)&&(this.inputValue="")}},methods:{setNotSay(){this.selectedOption={countryCode:null,prefixCode:null}}}},na={data(){return{errorMessage:void 0}},watch:{value(e){const t=e=>{let t;return this.rules.find((a=>(t=a(e),t&&!0!==t))),!0===t?void 0:t},a=t(e.phoneNumber);a?this.errorMessage=a:e.phoneNumber&&!e.prefixCode?this.errorMessage=this.$t("account_error_invalid_phone_number_format"):this.errorMessage=void 0}}};var oa={name:"DialogPromptTel",mixins:[aa,na],props:{value:{type:Object,required:!0},rules:Array},components:{TelInput:Nt,TelSelector:ta},computed:{selectedOption:{get(){return{countryCode:this.value.countryCode,prefixCode:this.value.prefixCode}},set(e){this.$emit("input",{prefixCode:e.prefixCode,countryCode:e.countryCode,phoneNumber:this.value.phoneNumber})}},inputValue:{get(){return this.value.phoneNumber},set(e){const{prefixCode:t,countryCode:a,phoneNumber:n}=Gt(e);this.$emit("input",{prefixCode:t||this.value.prefixCode,countryCode:a||this.value.countryCode,phoneNumber:n})}}}},ia=oa,ra=Object(f["a"])(ia,Pt,At,!1,null,null,null),sa=ra.exports,la={name:"DialogPrompts",components:{DialogPromptTel:sa},props:{prompts:Object},data(){const e=this.prompts?Object.keys(this.prompts).map((e=>{const t=this.prompts[e];return t.key=e,"password"===t.type&&(t.hidden=!0),t})):null;return{modelPrompts:e}},computed:{validatedResult(){let e;return this.modelPrompts&&this.modelPrompts.filter((e=>!!e.rules)).find((t=>t.rules.some((a=>{const n="tel"===t.type?[t.model.phoneNumber,t.model.prefixCode]:[t.model],o=a(...n);return!0!==o&&(e=o),!!e})))),e=e||!0,e}},watch:{validatedResult(e){this.$emit("setValid","prompts",e)}},beforeMount(){if(this.modelPrompts){const e=()=>this.modelPrompts.reduce(((e,t)=>(e[t.key]=t.model,e)),{});this.$emit("registerArgument","prompts",e),this.$emit("setValid","prompts",this.validatedResult)}}},ca=la,da=Object(f["a"])(ca,Tt,zt,!1,null,"21114862",null),ua=da.exports;k()(da,"components",{QCardSection:re["a"],QInput:K["a"],QIcon:Y["a"]});const _a={methods:{handleEsc(){const e="cancel";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()},handleEnter(){const e="ok";if(!this.buttonAttrs[e])return;const t=this.buttonAttrs[e];!t.show||t.props.disable||t.props.loading||t.event.click()}}},pa={props:{contextCallback:Function},created(){this.contextCallback&&this.contextCallback(this)}},ma=e=>({props:e.reduce(((e,t)=>Object.assign(e,t.props)),{})}),ha={name:"ABDialog",components:{DialogBanner:ot,DialogProgress:dt,DialogList:ft,DialogOption:$t,DialogPrompts:ua},mixins:[_a,pa,He,Ve,Qe,Ge,Ke,Ye,ma([ot,dt,ft,$t,ua])],props:{title:String,message:String},computed:{showActions(){return this.buttonAttrs&&Object.values(this.buttonAttrs).some((e=>!1!==e.show))},buttonAttrs(){const e=this.dialog$actionButtons?Object.keys(this.dialog$actionButtons).reduce(((e,t)=>(e[t]=[this.dialog$actionButtons[t],this.dialog$actionHandlers[t]],e)),{}):{},t={ok:[this.buttonOk,this.handleOk],...e,cancel:[this.buttonCancel,this.handleCancel]};return Object.keys(t).reduce(((e,a)=>(e[a]=this.dialog$buttonAttrs(a,...t[a]),e)),{})}},methods:{show(){this.$refs.dialog.show()},emitOk(e){this.$emit("ok",e)},hide(){this.$refs.dialog.hide()}}};var ga=ha,fa=ga,ba=a("59ba"),ya=Object(f["a"])(fa,Be,We,!1,null,null,null),va=ya.exports;k()(ya,"components",{QDialog:y["a"],QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QCardActions:ba["a"],QBtn:le["a"]});var wa=e=>{e.component("ABDialog",va),Object.defineProperty(e.prototype,"$alphabiz",{get(){const e={};return e.dialog=e=>ka.call(this,e),e}})};function ka(e){const t={},a={};Object.assign(a,e),a.component=va,a.contextCallback=e=>t.vm=e,t.dialog=this.$q.dialog(a),t.dialog.vm=t.vm;const n=e=>{e.promise=t=>new Promise(((a,n)=>{if(e.vm.$on("error",n),t){if("cancel"===t){let t=!1;e.onCancel((()=>t=!0)).onDismiss((()=>a(t)))}else if("ok"===t){let t;e.onOk((e=>e&&(t=e))).onDismiss((()=>a(t)))}}else e.onDismiss(a)}))};return n(t.dialog),t.dialog}var Sa=a("bf73"),Ca=a.n(Sa),xa=a("d310"),$a=a("3fd2"),Ta=a.n($a);function za(e){e.directive("show$cfg",Pa())}function Pa(){const e=(e,t,a)=>{const n=a.componentInstance.d$cfg,o=[t.arg,...Object.keys(t.modifiers||{})];let i=o.reduce(((e,t)=>e[t]),n);i=void 0===t.value?i:t.value===i,e.style.display=i?e._cfg$show.display:"none"};return{bind(t,a,n){t._cfg$show={display:t.style.display},e(t,a,n)},update(t,a,n){e(t,a,n)},unbind(e){e.style.display=e._cfg$show.display,delete e._cfg$show}}}var Aa=a("0f0c"),Ia=a("d558"),qa=(a("908d"),function(e,{getLocalConfig:t,getRemoteConfigUrl:a}){const n=ja(),{config:o,loadRemoteConfig:i}=Oa({localConfig:t(),remoteConfigUrls:r(a())});function r(e){const t=[`/${n.version}.json`,`/${n.version.split("-")[0]}.json`,"/default.json"];return t.map((t=>e+t))}function s(e,t){const a=new e({data(){return{config:t}}});e.mixin({computed:{d$cfg(){return a.config}}}),za(e)}i((e=>{Ta.a.mas()&&Ea(e.config,{update:{enable:!1}})})),s(e,o)});function Oa(e){const{localConfig:t,remoteConfigUrls:a}=e,n=Ea({},t);let o;n.remoteLoaded=!1,Object.defineProperties(n,{onRemoteConfigLoaded:{value:new Promise((e=>o=e)),configurable:!1,writable:!1,enumerable:!1}});const i=async e=>{const t=await r(a),{config:i}=t;return i.remoteLoaded=!0,await e(t),Ea(n,i),o(t),t};return{config:n,loadRemoteConfig:i};async function r(e){console.log("get from urls",e);const t=[];t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("sources").log(e)));const a=await new Promise((async a=>{let o={},i=null;for(const r of e)try{o=await n(r),i=r;break}catch{t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("not found").log(r)))}i?t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("got").log(i,o))):t.push((()=>console.tag.orange("DynamicConfig","Remote").tag("remote config not found").log())),a({url:i,config:o})}));return console.tag.orange("DynamicConfig","Remote").group(""),t.forEach((e=>e())),console.groupEnd(),a;async function n(e){return await Da((()=>fetch(e).then((e=>e.json()))),{onRetry(e){console.tag("getRemoteConfig").log("retry",e.count)}})}}}function Ea(e,t){const a=e=>!!e&&"object"===typeof e&&!Array.isArray(e);return Object.entries(t).forEach((([t,n])=>{var o;a(n)?(e[t]=null!==(o=e[t])&&void 0!==o?o:{},Ea(e[t],n)):e[t]=n})),e}async function Da(e,{onRetry:t}={}){const a=async n=>{try{return n.count&&await(null===t||void 0===t?void 0:t(n)),await e()}catch(o){if(o instanceof TypeError){if(await new Promise((e=>setTimeout(e,1e3))),n.count+=1,n.count>=30)throw o;return await a(n)}throw o}};return await a({count:0})}function ja(){const e={version:Object(Aa["a"])("version"),buildTime:Object(Aa["a"])("buildTime")};return e.web=(()=>{try{return"web"===e.version.split("-")[1]}catch{return!1}})(),e.store=(()=>{const e=Object(Aa["a"])("packageFormat");return Object(Ia["a"])()?"capacitor":Ta.a.mas()?"mac":Ta.a.windowsStore()?"microsoft":!(!e||"snap"!==e)&&"linux"})(),e}var Na=e=>{},La=a("67cf"),Ua=a("eb7a");a("f18a"),a("dc89"),a("2425"),a("7996");const Ra=(...e)=>console.tag.red("VideoJs","player",...e),Ma={Video:{opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",webm:"video/webm",flv:"video/x-flv","3gp":"video/3gpp",m3u8:"application/x-mpegURL",mpd:"application/dash+xml",avi:"video/x-msvideo"},Image:{jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",png:"image/png",svg:"image/svg+xml",webp:"image/webp"},Audio:{m4a:"audio/mp4",mp3:"audio/mpeg",aac:"audio/aac",caf:"audio/x-caf",flac:"audio/flac",oga:"audio/ogg",wav:"audio/wav"}},Fa=(Ma.Video,Ma.Audio,Ma.Image,{mkv:["video/webm","video/mp4"],avi:["video/mp4"]}),Ba={MEDIA_ERR_ABORTED:1,MEDIA_ERR_CUSTOM:0,MEDIA_ERR_DECODE:3,MEDIA_ERR_ENCRYPTED:5,MEDIA_ERR_NETWORK:2,MEDIA_ERR_SRC_NOT_SUPPORTED:4};var Wa=[Ha(),Ga({volume:nn},{setVolume:mn}),Ga({isFullscreen:an},{setFullscreen:pn}),Ga({isPiP:tn},{setPiP:_n}),Ga({playbackRate:en},{setPlaybackRate:un}),Ga({poster:Xa},{setPoster:cn}),Va(),Qa()];function Ha(){const e={id:Ka,currentTime:Ya,buffered:Za,duration:Ja,isPaused:on,isMuted:rn},t={play:sn,pause:ln,seek:dn,mute:hn,stop:gn,destroy:fn,ctl$on:a,ctl$emit:n};return Ga(e,t);function a(e,t){this.on(`controller::${e}`,t)}function n(e){this.trigger(`controller::${e}`)}}function Va(){return Ga({isWaiting:a,currentSources:e,loadingState:t},{setSource:n});function e(){const e=()=>{const e=this.currentSources();return e.filter((e=>!!e.src&&!!e.type))};return this.$set(e,["setSource$start","setSource$end","stop$"]),e()}function t(){const e=e=>{if(!e)return!1;if("setSource$start"===e)return!0;if(["setSource$end","error"].includes(e)){const e=this.error();return!!e&&{type:Object.keys(Ba).find((t=>Ba[t]===e.code)),message:e.message}}};return this.$set(e,["setSource$start","setSource$end","error","stop$"]),e()}function a(){let e=null;return this.on("waiting",(()=>{e&&clearTimeout(e),e=setTimeout((()=>{this.$set(!0)}),100)})),this.on("canplay",(()=>{e&&clearTimeout(e),this.$set(!1)})),this.on("stop$",(()=>{e&&clearTimeout(e),this.$set(!1)})),!1}async function n(...e){const t=e[e.length-1];t instanceof AbortSignal&&e.splice(e.length-1);const a=t instanceof AbortSignal?t:(new AbortController).signal;let n=!1;a.onabort=()=>{n=!0};try{this.trigger("setSource$start"),await new Promise(((t,i)=>{this.ready((()=>{if(n||a.aborted)return console.log("setSource Aborted",a.reason),i("Aborted");console.log("Not aborted",n,a,e[0]),this.one("loadedmetadata",t),this.one("error",i);const r=e.map(o).flat(1);Ra().tag("setSource","sources").log(r),this.src(r)}))}))}finally{this.trigger("setSource$end")}function o(e){var t;const a=[];let n,o;if("object"===typeof e){var i;n=e,o=null!==(i=l(n))&&void 0!==i?i:"mp4"}else{if("string"!==typeof e)return e;var r;n={src:e},o=null!==(r=l(n))&&void 0!==r?r:"mp4",Object.assign(n,{type:`video/${o}`})}n.type&&a.push(n);const s=null!==(t=Ma.Video[o])&&void 0!==t?t:Ma.Video.mp4;return a.some((e=>e.type===s))||d({type:s}),c(o).forEach((e=>d({type:e}))),a;function l(e){if(e.src&&-1!==e.src.lastIndexOf(".")){const t=new URL(e.src);return t.pathname.slice(t.pathname.lastIndexOf(".")+1)}if(e.type){const t=Object.keys(Ma.Video).find((t=>Ma.Video[t]===e.type));if(t)return t}if(e.filename){const t=e.filename.replace(/\\/g,"/").split("/").reverse()[0];if(-1!==t.lastIndexOf("."))return t.slice(t.lastIndexOf(".")+1)}return null}function c(e){if(!Fa[e])return[];const t=Object.values(a).map((e=>e.type));return Fa[e].filter((e=>!t.includes(e)))}function d(e){const t=e=>Object.assign(Object.entries(n).reduce(((e,[t,a])=>({...e,[t]:a})),{}),e),o=t(e);a.push(o)}}}}function Qa(){return Ga({track:e},{enableTrack:t,disableTrack:a,addTrack:n,removeTrack:o,setTrackOffset:i});function e(){const e=t.call(this);return this.on("track$enable",(()=>{const e=o.call(this),t=e.find((e=>"showing"===e.mode));if(!t)throw new Error("Enabled track not founded");const a=this.$state.track;a.currentTrack=n.call(this,t),a.enable=!0})),this.on("track$disable",(()=>{const e=this.$state.track;e.enable=!1})),this.on("track$add",(()=>a.call(this))),this.on("track$remove",(()=>{a.call(this)})),this.on("stop$",(()=>{var e;a.call(this);const t=this.$state.track;null===(e=t.currentTrack)||void 0===e||e.disable(),t.currentTrack=null,t.enable=!1})),e;function t(){const e={};return e.tracks=o.call(this).map((e=>e.id)),e.offset=0,e.currentTrack=null,e.enable=!1,e}function a(){const e=o.call(this),t=this.$state.track;t.tracks=e.map((e=>e.id))}function n(e){const t=()=>{const e=this.$state.track,n=e.currentTrack;if(!n)return this.off("texttrackchange",t);e.currentTrack.text=a.call(n.get(),e.offset)};return n(t),this.on("texttrackchange",t),{id:e.id,text:a.call(e,0),get:()=>e,disable:()=>{this.off("texttrackchange",t)}};function a(e){if(!this.loaded_)return null;if(0===this.cues.length)return null;const t=this.tech_.currentTime$org()+e,a=[];for(let n=0,o=this.cues.length;n=t&&a.push(e)}return a.map((e=>e.text)).join("")}function n(t){const a=e.tech_;e.tech_.__modified__||(e.tech_=new Proxy(a,{get(e,a,n){return"__modified__"===a||("currentTime$org"===a?Reflect.get(e,"currentTime",n):("currentTime"===a&&t(),Reflect.get(e,a,n)))},set(e,t,a,n){return Reflect.set(e,t,a,n)}}))}}function o(){var e;return Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind))}}function t(e){var t;const a=this.$state.track;if(!e){if(a.enable)return;if(a.currentTrack)e=a.currentTrack.id;else{if(!(a.tracks&&a.tracks.length>0))return;e=a.tracks[0]}}const n=Array.from(null!==(t=this.remoteTextTracks())&&void 0!==t?t:[]).filter((e=>"captions"===e.kind)),o=n.some((t=>t.id===e));if(!o)throw new Error("Track not founded: "+e);n.forEach((t=>{t.mode=t.id===e?"showing":"disabled"})),this.trigger("track$enable")}function a(){var e;const t=this.$state.track;if(!t.currentTrack)return;const a=Array.from(null!==(e=this.remoteTextTracks())&&void 0!==e?e:[]).filter((e=>"captions"===e.kind));a.forEach((e=>e.mode="disabled")),this.trigger("track$disable")}function n({id:e,src:t}){const a=this.$state.track;if(a.tracks.includes(e))return;const n={id:e,src:t,kind:"captions",mode:"disabled"};this.addRemoteTextTrack(n,!0),this.trigger("track$add")}function o(e=null){var n,o;const i=this.$state.track,r=Array.from(null!==(n=this.remoteTextTracks())&&void 0!==n?n:[]).filter((e=>"captions"===e.kind));let s,l=[];if(e){if(!i.tracks.includes(e))return;s=i.currentTrack.id===e,l.push(e)}else s=!0,l.push(...i.tracks);s&&(a.call(this),i.currentTrack.disable(),i.currentTrack=null),l.forEach(d.bind(this));const c=Array.from(null!==(o=this.remoteTextTracks())&&void 0!==o?o:[]).filter((e=>"captions"===e.kind));if(this.trigger("track$remove"),c.length&&s){const e=c[0];console.log("Select first track after remove current",e),t.call(this,e.id)}function d(e){const t=r.find((t=>t.id===e));t&&this.removeRemoteTextTrack(t)}}function i(e){const t=this.$state.track;t.offset=e,this.trigger("texttrackchange")}}function Ga(e={},t={}){return{states:e,controls:t}}function Ka(){return this.id()}function Ya(){const e=()=>this.currentTime();return this.$set(e,["timeupdate","stop$"]),e()}function Ja(){const e=()=>this.duration()||0;return this.$set(e,["durationchange","stop$"]),e()}function Za(){const e=()=>{const e=this.buffered(),t=[];for(let a=0;athis.poster();return this.$set(e,["posterchange","stop$"]),e()}function en(){const e=()=>this.playbackRate();return this.$set(e,["ratechange"]),e()}function tn(){const e=()=>this.isInPictureInPicture();return this.$set(e,[["enterpictureinpicture","leavepictureinpicture"]]),e()}function an(){const e=()=>this.isFullscreen();return this.$set(e,["fullscreenchange"]),e()}function nn(){const e=()=>this.volume();return this.$set(e,["volumechange"]),e()}function on(){const e=()=>this.paused();return this.$set(e,["play","pause","loadstart","loadeddata","stop$"]),e()}function rn(){const e=()=>this.muted();return this.$set(e,["mute$"]),e()}function sn(){console.log("PLAY",this.play,this.muted,this),this.play()}async function ln(){this.pause(),await bn((()=>this.paused()))}function cn(e){this.poster(e)}function dn(e){this.currentTime(e)}function un(e){this.playbackRate(e)}function _n(e){try{e?this.requestPictureInPicture():this.exitPictureInPicture()}catch(t){console.log("Failed to toggle PiP",e,(null===t||void 0===t?void 0:t.message)||t)}}function pn(e){e?this.requestFullscreen():this.exitFullscreen()}function mn(e){hn.call(this,!1),this.volume(e)}function hn(e){this.muted(e),this.trigger("mute$")}async function gn(){async function e(){this.reset(),await bn((()=>{const e=this.currentSources().filter((e=>!!e.src&&!!e.type));return e<=0}))}this.isInPictureInPicture()&&this.exitPictureInPicture(),await ln.call(this),await e.call(this),this.trigger("stop$")}function fn(){this.isInPictureInPicture()&&this.exitPictureInPicture(),this.reset(),this.dispose()}function bn(e,t=100){let a=null;return new Promise((n=>{a=setInterval((()=>{e.call(this)&&(clearInterval(a),a=null,n())}),t)}))}var yn=e=>{const t=e.reduce(((e,t)=>({...e,...t.states})),{}),a=Object.keys(t),n=Object.entries(t);return{data(){return{states:{}}},created(){this.$watch((()=>this.instance),(e=>{if(!this.instance)return void(this.states=a.map((e=>[e,null])).reduce(((e,[t,a])=>({...e,[t]:a})),{}));const t=n.map((([t,a])=>{const n=wn({player:e,states:vn.call(this),name:t});return[t,a.call(n)]})).reduce(((e,[t,a])=>({...e,[t]:a})),{});this.states=t}),{immediate:!0})}}};function vn(){const e=this;return new Proxy({},{get(t,a,n){return e.states[a]},set(t,a,n,o){return e.states=Object.assign({},e.states,{[a]:n}),!0}})}function wn({player:e,states:t,name:a}){return new Proxy(e,{get(n,o,i){return"$state"===o?t:"$set"===o?(n,o)=>{o?o.forEach((o=>e.on(o,(()=>t[a]=n(o))))):t[a]=n}:Reflect.get(n,o,i)}})}var kn=e=>{const t=e.reduce(((e,t)=>({...e,...t.controls})),{}),a=e=>function(...t){return this.instance?e.apply(Sn({player:this.instance,states:this.states}),t):null};return{methods:Object.entries(t).map((([e,t])=>[e,a(t)])).reduce(((e,[t,a])=>({...e,[t]:a})),{})}};function Sn({player:e,states:t}){return new Proxy(e,{get(e,a,n){return"$state"===a?t:Reflect.get(e,a,n)}})}function Cn(e={controls:!1,autoplay:!1,preload:"auto",playbackRates:[.5,1,1.5,2]},t=Wa){return new r["a"]({data(){let e,t=new Promise((t=>e=t));return t.resolve=e,{instance:null,promiseReady:t}},mixins:[yn(t),kn(t)],methods:{async initialize(t){if(this.instance)throw new Error("Failed to initialize player.");const a=Object(Ua["default"])(t,e);await new Promise((e=>a.one("ready",e))),this.instance=a,this.promiseReady.resolve()}}})}var xn={data(){return{}},methods:{createPlayer:Cn}},$n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player relative-position"},[a("video",{ref:"videoRef",staticClass:"video-js",attrs:{playsinline:"true","webkit-playsinline":"true",tabindex:"-1"}}),a("Controller",{attrs:{player:e.player},scopedSlots:e._u([{key:"header",fn:function(){return[e._t("header")]},proxy:!0},{key:"footer",fn:function(){return[e._t("footer")]},proxy:!0}],null,!0)})],1)},Tn=[],zn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerLayout",{attrs:{player:e.player},on:{hotkey$focus:e.hotkey$focus},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.showController;return[a("Subtitle",{style:n?{paddingTop:"58px",paddingBottom:"60px"}:{},attrs:{player:e.player,dense:n}}),a("Center",{ref:"centerRef",attrs:{player:e.player}}),a("Header",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("header"),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"file_open",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenLocalVideo}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!0,expression:"true"}],attrs:{icon:"settings",unelevated:"",round:"",size:"0.8rem"},on:{click:e.handleOpenSetting}}),a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],attrs:{icon:"more_vert",unelevated:"",round:"",size:"0.8rem"}})]},proxy:!0}],null,!0)}),a("Footer",{directives:[{name:"show",rawName:"v-show",value:n,expression:"showController"}],attrs:{player:e.player},scopedSlots:e._u([{key:"right",fn:function(){return[e._t("footer"),a("VolumeButton",{attrs:{player:e.player}}),a("PlaybackRateButton",{attrs:{player:e.player}}),a("SubtitleButton",{attrs:{player:e.player}}),a("PipButton",{attrs:{player:e.player}}),a("FullscreenButton",{attrs:{player:e.player}})]},proxy:!0}],null,!0)}),a("Setting",{ref:"settingRef",attrs:{player:e.player}})]}}])})},Pn=[],An=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"video-js-player__controller absolute-full relative-position",on:{click:e.onVideoClick,dblclick:e.onVideoDoubleClick}},e.mouseEvents),[e.isAudio?a("div",{staticClass:"is-audio-hint absolute-center"},[a("img",{staticClass:"q-mt-xl",attrs:{src:"developer/assets/icon-256.png",alt:""}}),a("p",{staticClass:"text-center text-h5",staticStyle:{"line-height":"24px"}},[a("i",{staticClass:"material-icons",staticStyle:{"vertical-align":"top"}},[e._v("audiotrack")]),e._v("\n "+e._s(e.$t("audio_file"))+"\n ")])]):e._e(),e._t("default",null,null,{showController:e.showController})],2)},In=[],qn=a("4fd2"),On={props:{player:Object},mixins:[En(),Dn()],computed:{isAudio(){var e,t,a;const n=null===(e=this.player)||void 0===e||null===(t=e.states)||void 0===t||null===(a=t.currentSources)||void 0===a?void 0:a[0];if(!n||!n.filename)return!1;const o=n.filename.replace(/\.downloading$/,"").match(/\.[^.]+?$/);if(!o||!o[0])return!1;const i=o[0].slice(1);return Object(qn["b"])(i)}},methods:{onVideoClick(e){const t=e=>e.classList.contains("video-js-player__controller");if(!t(e.target))return;const{isPaused:a,loadingState:n,currentSources:o}=this.player.states;"object"!==typeof n&&o&&0!==o.length&&(a?this.player.play():this.player.pause())},onVideoDoubleClick(e){const t=e=>e.classList.contains("video-js-player__controller");t(e.target)&&this.player&&this.player.setFullscreen(!this.player.states.isFullscreen)}}};function En(){return{data(){return{toggle:!1,playerReady:!1}},created(){this.$watch((()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null}),(e=>{e&&e.ready((()=>this.playerReady=!0))}),{immediate:!0})},computed:{showController:{get(){return this.toggle&&this.playerReady},set(e){this.toggle=e}}}}}function Dn(){const e=e=>e.classList.contains("video-js-player__controller");let t=null;return{computed:{mouseEvents(){return{mouseover:n.bind(this),mousemove:o.bind(this),mouseenter:e=>a.call(this,e,!0),mouseleave:e=>a.call(this,e,!1)}}},watch:{showController(){this.$emit("hotkey$focus")}}};function a(e,t){if(t)this.showController=t;else{if(0!==e.which)return;this.showController=t}}function n(a){if(!e(a.target))return clearTimeout(t);t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3)}function o(a){e(a.target)&&(this.showController=!0,t&&clearTimeout(t),t=setTimeout((()=>{this.showController=!1,t=null}),3e3))}}var jn=On,Nn=(a("4dbc"),Object(f["a"])(jn,An,In,!1,null,null,null)),Ln=Nn.exports,Un=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-full flex items-stretch no-pointer-events--children non-selectable"},[a("div",{staticClass:"full-width full-height flex items-stretch"},[a("div",{staticClass:"full-width full-height relative-position column justify-end items-center"},[a("div",{staticClass:"relative-position",style:{"min-height":e.subtitlePanelMinHeight+"px"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.trackEnabled&&!!e.currentText,expression:"trackEnabled && !!currentText"}],staticClass:"video-js-player__subtitle",class:[e.player.states.isFullscreen?"fullscreen-subtitle":""]},[e._v("\n "+e._s(e.currentText)+"\n ")])])])])])},Rn=[],Mn={mixins:[Fn()],props:{player:Object,dense:Boolean},computed:{trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},currentText(){var e,t;return null===(e=this.player.states.track)||void 0===e||null===(t=e.currentTrack)||void 0===t?void 0:t.text},subtitlePanelMinHeight(){var e,t,a,n;const o=null!==(e=null===(t=this.player$rects)||void 0===t?void 0:t.container.height)&&void 0!==e?e:0,i=null!==(a=null===(n=this.player$rects)||void 0===n?void 0:n.video.height)&&void 0!==a?a:0;return Math.max(0,Math.round((o-i)/2))}}};function Fn(){let e;return{data(){return{player$rects:{container:{},video:{}}}},mounted(){const t=this.$el;e&&e.disconnect(),e=new ResizeObserver((()=>a.call(this,t))),e.observe(t,{}),setTimeout((()=>a.call(this,t)),200)},beforeDestroy(){e&&e.disconnect()}};function t(e){return e&&e.endsWith("px")?parseInt(e.slice(0,e.length-2)):0}function a(e){const a=e.querySelector("div"),n=e.parentElement.parentElement.querySelector(".video-js>video"),o=getComputedStyle(a),i=getComputedStyle(n);this.player$rects.container.width=t(o.width),this.player$rects.container.height=t(o.height),this.player$rects.video.width=t(i.width),this.player$rects.video.height=t(i.height),this.player$rects=Object.assign({},this.player$rects)}}var Bn=Mn,Wn=(a("d2e8"),Object(f["a"])(Bn,Un,Rn,!1,null,null,null)),Hn=Wn.exports;k()(Wn,"components",{QItem:Pe["a"]});var Vn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-center"},[e.dialogData?a("DialogPanel",{attrs:{icon:e.dialogData.icon,message:e.dialogData.message}}):e.playerError?a("ErrorPanel",{attrs:{player:e.player}}):e.playerLoading?a("LoadingPanel",{attrs:{player:e.player}}):e.emptySource?a("OpenButton",{attrs:{player:e.player}}):e.player.states.isPaused?a("PlayButton",{attrs:{player:e.player}}):e._e()],1)},Qn=[],Gn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{scopedSlots:e._u([e.icon?{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:e.icon}})]},proxy:!0}:null,{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.message)+"\n ")]),e.caption?a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.caption)+"\n ")]):e._e()]},proxy:!0}],null,!0)})},Kn=[],Yn=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"controller:panel overflow-hidden",staticStyle:{"border-radius":"16px"}},[a("q-card-section",{staticClass:"text-center q-pa-md"},[e.$slots.avatar?a("div",{staticClass:"q-ma-sm"},[e._t("avatar")],2):e._e(),a("div",{staticClass:"q-ma-sm"},[e._t("default")],2),e.$slots.action?a("div",{staticClass:"q-mb-xs"},[e._t("action")],2):e._e()])],1)},Jn=[],Zn={},Xn=Zn,eo=(a("9992"),Object(f["a"])(Xn,Yn,Jn,!1,null,"18dfdf92",null)),to=eo.exports;k()(eo,"components",{QCard:v["a"],QCardSection:re["a"]});var ao={components:{CenterPanel:to},name:"DialogPanel",props:{icon:String,message:String,caption:String,handleOk:Function}},no=ao,oo=Object(f["a"])(no,Gn,Kn,!1,null,null,null),io=oo.exports;k()(oo,"components",{QIcon:Y["a"],QBtn:le["a"]});var ro=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"200px","max-width":"600px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-icon",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem",name:"error"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines text-bold",staticStyle:{"font-size":"1rem","min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.type)+"\n ")]),a("div",{staticClass:"ellipsis-3-lines",staticStyle:{opacity:"0.8"}},[e._v("\n "+e._s(e.playerError.message)+"\n ")])]},proxy:!0},{key:"action",fn:function(){return[a("q-btn",{staticClass:"q-mt-sm",staticStyle:{"min-width":"64px","background-color":"rgba(256,256,256,0.1)"},attrs:{label:e.$t("ok"),"no-caps":"",flat:"",rounded:""},on:{click:e.handleOk}})]},proxy:!0}])})},so=[],lo={components:{CenterPanel:to},props:{player:Object},computed:{playerError(){var e,t;const a=this.player.states.loadingState;if(!a||"boolean"===typeof a)return null;const n=null===(e=this.player)||void 0===e||null===(t=e.instance)||void 0===t?void 0:t.languages_,o=this.$i18n.locale.toLowerCase(),i=e=>n&&n[o]&&n[o][e]||e;return{type:i(a.type),message:i(a.message)}}},methods:{async handleOk(){await this.player.stop()}}},co=lo,uo=Object(f["a"])(co,ro,so,!1,null,"90e33b2e",null),_o=uo.exports;k()(uo,"components",{QIcon:Y["a"],QBtn:le["a"]});var po=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("CenterPanel",{staticClass:"non-selectable",staticStyle:{"max-height":"180px"},scopedSlots:e._u([{key:"avatar",fn:function(){return[a("q-spinner-ios",{staticStyle:{opacity:"0.8"},attrs:{size:"2.4rem"}})]},proxy:!0},{key:"default",fn:function(){return[a("div",{staticClass:"ellipsis-2-lines",staticStyle:{"min-width":"100px",opacity:"0.8"}},[e._v("\n "+e._s(e.$t("loading"))+"\n "),e.isRemotePlay?a("span",[e._v("("+e._s(e.remoteProgress)+")")]):a("span",[e._v("...")])]),e.isRemotePlay?a("div",{staticClass:"remote-status"},[e._v("\n "+e._s(e.remoteDownloaded)+" ( "+e._s(e.remoteDownloadSpeed)+" )\n ")]):e._e()]},proxy:!0}])})},mo=[],ho=a("84f6"),go=a("6422"),fo={components:{CenterPanel:to},props:{player:Object},computed:{remoteInfoHash(){var e;return null===(e=x["a"].state.video.currentVideo)||void 0===e?void 0:e.infoHash},isRemotePlay(){return!!this.remoteInfoHash&&x["a"].state.video.currentVideo.remotePlay},remoteTask(){return this.isRemotePlay?ho["a"].taskList.downloading.find((e=>e.infoHash===this.remoteInfoHash)):null},remoteProgress(){return this.isRemotePlay&&this.remoteTask?Object(go["g"])(this.remoteTask.progress):""},remoteDownloadSpeed(){return this.isRemotePlay&&this.remoteTask?Object(go["a"])(this.remoteTask.downloadSpeed,{byte:!1,gb:!1,fix:1})+"/s":""},remoteDownloaded(){return this.isRemotePlay&&this.remoteTask?Object(go["a"])(this.remoteTask.downloaded,{byte:!1}):""}}},bo=fo,yo=Object(f["a"])(bo,po,mo,!1,null,"0ff02c0c",null),vo=yo.exports;k()(yo,"components",{QSpinnerIos:at["a"]});var wo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",[a("q-btn",{staticClass:"text-white controller:panel",attrs:{size:"2rem",icon:"file_open",unelevated:"",round:""},on:{click:e.openFile}}),a("input",{staticStyle:{display:"none"},attrs:{type:"file","data-cy":"file-input"},on:{input:e.loadVideo}})],1)},ko=[];function So({accept:e}){const t=document.createElement("input");return Object.assign(t.style,{position:"fixed",top:"0",left:"0",width:"0",height:"0"}),t.type="file",t.accept=Array.isArray(e)?e.join(","):e,t}function Co(e){return e?new Promise((t=>{const a=new FileReader;a.onload=e=>{var a,n;return t(null!==(a=null===(n=e.target)||void 0===n?void 0:n.result)&&void 0!==a?a:"")},a.readAsText(e)})):""}async function xo(e){const t=document.activeElement;try{document.body.appendChild(e),e.focus(),e.click()}finally{document.body.removeChild(e),t.focus()}const a=await n(e);return console.log("result"),console.tag("file").debug("result",a),a||null;async function n(e){var t,a;const n=await new Promise((t=>e.addEventListener("change",t,{once:!0}))),o=null===n||void 0===n||null===(t=n.target)||void 0===t||null===(a=t.files)||void 0===a?void 0:a[0];return console.tag("file").debug("change",o),e.value=null,o}}function $o(){return{readTextFile:Co,async selectFile({accept:e}={}){const t=So({accept:null!==e&&void 0!==e?e:"*"});return xo(t)}}}var To=zo;function zo(){const{selectFile:e}=$o(),t={opus:"video/ogg",ogv:"video/ogg",mp4:"video/mp4",mov:"video/mp4",m4v:"video/mp4",mkv:"video/x-matroska",m3u8:"application/x-mpegURL",mpd:"application/dash+xml"};return async()=>{console.log("selectFile");const a=await e({accept:Array.from(new Set([...Object.values(t),...Object.keys(t).map((e=>`.${e}`))]))});return console.log("file",a),a?{src:URL.createObjectURL(a),type:a.type,file:a}:null}}const Po=To();var Ao={props:{player:Object},methods:{async openFile(){console.log("Open file");const e=await Po();if(console.log("select local source",e),!e)return;await this.player.setSource(e);const{currentSources:t,loadingState:a}=this.player.states;console.log("Dispatch remotePlay reset"),x["a"].dispatch("resetRemotePlay"),!t||t.length<=0||a||(this.player.ctl$emit("openFile"),this.player.play())},async loadVideo(e){if(console.log("Load video",e),e.target.files[0]){const t={src:URL.createObjectURL(e.target.files[0]),type:e.target.files[0].type,file:e.target.files[0]};console.log("Source",t),await this.player.setSource(t);const{currentSources:a,loadingState:n}=this.player.states;if(console.log(this.player.states),!a||a.length<=0)return;if(n)return;this.player.play()}}}},Io=Ao,qo=Object(f["a"])(Io,wo,ko,!1,null,"4dd2a6d6",null),Oo=qo.exports;k()(qo,"components",{QBtn:le["a"]});var Eo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{staticClass:"text-white controller:panel",attrs:{ripple:!1,size:"2rem",icon:e.icon,disable:e.disable,unelevated:"",round:""},on:{click:e.handlePlay}})},Do=[],jo={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},No=jo,Lo=Object(f["a"])(No,Eo,Do,!1,null,"0e8525b1",null),Uo=Lo.exports;k()(Lo,"components",{QBtn:le["a"]});var Ro={mixins:[Mo()],components:{DialogPanel:io,ErrorPanel:_o,LoadingPanel:vo,OpenButton:Oo,PlayButton:Uo},data(){return{interval:null}},props:{player:Object},computed:{playerError(){const e=this.player.states.loadingState;return e&&"boolean"!==typeof e?e:null},playerLoading(){const{loadingState:e,isWaiting:t}=this.player.states;return!0===e||!!t},emptySource(){const e=this.player.states.currentSources;return!e||e.length<=0}},mounted(){clearInterval(this.interval)},beforeDestroy(){clearInterval(this.interval)}};function Mo(){let e=null;function t(){e&&clearTimeout(e),e=null,this.dialog$data.icon=null,this.dialog$data.message=null}return{data(){return{dialog$data:{icon:null,message:null}}},computed:{dialogData(){const{icon:e,message:t}=this.dialog$data;if(!t)return null;const a={};return a.icon=e,a.message=t,a}},methods:{createDialog({icon:a,message:n,timeout:o}){return e&&clearTimeout(e),e=null,this.dialog$data.icon=a,this.dialog$data.message=n,o&&(e=setTimeout(t.bind(this),o)),t.bind(this)}}}}var Fo=Ro,Bo=Object(f["a"])(Fo,Vn,Qn,!1,null,null,null),Wo=Bo.exports,Ho=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-top relative-position",staticStyle:{"min-height":"56px"}},[a("div",{staticClass:"controller-top absolute-full overflow-hidden"}),a("div",{staticClass:"relative-position flex no-wrap items-center text-white q-px-md q-pb-sm non-selectable",staticStyle:{"z-index":"1","padding-top":"10px"}},[e.info?[a("q-icon",{staticClass:"q-ml-sm q-mr-sm",attrs:{name:"movie",size:"1.5rem"}}),a("div",{staticClass:"q-my-xs q-mx-sm col-shrink"},[a("div",{staticClass:"text-bold",staticStyle:{"font-size":"0.9rem","line-height":"1.2"}},[e._v(e._s(e.info.title))]),e.info.caption?a("div",{staticClass:"ellipsis",staticStyle:{"max-width":"200px",opacity:"0.6","font-size":"0.7rem","line-height":"1"}},[e._v(e._s(e.info.caption)+"\n ")]):e._e()])]:e._e(),a("q-space"),e._t("right")],2)])},Vo=[],Qo={props:{player:Object},computed:{info(){var e,t;const a=null!==(e=null===(t=this.player.states.currentSources)||void 0===t?void 0:t[0])&&void 0!==e?e:null;if(!a)return null;if(a.filename){const e=a.filename.replace(/\\/g,"/").split("/").reverse()[0];return{title:e.slice(0,e.lastIndexOf(".")),caption:a.filename}}return a.file?{title:a.file.name.slice(0,a.file.name.lastIndexOf(".")),caption:a.file.path}:{title:this.$t("unknown_media"),caption:a.src}}}},Go=Qo,Ko=Object(f["a"])(Go,Ho,Vo,!1,null,"2ead7b1a",null),Yo=Ko.exports;k()(Ko,"components",{QIcon:Y["a"],QSpace:se["a"]});var Jo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"absolute-bottom relative-position"},[a("div",{staticClass:"controller-bottom full-height full-width absolute-top-left overflow-hidden"}),a("div",{staticClass:"relative-position flex items-center text-white q-px-md q-pb-sm non-selectable no-wrap",staticStyle:{"padding-top":"12px"}},[a("PlayButton",{attrs:{player:e.player}}),a("StopButton",{attrs:{player:e.player}}),a("div",{staticClass:"q-mx-sm q-my-sm text-bold ellipsis",style:{opacity:e.disable?.7:1}},[e._v(e._s(e.timeLabel))]),a("q-space"),e._t("right")],2),a("ProgressBar",{attrs:{player:e.player}})],1)},Zo=[],Xo=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar absolute-top q-px-md no-pointer-events",class:e.disable?["video-js-player__progress-bar-disable"]:[]},[a("q-slider",{staticClass:"video-js-player__progress-bar-slider all-pointer-events",attrs:{"disable-keydown":"",min:0,max:1e3*e.duration,"track-color":"transparent","thumb-color":"primary","thumb-size":"12px",dark:"",label:"",dense:"","label-value":e.progressLabel,disable:e.disable},nativeOn:{click:function(t){return e.onClick.apply(null,arguments)}},model:{value:e.progress,callback:function(t){e.progress=t},expression:"progress"}}),e._m(0),e._l(e.player.states.buffered,(function(t,n){var o=t[0],i=t[1];return a("div",{key:n,staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("BufferProgress",{staticStyle:{opacity:"1"},attrs:{start:o/e.player.states.duration||0,end:i/e.player.states.duration||0}})],1)}))],2)},ei=[function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__progress-bar-buffered absolute-top q-px-md"},[a("div",{staticClass:"video-js-player__progress-bar-buffered-bg"})])}];function ti(){const e=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};let t=0;return{computed:{progress:{get(){return 1e3*this.player.states.currentTime},set(e){this.player.seek(e/1e3)}},animationSpeed(){const e=Math.abs(this.progress-t);return t=this.progress,e>300?0:e},duration(){return this.player.states.duration},progressLabel(){return e(this.progress/1e3)},durationLabel(){return e(this.duration)}}}}var ai=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"video-js-player__buffer-progress relative-position full-width"},[a("div",{staticClass:"absolute full-height",staticStyle:{"border-radius":"4px"},style:{width:100*(e.end-e.start)+"%",left:100*e.start+"%"}})])},ni=[],oi={props:{start:Number,end:Number}},ii=oi,ri=(a("d1e4"),Object(f["a"])(ii,ai,ni,!1,null,"4e25daec",null)),si=ri.exports,li={mixins:[ti()],components:{BufferProgress:si},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t}},methods:{onClick(){console.log("[Ctrl] onProgressBarClick"),this.$emit("click"),setTimeout((()=>{this.$el.blur(),document.body.click(),console.log("[Ctrl] Blur")}),200)}}},ci=li,di=(a("84cb"),a("f9b5")),ui=Object(f["a"])(ci,Xo,ei,!1,null,null,null),_i=ui.exports;k()(ui,"components",{QSlider:di["a"]});var pi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:"",disable:e.disable},on:{click:e.handlePlay}})},mi=[],hi={props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},icon(){return this.player.states.isPaused?"play_arrow":"pause"}},methods:{handlePlay(){this.player.states.isPaused?this.player.play():this.player.pause()}}},gi=hi,fi=Object(f["a"])(gi,pi,mi,!1,null,null,null),bi=fi.exports;k()(fi,"components",{QBtn:le["a"]});var yi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"stop",unelevated:"",round:"",disable:e.disable},on:{click:e.handleStop}})},vi=[],wi={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{async handleStop(){this.player.states.isPiP&&this.player.setPiP(!1),this.player.states.isFullscreen&&this.player.setFullscreen(!1),x["a"].dispatch("resetRemotePlay"),await this.player.stop()}}},ki=wi,Si=Object(f["a"])(ki,yi,vi,!1,null,null,null),Ci=Si.exports;k()(Si,"components",{QBtn:le["a"]});var xi={mixins:[ti()],components:{PlayButton:bi,StopButton:Ci,ProgressBar:_i},props:{player:Object},computed:{disable(){const{currentSources:e,loadingState:t}=this.player.states;return!e||e.length<=0||!!t},timeLabel(){const e=e=>{const t=Math.round(e),a=Math.floor(t/3600),n=Math.floor((t-60*a*60)/60),o=t-(60*a*60+60*n);return(a?[a,n,o]:[n,o]).map((e=>(""+e).padStart(2,"0"))).join(":")};return`${e(this.player.states.currentTime)} / ${e(this.player.states.duration)}`}}},$i=xi,Ti=a("526f"),zi=Object(f["a"])($i,Jo,Zo,!1,null,null,null),Pi=zi.exports;k()(zi,"components",{QLinearProgress:Ti["a"],QSpace:se["a"]});var Ai=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("ControllerPage",{attrs:{title:e.$t("settings"),icon:"settings"},model:{value:e.showSetting,callback:function(t){e.showSetting=t},expression:"showSetting"}},[a("q-list",{staticClass:"video-js-player__setting-list",attrs:{dark:"",bordered:"",separator:""}},[a("q-item-label",{staticClass:"q-mx-md q-mt-md",staticStyle:{"font-size":"1.1rem"}},[e._v(e._s(e.$t("settings_subtitle_options")))]),a("SubtitleOptions")],1)],1)},Ii=[],qi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.value?a("div",{staticClass:"non-selectable absolute-full video-js-player__page",staticStyle:{"z-index":"1000"}},[a("div",{staticClass:"bg-transparent full-width"},[a("q-toolbar",{staticStyle:{height:"56px"}},[e.icon?a("q-icon",{staticClass:"q-ml-sm",attrs:{name:e.icon,size:"1.5rem"}}):e._e(),a("q-toolbar-title",{staticClass:"text-bold",staticStyle:{"font-size":"1rem","line-height":"1.2"}},[e._v(e._s(e.title))]),a("q-space"),a("q-btn",{attrs:{flat:"",round:"",icon:"close"},on:{click:function(){return e.$emit("input",!1)}}})],1),a("q-separator",{staticStyle:{"background-color":"rgba(256,256,256,0.2)"},attrs:{size:"0.8px"}})],1),a("q-page",{attrs:{padding:""}},[e._t("default")],2)],1):e._e()},Oi=[],Ei={props:{icon:String,title:String,value:Boolean}},Di=Ei,ji=(a("5a2f"),a("99c4")),Ni=a("75a3"),Li=a("9b72"),Ui=Object(f["a"])(Di,qi,Oi,!1,null,null,null),Ri=Ui.exports;k()(Ui,"components",{QToolbar:ji["a"],QIcon:Y["a"],QToolbarTitle:Ni["a"],QSpace:se["a"],QBtn:le["a"],QSeparator:ce["a"],QPage:Li["a"]});var Mi=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"overflow-hidden"},[a("q-item-section",{attrs:{side:""}},[a("div",{staticClass:"column",staticStyle:{"align-items":"stretch",gap:"8px"}},[a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontSizeOptions,"toggle-color":"primary"},model:{value:e.fontSize,callback:function(t){e.fontSize=t},expression:"fontSize"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontStyleOptions,"toggle-color":"primary"},model:{value:e.fontStyle,callback:function(t){e.fontStyle=t},expression:"fontStyle"}}),a("q-btn-toggle",{staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.fontWeightOptions,"toggle-color":"primary"},model:{value:e.fontWeight,callback:function(t){e.fontWeight=t},expression:"fontWeight"}})],1)]),a("q-item-section",{staticClass:"bg-grey-9 flex justify-center items-center overflow-hidden relative-position",staticStyle:{padding:"8px","border-radius":"8px"}},[a("div",{staticClass:"absolute-top-right"},[a("q-btn-toggle",{staticClass:"q-ma-xs lorem-ipsum",staticStyle:{"background-color":"rgba(50, 50, 50, 0.6)","border-radius":"4px"},attrs:{rounded:"",unelevated:"","no-caps":"",options:e.loremIpsumOptions,"toggle-color":"primary"},model:{value:e.loremIpsumType,callback:function(t){e.loremIpsumType=t},expression:"loremIpsumType"}})],1),a("div",{staticClass:"video-js-player__subtitle ellipsis overflow-hidden col-shrink"},[e._v(e._s(e.loremIpsum))])])],1)},Fi=[],Bi={mixins:[Wi()],name:"SubtitleOptions",inject:["player$settings"],computed:{fontSize:{get(){return this.player$settings.subtitle.size},set(e){this.player$settings.subtitle.size=e}},fontStyle:{get(){return this.player$settings.subtitle.style},set(e){this.player$settings.subtitle.style=e}},fontWeight:{get(){return this.player$settings.subtitle.weight},set(e){this.player$settings.subtitle.weight=e}},fontSizeOptions(){return[{label:this.$t("settings_small"),value:1},{label:this.$t("settings_normal"),value:1.25},{label:this.$t("settings_large"),value:1.7}]},fontStyleOptions(){return[{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_italic"),value:"italic"}]},fontWeightOptions(){return[{label:this.$t("settings_lighter"),value:"lighter"},{label:this.$t("settings_normal"),value:"normal"},{label:this.$t("settings_bolder"),value:"bold"}]}}};function Wi(){const e={EN:"Lorem ipsum dolor sit amet, consectetur adipisicing elit.","简":"朝菌不知晦朔,蟪蛄不知春秋。","繁":"天地不仁,以萬物為芻狗。 聖人不仁,以百姓為芻狗。"};return{data(){return{loremIpsumType:"EN"}},computed:{loremIpsum(){var t;return null!==(t=e[this.loremIpsumType])&&void 0!==t?t:e.EN},loremIpsumOptions(){return Object.keys(e).map((e=>({label:e,value:e})))}}}}var Hi=Bi,Vi=(a("3061"),a("834d")),Qi=a("96d7"),Gi=Object(f["a"])(Hi,Mi,Fi,!1,null,null,null),Ki=Gi.exports;k()(Gi,"components",{QItem:Pe["a"],QItemSection:Ae["a"],QBtnToggle:Vi["a"],QBtnGroup:Qi["a"],QBtn:le["a"]});var Yi={components:{ControllerPage:Ri,SubtitleOptions:Ki},props:{player:Object},data(){return{dev:!1,showSetting:!1}},methods:{show(){this.showSetting=!0}}},Ji=Yi,Zi=(a("071f"),Object(f["a"])(Ji,Ai,Ii,!1,null,null,null)),Xi=Zi.exports;k()(Zi,"components",{QList:ht["a"],QItemLabel:Ie["a"],QItem:Pe["a"]});var er=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handleMute}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showVolumeCard,expression:"showVolumeCard"}],staticClass:"video-js-player__controller-menu controller-popup__transition absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",height:"140px",padding:"6px!important"}},[a("div",{staticClass:"absolute-bottom q-mb-md text-center text-bold"},[e._v(e._s(e.volume))]),a("q-slider",{staticClass:"video-js-player__volume-slider",staticStyle:{height:"100%"},attrs:{vertical:"",reverse:"","track-size":"40px","thumb-size":"0","track-color":"transparent",min:0,max:100,step:10},model:{value:e.volume,callback:function(t){e.volume=t},expression:"volume"}})],1)],1)])],1)},tr=[];function ar(e,t){return{computed:{mouseEvents(){let a=null;const n=n=>{a&&clearTimeout(a),a=setTimeout((()=>{this[e]=n,a=null}),t)},o=e=>e.classList.contains("video-js-player__controller"),i=(t,a)=>{if(a)this[e]=a;else{if(0!==t.which)return;n(a)}},r=e=>{if(!o(e.target))return clearTimeout(a);n(!1)},s=t=>{if(!o(t.target))return clearTimeout(a);this[e]=!0,n(!1)};return{mouseover:e=>r.call(this,e),mousemove:e=>s.call(this,e),mouseenter:e=>i.call(this,e,!0),mouseleave:e=>i.call(this,e,!1)}}}}}var nr={mixins:[ar("showVolumeCard",100)],props:{player:Object},data(){return{showVolumeCard:!1}},computed:{volume:{get(){return this.player.states.isMuted?0:Math.round(100*this.player.states.volume)},set(e){this.player.setVolume(e/100)}},icon(){return this.player.states.isMuted?"volume_off":"volume_up"}},methods:{handleMute(){this.player.mute(!this.player.states.isMuted)}}},or=nr,ir=(a("f77d"),a("85c4")),rr=Object(f["a"])(or,er,tr,!1,null,null,null),sr=rr.exports;k()(rr,"components",{QBtn:le["a"],QTr:ir["a"],QCard:v["a"],QSlider:di["a"]});var lr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{size:"0.8rem",unelevated:"",round:"",icon:"speed"},on:{click:function(t){e.showPlaybackRateCard=!e.showPlaybackRateCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showPlaybackRateCard,expression:"showPlaybackRateCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("q-btn-toggle",{staticClass:"column video-js-player__controller-btn-toggle",attrs:{"toggle-color":"active",ripple:!1,options:e.playbackRates},model:{value:e.playbackRate,callback:function(t){e.playbackRate=t},expression:"playbackRate"}})],1)],1)])],1)},cr=[],dr={mixins:[ar("showPlaybackRateCard",100)],props:{player:Object},data(){return{showPlaybackRateCard:!1}},computed:{playbackRate:{get(){var e;return null!==(e=this.player.states.playbackRate)&&void 0!==e?e:1},set(e){this.player.setPlaybackRate(e)}},playbackRates(){return[{label:"X2.0",value:2},{label:"X1.5",value:1.5},{label:"X1.0",value:1},{label:"X0.5",value:.5}]},playbackRateLabel(){return this.playbackRates.find((e=>e.value===this.playbackRate)).label}}},ur=dr,_r=(a("5e87"),Object(f["a"])(ur,lr,cr,!1,null,null,null)),pr=_r.exports;k()(_r,"components",{QBtn:le["a"],QTr:ir["a"],QCard:v["a"],QBtnToggle:Vi["a"]});var mr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",e._g({staticClass:"relative-position column items-center"},e.mouseEvents),[a("q-btn",{attrs:{disable:e.disableShowSubtitleCard,size:"0.8rem",unelevated:"",round:"",icon:e.trackEnabled?"subtitles":"subtitles_off"},on:{click:function(){return e.showSubtitleCard=!e.showSubtitleCard}}}),a("transition",{attrs:{name:"q-transition--scale"}},[a("div",{directives:[{name:"show",rawName:"v-show",value:e.showSubtitleCard,expression:"showSubtitleCard"}],staticClass:"controller-popup__transition video-js-player__controller-menu absolute",staticStyle:{bottom:"44px !important","z-index":"10"}},[a("q-card",{staticClass:"controller-popup",staticStyle:{"min-width":"200px","border-radius":"12px",padding:"6px!important"},attrs:{dark:""}},[a("div",{staticClass:"row items-center justify-start no-wrap"},[a("div",{staticClass:"text-bold q-ml-sm q-mr-xs ellipsis",staticStyle:{"font-size":"0.8rem",transform:"translateY(0.1rem)"}},[e._v("\n "+e._s(e.$t("subtitle"))+"\n ")]),a("q-space"),a("div",{staticClass:"q-mr-xs overflow-hidden row items-stretch no-wrap",staticStyle:{"background-color":"rgba(256,256,256,0.1)","border-radius":"999px"}},[a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_rewind",unelevated:"",size:"0.6rem",padding:"0 6px 0 10px"},on:{click:function(){return e.handleTrackOffset(!1)}}}),a("q-btn",{staticStyle:{"min-height":"3em","min-width":"3em","border-radius":"0"},attrs:{icon:"fast_forward",unelevated:"",size:"0.6rem",padding:"0 10px 0 6px"},on:{click:function(){return e.handleTrackOffset(!0)}}})],1),a("q-btn",{staticClass:"q-mr-xs",style:{backgroundColor:e.trackEnabled?"var(--q-color-primary)":"rgba(256,256,256,0.1)"},attrs:{icon:e.trackEnabled?"subtitles":"subtitles_off",round:"",unelevated:"",size:"0.6rem"},on:{click:function(){return(e.trackEnabled?e.handleDisableTrack:e.handleEnableTrack)()}}}),a("q-btn",{staticClass:"q-mr-xs",staticStyle:{"background-color":"rgba(256,256,256,0.1)"},attrs:{icon:"add",round:"",unelevated:"",size:"0.6rem"},on:{click:e.handleAddTrack}})],1),e.tracksLoaded&&e.tracksLoaded.length?a("q-list",{staticClass:"q-mt-xs video-js-player__controller-list",staticStyle:{"min-width":"180px","max-width":"200px","font-size":"0.8rem","max-height":"240px","overflow-y":"auto"}},e._l(e.tracksLoaded,(function(t){return a("q-item",{key:t.id,staticStyle:{"padding-right":"0"},attrs:{dense:"",clickable:"",disable:!e.trackEnabled},on:{click:function(){return!t.active&&e.handleEnableTrack(t.id)}}},[a("q-item-section",{staticClass:"q-pr-sm",staticStyle:{"min-width":"24px"},attrs:{avatar:""}},[a("q-badge",{attrs:{rounded:"",color:t.active?e.trackEnabled?"primary":"grey":"transparent"}})],1),a("q-item-section",[a("q-item-label",{staticClass:"ellipsis"},[e._v(e._s(t.label))])],1),a("q-item-section",{staticStyle:{color:"inherit","padding-left":"4px"},attrs:{side:""}},[a("q-btn",{staticClass:"q-mr-xs",attrs:{icon:"clear",round:"",unelevated:"",size:"0.6rem",disable:!e.trackEnabled},on:{click:function(a){return e.handleRemoveTrack(t.id)}}})],1)],1)})),1):e._e()],1)],1)])],1)},hr=[],gr=fr;function fr(){const{selectFile:e,readTextFile:t}=$o(),a={vtt:"text/vtt",srt:"text/srt"};return async()=>{const n=await e({accept:Array.from(new Set([...Object.values(a),...Object.keys(a).map((e=>`.${e}`))]))});if(!n)return null;let o=await t(n);return o?(n.name.endsWith(".srt")&&(o=br(o)),{src:URL.createObjectURL(new Blob([o])),id:n.name}):null}}function br(e){var t=e.replace(/\r+/g,"");t=t.replace(/^\s+|\s+$/g,"");var a=t.split("\n\n"),n="";if(a.length>0){n+="WEBVTT\n\n";for(var o=0;o3){for(var n=3;n\s*(\d+):(\d+):(\d+)(?:,(\d+))?/);return i?(t+=i[1]+":"+i[2]+":"+i[3]+"."+i[4]+" --\x3e "+i[5]+":"+i[6]+":"+i[7]+"."+i[8]+"\n",o+=1,a[o]&&(t+=a[o]+"\n\n"),t):""}}const yr=gr();var vr={mixins:[ar("showSubtitleCard",100)],props:{player:Object},data(){return{showSubtitleCard$inner:!1}},computed:{disableShowSubtitleCard(){const{currentSources:e}=this.player.states;return!e||e.length<=0},showSubtitleCard:{get(){return this.showSubtitleCard$inner&&!this.disableShowSubtitleCard},set(e){this.showSubtitleCard$inner=e}},trackEnabled(){var e,t;return null!==(e=null===(t=this.player.states.track)||void 0===t?void 0:t.enable)&&void 0!==e&&e},tracksLoaded(){var e,t,a;const n=this.player.states.track;if(!n)return[];const o=null!==(e=n.tracks)&&void 0!==e?e:[],i=null!==(t=null===(a=n.currentTrack)||void 0===a?void 0:a.id)&&void 0!==t?t:null;return o.map((e=>({id:e,label:e,active:e===i})))}},methods:{async handleAddTrack(){const e=await yr();e&&(this.player.addTrack(e),this.player.enableTrack(e.id))},async handleRemoveTrack(e){console.log("Remove track",e),this.player.removeTrack(e)},handleEnableTrack(e=null){const t=this.player.states.track;t&&this.player.enableTrack(e)},handleDisableTrack(){const e=this.player.states.track;e&&e.enable&&this.player.disableTrack()},handleTrackOffset(e){this.player.setTrackOffset(this.player.states.track.offset+(e?.5:-.5))}}},wr=vr,kr=(a("cc0c"),a("90c4")),Sr=Object(f["a"])(wr,mr,hr,!1,null,null,null),Cr=Sr.exports;k()(Sr,"components",{QBtn:le["a"],QTr:ir["a"],QCard:v["a"],QSpace:se["a"],QColor:Z["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QBadge:kr["a"],QItemLabel:Ie["a"]});var xr=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:"picture_in_picture_alt",unelevated:"",round:"",disable:e.disable},on:{click:e.handler}})},$r=[],Tr={props:{player:Object},computed:{disable(){const{currentSources:e}=this.player.states;return!e||e.length<=0}},methods:{handler(){this.player.setPiP(!this.player.states.isPiP)}}},zr=Tr,Pr=Object(f["a"])(zr,xr,$r,!1,null,null,null),Ar=Pr.exports;k()(Pr,"components",{QBtn:le["a"]});var Ir=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",{attrs:{size:"0.8rem",icon:e.icon,unelevated:"",round:""},on:{click:e.handler}})},qr=[],Or={props:{player:Object},computed:{icon(){return this.player.states.isFullscreen?"fullscreen_exit":"fullscreen"}},methods:{handler(){this.player.setFullscreen(!this.player.states.isFullscreen)}}},Er=Or,Dr=Object(f["a"])(Er,Ir,qr,!1,null,null,null),jr=Dr.exports;k()(Dr,"components",{QBtn:le["a"]});const Nr=e=>{const t=e-Math.floor(e),a=e-t,n=Math.floor(a/3600),o=Math.floor((a-60*n*60)/60),i=a-(60*n*60+60*o);return(n?[n,o,i]:[o,i]).map((e=>(""+e).padStart(2,"0"))).join(":")};var Lr=()=>{const e=5,t=.1;return{mixins:[Ur(),ti()],mounted(){this.hotkey$bind([32,179],"play_switch",(()=>{const{currentSources:e,loadingState:t}=this.player.states;!e||e.length<=0||t||(this.player.states.isPaused?this.player.play():this.player.pause())})),this.hotkey$bind(70,"fullscreen_switch",(()=>{this.player.setFullscreen(!this.player.states.isFullscreen)})),this.hotkey$bind([39,176],"forward",(()=>{console.log("[Ctrl] fwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime+e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_forward",message:`${Nr(i)} / ${this.durationLabel}`})})),this.hotkey$bind([37,177],"rewind",(()=>{console.log("[Ctrl] bwd");const{currentSources:t,loadingState:n}=this.player.states;if(!t||t.length<=0)return;if(n)return;const o=this.player.states,i=Math.max(0,Math.min(o.currentTime-e,o.duration-.001));this.player.seek(i),a.call(this,{icon:"fast_rewind",message:`${Nr(i)} / ${this.durationLabel}`})})),this.hotkey$bind(38,"volume_up",(()=>{const e=Math.max(0,Math.min(this.player.states.volume+t,1));this.player.setVolume(e)})),this.hotkey$bind(40,"volume_down",(()=>{const e=Math.max(0,Math.min(this.player.states.volume-t,1));this.player.setVolume(e)})),this.hotkey$bind(190,"track_offset_forward",(()=>{this.player.setTrackOffset(this.player.states.track.offset+.5)})),this.hotkey$bind(188,"track_offset_backward",(()=>{this.player.setTrackOffset(this.player.states.track.offset-.5)})),this.$watch((()=>{var e;return null===(e=this.player.states.track)||void 0===e?void 0:e.offset}),((e,t)=>{void 0!==t&&a.call(this,{icon:"subtitles",message:`${e>0?"+":""}${-1===e.toString().indexOf(".")?e+".0":e}s`})})),this.$watch((()=>this.player.states.volume),((e,t)=>{null!==t&&a.call(this,{icon:"volume_up",message:`${Math.round(100*e)}%`})}))}};function a({icon:e,message:t}){this.$refs.centerRef.createDialog({icon:e,message:t,timeout:1e3})}};function Ur(){const e={};let t;const a=[],n={};return{async mounted(){await this.player.promisePlayerReady,e.player=this.$el.parentNode,e.container=e.player.querySelector(".video-js-player>.video-js"),e.controller=this.$el,e.video=e.player.querySelector(".video-js-player>.video-js>video.vjs-tech"),e.controller.hasAttribute("tabIndex")||e.controller.setAttribute("tabIndex","-1"),e.controller.style.outline="none",t=i.bind(this),document.body.addEventListener("keydown",t)},beforeUnmount(){document.body.removeEventListener("keydown",t)},methods:{hotkey$bind:o,hotkey$focus(){const t=document.activeElement;t===e.player||t===e.container||t===e.controller||t===e.video||e.controller.contains(t)||e.container.focus()}}};function o(e,...t){const o={matcher:null,callback:null};function i(){return"function"===typeof e?e:"number"===typeof e?t=>t.which===e:Array.isArray(e)?t=>e.includes(t.which):null}function r(){let e,a;return 2===t.length?(e=t[0],a=t[1]):"function"===typeof t[0]?(e=null,a=t[0]):(e=t[0],a=null),e&&a&&(n[e]=a),e?()=>n[e]():a?()=>a():null}o.matcher=i(),o.callback=r(),o.matcher&&o.callback&&a.unshift(o)}async function i(t){const n=document.activeElement;if(n===e.player||n===e.container||n===e.controller||n===e.video||n===document.body||e.controller.contains(n)){const e=a.find((e=>e.matcher(t)));if(!e)return console.log("[Ctrl] No hotkey",t);console.log("[Ctrl]",e),await e.callback()}}}const Rr=To();var Mr={mixins:[Lr(),Fr()],components:{ControllerLayout:Ln,Subtitle:Hn,Center:Wo,Header:Yo,Footer:Pi,Setting:Xi,VolumeButton:sr,PlaybackRateButton:pr,SubtitleButton:Cr,PipButton:Ar,FullscreenButton:jr},props:{player:Object},methods:{handleOpenSetting(){this.player.pause(),this.$refs.settingRef.show()},async handleOpenLocalVideo(){console.log("handleOpenLocal");const e=await Rr();if(console.log("source",e),!e)return;await this.player.setSource(e),console.log(this.player.states);const{currentSources:t,loadingState:a}=this.player.states;!t||t.length<=0||a||(console.log(this.player,this.player.play),this.player.play())}}};function Fr(){return{provide(){return{player$settings:this.player$settings}},data(){return{player$settings:{subtitle:{style:"normal",weight:"normal",size:1.25}}}},mounted(){this.$watch((()=>this.player$settings.subtitle.size),(e=>{this.$el.style.setProperty("--subtitle-size",`${e}rem`)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.style),(e=>{this.$el.style.setProperty("--subtitle-style",e)}),{immediate:!0}),this.$watch((()=>this.player$settings.subtitle.weight),(e=>{this.$el.style.setProperty("--subtitle-weight",e)}),{immediate:!0})}}}var Br=Mr,Wr=Object(f["a"])(Br,zn,Pn,!1,null,null,null),Hr=Wr.exports;k()(Wr,"components",{QBtn:le["a"]});var Vr={name:"VideoJsPlayer",components:{Controller:Hr},data(){return{player:null}},mixins:[Qr(),Gr(),Kr()]};function Qr(){const e=e=>e&&e.destroy();return{created(){this.player=this.$videoJs.createPlayer();const e=this.player.play.bind(this);this.player.play=(...t)=>{console.log("[Trigger play]",this.player,this.player.states),e(...t),this.$emit("player-play"),this.player.mute(this.player.states.isMuted)}},mounted(){this.$watch((()=>this.player),(async(a,n)=>{e(n),a&&(await a.initialize(this.$refs.videoRef),t.call(this))}),{immediate:!0})},beforeDestroy(){e(this.player)}};function t(){const e=["openFile"];e.forEach((e=>this.player.ctl$on(e,(()=>this.$emit(e)))))}}function Gr(){return{created(){const e=()=>{var e,t;return null!==(e=null===(t=this.player)||void 0===t?void 0:t.instance)&&void 0!==e?e:null};this.$watch(e,(e=>{if(!e)return;const t=e.contentEl();if(!t)return;const a=t.nextElementSibling;a&&t.appendChild(a)}),{immediate:!0})}}}function Kr(){return{methods:{async setSource(...e){await this.player.promiseReady,await this.player.setSource(...e)}}}}var Yr=Vr,Jr=(a("2163"),Object(f["a"])(Yr,$n,Tn,!1,null,null,null)),Zr=Jr.exports;window.videojs=Ua["default"],a("94ce"),a("63f2"),a("2079");var Xr=(e,t)=>{const a=new e(xn);e.prototype.$videoJs=a,e.component("VideoJsPlayer",Zr)},es=e=>{const{Vue:t}=e;t.component("AlphabizButton",Se),t.component("AlphabizSelect",Ee),t.component("VirtualScrollGrid",Fe),t.use(wa),t.use(ts,e),t.config.errorHandler=function(e){throw e},t.use(as),t.use(Na,{}),t.use(qa,{getLocalConfig:()=>F.a.dynamicConfig.local,getRemoteConfigUrl:()=>F.a.dynamicConfig.remote.url}),t.mixin({computed:{screen$xs(){return this.$q.screen.height<=600||this.$q.screen.width<=600},isPortrait(){return this.$q.screen.height>this.$q.screen.width}}}),t.use(Xr,{})};function ts(e,{store:t}){const n=(...e)=>console.tag.orange("VersionControl",...e),o=()=>t.getters.settings.versionChannel,i=e=>{{const t=a("ae46");return t[e]}},r=e=>{const[t,a,n]=e.split("-");return{version:t,channel:null!==a&&void 0!==a?a:"stable",build:n}},s=e=>{const t=Array.from(e),a=[4,2,2,2,2].reduce(((e,a,n)=>(e[n]=t.splice(0,a).join(""),e)),[]);return new Date(a.splice(0,3).join("-")+" "+a.join(":"))},l=async({wait:e,timeout:t})=>{const a=F.a.versionsUrl,o=async()=>{try{return await(await fetch(a)).json()}catch{return null}},i=async(e,{onTimeout:t,timeout:a})=>{let n,o=!1;return await Promise.race([e.then((e=>{o=!0,n=e})),new Promise((e=>setTimeout(e,a))).then((()=>{o||t&&(n=t())}))]),n},r=(e,{onFailed:t,wait:a})=>{let n=!1;const o=async()=>{let o=await e();while(!o&&!n){if(await new Promise((e=>setTimeout(e,a))),n)break;if(o=await e(),n)break;o||t()}return o},i=o();return i.cancel=()=>n=!0,i},s=r((async()=>await o()),{onFailed(){n().tag("retry").log("retry to fetch versionsInfo")},wait:e}),l=await i(s,{timeout:t,onTimeout(){return n().tag.red("failed").log("failed to fetch versionsInfo"),null}}).finally(s.cancel);return l},c=31536e6,d=1e4,u=new e({data(){return{currentVersion:r(i("version")),buildTime:s(i("buildTime")),versionsInfo:void 0}},computed:{versionState(){if(!Object(xa["isElectron"])())return"active";if(void 0===this.versionsInfo)return"pending";if(this.versionsInfo){const e=r(this.versionsInfo.min[o()]),t=Ca.a.gt([e.version,e.build].filter((e=>!!e)).join("-"),[this.currentVersion.version,this.currentVersion.build].filter((e=>!!e)).join("-"));return t?"force_update":"active"}{const e=new Date-this.buildTime;return e>=c?"force_exit":"active"}}},created(){this.$watch("currentVersion",(e=>{n("currentVersion").log(JSON.parse(JSON.stringify(e)))}),{immediate:!0}),this.$watch("versionsInfo",(e=>{n("versionsInfo").log(e?JSON.parse(JSON.stringify(null!==e&&void 0!==e?e:{})):e)}),{immediate:!0}),this.$watch("versionState",(e=>{n("versionState").log(e)}),{immediate:!0});const e=3e3;l({wait:e,timeout:d}).then((e=>this.versionsInfo=e))}});e.mixin({computed:{vc$versionState(){return u.versionState},vc$buildTime(){return u.buildTime}}})}function as(e){function t(){let e=0;document.addEventListener("touchstart",(e=>{e.touches.length>1&&e.preventDefault()})),document.addEventListener("touchend",(t=>{const a=(new Date).getTime();a-e<=300&&t.preventDefault(),e=a}),!1),document.addEventListener("gesturestart",(e=>e.preventDefault())),document.addEventListener("dblclick",(e=>e.preventDefault()))}function a(){const e=window.innerHeight;document.documentElement.style.setProperty("--viewport-height",`${e}px`)}window.addEventListener("DOMContentLoaded",t),window.addEventListener("resize",a),window.addEventListener("DOMContentLoaded",a)}var ns=a("1926");const os={account_error_network:["Network error","Network Error"],account_error_attempt_limit_exceeded:["Attempt limit exceeded, please try after some time"],account_error_incorrect_username_or_password:["User does not exist","Incorrect username or password"],account_error_username_not_found:["Username/client id combination not found."],account_error_can_not_reset_for_no_verified:["Cannot reset password for the user as there is no registered/verified email or phone_number"],account_error_invalid_verification_code:["Invalid verification code provided, please try again"],account_error_password_not_long_enough:["Password did not conform with policy: Password not long enough"],account_error_invalid_phone_number_format:["Invalid phone number format"],account_error_no_cell_phone_prefix:["Please select the prefix for the phone number"],account_error_username_already_exists:["User already exists"],account_error_incorrect_password:["Incorrect password"],account_error_you_need_to_accept_license_terms:["you_need_to_accept_license_terms"],account_error_incorrect_original_password:["incorrect_original_password"]},is={match:e=>Object.values(os).some((t=>Array.isArray(t)?t.includes(e.message):"object"===typeof t&&Object.keys(t).includes(e.message))),execute(e,t){const a=Object.keys(os).find((t=>os[t].some((t=>t.includes(e.message)))));t.$q.notify({message:a,type:"negative",position:"bottom-right",timeout:5e3})}};var rs=[is],ss=a("b34a"),ls=a("1738"),cs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-btn",e._g(e._b({style:{minWidth:e.minWidth},attrs:{size:"md",align:"around","no-wrap":"",percentage:e.percentage,disable:e.value||e.loading,loading:e.loading,type:e.type,unelevated:!e.shadow,icon:e.icon,label:e.label,color:e.primary?"primary":e.transparent?"transparent":"general","text-color":e.primary?"primary":"general"},scopedSlots:e._u([{key:"loading",fn:function(){return[a("q-spinner",{attrs:{color:e.primary?"primary":"general"}})]},proxy:!0}])},"q-btn",Object.assign({},e.bound),!1),Object.assign({},"button"===e.type?{click:e.handleButton}:{})),[e._t("default")],2)},ds=[],us={name:"AmplifyButton",props:{primary:Boolean,immediate:Boolean,shadow:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},minWidth:{type:String,default:"128px"},value:{type:Boolean,default:!1},timeout:{type:Object,default:void 0},icon:{type:String,default:void 0},label:{type:String,default(){return this.icon?void 0:"button"}},type:{type:String,default:"button"},onClick:{type:Function,default:void 0},onAnimationEnd:{type:Function,default:void 0},bound:{type:Object,default(){return{}}}},data(){return{loading:!1,percentage:100,interval:null}},methods:{async handleButton(e){if(this.onClick)if(this.immediate)this.onClick(e);else try{await this.startLoading(this.onClick,e)}finally{await this.stopLoading()}},async startLoading(e,...t){this.$emit("input",!0),this.loading=!0,await new Promise((e=>setTimeout(e,800)));const a=this.timeout?this.timerWrapper(e):e;await a(...t)},async stopLoading(){this.shutdownTimer(),this.timeout&&await new Promise((e=>setTimeout(e,1e3))),this.onAnimationEnd&&this.onAnimationEnd(),this.loading=!1,this.$emit("input",!1)},async startTimer(e,t){const a=100,n=Math.max(100,t/100),o=Math.max(1,Math.floor(n)/t*a);return this.percentage=e,await new Promise(((e,t)=>{const a=()=>{this.percentage=Math.max(0,Math.min(100,this.percentage+o)),this.percentage<100||(this.shutdownTimer(),t(new Error("Timeout")))};this.interval=setInterval(a,n)}))},shutdownTimer(){this.percentage=100,null!==this.interval&&(clearInterval(this.interval),this.interval=null)},timerWrapper(e){const{onTimeout:t,duration:a}=this.timeout;return async(...n)=>{let o;try{o=await Promise.race([this.startTimer(0,a),e(...n)]),this.shutdownTimer()}catch(i){if("Timeout"!==i.message)throw i;t()}return o}}},beforeDestroy(){this.shutdownTimer()}},_s=us,ps=(a("3c15"),Object(f["a"])(_s,cs,ds,!1,null,"6fc70cc6",null)),ms=ps.exports;k()(ps,"components",{QBtn:le["a"],QSpinner:we["a"]});var hs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{style:Object.assign({},{minWidth:e.minWidth},e.maxWidth?{maxWidth:e.maxWidth}:{},{paddingBottom:e.screen$xs?"calc(44px + 8px)":"8px"}),attrs:{flat:"",bordered:e.bordered}},[e.showCancelCorner?a("amplify-button",{ref:"cornerCancelButton",staticClass:"self-start",staticStyle:{height:"48px"},attrs:{immediate:!0,transparent:!0,icon:"arrow_back","on-click":e.onCancel,"min-width":"64px"},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showTitle,expression:"showTitle"}],staticClass:"q-py-sm",class:e.screen$xs?"q-px-sm":"q-px-md"},[a("div",{staticClass:"text-h6 text-weight-bold q-py-sm non-selectable"},[e._v(e._s(e.title))])]),a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showDescription,expression:"showDescription"}],staticClass:"q-pt-none q-pb-sm amplify-card-description",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("description",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-form",{directives:[{name:"show",rawName:"v-show",value:e.showForm,expression:"showForm"}],staticClass:"col-grow",on:{submit:e.handleSubmit}},[a("q-card-section",{directives:[{name:"show",rawName:"v-show",value:e.showContent,expression:"showContent"}],staticClass:"col-grow q-pt-none amplify-card-form",class:e.screen$xs?"q-px-sm":"q-px-md"},[e._t("default",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2),a("q-card-actions",{directives:[{name:"show",rawName:"v-show",value:e.showCardActions,expression:"showCardActions"}],staticClass:"q-pt-md q-pb-sm amplify-card-actions",class:e.screen$xs?"q-px-sm":"q-px-md",attrs:{align:"stretch",vertical:""}},[e._t("options",null,{disable:e.disable,setDisable:function(t){return e.disable=t}}),e.showSubmitButton?a("amplify-button",{ref:"submitButton",attrs:{primary:!e.noPrimary,type:"submit",timeout:e.timeout,label:e.submitLabel,"on-click":e.onSubmit,"on-animation-end":e.afterSubmit},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e.showCancelButton?a("amplify-button",{ref:"cancelButton",attrs:{immediate:"",label:e.cancelLabel,"on-click":e.onCancel},model:{value:e.disable,callback:function(t){e.disable=t},expression:"disable"}}):e._e(),e._t("actions",null,{disable:e.disable,setDisable:function(t){return e.disable=t}})],2)],1)],1)},gs=[],fs=(a("e39c"),{name:"AmplifyCard",props:{title:{type:String,default:void 0},bordered:{type:Boolean,default:!1},minWidth:{type:String,default:"320px"},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},afterSubmit:{type:Function,default:void 0},noPrimary:Boolean,hideDescription:Boolean,hideOptions:Boolean,hideActions:Boolean},data(){return{disable:!1}},methods:{async handleSubmit(e){await this.$refs.submitButton.handleButton(e)},handleKeydownEsc(){if(this.disable)return;if(!this.showCancelButton&&!this.showCancelCorner)return;const e=this.showCancelButton?"cancelButton":"cornerCancelButton";this.$refs[e].handleButton(null)}},computed:{showCancelCorner(){return this.cancelable&&this.cornerCancel},showTitle(){return!!this.title},showDescription(){return!this.hideDescription&&(!!this.$slots.description||!!this.$scopedSlots.description)},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!this.hideOptions&&(!!this.$slots.options||!!this.$scopedSlots.options)},showActions(){return!this.hideActions&&(!!this.$slots.actions||!!this.$scopedSlots.actions)},showSubmitButton(){return!!this.onSubmit},showCancelButton(){return this.cancelable&&!this.cornerCancel},showForm(){return this.showContent||this.showCardActions},showCardActions(){return this.showOptions||this.showSubmitButton||this.showCancelButton||this.showActions}}}),bs=fs,ys=(a("0251"),a("1117")),vs=Object(f["a"])(bs,hs,gs,!1,null,null,null),ws=vs.exports;k()(vs,"components",{QCard:v["a"],QCardSection:re["a"],QForm:ys["a"],QCardActions:ba["a"]});var ks=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{attrs:{"no-shake":"",value:e.value,persistent:"","content-class":{"background-blur":e.blur,"background-mask":e.mask,"fullscreen-dialog":!0}},on:{input:function(t){return e.$emit("input",t)}}},[e.single?a("amplify-card",e._b({attrs:{"hide-description":!e.showDescription,"hide-options":!e.showOptions,"hide-actions":!e.showActions},scopedSlots:e._u([{key:"description",fn:function(t){return[e.showDescription?e._t("description",null,null,t):e._e()]}},{key:"default",fn:function(t){return[e.showContent?e._t("default",null,null,t):e._e()]}},{key:"options",fn:function(t){return[e.showOptions?e._t("options",null,null,t):e._e()]}},{key:"actions",fn:function(t){return[e.showActions?e._t("actions",null,null,t):e._e()]}}],null,!0)},"amplify-card",e.cardProps,!1)):[e._t("default",null,{cardProps:e.cardProps,handleSubmit:e.handleSubmit,handleCancel:e.handleCancel})]],2)},Ss=[],Cs={name:"AmplifyDialog",props:{value:Boolean,blur:Boolean,mask:Boolean,single:{type:Boolean,default:!0},title:{type:String,default:void 0},minWidth:{type:String,default:void 0},maxWidth:{type:String,default:void 0},cancelable:{type:Boolean,default:!0},cornerCancel:{type:Boolean,default:!1},submitLabel:{type:String,default(){return this.$t("account_submit")}},cancelLabel:{type:String,default(){return this.$t("account_cancel")}},timeout:{type:Object,default:void 0},onSubmit:{type:Function,default:void 0},onCancel:{type:Function,default:void 0},onClear:{type:Function,default:void 0}},data(){return{disable:!1,close:!1}},watch:{value(e){!e&&this.onClear&&setTimeout((()=>this.onClear()),1e3)}},computed:{cardProps(){const e={};return e.title=this.title,e.minWidth=this.minWidth,e.maxWidth=this.maxWidth,e.cancelable=this.cancelable,e.cornerCancel=this.cornerCancel,e.submitLabel=this.submitLabel,e.cancelLabel=this.cancelLabel,e.timeout=this.timeout,this.onSubmit&&(e.onSubmit=()=>this.handleSubmit(this.onSubmit)),this.cancelable&&(e.onCancel=()=>this.handleCancel(this.onCancel)),e.afterSubmit=()=>this.handleAfterSubmit(),e},showDescription(){return!!this.$slots.description||!!this.$scopedSlots.description},showContent(){return!!this.$slots.default||!!this.$scopedSlots.default},showOptions(){return!!this.$slots.options||!!this.$scopedSlots.options},showActions(){return!!this.$slots.actions||!!this.$scopedSlots.actions}},methods:{async handleSubmit(e){e?this.close=await e():this.closeDialog()},async handleCancel(e){if(e){const t=await e();t&&this.closeDialog()}else this.closeDialog()},handleAfterSubmit(){this.close&&(this.close=!1,this.closeDialog())},closeDialog(){this.$emit("input",!1)}}},xs=Cs,$s=(a("4d89"),Object(f["a"])(xs,ks,Ss,!1,null,null,null)),Ts=$s.exports;k()($s,"components",{QDialog:y["a"]});var zs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-select",e._g({ref:"select",staticClass:"amplify-select",attrs:{dense:"",outlined:"",behavior:"menu",options:e.optionsCpt,readonly:e.readonly,autofocus:e.autofocus,value:e.model,"option-label":e.selectLabelFn,"use-input":Boolean(e.filter),"input-debounce":"0","popup-content-style":e.popupWidth,"input-style":e.enableFilter?"":"display:none","virtual-scroll-item-size":"48",hint:e.hint},on:{input:e.handleInput,keydown:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.pressEnter.apply(null,arguments)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"no-option",fn:function(){return[a("q-item",[a("q-item-section",{staticClass:"text-grey"},[e._v("\n "+e._s(e.$t("no_available_result"))+"\n ")])],1)]},proxy:!0},e.model&&(e.model.icon||e.model.emoji)?{key:"prepend",fn:function(){return[e.model.icon?a("q-icon",{attrs:{name:e.model.icon}}):e.model.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(e.model.emoji))]):e._e()]},proxy:!0}:null,{key:"option",fn:function(t){var n=t.itemProps,o=t.itemEvents,i=t.opt;return[a("q-item",e._g(e._b({staticClass:"overflow-hidden-x",style:e.itemStyle},"q-item",n,!1),o),[i.icon||i.emoji?a("q-item-section",{staticStyle:{"margin-left":"-4px","margin-right":"-22px"},attrs:{avatar:""}},[i.icon?a("q-icon",{attrs:{name:i.icon}}):i.emoji?a("div",{staticClass:"option-flags"},[e._v(e._s(i.emoji))]):e._e()],1):e._e(),a("q-item-section",{staticStyle:{"margin-left":"-4px"}},[a("q-item-label",{domProps:{innerHTML:e._s(i.label)}})],1)],1)]}},e.hint?{key:"hint",fn:function(){return[e._v(e._s(e.hint))]},proxy:!0}:null],null,!0)},Object.assign({},e.filter?{"popup-show":e.onPopupShow,filter:e.filterFn,"popup-hide":e.onPopupHide}:{})))},Ps=[],As={name:"AmplifySelect",props:{readonly:Boolean,autofocus:Boolean,options:Array,value:[Object,Function,Number,String],itemMaxWidth:{type:String,default:void 0},itemMinWidth:{type:String,default:void 0},selectLabelFn:{type:Function,default:e=>e?e.label:()=>""},align:[Element,Boolean],filter:{type:Function,default:void 0},hint:String},data(){return{enableFilter:!1,filterValue:"",inputWidth:"280"}},computed:{optionsCpt(){const e=e=>{const t={};if("object"===typeof e)for(const[a,n]of Object.entries(e))"label"===a?t.label=(()=>e.label?"function"===typeof e.label?e.label(e.value):e.label:""+e.value)():t[a]=n;else t.value=e,t.label=e;return t},t=this.options.map(e);if(this.filter&&this.enableFilter){const e=e=>""===this.filterValue||this.filter(this.filterValue,e);return t.filter(e)}return t},model(){if(this.enableFilter)return null;{const e=this.optionsCpt.find((e=>e.value===this.value));if(e)return e;throw new Error("invalid amplify-select value: "+this.value)}},itemStyle(){const e={};if(this.align){const t="boolean"===typeof this.align?this.$el:this.align,{width:a}=getComputedStyle(t);e.width=a}return this.itemMinWidth&&(e.minWidth=this.itemMinWidth),this.itemMaxWidth&&(e.maxWidth=this.itemMaxWidth),e},popupWidth(){return this.inputWidth>292?`width: ${1*this.inputWidth+50}px`:`width: ${this.inputWidth-4}px`}},methods:{handleInput(e){e&&this.$emit("input",e.value)},filterFn(e,t){t((()=>{this.filterValue=e}))},onPopupShow(){this.filterValue="",this.enableFilter=!0;const e=this.$el.firstChild;e.style.width="84.36px",this.$emit("popup-show"),this.$nextTick((()=>{this.$refs.select&&this.$refs.select.showPopup()}))},onPopupHide(){this.enableFilter=!1,this.filterValue="";const e=this.$el.nextSibling,t=this.$el.firstChild;e&&(e.style.display=""),t&&(t.style.width="84.36px"),this.$emit("popup-hide")},pressEnter(){this.filter&&(this.optionsCpt.length>0&&this.handleInput(this.optionsCpt[0]),this.enableFilter=!1,this.filterValue="",this.$nextTick((()=>{const e=this.$refs.select.$el.getElementsByTagName("input")[0];e.blur()})))},getInputWidth(){this.$nextTick((()=>{const e=this.$el.firstChild.offsetParent.childNodes[0];this.inputWidth=e.clientWidth}))}},updated(){this.getInputWidth()}},Is=As,qs=(a("bbb8"),Object(f["a"])(Is,zs,Ps,!1,null,null,null)),Os=qs.exports;k()(qs,"components",{QSelect:ze["a"],QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QInput:K["a"],QItemLabel:Ie["a"],QField:qe["a"]});var Es=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-input-wrapper"},[e.isTel&&e.phoneNumberPrefixValue?a("amplify-select",{ref:"select",staticClass:"amplify-input-select",class:{focus:e.focusSelect},attrs:{options:e.phoneNumberPrefixOptions,selectLabelFn:function(){return""},readonly:e.readonly,autofocus:!1,align:e.$el,filter:e.phoneNumberPrefixFilter},on:{"popup-show":function(t){return e.selectFocus(!0)},"popup-hide":function(t){return e.selectFocus(!1)}},model:{value:e.phoneNumberPrefixValue,callback:function(t){e.phoneNumberPrefixValue=t},expression:"phoneNumberPrefixValue"}}):e._e(),a("q-input",{directives:[{name:"show",rawName:"v-show",value:!e.focusSelect,expression:"!focusSelect"}],ref:"input",staticClass:"amplify-input",class:{"amplify-tel-input":e.isTel},attrs:{"lazy-rules":"ondemand",spellcheck:"false",dense:"",outlined:"",readonly:e.readonly,autofocus:e.autofocus,value:e.isTel?e.value[1]:e.value,type:"password"===e.type?e.hidePassword?"password":"text":e.type,label:!e.isTel&&e.label?e.label:void 0,rules:e.rulesCpt,min:e.rangeCpt[0],max:e.rangeCpt[1],"error-message":e.errorMessage,error:Boolean(e.errorMessage),hint:e.hint},on:{input:e.handleInput,keydown:function(t){return t.type.indexOf("key")||8===t.keyCode?e.onPressBack.apply(null,arguments):null},focus:function(t){return e.inputFocus(!0)},blur:function(t){return e.inputFocus(!1)}},nativeOn:{paste:function(e){e.stopPropagation()}},scopedSlots:e._u([{key:"prepend",fn:function(){return[e.isTel&&e.value[0]&&e.prefixStart?a("div",{staticClass:"amplify-input-phone-number-prefix"},[e._v("\n +"+e._s(e.value[0])+"\n ")]):e._e(),e.icon&&!e.isTel?a("q-icon",{attrs:{name:e.icon}}):e._e()]},proxy:!0},"password"===e.type?{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}:null],null,!0)})],1)},Ds=[],js=a("c228");const Ns=(()=>{const e={};Object.values(js["a"]).forEach((t=>{t.phones.forEach((a=>{const[n,o]=a.split("-");e[a]={value:a,label:`${t.name} (+${n})`,emoji:t.emoji,prefixCode:n,countryCode:o,normalizedName:t.normalizedName,nativeName:t.name}}))}));const t=Object.keys(e).sort(((t,a)=>{const n=parseInt(e[t].prefixCode),o=parseInt(e[a].prefixCode);return n===o?1===n?"US"===e[t].countryCode?-1:"US"===e[a].countryCode?1:0:0:n>o?1:-1}));return t.reduce(((t,a)=>(t[a]=e[a],t)),{})})();var Ls={name:"AmplifyInput",props:{value:[String,Array],readonly:Boolean,autofocus:Boolean,required:{type:[Boolean,String],default:!1},type:{type:String,default:"text"},label:String,icon:String,rules:Array,range:Array,mask:String,errorMessage:String,hint:String},data(){return{focusSelect:!1,hidePassword:!0,prefixStart:!0}},computed:{isTel(){return"tel"===this.type},rulesCpt(){const e=e=>this.requiredRule(e),t=this.rules?this.rules.map((e=>t=>{const a=e(t);return"string"===typeof a?this.$t(a):"object"===typeof a&&Array.isArray(a)?this.$t(...a):a})):null,a=[...this.required?[e]:[],...t||[]];return this.isTel&&a.push((e=>this.phoneNumberRule(e))),a},rangeCpt(){const e={date:["1900-01-01","2099-12-31"]},t=e[this.type]||[void 0,void 0];return this.range&&([void 0,null].includes(this.range[0])||(t[0]=this.range[0]),[void 0,null].includes(this.range[1])||(t[1]=this.range[1])),t},phoneNumberNotSay(){if(this.isTel)return{value:"notSay",label:"notSay",emoji:"🇼🇫"}},phoneNumberPrefixOptions(){if(!this.isTel)return;const e=Object.values(Ns);return e.unshift(this.phoneNumberNotSay),e},phoneNumberPrefixValue:{get(){if(!this.isTel)return;const e=this.value[0],t=this.value[2];return e&&t?`${e}-${t}`:this.phoneNumberNotSay.value},set(e){if(this.isTel)if(e&&e!==this.phoneNumberNotSay.value){const{prefixCode:t,countryCode:a}=Ns[e];let n=this.value[1];n.startsWith("+")&&(n=n.substr(1)),n.startsWith("00")&&(n=n.substr(2)),this.$emit("input",[t,n,a]),localStorage.setItem("def_tel_prefix",`${a}-${t}`)}else this.$emit("input",["",this.value[1],""])}}},methods:{selectFocus(e){this.focusSelect=e},inputFocus(e){var t,a,n,o,i,r;(console.log("On focus input",e),e)?null===(t=this.$refs.select)||void 0===t||null===(a=t.$el)||void 0===a||null===(n=a.classList)||void 0===n||n.add("q-field--highlighted","q-field--focus"):null===(o=this.$refs.select)||void 0===o||null===(i=o.$el)||void 0===i||null===(r=i.classList)||void 0===r||r.remove("q-field--highlighted","q-field--focus")},handleInput(e){this.$refs.input.resetValidation(),this.isTel?this.handlePhoneNumberInput(e):this.$emit("input",e)},requiredRule(e){if(this.isTel)return this.phoneNumberRequiredRule(e);if(e&&e.length>0)return!0;const t="string"===typeof this.required?this.required:this.label;return`${t}${this.$t("account_is_required")}`},phoneNumberRequiredRule(e){const t=e[1];if(t)return!0;{const e="string"===typeof this.required?this.required:this.label;return`${e}${this.$t("account_is_required")}`}},phoneNumberRule(e){const t=e[1];return this.phoneNumberPrefixValue===this.phoneNumberNotSay.value&&t?this.$t("account_error_no_cell_phone_prefix"):(this.phoneNumberPrefixValue===this.phoneNumberNotSay.value||t||(this.phoneNumberPrefixValue=this.phoneNumberNotSay.value),!0)},phoneNumberPrefixFilter(e,t){const a=["normalizedName","nativeName","value"];return a.find((a=>!!t[a]&&t[a].toLowerCase().indexOf(e.toLowerCase())>=0))},handlePhoneNumberInput(e){const t=()=>{if(!e)return this.phoneNumberNotSay;const t=e.startsWith("+"),a=e.startsWith("00"),n=t?"+":a?"00":Array.isArray(this.value)&&this.value[0]?"__":"";return this.phoneNumberPrefixOptions.find((({prefixCode:t})=>e.startsWith(`${n}${t}`)))||null},a=t();if(void 0===a||null===a)this.$emit("input",[this.value[0],e,this.value[2]]);else if(a===this.phoneNumberNotSay)this.$emit("input",[this.value[0],e,this.value[2]]);else{const{prefixCode:t,countryCode:n}=Ns[a.value];let o=e;if(o.startsWith("+")&&(o=o.substr(1)),o.startsWith("00")&&(o=o.substr(2)),o.startsWith(t)&&(o=o.substr(t.length)),this.$emit("input",[t,o,n]),!t||!n)return;localStorage.setItem("def_tel_prefix",`${n}-${t}`)}},onPressBack(e){const t=e.target;if(console.log("press back",JSON.stringify(this.value),t.selectionStart,t.selectionEnd),"email"===t.type)return console.log("Default behavior for email");const a=t.selectionDirection,n=t.selectionStart,o=t.selectionEnd,i=n===o?n-1:n,r=i<0?0:i;if(this.$nextTick((async()=>{await this.$nextTick();try{t.setSelectionRange(r,r,a)}catch(e){console.log(e.message)}})),e.preventDefault(),e.stopPropagation(),this.isTel)this.value[1]=this.value[1].substring(0,n===o?n-1:n)+this.value[1].substring(o),this.handlePhoneNumberInput(this.value[1]);else{const e=this.value.substring(0,n===o?n-1:n)+this.value.substring(o);this.$emit("input",e)}0===n&&0===o&&this.isTel&&this.$emit("onPressBack"),this.isTel&&0===o&&0===this.value[1].length&&this.$emit("input",["","",""])}},updated(){this.prefixStart=!0}},Us=Ls,Rs=(a("2214"),Object(f["a"])(Us,Es,Ds,!1,null,null,null)),Ms=Rs.exports;function Fs(e){e.component("AmplifyButton",ms),e.component("AmplifyCard",ws),e.component("AmplifyDialog",Ts),e.component("AmplifySelect",Os),e.component("AmplifyInput",Ms)}k()(Rs,"components",{QInput:K["a"],QIcon:Y["a"],QField:qe["a"]});var Bs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-dialog-groups"},[a("SignedOutDialog",{ref:"signedOut"})],1)},Ws=[],Hs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"amplify-signed-out-dialog"},[a("amplify-dialog",{attrs:{single:!1,cornerCancel:!0,"min-width":"320px","max-width":"320px","on-clear":e.onClear,blur:!0,mask:!1},scopedSlots:e._u([{key:"default",fn:function(t){return["test"===e.currentCard?a("OAuth",e._g({ref:"test",attrs:{scope:t}},e.cardEvents)):"oauth"===e.currentCard?a("OAuth",e._g({ref:"oauth",attrs:{scope:t}},e.cardEvents)):"disableMFA"===e.currentCard?a("DisableMFA",e._g({attrs:{scope:t}},e.cardEvents)):"signedOut"===e.$store.state.account.authState?a("SignIn",e._g({attrs:{scope:t}},e.cardEvents)):"forgotPassword"===e.$store.state.account.authState?a("ForgotPassword",e._g({attrs:{scope:t}},e.cardEvents)):"signUp"===e.$store.state.account.authState?a("SignUp",e._g({attrs:{scope:t}},e.cardEvents)):"signInConfirm"===e.$store.state.account.authState?a("SignInConfirm",e._g({attrs:{scope:t}},e.cardEvents)):e._e()]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.value,expression:"value"}],staticClass:"signed-out-actions rounded-borders bg-general text-general row items-center q-py-xs q-px-sm shadow-1"},[e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:e.handleDevClick}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"q-px-md q-py-sm flex items-center"},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",unelevated:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)],1)},Vs=[],Qs=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleSignIn)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_in_your_account"),"submit-label":e.$t("account_sign_in"),timeout:e.timeout,"no-primary":"",cancelable:"PHONE_NUMBER"===this.form.currentMode},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,ref:"sign",refInFor:!0,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:function(t){return e.signInChangeRules()},onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n||e.oauthLoading},on:{click:function(t){!n&&!e.oauthLoading&&e.handleResetPassword()}}},[e._v(e._s(e.$t("account_reset_password")))])])]}},{key:"actions",fn:function(t){var n=t.disable;return[a("amplify-button",{staticStyle:{"margin-top":"8px"},attrs:{immediate:"",primary:"",value:n,"on-click":function(){return e.$store.commit("ACCOUNT_UPDATE_STATE","signUp")},label:e.$t("account_sign_up")}}),a("ABOAuthEntry",{directives:[{name:"show",rawName:"v-show",value:e.d$cfg.oauth.enable&&!e.isMas,expression:"d$cfg.oauth.enable && !isMas"}]})]}}])},"amplify-card",e.scope.cardProps,!1))},Gs=[],Ks=a("7ca3"),Ys=a.n(Ks),Js=a("c581"),Zs=a("af04"),Xs=a("9efe"),el=a("072b");class tl extends Js["b"]{static createConfigs(e){return{GENERAL:["",{type:"text",icon:"account_box",label:"account_username_email_phone"}],SINGIN:[["86","","CN"],{type:"tel",label:"account_username_email_phone",rules:[el["e"].bind(e)]}]}}constructor(e){super(...tl.createConfigs(e).GENERAL),this.currentMode="GENERAL",this.configs=tl.createConfigs(e)}setMode(e,t){if(this.currentMode===e)return this;this.currentMode=e;const a=this.configs[e];return this.model=a[0],this.attrs=a[1],t&&this.updateModel(t),this}}class al extends Js["a"]{constructor(e,t){if(super({username:new tl(e),password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password"})}),this.assumeData=al.storage.getAssumeData(),!this.assumeData){var a;const e=null!==(a=js["b"][t])&&void 0!==a?a:js["b"]["en-us"],[n,o]=e.phones[0].split("-");this.assumeData={prefix:n,code:o}}this.assume=!1}get formData(){const e=super.formData;if(!e.username)return e;let t=e.username;return(()=>{this.assume=!1,Array.isArray(t)?(al.storage.setAssumeData({prefix:t[0],code:t[2]}),this.assumeData=al.storage.getAssumeData(),t="+"+t[0]+t[1]):!t.startsWith("+")&&/^[0-9]*$|^$/g.test(t)&&(/^00/.test(this.model)?t=t.replace(/^00/,"+"):(this.assume=!0,t="+"+this.assumeData.prefix+t))})(),e.username=t,e}turnToPhoneNumberMode(){if("GENERAL"!==this.currentMode)return;this.assume=!1;const e=this.items.username.value,{prefix:t,code:a}=this.assumeData;this.items.username.setMode("PHONE_NUMBER",[t,e,a]),this.items.password.clear()}backToGeneralMode(){if("GENERAL"===this.currentMode)return;const e=this.formData.username;this.assume=!1,this.items.username.setMode("GENERAL",e),this.items.password.clear()}get currentMode(){return this.items.username.currentMode}}Ys()(al,"storage",{setAssumeData(e){window.localStorage.setItem("sign_in_assume_data",JSON.stringify(e))},getAssumeData(){const e=window.localStorage.getItem("sign_in_assume_data");return e?JSON.parse(e):null}});var nl={name:"SignIn",props:{scope:Object},data(){return{isMas:Ta.a.mas(),timeout:{duration:6e4,onTimeout:this.handleTimeout},oauthStatus:null,form:new al(this,this.$q.lang.getLocale().toLowerCase()),oauthProviders:["Facebook","Google","Github"],signUpMode:"email",prefix:"",countryCode:"",checkPrefix:[[],[]]}},computed:{oauthLoading(){return null!==this.oauthStatus}},methods:{handleResetPassword(){this.$store.commit("ACCOUNT_UPDATE_STATE","forgotPassword")},async handleSignIn(){try{const e=this.form.formData,t=e=>e.indexOf(" ")<0;if(!t(e.username))throw new Error("Incorrect username or password.");return await this.$store.dispatch("ACCOUNT_SIGN_IN",e),Xs["a"].record.call(this,e.password),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),Zs["a"].showPositive("signed_in"),!0}catch(t){const a=t.message;if("SMS_MFA"===a||"SOFTWARE_TOKEN_MFA"===a)this.$store.commit("ACCOUNT_UPDATE_STATE","signInConfirm");else if("User does not exist."===a)Zs["a"].showNegative("Incorrect username or password."),this.form.assume&&this.form.turnToPhoneNumberMode();else{var e;t.message||(console.log("=====================> error SignIn::handleSignIn <====================="),console.log(t),console.log("=====================> error SignIn::handleSignIn <=====================")),Zs["a"].showNegative(null!==(e=t.message)&&void 0!==e?e:t)}}},async handleCancel(){if("PHONE_NUMBER"!==this.form.currentMode)return!0;this.form.backToGeneralMode()},handleOAuthSignIn(e){this.$emit("setCurrentCard","oauth",(t=>t.setStatus("pending",e)))},handleTimeout(){Zs["a"].showNegative("Network error")},signInChangeRules(){if("email"===this.signUpMode&&(this.vm=this.form.items.username.model?this.form.items.username.model:"",Array.isArray(this.vm)&&(this.vm=this.vm[1]||""),this.vm&&/^[0-9]*$/g.test(this.vm)&&(console.log("toPhone",this.vm),this.toPhone()),this.vm.startsWith("+"))){const e=this.vm.substr(1),t=this.checkPrefix[0].indexOf(e),a=this.vm.length;if(-1!==t&&(this.form.items.username.model="1"===e?[e,"","US"]:[e,"",this.checkPrefix[1][t]],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${e}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"),a>4&&/^[0-9]*$/g.test(e))for(const[n,o]of this.checkPrefix[0].entries())if(e.startsWith(o)){const t=o.length,a=e.substr(t);this.form.items.username.model="1"!==o?[o,a,this.checkPrefix[1][n]]:[o,a,"US"],localStorage.setItem("def_tel_prefix",`${this.form.items.username.model[2]}-${o}`),this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber";break}}if("phoneNumber"===this.signUpMode){this.vm=this.form.items.username.model[1]?this.form.items.username.model[1]:"";const e=this.form.items.username.model[2];-1===this.vm.indexOf("@")&&e&&!this.vm.startsWith("+")||(console.log("country",e),this.toEmail()),/^[0-9]*$/g.test(this.vm)||(console.log("not vm",JSON.stringify(this.vm)),this.toEmail())}},toPhone(){console.log("fn:toPhone"),this.form.items.username.model=[this.prefix,this.vm,this.countryCode],this.form.items.username.attrs.type="tel",this.signUpMode="phoneNumber"},toEmail(){console.log("fn:toEmail",this.vm,typeof this.vm),this.$nextTick((()=>{this.form.items.username.attrs.type="text",this.form.items.username.model=this.vm,console.log(this.form.items.username.model),this.signUpMode="email"}))},defPrefix(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.prefix=t[1],this.countryCode=t[0]}else{const e=(this.$i18n.locale||navigator.language||"").toLowerCase(),t=Object.values(js["a"]).find((t=>t.languages.includes(e)));if(t&&t.phones&&t.phones.length){console.log("[Init Prefix] Init with phone",t.phones[0]);const e=t.phones[0].split("-");this.prefix=e[0],this.countryCode=e[1]}else console.log("[Init Prefix] Cannot find language config for",e,t),this.prefix="1",this.countryCode="US"}},prefixArr(){const e=[];Object.values(js["a"]).forEach((t=>{const a=t.phones[0].split("-");e.push(a)})),e.sort(((e,t)=>{const a=parseInt(e[0]),n=parseInt(t[0]);return a-n})),e.forEach((e=>{this.checkPrefix[0].push(e[0]),this.checkPrefix[1].push(e[1])}))},onPressBack(){this.toEmail(),console.log(this.form)},getSelection(){const e=this.$refs.sign[0];return e.$el.firstChild.clientWidth}},mounted(){this.defPrefix(),this.prefixArr()}},ol=nl,il=(a("fc65"),Object(f["a"])(ol,Qs,Gs,!1,null,"6e4f640d",null)),rl=il.exports,sl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleNecessary,e.handleOptional][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_sign_up_your_account")+" ("+(e.progress+1)+"/2)","submit-label":e.$t(["account_next","account_finish"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_fill_required_fields"),e.description][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable,o=t.setDisable;return[0===e.progress?[a("div",{staticClass:"column q-col-gutter-xs"},[e._l({email:e.necessaryEmailForm,phoneNumber:e.necessaryPhoneNumberForm}[e.signUpMode].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),e.usePhoneNumber?a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t({phoneNumber:"account_no_phone_number",email:"account_no_email"}[e.signUpMode]))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])]):e._e()],2)]:1===e.progress?[e._l(e.verificationForm.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{onPressBack:function(a){return e.onPressBack(t)}},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("div",[a("amplify-button",{staticClass:"q-mb-sm q-mt-xs",attrs:{value:n||e.resendTimer>0,"min-width":"100%",label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleResend},on:{input:o}}),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v("\n "+e._s(e.$t("account_no_verification_code"))),a("a",{staticClass:"underscore select-none text-primary cursor-pointer",attrs:{disabled:n},on:{click:function(t){n||e.handleSwitchMode()}}},[e._v(e._s(e.$t({phoneNumber:"account_sign_up_by_email",email:"account_sign_up_by_phone_number"}[e.signUpMode])))])])],1),a("div",[e._v("\n "+e._s(e.$t("account_fill_optional_fields"))+"\n "),e._l(e.optionsForm.items,(function(t,o){return["input"===t.type?a("amplify-input",e._b({key:o,staticClass:"q-mb-sm",attrs:{label:e.$t(t.bound.label),readonly:n,hint:"("+e.$t("optional")+")"},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1)):"select"===t.type?a("amplify-select",e._b({key:o,staticClass:"q-mb-sm",attrs:{readonly:n,hint:"("+e.$t("optional")+")",align:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-select",t.bound,!1)):e._e()]}))],2)]:e._e()]}},0===e.progress?{key:"options",fn:function(t){var n=t.disable;return[a("div",{staticClass:"col-grow q-mb-sm row items-center",staticStyle:{"margin-top":"-8px"}},[a("q-checkbox",{attrs:{disable:n,label:e.$t("account_i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"underscore select-none cursor-pointer text-primary",on:{click:function(){return n||e.handleShowLicense()}}},[e._v(e._s(e.$t("account_license_terms"))+"\n ")])],1)]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},ll=[],cl=a("9f21");function dl(e){const t=e.appVersion,a=e.userAgent;let n="unknown",o="";const i=[{s:"Windows 10",r:/(Windows 10.0|Windows NT 10.0)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 3.11",r:/Win16/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Chrome OS",r:/CrOS/},{s:"Linux",r:/(Linux|X11(?!.*CrOS))/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(Mac OS|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var r in i){var s=i[r];if(s.r.test(a)){n=s.s;break}}switch(/Windows/.test(n)&&(o=/Windows (.*)/.exec(n)[1],n="Windows"),n){case"Mac OS":case"Mac OS X":case"Android":o=/([\\.\\_\d]+)/.exec(a.substring(/(Android|Mac OS|Mac OS X|MacPPC|MacIntel|Mac_PowerPC|Macintosh)/.exec(a).index||12))[1];break;case"iOS":o=/OS (\d+)_(\d+)_?(\d+)?/.exec(t),o=o[1]+"."+o[2]+"."+(0|o[3]);break}return n+(o?" "+o:"")}class ul extends Js["a"]{constructor(e){super({email:new Js["b"]("",{type:"email",icon:"email",label:"account_email",rules:[el["a"].bind(e)]}),password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[el["d"].bind(e)]})})}}class _l extends Js["a"]{constructor(e){super({phoneNumber:new Js["b"](["86","","CN"],{type:"tel",icon:"phone",label:"account_phone_number",rules:[el["e"].bind(e)]}),password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[el["d"].bind(e)]})})}setDefault(e){var t;const a=null!==(t=js["b"][e])&&void 0!==t?t:js["b"]["en-us"],[n,o]=a.phones[0].split("-"),i=this.items.phoneNumber;return i.updateModel([n,i.value[1],o]),this}}class pl extends Js["a"]{constructor(e){const t=[{value:"notSay",emoji:"🇼🇫",label:e.$t("account_not_say")},...Js["c"].LOCALE_OPTIONS],a=(e,t)=>!!t.normalizedName&&(t.normalizedName.toLowerCase().indexOf(e.toLowerCase())>=0||t.label.toLowerCase().indexOf(e.toLowerCase())>=0);super({nickname:new Js["b"]("",{type:"text",icon:"emoji_emotions",label:"account_nickname",rules:[el["c"].bind(e)]}),gender:new Js["c"]("notSay",[{value:"notSay",icon:"elevator",label:e.$t("account_not_say")},{value:"female",icon:"female",label:e.$t("account_female")},{value:"male",icon:"male",label:e.$t("account_male")}]),birthday:new Js["b"]("",{type:"date",icon:"cake"}),locale:new Js["c"]("notSay",t,{filter:a})})}}var ml={name:"SignUp",mixins:[cl["a"]],props:{scope:Object},data(){var e,t,a,n;return{resendInterval:null,resendTimer:0,progress:0,necessaryEmailForm:new ul(this),necessaryPhoneNumberForm:new _l(this).setDefault(this.$q.lang.getLocale().toLowerCase()),usePhoneNumber:(null===(e=this.d$cfg)||void 0===e||null===(t=e.account)||void 0===t?void 0:t.phone_number)||!1,signUpMode:null!==(a=this.d$cfg)&&void 0!==a&&null!==(n=a.account)&&void 0!==n&&n.phone_number?"phoneNumber":"email",invitationForm:new Js["a"]({invitationCode:new Js["b"]("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[el["b"].bind(this)]})}),accept:!1,verificationForm:new Js["a"]({code:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})}),optionsForm:new pl(this),signUpIpAddress:"",defPrefix:[]}},computed:{description(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},watch:{signUpMode(e){const t=()=>{this.necessaryPhoneNumberForm.clearData().setDefault(this.$q.lang.getLocale().toLowerCase())},a=()=>{this.necessaryEmailForm.clearData()};({email:t,phoneNumber:a})[e]()},progress(e){e<0&&this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")},resendTimer(e,t){0===t&&(this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=setInterval((()=>{0!==this.resendTimer?this.resendTimer-=1:(clearInterval(this.resendInterval),this.resendInterval=null)}),1e3))}},methods:{handleCancel(){this.progress=-1},async handleNecessary(){if(this.accept)try{if(Object(xa["isElectron"])()){const e=await fetch("https://api.ipify.org").then((e=>e.text()),(e=>{console.log("SignUp - Failed to get geo for",e.message)}));this.signUpIpAddress=e||""}const e=this.__getNecessaryPayload(),t=(()=>{const a=Object(Xs["s"])();if(e.email){const o=n(3e4),i=a(e.email);return Promise.race([i,o]).catch((e=>{console.log("sign up error >",e),Zs["a"].showNegative(e.message)})).finally((()=>{t.off(),o.cancel()})),i}{const e=Promise.resolve();return e.off=()=>{},e}function n(e){let t;const a=new Promise((a=>{t=()=>{clearTimeout(n),a(!1)};const n=setTimeout((()=>{a(!0)}),e)}));return a.cancel=t,a}})();await this.$store.dispatch("ACCOUNT_SIGN_UP_NECESSARY",e).catch((e=>{throw t.off(),e})),this.resendTimer=60,this.progress+=1}catch(e){Zs["a"].showNegative(e.message)}else Zs["a"].showNegative("you_need_to_accept_license_terms")},async handleOptional(){try{const{code:e}=this.verificationForm.formData;await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_SUBMIT",{code:e,optAttrs:{app_client:JSON.stringify({name:F.a.name,version:Object(Aa["a"])("version")}),os:dl(navigator)||"unknown",...this.optionsForm.formData}}),await new Promise((e=>setTimeout(e,3e3))),Zs["a"].showPositive("signed_up")}catch(e){return Zs["a"].showNegative(e.message),!1}try{const e=this.$store.state.account.verification.username,t=this.$store.state.account.verification.password;return await this.$store.dispatch("ACCOUNT_SIGN_IN",{username:e,password:t}),this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),!0}catch(e){this.$emit("setCurrentCard","signedOut"),Zs["a"].showNegative(e.message)}},async handleResend(){try{await this.$store.dispatch("ACCOUNT_SIGN_UP_VERIFICATION_CODE_RESEND"),Zs["a"].showPositive("code_has_been_resent")}catch(e){Zs["a"].showNegative(e.message)}finally{this.resendTimer=60}},handleSwitchMode(){1===this.progress&&(this.$store.commit("ACCOUNT_UPDATE_VERIFICATION",null),this.progress=0),this.signUpMode="email"===this.signUpMode?"phoneNumber":"email"},handleShowLicense(){this.showLicenseTermsNotice(!1)},async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},__getNecessaryPayload(){const e={email:this.necessaryEmailForm,phoneNumber:this.necessaryPhoneNumberForm}[this.signUpMode],t=e.formData,{invitationCode:a}=this.invitationForm.formData,{email:n,phoneNumber:o,password:i}=t,r={};return"email"===this.signUpMode?r.email=n:"phoneNumber"===this.signUpMode&&(r.phoneNumber="+"+o[0]+o[1],r.phoneNumberCountryCode=o[2]),r.password=i,r.invitationCode=a,r.appClient=JSON.stringify({name:F.a.name,version:Object(Aa["a"])("version")}),r.signUpIpAddress=this.signUpIpAddress,r.os=dl(navigator)||"unknown",r},onPressBack(e){if(!e)return;const{attrs:t,model:a}=e;t&&"tel"===t.type&&Array.isArray(a)&&(console.log("isTel",a),this.$set(a,0,""),this.$set(a,2,""))}},mounted(){const e=localStorage.getItem("def_tel_prefix");if(e){const t=e.split("-");this.defPrefix=[t[1],"",t[0]],this.necessaryPhoneNumberForm.items.phoneNumber.model=[...this.defPrefix]}},beforeDestroy(){this.resendInterval&&clearInterval(this.resendInterval),this.resendInterval=null}},hl=ml,gl=(a("7fb7"),a("7498")),fl=Object(f["a"])(hl,sl,ll,!1,null,"8707a8ce",null),bl=fl.exports;k()(fl,"components",{QCheckbox:gl["a"]});var yl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSearch,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t(["account_find_your_account","account_reset_your_password"][e.progress]),"submit-label":e.$t(["account_search","account_submit"][e.progress])},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s([e.$t("account_enter_your_username"),e.verifyDescription][e.progress])+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[a("div",{staticClass:"column q-col-gutter-xs"},e._l([e.searchForm,e.submitForm][e.progress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},on:{input:e.onInput,onPressBack:e.onPressBack},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),1)]}},1===e.progress?{key:"actions",fn:function(t){var n=t.disable,o=t.setDisable;return[a("amplify-button",{attrs:{value:n||e.resendTimer>0,label:e.$t("account_resend_code")+(e.resendTimer>0?" ("+e.resendTimer+"s)":""),"on-click":e.handleSearch},on:{input:o}})]}}:null],null,!0)},"amplify-card",e.scope.cardProps,!1))},vl=[],wl=a("4027"),kl=wl["a"],Sl=Object(f["a"])(kl,yl,vl,!1,null,null,null),Cl=Sl.exports,xl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit(e.handleVerify)},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_verify_your_identity"),"submit-label":e.$t("account_next"),timeout:e.timeout},scopedSlots:e._u([{key:"description",fn:function(){return[e._v("\n "+e._s(e.verifyDescription)+"\n ")]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})),a("p",{staticClass:"q-pl-sm q-pt-sm q-pb-none text-grey-7"},[e._v(e._s(e.$t("account_can_not_mfa"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",attrs:{disabled:n},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("account_disable_mfa")))])])]}}])},"amplify-card",e.scope.cardProps,!1))},$l=[],Tl={name:"SignInConfirm",props:{scope:Object},data(){return{timeout:{duration:6e4,onTimeout:this.handleTimeout},form:new Js["a"]({code:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})})}},computed:{verifyDescription(){return this.$store.state.account.verification?{email:`${this.$t("account_email_sent_tip")}${this.$store.state.account.verification.destination}`,phone_number:`${this.$t("account_phone_sent_tip")}${this.$store.state.account.verification.destination}`,software_token:`${this.$t("account_software_token_tip")}`}[this.$store.state.account.verification.type]:this.$t("account_tip_verified")}},methods:{async handleVerify(){try{const{code:e}=this.form.formData;return await this.$store.dispatch("ACCOUNT_MFA_SUBMIT",e),this.$store.commit("ACCOUNT_UPDATE_STATE","signedIn"),Zs["a"].showPositive("signed_in"),!0}catch(e){Zs["a"].showNegative(e.message),e.message.startsWith("Invalid session for the user")&&this.handleCancel()}},handleDisableMFA(){this.$emit("setCurrentCard","disableMFA")},handleTimeout(){Zs["a"].showNegative("Network Error")},handleCancel(){this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut")}}},zl=Tl,Pl=(a("2e34"),Object(f["a"])(zl,xl,$l,!1,null,"654a46b2",null)),Al=Pl.exports,Il=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"on-submit":function(){return e.scope.handleSubmit([e.handleSend,e.handleSubmit][e.progress])},"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_disable_mfa"),"submit-label":e.$t("account_next")},scopedSlots:e._u([{key:"description",fn:function(){return[0===e.progress?a("div",[e._v(e._s(e.$t("account_tip_confirm_verify_email_phone")))]):1===e.progress&&e.verificationData?a("div",[e._v(e._s(e.$t("account_email_phone_sent_tip"))+"\n "),a("div",[e._v(e._s(e.verificationData.email.destination))]),a("div",[e._v(e._s(e.verificationData.phoneNumber.destination))])]):e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return[1===e.progress?e._l(e.form.items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},ql=[],Ol={name:"DisableMFA",props:{scope:Object},data(){return{progress:0,verificationData:null,form:new Js["a"]({emailCode:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]}),phoneCode:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})})}},watch:{progress(e){e<0&&(this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null))}},methods:{async handleSend(){try{const{user:{username:e}}=this.$store.state.account.verification,t=`${this.$store.getters.settings.language}:D`;this.verificationData=await Object(Xs["j"])(e,{msgLocale:t}),this.progress+=1}catch(e){Zs["a"].showNegative(e.message)}},async handleSubmit(){try{const{user:{username:e}}=this.$store.state.account.verification,{emailCode:t,phoneCode:a}=this.form.formData;await Object(Xs["w"])(e,t,a),this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),Zs["a"].showPositive("disabled_mfa"),this.progress=-1}catch(e){Zs["a"].showNegative(e.message)}},handleCancel(){this.progress=-1}}},El=Ol,Dl=Object(f["a"])(El,Il,ql,!1,null,null,null),jl=Dl.exports,Nl=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("amplify-card",e._b({attrs:{"corner-cancel":!1,"cancel-label":e.$t("account_cancel"),"submit-label":e.$t(["account_next","account_finish"][e.signUpProgress]),"on-submit":"loading"===e.currentTemplate?void 0:"signUp"===e.currentTemplate?function(){return e.scope.handleSubmit([e.handleSignUp,e.handleVerify][e.signUpProgress])}:void e.currentTemplate,"on-cancel":function(){return e.scope.handleCancel(e.handleCancel)},title:e.$t("account_oauth_sign_in_with",{provider:e.provider})},scopedSlots:e._u([{key:"description",fn:function(){return["loading"===e.currentTemplate?[a("div",{staticClass:"text-center text-weight-bold text-subtitle1 q-mt-md"},[a("q-spinner",{staticClass:"q-mr-xs q-mb-xs",attrs:{size:"1.25em"}}),a("span",{staticClass:"q-pr-lg"},[e._v(e._s(e.$t("account_loading")))])],1)]:"signUp"===e.currentTemplate?[e.data?a("div",[0===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_tip_oath_sign_up",{provider:e.data.providerName,email:e.data.providerInfo.email}))+"\n ")]):1===e.signUpProgress?a("div",[e._v("\n "+e._s(e.$t("account_email_sent_tip"))+e._s(e.data.providerInfo.email)+"\n ")]):e._e()]):e._e()]:e._e()]},proxy:!0},{key:"default",fn:function(t){var n=t.disable;return["signUp"===e.currentTemplate?e._l([e.signUpForm,e.verificationForm][e.signUpProgress].items,(function(t,o){return a("amplify-input",e._b({key:o,attrs:{label:e.$t(t.bound.label),readonly:n,required:""},model:{value:t.model,callback:function(a){e.$set(t,"model",a)},expression:"item.model"}},"amplify-input",t.bound,!1))})):e._e()]}}])},"amplify-card",e.scope.cardProps,!1))},Ll=[],Ul=a("e74d"),Rl={name:"OAuth",props:{scope:Object},data(){return{provider:null,status:null,data:null,signUpProgress:0,signUpUsername:null,signUpForm:new Js["a"]({password:new Js["b"]("",{type:"password",icon:"lock",label:"account_password",rules:[el["d"].bind(this)]}),invitationCode:new Js["b"]("",{type:"text",icon:"verified",label:"account_invitation_code",rules:[el["b"].bind(this)]})}),verificationForm:new Js["a"]({code:new Js["b"]("",{type:"text",icon:"shield",label:"account_verification_code",rules:[el["h"].bind(this)]})})}},computed:{currentTemplate(){return"confirm"===this.status?"confirm":"signUp"===this.status?"signUp":["pending","requesting","success"].includes(this.status)?"loading":void 0}},watch:{status(e){if(!e)return;const t={pending:()=>this.handlePending(),requesting:()=>this.handleRequesting(),success:()=>this.handleSuccess(),signUp:()=>{},confirm:()=>{}};t[e]&&t[e]()}},methods:{async copyCode(){await navigator.clipboard.writeText("5EPD12NW3F"),this.$q("Test Invitation Code copied")},setStatus(e,t,a){t&&(this.provider=t),a&&(this.data=a),this.status=e},handleCancel(){this.provider=null,this.status=null,this.data=null,this.$store.commit("ACCOUNT_UPDATE_STATE","signedOut"),this.$emit("setCurrentCard",null)},async handleSuccess(){await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX"),this.provider=null,this.status=null,this.data=null,"signedIn"===this.$store.state.account.authState?(this.$emit("closeDialog"),Zs["a"].showPositive("signed_in")):(this.$emit("setCurrentCard",null),Zs["a"].showNegative("sign_in_failed"))},handlePending(){Ul["a"].launchOAuth("signedOut",{provider:this.provider})},handleRequesting(){},async handleSignUp(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId}),email:this.data.providerInfo.email},t=await Object(Xs["o"])({...e,...this.signUpForm.formData});this.signUpUsername=t.user.username,this.signUpProgress=1}catch(e){Zs["a"].showNegative(e.message),this.handleCancel()}},async handleVerify(){try{const e={oauthSignUp:"true",oauthData:JSON.stringify({providerName:this.data.providerName,providerUserId:this.data.providerUserId})},{code:t}=this.verificationForm.formData;await Object(Xs["c"])(this.signUpUsername,t,{},e),this.setStatus("pending")}catch(e){Zs["a"].showNegative(e.message),this.handleCancel()}},async handleConfirm(){}}},Ml=Rl,Fl=Object(f["a"])(Ml,Nl,Ll,!1,null,"6bc0e027",null),Bl=Fl.exports;k()(Fl,"components",{QSpinner:we["a"]});var Wl=a("d884"),Hl=a("39df"),Vl={name:"SignedOutDialog",components:{OAuth:Bl,DisableMFA:jl,SignInConfirm:Al,SignIn:rl,ForgotPassword:Cl,SignUp:bl,Development:Hl["default"]},data(){return{showDevDialog:!1,currentCard:null,value:!1,languageOptions:Wl["b"]}},computed:{cardEvents(){return{setCurrentCard:this.setCurrentCard,closeDialog:()=>this.value=!1}},_currentCard(){if(this.currentCard)return this.currentCard;const e=["signedOut","forgotPassword","signUp","signInConfirm"];return e.includes(this.$store.state.account.authState)?this.$store.state.account.authState:null},language:{get(){const e=x["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(x["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(xa["isElectron"])())){const{ipcRenderer:e}=a("b052");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}},watch:{_currentCard(e){null===e&&!1!==this.value&&(this.value=!1)}},methods:{showAboutDialog(){xa["Bus"].$emit("CALL_ABOUT")},handleDevClick(){this.showDevDialog=!this.showDevDialog},setCurrentCard(e,t){this.currentCard=e,t&&e&&this.$nextTick((()=>t(this.$refs[e]))),t&&!e&&this.$nextTick((()=>t(null)))},async onClear(){this.currentCard=null,console.log("SignedOut Dialog Close: AuthState =>",this.$store.state.account.authState)},show(e){this.value=e}}},Ql=Vl,Gl=(a("1cda"),a("a829")),Kl=a("719b"),Yl=a("a431"),Jl=Object(f["a"])(Ql,Hs,Vs,!1,null,null,null),Zl=Jl.exports;k()(Jl,"components",{QBtn:le["a"],QTooltip:St["a"],QDialog:y["a"],QSpace:se["a"],QSeparator:ce["a"],QMenu:Gl["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"],QColor:Z["a"]}),k()(Jl,"directives",{Ripple:Kl["a"],ClosePopup:Yl["a"]});const Xl={watch:{"$store.state.account.authState"(e,t){this.$ga.send("auth_state_change",{from:t,to:e}),t?("signedIn"===e||"signedOut"===e&&"signedIn"===t)&&this.$emit("auth_state_changed",e):this.$emit("auth_state_changed",e)}},methods:{addOnAuthStateChangedListener(e,{once:t}={}){const a=(...n)=>{t&&this.$off("auth_state_changed",a),e(...n)};return this.$on("auth_state_changed",a),()=>this.$off("auth_state_changed",a)}}},ec={name:"AmplifyDialogGroups",components:{SignedOutDialog:Zl},mixins:[Xl],mounted(){new URL(location.href).pathname.startsWith("/oauth_redirect")||this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")},methods:{showSignedOut(){this.$refs.signedOut.show(!0)}}};let tc;const ac={install(e,{app:t}){const a="amplify-dialog-groups";if(!document.getElementById(a)){const e=document.createElement("div");e.id=a,document.body.appendChild(e)}const{i18n:n,router:o,store:i}=t;tc=new(e.extend({i18n:n,router:o,store:i,...ec}))({propsData:{}}).$mount("#"+a)},create$amplify(){return{showSignedOutDialog:()=>tc.showSignedOut(),addOnAuthStateChangedListener:(e,t)=>tc.addOnAuthStateChangedListener(e,t)}}};var nc=ec,oc=nc,ic=Object(f["a"])(oc,Bs,Ws,!1,null,null,null);ic.exports;const rc={async install(e,{app:t}){Fs(e);const a=[ac];Promise.all(a.map((a=>a.install(e,{app:t})))),Object.defineProperty(e.prototype,"$amplify",{get(){const e={},t=t=>{for(const[a,n]of Object.entries(t))e[a]=n};return a.forEach((e=>t(e.create$amplify.apply(this)))),e}})}},sc={aws_project_region:"us-east-1",aws_mobile_analytics_app_id:"4f8fe8282ebf40e4a390c2171e3e45df",aws_mobile_analytics_app_region:"us-east-1",aws_appsync_graphqlEndpoint:"https://ye6kerar5bb65jpjrhlum4gu7q.appsync-api.us-east-1.amazonaws.com/graphql",aws_appsync_region:"us-east-1",aws_appsync_authenticationType:"AMAZON_COGNITO_USER_POOLS",aws_appsync_apiKey:"da2-o7saok2xsbby5nqi2womjyd5ie",aws_cloud_logic_custom:[{name:"ABDevRest",endpoint:"https://6xf9ehebfj.execute-api.us-east-1.amazonaws.com/dev",region:"us-east-1"}],aws_cognito_identity_pool_id:"us-east-1:425781a9-0178-4dbd-b103-1d2e5e210d1a",aws_cognito_region:"us-east-1",aws_user_pools_id:"us-east-1_NbEkBdIqw",aws_user_pools_web_client_id:"1o6c32oh82hjqvd8hfora67lap",oauth:{domain:"ab-domain-dev.auth.us-east-1.amazoncognito.com",scope:["phone","email","openid","profile","aws.cognito.signin.user.admin"],redirectSignIn:"http://localhost:8080/",redirectSignOut:"http://localhost:8080/",responseType:"code"},federationTarget:"COGNITO_USER_POOLS",aws_cognito_login_mechanisms:["EMAIL","PREFERRED_USERNAME","PHONE_NUMBER"],aws_cognito_signup_attributes:[],aws_cognito_mfa_configuration:"OFF",aws_cognito_mfa_types:["SMS"],aws_cognito_password_protection_settings:{passwordPolicyMinLength:8,passwordPolicyCharacters:["REQUIRES_NUMBERS"]},aws_cognito_verification_mechanisms:["EMAIL"],aws_cognito_username_attributes:[],aws_cognito_social_providers:[]};var lc=sc,cc=a("3334"),dc=a("0cdb"),uc=a("586d");class _c{constructor(){this.events={}}$on(e,t){return this.events[e]=this.events[e]||[],this.events[e].includes(t)||this.events[e].push(t),()=>this.$off(e,t)}$once(e,t){return t.once=!0,this.$on(e,t)}$off(e,t){if(t){if(!this.events[e])return;if(!this.events[e].includes(t))return;const a=this.events[e].indexOf(t);this.events[e].splice(a,1)}else this.events[e]=[]}async $emit(e,...t){if(!this.events[e])return;const a=[].concat(this.events[e]);let n=0;while(n{const n=o[(t+1)%2],i=[`background-color: ${n.bgc}`,`color: ${n.color}`];return i.push("padding: 2px 12px"),0===t&&i.push("border-top-left-radius: 8px","border-bottom-left-radius: 8px"),t===a.length-1&&i.push("border-top-right-radius: 8px","border-bottom-right-radius: 8px"),i.join("; ")})),r=a.map((e=>`%c${e}`)).join("");console[n](r,...i,...t)},hc={log:{type:"log"},warn:{type:"warn"},error:{type:"error"},red:{styles:[{bgc:"rgb(248,160,160)",color:"black"},{bgc:"rgb(134,12,12)",color:"white"}]},orange:{styles:[{bgc:"rgb(248,191,160)",color:"black"},{bgc:"rgb(175,81,6)",color:"white"}]},green:{styles:[{bgc:"rgb(160,248,161)",color:"black"},{bgc:"rgb(35,154,17)",color:"white"}]},purple:{styles:[{bgc:"rgb(200,184,255)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}]},blue:{styles:[{bgc:"rgb(184,215,255)",color:"black"},{bgc:"rgb(31,107,162)",color:"white"}]},tags:e=>(...t)=>(e.options.tags=e.options.tags||[],e.options.tags.push(...t),gc(e))},gc=e=>new Proxy(e,{get(e,t,a){if("options"===t)return e.options||void 0;if(!Object.keys(hc).includes(t))return;const n=(...e)=>mc(n.options,...e);return n.options={},Object.assign(n.options,JSON.parse(JSON.stringify(e.options||{}))),"function"===typeof hc[t]?hc[t](n):(Object.assign(n.options,hc[t]),gc(n))}}),fc=gc(mc);Object.defineProperties(mc,Object.keys(hc).reduce(((e,t)=>(e[t]={get(){return fc[t]}},e)),{}));var bc=mc;const yc={};class vc{static appendOperation(e){const t=e.trim().match(/^[\w]+[ \f\r\t\n]+[\w]+/)[0].split(" ").reverse()[0],a=t.replace(t.charAt(0),t.charAt(0).toLowerCase());return yc[a]=e,this}static appendOperations(e){return Array.isArray(e)?e.forEach(this.appendOperation):Object.entries(e).forEach((([e,t])=>{yc[e]=t})),this}static createObservable(e,...t){const a=this.__getOperation(e),n=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));let o;n(a).forEach(((e,a)=>{const n=t[a];void 0!==n&&(o||(o={}),o[e]=n)}));const i=La["a"].graphql({query:a,variables:o});return i.name=e,i}static subscribe(e,t,a=console.error){return e.subscribe({next:({provider:a,value:n})=>{var o;return t(null===(o=n.data)||void 0===o?void 0:o[e.name],a)},error:({provider:e,error:t})=>a(t.errors,e)})}static __getOperation(e){if(!yc[e])throw new Error("operation not found");return yc[e]}static async execute(e,t){const a=this.__getOperation(e),n=await La["a"].graphql({query:a,variables:t});if(n.errors)throw new Error(n.errors[0].message);return n.data[e]}static injectAllOperations(e){const t=e=>e.split("(")[1].split(")")[0].split("$").slice(1).map((e=>e.split(":")[0].trim()));return Object.entries(yc).forEach((([a,n])=>{e[a]=async(...e)=>{let o;return t(n).forEach(((t,a)=>{const n=e[a];void 0!==n&&(o||(o={}),o[t]=n)})),await this.execute(a,o)}})),e}}class wc extends vc{static async subscribeWithRetry(e,t,a,n){const o=(...e)=>{let t,a,n;"string"===typeof e[0]?(t={warn:[{bgc:"rgb(250,211,138)",color:"black"},{bgc:"rgb(155,123,53)",color:"white"}]}[e[0]],a=e[1],n=e.slice(2)):(t=[{bgc:"rgb(166,138,250)",color:"black"},{bgc:"rgb(44,31,162)",color:"white"}],a=e[0],n=e.slice(1));const o=e=>`background-color: ${e.bgc}; color: ${e.color}; padding: 2px 12px;`,i=Array.from(a,((e,n)=>{let i=o(t[(n+1)%2]);return 0===n?i+=" border-top-left-radius: 8px; border-bottom-left-radius: 8px;":n===a.length-1&&(i+=" border-top-right-radius: 8px; border-bottom-right-radius: 8px;"),i})),r=a.map((e=>`%c${e}`)).join("");console.log(r,...i,...n)},{times:i,duration:r,onFetchData:s,onUpdateSubscriber:l}={times:-1,duration:1e4,onFetchData:()=>{},onUpdateSubscriber:()=>{throw new Error("Your should config onUpdateSubscriber for the subscribeWithRetry method")},...n};let c=!0,d=0;const u=new Error("The number of retries exceeds the maximum"),_=e=>new Promise((t=>setTimeout(t,e))),p=async e=>{if(c=!0,i>0&&d>i)return console.warn(u),void o(["GQL","Websocket"],"failed to reconnect",u);const t=Math.min(r,1e3*Math.pow(2,d));o(["GQL","Websocket"],"connect close: ",`waiting for reconnect (${t}ms)`),await _(t),c?(d+=1,o(["GQL","Websocket"],`Attempt to reconnect (${d})`),await e(),d=0,o(["GQL","Websocket"],"reconnected")):o(["GQL","Websocket","enableRetry === false"],c)},m=async()=>{const a=(e,t)=>{const a=["AppSync Realtime subscription init error: No current user"],n=["Connection closed","Timeout disconnect"];e.some((e=>a.includes(e.message)))?o(["GQL","Websocket"],"Skip",e):(e.some((e=>n.includes(e.message)))?o(["GQL","Websocket"],"Connect Error"):o(["GQL","Websocket"],"Connect Error: 179",e),p(m))};try{d>=0&&s&&await s();const n=wc.subscribe(e,t,a),o=n.unsubscribe;n.unsubscribe=function(){return c=!1,o.apply(this)},await l(n)}catch(n){o(["GQL","Websocket"],"Connect Error :191",n),await p(m)}};await m()}}class kc{static createSyncDataSubscriber(e,t,a,n=console.error){return new kc(e,t,n,a)}constructor(e,t,a,n){this.observable=e,this.onUpdate=t,this.onError=a,this.onFetchData=n,this.subscriber=null}async enable(){const e=e=>{this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=e};await wc.subscribeWithRetry(this.observable,this.onUpdate,this.onError,{times:-1,duration:3e4,onUpdateSubscriber:e,onFetchData:this.onFetchData})}disable(){this.subscriber&&this.subscriber.unsubscribe(),this.subscriber=null}}class Sc{constructor(){this.id=null,this.observable=null,this.subscriber=null,this.listeners={}}async enable(e){this.disable(),this.id=e,this.observable=wc.createObservable("onGeneralUpdate",this.id);const t=e=>{const{channel:t,data:a}=e;if(!this.listeners[t])return;let n;try{n=JSON.parse(a)}catch(o){n=a}this.listeners[t].forEach((e=>e(n)))},a=async()=>{const e=Object.values(this.listeners).map((e=>e.map((e=>e.fetchData)))).flat(1).filter((e=>void 0!==e));return await Promise.all(e.map((e=>e())))};this.subscriber=kc.createSyncDataSubscriber(this.observable,t,a),await this.subscriber.enable()}disable(){this.listeners={},this.subscriber&&(this.subscriber.disable(),this.subscriber=null),this.observable=null,this.id=null}addListener(e,t,a){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].includes(t)||this.listeners[e].push(t),a&&t.fetchData!==a&&(t.fetchData=a)}removeListener(e,t){const a=t||"string"===typeof e?e:void 0;t=t||"string"!==typeof e?t:void 0,a&&!this.listeners[a]||(a&&t?this.listeners[a]=this.listeners[a].filter((e=>e!==t)):a&&!t?this.listeners[a]=void 0:Object.keys(this.listeners).forEach((e=>{this.listeners[e].includes(t)&&(this.listeners[e]=this.listeners[e].filter((e=>e!==t)))})))}}const Cc=new Sc,xc=new Sc;var $c={config({queries:e,mutations:t,subscriptions:a}){wc.appendOperations(e),wc.appendOperations(t),wc.appendOperations(a)},enableUserListener:async e=>await Cc.enable(e),disableUserListener:()=>Cc.disable(),addUserListener:(e,t,a)=>Cc.addListener(e,t,a),removeUserListener:(e,t)=>Cc.removeListener(e,t),enablePublicListener:async()=>await xc.enable("*"),disablePublicListener:()=>xc.disable(),addPublicListener:(e,t,a)=>xc.addListener(e,t,a),removePublicListener:(e,t)=>xc.removeListener(e,t)};class Tc{constructor(e){this.apiName=e}async __call__(e,t,a){const n=await La["a"][e](this.apiName,t,a).catch((e=>{if(e.response&&e.response.data)return e.response.data;throw e}));if(n.stack){const e=new Error(n.message);throw e.name=n.name,e.stack=n.stack,e}return n}async __post__(e,t,a){t||(t={}),"string"===typeof e&&(e=e.split("/").filter((e=>""!==e)));const n=a?["authorized"]:[];n.push(...e);const o=a?{Authorization:a}:{};return await this.__call__("post",`/${n.join("/")}`,{body:t,headers:{...o}})}async postGuest(e,t){return await this.__post__(e,t)}async post(e,t,a){if(!a){const e=await Ul["a"].currentSession();a=e.getIdToken().getJwtToken()}return await this.__post__(e,t,a)}get endpoint(){return La["a"]._options.aws_cloud_logic_custom.find((e=>e.name===this.apiName)).endpoint}}const zc=new Tc("ABDevRest");var Pc=function(e,t){return u["a"].create({component:{render(a){return a(y["a"],{ref:"dialog",props:{persistent:!0},on:{hide:()=>this.$emit("hide")}},[a(e,t)])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}})},Ac=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{directives:[{name:"touch-pan",rawName:"v-touch-pan.prevent.mouse",value:e.handleTouchPan,expression:"handleTouchPan",modifiers:{prevent:!0,mouse:!0}}],ref:"card",staticClass:"fixed",staticStyle:{"min-width":"280px"},style:{left:this.left+"px",top:this.top+"px"}},[a("q-card-section",{staticClass:"q-py-none q-pr-none flex"},[a("div",[e._v("Floating")]),a("q-space"),a("q-btn",{staticStyle:{width:"32px","border-radius":"0"},attrs:{icon:"close",flat:"",size:"xs"},on:{click:function(t){return e.$emit("close")}}})],1),a("q-separator"),a("q-card-section",{staticClass:"q-pa-none"},[e._t("default")],2)],1)},Ic=[];const qc={data(){return{observer:null,containerRect:null,contentRect:null}},mounted(){let e=!0;this.observer=new ResizeObserver((t=>{for(const e of t)e.target===document.body?this.containerRect=e.contentRect:e.target===this.$refs.card.$el&&(this.contentRect=e.contentRect);e&&(e=!1,this.left=(this.containerRect.width-this.contentRect.width)/2,this.top=(this.containerRect.height-this.contentRect.height)/2),this.updatePosition(this.left,this.top)})),this.observer.observe(document.body),this.observer.observe(this.$refs.card.$el)},beforeDestroy(){this.observer.unobserve(document.body),this.observer.unobserve(this.$refs.card.$el)}};var Oc={name:"Floating",mixins:[qc],data(){return{left:0,top:0}},methods:{handleTouchPan({delta:e}){this.containerRect&&this.contentRect&&this.updatePosition(this.left+e.x,this.top+e.y)},updatePosition(e,t){const a=8;this.left=Math.max(a,Math.min(e,this.containerRect.width-this.contentRect.width-a)),this.top=Math.max(a,Math.min(t,this.containerRect.height-this.contentRect.height-a))}}},Ec=Oc,Dc=Object(f["a"])(Ec,Ac,Ic,!1,null,"286e971c",null),jc=Dc.exports;k()(Dc,"components",{QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QBtn:le["a"],QSeparator:ce["a"]}),k()(Dc,"directives",{TouchPan:de["a"]});var Nc=e=>t=>{let a;a=e.utils.createVueInstance({render(e){const n=()=>{a.$destroy(),a.$el.remove(),a=null};return e(jc,{on:{close:n}},[e(t)])}},!0);const n=document.createElement("div");return document.body.append(n),a.$mount(n),a},Lc={negative(e){return d["a"].create({type:"negative",message:e,position:"bottom-right",timeout:5e3})},positive(e){return d["a"].create({type:"positive",message:e,position:"bottom-right",timeout:5e3})}};const Uc=e=>t=>{Object.entries(t).forEach((([t,a])=>{e.core[t]||(e.core[t]=a.bind(e))}))},Rc=({Vue:e,app:t})=>(a,n=!1)=>{if(n){const{i18n:n,router:o,store:i}=t;return new(e.extend({i18n:n,router:o,store:i}))(a)}return new e(a)},Mc=e=>{const t=new Map;return a=>{const n=(a,n)=>{Object.defineProperty(e.view,a,{get(){return t.has(a)?t.get(a):n.bind(e)},set(e){if(void 0===e||null===e){var n;if(!t.has(a))return;const e=t.get(a);t.delete(a),null===(n=e.view$destroy)||void 0===n||n.call(e)}else t.set(a,e)}})};Object.entries(a).forEach((([e,t])=>n(e,t)))}},Fc=new _c,Bc=bc.orange.tags("Account"),Wc={config:({queries:e,mutations:t,subscriptions:a})=>$c.config({queries:e,mutations:t,subscriptions:a}),enable:()=>$c.enablePublicListener(),disable:()=>$c.disablePublicListener(),addListener:(...e)=>$c.addPublicListener(...e),removeListener:(...e)=>$c.removePublicListener(...e)};var Hc=(e,{app:t},a)=>({injectToCore:Uc(a),createVueInstance:Rc({Vue:e,app:t}),injectToView:Mc(a),emit:(...e)=>Fc.$emit(...e),on:(...e)=>Fc.$on(...e),off:(...e)=>Fc.$off(...e),once:(...e)=>Fc.$once(...e),logger:Bc,ABDevRest:zc,sync:Wc,showInDialog:Pc,showInFloating:Nc(a),notify:Lc});class Vc{static create(e,t){const a=new this(e);return Object.assign(a,t)}constructor(e){this.NAME=e}onCreateCore(e,t,a){return{}}onConfigure(e,t,a){}onCreateStoreMixin(e,t,a){return{}}onRegisterView(e,t,a){return{}}}class Qc{constructor(e){this.NAME=e,this[e]={}}get context(){return this[this.NAME]}onConfigure(e){Object.assign(this.context,{config:{},utils:null,core:{},store:null,view:{}}),window.$alphabiz=window.$alphabiz||{},window.$alphabiz[this.NAME]=window.$alphabiz[this.NAME]||this.context}onInstallUtils(e,t){Object.assign(this.context,{utils:Hc(e,t,this.context)}),Object.assign(this.context,{$emit:this.context.utils.emit,$on:this.context.utils.on,$once:this.context.utils.once,$off:this.context.utils.off,$logger:this.context.utils.logger})}useExtensions(e,t,a){const n=(e,t)=>t instanceof Vc?t:Vc.create(e,t),o=Object.entries(e).map((([e,t])=>n(e,t))),i={mixins:[]},r=[e=>this.context.utils.injectToCore(e.onCreateCore(t,a,this.context)),e=>e.onConfigure(t,a,this.context),e=>i.mixins.push(e.onCreateStoreMixin(t,a,this.context)),e=>this.context.utils.injectToView(e.onRegisterView(t,a,this.context))];r.forEach((e=>o.forEach(e))),this.context.store=this.context.utils.createVueInstance(i,!0)}exportAsVuePlugin(){const e=e=>{const t=this.context;Object.defineProperty(e.prototype,this.NAME,{get(){const e=this,a=["$test"],n=new Proxy(t,{get(t,n,o){if(!a.includes(n))return Reflect.get(t,n,o);const i=Reflect.get(t,n,o);return Object.keys(i).reduce(((t,a)=>({...t,[a]:i[a].bind(e)})),{})}});return n}})};return(t,a)=>{this.onConfigure(),e(t),this.onInstallUtils(t,a),this.useExtensions(a.extensions,t,a)}}}var Gc={createExtension:Vc.create.bind(Vc),PluginInstaller:e=>new Qc(e)};let Kc=!1;var Yc={async signInPage(){const e=(e,t)=>{this.$account.view.SignInPage._isVue?this.$account.view.SignInPage.updateCard(e,t):this.$account.view.SignInPage({card:e,props:t})};Kc?await e("SignInCard",{}):(Kc=!0,this.$watch((()=>this.$account.store.authState),(async t=>{"pending"===t?(await e("LoadingCard",{title:"auth_state.pending"}),await new Promise((e=>setTimeout(e,1e3))),await this.$account.store.tryToSignInCurrentAccount()):"signed_out"===t&&await e("SignInCard",{})}),{immediate:!0}))}},Jc=a("35f4"),Zc=a("02fe"),Xc=a.n(Zc);async function ed({email:e,phone_number:t,phone_number_code:a,password:n},{language:o}){const i={username:Object(Jc["a"])("1234567890abcdefghijklmnopqrstuvwxyz",20)().toLowerCase(),password:n,attributes:{},clientMetadata:{}},r=()=>{if(e)Object.assign(i.attributes,{email:e});else{if(!t)throw new Error("Invalid signup params");Object.assign(i.attributes,{phone_number:t,"custom:phone_number_code":a})}Object.assign(i.attributes,{"custom:msg_locale":`${o}:${i.attributes.email?"E":"P"}`})},s=()=>{Object.assign(i.clientMetadata,{})};r(),s();const{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}=await Ul["a"].signUp(i),{ABDevRest:p}=this.utils;return await p.postGuest("/account/postSignUp",{sub:l,username:i.username,keychainMetadataHash:Xc.a.SHA256(n).toString(),isTestEnv:window.isTestEnv,invitationCode:i.clientMetadata.invitationCode}),{userSub:l,user:c,codeDeliveryDetails:{DeliveryMedium:d,AttributeName:u,Destination:_}}}async function td(e){const{CodeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}=await Ul["a"].resendSignUp(e);return{codeDeliveryDetails:{DeliveryMedium:t,AttributeName:a,Destination:n}}}async function ad(e,t,{nickname:a,gender:n,birthday:o,locale:i}){const r={};Object.assign(r,{optionalAttributes:JSON.stringify({nickname:a,gender:n,birthday:o,locale:i})}),Object.assign(r,{}),await Ul["a"].confirmSignUp(e,t,{clientMetadata:r})}async function nd(e){const{ABDevRest:t}=this.utils,a=await Ul["a"].currentAuthenticatedUser();await Ul["a"].changePassword(a,e,e),await t.post("/admin/deleteAccount")}var od={signUp:ed,signUpResend:td,signUpConfirm:ad,deleteAccount:nd};async function id(){const e=await Ul["a"].currentAuthenticatedUser();return e?0===Object.keys(e).length?null:e:null}async function rd(e,t,{handleConfirm:a}){const n=async()=>{let n;e=e.toLowerCase();try{const a={};await this.$emit("signIn.createClientMetadata",a),n=await Ul["a"].signIn(e,t,a)}catch(o){if("UserNotConfirmedException"===o.code)return await a();throw o}if(n.challengeName){const a={};await this.$emit("signIn.createChallengeHandlers",a);const o=a[n.challengeName];if(!o)throw new Error("Unexpected challenge: "+n.challengeName);return await o(e,t,n)}return!0},o=await n();if(o){const{ABDevRest:e}=this.utils;await e.post("/account/postSignIn",{keychainMetadataHash:Xc.a.SHA256(t).toString()})}return o}var sd={signIn:rd,getCurrentAuthedUser:id};async function ld(){await Ul["a"].signOut()}var cd={signOut:ld};async function dd(e,t){const{ABDevRest:a}=this.utils,n=await Ul["a"].currentAuthenticatedUser();await a.post("/account/changePassword",{username:n.getUsername(),AccessToken:n.signInUserSession.getAccessToken().getJwtToken(),PreviousPassword:e,ProposedPassword:t})}async function ud(e,{language:t}){e=e.toLowerCase();const a={msgLocale:`${t}:F`},{CodeDeliveryDetails:{AttributeName:n,Destination:o}}=await Ul["a"].forgotPassword(e,a);return{codeDeliveryDetails:{AttributeName:n,Destination:o}}}async function _d(e,{code:t,password:a}){const{ABDevRest:n}=this.utils;await n.postGuest("/account/forgotPasswordSubmit",{ClientId:Ul["a"].userPool.getClientId(),ConfirmationCode:t,Password:a,Username:e})}async function pd(e){const t=await Ul["a"].currentAuthenticatedUser(),a=["nickname","gender","birthday","locale"];await Ul["a"].updateUserAttributes(t,a.reduce(((t,a)=>{const n=e[a];return void 0!==n&&(t[a]=n),t}),{}))}var md={changePassword:dd,forgotPasswordSend:ud,forgotPasswordSubmit:_d,changeAttributes:pd};let hd=null;async function gd(e,t){const a=`${e}:${t}`;if(hd===a)return;const n=await Ul["a"].currentAuthenticatedUser();await Ul["a"].updateUserAttributes(n,{"custom:msg_locale":a}),hd=a}async function fd(e,{language:t}){await gd(t,{email:"E",phone_number:"P"}[e]),await Ul["a"].verifyCurrentUserAttribute(e)}async function bd(e,t){const{ABDevRest:a}=this.utils,n=await Ul["a"].verifyCurrentUserAttributeSubmit(e,t);await a.post("/account/postVerifyAttr",{success:"SUCCESS"===n})}async function yd(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=await Ul["a"].currentAuthenticatedUser();e===n.attributes.email?await fd("email",{language:t}):(await gd(t,"E"),await a.post("/account/setVerifyAttr",{email:e}))}async function vd(e,t,{language:a}){const{ABDevRest:n}=this.utils,o=await Ul["a"].currentAuthenticatedUser();e&&t&&e===o.attributes.phone_number&&t===o.attributes["custom:phone_number_code"]?await fd("phone_number",{language:a}):(await gd(a,"P"),await n.post("/account/setVerifyAttr",{phone_number:{phoneNumber:e,phoneNumberCountryCode:t}}))}async function wd(e){return await bd("email",e)}async function kd(e){return await bd("phone_number",e)}var Sd={verifyFieldSend:fd,verifyFieldSubmit:bd,changeEmailSend:yd,changeEmailSubmit:wd,changePhoneNumberSend:vd,changePhoneNumberSubmit:kd},Cd=a("bbb3"),xd=(e,t,a)=>{Cd["default"].configure({...t.awsconfig,aws_cognito_mfa_configuration:"OPTIONAL",aws_cognito_mfa_types:["SMS"]}),Ul["a"].configure({authenticationFlowType:"CUSTOM_AUTH"}),a.utils.sync.config(t.gql)};function $d(){return this.$store.getters.settings.language}const Td={created(){this.$account.$on("authState.authorized",(async()=>{await this.$account.view.SignInPage.updateCard("LoadingCard",{title:"auth_state.authorized"}),await this.$store.dispatch("ACCOUNT_REDIRECT_TO_INDEX")}))}},zd={async onSignIn(){["pending","signed_out"].includes(this.authState)&&(this.authState="authorized",await this.$account.$emit("authState.authorized")),this.authState="signed_in",await this.$account.$emit("authState.signedIn")},async onSignOut(){"signed_in"===this.authState&&(this.authState="sign_out",await this.$account.$emit("authState.signOut")),this.authState="signed_out",await this.$account.$emit("authState.signedOut")}};var Pd={mixins:[Td],data(){return{authState:"pending"}},methods:{async signIn(e,t){const a=await this.$account.core.signIn(e,t,{handleConfirm:()=>{throw new Error("UserNotConfirmedException")}});if(a){const e=await this.$account.core.getCurrentAuthedUser();await zd.onSignIn.call(this,e)}return a},async signOut(){await this.$account.core.signOut(),await zd.onSignOut.call(this)},async deleteAccount(e){await this.$account.core.deleteAccount(e),await this.signOut()},async tryToSignInCurrentAccount(){const e=["The user is not authenticated"];let t;try{if(t=await this.$account.core.getCurrentAuthedUser(),!t)throw"user is null"}catch(a){if(e.includes(a))return void await zd.onSignOut.call(this);throw this.$account.$logger.tags("SignInFlow","pending","rejected").warn(a,typeof a),a}await zd.onSignIn.call(this,t)}}},Ad={methods:{async signUp({email:e,phone_number:t,phone_number_code:a,password:n},{requireConfirm:o}){const i=await this.$account.core.signUp({email:e,phone_number:t,phone_number_code:a,password:n},{language:$d.call(this)}),r=await o({data:i,resend:async()=>{await this.$account.core.signUpResend(i.user.getUsername())},callback:async(e,t)=>{await this.$account.core.signUpConfirm(i.user.getUsername(),e,t)}});return r}}},Id={methods:{async forgotPassword(e,{requireCode:t}){const a=await this.$account.core.forgotPasswordSend(e,{language:$d.call(this)}),n=await t({data:a,callback:async(t,a)=>{await this.$account.core.forgotPasswordSubmit(e,{code:t,password:a})}});return n},async changePassword(e,t){await this.$account.core.changePassword(e,t)}}},qd={methods:{async changeEmail(e,{requireCode:t}){const a=async()=>{const t=$d.call(this);await this.$account.core.changeEmailSend(e,{language:t})};await a(),await t({resend:async()=>{await a()},callback:async e=>{await this.$account.core.changeEmailSubmit(e)}})},async changePhoneNumber({phone_number:e,phone_number_code:t},{requireCode:a}){const n=async()=>{const a=$d.call(this);await this.$account.core.changePhoneNumberSend(e,t,{language:a})};await n(),await a({resend:async()=>{await n()},callback:async e=>{await this.$account.core.changePhoneNumberSubmit(e)}})}}},Od=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-modal-page"},[a("transition",{attrs:{name:"fade"}},[e.showContent?a("Backdrop"):e._e()],1),e.$scopedSlots.corner?a("div",{staticClass:"container",staticStyle:{"z-index":"7000"}},[a("transition",{attrs:{name:"slide-right"}},[e.showContent?a("Corner",[e._t("corner")],2):e._e()],1)],1):e._e(),a("div",{staticClass:"container flex justify-center items-center",staticStyle:{"z-index":"6000"}},[a("transition",{attrs:{name:"scale"}},[e.showContent?e._t("default"):e._e()],2)],1)],1)},Ed=[],Dd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"ab-backdrop",class:[e.backdropType]})},jd=[];const Nd={mounted(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)||document.body.classList.add(e)},beforeDestroy(){const e="dialog-backdrop-disabled";document.body.classList.contains(e)&&document.body.classList.remove(e)}};var Ld={name:"Backdrop",mixins:[Nd],data(){return{backdropType:"shadow"}}},Ud=Ld,Rd=(a("55e6"),Object(f["a"])(Ud,Dd,jd,!1,null,null,null)),Md=Rd.exports;k()(Rd,"components",{QDialog:y["a"]});var Fd=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"bg-page text-page absolute-bottom-right shadow-1 rounded-borders q-ma-sm q-py-xs q-px-sm"},[e._t("default")],2)},Bd=[],Wd={name:"Corner"},Hd=Wd,Vd=Object(f["a"])(Hd,Fd,Bd,!1,null,"4cc4e2b0",null),Qd=Vd.exports;const Gd=300,Kd={data(){return{showContent:!1}},mounted(){this.show()},methods:{async hide(){this.showContent=!1,await new Promise((e=>setTimeout(e,Gd)))},async show(){this.showContent=!0,await new Promise((e=>setTimeout(e,Gd)))}}};var Yd={name:"ModalLayout",mixins:[Kd],components:{Backdrop:Md,Corner:Qd}},Jd=Yd,Zd=(a("4ec4"),Object(f["a"])(Jd,Od,Ed,!1,null,null,null)),Xd=Zd.exports,eu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[e._t("default"),a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",unelevated:"",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}})],2)},tu=[],au={name:"Corner"},nu=au,ou=Object(f["a"])(nu,eu,tu,!1,null,null,null),iu=ou.exports;k()(ou,"components",{QBtn:le["a"]});var ru=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",[a("q-card-section",{staticClass:"flex justify-center items-center"},[a("q-spinner-ios",{attrs:{size:"1.2rem",color:"general"}}),a("div",{staticClass:"q-ml-sm"},[e._v(" "+e._s(e.title)+" ")])],1)],1)},su=[],lu={name:"LoadingCard",props:{title:String}},cu=lu,du=Object(f["a"])(cu,ru,su,!1,null,"598e682e",null),uu=du.exports;k()(du,"components",{QCard:v["a"],QCardSection:re["a"],QSpinnerIos:at["a"]});var _u=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"non-selectable q-pt-lg"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_in.sign_in")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}}),a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.password"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}})],1),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.forgot_your_password"))),a("a",{staticClass:"underscore text-primary q-ml-xs cursor-pointer",on:{click:function(){return e.$account.view.SignInPage.updateCard("ResetPasswordCard")}}},[e._v(e._s(e.$t("tip.reset_password")))])])]),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.sign_in")},on:{click:e.handleSignIn}},"q-btn",e.loadingProps("sign_in"),!1)),a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.sign_up")},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignUpCard",{initialSignUpMode:"email"})}}},"q-btn",e.loadingProps("sign_up"),!1)),a("ABOAuthEntry")],1)],1)},pu=[];const mu={sign_in:{sign_in:["Sign In","登录账户","登錄賬戶"]},sign_up:{sign_up:["Sign Up","注册账户","註冊賬戶"],verify:["Identify verification","身份验证","身份驗證"]},reset_password:{find_your_account:["Find your account","找寻你的账户","找尋你的賬戶"],enter_your_username:["Enter your phone number or email","输入你的手机号码或电子邮箱","輸入你的手機號碼或電子郵箱"]},field:{username:["Phone number or email","手机号码或电子邮箱","手機號碼或電子郵箱"],email:["Email","邮箱","郵箱"],phone_number:["Phone Number","手机号码","手機號碼"],password:["Password","密码","密碼"],verification_code:["Verification code","验证码","驗證碼"],license_terms:["the license and terms","服务许可条款","服務許可條款"]},tip:{forgot_your_password:["Forgot your password? ","忘记密码了?","忘記密碼了?"],reset_password:["Reset password","重置密码","重置密碼"],no_email:["No email? ","没有邮箱?","沒有郵箱?"],sign_up_by_email:["Sign up by email","通过邮箱注册","通過郵箱註冊"],no_phone_number:["No phone number? ","没有手机号码?","沒有手機號碼?"],sign_up_by_phone_number:["Sign up by phone number","通过手机注册","通過手機註冊"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],email_sent:["An email with a verification code has been sent to your email address: {email}","一封附带验证码的电子邮件已发送到您的邮箱:{email}","一封附帶驗證碼的電子郵件已發送到您的郵箱:{email}"],can_not_get_code:["Can not get verification code? ","无法获取验证码?","無法獲取驗證碼?"]},action:{resend_code:["Resend code","重发验证码","重發驗證碼"],finish:["Finish","完成","完成"],continue:["Continue","下一步","繼續"],i_accept:["I accept ","我接受","我接受"],sign_in:["Sign In","登录","登錄"],sign_up:["Sign Up","注册","註冊"],search:["Search","查找","查找"]}},hu=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var gu={messages:hu(mu)};const fu={data(){return{hidePassword:!0}}},bu={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var yu={name:"SignInCard",i18n:gu,mixins:[bu,fu],props:{initial_username:String,initial_password:String},created(){this.initial_username&&(this.username=this.initial_username),this.initial_password&&(this.password=this.initial_password)},mounted(){this.password&&this.username&&this.handleSignIn()},data(){return{username:null,password:null}},methods:{async handleSignIn(){await this.withLoadingWrapper("sign_in",(async()=>{await this.$account.store.signIn(this.username,this.password)}))}}},vu=yu,wu=Object(f["a"])(vu,_u,pu,!1,null,null,null),ku=wu.exports;k()(wu,"components",{QCard:v["a"],QCardSection:re["a"],QSpace:se["a"],QBtn:le["a"],QInput:K["a"],QIcon:Y["a"]});var Su=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.sign_up")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-pt-none"},["email"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.email"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.email,callback:function(t){e.email=t},expression:"email"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}],null,!1,176215e3),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_email"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="phone_number"}}},[e._v(e._s(e.$t("tip.sign_up_by_phone_number")))])])]:"phone_number"===e.signUpMode?[a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.phone_number"),rules:[function(){return!0}],dense:"",spellcheck:"false"},model:{value:e.phone_number,callback:function(t){e.phone_number=t},expression:"phone_number"}}),a("q-input",{staticClass:"q-my-sm",attrs:{outlined:"",label:e.$t("field.password"),rules:[function(){return!0}],dense:"",spellcheck:"false",type:e.hidePassword?"password":"text"},scopedSlots:e._u([{key:"append",fn:function(){return[a("q-icon",{staticClass:"cursor-pointer",attrs:{name:e.hidePassword?"visibility_off":"visibility"},on:{click:function(t){e.hidePassword=!e.hidePassword}}})]},proxy:!0}]),model:{value:e.password,callback:function(t){e.password=t},expression:"password"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.no_phone_number"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs cursor-pointer",on:{click:function(t){e.signUpMode="email"}}},[e._v(e._s(e.$t("tip.sign_up_by_email")))])])]:e._e()],2),a("q-card-section",{staticClass:"q-py-none row items-center non-selectable"},[a("q-checkbox",{staticStyle:{"margin-left":"-8px"},attrs:{label:e.$t("action.i_accept")},model:{value:e.accept,callback:function(t){e.accept=t},expression:"accept"}}),a("div",{staticClass:"q-ml-xs underscore select-none cursor-pointer text-primary",on:{click:e.showLicenseTerms}},[e._v("\n "+e._s(e.$t("field.license_terms"))+"\n ")])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.continue")},on:{click:function(t){return e.withLoadingWrapper("sign_up",e.handleSignUp)}}},"q-btn",e.loadingProps("sign_up"),!1))],1)],1)},Cu=[],xu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("sign_up.verify")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.description))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_get_code"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(){return e.$emit("switchMode","email"===e.signUpMode?"phone_number":"email")}}},[e._v(e._s("email"===e.signUpMode?e.$t("tip.sign_up_by_phone_number"):e.$t("tip.sign_up_by_email")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.finish")},on:{click:function(t){return e.withLoadingWrapper("confirm",e.handleConfirm)}}},"q-btn",e.loadingProps("confirm"),!1))],1)],1)},$u=[];const Tu={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},zu={data(){return{showAttributes:!1,attributes:{nickname:null,gender:"not_say",birthday:null,locale:"not_say"}}}};var Pu={name:"SignUpConfirmCard",i18n:gu,mixins:[Tu,zu],props:{signUpMode:String,resend:Function,confirm:Function},data(){return{verification_code:null}},computed:{description(){return"email"===this.signUpMode?this.$t("tip.email_sent",{email:"email"}):"phone_number"===this.signUpMode?this.$t("tip.sms_sent",{phone_number:"phone_number"}):void 0}},methods:{async handleResend(){try{await this.resend()}catch(e){}},async handleConfirm(){try{const e=Object.entries(this.attributes).reduce(((e,[t,a])=>a?{...e,[t]:a}:e),{});return await this.confirm(this.verification_code,e)}catch(e){}}}},Au=Pu,Iu=a("03bd"),qu=a("abe8"),Ou=Object(f["a"])(Au,xu,$u,!1,null,null,null),Eu=Ou.exports;k()(Ou,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QToggle:Iu["a"],QTooltip:St["a"],QInput:K["a"],QSlideTransition:qu["a"]});const Du={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}},ju={data(){return{hidePassword:!0}}},Nu={data(){return{confirmDialog:null}},beforeDestroy(){this.confirmDialog&&this.confirmDialog.hide()},methods:{showConfirmDialog({data:e,resend:t,confirm:a}){this.confirmDialog||(this.confirmDialog=this.$account.utils.showInDialog(Eu,{props:{signUpMode:this.signUpMode,resend:t,confirm:async(...e)=>{await a(...e),this.confirmDialog.hide()}},on:{back:()=>{this.confirmDialog.hide(),this.$account.view.SignInPage.updateCard("SignInCard")},switchMode:e=>{this.confirmDialog.hide(),this.signUpMode=e}}}),this.confirmDialog.onDismiss((()=>this.confirmDialog=null)))}}};var Lu={name:"SignUpCard",i18n:gu,mixins:[Du,Nu,ju],props:{initialSignUpMode:String},data(){return{signUpMode:"email",email:null,phone_number:null,password:null,accept:!1}},created(){this.signUpMode=this.initialSignUpMode},methods:{showLicenseTerms(){this.$account.$emit("signUp.showLicenseTerms")},async handleSignUp(){const e={email:{email:this.email},phone_number:{phone_number:this.phone_number,phone_number_code:this.phone_number_code}}[this.signUpMode];Object.assign(e,{password:this.password});const t=await this.$account.store.signUp(e,{requireConfirm:this.handleSignUpConfirm.bind(this)});t&&this.$account.view.SignInPage.updateCard("SignInCard",{initial_username:{email:this.email,phone_number:this.phone_number}[this.signUpMode],initial_password:this.password})},async handleSignUpConfirm({data:e,resend:t,callback:a}){let n=!1;return this.showConfirmDialog({data:e,resend:t,confirm:async(e,t)=>{await a(e,t),n=!0}}),await new Promise((e=>this.confirmDialog.onDismiss(e))),n}}},Uu=Lu,Ru=Object(f["a"])(Uu,Su,Cu,!1,null,null,null),Mu=Ru.exports;k()(Ru,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"],QIcon:Y["a"],QCheckbox:gl["a"]}),k()(Ru,"directives",{ClosePopup:Yl["a"]});var Fu=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$account.view.SignInPage.updateCard("SignInCard")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("reset_password.find_your_account")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("reset_password.enter_your_username"))+" ")])])]),a("q-card-section",{staticClass:"q-py-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{label:e.$t("field.username"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.username,callback:function(t){e.username=t},expression:"username"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",{staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.search")},on:{click:e.handleResetPassword}})],1)],1)},Bu=[];const Wu={data(){return{hidePassword:!0}}};var Hu={name:"ResetPasswordCard",mixins:[Wu],i18n:gu,data(){return{username:null}},methods:{handleResetPassword(){}}},Vu=Hu,Qu=Object(f["a"])(Vu,Fu,Bu,!1,null,null,null),Gu=Qu.exports;k()(Qu,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var Ku=async function({card:e,props:t,events:a}){const n={},o={cards:n,corner:iu};this.$on("createSignInPage",Zu),await this.$emit("createSignInPage",o);const i=Yu("SignInPage",{cards:n,card:e,props:t,events:a,corner:o.corner}),r=this.utils.createVueInstance(i,!0);return r.$mount(Ju("alphabiz-sign-in-page")),r};function Yu(e,{cards:t,card:a,props:n,events:o,corner:i}){const r={beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},methods:{async view$destroy(){await this.$refs.layout.hide(),this.$destroy(),this.$el.remove()}}};return{name:e,mixins:[r],render:s,data(){return{card:a,props:n||{},events:o||{}}},methods:{updateCard(e,t={},a={}){this.card=e,this.props=t,this.events=a}}};function s(e){return e(Xd,{ref:"layout",scopedSlots:{corner:()=>e(i),default:()=>e(t[this.card],{props:this.props,on:this.events})}})}}function Ju(e){return document.getElementById(e)||(()=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t})()}function Zu({cards:e}){Object.assign(e,{LoadingCard:uu,SignInCard:ku,SignUpCard:Mu,ResetPasswordCard:Gu})}a("d176");var Xu={SignInPage:Ku},e_={onCreateCore(e,t,a){return{...od,...sd,...cd,...md,...Sd}},onConfigure(e,t,a){xd(e,t,a)},onCreateStoreMixin(e,t,a){return{mixins:[Pd,Ad,Id,qd]}},onRegisterView(e,t,a){return a.$on("authState.signedIn",(()=>a.view.SignInPage=null)),{...Xu}}},t_=a("a071"),a_={onCreateCore(e,t,a){return{}},onConfigure(e,t,a){const n=a;n.$on("signIn.createChallengeHandlers",(t=>{t.CUSTOM_CHALLENGE=async(t,a,n)=>{const o=await e.prototype.$recaptcha("login");if(n=await Ul["a"].sendCustomChallengeAnswer(n,o),!n)throw new Error("Network Error");return!0}}));const o=n.$logger.tags("ReCaptcha"),i=async({offLine:e,onLine:t},a)=>{await new Promise((t=>{if(navigator.onLine)t();else{const n=setInterval((()=>{navigator.onLine?(clearInterval(n),t()):e()}),a)}})),t()};i({offLine(){o.log("network offline, retry...")},onLine(){e.use(t_["VueReCaptcha"],{siteKey:"6LeQxGkdAAAAAEU4CVmCtybi8FkBPoX4oy1UnN7Q",loaderOptions:{useRecaptchaNet:!0,autoHideBadge:!0,explicitRenderParameters:{badge:"bottomright"}}}),o.log("loaded")}},3e3)},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}};async function n_(){const e=await Ul["a"].currentAuthenticatedUser();return await Ul["a"].getPreferredMFA(e)}async function o_(e){if(!["SMS_MFA","TOTP","SOFTWARE_TOKEN_MFA","NOMFA"].includes(e))throw new Error("invalid_mfa_type");const t=await Ul["a"].currentAuthenticatedUser();await Ul["a"].setPreferredMFA(t,e)}async function i_(){const e=await Ul["a"].currentAuthenticatedUser();return await Ul["a"].setupTOTP(e)}async function r_(e){const t=await Ul["a"].currentAuthenticatedUser();await Ul["a"].verifyTotpToken(t,e)}async function s_(e,{language:t}){const{ABDevRest:a}=this.utils;e=e.toLowerCase();const n=`${t}:D`,{email:o,phoneNumber:i}=await a.postGuest("/account/verifyForDisableMFA",{username:e,metadata:{msgLocale:n}});return{email:{destination:o.Destination},phoneNumber:{destination:i.Destination}}}async function l_(e,{emailCode:t,phoneCode:a}){const{ABDevRest:n}=this.utils;e=e.toLowerCase(),await n.postGuest("/account/verifySubmitForDisableMFA",{username:e,emailCode:t,phoneCode:a})}var c_={setupTOTP:i_,verifyTotpToken:r_,getMFA:n_,changeMFA:o_,disableMFASend:s_,disableMFASubmit:l_};function d_(){return this.$store.getters.settings.language}const u_=async function(e){const t=()=>this.$account.core.verifyFieldSend("phone_number",{language:d_.call(this)});await t();const a=await e({resend:()=>t(),callback:async e=>{await this.$account.core.verifyFieldSubmit("phone_number",e)}});return a},__=async function(e){const t=await e({setup:()=>this.$account.core.setupTOTP(),callback:async e=>{await this.$account.core.verifyTotpToken(e)}});return t};var p_={methods:{async setNoMfa({requireCodeFromSMS:e,requireCodeFromOTP:t}){const a=this.$account.core.getMFA();if("NOMFA"===a)return!0;let n=!1;if("SMS_MFA"===a)n=await u_.call(this,e);else{if("SOFTWARE_TOKEN_MFA"!==a)throw new Error("invalid_mfa_type");n=await __.call(this,t)}return!!n&&(await this.$account.core.changeMFA("NOMFA"),!0)},async setSmsMfa({requireCodeFromSMS:e}){const t=this.$account.core.getMFA();if("SMS_MFA"===t)return!0;const a=await u_.call(this,e);return!!a&&(await this.$account.core.changeMFA("SMS_MFA"),!0)},async setOtpMfa({requireCodeFromOTP:e}){const t=this.$account.core.getMFA();if("SOFTWARE_TOKEN_MFA"===t)return!0;const a=await __.call(this,e);return!!a&&(await this.$account.core.changeMFA("SOFTWARE_TOKEN_MFA"),!0)},async disableMfa(e){const t=await this.$account.core.disableMFASend(e,{language:d_.call(this)});let a=!1;return await this.$account.$emit("disableMfa.requireCodes",{data:t,submit:async({emailCode:t,phoneCode:n})=>{await this.$account.core.disableMFASubmit(e,{emailCode:t,phoneCode:n}),a=!0}}),a}},created(){const e=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromSMS",{username:a.username,resend:async()=>{a=await Ul["a"].signIn(e,t)},submit:async e=>{await Ul["a"].confirmSignIn(a,e,"SMS_MFA"),n=!0}}),n},t=async(e,t,a)=>{let n=!1;return await this.$account.$emit("signIn.requireCodeFromOTP",{username:a.username,submit:async e=>{await Ul["a"].confirmSignIn(a,e,"SOFTWARE_TOKEN_MFA"),n=!0}}),n};this.$account.$on("signIn.createChallengeHandlers",(a=>Object.assign(a,{SMS_MFA:e,SOFTWARE_TOKEN_MFA:t})))}},m_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.sms_sent",{phone_number:"phone_number"})))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},scopedSlots:e._u([{key:"after",fn:function(){return[a("q-btn",e._b({staticClass:"full-height",staticStyle:{"min-width":"120px"},attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"general","text-color":"general",label:e.$t("action.resend_code")},on:{click:function(t){return e.withLoadingWrapper("resend",e.handleResend)}}},"q-btn",e.loadingProps("resend"),!1))]},proxy:!0}]),model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:e.handleDisableMFA}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},h_=[];const g_={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var f_={name:"RequireCodeFromSMS",mixins:[g_],props:{username:String,resend:Function,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleResend(){try{await this.resend()}catch(e){}},async handleSubmit(){try{return await this.submit(this.verification_code),void this.$emit("back")}catch(e){}}}},b_=f_,y_=Object(f["a"])(b_,m_,h_,!1,null,null,null),v_=y_.exports;k()(y_,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var w_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("verify_your_identity")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.require_otp")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.verification_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.verification_code,callback:function(t){e.verification_code=t},expression:"verification_code"}}),a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[e._v(e._s(e.$t("tip.can_not_mfa"))),a("a",{staticClass:"underscore select-none text-primary q-ml-xs",style:e.loadingState?{pointerEvents:"none",cursor:"not-allowed"}:{cursor:"pointer"},on:{click:function(t){return e.withLoadingWrapper("disable",e.handleDisableMFA)}}},[e._v(e._s(e.$t("action.disable_mfa")))])])],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},k_=[];const S_={verify_your_identity:["Verify your identity","验证您的身份","驗證您的身份"],disable_mfa:{title:["Disable MFA","关闭二级验证","關閉二級驗證"],loading:["Loading...","加载中...","加載中..."]},action:{submit:["Submit","提交","提交"],resend_code:["Resend code","重发验证码","重發驗證碼"],disable_mfa:["Disable MFA","关闭二级验证","關閉二級驗證"]},field:{verification_code:["Verification code","验证码","驗證碼"],email_code:["Email Code","邮箱验证码","郵箱驗證碼"],sms_code:["SMS Code","短信验证码","簡訊驗證碼"]},tip:{require_otp:["MFA is enabled for your account. To finish signing in, please turn on your device and type the TOTP","您的账户已启用安全令牌。要完成登录,请查看您的设备并输入验证码","您的賬戶已啟用安全令牌。要完成登錄,請查看您的設備並輸入驗證碼"],sms_sent:["A SMS with a verification code has been sent to your phone: {phone_number}","一封附带验证码的短信已发送到您的手机:{phone_number}","一封附帶驗證碼的短信已發送到您的手機:{phone_number}"],can_not_mfa:["MFA in trouble? ","无法进行二级验证?","無法進行二級驗證?"],verify_identity_by_codes:["Enter the email verification code and SMS verification code to verify your identity","输入邮件验证码与短信验证码以验证您的身份","輸入郵件驗證碼與簡訊驗證碼以驗證您的身份"]}},C_=e=>{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var x_={messages:C_(S_)};const $_={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var T_={name:"RequireCodeFromOTP",i18n:x_,mixins:[$_],props:{username:String,submit:Function},data(){return{verification_code:null}},methods:{async handleDisableMFA(){try{this.$emit("back"),this.$account.view.SignInPage.updateCard("LoadingCard",{title:this.$t("disable_mfa.loading")}),await this.$account.store.disableMfa(this.username)}catch(e){}finally{this.$account.view.SignInPage.updateCard("SignInCard")}},async handleSubmit(){try{await this.submit(this.verification_code),this.$emit("back")}catch(e){}}}},z_=T_,P_=Object(f["a"])(z_,w_,k_,!1,null,null,null),A_=P_.exports;k()(P_,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var I_=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-card",{staticClass:"overflow-hidden column no-wrap absolute mobile-fullscreen",staticStyle:{"min-width":"360px","max-width":"480px"}},[a("q-card-section",{staticClass:"q-pa-none"},[a("q-btn",{staticStyle:{width:"56px",height:"48px"},attrs:{icon:"arrow_back",unelevated:""},on:{click:function(){return e.$emit("back")}}})],1),a("q-card-section",{staticClass:"non-selectable"},[a("div",{staticClass:"flex items-center",staticStyle:{margin:"-4px 0"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v(e._s(e.$t("disable_mfa.title")))]),a("q-space")],1)]),a("q-card-section",{staticClass:"q-py-none"},[a("p",{staticClass:"q-pl-xs q-mb-sm non-selectable"},[a("span",[e._v(e._s(e.$t("tip.verify_identity_by_codes")))])])]),a("q-card-section",{staticClass:"q-pt-none"},[a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.email_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.email_code,callback:function(t){e.email_code=t},expression:"email_code"}}),a("q-input",{staticClass:"q-my-sm",attrs:{disable:!!e.loadingState,label:e.$t("field.sms_code"),rules:[function(){return!0}],outlined:"",dense:"",spellcheck:"false"},model:{value:e.sms_code,callback:function(t){e.sms_code=t},expression:"sms_code"}})],1),a("q-card-section",{staticClass:"non-selectable column items-stretch q-pt-none"},[a("q-btn",e._b({staticClass:"q-my-xs",attrs:{unelevated:"","no-caps":"","no-wrap":"",color:"primary","text-color":"primary",label:e.$t("action.submit")},on:{click:function(t){return e.withLoadingWrapper("submit",e.handleSubmit)}}},"q-btn",e.loadingProps("submit"),!1))],1)],1)},q_=[];const O_={data(){return{loadingState:null}},methods:{loadingProps(e){return{loading:this.loadingState===e,disable:this.loadingState!==e&&!!this.loadingState}},async withLoadingWrapper(e,t){try{return this.loadingState=e,await t()}finally{this.loadingState=null}}}};var E_={name:"RequireCodesForDisableMFA",mixins:[O_],props:{submit:Function},data(){return{email_code:null,sms_code:null}},methods:{async handleSubmit(){try{await this.submit({emailCode:this.email_code,phoneCode:this.sms_code}),this.$emit("back")}catch(e){}}}},D_=E_,j_=Object(f["a"])(D_,I_,q_,!1,null,null,null),N_=j_.exports;k()(j_,"components",{QCard:v["a"],QCardSection:re["a"],QBtn:le["a"],QSpace:se["a"],QInput:K["a"]});var L_={async RequireCodeFromSMS({username:e,resend:t,submit:a}={}){const n=this.utils.showInDialog(v_,{props:{username:e,resend:t,submit:a},on:{back(){n.hide()}}});await new Promise(n.onDismiss)},async RequireCodeFromOTP({username:e,submit:t}){const a=this.utils.showInDialog(A_,{props:{username:e,submit:t},on:{back(){a.hide()}}});await new Promise(a.onDismiss)},async RequireCodesForDisableMFA({data:e,submit:t}){return await new Promise((e=>{this.view.SignInPage.updateCard("RequireCodesForDisableMFA",{submit:t},{back:e})}))}};const U_=({cards:e})=>Object.assign(e,{RequireCodesForDisableMFA:N_});var R_={onCreateCore(e,t,a){return{...c_}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{...p_}},onRegisterView(e,t,a){return a.$on("createSignInPage",U_),a.$on("signIn.requireCodeFromSMS",((...e)=>a.view.RequireCodeFromSMS(...e))),a.$on("signIn.requireCodeFromOTP",((...e)=>a.view.RequireCodeFromOTP(...e))),a.$on("disableMfa.requireCodes",((...e)=>a.view.RequireCodesForDisableMFA(...e))),{...L_}}},M_={onCreateCore(e,t,a){async function n({code:e,email:t,phone:a}){const{ABDevRest:n}=this.utils;t&&(t=t.toLowerCase()),await n.post("/invitation/deliverCode",{id:e,email:t,phone:a})}async function o(){const{ABDevRest:e}=this.utils,t=await e.post("/invitation/getCodes");return t}return{inviteCode:n,getInvitationCodes:o}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return{}}},F_={setState:e=>{window.sessionStorage.setItem("oauth_state",e)},getState:()=>{const e=window.sessionStorage.getItem("oauth_state");return window.sessionStorage.removeItem("oauth_state"),e},setPKCE:e=>{window.sessionStorage.setItem("ouath_pkce_key",e)},getPKCE:()=>{const e=window.sessionStorage.getItem("ouath_pkce_key");return window.sessionStorage.removeItem("ouath_pkce_key"),e},clearAll:()=>{window.sessionStorage.removeItem("ouath_pkce_key"),window.sessionStorage.removeItem("oauth_state")}},B_={encode(e){return e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(2,"0"))).join("")},decode(e){return e.match(/.{2}/g).map((e=>String.fromCharCode(parseInt(e,16)))).join("")}},W_=a("36f2");const H_="undefined"!==typeof Symbol&&"function"===typeof Symbol.for?Symbol.for("amplify_default"):"@@amplify_default";var V_=(e,t,a)=>{W_["a"].dispatch("auth",{event:e,data:t,message:a},"Auth",H_)},Q_={urlSafe:B_,oauthStorage:F_,dispatchAuthEvent:V_},G_=a("2b49"),K_={async pending(e,t={}){let a=!1;return await this.$emit("handleOAuthEvent",e,{...t,next:e=>a=e}),a},cancelled(e){return this.$emit("handleOAuthEvent","cancelled",e)},succeed(e){return this.$emit("handleOAuthEvent","succeed",e)},failed(e,t){return"string"===typeof e&&(e=new Error(e)),this.$emit("handleOAuthEvent","failed",t,e)}};function Y_(){const e=G_["a"].generateState(128);Q_.oauthStorage.setPKCE(e);const t=G_["a"].generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function J_({event:e,provider_sub:t}){if("account_linked"===e){const e="oauth_account_has_been_connected";await K_.failed.call(this,["oauth_error",e].join("."))}else if("account_unlinked"===e){const e=await K_.pending.call(this,"connecting");if(!e)return;const a=Q_.oauthStorage.getState(),n=Q_.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils;await o.post("/oauth/connect",{state:a,provider_sub:t,code_verifier:n}),await K_.succeed.call(this)}}var Z_=a("d830");function X_(){const e=G_["a"].generateState(128);Q_.oauthStorage.setPKCE(e);const t=G_["a"].generateChallenge(e),a="S256";return{code_challenge:t,code_challenge_method:a}}async function ep({event:e,state:t,provider:a}){if("account_linked"===e){const e=await K_.pending.call(this,"logging_in");if(!e)return;if(t!==Q_.oauthStorage.getState())return;const n=Q_.oauthStorage.getPKCE(),{ABDevRest:o}=this.utils,{provider_sub:i}=a,r={state:t,provider_sub:i,code_verifier:n},s=await o.postGuest("/oauth/tokens",r);await tp.call(Ul["a"],s),await K_.succeed.call(this)}else if("account_unlinked"===e){const e="can_not_login_unconnected_account";await K_.failed.call(this,["oauth_error",e].join("."))}}async function tp({IdToken:e,AccessToken:t,RefreshToken:a}){const n=new Z_["h"]({IdToken:new Z_["c"]({IdToken:e}),RefreshToken:new Z_["d"]({RefreshToken:a}),AccessToken:new Z_["b"]({AccessToken:t})});let o;this._config.identityPoolId&&(o=await this.Credentials.set(n,"session"));const i=this.createCognitoUser(n.getIdToken().decodePayload()["cognito:username"]);return i.setSignInUserSession(n),{currentUser:i,credentials:o}}const ap={connect:n,login:o};function np({provider:e,action:t}){const a=this,{ABDevRest:n}=this.utils,o=a.$logger.tags("OAuthAction","Request"),i=G_["a"].generateState(32);Q_.oauthStorage.setState(i);const r=Object.entries({state:i,action:t,identity_provider:e,redirect_uri:`${Ul["a"]._oAuthHandler._config.redirectSignIn}v2/`,...ap[t].createParams.call(this)||{}}).map((e=>e.map(encodeURIComponent).join("="))).join("&"),s=`${n.endpoint}/oauth/request`,l=`${s}?${r}`;o.log(l),G_["a"].urlOpener(l)}async function op(e,t="electron"){const a=this,n=a.$logger.tags("OAuthAction","Response"),o=Array.from(new URL(e).searchParams.entries()).reduce(((e,[t,a])=>({...e,[t]:a})),{}),{action:i,identity_provider:r}=o;if(!i)return;const s=JSON.parse(o.data);if("web"===t){const e=a.$on("handleOAuthEvent",((t,n,o)=>{var s,l;e(),null===(s=(l=a.view).OAuthFlowRestored)||void 0===s||s.call(l,{action:i,identity_provider:r},{stage:t,data:n,error:o})}))}n.tags(i,r).log(s),await ap[i].eventHandler.call(this,s)}function ip({initial_stage:e,initial_params:t,stage_restrict:a,handlers:n}){const o=this,i=["cancelled","failed","succeed"];let r,s=null,l=null;const c=e=>r!==e&&(!i.includes(r)&&(!!i.includes(e)||!!a[e]&&!!a[r].includes(e))),d=()=>new Promise((async(a,d)=>{const u=async(e,t,s)=>{if(o.$logger.tags("OAuthEvent",e).log(...s?[s.message,t]:[t]),r=e,i.includes(r)){var c;null===(c=l)||void 0===c||c(),"failed"===r?(n[r]&&await n[r](s,t),d(s)):(n[r]&&await n[r](t),a())}else{if(!n[r])return;const e=await n[r](t);null===t||void 0===t||t.next(e)}};await u(e,...t||[]),l=o.$on("handleOAuthEvent",(async(e,t,a)=>{c(e)&&await u(e,t,a)})),s=e=>u("cancelled",e)}));return{cancel:e=>s(e),promise:()=>d().finally((()=>{var e;return null===(e=l)||void 0===e?void 0:e()}))}}async function rp(){const{ABDevRest:e}=this.utils,t=await e.post("/oauth/providers");return t}async function sp(e){const{ABDevRest:t}=this.utils;await t.post("/oauth/disconnect",{provider_sub:e})}var lp={queryOAuthProviders:rp,disconnectOAuthProvider:sp,createOAuthFlow:ip,handleOAuthActionResponse:op,requestOAuthAction:np},cp=a("d1a4"),dp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"overflow-hidden full-width",style:{display:e.hide?"none":"unset"}},[a("q-separator",{staticClass:"q-my-sm",attrs:{color:"general"}}),a("div",{staticClass:"column items-stretch",staticStyle:{margin:"-4px"}},e._l(e.providersEnabled,(function(t,n){return a("q-btn",{key:n,staticClass:"q-ma-xs",attrs:{loading:e.loadingState===n,disable:!!e.loadingState,"no-caps":"","no-wrap":"",icon:t.icon,label:e.$t("oauth_login.sign_in_with",{provider:t.name}),unelevated:"",color:"general","text-color":"general"},on:{click:function(){return e.handleClick(t)}}})})),1)],1)},up=[],_p=a("b65b"),pp=_p["a"],mp=Object(f["a"])(pp,dp,up,!1,null,"391ab58c",null),hp=mp.exports;k()(mp,"components",{QSeparator:ce["a"],QBtn:le["a"]});var gp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-list",{staticClass:"rounded-borders",attrs:{bordered:"",separator:""}},e._l(e.providerItems,(function(t,n){return a("q-item",{key:n,staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.75rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.providerName))]),t.providerUserId?a("q-item-label",{attrs:{caption:""}},[e._v(e._s(t.providerUserId))]):e._e()],1),Object.keys(t.handlers).length?a("q-item-section",{attrs:{side:""}},[1===Object.keys(t.handlers).length?[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:Object.values(t.handlers)[0].icon,flat:"",round:""},on:{click:function(){return Object.values(t.handlers)[0].click()}}},[a("q-tooltip",{ref:"tooltip",refInFor:!0},[e._v(e._s(Object.values(t.handlers)[0].label))])],1)]:[a("q-btn",{staticStyle:{margin:"-8px -8px -8px 0"},attrs:{disable:e.loadingState!==t.providerName&&!!e.loadingState,loading:e.loadingState===t.providerName,icon:"more_vert",flat:"",round:""}},[a("q-menu",{attrs:{"touch-position":"","auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},[a("q-list",{staticStyle:{"min-width":"180px"}},[e._l(t.handlers,(function(t,n){return[a("q-item",{key:n,attrs:{clickable:""},on:{click:function(){return t.click()}}},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"1.5rem",name:t.icon}})],1),a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)]}))],2)],1)],1)]],2):e._e()],1)})),1)},fp=[],bp=a("0925"),yp=a("bdb1"),vp=a("076e"),wp={name:"OAuthManager",i18n:vp["a"],data(){return{loadingState:null,loaded:!1,providers:[]}},mounted(){this.queryOAuthProviders().then((()=>this.loaded=!0))},methods:{async queryOAuthProviders(){this.providers=await this.$account.core.queryOAuthProviders()},async disconnectOAuthProvider(e,t){const a=[e,t].join("_");await this.$account.core.disconnectOAuthProvider(a),await this.queryOAuthProviders(),this.$q.notify({message:this.$t("oauth_disconnect.notify.disconnected",{provider:e}),type:"positive",position:"bottom-right",timeout:5e3})}},computed:{providerItems(){const e=(e,t)=>{const a=t=>async()=>{try{this.loadingState=e,await t()}finally{this.loadingState=null}},n={};return t?n.disconnect={icon:"delete",label:this.$t("oauth_disconnect.disconnect",{provider:e}),click:a((()=>this.disconnectOAuthProvider(e,t)))}:n.connect={icon:"add",label:this.$t("oauth_connect.connect_to",{provider:e}),click:a((async()=>{await yp["a"].connect.call(this,e),await this.queryOAuthProviders()}))},n},t=["Github","Twitter"].filter((e=>this.d$cfg.oauth.providers.includes(e))).map((e=>{var t;return{providerName:e,providerUserId:null===(t=this.providers.find((t=>t.provider_name===e)))||void 0===t?void 0:t.provider_sub.slice(e.length+1)}}));return[...t.map((({providerName:t,providerUserId:a})=>({icon:bp["a"].getIcon(t),providerName:t,providerUserId:a||this.$t("oauth_unset"),handlers:e(t,a)})))]}}},kp=wp,Sp=Object(f["a"])(kp,gp,fp,!1,null,null,null),Cp=Sp.exports;k()(Sp,"components",{QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QItemLabel:Ie["a"],QBtn:le["a"],QTooltip:St["a"],QMenu:Gl["a"]});var xp={OAuthFlowRestored({action:e,identity_provider:t},{stage:a,data:n,error:o}){this.$logger.tags("OAuthFlowRestored",e,a).log(n);const i="OAuthFlowRestored";return this.utils.createVueInstance({i18n:vp["a"],beforeCreate(){const e=this.$account.view[i];e instanceof Function||this.destroy()},created(){var r;this.$account.view[i]=this,null===(r=yp["a"][e])||void 0===r||r.call(this,t,{initial_stage:a,initial_params:[n,o]}).finally((()=>{this.destroy()}))},beforeDestroy(){const e=this.$account.view[i];e instanceof Function||(this.$account.view[i]=null)},methods:{destroy(){this.$account.view[i]=null}}},!0)}},$p={onCreateCore(e,t,a){return{...lp}},onConfigure(e,t,n){Object(cp["a"])(e,t,n);const o=t.app.router;o.addRoute({path:"/oauth_redirect/:app_name/:redirect_to/v2",component:()=>a.e(7).then(a.bind(null,"4dfe"))});const i=e=>t=>{const a=e.split("/").slice(1),n=t.split("/").slice(1),o={};if(a.length===n.length){for(let e=0;e{const t={"en-US":{},"zh-CN":{},"zh-TW":{}},a=Object.keys(t),n=(e,n)=>{e.forEach(((e,o)=>{n.reduce(((t,a,o)=>(n.length-1===o?t[a]=e:t[a]=t[a]||{},t[a])),t[a[o]])}))},o=(e,t)=>{Object.entries(e).forEach((([e,a])=>{a&&"object"===typeof a&&(Array.isArray(a)?n(a,[...t,e]):o(a,[...t,e]))}))};return o(e,[]),t};var Wp={messages:Bp(Fp)},Hp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-item",{staticClass:"q-pa-md"},[a("q-item-section",{staticStyle:{"min-width":"unset"},attrs:{avatar:""}},[a("q-icon",{staticStyle:{opacity:"0.7"},attrs:{size:"2.8rem",name:e.icon}})],1),a("q-item-section",[a("q-item-label",[a("span",{staticClass:"text-bold non-selectable",staticStyle:{"font-size":"1rem"}},[e._v(e._s(e.title))])]),e.member?a("q-item-label",{attrs:{caption:""}},[e._v("\n "+e._s(e.member)+"\n ")]):e._e(),a("div",{staticClass:"q-mt-sm non-selectable"},[a("div",{staticStyle:{margin:"-4px"}},e._l(e.stages,(function(t){return a("TaskItemStage",{key:t.index,attrs:{status:e.status,stage:t,current_stage:e.current_stage}})})),1)])],1)],1)},Vp=[],Qp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-menu",e._b({attrs:{"auto-close":"","transition-show":"jump-down","transition-hide":"jump-up"}},"q-menu",e.dropdown?{fit:!0,anchor:"bottom left",self:"top left"}:{touchPosition:!0},!1),[a("q-list",{staticStyle:{"min-width":"200px"}},e._l(e.actions,(function(t,n){return a("q-item",{key:n,attrs:{clickable:""},on:{click:t.handler}},[a("q-item-section",[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)},Gp=[],Kp={name:"ActionMenu",props:{actions:Object,dropdown:{type:Boolean,default:!1}}},Yp=Kp,Jp=Object(f["a"])(Yp,Qp,Gp,!1,null,"336359cc",null),Zp=Jp.exports;k()(Jp,"components",{QMenu:Gl["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"]});var Xp=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-chip",{attrs:{clickable:!0,color:e.stage.color,"text-color":e.stage.color,"icon-right":e.stage.icon,outline:e.stage.index!==e.current_stage}},[a("div",[e._v(e._s(e.stage.index+1)+". "+e._s(e.stage.label))]),a("q-menu",{attrs:{"transition-show":"jump-down","transition-hide":"jump-down",touchPosition:!1}},[a("q-card",{staticClass:"overflow-hidden non-selectable",staticStyle:{"min-width":"200px","max-width":"320px","max-height":"480px"}},[a("q-card-section",[a("div",{staticClass:"flex items-center no-wrap"},[a("div",{staticClass:"text-h6 text-weight-bold ellipsis"},[e._v(e._s(e.stage.label))]),a("q-badge",{staticClass:"q-ml-xs",attrs:{color:e.stage.color,"text-color":e.stage.color}},[a("div",[e._v(e._s(e.stage.status))])])],1),e.stage.subtitle?a("div",{staticClass:"text-caption"},[e._v(e._s(e.stage.subtitle))]):e._e()]),a("q-card-section",{staticClass:"q-pt-none"},[a("div",[e._v(e._s(e.stage.desc))])]),e.stage.actions&&e.stage.actions.length?a("q-card-section",{staticClass:"q-pt-none column items-end q-pb-sm"},e._l(e.stage.actions,(function(t,n){return a("q-btn",e._b({key:n,staticClass:"q-mb-xs",attrs:{unelevated:"",loading:e.loadingState==="action_"+n},on:{click:function(){return e.loadingWrapper(n,t.handler)}}},"q-btn",t,!1))})),1):e._e()],1)],1)],1)},em=[],tm={name:"TaskItemStage",i18n:Wp,data(){return{loadingState:null}},props:{status:String,stage:Object,current_stage:Number},methods:{async loadingWrapper(e,t){try{this.loadingState=`action_${e}`,await t()}finally{this.loadingState=null}}}},am=tm,nm=a("da23"),om=Object(f["a"])(am,Xp,em,!1,null,"02a3e274",null),im=om.exports;k()(om,"components",{QChip:nm["a"],QMenu:Gl["a"],QCard:v["a"],QCardSection:re["a"],QBadge:kr["a"],QIcon:Y["a"],QBtn:le["a"]});var rm={name:"TaskItem",i18n:Wp,components:{ActionMenu:Zp,TaskItemStage:im},props:{id:String,category:String,icon:String,title:String,current_stage:Number,status:String,member:String,stages:Array}},sm=rm,lm=Object(f["a"])(sm,Hp,Vp,!1,null,null,null),cm=lm.exports;k()(lm,"components",{QItem:Pe["a"],QItemSection:Ae["a"],QIcon:Y["a"],QItemLabel:Ie["a"],QBtn:le["a"]});const dm=function(e){const t={id:"SubscribeGithubRepo",category:"SubscribeGithubRepo",icon:"fab fa-github",title:this.$t("task_github_subscribe_repo.title"),current_stage:0,status:"enabled",member:null,stages:[]},a=(e,t)=>this.$t(`task_github_subscribe_repo.task_stage.${e}`,t);if(t.stages.push({index:0,label:a("connect_to_github.label"),desc:a("connect_to_github.desc")},{index:1,label:a("subscribe_repo.label"),desc:a("subscribe_repo.desc")},{index:2,label:a("subscribe_repo_for.label",{month:1}),desc:a("subscribe_repo_for.desc",{month:1})},{index:3,label:a("subscribe_repo_for.label",{month:3}),desc:a("subscribe_repo_for.desc",{month:3})}),e){const a=JSON.parse(e.metadata);Object.assign(t,{id:e.id,current_stage:a.stage+1,member:e.member,status:e.status})}return t.stages.forEach(((a,n)=>{const o=n===t.current_stage,i=nt.current_stage,s=i?"done":r?null:{succeed:"done",cancelled:"close",failed:"error"}[t.status]||"more_horiz",l=i?"positive":r?"general":{succeed:"positive",cancelled:"negative",failed:"negative"}[t.status]||"positive",c=this.$t("task_panel.stage_status."+(i?"completed":r?"not_started":"in_progress"));if(Object.assign(a,{icon:s,color:l,status:c}),a.actions=a.actions||[],0===n&&a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_connect"),handler:()=>{this.$router.push({name:"AccountSettings"})}}),1!==n||i||a.actions.push({disable:!o,label:this.$t("task_github_subscribe_repo.task_action.go_to_subscribe"),handler:()=>{const e="https://github.com/tanshuai/alphabiz";window.open(e,"_blank")}}),[2,3].includes(n)&&t.current_stage>1){const t=JSON.parse(e.metadata);a.subtitle=this.$t("task_github_subscribe_repo.subscribed_at",{time:this.$d(new Date(t.subscribed_at),"YMD"),days:Math.max(0,Math.floor((new Date-new Date(t.subscribed_at))/864e5*10)/10)})}if([1,2,3].includes(n)){var d;const t=JSON.parse(null!==(d=null===e||void 0===e?void 0:e.metadata)&&void 0!==d?d:"{}"),i=o&&(2===n?new Date-new Date(t.subscribed_at)>2592e6:3!==n||new Date-new Date(t.subscribed_at)>7776e6),r={disable:!i,label:this.$t("task_github_subscribe_repo.task_action.get_bonus"),handler:async()=>{try{const t=await this.$account.core.updateGithubTask(e.member);await this.updateTaskList(),console.log(t,e)}catch(t){this.$q.notify({type:"negative",position:"bottom-right",message:t.message})}}};a.actions.push(r)}})),t};var um={name:"index",i18n:Wp,components:{TaskItem:cm},data(){return{loadingState:null,taskList:null}},computed:{taskItems(){const e=[];return this.taskList.forEach((t=>{i[t.category]&&"cancelled"!==t.status&&e.push(i[t.category].call(this,t))})),e.some((e=>"SubscribeGithubRepo"===e.category))||e.push(dm.call(this)),e}},mounted(){this.reloadTaskList()},methods:{async reloadTaskList(){const e=async()=>{try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){throw e}};try{this.loadingState="loading",await e()}finally{this.loadingState=null}},async updateTaskList(){try{const e=await this.$account.core.queryTaskList();this.taskList=e}catch(e){this.$q.notify({type:"negative",position:"bottom-right",message:e.message})}}}},_m=um,pm=Object(f["a"])(_m,Rp,Mp,!1,null,null,null),mm=pm.exports;k()(pm,"components",{QPage:Li["a"],QBtn:le["a"],QSpinnerIos:at["a"],QIcon:Y["a"],QList:ht["a"]});var hm={name:"TaskPage",i18n:Wp,components:{Layout:Up,TaskCard:mm}},gm=hm,fm=Object(f["a"])(gm,Ap,Ip,!1,null,null,null),bm=fm.exports;function ym(e){const t={persistent:!0,transitionShow:"slide-up",transitionHide:"slide-down"};let a;const n=u["a"].create({component:{render(o){return o(y["a"],{ref:"dialog",props:t,on:{hide:()=>this.$emit("hide")}},[o(Object.assign({},e,{mixins:[...e.mixins||[],{beforeCreate(){a=this},methods:{closePopup(){n.hide()}}}]}))])},methods:{show(){this.$refs.dialog.show()},hide(){this.$refs.dialog.hide()}}}});return new Proxy({},{get(e,t){return n[t]?Reflect.get(n,t):Reflect.get(a,t)},set(e,t,o){return n[t]?Reflect.set(n,t,o):Reflect.set(a,t,o)}})}k()(fm,"components",{QToolbar:ji["a"],QToolbarTitle:Ni["a"],QBtn:le["a"]}),k()(fm,"directives",{ClosePopup:Yl["a"]});const vm=function(e){return{beforeCreate(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)},created(){this.$account.view[e]=this},beforeDestroy(){const t=this.$account.view[e];t instanceof Function||(this.$account.view[e]=null)}}};let wm=null;var km={TaskPage(){wm=wm||vm(bm.name),bm.mixins=Array.from(new Set((bm.mixins||[]).concat(wm)));ym(bm)}},Sm={onCreateCore(e,t,a){return{...Pp}},onConfigure(e,t,a){},onCreateStoreMixin(e,t,a){return{}},onRegisterView(e,t,a){return e.component("TaskCard",mm),{...km}}};const Cm=Gc.PluginInstaller("$account");Object.assign(Cm.context,{$test:Yc});var xm=Cm.exportAsVuePlugin();const $m={Auth:e_,ReCaptcha:a_,MFA:R_,Invitation:M_,OAuth:$p,Task:Sm};var Tm=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"flex justify-center items-center"},[a("q-btn",{attrs:{round:"","no-caps":"",size:"0.75rem",flat:"",color:"negative","text-color":"negative",icon:"close"},on:{click:function(){return e.$account.view.SignInPage=null}}}),e.$store.getters.settings.disableDevTools?e._e():a("q-btn",{directives:[{name:"show",rawName:"v-show",value:!e.showDevDialog,expression:"!showDevDialog"}],attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"developer_mode"},on:{click:function(t){e.showDevDialog=!e.showDevDialog}}},[a("q-tooltip",[e._v(e._s(e.$t("development")))]),a("q-dialog",{attrs:{"transition-show":"slide-up","transition-hide":"slide-down"},model:{value:e.showDevDialog,callback:function(t){e.showDevDialog=t},expression:"showDevDialog"}},[a("div",{staticClass:"development-dialog"},[a("div",{staticClass:"flex items-center",staticStyle:{padding:"4px 12px"}},[a("div",{staticClass:"text-h6 text-bold"},[e._v("Development Panel")]),a("q-space"),a("q-btn",{attrs:{"fab-mini":"",flat:"",icon:"close"},on:{click:function(t){e.showDevDialog=!1}}})],1),a("q-separator"),a("div",{staticClass:"scroll-y"},[a("Development")],1)],1)])],1),a("q-btn",{attrs:{unelevated:"","no-caps":"",size:"0.75rem",round:"",icon:"language"}},[a("q-tooltip",[e._v(e._s(e.language))]),a("q-menu",{attrs:{"transition-show":"jump-up","transition-hide":"jump-down"}},[a("q-list",e._l(e.languageOptions,(function(t){return a("q-item",{directives:[{name:"ripple",rawName:"v-ripple"},{name:"close-popup",rawName:"v-close-popup"}],key:t.value,attrs:{clickable:"",tag:"label"},on:{click:function(){return e.language=t.value}}},[a("q-item-section",{staticStyle:{width:"120px"}},[a("q-item-label",[e._v(e._s(t.label))])],1)],1)})),1)],1)],1),a("q-btn",{attrs:{flat:"","no-caps":"",size:"0.75rem",round:"",icon:"info"},on:{click:e.showAboutDialog}},[a("q-tooltip",[e._v(e._s(e.$t("feedback")+"/"+e.$t("diagnotic")))])],1)],1)},zm=[];const Pm={components:{Development:Hl["default"]},data(){return{showDevDialog:!1}}},Am={data(){return{languageOptions:Wl["b"]}},computed:{language:{get(){const e=x["a"].getters.settings.language,t=this.languageOptions.find((t=>t.value===e));return t?t.label:e},set(e){const t=e.value||e;if("string"===typeof t&&(x["a"].dispatch("updateSettings",{language:t}),this.$i18n.locale=t,Object(xa["isElectron"])())){const{ipcRenderer:e}=a("b052");e.send("change-app-i18n",t),e.send("set_settings",{language:t})}}}}};var Im={name:"Corner",mixins:[Am,Pm],methods:{showAboutDialog(){xa["Bus"].$emit("CALL_ABOUT")}}},qm=Im,Om=(a("8460"),Object(f["a"])(qm,Tm,zm,!1,null,null,null)),Em=Om.exports;k()(Om,"components",{QBtn:le["a"],QTooltip:St["a"],QDialog:y["a"],QSpace:se["a"],QSeparator:ce["a"],QMenu:Gl["a"],QList:ht["a"],QItem:Pe["a"],QItemSection:Ae["a"],QItemLabel:Ie["a"],QColor:Z["a"]}),k()(Om,"directives",{Ripple:Kl["a"],ClosePopup:Yl["a"]});var Dm=a("67b6"),jm=a("76ec"),Nm=a("9a08"),Lm=async({Vue:e,app:t,router:a})=>{Um(e,[...rs]),e.use(rc,{app:t}),e.use(xm,{app:t,app_config:{protocol:F.a.protocol,web_url:F.a.webEditionUrl},awsconfig:lc,extensions:$m,gql:{queries:cc,mutations:dc,subscriptions:uc}}),e.use(ss["a"],{app:t}),e.use(ls["b"],{app:t,router:a});const n=e.prototype.$account;n.$on("createSignInPage",(e=>{e.corner=Em})),n.$on("signUp.showLicenseTerms",(()=>{return e.call(n.view.SignInPage);function e(){Dm["a"].call(this,{title:this.$t("account_license_terms"),markdown:{license:{label:"License",markdown:jm["a"]},terms:{label:"Terms",markdown:Nm["a"]}}})}}))};function Um(e,t){var a;const n=null===(a=e.config)||void 0===a?void 0:a.errorHandler;e.config.errorHandler=function(){const e=t.filter((e=>e.match(...arguments)));if(e.length>0)e.forEach((e=>e.execute(...arguments)));else{if(!n)throw arguments[0];n.apply(this,arguments)}}}var Rm=a("15eb");const Mm="/";async function Fm(){const{app:e,store:t,router:a}=await T();let n=!1;const o=e=>{n=!0;const t=Object(e)===e?a.resolve(e).route.fullPath:e;window.location.href=t},i=window.location.href.replace(window.location.origin,""),s=[me,es,ns["a"],Lm,Rm["a"]];for(let c=0;!1===n&&c{const t="magnet:?xt=urn:btih:"+e.hash+"&dn="+(encodeURIComponent(e.name)||e.origin||e.hash).replace(`${n["protocol"]}:///`,"");let a="";if(e.trackers&&(a+=e.trackers.filter((e=>e.length)).map((e=>`&tr=${encodeURIComponent(e)}`)).join("")),e.data)for(const n in e.data){var o;null!==(o=e.data[n])&&void 0!==o&&o.length&&(a+=e.data[n].map((e=>`&${n}=${encodeURIComponent(e)}`)).join(""))}return t+a},s=e=>{var t;const a=new URL(e);if("magnet:"!==a.protocol)throw new Error("Input is not a magnet uri");const n=a.searchParams.get("xt"),o=null===(t=n.match(/[^:]+$/))||void 0===t?void 0:t[0];if(!o)throw new Error("Cannot parse magnet infoHash");const r=a.searchParams.get("dn")||"",s=a.searchParams.getAll("tr").map((e=>{const t=i.a.getIdByTracker(e);return-1!==t?t:e})),l={};return a.searchParams.forEach(((e,t)=>{["xt","dn","tr"].includes(t)||(l[t]||(l[t]=[]),l[t].push(e))})),{protocolType:"01",hash:o,name:r,trackers:s,data:l}};t["a"]={fromObject:r,toObject:s}},ecef:function(e,t,a){"use strict";a.r(t);var n=a("e3c7"),o=a("8a63");n["ioServer"].on("some_api",(()=>{})),n["ipcRenderer"].on("some-api",(()=>{})),n["ioServer"].on("request-provident-payment",(e=>{n["ioServer"].emit("request-provident-payment",e)})),n["ioServer"].on("credit_payment_created",(e=>{n["ioServer"].emit("payment-info",e)})),n["ioServer"].on("restart_payment",(e=>{n["ioServer"].emit("restart-payment",e)})),n["ioServer"].on("payment_verified",(e=>{n["ioServer"].emit("payment-verified",e)})),n["ioServer"].on("webtorrent-request-renew",(e=>{n["ioServer"].emit("request_renew",e)})),n["ioServer"].on("webtorrent-payment-finished",(e=>{n["ioServer"].emit("payment_finished",e)})),n["ioServer"].on("webtorrent-finish-all-payments",(e=>{if(null===e||void 0===e||!e.connections)return console.log("skip unknown tr",e,null===e||void 0===e?void 0:e.connections);const t=e.connections;t.forEach((e=>{e.transactions&&e.transactions.forEach((e=>{console.log("Finish pending",e),n["ioServer"].emit("payment_finished",{id:e})}))}))})),n["ioServer"].on("webtorrent-set-throttle",(e=>{0!==e.code&&n["ioServer"].emit("client_error",e.message)})),n["ioServer"].on("webtorrent-verify-payment",(e=>{n["ioServer"].emit("verify_payment",e)})),n["ioServer"].on("webtorrent-payment-completed",(e=>{n["ioServer"].emit("payment_completed",e)})),n["ioServer"].on("complete_payment",(e=>{n["ioServer"].emit("complete-payment",e)})),n["ioServer"].on("finish_payment",(e=>{n["ioServer"].emit("finish-payment",e)})),n["ioServer"].on("payment_closed",(e=>{n["ioServer"].emit("close-payment",e)})),n["ioServer"].on("set-throttle-group",(e=>{n["ioServer"].emit("set-throttle-group",{...e,peerId:null===e||void 0===e?void 0:e.id})})),n["ioServer"].on("download-and-play",(e=>{console.log("should download and play",e),Object(o["b"])("download",e.url)}))},edfe:function(e,t,a){"use strict";(function(e){a.d(t,"b",(function(){return S})),a.d(t,"a",(function(){return $}));a("de6c"),a("d4b5"),a("7a76");const{EventEmitter:n}=a("bf30"),o=a("3fd2"),{ipcRenderer:i}=o.renderer()?a("b052"):a("e3c7"),r=a("8b5b"),s=1e7,l=1,c=new Map,d=new Map,u=new Map,_=new Map,p=new Map,m=new Map,h=new Map,g=new Map,f=(e,t)=>{h.has(e)||h.set(e,0),g.has(e)||g.set(e,0);const a=h.get(e)+t;h.set(e,a);const n=Math.floor(a/1e8),o=n-g.get(e);o>0&&(console.log("Request provident payment for",e,"count:",o),i.send("request-provident-payment",{infoHash:e,count:10*o}),g.set(e,n))},b=[],y=new Map,v="undefined"!==typeof localStorage?localStorage.getItem("userInfo"):null,w=v?JSON.parse(v):{user:"",sub:""};console.log("Init user",w);let k=null;const S=e=>{k=e,k.userInfo=w,k.on("request-renew",(e=>i.send("webtorrent-request-renew",e))),k.on("verify-payment",(e=>i.send("webtorrent-verify-payment",e)))};i.on("set-user",((e,t)=>{t||(t=e),console.log("set user",t),w.user=t.user,w.sub=t.sub,"undefined"!==typeof localStorage&&localStorage.setItem("userInfo",JSON.stringify(w)),k.torrents.forEach((e=>{e.wires.forEach((e=>{e._is_alphabiz_peer_&&e.alphabiz_protocol&&e.alphabiz_protocol._sendUserInfo()}))}))}));const C=(e,t)=>{t||(t=e),console.log("Payment info",t);const a=k.get(t.infoHash);if(t.payedSize=t.payed*s/l,u.set(t.id,t),!a||!a.wires.length){if(b.some((e=>e.id===t.id)))return;return b.push(t)}for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSubId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment:JSON.stringify({infoHash:t.infoHash,peerId:t.peerId,subId:w.sub,payed:t.payed,autoRenew:!0,id:t.id})})}};i.on("payment-info",C),i.on("restart-payment",C),i.on("payment-verified",((e,t)=>{t||(t=e);const a=k.get(t.infoHash);if(!a||!a.wires.length)return console.log("tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.subId){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._onPaymentVerified({infoHash:t.infoHash,peerId:t.peerId,subId:w.sub,payed:t.payed,autoRenew:!0,id:t.id})}})),i.on("finish-payment",((e,t)=>{const a=k.get(t.infoHash);if(!a||!a.wires.length)return console.log("finish: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_finish:t.transactionId}),n.transactions&&n.transactions.includes(t.transactionId)&&n.transactions.splice(n.transactions.indexOf(t.transactionId),1)}})),i.on("close-payment",((e,t)=>{t||(t=e);const a=k.get(t.infoHash);if(!a||!a.wires.length)return console.log("close: tr not found");for(const n of a.wires)if(n.remoteSub&&n.remoteSub===t.remoteSub){if(!n.alphabiz_protocol)continue;n.alphabiz_protocol._send({ab_payment_close:JSON.stringify({infoHash:t.infoHash,id:t.id})})}}));const x=e=>{if(console.log("To remove",e),!e||!e.infoHash)return;const t=e.infoHash,a=y.get(t);for(let n=0;n{const o="alphabiz_protocol";class h extends n{constructor(e){super(),this._wire=e,this._peerId=null,this._infoHash=a.infoHash,this.isSeeding=a.isSeeding,this.download=a.download,this._user=w.user||"",this._subId=w.sub||"",this.remoteSub="",this.uniqueId="",this._wire._setThrottleGroup=e=>this._setThrottleGroup(e),this.maxUploadSpeed=1e6,this._wire.maxUploadSpeed=1e6,this._initUpload(),this._initDownload()}onHandshake(e,t){this._infoHash=e,this._peerId=t,this._sendUserInfo()}_sendUserInfo(){this._user=w.user||"",this._subId=w.sub||"",this._send({ab_peer:"_ab_"+this._peerId,ab_user:this._user,ab_sub:this._subId,ab_has_meta:a.metadata?1:0}),a.metadata||a.once("metadata",(()=>{this._send({ab_has_meta:1})}))}onExtendedHandshake(e){e.m&&e.m[o]||console.error("Client does not support",o)}_sendByteMap(){a.byteMap&&this._send({ab_byte_map:JSON.stringify(a.byteMap)})}_initDownload(){const t=this._wire,a=a=>{if(Math.random()>.99&&e.memoryUsage().rss/1e9>3&&e.exit(1),this.isSeeding)return;if(!this.remoteSub||!this.uniqueId)return void f(this._infoHash,a);p.get(this.uniqueId)||p.set(this.uniqueId,t.downloaded||0);const n=p.get(this.uniqueId);p.set(this.uniqueId,n+a)};t.on("download",a)}_initUpload(){const e=this._wire,t=t=>{if(!this.remoteSub||!this.uniqueId)return;if(this.remoteSub===this._subId)return;const a=c.get(this.uniqueId)-t;if(isNaN(a))return;const n=y.get(this._infoHash);if(n&&n.length&&(n[0].payedSize-=t,n[0].payedSize<0)){const e=n.shift();i.send("webtorrent-payment-completed",{transactionId:e.id,infoHash:this._infoHash,remoteSub:this.remoteSub})}const o=e.uploadSpeed?e.uploadSpeed():1e6;o>this.maxUploadSpeed&&(this.maxUploadSpeed=1e6*Math.ceil(o/1e6),this._wire.maxUploadSpeed=this.maxUploadSpeed);const r=m.get(this.uniqueId)||[],s=r.reduce(((e,t)=>e+(t.maxUploadSpeed||1e6)),0)||this.maxUploadSpeed;if(d.get(this.uniqueId)&&a<5*s){d.set(this.uniqueId,!1);const e=Math.ceil(s/1e6);console.log("[[wt-ext]] _send ab_renew left < 5*speed",e),this.renew(e<10?10:e)}if(a<=0){if(this._setThrottleGroup("mid"),c.set(this.uniqueId,0),d.get(this.uniqueId)||!d.has(this.uniqueId)){const e=Math.ceil(s/1e6);d.set(this.uniqueId,!1),console.log("[[wt-ext]] _send ab_renew from left<=0",e),this.renew(e<10?10:e)}}else this._setThrottleGroup("high"),c.set(this.uniqueId,a)};e.on("upload",t);const n=()=>{this._wire.transactions&&(i.send("webtorrent-task-done",{infoHash:a.infoHash,name:a.name,payments:this._wire.transactions}),this._send({ab_task_done:this._wire.transactions.join("$")}))},o=()=>this._sendByteMap();e.on("close",(()=>{a.off("done",n),a.off("byte-map-change",o);const t=m.get(this.uniqueId);t&&t.includes(e)&&(console.log("remove same wire"),t.splice(t.indexOf(e),1))})),a.on("done",n),a.on("byte-map-change",o)}_onAbPeer(e,t,n){if(!e.startsWith("_ab_"))return;if(this._remotePeerId=e.substring(4),this._wire._is_alphabiz_peer_=!0,this._wire.ab_peer=e,this._wire.remoteUser=t,this._wire.remoteSub=n,this._wire.transactions=[],this.remoteSub=n,this.uniqueId=n+"#"+this._infoHash,m.has(this.uniqueId)){const e=m.get(this.uniqueId);e.includes(this._wire)||e.push(this._wire)}else m.set(this.uniqueId,[this._wire]);if(_.has(this.uniqueId)||_.set(this.uniqueId,0),_.get(this.uniqueId)>this._wire.downloaded&&_.set(this.uniqueId,this._wire.downloaded),a._has_alphabiz_user_=!0,a.emit("ab_peer",e),this._subId===this.remoteSub)return console.log("[wt-ab-peer] Connected to self"),this._sendByteMap(),void this._setThrottleGroup("high");if(n&&c.get(this.uniqueId)>0?this._onPaymentVerified({infoHash:a.infoHash,subId:n,autoRenew:!0,payed:0},!0):(this._setThrottleGroup("mid"),this.isSeeding&&!c.get(this.uniqueId)&&(this._sendByteMap(),setTimeout((()=>{this.renew()}),1e3))),b.length)for(let a=0;a{this._wire&&!this._wire.destroyed||clearInterval(o),this.isSeeding||"mid"!==this._wire.remoteGroup||this.isSeeding||this._onRenew(this.remoteSub,10)}),5e3)}renew(e=10){this._subId!==this.remoteSub?this._subId?this._send({ab_renew:this._subId,ab_count:e}):console.warn("Cannot get subId"):console.log("[wt-renew] Remote account is same as local")}_setThrottleGroup(e){const a=this._wire._uploadThrottle;if(a&&a._group){if(!t.throttleGroups[e])throw new Error("level_not_found");a._group!==t.throttleGroups[e]&&(console.log("[[wt-ext]] _setThrottleGroup",e),d.set(this.uniqueId,!0),"mid"===e&&a._group===t.throttleGroups.high&&(console.log("Peer dropped back to mid. Send renew request",this._subId,this._infoHash),this.renew(),setTimeout((()=>{a._group!==t.throttleGroups.high&&(console.log("Peer is still in mid. Send renew request",this._subId,this._infoHash),this.renew())}),5e3)),a._group._removeThrottle(a),t.throttleGroups[e]._addThrottle(a),a._group=t.throttleGroups[e],console.log("[[wt-ext]] _send ab_speed_group: ",e),this._send({ab_speed_group:e}))}}_onSpeedGroup(e){console.log("[[wt-ext]] _onSpeedGroup",e),this._wire.remoteGroup=e}_onPaymentReceived(e){t.emit("verify-payment",e)}_onPaymentVerified({infoHash:e,payed:t,id:n}){const o=this.remoteSub;if(console.log("payment verified"),!o||!this.uniqueId)return;if(this._setThrottleGroup("high"),d.set(this.uniqueId,!0),!n||u.has(n))return;const i=t*s/l;if(u.set(n,{infoHash:e,payed:t,autoRenew:!0,id:n,payedSize:i}),e!==a.infoHash)return;if(isNaN(i))return;c.has(this.uniqueId)||c.set(this.uniqueId,0);const r=c.get(this.uniqueId);c.set(this.uniqueId,r+i),y.has(e)||y.set(e,[]);const _=y.get(e);_.push({infoHash:e,subId:o,payedSize:i,id:n,startPosition:this._wire.recieved}),this._send({ab_payment_accepted:n})}_onPaymentAccepted(e){this._wire.transactions.push(e)}_onPaymentCompleted(e){console.log("Completed",e,this.remoteSub),i.send("webtorrent-payment-completed",{transactionId:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),this._wire.transactions.includes(e)&&this._wire.transactions.splice(this._wire.transactions.indexOf(e),1)}_onTaskDone(e){const t=e.split("$").filter((e=>e.length));if(console.log("Remote task done"),t.length)for(const a of t)this._onPaymentCompleted(a);c.delete(this.remoteSub,this._infoHash)}_onPaymentFinished(e){console.log("Finished",e);const t=u.get(e);if(t){const n=p.get(this.uniqueId)||0;_.has(this.uniqueId)||_.set(this.uniqueId,0);const o=_.get(this.uniqueId),r=n-o;r>.9*t.payedSize||a.done||a.downloaded>=.9*a.length?(i.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash}),_.set(this.uniqueId,o+(r>t.payedSize?t.payedSize:r)),console.log(`Payment ${e} is finished. Payed for ${t.payedSize}. Received ${r}. Done: ${a.done}`),console.log("Update prev-download",o,_.get(this.uniqueId))):(console.log(`Payment ${e} is marked as not-finished. Payed for ${t.payedSize}. Received ${r}`),console.log(`Prev: ${o}. Downloaded: ${n}`))}else i.send("webtorrent-payment-finished",{id:e,remoteSub:this.remoteSub,infoHash:this._infoHash})}_onPaymentClosed(e){console.log("Close",e),x(e)}_onRenew(e,a=10){const n=a&&parseInt(a)?parseInt(a):10;console.log("[[wt-ext]] _onRenew",e,this._remotePeerId,n),t.emit("request-renew",{infoHash:this._infoHash,peerId:this._remotePeerId,payCount:n,subId:e})}onMessage(e){let t;try{t=r.decode(e)}catch(n){return void console.error("cannot decode buf",e)}if(t.ab_has_meta&&(this._wire.remote_has_meta=!0),t.ab_byte_map&&(this._wire.remote_byte_map=JSON.parse(t.ab_byte_map.toString())),t.ab_peer)return this._onAbPeer(t.ab_peer.toString(),t.ab_user&&t.ab_user.toString(),t.ab_sub&&t.ab_sub.toString());if(t.ab_speed_group)return this._onSpeedGroup(t.ab_speed_group.toString());if(t.ab_payment){const e=JSON.parse(t.ab_payment.toString());return console.log("Protocol payment",e),this._onPaymentReceived(e)}return t.ab_payment_completed?this._onPaymentCompleted(t.ab_payment_completed.toString()):t.ab_payment_accepted?this._onPaymentAccepted(t.ab_payment_accepted.toString()):t.ab_payment_finish?this._onPaymentFinished(t.ab_payment_finish.toString()):t.ab_payment_close?this._onPaymentClosed(JSON.parse(t.ab_payment_close.toString())):t.ab_task_done?this._onTaskDone(t.ab_task_done.toString()):t.ab_renew?this._onRenew(t.ab_renew.toString(),null===(a=t.ab_count)||void 0===a?void 0:a.toString()):void 0;var a}_send(e){const t=Object.entries(this._wire.extendedMapping).find((e=>e[1]===o)),a=t&&t[0];a>=0&&this._wire.extended(Number(a),r.encode(e))}onClose(){console.log("onClose",this._wire);this._wire.recieved}}return h.prototype.name=o,h}}).call(this,a("28d0"))},ee3d:function(e,t){function a(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}a.keys=function(){return[]},a.resolve=a,e.exports=a,a.id="ee3d"},eec3:function(e,t,a){},f039:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a("0598");async function o(e,t,o){var i,r;if(console.log("drop",e,e.path,(null===e||void 0===e||null===(i=e.path)||void 0===i?void 0:i[0])===document.body),e&&e.path&&(null===e||void 0===e||null===(r=e.path)||void 0===r?void 0:r[0])===document.body)return void console.log("Drop to body");const s=o&&!t.length;if(s&&!o.match(/^(magnet)|(alphabiz):/))return;const l=!s&&t.length>1,c=!s&&!l&&Object(n["default"])()&&a("61af").existsSync(t[0].path)?a("61af").statSync(t[0].path).isDirectory():!a("a3fc").extname(t[0].path),d=s?"link":l?"file_copy":c?"folder":"insert_drive_file",u=document.createElement("i");u.classList="q-icon material-icons",u.appendChild(document.createTextNode(d)),u.style=`position: fixed; font-size: 36px; transition-duration: 0.5s; opacity: 1;left: ${e.clientX-18}px; top: ${e.clientY-18}px`;const _=document.body.appendChild(u);return new Promise((e=>{setTimeout((()=>{_.style.transform="translateY(24px)"}),50),setTimeout((()=>{_.style.transform+=" scale(4)",_.style.opacity=0,e()}),200),setTimeout((()=>{document.body.removeChild(_)}),1e3)}))}},f157:function(e,t,a){"use strict";a("848e")},f3f7:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f77d:function(e,t,a){"use strict";a("7686")},f7b1:function(e){e.exports=JSON.parse('{"M":{"month":"short"},"YM":{"year":"numeric","month":"short"},"YMD":{"year":"numeric","month":"short","day":"numeric"},"Hms":{"hour":"numeric","minute":"numeric","second":"numeric"},"MDHms":{"month":"short","day":"numeric","hour":"numeric","minute":"numeric"},"YMDHms":{"year":"numeric","month":"long","day":"numeric","hour":"numeric","minute":"numeric"}}')},f817:function(e,t,a){"use strict";a("9f42")},fb31:function(e,t,a){(function(t){const{isElectron:n}=a("d310");if(n())if(this.require)try{const a=this["require"]("developer/app");console.log("Init from node_modules",t),a.appName=a.name,e.exports={default:a,appName:a.name,...a}}catch(o){console.log(">> Cannot require /developer/app from build. Use dev");const t=this["require"]("../../developer/app");t.appName=t.name,console.log("APP name:",t.appName),e.exports={default:t,appName:t.name,...t}}else{const t=n()?require("developer/app"):a("b3f7");t.appName=t.name,console.log("APP name:",t.appName,"production",!0),e.exports={default:t,appName:t.name,...t}}else{const t=a("b3f7");e.exports={appName:t.name,...t}}}).call(this,a("28d0"))},fc65:function(e,t,a){"use strict";a("ac84")},fe8f:function(e,t,a){},feef:function(e,t,a){"use strict";var n=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("q-dialog",{model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[a("q-card",{staticStyle:{width:"400px","max-width":"80vw","overflow-x":"hidden"}},[a("q-card-section",["download"===e.mode?a("q-tabs",{staticClass:"text-primary",attrs:{"no-caps":""},model:{value:e.tab,callback:function(t){e.tab=t},expression:"tab"}},[a("q-tab",{attrs:{name:"url",label:this.$t("link_task")}}),a("q-tab",{attrs:{name:"file",label:this.$t("torrent_task")}})],1):a("div",{staticClass:"upload-title text-primary text-center q-mt-sm q-mb-md text-subtitle2"},[e._v("\n "+e._s(e.$t("upload"))+"\n ")])],1),a("q-card-section",{staticClass:"q-pt-none"},["url"===e.tab&&"download"===e.mode?a("q-input",{staticClass:"url-input q-py-sm",attrs:{dense:"",type:"textarea","input-style":"white-space:nowrap"},nativeOn:{paste:function(e){e.stopPropagation()}},model:{value:e.input,callback:function(t){e.input=t},expression:"input"}}):e._e(),"file"===e.tab||"upload"===e.mode?a("q-input",{attrs:{readonly:"",type:"text",label:e.$t("file"),value:e.inputFile&&e.inputFile[0]&&e.inputFile[0].name||""}}):e._e(),a("div",{staticClass:"file-selectors"},["file"===e.tab||"upload"===e.mode?a("FileSelector",{attrs:{accept:"download"===e.mode?{extensions:["torrent"]}:null},on:{select:e.onFileSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"note_add",label:e.$t("select_file")}})],1):e._e(),"upload"===e.mode&&e.isElectron?a("FileSelector",{attrs:{directory:""},on:{select:e.onFolderSelected}},[a("q-btn",{attrs:{size:"md",unelevated:"","no-caps":"",icon:"create_new_folder",label:e.$t("select_folder")}})],1):e._e()],1),e.isElectron?a("div",{staticClass:"configuration-variable q-pt-sm"},[a("q-input",{directives:[{name:"show",rawName:"v-show",value:"download"===e.mode&&e.isElectron,expression:"mode === 'download' && isElectron"}],staticStyle:{width:"100%"},attrs:{label:this.$t("download_directory_position")},on:{click:e.selectSavePath},model:{value:e.settings.downloadDirectory,callback:function(t){e.$set(e.settings,"downloadDirectory",t)},expression:"settings.downloadDirectory"}})],1):e._e()],1),a("q-card-actions",{staticClass:"text-primary",attrs:{align:"right"}},[a("q-btn",{directives:[{name:"close-popup",rawName:"v-close-popup"}],attrs:{flat:"",label:this.$t("cancel")}}),a("q-btn",{attrs:{flat:"",label:"download"===e.mode?this.$t("download"):this.$t("upload")},on:{click:e.submit}})],1)],1)],1)},o=[],i=a("aecb"),r=i["a"],s=(a("b389"),a("2b5f")),l=a("b2aa"),c=a("e586"),d=a("d7c7"),u=a("74cb"),_=a("ec78"),p=a("0e45"),m=a("3927"),h=a("1043"),g=a("59ba"),f=a("a431"),b=a("09a4"),y=a.n(b),v=Object(s["a"])(r,n,o,!1,null,"a418da6e",null);t["a"]=v.exports;y()(v,"components",{QDialog:l["a"],QCard:c["a"],QCardSection:d["a"],QTabs:u["a"],QTab:_["a"],QInput:p["a"],QFile:m["a"],QBtn:h["a"],QCardActions:g["a"]}),y()(v,"directives",{ClosePopup:f["a"]})}}); \ No newline at end of file diff --git a/dist/spa/version.json b/dist/spa/version.json index 2dba8e49..5098377e 100644 --- a/dist/spa/version.json +++ b/dist/spa/version.json @@ -1,8 +1,8 @@ { "packageVer": "0.2.4", "channel": "web", - "buildTime": "202409121721", - "buildCommit": "0aa57d8a", - "sourceCommit": "0aa57d8a", + "buildTime": "202409121823", + "buildCommit": "86c09859", + "sourceCommit": "86c09859", "version": "0.2.5-web" } \ No newline at end of file